Anda di halaman 1dari 12

3. Algoritma memiliki no! atau lebih masukan (input).

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.

1 .4 Program dan Pemrograman


Algoritma baru efektif jika dijalankan oleh sebuah pemroses (processor).
Pemroses itu bisa manusia, komputer, robot, mesin, dan sebagainya. Pemroses
membaca setiap instruks! di dalam algoritma lalu mengerjakannya. Menurut
[GOL88], suatu pemroses harus:
1. Mengerti setiap langkah dalam algoritma,
2. Mengerjakan operas! yang bersesuaian dengan langkah tersebut.

Kita memfokuskan pemroses algoritma adalah komputer. Komputer adalah


alat bantu untuk meltjalankan perintah-perintah di dalam algoritma yang
telah "dimasukkan" ke dalamnya. Agar komputer mengerti perintah yang
dlmaksudkan, maka perintah tersebut harus dltulis dalam bahasa yang
dipahaml olehnya. Oleh karena !tu, algoritma barus ditulis dalam bahasa
khusus, yaitu bahasa komputer. Algoritma yang ditulis dalam bahasa
komputer dinamakan program. Bahasa komputer yang digunakan dalam
menulis program dinamakan bahasa pemrograman. Orang yang
membuat program komputer disebut pemrogram, dan kegiatan
merancang dan menulis program disebut pemrograman. Di dalam
pemrograman ada aktivitas menulis kode program, kegiatan ini dinamakan
coding.

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;

S.b 1 - Apakah Algo~trna dan Pemrogramanltu?



