Anda di halaman 1dari 38

E - BOOK

ALGORITMA &
PRAKTIKUM ALGORITMA
PEMROGRAMAN - I

Pengenalan Algoritma dan Pemrograman


- Pengantar Algoritma
- Pengantar Pemrograman

FAKULTAS TEKNIK
UNIVERSITAS IBNU SINA
2020
Bab 1
PENGENALAN ALGORITMA DAN
PEMROGRAMAN
Tominanto, S.Kom., M.Cs.

Pendahuluan

K
omputer merupakan sebuah perangkat elektronik yang dibuat sebagai alat bantu
untuk menyelesaikan masalah. Permasalahan dapat diselesaikan oleh komputer
dengan langkah-langkah penyelesaian yang dibuat oleh manusia. Manusia menulis
program yang berisi urutan langkah-langkah penyelesaian masalah, lalu komputer
menjalankan perintah-perintah yang tertulis dalam program tersebut. Sebenarnya manusia
mampu menjalankan perintah-perintah tersebut, tetapi komputer mempunyai kelebihan
dibandingkan manusia. Kelebihan komputer antara lain, komputer tidak mengenal lelah,
komputer mampu mengerjakan pekerjaan yang sangat banyak, komputer juga mampu
mengerjakan perintah yang sama berulang kali, 100 kali, sejuta kali atau berapa kalipun yang
manusia perintahkan. Komputer memiliki memori yang besar sehingga ia mampu menyimpan
data dan informasi dalam volume yang sangat banyak.
Langkah-langkah penyelesaian masalah yang dibuat oleh manusia disebut sebagai
algoritma. Algoritma yang ditulis ke dalam bahasa komputer disebut program komputer.
Karakteristik perintah yang dapat disebut sebagai algoritma ditentukan oleh kelengkapan
perintah tersebut. Komputer tidak seperti manusia, sehingga hanya mampu bekerja untuk
mengeksekusi program dengan menelusuri perintah-perintah yang dibuat dalam suatu
program tertentu.

1
Modul pembelajaran ini membahas tentang pengenalan algoritma dan pemrograman.
Setelah menyelesaikan modul pembelajaran ini, diharapkan mahasiswa mampu menjelaskan
konsep algoritma dan pemrograman secara benar sehingga sehingga dapat digunakan sebagai
dasar untuk melanjutkan topik dan bab selanjutnya.

2
Topik 1
Pengantar Algoritma
A. PENGERTIAN ALGORITMA

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang cukup
aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka
arab. Seseorang dikatakan algorist jika menghitung menggunakan angka arab. Para ahli
bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para
ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku
arab yang terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al
Jabar Wal-Muqabala yang artinya Buku pemugaran dan pengurangan (The book of restoration
and reduction). Dari judul buku itu kita juga memperoleh akar kata Aljabar (Algebra).
Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran “sm” berubah menjadi “thm”. Karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata
algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap
menjadi algoritma.
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis. Kata logis merupakan kata kunci dalam algoritma. Langkah-
langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.
Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma
haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah
masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran
yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik Pertimbangan kedua
yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh
algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah
yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang
baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi
waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati),
tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma
tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu

3
juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma
tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma,
tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang
paling efisien dan cepat.
Ada beberapa definisi algoritma yang lain, diantaranya menurut Rinaldi Munir,
algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara
sistematis. Sedang menurut Kamus Besar Bahasa Indonesia, definisi algoritma adalah urutan
logis pengambilan keputusan untuk pemecahan masalah. Dari pengertian tersebut dapat
disimpulkan bahwa Algoritma adalah ilmu yang mempelajari cara penyelesaian suatu masalah
berdasarkan urutan langkah-langkah terbatas yang disusun secara sistematis dan
menggunakan bahasa yang logis dengan tujuan tertentu.
Supaya dapat lebih mudah memahami arti dari algoritma dicontohkan sebuah
permasalahan penukaran isi dari dua gelas. Diberikan dua buah gelas A dan B, gelas A berisi
air teh dan gelas B berisi air kopi. Pertukarkan isi gelas tersebut sehingga menghasilkan gelas
A yang semula berisi air teh menjadi berisi air kopi dan gelas B yang semula berisi air kopi
menjadi berisi air teh. Ilustrasi permasalahan ini dapat dilihat pada Gambar 1.1.

Sumber : Barakbah, A.R. dkk, 2013

Gambar 1.1. Penukaran gelas isi gelas A dan gelas B

Sebagai algoritma penyelesaian permasalahan tersebut di atas adalah sebagai berikut :


Agar dapat mempertukarkan isi gelas A dengan gelas B dengan benar, maka diperlukan gelas
tambahan yang dinamakan gelas C sebagai tempat penampungan sementara. Berikut ini
Algoritmanya :
1. Siapkan gelas cadangan C
2. Tuangkan air teh dari gelas A ke dalam gelas C (gelas A menjadi kosong).
3. Tuangkan air kopi dari gelas B ke dalam gelas A (gelas B menjadi kosong).
4. Tuangkan air teh dari gelas C ke dalam gelas B.

4
Ilustrasi langkah-langkah algoritma dapat dilihat pada Gambar 1.2.

S
umber : Barakbah, A.R. dkk, 2013
Gambar 1.2. Ilustrasi algoritma penukaran isi gelas A dengan gelas B

Dari contoh tersebut di atas dapat dilihat bahwa penyelesaian permasalahan penukaran
isi dua buah gelas sangat sederhana. Digunakan urutan langkah yang masuk akal atau logis
sehingga isi dari keduanya sudah berpindah media, dari A ke B dan B ke A. Inilah yang
dinamakan “Algoritma”, urutan penyelesaian sebuah permasalahan dengan urutan dan
langkah yang logis dan masuk akal menghasilkan sesuatu langkah yang benar.
Contoh lain algoritma misalnya algoritma menyeberangkan barang bawaan. Misalkan
seorang pemuda tiba di tepi sebuah sungai, pemuda tersebut membawa seekor kambing,
seekor serigala dan sekeranjang sayur. Pemuda tersebut bermaksud hendak menyeberangi
sungai membawa seluruh barang bawaannya dengan selamat. Pemuda itu menemukan
sebuah perahu kecil yang hanya dapat memuat satu bawaanya setiap kali menyeberang.
Situasinya dipersulit dengan kenyataan bahwa serigala tidak dapat ditinggal berdua dengan
kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat ditinggal berdua
dengan sekeranjang sayur (karena kambing akan memakan sayur). Bagaimanakah algoritma
untuk menyeberangkan pemuda dan seluruh bawaanya itu sehingga mereka sampai
keseberang sungai dengan selamat.
Algoritma menyeberangkan seluruh bawaan tersebut adalah berupa runtunan langkah
seperti berikut ini : algoritma untuk menyeberangkan pemuda (P) dan tiga barang bawaanya
Serigala (S), kambing (K), dan sekeranjang sayur (Y) dengan sebuah perahu kecil yang hanya
dapat memuat dua item (pemuda dan salah satu bawaanya). Serigala tidak dapat ditinggal

