I
T
S
PENGENALAN ALGORITMA DAN PROGRAM
Tujuan Instruksional Khusus :
Memahami Memahami teknik penyusunan algoritma dan penyajiannya penyajiannya dalam bentuk flowchart Memaha Memahami mi berb berbaga agaii tipe tipe data data serta serta opera operator tor aritm aritmati atika ka dan logika Mem ela ari asar- asar emro raman se erhana
5.1 Pengantar Memban Mem bangun gun se sebu buah ah progr rogram am pada pada dasa dasarn rnya ya adal adalah ah membu embuat at alat alat bantu antu untu untuk k menye enyele lesa saik ikan an suat suatu u mas asal alah ah.. Sebel ebelu um kita dapat apat meng enghas asiilkan lkan prog rogram ram yang ang mampu ampu memb embantu kita menyeles lesaikan masalah terse rsebut, kita dihadapkan dihadapkan pada 3 (tiga) tahapan pokok, yaitu :
Memaham Memahamii permas permasalah alahan an dan tujuan tujuan sebuah sebuah program program dibuat. dibuat. Pa Pada da tahap tahap ini ini kita kita haru harus s mamp mampu u meng mengid ident entifi ifikas kasii jenis, bentuk dan karakteristik input serta output output yang dihar diharap apkan kan.. Tetap Tetapii untu untuk k skala skala perm permasa asalah lahan an yang yang besar besar,, selai elain n jenis enis,, bentu entuk k dan karak arakte teri rist stik ik,, kita kita jug juga perlu erlu meng mengeta etahu huii deng dengan an pasti pasti asa asal, l, freku frekuens ensii dan dan vo volum lume e data data input input serta serta tujuan, tujuan, frekuensi frekuensi dan volume volume data output output yang yang diharapkan; Mampu menyusun konsep/rancangan/desain peny penyele elesai sain n dari dari masa masalah lah yang yang akan akan kita kita sele selesai saika kan. n. Dari hasil pemaham pemahaman an kita kita terhadap terhadap permas permasalaha alahan n di atas, atas,
121
I
T
S
Matrikulasi PIKTI-ITS
kita harus harus mampu mampu merancang sebuah alur proses untuk mengolah data input dan menghasilkan data output dengan jenis, bentuk bentuk dan karakteristik seperti seperti yang diharapkan; diharapkan; Mamp Mampu u mengi engimp mple leme ment ntas asik ikan an hasi hasill ranc rancan anga gan n kita kita dala dalam m bent bentuk uk progr rogram am yang ang ters terstr truk uktu tur. r. Program terseb tersebut ut dapa dapatt kita kita buat buat deng dengan an meng menggu guna nakan kan sebara sebarang ng bahasa pemrograman aman.. Untuk itulah lah kita diharuskan memahami dan menguasai komponen bahasa pemrograman dan teknik pemrograman dengan baik.
Untu Untuk k ta taha hap p perta ertam ma, kira kirany nya a hanya anya denga engan n se seri ring ng berlatih berlatih dalam dalam mengam mengamati ati dan memaham memahamii suatu suatu permasalah permasalahan an akan semakin terasah. Pada Pa da ta taha hap p kedu kedua a hasi hasill peng pengam amata atan n dan dan pem pemaham ahaman an terhadap terhadap permas permasalahan alahan riil harus harus dituangk dituangkan an ke dalam dalam sebuah sebuah bentuk bentuk alur penyeles penyelesaian aian masalah. masalah. Ini yang seringk seringkali ali disebut disebut sebagai algoritma. algoritma. Terd Terdap apat at se sebu buah ah alas alasan an meng mengap apa a haru harus s merumu merumuskan skan penyele penyelesaian saian masalah masalah tersebu tersebutt ke dalam bentuk bentuk alur yang terstruktur. Hal ini disebabkan komputer sebagai alat bantu yang berupa mesin tidak mampu menyelesaikan masalah sepe se pert rtii manus anusia ia yang yang se seri ring ngka kali li berp berpik ikir ir tida tidak k ters terstr truk uktu tur. r. Kompute Komputerr hanya hanya mampu mampu diberi diberi perintah perintah secara secara beruru berurutan tan dan mengop mengoptimal timalkan kan kemamp kemampuan uan kompute komputerr melakuka melakukan n komputa komputasi si dengan cepat dan dalam jumlah besar. Selan Se lanjut jutnya nya pada pada ta tahap hap ketig ketiga, a, hasil hasil penyu penyusun sunan an alur alur peny penyel eles esai aian an mas asala alah h (yan (yang g suda sudah h terb terben entu tuk k dala dalam m form format at algoritm algoritma) a) diaplikasi diaplikasikan kan ke dalam dalam komputer komputer melalui melalui penulis penulisan an sebuah program dengan menggunakan menggunakan bahasa pemrograman. Proses ini lazim disebut sebagai coding. coding. Sebuah program pada dasarnya berisi rangkaian instruksi yang saling terkait satu dengan lainnya (membentuk alur proses) dan dan ters tersus usun un se seca cara ra ters terstr truk uktu turr se sede dem mikian ikian hing hingga ga apab apabil ila a program program tersebu tersebutt dijalank dijalankan an akan dapat dapat menghas menghasilkan ilkan ou output tput seperti yang diharapkan. Pada sebarang bahasa pemrograman, alur lur inst instru ruks ksin inya ya akan kan sama ama untuk mas asal alah ah yang ang sa sam ma, perb perbed edaa aann nnya ya hanya anya terl terlet etak ak pada pada ca cara ra penu penuli lisa san n inst instru ruks ksii (sin (sinta taks ks)) yang yang berbe erbeda da anta antara ra sa satu tu bahas ahasa a pem pemrogr rogram aman an deng dengan an bahas bahasa a pemr pemrog ogram raman an yang yang lain, lain, sepert sepertii halny halnya a pada pada bahas bahasa a yang yang digu digunak nakan an untu untuk k berko berkomu munik nikasi asi antar antar manu manusia. sia. Karena alur dan bentuk rangkaian instruksi itulah yang mewakili logika logika pemikira pemikiran n dalam dalam menyelesa menyelesaikan ikan masalah masalah tersebu tersebut, t, atau 12 2
Pengenalan Algoritma
I
T
S
sering sering diseb disebut ut Algoritma. Algoritma. Dikat ikatak akan an algo algori ritm tma a kare karena na alu alur pem pemikir ikiran an ters terseb ebut ut ditu dituli lis s dalam alam bentu entuk k yang yang ters terstr truk uktu turr sedem sedemiki ikian an hing hingga ga muda mudah h untuk untuk diim diimple pleme menta ntasik sikan an menj menjadi adi sebuah program melalui bahasa pemrograman pemrograman sebarang.
5.2 Algoritma Algo Algorit ritma ma adala adalah h se sebu buah ah strate strategi gi yang yang meng mengand andalka alkan n kem kemampu ampuan an berp berpik ikir ir se seca cara ra logi logis s untu untuk k mem memec ecah ahkan kan suat suatu u masalah. Dalam algoritma, kita mulai dengan berpikir apa yang kita kita mili miliki ki (kek (kekua uatan tan dan dan kelem kelemah ahan an), ), se sela lanj njut utny nya a kita kita at atur ur langk langkah ah (aksi (aksi)) agar agar tuju tujuan an at atau au sas sasara aran n yang yang kita kita harap harapkan kan dapat terwujud. Begitu juga dalam hal membuat program komputer. Ada ket keterb erbata tasa san n sta tattemen emen yang ang dise sed diakan akan,, namu amun deng engan keterb keterbata atasan san itu kita kita siasa siasati ti lang langkah kah-lan -langka gkah h untu untuk k menca mencapai pai hasil program yang sesuai dengan keinginan. Misalnya di dalam bahasa bahasa pemrogr pemrograman aman tidak tidak ada fungsi/ fungsi/pros prosedu edurr bawaan bawaan yang yang mengkonversi mengkonversi nilai nominal mata uang menjadi bentuk terbilang. Dengan menggunakan strategi/algoritma kita dapat memecahkan persoalan tersebut dan dapat membuat programnya. Namun demikian, awal pembuatan algoritma tidak perl perlu u mempe emperh rhat atik ikan an stat statem emen en yang yang ada ada di suat suatu u bahas ahasa a pemrograman pemrograman karena algoritma bersifat umum.
5.3 Flowchart Untuk menggambarkan menggambarkan sebuah algoritma yang terstruktur dan dan mudah mudah dipah dipaham amii oleh oleh oran orang g lain lain (khusu (khususny snya a programmer programmer yang bertugas mengimplemen ementtasikan program), maka dibutuh tuhkan alat bantu yang berbentuk Diagr agram Alir lir (Flowchart ). ). Diagram alir ini akan menunjukkan alur di dalam program secara logika. Diagram alir ini selain dibutuhkan dibutuhkan sebagai alat alat ko komu muni nika kasi si,, juga juga dipe diperl rluk ukan an se seba baga gaii doku dokum menta entasi. si. Dan Dan sebelum sebelum lebih lebih jauh jauh memaham memahamii kompone komponen-kom n-kompone ponen n diagram diagram alir alir,, maka aka perl perlu u kira kirany nya a disa disamp mpaik aikan an at atur uran an-at -atur uran an dala dalam m perancangan perancangan diagram alir tersebut, tersebut, yaitu : 1. Diag Diagra ram m alir lir digamb ambarka arkan n dengan orien ienta tasi si dari ari ata tas s ke bawah dan dari kiri ke kanan; 2. Se Setia tiap p kegiat kegiatan/ an/pro proses ses dalam diagra diagram m alir alir haru harus s dinya dinyataka takan n secara eksplisit;
123
I
T
S
Matrikulasi PIKTI-ITS
3. Seti Setiap ap diag diagram ram alir alir haru harus s dim dimulai ulai dari dari sa satu tu Start Start Sta tate te dan dan berakhir pada satu atau lebih Terminal Akhir/Terminator/Halt State; 4. Guna Gunaka kan n Conn Connec ecto torr dan dan Off-Pa ff-Page ge Conn Connec ecto torr stat state e deng dengan an label label yang sama sama untuk untuk menunj menunjukkan ukkan keterhu keterhubun bungan gan antar antar path algoritm algoritma a yang terputu terputus/te s/terpoto rpotong, ng, misalnya misalnya sebagai sebagai akibat pindah/ganti halaman. halaman. Selain Selai n deng dengan an Flowch Flowchart art,, untu untuk k menu menulis liskan kan sebua sebuah h algori algoritm tma a dapa dapatt pula pula digun igunak akan an Pseudo-Code, Pseudo-Code, yaitu suatu teknik penulis penulisan an algoritm algoritma a dengan dengan menggu menggunaka nakan n sebanyak sebanyak mungkin mungkin kom ko mpone ponen-k n-kom ompo pone nen n dari dari sa sala lah h sa satu tu baha bahasa sa ting tingka katt ting tinggi gi (sua (suatu tu baha bahasa sa pemr pemrog ogram raman an yang yang mas asih ih memerl emerluk ukan an unit unit kompilato kompilatorr untuk untuk mengekse mengeksekusi kusi program program agar dapat dapat berjalan berjalan). ). Dalam arti penulisan algoritma dengan Pseudo-Code ini hampir menyerupai sebuah program, tetapi tanpa menyertakan atributatribut program (seperti tipe data, dll), hanya menuliskan proses intinya saja. Berik Be rikut ut ini ini adala adalah h simbo simbol-sim l-simbo boll state state yang yang digu digunak nakan an untuk untuk meng menggam gamba barkan rkan algori algoritma tma dalam dalam bent bentuk uk diagr diagram am alir. alir. Sedangkan keterangan yang terdapat di bawah masing-masing simbol simbol adalah kegunaan dari simbol-simbol yang bersangkutan. bersangkutan.
Proses
Proses alternatif
Predefined Proses
Penyimpanan Internal
Dokumen
Multi Dokumen
Preparation (Inisialisasi)
Input Manual
Operasi Manual
Terminator (Start & Halt)
12 4
Data
Pencabangan (keputusan)
I
Pengenalan Algoritma
Connector
T
Off-Page Connector
Kartu Penyimpanan Manual
Punch-Tape
Summing Junction
Or
Collate
Sort
Extract
Merge
Penyimpanan Data
Delay
Sequential Access Storage
Magnetic Disk
Direct Access Storage
Display
S
Contoh-contoh Contoh-contoh flowchart : 125
I
T
S
Matrikulasi PIKTI-ITS
Berikut Berik ut ini ini adala adalah h contoh contoh-con -contoh toh pemb pembua uatan tan flowch flowchart art untuk untuk menyelesaikan berbagai berbagai masalah : 1. Me Meng nghi hitu tung ng Lua Luas s Ling Lingka kara ran n
Start
Phi = 3.14
Input (Diameter)
Radius = diameter / 2 Luas = phi * radius * radius
Input (Diameter)
Stop
Gambar 5.1 Flowchart untuk menghitung luas lingkaran
2. Menam Menampil pilkan kan Kelip Kelipata atan n Bila Bilang ngan an 12 6
I
Pengenalan Algoritma
T
S
Start
Input (S, Upper)
i=S
Output (i)
i = i + Upper
i<=Upper
Stop
Gambar 5.2 Flochart untuk menampilkan kelipatan bilangan Keterangan : S : kelipatan yang ingin ditampilkan ditampilkan Upper : Batas Batas range range bilangan bilangan
3. Flowchart untu untuk k prog program ram deng dengan an inpu inputt bilan bilangan gan bulat bulat
positif 1 sampai dengan 100, dapat menghasilkan output tampilan bilangan ganjil antara 1 sampai dengan 100.
127
I
T
S
Matrikulasi PIKTI-ITS
Start
i=1
TIDAK i=ganji l? YA
Tampilkan i
i=i+1
I> 100 ?
TIDAK
YA
Stop
Gambar 5.3 Flowchart untuk menampilakn bilangan ganjil
12 8
I
Pengenalan Algoritma
T
S
4. Flowchart untuk untuk ko konve nversi rsi bilan bilangan gan berb berbasi asis s sepulu sepuluh h ke bilangan berbasis berbasis dua :
START
L
Hit = 1
Masukkan Bilangan Desimal (A)
Hitung hasil bagi, dan sisa hasil bagi A dengan 2 A = Hasil Bagi
N
Hit > 0
Y END
Masukkan Bilangan Desimal (A)
Hitung hasil bagi, dan sisa hasil bagi A dengan 2 A = Hasil Bagi
A = 0
Y
L Gambar 5.4 Flowchart untuk konversi bilangan berbasis sepuluh ke berbasis dua
Meskipun banyak cara untuk menulis liskan sebuah algo algori ritm tma, a, teta tetapi pi dihar iharap apka kan n alg algorit oritm ma yang yang ditu dituli lis s dapat apat dimengerti dimengerti oleh orang lain. Misalnya Anda sebagai seorang analis sistem, jangan sampai algoritma yang Anda tuliskan dipe diperse rsepsi psikan kan berb berbeda eda oleh oleh programmer programmer . Ma Maka ka,, ada ada norm orma-
129
I
T
S
Matrikulasi PIKTI-ITS
norma rma atau atura turan n–a –atu tura ran n tert terten entu tu yan yang berla erlaku ku sec ecar ara a interna internasion sional al agar agar semua semua praktisi praktisi kompute komputerr akan mendapa mendapatkan tkan persepsi yang sama atas sebuah algoritma. algoritma. Algoritma yang dibuat dengan kalimat memiliki kele kelem mahan ahan,, yakn yaknii hany hanya a akan akan dime dimeng ngert ertii oleh oleh prak prakti tisi si yang yang mengerti bahasanya. Begitu juga yang menggunakan gabungan kalimat kalimat dan statemen statemen bahasa bahasa pemrogram pemrograman an hanya hanya dimenge dimengerti rti bagi yang mengetahui bahasa tersebut. tersebut.
5.4 Dasar Pemrograman Komputer Program komputer adalah kumpulan instruksi (sta (state teme ment nts) s) yang yang disu disusu sun n se seca cara ra logi logis s untu untuk k memec emecah ahka kan n suatu suatu masalah. masalah. Instruk Instruksi-ins si-instruk truksi si yang yang diguna digunakan kan disesuai disesuaikan kan dengan jenis bahasa pemrograman pemrograman yang digunakan. Ada dua jenis utama dalam bahasa pemrograman, yaitu bahas bahasa a pemrog pemrogram raman an berb berbasi asis s bisni bisnis s dan dan berba berbasis sis matem matemati atis s (science (science). ). Bahasa Bahasa pemrogr pemrograman aman yang berbasis berbasis bisnis bisnis biasanya biasanya merup merupaka akan n prog program ram aplik aplikasi asi siap siap pakai pakai,, sepert sepertii dBase dBase,, Visua Visuall Basic Ba sic,, FoxP FoxPro, ro, FoxB FoxBase ase,, Clipp Clipper, er, COBO COBOL L dan dan sejeni sejenisny snya a yang yang merup merupaka akan n prog program ram aplik aplikasi asi basis basis data. data. Ada Ada juga juga Ph Photo otosho shop, p, Corel Corel Draw, Draw, dan sejenisnya sejenisnya yang merupakan merupakan program program aplikasi aplikasi untuk pengolaman gambar (image processing) atau multimedia. multimedia . Sedan Se dangka gkan n yang yang berb berbasi asis s science sepert sepertii Pa Pasca scal, l, C, Fortr Fortran an,, Mathlab, dan sejenisnya. sejenisnya. Program yang baik memiliki kriteria, antara lain: 1. mengha menghasilkan silkan kelu keluaran aran (outp (output) ut) yang yang sesua sesuaii dan dan benar. benar. 2. memilik memilikii ko komp mplek leksit sitas as algorit algoritma ma yang yang minim minimal. al. 3. memiliki kecocokan dengan peruntukan bahasa programnya. 4. memilik memilikii batas batas akhir akhir pen penyel yelesa esaian ian.. Setiap Seti ap prog program ramme merr memil emilik ikii style tersen tersendi diri ri dalam dalam menulisk menuliskan an program programnya. nya. Misalnya Misalnya untuk untuk mendapa mendapatkan tkan record data, data, seo seorang rang programmer programmer lebih lebih suka suka meng menggu gunak nakan an perin perintah tah FIND IND, sedan edang g yang lai lain leb lebih suka suka meng enggunakan akan SEEK EEK. Prog Progra ramm mmer er yang yang sa satu tu lebi lebih h suka suka mence encetak tak nila nilaii bebe bebera rapa pa variabel dalam satu baris sesuai dengan tipe datanya, sedangkan yang lain lebih suka mencetaknya secara string. Dan sebagainya. Ada pula programmer yang menuliskan sebuah program dalam dalam sa satu tu rang rangka kaia ian n penu penuh, h, ta tapi pi ada ada yang yang memb membag agi-b i-bag agii
13 0
I
Pengenalan Algoritma
T
S
programnya menjadi program utama (main ( main program) program) dan subsub program (subroutine atau procedure procedure). ). Conto toh h skem skema a prog program ram utam utama a dan dan sub-s sub-sub ub prog program ramnya nya dapa dapatt digam digambar barkan kan sebagai berikut:
Procedure Proc1 Program Utama {statements} ... ... Proc1 {statements} CALL Proc2 {statements} ... ...
{statements} ... ... EXIT
CALL
END
Procedure Proc2 {statements} ... ... ...
EXIT
Gambar 5.5 Contoh skema program utama dan sub-sub programnya
Penulisan program yang terstruktur dan menggunakan sub-sub prog program ram tentu tentunya nya dima dimaksu ksudka dkan n agar agar ketik ketika a terja terjadi di kesala kesalaha han n prose ses s ata tau u penu enulisa lisan n akan akan lebih ebih mudah menelusu lusuri rin nya (ter (terut utam ama a untu untuk k prog progra ram m yang yang besa besarr at atau au memi memili liki ki bany banyak ak fungsi).
5.4.1 Tipe Data dan Struktur Data Di setiap bahasa pemrograman telah disediakan berbagai tipe data dan sebagai programer dipersilakan untuk memilihnya.
131
I
T
S
Matrikulasi PIKTI-ITS
Tent Tentu u sa saja ja kita kita akan akan mem memilih ilih tipe tipe data data yang yang se sesu suai ai deng dengan an karakteristik data yang akan kita olah. Pada Pada intinya intinya simbol-sim simbol-simbol bol yang yang digunak digunakan an di kompute komputerr terdiri atas huruf, angka, dan tanda baca lainnya. Simbol-simbol terse tersebu butt merup merupaka akan n eleme elemen n dari dari data data dan dan memi memiliki liki tipe tipe data. data. Umumnya tipe data terdiri atas karakter, teks atau string, dan numerik. Namun sesuai dengan kebutuhan pengguna yang terus bertambah, maka tipe data terus berkembang. Banyak bahasa pemrograman pemrograman menambahkan menambahkan tipe data dengan boolean (logical), binary, float, date, memo dan sebagainya. a. Tipe Data Numerik Besar angka yang bisa diterima ima komputer ter sangat terg tergan antu tung ng denga engan n jumla umlah h bit (N) (N) prose roseso sorr ko kom mpute putern rnya ya.. Umumny Umumnya a batasan batasan angka angka yang bisa diterim diterima a adalah adalah –(2^(N-1)) –(2^(N-1)) sampai sampai dengan dengan 2^(N-1) 2^(N-1)-1. -1. Untuk Untuk komputer komputer 32 bit batasann batasannya ya adalah -2.147.483.648 sampai dengan 2.147.483.647. 2.147.483.647. Untu Untuk k menam enampu pung ng nilai nilai data data ke vari variab abel el dalam dalam suat suatu u baha bahasa sa pem pemrogr rogram aman an tert terten entu tu,, maka aka kita kita haru harus s memah emaham amii fasi fasili lita tas s apa apa sa saja ja (sta (state tem ments ents dan dan jeni jenis s vari variab abel elny nya) a) yang yang disediakan oleh bahasa pemrograman yang kita gunakan. Juga kita kita perh perhati atikan kan fasili fasilitas tas opera operasi si untu untuk k tipe tipe data data nume numerik riknya nya,, misal isalny nya a apak apakah ah ada ada MOD, DIV, IV, AV AVER ERA AGE, MAX AX,, MIN MIN dan sebagainya. Adapun Adapun jenis jenis numerik numerik (bilang (bilangan) an) yang biasa biasa digunak digunakan an terdiri atas : - bilangan ko kompleks - bilangan re real - bilangan ra rasional - bilangan irasional - bilangan bu bulat - dan se sebagainya Bilangan real adalah bilangan yang menggunakan nilai pecahan. Bilan Bilangan gan bulat bulat adala adalah h bilan bilangan gan tanpa tanpa pecah pecahan an (integ (integer) er),, baik baik positif positif maupun maupun negatif negatif.. Di luar bilanga bilangan-bi n-bilang langan an itu ada juga juga yang yang merupak merupakan an bagian bagian dari bilangan bilangan-bila -bilanga ngan n di atas seperti seperti bilangan prima, bilangan cacah, bilangan ganjil, bilangan genap, dan lain-lain. Untuk keperluan penempatan berapa banyak jumlah digit yang yang bisa digunak digunakan an oleh bilang bilangan-bi an-bilang langan an di dalam dalam variabel variabel dapat meng enggunakan akan vari variab abe el berp erpres esiisi tunggal maup aupun 13 2
Pengenalan Algoritma
I
T
S
berpresisi ganda. Misalnya di suatu bahasa pemrograman, untuk bilangan integ integer er single single precis precision ion (presisi (presisi tungga tunggal) l) disediak disediakan an panj panjan ang g 8 digi digit, t, dan dan untu untuk k double double precision precision (presisi (presisi ganda) ganda) disediakan panjang 16 digit. Untuk bilangan real sigle precision disediakan 16 digit, dan untuk real double disediakan 32 digit. Operas rasi terha rhadap tipe data numerik sama halny lnya melak lakukan perhitungan matema ematis. Ada penjumlahan, pengurangan, perkalian, perpangkatan, dan sebagainya. Berikut macam-mac macam-macam am operasi operasi (operator) yan yang ada ada ses esu uai uruta rutan n pengerjaannya pengerjaannya : ^ : perpangkatan perpangkatan : perkalian * : pembagian / : penjumlahan + : pengurangan Urutan Urutan peng pengerj erjaan aan akan akan berub berubah ah jika jika terd terdapa apatt tanda tanda kurun kurung. g. Tanda kurung menjadi prioritas utama yang dikerjakan. Contoh : 2^3*4–6/2+5 = ((2 ^ 3 )* 4) – (6 / 2) + 5 = (8 * 4) – (3) + 5 = 32 – 3 + 5 = 34 2 ^ 3 * (4 – 6) 6) / 2 + 5
= (2 (2 ^ 3 )* )* ((4 ((4 – 6) 6) / 2) + 5 = 8 * (-2) / 2 + 5 = -16 / 2 + 5 = -8 + 5 = -3 Ada Ada pula pula opera operasi si tambah tambahan an yang yang biasa biasanya nya dised disediak iakan an bahas bahasa a pemrograman, pemrograman, seperti : Operator MOD DIV ABS INT VAL
Kegunaan Sisa hasil pembagian, misalnya MOD(10/3) = 1 Pembag Pembagian ian yang yang meng menghas hasilk ilkan an bilan bilangan gan integer (bulat), misalnya DIV(10/3) = 3 Mempositifkan Mempositifkan bilangan negatif, misalnya ABS(-45)=45 ABS(-45)=45 Membulatkan bilangan real , misalnya INT(34.67) = 34 Menu Me num merik erikka kan n bila bilang ngan an yang yang disim isimpa pan n dalam alam string, misalnya VAL(‘27’) = 27 133
I
T
S
Matrikulasi PIKTI-ITS
SQR TRUNC
Menghitung Menghitung nilai akar dari, misalnya SQR(25) = 5 Mem Me mbulat ulatka kan n ke at atas as bila bilan ngan gan real , misal isalny nya a TRUNC(34,67) TRUNC(34,67) = 35
Kond Kondisi isi (dise (disebu butt juga juga deng dengan an opera operator tor relasi relasion onal) al) yang yang biasa biasa mengikutinya mengikutinya adalah : = sama dengan > lebih besar dari < lebih kecil dari <> tidak sama dengan >= lebih besar atau sama dengan dengan <= lebih kecil atau sama dengan b. Tipe Data Logika Oper Operat ator or logi logika kall (boolean) biasa iasa digun igunak akan an untu untuk k melak melakuka ukan n peng pengece ecekan kan suatu suatu ko kond ndisi isi suatu suatu progr program am.. Kond Kondisi isi yang dicek bisa berhubungan dengan variabel numerik maupun variab variabel el string string.. Nilai Nilai data data dari dari variab variabel el boolean adalah adalah kondisi kondisi bena benarr atau atau salah salah (true or false). false ). Opera Operator tor logika logika dasar dasar terdi terdiri ri atas AND, OR dan NOT. 1. AND AND adalah operasi yang melakukan pengecekan atas 2 kondisi atau variabel yang ada. Jika kedua kondisi bernilai true, true, maka hasil operasi AND adalah true, selain itu false. false. Berikut tabelnya : Kondisi (Variabel 1) Kondisi (Variabel 2) AND True (terpenuhi) True (terpenuhi) False (tidak terpenuhi) False (tidak terpenuhi)
True (terpenuhi) False (tidak terpenuhi) True (terpenuhi) False (tidak terpenuhi)
True False False False
2. OR OR adala adalah h opera operasi si yang yang melaku melakukan kan peng pengece ecekan kan atas atas 2 kond ko ndisi isi atau atau variab variabel el yang yang ada. ada. Jika Jika salah salah satu satu ko kond ndisi isi bernilai true, true, maka hasil operasi OR adalah true, selain itu false. false. Berikut tabelnya : Kondisi (Variabel 1) Kondisi (Variabel 2) OR True (terpenuhi) True (terpenuhi) False (tidak terpenuhi)
13 4
True (terpenuhi) False (tidak terpenuhi) True (terpenuhi)
True True True
I
Pengenalan Algoritma
False (tidak terpenuhi)
False (tidak terpenuhi)
T
S
False
3. NOT NOT adalah operasi yang melakukan pengecekan atas 1 kondisi atau variabel yang ada. Jika kondisi bernilai true, true, maka aka hasi hasill oper operas asii NOT NOT adal adalah ah false, false, dan dan sebali sebalikny knya. a. Berikut tabelnya : Kondisi (variabel) NOT True (terpenuhi) False (tidak terpenuhi)
False True
Tipe data logikal adalah variabel atau record yang record yang bernilai logikal (true atau false). false). Opera Operasi si AND, AND, OR dan dan NOT NOT dapa dapatt diga digabu bung-g ng-gab abun ungka gkan n untu untuk k mend mendapa apatka tkan n suatu suatu ko kond ndisi isi yang yang diin diingi ginka nkan. n. Be Berik rikut ut co conto ntoh h dalam salah satu bahasa pemrograman : c. Tipe Data String String merupakan salah satu tipe data di komputer, dan merupaka merupakan n kumpulan kumpulan dari karakter. karakter. Nilai Nilai data string string tentun tentunya ya harus ditampung ditampung di variabel atau field yang field yang berjenis string pula. String umumnya digunakan untuk menyimpan data yang tidak perlu diproses secara matematis, namun namun banyak pula orang yang yang lebih lebih suka suka menyi menyimp mpan an data data nume numerik rik ke dalam dalam tipe tipe data data string. string. Umumnya Umumnya bahasa bahasa pemrogr pemrograman aman menyedi menyediakan akan fasilitas fasilitas untuk untuk mengub mengubah ah nilai nilai data data numerik numerik yang disimpan disimpan dalam dalam tipe tipe data data stri string ng menja enjadi di tipe tipe data data num numerik erik.. Se Sehi hing ngga ga nila nilaii data data tersebut dapat diproses secara matematis kembali. Nomo Nomorr Po Pokok kok Mahasi Mahasiswa swa (NRP (NRP)) adala adalah h se sebu buah ah co conto ntoh h yang nilai datanya merupakan merupakan kode-kode yang dapat dijabarkan. Misalnya Misalnya NRP = ‘51981 ‘519810008 00084’. 4’. Nilai Nilai tersebu tersebutt dapat dapat dijabarka dijabarkan n menja menjadi di : karak karakter ter perta pertama ma menu menunj njukk ukkan an fakul fakultas, tas, karakt karakter er kedu kedua a menu menunj njuk ukkan kan juru jurusa san, n, kara karakt kter er keti ketiga ga dan dan keem keempa patt menu menunju njukkan kkan ta tahu hun n masuk masuk dan dan se sebag bagain ainya. ya. Pe Penj njaba abaran ran ko kode de seperti di atas lebih sulit dilakukan jika menggunakan tipe data numerik. Bagian dari string disebut dengan substring, seperti pada contoh NRP di atas, tahun masuk (karakter ketiga dan keempat) merup merupaka akan n subs substri tring ng dari dari NRP. NRP. Ma Macam cam-mac -macam am opera operasi si strin string g
135
I
T
S
Matrikulasi PIKTI-ITS
adal adalah ah:: pemen emeng ggalan alan,, peng enggabu abungan, an, penca cari rian an posisi sisi,, perhitungan perhitungan banyak karakter, dan kombinasi dari semua operasi.
5.4.2 Looping a. Looping Tunggal Perintah Perintah ini berkaitan berkaitan dengan dengan pengula pengulangan ngan semua semua perinta perintah h yang ada di antara perintah pembuka pembuka dan penutup pengulangan. pengulangan. Beberapa contoh perintah tersebut dapat dilihat di bawah in (DO WHILE – ENDDO, REPEAT - UNTIL, FOR – NEXT). 1. DO WHIL HILE – ENDDO DDO Bentuk umum penulisannya : DO WHILE {kondisi} {Statements} ENDDO Contoh penggunaan : a = 1 a < 10 WRITE a a = a + 1
DO WHILE
{lakukan selama nilai a lebih kecil dari 10} {cetak a} {tambah a dengan 1}
ENDDO
Hasilnya adalah mencetak bilangan bulat dari 1 sampai 9 2. REPEAT – UN UNTIL Bentuk umum penulisannya : REPEAT {Statements} UNTIL {kondisi} Contoh penggunaan : a = 1 REPEAT
a a = a + 1 a < 10
WRITE
UNTIL
{cetak a} {tambah a dengan 1} {ulangi selama nilai a kurang dari 10} 1 0}
Hasilnya adalah mencetak bilangan bulat dari 1 sampai 9 13 6
I
Pengenalan Algoritma
T
S
3. FOR – NEXT Bentuk umum penulisannya penulisannya : var = op1 TO op2 [STEP [STEP op3] FOR FOR var {Statements} NEXT (var) Keterangan : var : variabel numerik numerik op1 : operand 1, bisa berupa angka atau variabel numerik op2 : operand 2, bisa berupa angka atau variabel numerik op3 : operand 3, bisa berupa angka atau variabel numerik [ ] : bersifat optional (boleh ditulis maupun tidak) Contoh penggunaan : FOR i NEXT
= 1 to 9 WRITE i i
{lakukan i dari 1 hingga 9} {cetak i} {tambahkan i dengan 1, dan ulangi dari FOR }
Hasilnya adalah mencetak bilangan bulat dari 1 sampai 9. Contoh lainnya : FOR i NEXT
= 1 to 9 STEP 2 WRITE i i
Hasilnya adalah mencetak bilangan ganjil dari 1 sampai 9. FOR i NEXT
= 10 to 1 STEP -2 WRITE i i
Hasilnya adalah mencetak bilangan genap : 10, 8, 6, 4, 2. b. Nested Looping Selai Se lain n loo loopi ping ng tung tunggal gal,, ada ada juga juga loop loopin ing g yang yang berad berada a dalam dalam loop loopin ing g lain. lain. Cara Cara penu penulis lisann annya ya jang jangan an sampai sampai skema skema loo looping ing terse seb but sa sali lin ng berp erpoto ton ngan. an. Conto toh h skem kema dan penulisannya penulisannya dapat diikuti di bawah ini:
137
I
T
S
Matrikulasi PIKTI-ITS
Loop Dalam
Loop Luar
Gambar 5.6 Skema Nested Loop FOR i
= 1
2 FOR j = 1 TO
WRITE NEXT NEXT
3 i * j
TO
j
i
Hasilnya : 1, 2, 3, 2, 4, dan 6. Berikut ini adalah contoh penulisan yang salah : FOR i
= 1
2 FOR j = 1 TO
WRITE NEXT NEXT
3 i * j
TO
i
j
letak letak kesalah kesalahan an pada pada variab variabel el i dan dan j yang yang bersi bersilan langan gan dalam dalam loop-nya.
5.4.3 Statements dan Kondisi (Keputusan) a. Kondisi Tidak Bertingkat Perintah-perintah ini berisi mengenai langkah selanjutnya yan yang akan akan dilak ilakuk ukan an bila bila ko kond ndis isii terp terpen enuh uhi. i. Ata tau u lan langkah gkah selanj selanjutn utnya ya bila bila ko kond ndisi isi tidak tidak terp terpenu enuhi. hi. Pe Perin rintah tah-per -perin intah tah itu melip eliput utii IF – ENDI ENDIF, F, dan dan DO CASE CASE – END END CASE CASE.. Se Seka kali li lagi lagi,, bentu bentuk k penu penulis lisan an di sini sini haru harus s dises disesuai uaikan kan deng dengan an aturan aturan di bahasa pemrograman yang Anda gunakan. Berikut beberapa perintah yang berkaitan dengan kondisi dalam sebuah pemrograman. 13 8
I
Pengenalan Algoritma
T
S
1. IF – ENDIF Bentuk umum penulisannya penulisannya : IF {kondisi} {statements} [ELSE] {statements} ENDIF Contoh penggunaan : a = 10 IF a + 5 > 30 WRITE a + 5 ENDIF
Di bahasa pemrograman BASIC dapat ditulis dengan : a = 10 IF a + 5 > 30 PRINT a + 5
THEN
END IF
Hasilnya : tidak ada yang dicetak Contoh lain, modifikasi modifikasi dari program di atas : a = 10 IF a + 5 > 30 WRITE a + 5 ELSE WRITE
a
ENDIF
Hasilnya : 10 Di bahasa pemrograman PASCAL bisa ditulis dengan : BEGIN
a := 10 IF a + 5 > 30 THEN WRITELN WRITELN(a + 5) ELSE WRITELN WRITELN(a) END
2. DO CAS CASE E – END CA CASE 139
I
T
S
Matrikulasi PIKTI-ITS
Bentuk umum penulisan: DO CASE CASE {kondisi} {statements} [CASE {kondisi}] {statements} [...] [...] [OTHERWISE] OTHERWISE] {statements} END CASE
Contoh penggunaan : a = 10 DO CASE
a + 5 > 30 WRITE a + 10 CASE a + 5 = 30 WRITE a + 5 CASE a + 5 < 30 WRITE a CASE
END CASE
Hasilnya : 10 Program di atas juga dapat ditulis sebagai berikut : a = 10 DO CASE
a + 5 > 30 WRITE a + 10 CASE a + 5 = 30 WRITE a + 5 CASE
OTHERWISE WRITE END CASE
Hasilnya : 10
14 0
{selain 2 kondisi sebelumnya}
a
I
Pengenalan Algoritma
T
S
b. Kondisi Bertingkat Sela Se lain in ko kond ndis isii tung tungga gal, l, ada ada juga juga ko kond ndis isii yang yang bera berada da dala dalam m bata batas s ko kond ndis isii lain lain.. Cara Cara penu penuli lisa sann nnya ya jang jangan an sa sam mpai pai skema batas kondisi tersebut saling berpotongan. Contoh skema dan penulisannya dapat diikuti di bawah ini :
Batas kondisi dalam
Batas kondisi luar
Gambar 5.6 Skema Kondisi Bertingkat
Contoh penggunaan : a = 10 b = 20 IF a < b IF b > 30 WRITE
a
ELSE WRITE
a + b
{jika a lebih kecil b} {(dan) b lebih besar dari 30} {maka cetak a} {jika b tidak lebih besar dari 30} {maka cetak a ditambah b}
ENDIF ELSE WRITE
a + 30
{(tapi) jika a tidak lebih kecil dari b} {maka cetak a ditambah 30}
ENDIF
Hasilnya : 30 (hasil dari a + b)
5.5 Kesalahan Program Kesalahan dalam program bisa terjadi karena dua hal : 1. kesalahan penulisan penulisan statements
141
I
T
S
Matrikulasi PIKTI-ITS
2. kesa kesala lah han lo logika ika jika dalam kesalahan penulisan, penulisan, maka compiler atau interpreter kompute komputerr akan meberi tahu tahu kesalahan kesalahan tersebu tersebut. t. Namun Namun untuk untuk kesalahan logika, programmer sendirilah yang harus mene menelus lusuri urinya nya.. Itula Itulah h perlu perlunya nya peny penyusu usunan nan suatu suatu algor algoritm itma a (teru (terutam tama a untu untuk k prog program ram-pr -prog ogram ram besar besar)) agar agar pene penelus lusura uran n logika itu dapat cepat ditemukan.
14 2
Pengenalan Algoritma
I
T
S
5.6 Latihan Soal 1. Ranc Rancan angl glah ah se sebu buah ah algo algori ritm tma a untu untuk k menam enampi pilk lkan an bilan bilanga gan n ganjil yang terletak antara 1 s/d n bilangan bulat positif. 2. Rancanglah sebuah algoritma untuk menghitung perkalian 2 bilangan bulat a dan b hanya dengan menggunakan operasi penjumlahan saja. 3. Ranc Rancan angl glah ah se sebu buah ah algo algori ritm tma a untu untuk k menca encari ri fakt faktor or-fa -fakt ktor or dari sebuah bilangan bulat positif. 4. Ranca ancan nglah lah se seb buah algoritm ritma a untuk tuk menca encari ri bilan ilang gananbilangan prima dari 1 s/d n bilangan bulat positif. 5. Rancanglah sebuah algoritma tma untuk menghitung nilai lai Faktorial (n!) sebuah bilangan bulat positif n.
143
I
T
S
Catatan :
14 4
Matrikulasi PIKTI-ITS