http://Www.pakteguh.com
var
Nilai : anay(l. .. Ninako) of integer; { cempat menylr.ipa11 data }
j,k,temp, N. Im.aka i integor1
begin
{baca data 11ilnl ujlan N or•n9 ""'ha,,Jswa)
nad!llJ'
tor j:•1 to H do
roadln(Nilai(j]J'
{cnd!or}

furutkM dot• dtrngon langlrnh-lnngknh bttrJ!mt•J


for j :•l to H•l do I ulan91 a<lbanyak II - J kllLJ
begin
(earl rilla1 terbeaor I
trnC\k11•j1
tor Jct•:l t>l to n do
U 111lei l~l > Nihl ljl than
ln'lok•t•k;
{cndJ.f}
londCor}
( t~111p1<Lkan nJJ•J torb1>tr•r pild• poelt11 yang topoc }
temp:•tril1\J tjl 1
tliln! (j) :•triloi (!mnkol 1
ulloi f'lmnkol 1 •ta111p1
ondr {for}

( culltrkan nJ.141 y11ng, audnh t•ruruc I)


tor j , .. 1 to ti do
wrl toln ttli 10 l fj I I 1
(Mdtor}
ond.
-~~gr~!:) Pr?.!l!?.~.e.ono,~!'!!\?.!!..nllaluE~~ orang mahosls':!!'

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.

14 Afgorilma dan Pemrograman

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
/

MOGuknn Ulama (CPU Kolunmn

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.

1 .5 Belajar Memprogram dan Belajar


Bahasa Pemrograman
Belajar meruprograrn tidak sama dengan helajnr bahnsa pemrogrmuan,
Belajar memprogram berarti mernpelajari rnetodologi pemecahan masalah,
kemudian menuliskan algorinua pernecahan mnsalah dalarn notasi tcrtcntu
[LlE96]. Sedangkan belajar bahasa pemrogrnmun berarti bclajar mernakai
suatu bahasa komputer, nruran tata babasanya, instruksi-lustruksinya, t:tta
cam pengopcrnsiun compiler-nya, dan mernnnfantkan instruksi-instruksl

9'1b 1 - Apakah Algontrna de. Pemrogmman llu? 15

http://Www.pakteguh.com
tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja
[UE96).

Di dalam pemrograman, kita lebih menekankan pada pemecahan masalah,


sementara menulis kode program adalah aktivitas terakhir. Mula·mula kita
pikirkan rancangan pemecahan masalah tanpa bergantung pada bahasa
pemrograman yang digunakan atau komputer yang menjalankan program
itu nanti. Rancangan tersebut berisi urutan langkah-langkah pencapaian
solusi yang biasanya ditulis dalam notasi-notasi deskriptif (notasi ini nanti
kita namakan notaal algoritmi)(). Karena belajar memprogram yang baik
bukanlah belajar membuat program "yang penting hasilnya benar", tetapi
perlu dipikirkan membuat program dengan menggunakan skema yang
benar. Hal inl, akan membuat program yang klta buat dapat bersih dari
kesalahan yang timbul pada waktu eksekusi.

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.

Hingga saat ini terdapat puluhan bahasa pemrograman. Kita dapat


menyebutkan antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada,
PL/I, Algol, Pascal, C, C++, Basic, Prolog, USP, PRG, bahasa-bahasa
simulasi seperti CSMP, Simscript, GPSS, Dinamo, dan masih banyak lag!.
Belakangan juga muncul bahasa pemrograman baru seperti Java dan Cl.
Berdasarkan tujuan aplikasinya, bahasa pemrograman dapat digolongkan
menjadi dua kelompok:
1. Bahasa pemrograman bertuJuan khusus (specflfc purpo•e
programming language). Yangtermasuk kelompok ini adalah Cobol
(untuk terapan bisnis dan administrasi), Fortran (aplikasi komputasi
ilmiah), bahasa assembly (aplikasi pemrograman mesin), Prolog
(aplika~i kecerdasan buatan), bahasa-bahasa simulasi (Simscript), dan
sebagamya.
2. Bahasa pemrograman bertujuan umwn (general purpose
programming language) yang dapat digunakan untuk berbagai
aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic, dan
C,C++.

Tentu saja pembagian ini tidak benar-benar kaku. Bahasa-bahasa bertujuan


khusus tidak berarti tidak bisa digunakaii imtuk aplikasi lain. Cobol misalnya,
dapat juga digunakan untuk terapan ilmiah, tetapi tentu kemampuannya
sangat terbatas. Yang jelas, bahasa-bahasa pemrograman yang berbeda
dikembangkan untuk bennacam·macam kegunaan yang berbeda pula.

11 Algorilma dan PernroQraman

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

Program dalam BllllllSll


Tlngk41 Tlnggf

Komplln1J) + l/nking

Program dalam Bahasa


Mosln

tntorprelasl olo hCPU

Operas!
( baea, lulls, hllung, petbandlngon. dsb.)
~!!..!:!.. Tahapa!!.pefaksa11Sa_11_~rograrn oleh kO!!'.'puler.

Bab 1 -Apakah Afgoritma don Pemrograman llu? 11

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

1.6 Notasi Algoritrnik


Di dal.am upabab 1.5 sudah ldta nyatakan bahwa notasi algoritmik dlbuat
independen dari spesi.filwi bahasa pemrograman dan perangkat keru
komputer yang menge~inya. Notasi algoritmlk lni dapat diterjemahkan
ke daJam berbagai bahasa pemrograman. Analoginya seperti resep membuat
kue. Sebuah resep dapat ditulis daJam bahasa apapu'o, bahasa lnggris,
Peraocis, Indonesia, Jepang, dan sebagainya. Apa pun babasa resep, kue
yang dihasillqln tetap sama, sebab algoritmanya sama (dengan catatan
semua,'~turan pada resep diikuti). Mengapa bisa demikian? Karena setiap
juru massk (yang merupakan pernroses) mampu melakukan operui dasar
yang sama, seperti mengocok telur, menimbang berat gula, dan sebagainya.
Jadi, resep membuat kue tidak terilcat pada babasa dan juru masak yang
mengerjakannya.
Demikian pula balnya komputer. Meskipun setiap komputer berbeda
teknologinya, tetapi secara umum semua komputer dapat melakukao
operasi-operasi dasar daJam pemrograman seperti operas! pembacaan data,
operasi perbandingan, operasi aritmetika, dan sebagainya. Perkembangao
teknologi komputer tidak mengubah operui-operasi dasar itu, yang berubah
hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain, setiap
program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam babasa
mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam babasa
mesin menyajikan operasi dasar yang sesuai, dan menghasillcan efek netto
yang sama pada setiap komputer.
Yang perlu dicatat adalab babwa notasi algoritmlk ·bukan bahasa
pemrograman, sehingga siapa pun dapat membuat ootasi algoritmik yang
berbeda. Hal yang penting meogenai ootasl tersebut adalah ia mudah dil>aca
dan dimengerti. Selain itu, meskipun nOta.si algoritmlk bukan notasi baku
sebagainlana pada notasi bahasa P.efDrograman, namun ketaatasasan
terhadap notasi perlu diperhatikan uotuk meoghindari kekeliruan.

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). .

1. Notasj I: menyatakan langkah-langkah algoritma dengan untaian


kalimat deskriptif.
.sucl1dean
·pJIOalllllf
D1ber1Jtan cilia bua.lJ b1l41nf1'U' bUl•t tak~aeg•t1t •&tan I• ~n).
Algor1tu ll'Ucl1deaa ...,,.,.r1
pe-g1 ber•Ulll terbe•ar, gc:d, dar1 tedua.
b1ll1Dgaatereebut; y•1tu b11aagaa bulat -1t1t terbeHr yang hab1•
--9'1 " daJI ...

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.

Dengan notasi bergaya lcalimat inl, deskripsi setiap langkah dijelaskan


dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti
'baca', 'hitung', 'bagi', 'ganti', dan sebagainya, sedangkan . pemyata~
koodlsional dinyatakan dengan 'jika ... maka .. .'. Notasi ini balk buat orang
awam, tetapi terdapat kesukaran menerjemahkannya langsung · ke dalam
ootasi ballasa peinrograman. ·

2. Nolui II: meoggunakan bagan-alir (flowchart)

Pada masa awal perkembangan komputer, ilmuwan menspeslfikasikan


algoritma sebagai bagan-alir (flowchart), yang mengekspresikao algoritma
sebagai sekumpulkan bentuk-bentuk geometri (sepertl persegl panjang,
li.ogkaran, jajaran genjang, bentuk-intan, dan sebagainya) yang berisl
langkah-langkah komputasi. KDtak empat persegl panjang .menyatakan
proses, sedangkan pemyataan koodisiooal dinyatakan dengan bentuk lntan
(diamond). Bagan·alir populer pada awal era pemrograman dengan
komputer (terutama dengan bahasa Basic, Fortran, dan Cobol). Bagan-alir
tidak banyak digunakan 1agi saat inl karena ia cenderung tidak praktis
dikonversi ke bahasa pemrograman, namun beberapa algoritma sederhana
maslh sering dlgambarlcan sebagai bagan-alir. Bagan·alir mengambarkan
allran instruksl di dalam program ·secara visual. Notasl algoritmlk dengan
diagram allr cocok uotuk masalab .yang kecil, oamun tidak cocolr. untuk
masalab yang besar karena membutuhkan berlembar halaman kertas. Selaln
itu, pengonverslan notasi algoritma ke notasi ballasa pe.mrograman j11ga
cenderungrelatlfleblhsulcar. ·

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

Para ilmuwan komputer leblh menyubl menulilbn algoritma dalam notul


yang leblh prlktis, yaitu Dotasi P"UcJo..codl. Pseudo-code {pseudo artfnya
aemu atau tldak sebenamya) adllah notul yang mirip denpn DOtui bahua
pemrograman tingbt tinggl, khllSll8ll)'ll (paling eerlng) baheea Pascal clan C.
Leblh tepatnya P"Udo-code adllah campuran antara bahu1 a1ami deng•n
bahua pem.rograman. Namun, tldak aepertl bahee1 pelDl'OgnlDID yang
dinpotkan ctengan tanda titllt koma (1m1iA:olon}, lndeb, Cormat keluaran,
aturan khll8U8, clan aebapinya, mab aembarang versl ~ dapat
dlterlma asalkan perintahnya tldak memblngungkan pembaca [UU8s]. Jadl,
tldaJd•h men&herankan jib banyalc ilmuwan komputer tidak m.eoyepakatl
suatu pseud~ tertentu, bahkan mereka c:enderung membuat "dlalek"
P"Udo-code de.opn styt. mereka aendiri. Keuntungan menggunakan notul
pseudo-colk adllah kemud•h•n mengonversinya-Jebih tepat diaebut

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)