5
berdua dengan kambing (karena serigala akan memangsa kambing) atau kambing tidak dapat
ditinggal berdua dengan sekeranjang sayur (karena kambing akan memakan sayur).
algoritmanya dapat ditunjukkan dalam notasi sebagai berikut :

{sisi A : (P,S,K,Y) sisi B : (- , - , - , -)}


Pemuda menyeberangkan kambing dari sisi A ke sisi B.
{sisi A : ( - ,S,K,Y) sisi B : (P , - , K , -)}
Pemuda menyeberang sendiri dari B ke A.
{sisi A : (P,S, - ,Y) sisi B : (- , - , K , -)}
Pemuda menyeberangkan serigala dari sisi A ke sisi B.
{sisi A : ( - , - , - ,Y) sisi B : (P , S , K , -)}
Pemuda menyeberangkan kambing dari sisi B ke sisi A.
{sisi A : (P, - ,K,Y) sisi B : (- `, S , - , -)}
Pemuda menyeberangkan sayur dari sisi A ke sisi B.
{sisi A : ( - , - ,K,- ) sisi B : (P , S , - , Y)}
Pemuda menyeberang sendiri dari B ke A.
{sisi A : (P, - ,K, - ) sisi B : (- , S , - , Y)}
Pemuda menyeberangkan kambing dari sisi A ke sisi B.
{sisi A : (- , - , - , -) sisi B : (P,S,K,Y) }

Dengan menggunakan algoritma tersebut maka pemuda dan seluruh bawaanya dapat
menyeberang sungai dengan selamat.
Penggunaan algoritma juga sering dijumpai dalam kehidupan sehari-hari. Sebagai
contoh misalnya seorang koki yang mempunyai resep dan langkah-langkah memasak sehingga
menjadi sajian yang lezat. Contoh lainya misalnya seorang yang akan mengambil uang tunai
melalui ATM, tentunya harus mengikuti langkah-langkah yang diatur oleh mesin ATM sehingga
uang tunai dapat keluar dari mesin ATM. Ilustrasi algoritma dalam kehidupan sehari-hari ini
dapat dilihat pada Gambar 1.3, Gambar 1.4 dan Gambar 1.5.

6
Gambar 1.3. Algoritma membuat siomay malang

Gambar 1.3. Algoritma membuat bakso

7
Gambar 1.4. Algoritma mengambil uang tunai di ATM

Dalam dunia kesehatan algoritma sering dijumpai dalam bentuk prosedur yang
dituangkan dalam dokumen Standar Operasional Prosedur (SOP) maupun dalam bagan alur
yang merupakan langkah-langkah pemberian pelayanan medis maupun pelayanan non medis
pada sebuah instansi kesehatan. Gambar 1.5 berikut ini adalah contoh algoritma pelayanan
pasien rawat inap menurut Dirjen Yanmed Depkes RI (1997) yang disajikan dalam bentuk
bagan alur.

8
Gambar 1.4. Algoritma Alur Pasien Rawat Inap

B. MANFAAT ALGORITMA

Manfaat algoritma menjadi satu bagian penting dalam komputer, algoritma sangat
dibutuhkan untuk menjadi satu pengolah data yang ada pada komputer. Secara mudahnya,
manfaat algoritma bisa dikatakan untuk membuat software ataupun perangkat menjadi lebih
baik dan bisa berfungsi dengan lebih maksimal. Ada berbagai alasan kenapa manfaat
alogritma sangat dibutuhkan pada komputer, berikut alasan penting kenapa penggunaan
fungsi alogirtma sangat penting:
1. Menggunakan fungsi algoritma bisa digunakan untuk memecahkan program yang rumit

9
2. Menggunakan fungsi algoritma bisa menjadikan program yang besar menjadi program
yang lebih sederhana,
3. Fungsi algoritma bisa digunakan secara berulang atau lebih dari satu kali penggunaan
4. Memudahkan dalam pembuatan program
5. Bisa mengatasi segala masalah dengan logika dan urut
6. Menggunakan fungsi algoritma bisa melakukan pendekatan top-down dan juga divide
and conquer
7. Meminimalisir penulisan program yang berulang-ulang
8. Program yang ada menjadi lebih terstuktur dengan rapi sehingga dapat lebih mudah
untuk dipahami ataupun dikembangkan
9. Ketika terjadi kesalahan bisa dicari dengan mudah karena dengan fungsi algoritma bisa
mendapatkan alur yang jelas
10. Ketika ingin melakukan modifikasi pada program bisa dilakukan hanya pada satu modul
saja tanpa harus merubah dan menganggu modul yang lain
11. Dokumentasi yang lebih mudah

Dan yang dapat disimpulkan dari manfaat belajar algoritma adalah :


1. Memperkuat cara berfikir agar dapat menyelesaikan suatu masalah
2. Membantu otak agar berfikir jangka panjang
3. Memperkuat analisis ketika pembuatan program
4. Memperluas space berpikir.

Selain manfaat tersebut algoritma juga memiliki beberapa keuntungan yang bisa
didapatkan dari pembuatan ataupun penulisan argoritma, diantaranya adalah sebagai berikut:
1. Algoritma bersifat independen berasal dari bahasa pemrograman dan juga komputer
yang melaksanakannya artinya pembuatan algoritma tidak tergantung pada bahasa
pemrograman manapun.
2. Membuat notasi algoritma bisa diterjemahkan ke dalam bahasa pemrograman yang
beragam.
3. Output yang akan dikeluarkan sama meskipun menggunakan bahasa pemgrograman
yang berbeda.

C. ASPEK PENTING DALAM ALGORITMA

Beberapa aspek penting yang perlu diperhatikan dalam menulis algoritma adalah
sebagai berikut:

10
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam
notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan
ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang
menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang
menjalannya. Pseudocode adalah kode yang mirip dengan instruksi kode program
sebenarnya.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu
permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.

Selain aspek penting tersebut algoritma memiliki ciri-ciri, sifat, struktur dasar dan cara
penulisan. Tidak semua urutan langkah penyelesaian masalah yang logis dapat disebut sebagai
algoritma. Menurut Donald E. Knuth, algoritma mempunyai lima ciri penting yang meliputi:
1. Finiteness (keterbatasan), algoritma harus berakhirsetelah mengerjakan sejumlah
langkah proses.
2. Definiteness (kepastian), setiap langkah harus didefinisikan secara tepat dan tidak
berarti ganda.
3. Input (masukan), algoritma memiliki nol atau lebih data masukan (input).
4. Output (keluaran), algoritma mempunyai nol atau lebih hasil keluaran (output).
5. Effectiveness (efektivitas), algoritma harus efektif, langkah-langkah algoritma dikerjakan
dalam waktu yang wajar.

Sedangkan sifat algoritma adalah sebegai berikut:


1. Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman tertentu.
2. Tidak tergantung pada suatu bahasa pemrograman tertentu.

11
3. Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun.
4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis
dan dapat diterapkan di semua kejadian sehari-hari.

Seperti telah dijelaskan sebelumnya bahwa penyusun atau struktur dasar algoritma
adalah langkah-langkah. Suatu Algoritma dapat terdiri dari tiga struktur dasar, yaitu runtunan,
pemilihan dan pengulangan. Ketiga jenis langkah tersebut membentuk konstruksi suatu
algoritma yang digambarkan seperti pada Gambar 1.5 berikut ini.

Gambar 1.5. Struktur Dasar Algoritma (Munir, 2007)

Berdasarkan Gambar 1.5 tersebut maka penjelasan struktur dasar algoritma adalah
sebagai berikut:
1. Runtunan (sequence)
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara
berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah
instruksi sebelumnya selesai dikerjakan. Urutan dari instruksi menentukan hasil akhir dari
suatu algoritma. Bila urutan penulisan berubah makamungkin juga hasil akhirnya berubah.
Sebagai contoh perhatikan operasi aritmatika berikut ini, (4+3)*7=49, tetapi bila urutan
aksinya diubah maka hasil keluaran akan berbeda menjadi 4+(3*7) =25. Contoh lain dari
runtunan aksi adalah algoritma penukaran dua bilangan bulat, yaitu:
a. Deklarasikan A, B, dan C sebagai bilangan bulat
b. Masukkan nilai A=8 dan B=5
c. Masukkan nilai A ke dalam C
d. Masukkan nilai B ke dalam A
e. Masukkan nilai C ke dalam B

12
Ilustrasi dari runtunan dari algoritma pertukaran dua bilangan bulat tersebut adalah
sebagai berikut:

Gambar 1.6. Ilustrasi runtunan pada algoritma pertukaran (Munir, 2007)

Contoh ilustrasi lain proses runtunan pada algoritma digambarkan sebuah mobil yang
sedang menempuh perlajanan seperti ditunjukkan pada Gambar 1.7 berikut ini :

Gambar 1.7. Ilustrasi algoritma runtunan

13
Struktur runtunan atau berurutan dapat kita samakan dengan mobil yang sedang
berjalan pada jalur lurus yang tidak terdapat persimpangan seperti tampak pada Gambar 1.7
di atas. Mobil tersebut akan melewati kilometer demi kilometer jalan sampai tujuan tercapai.

2. Pemilihan (selection)
Dalam algoritma seringkali dijumpai suatu kejadian yang baru akan dikerjakan jika suatu
kondisi tertentu telah terpenuhi. Hal ini disebut dengan pemilihan yaitu instruksi yang
dikerjakan dengan kondisi tertentu. Kondisi adalah persyaratan yang dapat bernilai benar atau
salah. Satu atau beberapa instruksi hanya dilaksanakan apabila kondisi bernilai benar,
sebaliknya apabila salah maka instruksi tidak akan dilaksanakan. Contoh kasus pemilihan
adalah dalam penentuan bilangan genap atau ganjil berikut ini:
a. Masukkan bilangansebagai sebuah bilangan bulat
b. Bagi bilangandengan angka 2, simpan nilai sisa pembagian dalam variabel sisa
c. Jika nilai sisasama dengan 0 maka kerjakan langkah 4:
d. Tampilkan ”GENAP” ke layar
e. Jika nilai sisatidak sama dengan 0 maka kerjakan langkah 6
f. Tampilkan ”GANJIL” ke layar
g. Selesai.

Contoh lain proses pemilihan pada algoritma ditunjukkan pada beberapa algortima
berikut ini:

Gambar 1.8. Contoh algoritma pemilihan (Munir, 2007)

Dalam bahasa Indonesia “if” berarti “jika” dan “then” berarti “maka”. Pada contoh
pertama Gambar 1.8 “air di dalam ketel mendidih” merupakan kondisi, “matikan api kompor”
adalah instruksi atau aksi. Jadi pembacaan algoritmanya adalah jika kondisi “air di dalam ketel
telah mendidih” bernilai benar maka jalankan instruksi “matikan air kompor”. Demikian juga
cara pembacaan algoritma pemilihan untuk contoh yang lainnya.

14
Ilustrasi algoritma pemilihan juga dapat digambarkan pada sebuah mobil yang dalam
perlajanan dan harus mengambil jalur pada persimpangan tertentu seperti ditunjukkan pada
gambar 1.9 berikut ini :

Gambar 1.9 llustrasi algoritma pemilihan

Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan,
kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar
pelaksanaan program meloncat ke baris tertentu. Hal ini seperti ilustrasi gambar 1.9, sebuah
mobil dalam perjalanan yang tidak selalu lurus dan berurutan, namun harus memilih untuk
mengambil jalur belok kearah tertentu.

3. Pengulangan (repetition)
Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan
yang sama berulang kali tanpa mengenal lelah.Kita tidak perlu menulis instruksi yang sama
berulang kali, tetapi cukup melakukan pengulangan dengan instruksi yang tersedia.
Pengulangan merupakan kegiatan mengerjakan sebuah atau sejumlah aksi yang sama
sebanyak jumlah yang ditentukan atau sesuai dengan kondisi yang diinginkan. Beberapa
statemen pengulangan di bahasa pemrograman yaitu for…, while()..., do...while(),
repeat....until, for...downto...do, for...to...do dan lain-lain. Sebagai contoh adalah
menampilkan huruf tertentu sebanyak n kali ke layarsebagai berikut:
a. Deklarasikan variabel huruf untuk menyimpan karakter yang akan ditampilkan.
b. Deklarasikan variabel nuntuk menyimpan banyaknya perulangan
c. Deklarasikan variabel counter yang digunakan sebagai counter perulangan yang sudah
dilakukan.
d. Masukkan sebuah karakter dan simpan dalam variabel huruf

15
e. Masukkan banyaknya perulangan yang diinginkan dan simpan dalam variabel n
f. Set nilai counter dengan 0
g. Tampilkan huruf ke layar
h. Lakukan penambahan counter dengan 1
i. Jika nilai counter<n, kerjakan langkah 6
j. Jika nilai counter = n selesai.

Contoh lain sebagai ilustrasi algoritma perulangan juga dapat digambarkan pada
balapan mobil ditunjukkan pada Gambar 1.10 berikut ini :

Gambar 1.10 llustrasi algoritma pengulangan

Pada ilustrasi balapan mobil seperti tampak pada gambar 1.10 ini mobil-mobil peserta
harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba.
Siapa yang mencapai garis akhir paling cepat, dialah yang menang.

Latihan

Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan pengertian algoritma ?


2) Sebutkan manfaat dan keuntungan menggunakan algoritma?
3) Dalam penulisan algoritma ada beberapa aspek penting yang perlu diperhatikan,
Jelaskan?

16
Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silahkan pelajari
kembali materi tentang pengertian algoritma, manfaat algoritma dan aspek penting dalam
algoritma.

Ringkasan

1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun


secara sistematis dan logis.
2. Manfaat algoritma adalah untuk membuat software ataupun perangkat lunak menjadi
lebih baik dan bisa berfungsi dengan lebih maksimal.
3. Setiap orang dapat membuat aturan penulisan dan notasi algoritma sendiri tetapi
sebaiknya notasi algoritma tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4. Algoritma memiliki lima ciri penting yaitu: Finiteness, Definiteness, Input, Output dan
Effectiveness.
5. Algoritma dapat terdiri dari tiga struktur dasar, yaitu: runtunan, pemilihan dan
pengulangan.

Tes 1
Pilihlah salah satu jawaban yang paling benar!

1) Berikut ini yang bukan merupakan manfaat algoritma adalah ....


A. Bisa digunakan untuk memecahkan program yang rumit
B. Penulisan program yang berulang-ulang
C. Dokumentasi yang lebih mudah
D. Memudahkan dalam pembuatan program

2) Salah satu keuntungan dari algoritma adalah bersifat independen, yaitu ....
A. Bebas menggunakan bahasa apapun
B. Tergantung dengan bahasa pemrograman tertentu
C. Tidak tergantung pada bahasa pemrograman manapun
D. Mudah digunakan dan dapat diimplementasikan dengan bahasa pemrograman
apapun

17
3) Berikut ini yang bukan merupakan ciri algoritma adalah ....
A. Finiteness
B. Process
C. Input
D. Effectiveness

4) Struktur dasar algoritma terdiri atas tiga proses yaitu ....


A. Runtunan, Sequence, Repetition
B. Sequence, Selection, Pemilihan
C. Pemilihan, Runtunan, Selection
D. Runtunan, Pemilihan, Repetition

5) Selection adalah salah satu struktur dasar algoritma, definisi yang benar tentang
selection adalah ....
A. Instruksi algoritma yang dikerjakan dengan kondisi tertentu
B. Pemilihan perintah untuk menjalankan program
C. Instruksi algoritma untuk mengulang sebuah perintah
D. Instruksi algoritma untuk memilih pilihan terbaik

18
Topik 2
Pengantar Pemrograman
A. PENGERTIAN PEMROGRAMAN

Pemrograman adalah kumpulan instruksi-instruksi tersendiri yang biasanya disebut


source code yang dibuat oleh programmer (pembuat program). Program adalah kumpulan
instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai urutan nalar yang
tepat untuk menyelesaikan suatu persoalan. Bahasa Pemrograman adalah alat untuk
membuat program, contohnya: C, C++, C#, Pascal, Basic, Perl, PHP, ASP, JHP, Java, dan lain-
lainnya. Secara garis besar, unsur-unsur pemrograman adalah Input, Proses, dan Output
seperti pada Gambar 1.11 berikut ini :

Gambar 1.11. Unsur Pemrograman

Bagian Input merupakan proses untuk memasukkan data ke komputer melalui device
yang ada misalnya keyboard, mouse, scanner dll. Program melakukan proses membaca data
yang akan diolah dari device tersebut. Bagian Proses merupakan proses mengolah data yang
diinputkan dengan nenerapkan metode-metode, teknik-teknik, algoritma-algoritma yang ada.
Proses ini menghasilkan data output yang akan disampaikan kepada pengguna program.
Bagian Output merupakan proses untuk menampilkan data yang telah diolah, melaporkan
hasil pegolahan data melalui device seperti monitor, printer dll. Program melakukan proses
mencetak data ke device tersebut.
Sebagaimana telah diuraikan di sub bab sebelumnya bahwa algoritma adalah urutan
langkah-langkah terbatas yang disusun secara sistematis dan menggunakan bahasa yang logis
dengan tujuan menyelesaikan suatu masalah tertentu. Sementara program adalah kumpulan
instruksi berupa pernyataan yang ditulis dengan menggunakan bahasa pemrograman yang
melibatkan pemilihan struktur data. Beberapa pakar komputer menyatakan program dengan
formula:
Program = Algoritma + Bahasa Pemrograman

19
Bahasa pemrograman dan algoritma berhubungan sangat erat pada sebuah program.
Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program
menjadi kurang baik, demikian juga sebaliknya. Jika dihubungkan dengan program, maka
pembuatan algoritma harus memperhatikan kaidah:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman
manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang memprosesnya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.

Algoritma dibuat untuk membantu kita dalam mengkonversikan suatu permasalahan ke


dalam bahasa pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya dapat
dilaksanakan oleh komputer, algoritma harus diterjemahkan ke dalamnotasi bahasa
pemrograman. Ada beberapa hal yang harus diperhatikan pada penerjemahan tersebut, yaitu:
1. Pendeklarasian variabel
Variabel dibutuhkan oleh program dalam rangka menyimpan data masukan, memproses
dan mendapatkan hasil komputasi.
2. Pemilihan tipe data
Apabila dalam proses pembuatan program ternyata membutuhkanpendeklarasian
variabel maka diwajibkam memilih tipe data, karena setiap variabel pasti membutuhkan
tipe data ketika dideklarasikan.
3. Pemakaian atau pemilihan instruksi
Terdapat beberapa macam instruksi dalam bahasa pemrograman (sequence, selection
dan repetition), urutan langkah dalam algoritma dapat diterjemahkan menjadi salah
satu atau beberapa instruksi tersebut.
4. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa
pemrograman yang akan digunakan. Setiap bahasa pemrograman memiliki aturan
penulisan sintaks-nya sendiri.
5. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan.
Halteknis semacam ini diperhatikan ketikamengkonversikannya menjadi program.
6. Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau
interpreter. Masing-masing memiliki cara pengoperasian yang bisa jadi berbeda.

20
Komputer adalah mesin pemroses. Agar dapat dikerjakan oleh komputer, algoritma
harus ditulis dalam notasi bahasa pemrograman berupa instruksi yang dapat dipahami oleh
komputer sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi
teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat
dilaksanakan oleh komputer. Program ditulis dengan menggunakan salah satu bahasa
pemrograman. Kegiatan membuat program disebut pemrograman (programming). Orang
yang menulis program disebut pemrogram (programmer).Tiap-tiap langkah didalam program
disebut pernyataan atau instruksi. Jadi, program tersusunatas sederetan instruksi. Bila suatu
instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut
dikerjakan komputer.

B. BELAJAR MEMPROGRAM DAN BELAJAR BAHASA PEMROGRAMAN

Belajar memprogram atau membuat program berbeda dengan belajar bahasa


pemrograman. Belajar membuat program adalah belajar tentang strategi atau cara
menyelesaikan suatu masalah, yang diungkapkan dalam bentuk algoritma yang mudah dibaca
dan dipahami yang selanjutnya dituangkan dalam bahasa pemrograman. Belajar
memprogram bersifat pemahaman persoalan, analisis dan sintesis. Titik berat belajar
membuat program adalah desain program. Sedangkan belajar bahasa pemrograman adalah
belajar mengenai tata cara atau tata aturan penulisan pernyataan atau statement untuk
membuat program dalam bahasa tertentu saja. Tata aturan ini biasa disebut juga dengan
sintaks bahasa. Sintaks bahasa ini meliputi cara mendeklarasikan variabel, cara melakukan
perulangan, percabangan dan lain-lain. Tiap bahasa pemrograman memiliki aturan penulisan
sendiri-sendiri walaupun terkadang ada kemiripan aturan antar bahasa. Titik berat belajar
bahasa pemrograman adalah coding program.
Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa Assembly,
Fortran, Cobol, PL/I, Algol, Pascal, C, C++, Basic,Prolog, LISP, PRG, CSMP, Simscript, GPSS,
Dinamo, dan lain-lain. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas
dua kelompok besar:

1. Bahasa Pemrograman Bertujuan Khusus


Bahasa pemrograman yang digunakan untuk kepentingan khusus, antara lain yang
termasuk kelompok ini adalah Cobol untuk terapan bisnis dan administrasi. Fortran untuk
terapan komputasi ilmiah, bahasa Assembly untuk terapan pemrograman mesin, Prolog untuk
terapan kecerdasan buatan, bahasa-bahasa simulasi, dan sebagainya.

21
2. Bahasa Pemrograman Bertujuan Umum
Bahasa pemrograman yang dapat digunakan untuk berbagai aplikasi. Yang termasuk
kelompok ini adalah bahasa Pascal, Basic, Java, dan C. Tentu saja pembagian ini tidak kaku.
Bahasabertujuan khusus tidak berarti tidak bisa digunakan untukaplikasi lain. Cobol misalnya,
dapat juga digunakan untuk terapanilmiah, hanya saja kemampuannya terbatas. Yang jelas,
bahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang
berbeda pula.
Berdasarkan pada tingkat kerumitan sebuah bahasa pemrograman, apakah notasi
bahasa pemrograman lebih mendekati bahasa mesin atau ke bahasa manusia, maka bahasa
pemrograman dikelompokkan atas dua macam, yaitu bahasa tingkat tinggi dan bahasa
tingkat rendah. Istilah "bahasa pemrograman tingkat tinggi" tidak serta merta menjadikan
bahasa tersebut lebih baik dibandingkan dengan bahasa pemrograman tingkat rendah. Akan
tetapi, maksud dari "tingkat tinggi" di sini merujuk kepada abstraksi yang lebih tinggi
dibandingkan dengan bahasa tingkat rendah terhadap bahasa mesin. Dibandingkan dengan
harus berurusan dengan register, alamat memori dan stack-stack panggilan, bahasa
pemrograman tingkat tinggi akan berurusan dengan variabel, larik, dan ekspresi aritmetika
atau aljabar boolean. Selain itu, tidak seperti bahasa rakitan, bahasa tingkat tinggi tidak
memiliki kode operasi yang dapat secara langsung menjadikan bahasa tersebut menjadi kode
mesin. Fitur lainnya seperti fungsi-fungsi penanganan string, fitur pemrograman berorientasi
objek, input/output terhadap berkas juga terdapat di dalam jenis bahasa ini.
Secara umum, bahasa tingkat tinggi akan membuat pemrograman komputer yang
kompleks menjadi lebih sederhana, sementara bahasa tingkat rendah cenderung untuk
membuat kode yang lebih efisien. Dalam sebuah bahasa tingkat tinggi, elemen-elemen
kompleks dapat dipecah ke dalam beberapa elemen yang lebih sederhana, meski masih dapat
dianggap kompleks, di mana bahasa tersebut menyediakan abstraksi. Karena alasan ini, kode-
kode yang harus berjalan dengan efisien dapat ditulis dalam bahasa pemrograman tingkat
rendah, sementara bahasa tingkat tinggi digunakan untuk mempermudah pemrograman.
Bahasa tingkat rendah dirancang agar setiapinstruksinya langsung dikerjakan oleh
komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU
mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya.
Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin,
dan sulit dipahami manusia. Bahasa Assembly dimasukkan kedalam kelompok ini karena
alasan notasi yang dipakai dalam bahasaini lebih dekat ke mesin, meskipun untuk
melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.

22
Bahasa tingkat tinggi membuat pemrograman lebih mudah dipahami, lebih
“manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program
dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu
diterjemahkan terlebih dahulu oleh sebuah translator bahasa, yang disebut kompilator atau
compiler, ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa
tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.

Gambar 1.12. Tahapan pelaksanaan program oleh computer (Munir, 2007)

Dengan bertambah rumitnya arsitektur mikroprosesor modern, kompilator-kompilator


bahasa pemrograman tingkat tinggi dapat membuat kode yang lebih efisien dibandingkan
dengan para programmer bahasa pemrograman tingkat rendah yang melakukannya secara
manual. Perlu dicatat bahwa istilah "tingkat tinggi"dan "tingkat rendah" adalah relatif. Pada
awalnya, bahasa Assembly dianggap sebagai bahasa tingkat rendah, sementara COBOL, C, dan
lain-lainnya dianggap sebagai bahasa tingkat tinggi, mengingat mereka mengizinkan abstraksi
terhadap fungsi, variabel, dan evaluasi ekspresi. Akan tetapi, banyak programmer saat ini
mungkin menganggap bahasa C sebagai bahasapemrograman tingkat rendah, mengingat
bahasa pemrograman tersebut mengizinkan akses memori secara langsung dengan
menggunakan alamatnya, dan juga dapat menggunakan beberapa direktif bahasa Assembly.

C. MACAM-MACAM BAHASA PEMROGRAMAN

Bahasa atau dalam bahasa inggris language adalah suatu sistem untuk berkomunikasi.
Bahasa tertulis menggunakan simbol (yaitu huruf) untuk membentuk kata. Dalam ilmu

23
komputer, bahasa manusia disebut bahasa alamiah (natural languages), dimana komputer
tidak bisa memahaminya, sehingga diperlukan suatu bahasa komputer. Komputer
mengerjakan transformasi data berdasarkan kumpulan perintah - program - yang telah dibuat
oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh komputer, berstruktur
tertentu (syntax) dan bermakna.
Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program
komputer. Berbeda dengan bahasa alamiah, mis. Bahasa Indonesia, Inggris dsb. yang
merupakan bahasa alamiah (natural language), sintaks dan semantik bahasa pemrograman
(komputer) ditentukan secara kaku, sehingga bahasa pemrograman juga disebut sebagai
bahasa formal (formal language). Jadi, dalam bahasa pemrograman yang digunakan sebagai
alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan
berekspresi seperti laiknya dalam bahasa alamiah.
Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam
pembuatan program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan
tahapan dalam perencanaan (planning), perancangan (design) dan pewujudannya
(implementation). Dalam pengertian yang lebih sempit, pemrograman merupakan
pengkodean (coding atau program writing = penulisan program) dan pengujiannya (testing)
berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam
pembuatan program-program terapan komersial yang membedakan antara system analyst
yang bertanggung jawab dalam menganalisa kebutuhan, perencanaan dan perancangan
program dengan pemrogram (programmer) yang bertugas membuat kode program dan
menguji kebenaran program. Generasi bahasa pemrograman dibedakan menjadi empat
sebagai berikut :
1. Generasi I: machine language
2. Generasi II: assembly language : Asssembler
3. Generasi III: high-level programming language : C, PASCAL, dan sebagainya.
4. Generasi IV: 4 GL (fourth-generation language) : SQL

Selain dibedakan menjadi beberapa generasi tersebut berikut, ini adalah macam-macam
bahasa pemrograman berdasarkan tingkatannya dan kegunaannya:
1. Bahasa Tingkat Rendah
Merupakan bahasa ini yang lebih dekat ke mesin (hardware). Bahasa tingkat rendah
bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami
manusia. Berbeda dengan high-level programming languages, suatu bahasa yang sudah dekat
pada bahasa manusia.

24
2. Bahasa Mesin
Bahasa mesin merupakan representasi tertulis machine code (kode mesin), yaitu kode
operasi suatu mesin tertentu. Bahasa ini bersifat khusus untuk mesin tertentu dan
"dimengerti" langsung oleh mesin, sehingga pelaksanaan proses sangat cepat. Bahasa mesin
kelompok komputer tertentu berlainan dengan bahasa mesin kelompok komputer yang lain.
Abstraksi bahasa ini adalah kumpulan kombinasi kode biner "0" dan "1" yang sangat tidak
alamiah bagi kebanyakan orang - kecuali insinyur pembuat mesin komputer. Karena tidak
alamiah bagi kebanyakan orang, bahasa mesin juga disebut bahasa tingkat rendah.

3. Bahasa Assembly
Bahasa rakitan (assembly language) merupakan notasi untuk menyajikan bahasa mesin
yang lebih mudah dibaca dan dipahami oleh manusia. Bahasa ini sudah menggunakan simbol
alpabet yang bermakna. Contoh “MOV AX 1111”, pindahkan ke register AX nilai 1111. Proses
data oleh komputer berdasarkan perintah bahasa rakitan adalah cepat. Meski demikian masih
merepotkan-bahkan bagi kebanyakan pemrogram, karena masih harus mengingat-ingat
tempat penyimpanan data. Bahasa rakitan juga bersifat khusus untuk mesin tertentu. Contoh:
Assembler.

3. Bahasa Tingkat Tinggi


Adalah bahasa pemrograman yang dekat dengan bahasa manusia, kelebihan utama dari
bahasa ini adalah mudah untuk di baca, tulis, maupun diperbaharui, sebelum bisa dijalankan
program harus terlebih dahulu di-compile. Contoh Ada, Algol, BASIC, COBOL, C, C++,
FORTRAN, LISP, dan Pascal, dsb. Pada generasi bahasa pemrograman terakhir sekarang ini,
kedua cara interpretasi dan kompilasi digabungkan dalam satu lingkungan pengembangan
terpadu (IDE=integrated development environ-ment). Cara interpretasi memudahkan dalam
pembuatan program secara interaktif dan cara kompilasi menjadikan eksekusi program lebih
cepat. Pertama program dikembangkan interaktif, kemudian setelah tidak ada kesalahan
keseluruhan program dikompilasi. Contoh bahasa program seperti ini adalah Visual BASIC
yang berbasis BASIC dan Delphi yang berbasis PASCAL. Bahasa tingkat tinggi bersifat portable.
Program yang ibuat menggunakan bahasa tingkat tinggi pada suatu mesin komputer
bersistem operasi tertentu, hampir 100% bisa digunakan pada berbagai mesin dengan aneka
sistem operasi. Kalaupun ada perbaikan sifatnya kecil sekali.

4. Bahasa Generasi 3 dan 4


Lebih dekat ke bahasa manusia dibandingkan dengan high-level programming
languages. Biasanya dipakai untuk mengakses database. Contoh perintah pada bahasa SQL :
FIND ALL RECORDS WHERE NAME IS "JOHN".

25
5. Bahasa Pemrograman untuk Tujuan Tertentu
Bahasa pemrograman untuk tujuan atau kebutuhan tertentu. Tabel 1.1 berikut ini
contoh bahasa pemrograman untuk tujuan tertentu.

Tabel 1.1 Bahasa Pemrograman Untuk Tujuan Tertentu

Dalam bahasa pemrograman dikenal istilah compiler dan interpreter. Compiler adalah
suatu program yang menterjemahkan bahasa program (source code) ke dalam bahasa objek
(object code). Compiler menggabungkan keseluruhan bahasa program dikumpulkan kemudian
disusun kembali. Dalam melakukan penulisan bahasa pemrograman komputer ada beberapa
tahapan-tahapan yang harus dilakukan antara lain :
1. Pertama source code ( program yang ditulis) dibaca ke memory komputer.
2. Source code tersebut diubah menjadi object code (bahasa assembly).
3. Object code dihubungkan dengan library yang dibutuhkan untuk membentuk file yang
bisa di eksekusi.

Compiler memerlukan waktu untuk membuat suatu program yang dapat dieksekusi oleh
komputer. Tetapi, program yang diproduksi oleh Compiler bisa berjalan lebih cepat
dibandingkan dengan yang diproduksi oleh Interpreter, dan bersifat independen.
Berbeda dengan compiler, Interpreter menganalisis dan mengeksekusi setiap baris dari
program tanpa melihat program secara keseluruhan. Keuntungan dari Interpreter adalah
dalam eksekusi yang bisa dilakukan dengan segera. Tanpa melalui tahap kompilasi, untuk
alasan ini interpreter digunakan pada saat pembuatan program berskala besar. Secara lebih
rinci perbedaan Compiler dan Interpreter disajikan pada Tabel 1.2 berikut ini:

26
Tabel 1.2. Perbedaan Compiler dan Interpreter

Compiler Interpreter
Menterjemahkan secara keseluruhan Menterjemahkan Instruksi per instruksi
Bila terjadi kesalahan kompilasi maka source Bila terjadi kesalahan interprestasi dapat
program harus diperbaiki dan dikompilasi diperbaiki
ulang
Dihasilkan Object program Tidak dihasilkan obyek program
Dihasilkan Executable program Tidak dihasilkan Executable program
Proses pekerjaan program lebih cepat Proses pekerjaan program lebih lambat
Source program tidak dipergunakan hanya Source program terus dipergunakan
bila untuk perbaikan saja
Keamanan dari program lebih terjamin Keamanan dari program kurang terjamin

Dalam Compiler terjadi proses proses translasi dari file sumber menjadi file executable
yang ditunjukkan pada Gambar 1.13 berikut ini :

27
Gambar 1.13. Translasi Dari File Sumber Menjadi File Executable

Seluruh proses pada Gambar 1.13 tersebut dilakukan oleh preprosesor, compiler dan
linker yang hal tersebut dilakukan dengan satu aksi tunggal.
Dalam Bahasa pemrograman komputer terdapat tipe pemrograman. Tipe pemrograman
yang pertama adalah pemrograman terstruktur dan prosedural. Pemrograman terstruktur
adalah cara pemrosesan data yang terstuktur. Terstruktur dalam: analisa, cara dan penulisan
program. Prinsip pemrograman terstruktur adalah mempunyai ciri sebagai berikut:
1. Menggunakan rancangan pendekatan dari atas ke bawah (top down design)
2. Membagi program ke dalam modul-modul logika yang sejenis
3. Menggunakan sub-program untuk proses-proses sejenis yang sering digunakan
4. Menggunakan pengkodean terstruktur: IF ........... THEN, DO ........ WHILE dan lain-lainnya
5. Menghindari penggunaan perintah GO TO bila tidak diperlukan

28
6. Gunakan nama-nama bermakna, dan
7. Membuat dokumentasi yang akurat dan berarti.

Dalam perencanaan dan perancangan dari atas ke bawah, kategori dan penyelesaian
masalah dimulai dari bagian yang utama kemudian dibagi menjadi bagian yang lebih kecil.
Rancangan cara ini memudahkan penulisan, pengujian, koreksi dan dokumentasi program.
Tahapan rancangan atas ke bawah dalam pemrograman adalah sebagai berikut :
1. Tentukan keluaran (output) yang diminta, masukan (input) yang diperlukan dan proses-
proses utama yang diperlukan untuk transformasi data.
2. Membagi proses utama ke dalam modul-modul fungsional.
3. Buat algoritma msing-masing modul, dari modul utama ke sub-sub modul.

Setiap modul dalam proses rancangan atas ke bawah biasanya dibatasi dalam isi
maupun batasan-batasan berikut:
1. Setiap modul hanya mempunyai satu masukan dan keluaran
2. Setiap modul hanya mewakili satu fungsi program.

Rancangan (design) terstruktur sebagai berikut:


1. Membagi program menjadi subprogram
2. Menekankan fungsionalitas.
3. Cocok untuk sistem yang banyak mempunyai fungsi independen.

Gaya penulisan program terstruktur: Menggunakan indentasi sehingga jelas struktur


dan kontrol program. Memudahkan pembacaan, pemahaman, penelusuran kesalahan dan
pembuatan koreksi.
Bahasa pemrograman prosedural adalah bahasa pemrograman yang mendukung
pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling
memanggil dan dipanggil dari manapun dalam program dan dapat menggunakan parameter
yang berbeda-beda untuk setiap pemanggilan. Prosedur adalah bagian dari program untuk
melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu.
Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data,
pengkodean terstruktur dan kontrol program terstruktur. Kontrol program terstruktur adalah
sebagai berikut:
1. Runtun - urut (sequence)
2. Pilihan (selection)
3. Pengulangan (repetition - loop)

29
4. Batasan masalah merencanakan sistem dan spesifikasi program : siapa yang akan
menggunakan program dan untuk apa?. Cara menentukan batasan masalah adalah
dengan :
a. Menentukan tujuan dan hasil yang akan dicapai
b. Menentukan hal-hal yang diperlukan oleh sistem
c. Pengumpulan data
5. Pengembangan model pembuatan model dari sistem yang akan kita bangun, model
adalah suatu gambaran sederhana dari sistem yang kita buat. Dengan pembuatan model
akan terlihat dengan jelas hubungan antara objek-objek dalam sistem yang akan kita
bangun. Untuk penyelesaian aritmatik, biasanya model dibuat dalam bentuk rumus
matematik. Contoh: untuk membuat program luas_lingkaran kita membuat model
matematis c = axb
6. Rancangan algoritma pembuatan urutan instruksi yang akan ditulis pada program
7. Pemrograman implementasi algoritma ke dalam program (algoritma sendiri dalam
komputer adalah merupakan program)
8. Uji dan Validasi Pengujian terhadap program : seperti kesalahan penulisan (syntax
error), kesalahan saat eksekusi (runtime error) kesalahan logika program (program
berjalan tapi menghasilkan output yang salah-fatal error).
9. Dokumentasi Pembuatan catatan pada program terutama pada modul-modul yang
rumit.

Selain tipe pemrograman terdapat pula paradigm dalam pemrograman yaitu


merupakan sebuah cara pandang seorang programmer dalam menyelesaikan sebuah masalah
dan memformulasikannya kedalam sebuah bahasa pemrograman. Terdapat beberapa
paradigma pemrograman, antara lain:
1. Paradigma Imperatif
Inti dari paradigma ini adalah menjalankan sebuah urutan perintah, jalankan satu
perintah kemudian jalankan perintah yang selanjutnya. Sebuah program imperatif tersusun
dari sekumpulan urutan perintah yang akan dijalankan oleh komputer. Pemrograman
procedural merupakan salah satu contoh dari paradigma ini, dan seringkali dianggap sebagai
sebuah sebuah paradigma yang sama.
a. Ide dasarnya adalah dari model komputer Von Neumann.
b. Eksekusi langkah-langkah komputasi diatur oleh sebuah struktur kontrol.
c. Berdasarkan urutan-urutan atau sekuensial.
d. Program adalah suatu rangkaian prosedur untuk memanipulasi data. Prosedur
merupakan kumpulan instruksi yang dikerjakan secara berurutan.
e. Contoh bahasa pemrograman: Fortran, Algol, Pascal, Basic, C

30
2. Paradigma Fungsional
Pemrograman fungsional adalah sebuah paradigma yang menjadikan fungsi matematika
sebagai penentu dalam eksekusi komputasi. Fungsi tersebut merupakan dasar utama dari
program yang akan dijalankan. Paradigma ini lebih banyak digunakan di kalangan akademis
daripada produk komersial, terutama yang murni fungsional.
a. Ide dasar dari matematika dan teori fungsi.
b. Beberapa contoh bahasa fungsional adalah APL, Erlang, Haskell, Lisp, ML, Oz dan
Scheme.

3. Paradigma Logika
Umumnya digunakan pada domain yang berhubungan dengan ekstraksi pengetahuan
yang berbasis kepada fakta dan relasi. Dalam paradigma ini, logika digunakan secara murni
untuk representasi bahasa deklaratif yang kebenarannya ditentukan oleh programmer,
sedangkan pembukti-teorema atau model pembangkit digunakan sebagai pemecah masalah.
a. Berasal dari pembuktian otomatis didalam intelegensia buatan.
b. Berdasar kepada aksioma, aturan dan query.
c. Eksekusi program menjadi proses pencarian secara sistematik dalam sekumpulan fakta,
dengan menggunakan sekumpulan aturan.
d. Beberapa contoh bahasa pemrograman: ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual
Prolog, XSB, and λ Prolog

4. Paradigma Berorientasi Obyek


Pemrograman berorientasi obyek muncul untuk mengatasi masalah kompleksitas dari
sebuah perangkat lunak sehingga kualitas dari perangkat lunak tersebut dapat dikelola dengan
lebih mudah. Caranya adalah dengan memperkuat modularity dan reusability didalam
perangkat lunak tersebut. Pemrograman berorientasi obyek menggunakan obyek dan
interaksi antar obyek dalam penyusunan sebuah perangkat lunak. Paradigma ini semakin
banyak digunakan karena lebih mudah dalam menggambarkan kondisi yang ada pada dunia
nyata. Ide dari interaksi antar obyek yang ada pada dunia nyata. Antar obyek saling
berinteraksi dengan saling mengirimkan pesan (message). Terdapat beberapa karakteristik
utama, yaitu: Abstraksi, Enkapsulasi, Pewarisan dan Polimorfisme.

31
Latihan

Untuk dapat memperdalam pemahaman Anda mengenai materi di atas, kerjakanlah Latihan
berikut!

1) Jelaskan apa yang dimaksud dengan program dan pemrograman?


2) Sebutkan dan jelaskan unsure-unsur dalam pemrograman?
3) Jelaskan perbedaan belajar memprogram dan belajar bahasa pemrograman?
4) Bahasa pemrograman dibagi menjadi 4 generasi, sebutkan?
5) Jelaskan perbedaan compiler dan interpreter dalam bahasa pemrograman?
6) Jelaskan perbedaan pemrograman terstruktur dan pemrograman procedural?

Petunjuk Jawaban Latihan

Untuk membantu Anda dalam mengerjakan soal latihan tersebut silakan pelajari
kembali materi tentang Pengertian pemrograman, belajar memprogram dan belajar bahasa
pemrograman dan macam-macam bahasa pemrograman.

Ringkasan

1. Program adalah kumpulan instruksi atau perintah yang disusun sedemikian rupa
sehingga mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
2. Program ditulis dengan menggunakan salah satu bahasa pemrograman. Kegiatan
membuat program disebut pemrograman (programming).
3. Unsur-unsur pemrograman adalah Input, Proses, dan Output.
4. Belajar membuat program adalah belajar tentang strategi atau cara menyelesaikan
suatu masalah, yang diungkapkan dalam bentuk algoritma yang mudah dibaca dan
dipahami yang selanjutnya dituangkan dalam bahasa pemrograman.
5. Belajar bahasa pemrograman adalah belajar mengenai tata cara atau tata aturan
penulisan pernyataan atau statement untuk membuat program dalam bahasa tertentu.
6. Bahasa pemrograman dapat digolongkan atas dua kelompok besar yaitu bahasa
pemrograman bertujuan khusus dan bahasa pemrograman bertujuan umum.
7. Generasi bahasa pemrograman dibedakan menjadi empat generasi sebagai berikut :
Generasi I : machine language, Generasi II: assembly language : Asssembler, Generasi
III: high-level programming language (C, PASCAL, dan sebagainya), Generasi IV : 4 GL
(fourth-generation language) : SQL.

32 Teknologi Informasi Kesehatan III ◼


8. Dalam bahasa pemrograman terdapat 2 tipe pemrograman yaitu pemrograman
terstruktur dan pemrograman prosedural.
9. Terdapat beberapa paradigma pemrograman yaitu : Paradigma Imperatif, Paradigma
Fungsional, Paradigma Logika dan Paradigma Berorientasi Obyek.

Tes 2
Pilihlah salah satu jawaban yang paling benar!

1) Kumpulan instruksi atau perintah yang disusun sedemikian rupa sehingga mempunyai
urutan nalar yang tepat untuk menyelesaikan suatu persoalan disebut?
A. Program
B. Pemrograman
C. Coding
D. Programming

2) Terdapat tiga unsur utama dalam pemrograman, yaitu ....


A. Input ->Output->Proses
B. Proses->Input-> Output
C. Input->Proses->Output
D. Output->Proses->Input

3) Pernyataan yang tepat mengenai belajar memprogram adalah ....


A. Belajar bahasa pemrograman tertentu
B. Belajar penyelesaian suatu masalah dengan algoritma
C. Belajar menyelesaikan masalah dengan membuat program
D. Belajar tata cara atau aturan bahasa pemrograman

4) Berikut ini pernyataan yang tepat mengenai generasi bahasa pemrograman dan
contohnya adalah ....
A. Generasi II contohnya C
B. Generasi I contohnya assembly language
C. Generasi IV contonya machine language
D. Generasi III contohnya PASCAL

33
5) Suatu program yang dapat menterjemahkan bahasa program ke dalam bahasa objek
disebut ....
A. Source code
B. Object code
C. Compiler
D. Interpreter

34
Kunci Jawaban Tes
Tes 1
1) B
2) C
3) B
4) D
5) A

Tes 2
1) A
2) C
3) B
4) D
5) C

35
Glosarium
Object code : Suatu kode yang dihasilkan oleh suatu proses kompilasi yang bisa bermacam-
macam bentuknya tergantung pada target yang diinginkan.
Pseudocode : Kode yang mirip atau menyerupai dengan instruksi kode program
sebenarnya.
Source code : Suatu rangkaian pernyataan atau deklarasi yang ditulis dalam bahasa
pemrograman komputer yang terbaca manusia.

36
Daftar Pustaka
Ananda, D.; A. Suryan; P. Mayadewi; L. Rasiana dan H. Kusmayadi. 2009. Algoritma dan
Pemrograman. Politeknik Telkom Bandung.

Barakbah, A.R; T. Karlita dan A.S. Ahsan. 2013. Logika dan Algoritma. Politeknik Elektronika
Negeri Surabaya.

Munir, R. 2007. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Informatika.

Suprapto. 2008. Bahasa Pemrograman untuk Sekolah Menengah Kejuruan. Departemen


Pendidikan Nasional.

37

Anda mungkin juga menyukai