1
1
PENGANTAR ALGORITMA Komputer merupakan salah satu perangkat elektronika yang operasinya
ditentukan oleh software yang ada didalamnya. Secara garis besar komputer terdiri dari dua bagian penting yang saling terkait yaitu hardware dan software. Hardware merupakan bentuk rangkaian elektronika yang tidak dapat difungsikan tanpa adanya software. Oleh karena itu agar hardware dapat berfungsi, maka harus diberikan serangkaian intruksi yang berupa software. Langkah-langkah yang dilakukan dalam memberikan intruksi kepada komputer dinamakan dengan pemrograman komputer. Konsep pemrograman terstruktur sangat membantu dalam merancang, menyusun, memelihara dan mengembangkan suatu program, khususnya program aplikasi yang besar dan komplek. Pada pemrograman terstruktur terdapat beberapa fasilitas untuk dapat menghilangkan atau meminimalkan perintah goto. Dihilangkan atau diminimalkannya perintah goto akan dapat mempermudah dalam menganalisis dan membuat program. 1.1 BAHASA PEMROGRAMAN Pemrograman merupakan suatu proses untuk mengimplementasikan urutan langkah
dalam
menyelesaikan
masalah
dengan
menggunakan
bahasa
pemrograman. Agar pembuatan program menjadi lebih mudah dan efektif, maka memilih bahasa pemrograman yang sesuai adalah hal penting. Bahasa pemrograman telah berkembang dengan pesat mengikuti perkembangan dunia digital. Namun demikian secara umum bahasa pemrograman dikelompok-kan menjadi empat yaitu : a. Bahasa aras rendah (Low level language) Bahasa aras rendah merupakan bahasa pemrograman yang berorentasi pada mesin digital yaitu hanya membaca logika 0 (tidak ada arus) dan 1 (ada arus). Bahasa mesin ini sangat susah untuk dipahami, karena intruksinya sangat susah diingat. Oleh karena itu muncul idea untuk melambangkan untaian sandi
2 0 dan 1 dengan singkatan kata yang lebih mudah dipahami manusia. Singkatan kata ini kemudian sering disebut mnemontic code. Pemrograman yang menggunakan singkatan kata ini disebut bahasa assembly. b. Bahasa aras menengah (Middle level language) Bahasa aras menengah merupakan bahasa pemrograman yang sudah menggunakan aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar yang mudah dipahami oleh manusia. Disamping itu bahasa aras menengah memiliki intruksi-instruksi tertentu yang dapat langsung diakses oleh komputer. Contoh bahasa aras menengah adalah bahasa C. c. Bahasa aras tinggi (High level language) Bahasa aras tinggi merupakan bahasa pemrograman yang memiliki aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar bahasa yang dapat dipahami secara langsung oleh manusia. Bahasa pemrograman seperti ini disebut juga dengan bahasa generasi ketiga atau disingkat 3GL (thrid generation language). Bahasa pemrograman ini biasanya menggunakan kata-kata dalam bahasa Inggris, karena memang bahasa tersebut adalah bahasa yang bersifat Internasional. Contoh bahasa bahasa pemrograman ini adalah bahasa Pascal, Fortran, Cobol, Power Basic, dan lainlain. d. Bahasa berorentasi objek (Object oriented language) Bahasa berorentasi pada objek merupakan bahasa pemrograman yang mengandung
komponen-komponen
yang
berisi
fungsi-fungsi
untuk
menyelesaikan suatu masalah. Setiap komponen dilengkapi dengan criteriakriteria yang sesuai dengan komponennya. Pada bahasa pemrograman ini pemrogram tidak lagi menuliskan secara detail semua pernyataan dan ekspresi seperti pada bahasa aras tinggi, melainkan cukup dengan memasukkan kriteria-kriteria yang dikehendaki saja. Bahasa ini kemudian menggunakan komponen-komponen tersebut untuk memecahkan permasalahan. Bahasa pemrograman ini disebut juga dengan bahasa generasi keempat atau disingkat 4GL (fourth-generation language).. Contohnya adalah bahasa Borland Delphi, Visual Basic, Visual FoxPro dan lain sebagainya.
3 Pada bahasa aras menengah, aras tinggi dan berorientasi obyek pernyataanpernyataannya tidak langsung dapat diterima oleh mesin, karena mesin hanya menerima logika 0 dan 1. Pada komputer sebagai penterjemah dari bahasa aras menengah, aras tinggi dan berorentasi objek ke bahasa mesin dibutuhkan interpreter atau compiler. Interpreter sistem kerjanya adalah menerjemahkan program baris per baris, artinya jika suatu baris akan dieksekusi, maka baris tersebut diterjemahkan terlebih dahulu ke bahasa mesin. Pada saat menerjemahkan interpreter memeriksa sintaksis, leksikal dan semantik dari setiap intruksi program. Jika ditemukan kesalahan sintaksis (syntax error), maka interpreter akan menampilkan pesan kesalahan dan proses eksekusi program akan langsung terhenti pada saat itu juga. Contoh bahasa pemrograman yang menggunakan interpreter adalah Basic. Compiler sitem kerjanya adalah menerjemahkan intruksi-intruksi dalam satu kesatuan modul kedalam bahasa mesin (objek program), kemudian objek program akan mengalami proses linking yang berfungsi untuk menggabungkan modul tersebut dengan modul lain yang berkaitan. Penerjemahan ini menghasilkan suatu file executable program yang akan dieksekusi oleh komputer. Apabila pada saat proses penerjemahan atau proses linking terjadi kesalahan, maka akan tampil pesan kesalahan dan proses eksekusi akan berhenti. Kompilasi dilakukan setelah seluruh program selesai ditulis, karena compiler juga memeriksa sintaksis, leksikal, semantik dan lagika programnya. Contoh bahasa pemrograman yang menggunakan compiler adalah Turbo Pascal. Dari segi kecepatan kinerja sistem compiler lebih cepat dibandingkan dengan Interpreter. Hal ini terjadi karena pada compiler tidak tergantung dengan bahasa pemrograman yang digunakan untuk menyusun. Namun sistem compiler memiliki kelemahan yaitu pada saat kompilasi dibutuhkan ruang pengingat yang lebih besar. Pada komputer keluaran sekarang memori bukanlah suatu kendala untuk compiler dari bahasa aras tinggi. Oleh karena itu pada buku ini akan menggunakan bahasa pemrograman Turbo Pascal. Secara lebih detail perbedaan keduanya terlihat pada table 1.1.
Tabel 1.1 Perbedaan Compiler dan interpreter No 1
Intepreter Menerjemahkan instruksi per
Compiler Menerjemahkan secara keseluruhan
4
instruksi Tidak menghasilkan objek program Tidak menghasilkan executable program karena langsung dijalankan. pada saat program diinterpretasi Proses interpretasi terasa cepat karena tiap-tiap instruksi langsung dikerjakan dan dapat dilihat hasilnya Source program terus dipergunakan karena tidak dihasilkan executable program
2 3
4
5
Menghasilkan objek program Menghasilkan executable program, sehingga dapat langsung dijalankan
Proses kompilasi lama, karena sekaligus menerjemahkan seluruh instruksi program Source program sudah tidak dipergunakan lagi untuk mengerjakan program
1.2 PROSEDUR PEMROGRAMAN KOMPUTER Setiap aktivitas agar menghasilkan output sesuai yang diinginkan dan sistem kerja yang efisien diperlukan pemahaman tentang prosedur pelaksanaannya. Sebagai contoh seorang penambal ban, sebelum melakukan penambalan, maka beliau harus mencari dulu letak kebocoran dengan cara memompa ban kemudian dimasukkan kedalam air. Proses berikutnya dilakukan langkah penambalan dan setelah penambalan selesai ban tidak langsung dipasang, melainkan dipompa lagi dan dimasukkan kedalam air untuk menyakinkan bahwa kebocoran sudah tidak ada. Pada pemrograman komputer, agar dihasilkan program sesuai dengan yang diharapkan, maka sebelum ditulis harus memperhatikan beberapa langkah yang diperlukan. Langkah-langkah yang akan dijelaskan ini tidak bersifat mutlak dalam arti boleh ada yang dilewati atau bisa juga ada dilakukan berkali-kali dan bahkan boleh ada penambahan atau pengurangan. Berikut ini langkah-langkah yang dilakukan dalam pemrograman komputer. a. Pemahaman Masalah Pemahaman masalah adalah langkah yang sangat penting dalam pembuatan program. Pada langkah ini pemrogram harus memahami betul masalah yang harus ditangani. Apabila belum memahami pemrogram harus mempelajari terlebih dulu. Suatu contoh, diminta membuat program invers matriks, maka pemrogram terlebih dahulu harus memahami materi tentang invers matriks.
5 Tanpa pemahaman masalah yang akan diselesaikan, pemrogram akan kesulitan dalam pemecahannya. b. Identifikasi masalah Setelah pemrogram memahami masalah yang akan diselesaikan, langkah berikutnya adalah pemrogram harus menindentifikasi masalah-masalah yang akan diselesaikan. Suatu misal kita diminta untuk menyelesaikan invers matrik, maka kita harus melakukan identifikasi, masukannya, proses perhitungannya, dan keluarannya. Selain itu pemrogram harus mengidentifikasi beberapa kemungkinan yang terjadi pada perhitungannya, misalnya kemungkinan ada proses pembagian dengan angka nol atau kasus-kasus lain. Tanpa diketahui masalah tersebut diatas, sangat mustahil seorang pemrogram mampu menyelesaikannya. Oleh karena itu lakukanlah identifikasi masalah secara benar sebelum membuat program komputer. Semakin cepat anda menulis program akan semakin lama anda menyelesaikannya.
c. Menentukan solusi Apabila semua permasalahan telah diidentifikasi, langkah selanjutnya adalah mencarikan solusi pemecahan dari permasalahan tersebut. Kekomplekan program sangat tergantung dari kompleknya masalah yang ditangani dan cara pemrogram mencari sulusinya. Apabila permasalahannya komplek secara umum program komputer yang dibuat dipisah-pisah menjadi modul yang lebih kecil agar mudah dibuat. Sebagai contoh, program menghitung perkalian matrik, program dapat dibagi menjadi modul kecil. Modul pertama adalah meminta masukan dari user berupa matriks yang akan dikalikan. Modul kedua proses menghitung perkalian matriks. Modul ketiga menampilkan hasilnya. d. Membuat algoritma Membuat algoritma merupakan langkah yang penting dalam membuat program komputer, karena pada langkah ini pemrogram harus membuat pola pikir yang terstruktur yaitu berisi tahapan-tahapan penyelesaian masalah. Pembuatan algoritma perlu ada pengakajian yang lebih serius agar diperoleh hasil yang paling tepat dan sesuai dengan harapan. Pembuatan Algoritma harus memiliki
6 kebenaran secara logika, agar algoritma dapat diimplentasikan dalam bentuk program komputer. Namun demikian bagi pemrogram yang sudah profesional algoritma ini sering tidak dimunculkan dalam tulisan secara nyata, tetapi hanya disimpan dalam otak. e. Menulis Program Langkah ini merupakan suatu proses untuk mengimplementasikan algoritma yang dibuat dengan menggunakan bahasa pemrograman. Satu hal yang cukup penting dalam tahap ini adalah memilih bahasa pemrograman. Pemilihan bahasa pemrograman perlu mempertimbangkan jenis masalah yang akan kita selesaikan. Hal ini dilakukan karena masing-masing bahasa pemrograman mempunyai keunggulan masing-masing. Pemilihan bahasa pemrograman yang tepat akan mempermudah dan mempercepat dalam implementasinya. Misalnya masalah yang kita seselasikan dalam bentuk basis data, maka dengan bahasa berorientasi objek akan lebih mudah dan cepat dalam penyelesaiannya, karena program berientasi obyek sebagian besar telah mempunyai fasilitas basis data. Pemakaian bahasa aras rendah dan menengah memang memiliki kecepatan yang sangat tinggi, tetapi penulisannya memerlukan waktu yang lebih lama. f.
Menguji program Pengujian program merupakan langkah yang sangat penting untuk dilakukan dan secara berkelanjutan. Testing pertama kali dilakukan setelah proses penulisan program selesai. Jadi setelah algoritma diterjemahkan kedalam bentuk program, maka harus dilakukan pengujian terdapat program yang telah ditulis. Pengujian suatu program sebaiknya dilakukan berkali-kali dengan nilai masukan yang berbeda-beda dan jika perlu pengujian dilakukan oleh beberapa orang. Prosedur umum pengujian metode desk checking adalah (1) pengujian terhadap pendefinisian masalah dan analisis kebutuhan, (2) pengujian terhadap pseudocode, (3) pengujian dengan menggunakan data, dan (4) Lakukan langkah koreksi jika adala kesalahan. Setelah dilakukan pengujian dengan metode desk checking perlu diuji lagi dengan metode data logic driver atau metode logic-driver.
7
g. Menulis dokumentasi Dokumentasi program memegang peranan yang sangat penting dari langkahlangkah pemrograman. Hal ini dilakukan karena manusia memiliki sifat lupa dan pemakai program biasanya bukan pemrogram. Secara umum ada tiga jenis pemakai dokumentasi dengan kebutuhan yang berbeda yaitu pemrogram, operator, dan user. Dokumentasi untuk pemrogram ada dua yaitu yang bersifat internal eksternal. Dokumentasi internal dibuat untuk menuntun pemrogram berhubungan dengan bahasa pemrograman. Suatu misal penggunaan nama prosedur, nama variabel, penulisan intruksi dan lain sebagainya. Dokumentasi eksternal diwujudkan dalam bentuk manual dan catatan-catatan penting tentang program dan dapat diletakkan pada satu baris atau beberapa baris pernyataan, sehingga jika program direvisi atau dikembangkan, maka tidak akan mengalami kesulitan. Dokumentasi untuk operator adalah dokumen yang dibutuhkan untuk mengoperasi-kan program yang telah dibuat oleh pemrogram. Secara umum pemrogram tidak menggunakan sendiri program hasil buatannya, melainkan orang lain yang akan menggunakannya. Oleh karena itu pembuatan manual tentang pengoperasian program sangat dibutuhkan. Dokumentasi untuk user diperlukan hanya untuk mengetahui bagaimana masukan yang diminta oleh program dan tata cara membaca hasil pemrosesan. h. Merawat program Program yang selesai disusun sudah pasti membutuhkan perawatan atau pemeliharaan. Perawatan atau pemeliharaan tersebut meliputi (1) penambahan atau peningkatan atau perbaikan program, (2) adaptasi program dengan produk perangkat keras atau lunak yang baru, dan (3) pembetulan terhadap kesalahan yang timbul.
8
1.3 ALGORITMA Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika yang dikaitkan dengan bahasa pemrograman. Penyajian algoritma dapat berupa tulisan atau gambar (flowcart). Kriteria Algoritma Menurut Donald E. Knuth 1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar. 2. Output: algoritma harus memiliki minimal satu buah output keluaran. 3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu. 4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1 Namun ada beberapa program yang memang dirancang untuk unterminatable: contoh Sistem Operasi Jenis Proses Algoritma 1. Sequence Process: instruksi dikerjakan secara sekuensial, berurutan. 2. Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu 3. Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu. 4. Concurrent Process: beberapa instruksi dikerjakan secara bersama. Contoh penyajian algoritma dalam bentuk tulisan untuk menyelesaikan program menghitung jarak pada gerak lurus beraturan yang memenuhi persamaan S = v x t, dimana S = jarak, v = kecepatan, dan t = waktu. 1. Mulai 2. Masukkan kecepatan dan waktu 3. Hitung jarak sama dengan kecepatan kali waktu (S := v*t) 4. Tulis jarak 5. Selesai
Penyajian algoritma seperti diatas adalah cukup panjang, oleh karenanya bentuk diatas dapat disajikan pula sebagai berikut : 1. Mulai 2. Masukkan v dan t 3. S← p * t
9 4. Tulis S 5. Selesai
Perhatikan pada algoritma diatas terdapat tanda ← pada baris ketiga. Tanda ini berarti nilai di sebelah kanan diberikan pada operan di sebelah kiri atau S=v x t. Dari algoritma diatas baris pertama adalah untuk langkah umtuk mengawali program. Baris kedua adalah langkah untuk meminta masukan dari pengguna yaitu kecepatan dan waktu yang masing-masing secara berturut-turut disimpan sebagai variabel v dan t. Baris ketiga adalah langkah untuk menghitung jarak yang ditempuh yaitu dengan rumus v x t dan hasilnya disimpan sebagai variabel S. Baris keempat adalah langkah untuk menuliskan jarak tersebut. Baris kelima adalah mengakhiri program. Penyajian algoritma tersebut masih banyak kelemahannya, dimana orang lain kadang sulit untuk memahaminya, karena tata bahasa yang digunakan dipengaruhi pembuatnya. Oleh karena itu kemudian dikembangkan suatu metode untuk menggambarkan tahap-tahap pemecahan masalah dengan mempresentasikan simbol-simbol tertentu yang mudah dimengerti, mudah digunakan dan standar. Salah satu metode penulisan simbol ini adalah flowchart. Simbol-simbol yang digunakan untuk menunjukkan aliran kegiatan dalam flowcart mempunyai kegunaan atau arti masing-masing. Berikut ini disajikan simbol-simbol dan arti yang digunakan untuk menunjukkan aliran kegiatan yang dinyatakan dalam flowchart. Simbol-simbol ini merupakan standarisasi dari simbol flowchart yang dikeluarkan oleh IBM. Pemrogram dapat menambah khasanah simbol-simbol berikut asalkan pemrogram melengkapinya dengan penggambaran program flowchart dengan kamus simbol. Tabel 1.2 Simbol dan arti yang digunakan pada flowcart SIMBOL
ARTI INPUT/OUTPUT Simbol ini digunakan untuk menunjukkan operasi yang dilakukan untuk membawa data dari dan ke piranti input atau output. Data dapat disuplai dari papan ketik (keyboard) atau dari berkas yang disimpan dalam media penyimpan data PROSES Simbol ini digunakan untuk menggambarkan instruksi atau proses pengolahan data. Disini tidak ada perpindahan data antara piranti yang satu dengan piranti yang lain
10
TESTING Dalam blok testing ini diperlihatkan kondisi yang harus di tes. Langkah selanjutnya didasarkan pada hasil tes ini, dan mengambil salah satu dari dua atau tiga alternatif yang ditunjukkan TERMINAL Simbol ini digunakan untuk menunjukkan awal, akhir atau titik interupsi pada sebuah program. PREPARASI Intruksi atau sekumpulan intruksi yang akan mengubah program PREDEFINED PROCESS Untuk menunjukkan global operasi yang dilaksanakan. Disini tidak dijelaskan detail dari operasi tersebut. SAMBUNGAN PADA SATU HALAMAN Simbol ini digunakan untuk menunjukkan sambungan dari bagian flowchart dimana bagian tersebut ada pada halaman yang sama. Didalam lingkaran ini bisa ditambahkan suatu simbol lain untuk menunjukkan sambungan yang tepat. SAMBUNGAN PADA HALAMAN LAIN Simbol ini digunakan untuk menunjukkan sambungan dimana sambungannya pada halaman yang berbeda ARAH ALIRAN Simbol ini digunakan untuk menunjukkan arah aliran kegiatan TAMPILAN Simbol ini digunakan untuk menunjukkan informasi yang akan ditampilkan melalui layar atau plotter
Algoritma perhitungan jarak dari gerak lurus beraturan seperti dijelaskan diatas apabila disajikan dalam bentuk diagram alir (flowchart) adalah sebagai berikut : Mulai
Masukkan v dan t
S=v*t
Tulis S
Selesai
11
Gambar 1.1 Algoritma menghitung luas empat persegi panjang 1.3.1
Percambangan Pada pembuatan program kadang programmer harus memfilter masukan
atau variabel sesuai dengan kondisi yang diinginkan, sehingga perlu ada bentuk percambangan. Oleh karena itu dalam pembuatan algoritma harus memasukkan suatu langkah untuk memfilter kondisi yang dimaksud, dimana apabila kondisi terpenuhi, maka pernyataan akan dikerjakan dan apabila tidak akan mengerjakan pernyataan yang lain. Suatu contoh pada swalayan yang melayani pembelian secara grosir dan eceran. Biasanya pembelian secara grosir dan eceran memiliki perbedaan harga. Misal pembelian dengan jumlah 10 buah keatas dianggap grosir dan harganya Rp. 9.000,- per buah, sedangkan apabila dibawah 10 buah dianggap eceran dengan harga Rp. 10.000,- per buah, maka algoritmanya dapat dituliskan sebagai berikut : 1. Mulai 2. Masukkan Jml 3. Jika (Jml ≥ 10 ) maka kerjakan langkah 4, jika tidak, maka kerjakan langkah 5 4. T← Jml*9000 5. T ← Jml*10000 6. Tulis T 7. Selesai.
Baris pertama adalah mengawali program. Baris kedua meminta masukan jumlah pembelian dari pengguna dan disimpan sebagai variabel Jml. Baris ketiga mengecek nilai Jml, apabila Jml ≥ 10, maka total harga (T) dihitung dengan rumus baris empat yaitu T = Jml * 9000, sedangkan jika tidak total harga dihitung dengan rumus baris lima yaitu T = Jml x 10000, total harga disimpan sebagai variabel T. Baris keenam menuliskan total harga yang harus dibayar pembeli. Baris ketujuh atau terakhir perintah mengakhiri program.
12
Bentuk algoritma diatas apabila ditampilkan dalam bentuk flowchart adalah sebagai berikut : Mulai
Masukkan Jml
Jml≥10
T
Y
T← Jml*9000
T ← Jml * 10000
Tulis T
Selesai
Gambar 1.2 Algoritma menghitung pembelian grosir dan eceran Algoritma tersebut diatas apabila diungkapkan dalam bentuk program sebagai berikut: Program Pembelian; Uses WinCrt; Var Jml : integer; T : real; Begin Readln(jml); If (jml >= 10) then T := Jml*9000 else T := Jml*10000; Writeln(T:10:3); End.
13
1.3.2
Perulangan Perulangan merupakan suatu proses dimana terdapat satu atau beberapa
baris diulang-ulang pemrosessanya sesuai dengan batasan yang diinginkan. Proses perulangan dibutuhkan guna untuk mempermudah dan mempersingkat penulisan program. Contoh program untuk menghitung nilai sinus untuk beberapa sudut yang dimulai dari 1o sampai sudut yang diinginkan. Pada program Turbo Pascal sudut diungkapkan dalam bentuk radian. Oleh karena itu kalau kita memasukkan dalam terajad terlebih dahulu harus dirubah ke radian dengan rumus Rad = (π*der)/180 dimana Rad = sudut dalam satuan radian, der = sudut dalam satuan derajad, dan π = 3,14. Dengan demikian dapat dibuat algoritma sebagai berikut : 1. Mulai 2. π ← 3,14 3. i ← 1 4. Masukkan der 5. Selama (i <= der) kerjakan baris 6, 7, 8, 9 6. Rad ← (π*der)/180 7. Y ← Sin(Rad) 8. I ← I+1 9. Tulis Y 10. Selesai
Baris pertama dari algoritma tersebut adalah memulai program. Baris kedua memberi nilai π = 3,14, sedangkan baris ketiga memberi nilai i awal sama dengan satu. Baris ke empat memasukkan nilai sudut dalam satuan derajad yang menjadi batas atas yang nilai sinus-nya dihitung. Baris kelima memberi perintah pengulangan baris 5, 6,7,8,9 sampai nilai I lebih besar dari der. Baris keenam merubah sudut dari derajad menjadi radian dan hasilnya disimpan dalam variable Rad. Baris ketujuh menghitung nilai sinus pada sudut radian dan hasilnya disimpan dalam variabel Y. Baris kedelapan menambah I dengan 1. Baris kesembilan menampilkan nilai sinus suatu sudut. Baris kesepuluh mengakhiri program.
14 Bentuk algoritma menghitung nilai sinus tersebut diatas dapat ditampilakn dalam bentuk flowcart sebagai berikut : Mulai
π ←3,14 I←1 Masukkan der
Selama (i <= der)
Rad ← (π*der)/180 Y ← Sin(Rad) . i←i+1
Tulis Y
Selesai
Gambar 1.3. Algoritma menghitung nilai sinus sudut dalam derajad Alagoritma atau flowcart tersebut apabila direalisasikan dalam program dengan bahasa pemrograman Turbo Pascal adalah program Sinus; uses WinCrt; var i,der : integer; y,Rad : real; begin Readln(pi); Readln(der); For i:= 1 to der do begin Rad := (pi*i)/180; y := Sin(Rad); Writeln(y:10:5)
15 end; end.
Contoh lain dari perulangan adalah menghitung rata-rata hasil pengukuran kecepatan gerak benda v yang diukur sebanyak N kali. Rumus yang berlaku adalah N
v=
∑ vii
i =1
N
dimana vi = Hasil pengukuran kecepatan ke-i N = Jumlah pengukuran
v = Rata-rata hasil pengukuran Algoritma untuk mencari rata-rata hasil pengukuran dapat dibuat sebagai berikut : 1. Mulai 2. v ← 0. 3. i ← 1. 4. Masukkan N. 5.
Selama (i <= N) kerjakan baris 5 sampai 8.
6. Masukkan vi. 7. v ← v + vi. 8. i ← i + 1. 9. Rata ← v / N 10. Tulis Rata. 11. Selesai.
Baris pertama dari algoritma tersebut diatas adalah untuk memulai program. Baris kedua memberi nilai variabel v dengan nol. Baris ketiga memberi nilai variabel I dengan 1. Baris keempat meminta masukan pengguna tentang jumlah data yang akan dihitung dan disimpan sebagai variabel N. Baris kelima memberikan perintah untuk mengulangi baris kelima sampai kedelapan sampai nilai i lebih besar dari N. Baris keenam meminta masukan pengguna berupa data dan disimpan sebagai variabel vi. Baris ketujuh menambah variabel v dengan data yang dimasukkan pengguna. Baris kedelapan menambah nilai i dengan 1, sehingga nilai i bertambah 1. Baris kesembilan menghitung rata-rata hasil pengukuran. Baris
16 kesepuluh menuliskan rata-rata hasil pengukuran. Baris kesebelas mengakhiri program. Bentuk algoritma menghitung nilai rata-rata hasil pengukuran diatas apabila ditampilkan dalam bentuk flowchart adalah sebagai berikut : Mulai v ←0 I←1 Masukkan N
Selama (i <= N)
Masukkan vi v ← v + vi. i ← i + 1. Rata ← v / N Tulis Rata
Selesai
Gambar 1.3. Algoritma menghitung rata-rata data hasil pengukuran Algoritma sebagaimana ditulis diatas dapat diungkapkan dalam bentuk program sebagai berikut : program Rata_Rata; uses WinCrt; var i, N : integer; Rata, v, vi : real; Begin V := 0; Readln(N); For := 1 to N do Begin Readln(vi);
17 v := v + vi; End; Rata := v/N Readln(Rata:10:3); End.
SOAL-SOAL 1. Buatlah algoritma untuk menghitung jarak bayangan suatu benda akibat pembiasan pada lensa cembung tipis ? Besaran yang dimasukkan adalah jarak benda dan panjang focus lensa. Petunjuk : Hubungan jarak benda s, jarak bayangan s’, dan panjang focus lensa adalah
1 1 1 + = s s' f
2. Buatlah algoritma untuk menghitung jarak yang ditempuh oleh benda yang bergerak lurus berubah beraturan, jika besaran yang dimasukkan adalah kecepatan awal, percepatan, dan waktu ? Petunjuk : Jarak yang ditempuh benda yang bergerak lurus berubah beraturan dirumuskan : S = Vo.t + ½ .a.t2 Dengan S = jarak; Vo = kecepatan awal; a = percepatan; t = waktu. 3. Buatlah algoritma untuk memisahkan bola berdasarkan diameternya ? Jika diameter bola lebih kecil 15 cm, bola masuk kotak A, jika diameter bola antara 15 cm sampai dengan 25 cm, bola masuk kotak B, dan jika diameter bola lebih besar dari 25 cm bola masuk kotak C. Masukan dari program adalah diameter bola, sedangkan keluarannya adalah masuk kotak A, masuk kotak B, dan masuk kotak C. 4. Buatlah algoritma untuk memisahkan bilangan genap dan ganjil dan bilangan yang dipisahkan dimasukkan oleh pengguna secara acak ? 5. Buatlah algoritma untuk menghitung hasil penjumlahan matrik 3 x 3 dengan nilai matrik masing-masing baris dan kolom dimasukkan oleh pengguna ?
Petunjuk : Perhitungan hasil penjumlahan matriks 3 x 3 dilakukan dengan rumusan sebagai berikut :
18
a11 a12 a13 b11 b12 b13 a11 + b11 a12 + b12 a13 + b13 a21 a22 a23 + b21 b22 b23 = a21 + b21 a22 + b22 a23 + b23 a a a b b b a + b a + b a + b 31 32 33 31 32 33 31 31 32 32 33 33 dimana a11 = matriks a baris 1 kolom 1, a12 = matriks a baris 1 kolom 2 dan seterusnya. 6. Buatlah algoritma untuk menghitung hasil perkalian matrik 2 x 2 dengan nilai matrik masing-masing yaitu baris dan kolom dimasukkan oleh pengguna ? Petunjuk : Perkalian matrik 2 x 2 dilakukan dengan rumusan sebagai berikut :
(
a11 a12 a 21 a 22
)× (
b11 b12 b21 b22
)= (
a11 ×b11 + a12 ×b21 a 11 ×b12 + a12 ×b22 a 21 ×b11 + a 22 ×b21 a 21 ×b12 + a 22 ×b22
)