Kata-kntn yang dignrisbawahi menyntakan katn-knta pentlng (keywords)


ynng nnntinyn berpadanan dengan kata penting pada bnhnsa kornputcr ynng
dlpilih untuk mentranslasikan algoritmn tersebut, Kallmat yang diapit
dengan pasangan kurung kurawal ({ <fan }) rneuyatukan komcntnr.
Komentar berguna untuk lebih memperjclas instruksi yang dltullsknn.
Peubah yang digunakan di dalnm algorirma diruliskan padn bagian
Deklarasi, sednngkan langknh-langkah penyelesian masalnh dinymnkan
pada baginn Algoril:ma. Data masukan yang diperlukan ali;oritma dibaca
dengan perintuh innll.l", sedangkan keluaran algoritmn ditulis dcngan perintnh
onlpnt. Karaktcr "~· mcnyatakan bahwa nilai di sebelah kauannya diiisiknn ke
dnlam peubah di sebelah kirinya, Kata-kata lain seperti while, integer, don lain-
lain akan dijclaskan di dalam Bab 3.

1.7 Pemrograman Prosedural


Algoritma berisi urutan langkah-langkah penyelesaian masalah. lni berarri
langkah-lnngkah di dalam algoritma menyatakan proses yang prosedural,

Bob 1 -Apakoh l\lgarilma dan Pomrogramanllu?

