Masukan ialah
besaran yang diberikan kepada algoritma untuk diproses. Algoritma
Euclidean mempunyai dua buah masukan, m dan n.
4. Algoritma mempunyai no! atau lebih keluarari (output). Xeluaran dapat
berupa pesan atau besaran yang memiliki hubungan dengan masukan,
Algoritma Euclidean mempunyai satu keluaran, yaitu m pada langkah 1,
yang merupalcan pembagi bersama terbesar dari kedua masukannya.
5. Algoritma harus sangkil (ejfectiue). Setiap langkah harus sederhana
sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
Salah satu dari sekian banyak bahasa pemrograman, dan akan kita pakai di
dalam buku ini, adalah bahasa Pascal. Program 1.1 di bawah ini adalah
contoh sebuah kode program dalam bahasa Pascal. Program tersebut
melakukan pengurutan sekumpulan nilai ujian mahasiswa. Data nilai ujian
mahasiswa dibaca dari papan ketik (keyboard), lalu diurutkan dari kecil ke
besar, dan akhimya basil pengurutan ditampilkan di layar peraga (monitor).
Untuk sementara, Anda tidak perlu memikirkan bagaimana membuat
program ini, karena materi seperti inilah yang akan Anda pelajari di dalam
buku algoritma dan pemroraman. Jadl, sabarlah dulu.
pn>gr- PlllOlJRO'l'llN I ·'
-I l'l"oSfra• untulc """'gurutkao 111.l&i uj1an .,.jwalab ....U•1•wa )
"""""Miiak• a 1000;
Secara 1;aris besur komputer tersusun ntas empnt komponen utarna: piranti
mnsuknn, pirnnti keluarnn, unil pcmroses utama, dan memori (Cnrnbar 1.7).
Unit pcmroscs u1a111a (Central Processing Unit - CPU) adalnh "otak"
kornputcr, y;mg berfungsl mengcrjakan operasi-operasi dasnr seperi operasi
perbandingan, operasi perhirungan, operasi membaca, dan operasi menulis.
Memori adalah komponen yang herfungsi menyimpan atau mengingat-ingat,
Yang disimpan di d:1ln111 memori adnlah program (berisi operasi-operasi
yang akan clikerjakan oleh CPU) clan data atau informasi (sesuaru yang
diolah oleh operasi-cperasi). Piranti masukan dan keluaran (I/O devices)
adalah alat yang rnemasukkan data atau program ke dalam mernori, clan alat
yang digunakan kompurer untuk mengomunikasikan hasil-hasil
aktivitasnya. Contoh piranti mnsukan antara lain papan ketik (keyboar•d),
pemindni (scanner), tetikus (mouse), joystick, dan cakram (disk). Conteh
piranti keluaran adalah layar peraga (111011itor), pencetak (printel'), perajah
(p/ottel'), dan cakram.
http://Www.pak.teguh.com
Mekanisme kerja keernpat komponen di alas dapat dijelnskan sebagai
berikut. Mula-rnula program dimasukkan kc dalam memori komputer.
Ketika program dieksekusi (execute), sctiap perintah di dnlam program yang
telah tersimpan di dalam mernori dikirim kc CPU. CPU mengerjakan
operasi-operasi yang bersesualan dengan perintah tcrsebut. Bila suatu
perintah di dalam program mernintn data rnasukan, maka dntn dibuca dari
piranti masukan, lalu dikirim ke CPU uuruk operasl yang memerlukannya.
Bila program menghasllknn keluaran, mukn keluuran tersebui dirulis ke
pi ran ti keluaran (misalkan dcngan meneetakuya kc layar pcn1g11) .
" .
Plranli Urill Pomrosos
' Plronll
/
I• I/
i'-\-----...1'1
Momori
1,,r-----1.
Gambar 1.7 Komponen-komponon utama kompuler Kompulcr mrdlrl alas Unit Pomrosos
uiama, Memorl. PlmnU Masukan, don Piran1f Keluaran.
http://Www.pakteguh.com
tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja
[UE96).
Bila rancangan pemecahan masalah sudah dibuat dengan skema yang benar,
maka rancangan tersebut slap dikodekan ke dalam bahasa pemrograman
agar program bisa dieksekusi oleh komputer. DI slnllah perlunya kita belajar
bahasa pemrograman. Ada banyak bahasa pemrograman yang tersedla saat
ini, tetapi desain pemecahan masalah harus dapat diterjemahkan ke dalam
bahasa apa pun.
http://Www.pakteguh.com
Berdasarkan "kedekatan" bahasa pemrograrnan apakah lebih condong ke
bahasa mesin atau ke bahasa manusia, maka bahasa pemrograman juga
dapat dikelompokkan atas dun macam:
1. Bahasa tingkllt rendah. Bahasa jenis ini dirancang agar setiap
instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui
penerjemah (translator). Contohnya adalah bahasa mesin (machine
language). Bahasa mesin adalah sekumpulan kode biner (o dnn 1).
Setiap perintah dalam bahasa mesin langsung "dimengerti" oleh mesin
dan lnngsuog dikerjakan. Bahasa tingkat rendah bersifa; prlmitif, sangat
sederhana, dan relatif sulit dlpahnml manusia. Bahasa assembly
dimasukk:m ke dalam kelompok ini karena notasi yang dipakni dalam
bahasa ini merupakan bentuk "manusinwi" dari bahasa mesln, dau
untuk rnelaksanakan instruksinya masih diperlukan penerjemahnn (oleh
assembler) ke dalam bahasa mesin, Bahasa tingkal rendah rnerupakan
bahasa pernrograman generasi pertama yang pernah ditulis orang.
a. Bahasa tingkat tinggi. Bnhasa jenis ini membuat program mcnjndi
lebih mudah dlpaharni, lebih "manuslawi", dan lebih dekat ke bahasa
manusia (bahasa lnggrls terutama). Kclemahannya, program dalam
bahasa tingkat tinggl tidak dapat tangsung dllnksannkan oleh komputer.
la perlu ditcrjernahkan terlcbih dnhulu oleh sebuah translator bal1aso
(yang disebut kompilator atau compiler) ke dnlam bahasa mesin
sebelum nkbimya dicksckusi oleh CPU. Tabapan pemrograrnan clan
pelaksanaan program oleh komputer digambnrkan pada Gambar 1.8.
Contoh bahasa tlngkat tinggi adalab Pascal, Pl/I, Ada, Cobol, Dasie,
Fortran, C, C++, dan sebagninya,
Algoritma
. Tmnsloal
Komplln1J) + l/nking
Operas!
( baea, lulls, hllung, petbandlngon. dsb.)
~!!..!:!.. Tahapa!!.pefaksa11Sa_11_~rograrn oleh kO!!'.'puler.
http://Www.pakteguh.com
Sebenarnya batasan penggolongan bahasa pemrograman itu tidak selalu
jelas. Pengertian tentang apa yang dimaksud dengan bahasa tingkat tinggi
seringkali berbeda pada beberapa peniills. Ada penulis yang mendefinisikan
bahasa tingkat tinggi dari sudut pandang kemudahan pemakai•nnya serta
orientasinya yang Jebih dekat ke bahasa manusia. Les Goldscb'lager [GOL88]
menuliskan spektrwn bahasa mulai dari bahasa tingkat tinggi (Pascal, Ada,
PL/I, Cobol), bahasa tingkat menengah (Bahasa Assembly, Basic, Fortran),
sampai bahasa tingkat rendah (bthasa mesin). Xita tidak mendebatkan
perbedaan cara peogelompokan bahasa. pemrograman itu di sini, karena
buku ini tidak membahas spesitikasl bahasa pemrograman tetapl, sekall Jagi,
. belajar memprograml
http://Www.pak.teguh.com
Di bawah ini kita kemukakan beberapa notasi yang digunakan untuk menulis
algoritma. Masalah yang dijadikan contoh ilustrasi adalah menghltung
pembagi bersama terbesar dengan algoritma Euclidean Oihat kembali Bab
1.2). .
ALGORl'DIA: ,-; I
1• .tika D • 0 -
ii adalah jawlll>lumya,
atop.
tetapi jilca " - o,
laajutlcan ke laJ>glcAh 2.
2. Bagilab 11 dangan " daJI adaalltan r adlllllh aiHnya.
3. Oallti nilai 11 dangan nilai n dan nilai n dengan nila.i r, lalu ul""9
Jcembali ke leaglcab 1.
http://Www.pakteguh.com
-----~
llllulal
Bacamdann
Tlclak
~L· -~-~'"-----,;i_n
'---
T" .. m
Ketennpn1
,.. MOD adalah operator pembagian bilangan bulat yang meughullkan slaa
basil pembagian. Cootohnya, 9 MOD 2 • 1 breoa 9 dlbagl 2 • 4 clan
memberlkan sisa '" 1.
b. Di dalam diagram alir di atu dltambahlcan lutrulari pembacaan n1lai m
clann.
3. Ngtpp m. mengguoakanpseudo-cocfe
IS:a.t113
http://Www.pakteguh.com
mentranslasi-ke notasi bahasa pemrograman, karena tcrdapat
korespondensi antara setiap pseudo-code dengan notasi bahasa
pemrograman, Korespondensi ini dapat diwujudkan dengan tabel rranslasi
dari notasi algoritmik ke notasi bahasa pemrograman apa pun.
Pseudo-code yang digunakan di dalam buku ini banyak diadopsi dnri bahasa
Pascal, oamun tidak benar-benar mematuhl semua sintaks Pascal. Algoritma
Euclidean jika kiln tulis dengan menggunakan notasi pseudo-code ndaluh
seperti di bawah ini:
PROClllJ\M 8Ucllde•n
l'rOffr•m uncuk MJ>ca.rJ gcd darl duo l>uoh J>1langltll bul.1t tok-ndgStlC 111
dnn n (m 2 n/. gcd d•rJ m dan n •daJah bJJ•Qg~a buJ•c positJl torb1JJJar
>"'"9 hAbJ• momliogJ m dan n.
06 iu.AAJIS l :
Ill, n I lneager I bllangafl bulat rang •k4n dicarJ pbt-ny11J
r 1 int09er I oi•• handi bagJ /
Al.GORlTMA:
!'.!''l!!lm,n) { m 2 n}
whila n.,, o do
--;-;.. n ( ld cUng ola•
m !!Oil hnaJl pombngintJ )
m ._ n
n ,_. r
ondwhllt>
/ JcondJnJ uoloonl po11gul,.,1gant n • e, 1Mko gcll(ra,n) • m /
!!E.il(m)
http://Www.pakteguh.com
Definisi prosedur menurut Kamus Besar Bahasa Indonesia (KBBn:
http://Www.pakteguh.com
3. Misalkan terdapat dua buah ember, masing-masing mempunyai volume
5 liter dan 3 liter. Tuliskan algoritma untuk memperoleh air sebanyak 1
liter dengan hanya menggunakan kedua ember tersebut,
4. Tiga buah cakram yang masing-masing berdiameter berbeda
mempunyai lubang di titik pusatnya. Ketiga cakram tersebut
dimasukkan pada sebuah batang besi A sedemikan sehingga cakram
yang berdiameter lebih besar selalu terletak di bawah cakram yang
berdiameter lebih kecil (Gambar 1.5). Tulislah algoritma untuk
memindahkan seluruh cakram tersebut batang besi B; setiap kali hanya
satu cakram yang boleh dipindahkan, tetapi pada setiap perpindahan
tidak boleh ada cakram yang lebih besar berada di atas cakram kecil.
Batang besi C dapat dipakai sebagai tempat peralihan dengan tetap
memegang aturan yang telah disebutkan.
A B c
http://Www.pakteguh.com
ALGORl!l'MA tr1o.njalanka.n ucpodtl motor1
i.. Hidupka.n ata.r(er
2. Mnoukkan kunoi kontok.
3. Tllk4n gigi l.
t. Porbooar gao
s . .:iai.n.
http://Www.pakteguh.com