http://Www.pakteguh.com
Definisi prosedur menurut Kamus Besar Bahasa Indonesia (KBBn:

Prosedur : 1. tahap-tahap kegiatan untuk menyelesalkan suatu aktivitas;


: 2. metode Jangkah demi langkah secara eksak dalam
memecahkan suatu masalal\ (KBB11988).
Pada pemrograman prosedural, program dibedakan antara bagian data
dengan bagian instruksi. Bagian instruksi terdiri atas runtunan (sequenc.e)
instruksi yang dih!lcsanalcan satu per satu secara berurutan oleh sebuab
pemroses. Alur pelaksanaan instruksi dapat berubah karena adanya
pencwmganfkondisional.Data yang disimpan di dalam memori dimanipulasi
oleh instruksi secara beruntun. Kita katakan bahwa tahapan pelaksanaan
program mengikuti pola beruntun atau prosedural. Paradlgma pemrograman
seperti inl dianamakan pemrograman proeedunil Bahasa-bahasa tingkat
tinggi seperti Cobol, Basic, Pascal, Fortran, dan C mendukung kegiatan
pemrograman prosedural, karena itu mereka dlnamakan juga bahasa
prosedural.
Selain paradigma pemrograman prosedural, pandigma pemrogra.man yang
populer saat inl adalah pemrograman berorientasi objek (Object
Oriented Programming atau OOP). Pada paradlgma ini, data dan instruksl
dtl>ungkus (encapsulation) menjadi satu. Kesatuan lni disebut kelu (class)
dan lnstansiasi kelas pada saat run-time disebut obJek (object). Data di
dalam objek hanya dapat dlakses oleh lnstruksl yang ada di dalam objek itu
saja.

Paradigma pemrogra.man yang lain adalah pemrograman funplooal,


pemrograman deldaratif, dan pemrognman konkuren. Buku ini
hanya menyajikan paradlgma pemrogra.man prosedural saja. Paradlgma
pemrogra.man yang lain di.luar cakupan buku.

Soal IAtihan Bab 1


1. Tuliskan bebcrapa contoh algoritma yang lain dalam kehldupan sehari-
hari. Tuliskan juga beberapa contob langkah di dalam algoritmanya.
2. Tiga pasang suami lstri yang sedang menempuh perjalanan sampai ke
sebuah sungal, Di situ mereka menemukan sebuah perahu kecll yang
hanya blsa membawa tidak leblh dari dua orang setiap kali
menyeberang. Penyeberangan sungal dlrumltkan oleh kenyataan bahwa
pan suami sangat pencemburu dan tidak mau meninggalkan lstri-istrl
mereka jlka ada lelald lain. Tulislah algoritma untuk menunjukkan
bagaimana penyeberanganltu bisa dilakukan.

ii ' . '·I AJgorttma dan Pemrog19man

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

5. Pada peristiwa pemilihan kepala desa (kades), setiap warga yang


mempunyai hak pllih memilih satu di antara 4 calon kades. Kartu suara
memuat foto dan nomor urut kades. Warga mencoblos calon kades yang
dipilihnya, lalu memasukkan kartu suara ke dalam sebuah kotak. Setelah
pemungutan suara usai, kegiatan selanjutnya adalah menghltung jumlah
suara untuk maslng-masing calon. Untuk menghitungnya, panitia tidak
menggunakan tabel cayley seperti yang biasa dilakukan orang, tetapi
menyediakan empat buah kotak kosong (yang merepresentasikan 4
calon kades). Satu per satu kartu suara diambil dan dlbaca. Setiap kali
kartu suara berisi coblosan nomor satu, maka sebutir batu keeil
dlmasukkan ke dalam kotak 1. Begltu pula setiap kall kartu suara berisi
coblosan nomor dua, maka sebutir batu kecil dlmasukkan ke dalam
kotak 2. Hal yang sama juga dilakukan untuk kartu yang berisi coblosan
nomor 3 dan empat. Demikian seterusnya sampai semua kartu suara
habis dibaca. Akhimya, jumlah batu di dalam setiap kotak menyatakan
jumlah suara yang diraih oleh setiap calon kades. Tulislah algoritma
untuk menghitung jumlah suara untuk masing-masing calon kades
dengan metode perhitungan yang unik ini. Asumsikan bahwa semua
suara adalah sah (tidak ada golput).
6. Di manakah Jetak kesalahan algoritma menjalankan sepeda motor
berikut ini:

S.b 1 - Apakah Algorilma den Pemrograman llu? ·D

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.

24 Algorilmo don Pomrogroman

http://Www.pakteguh.com

Anda mungkin juga menyukai