Dasar Dasar Algoritma

12,312 views

Published on

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
12,312
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
429
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Dasar Dasar Algoritma

  1. 1. STRUKTUR DASAR ALGORITMA <ul><li>Algoritma berisi langkah2 proses penyelesaian mslh </li></ul><ul><li>Langkah2 proses penyelesaian masalah tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah : </li></ul><ul><li>1. runtunan aksi </li></ul><ul><li>2. pemilihan aksi </li></ul><ul><li>3. pengulangan aksi </li></ul>
  2. 2. <ul><li>RUNTUNAN AKSI </li></ul><ul><li>Sebuah runtunan terdpt satu atau lebih pernytaan,setiap pernyataan dikerjakan secara berurutan sesuai penulisannya </li></ul><ul><li>Sebuah instruksi dikerjakan setelah instruksi sebelumnya telah dilaksanakan </li></ul><ul><li>Urutan instruksi menentukan keadaan akhir suatu algoritma </li></ul><ul><li>Bila urutan algoritma dirubah,maka hasil akhir mungkin juga berubah </li></ul><ul><li>Runtunan yg mempunyai satu/lebih pernyaaan disbt penytaan gabungan </li></ul>
  3. 3. <ul><li>Contoh: </li></ul><ul><li>Program tukar_isi </li></ul><ul><li>Diberikan 2 buah ember A & B berisi air berwarna merah, ember B berisi air berwarna biru.pertukarkan kedua isi ember tersbt shg ember A berisi air berwrna biru & ember B berisi air berwana merah </li></ul><ul><li>Algoritma : </li></ul><ul><li>Tuangkan air dari ember A kedlm ember C </li></ul><ul><li>Tuangkan air dari ember B kedlm ember A </li></ul><ul><li>Tuangkan air dari ember C kedlm ember B </li></ul>
  4. 4. <ul><li>Algoritma tukar_isi menjadi inspirasi untuk mempertukarkan nilai dr 2 buah nilai dr 2 peubah </li></ul><ul><li>Misal A=8 dan B=5, pertukarkan nilai A & B, sehingga A=5 dan B=8,maka algoritmanya : </li></ul><ul><li>isikan nilai A ke dlm B </li></ul><ul><li>isikan nilai B ke dlm A </li></ul><ul><li>maka hasilnya:A=8 & B=8, maka algoritma pertkarannya salah.Agar algirtmanya benar,maka perlu digunakan peubah bantu,misal C, sehinggga algoritmanya adalah: </li></ul>
  5. 5. <ul><li>Isikan nilai A ke dlm C </li></ul><ul><li>Isikan nilai B ke dlm A </li></ul><ul><li>Isikan nilai C ke dlm B </li></ul>
  6. 6. <ul><li>2. PEMILIHAN </li></ul><ul><li>Adaklanya sebuah aksi dikerjakan jika kondisi dipenuhi </li></ul><ul><li>Misal:jika lampu traffic light berwarna merah,maka kendaraan harus berhenti,maka pernyataan adalah: </li></ul><ul><li>jika lampu traffic light berwarna merah,maka </li></ul><ul><li> berhenti </li></ul><ul><li>Pernytn tersbt disbt penyt.pemilihan ( selection-stantement )atau perny.kondisional </li></ul>
  7. 7. <ul><li>Bentuk umum selection statement: </li></ul><ul><li>Kondisi:pernsyartn yg dpt bernilai benar-salah,aksi setelah then dilakukan hanya jika kondisi benar </li></ul><ul><li>If & then ad/ kaca kunci (keyword) u/ struktur pemilihan </li></ul><ul><li>Contoh : </li></ul><ul><li>if x habis dibagi 2 then </li></ul><ul><li>tulis x ad/ bilangan genap </li></ul>If kondisi then aksi
  8. 8. Bentuk lain statent condisional <ul><li>a. </li></ul><ul><li>else “kalau tdk”. Bila kondisi benar,maka aksi1 yg dikerjakan,kalau tdk aksi2 dikerjakan.contoh: </li></ul><ul><li>if lampu A nyala then </li></ul><ul><li>tekan tombol merah </li></ul><ul><li>else </li></ul><ul><li>tekan tombol biru </li></ul>if kondisi then aksi1 Else aksi2
  9. 9. <ul><li>b. nested-if =pemilihan bersarang ad/ apabila pemilihan aksi yg dilakukan lebih dr 2 buah,maka struktur pemilihanya menjdi rumit. </li></ul>if kondisi1 then aksi1 Else if kondisi2 then aksi2 else aksi3
  10. 10. <ul><li>Contoh : </li></ul><ul><li>if lampu traffic light berwarna merah then </li></ul><ul><li>berhenti </li></ul><ul><li>else </li></ul><ul><li>if lampu traffic light berwarna kuning then </li></ul><ul><li> jalan hati-hati </li></ul><ul><li> else </li></ul><ul><li>jalan terus </li></ul><ul><li>Dlm state.kondisi dikenal adanya ‘indentasi’ yaitu: pengg.rongga kosong yg membuat algoritma menjd mudah dibaca. </li></ul>
  11. 11. <ul><li>Contoh:tanpa indentasi </li></ul><ul><li>if lampu traffic light berwarna merah then </li></ul><ul><li>berhenti </li></ul><ul><li>Else if lampu traffic light berwarna kuning then </li></ul><ul><li>jalan hati-hati else </li></ul><ul><li>jalan terus </li></ul><ul><li>Penulisan algoritma sangat dianjurkan u/ membuat indentasi,agar algoritma mudah dbaca. </li></ul><ul><li>Kelebihan struktur pemilihan terltk pd kemampuannya yg memungkinkan pemroses mengikuti jalur aksi yg berbeda berdsrkan kondisi yg ada. </li></ul>
  12. 12. <ul><li>3.PENGULANGAN </li></ul><ul><li>Salah kelebihan komputer ad/ kemampuannya u/ melakukan perkerjaan secara berulang-ulang </li></ul><ul><li>Contoh: </li></ul><ul><li>program menulis_kalimat_500_kali </li></ul><ul><li>menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali </li></ul><ul><li>Algoritma: </li></ul><ul><li>1. tulis ‘algoritma adalah langkah logis penyelesaian masalah’ </li></ul><ul><li>2. tulis ‘algoritma adalah langkah logis penyelesaian masalah </li></ul><ul><li>3. tulis ‘algoritma adalah langkah logis penyelesaian masalah </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>. </li></ul><ul><li>500 </li></ul>
  13. 13. <ul><li>u/ mengtasi hal tersbt dpt digunakan stukrutr pengulangan for-do , sehingga algoritmya: </li></ul><ul><li>program menulis_kalimat_500_kali </li></ul><ul><li>menuliskan kalimat ‘algoritma adalah langkah logis penyelesaian masalah’ sebanyak 500 kali </li></ul><ul><li>Algoritma: </li></ul><ul><li>for i dari 1 sampai 50 do </li></ul><ul><li>tulis ‘algoritma adalah langkah logis penyelesaian masalah’ </li></ul><ul><li>i ad/ pencacah pengulangan yg mencacah 1 s/d 500 </li></ul>
  14. 14. <ul><li>Bentuk2 pengulangan: </li></ul><ul><li>For pencacah pengulangan dr 1 s/d N do </li></ul><ul><li>aksi </li></ul><ul><li>repeat-until=ulangi-sampai: proses pengulanganakan berhenti jika kondisi terpenuhi </li></ul><ul><li>3 While-do=selama-lakukan= prose pengulangan akan berhenti jika kondisi salah </li></ul>Repeat Aksi Unti l kondisi While kondisi do Aksi
  15. 15. STRUKTUR TEKS ALGORITMA <ul><li>Ada 3 bagian struktur suatu algoritma, yaitu : </li></ul><ul><li>Bagian Judul (header) </li></ul><ul><li>Bagian Deklarasi </li></ul><ul><li>Bagian Algoritma </li></ul>
  16. 16. Struktur teks Agoritma : <ul><li>PROGRAM nama_program </li></ul><ul><li>{ penjelasan tentang algoritma yg beisi uraian singkat mengenai masalah yg akan diselesaikan } </li></ul><ul><li>DEKLARASI </li></ul><ul><li>{ Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan fungsi diumumkan disini } </li></ul><ul><li>ALGORITMA </li></ul><ul><li>{ Semua langkah/aksi algoritma dituliskan disini } </li></ul>
  17. 17. Contoh: <ul><li>PROGRAM luas_lingkaran </li></ul><ul><li>{ menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan } </li></ul><ul><li>DEKLARASI </li></ul><ul><li>{ Nama Konstanta } </li></ul><ul><li>const N =10 </li></ul><ul><li>const phi=3.14 {nilai phi} </li></ul><ul><li>{ Nama variabel } </li></ul><ul><li>jari_jari, luas:real </li></ul><ul><li>ALGORITMA: </li></ul><ul><li>READ (jari_jari) </li></ul><ul><li>LUAS Phi *jari_jari*jari_jari </li></ul><ul><li>Write (luas) </li></ul>
  18. 18. 1. Bagian judul / header <ul><li>Memuat nama program dan penjelasan(spesifkasi) tentang program </li></ul><ul><li>Nama program ditulis singkat,tetapi hrs menggambarkan apa yg dilakukan algoritma </li></ul><ul><li>Algoritma yg dibuat harus sesuai dgn spesifikasi masalah yang diberikan </li></ul><ul><li>Contoh: </li></ul><ul><li>PROGRAM helloWord </li></ul><ul><li>{ program untuk mencetak “hello word” } </li></ul><ul><li>PROGRAM luas_lingkaran </li></ul><ul><li>{ program untuk menghitung luas lingkaran” } </li></ul>
  19. 19. 2. Bagian Deklarasi <ul><li>Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya </li></ul><ul><li>Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi </li></ul><ul><li>Semua nama tersbt harus dideklarasikan sebelum digunakan </li></ul>
  20. 20. Contoh: <ul><li>DEKLARASI </li></ul><ul><li>{ nama konstanta } </li></ul><ul><li>const N=10 {jumlah data} </li></ul><ul><li>const phi=3.14 {nilai phi} </li></ul><ul><li>{ nama variabel } </li></ul><ul><li>jari_jari,luas:real </li></ul><ul><li>{ nama tipe } </li></ul><ul><li>type titik:record {koord.titik dibidang kartesian} </li></ul><ul><li>< x:integer, {absis} </li></ul><ul><li> y:integer> {ordinat} </li></ul>
  21. 21. <ul><li>FUNCTION apakah_A(input c:char) boolean </li></ul><ul><li>{ mengembalikan nilai true bila c adalah karakter ‘A’ atau false bila sebaliknya } </li></ul><ul><li>PROSEDURE tukar(input/output A:integer, input/output B:integer) </li></ul><ul><li>{ mempertukarkan nilai A & B,parameter A & B sudah terdefinisi nilainya.setelah pertukaran A berisi nilai B semula, B berisi nilai A semula } </li></ul>
  22. 22. <ul><li>Aturan pemberian ‘nama’ dalam notasi algoritmik: </li></ul><ul><li>tidak boleh mengandung spasi, tanda baca dan operasi matematika </li></ul><ul><li>Karakter garis bawah (“_”) dpt digunakan untuk menggantikan spasi </li></ul><ul><li>Tidak membedakan huruf kecil dan huruf besar </li></ul><ul><li>( bahasa pemrograman case sensitif seperti bahasa C menganggap huruf kecil dan besar adalah 2 karakter yang berbeda) </li></ul>
  23. 23. 3. Bagian Algortima <ul><li>Bagian ini merupakan inti dari suatu program </li></ul><ul><li>Berisi deskripsi langkah2 penyelesain masalah berupa pernyataan, yg ditulis dalam suatu notasi </li></ul><ul><li>Misal write untuk mencetak data/informasi, read untuk membaca data,dsb </li></ul><ul><li>Setiap pernyataan dlm algoritma dibaca dari atas ke bawah </li></ul><ul><li>Algoritma dieksekusi berdasarkan urutan pernyataan </li></ul>
  24. 24. Contoh : <ul><li>Algoritma : </li></ul><ul><li>Read (panjang,lebar) </li></ul><ul><li>Luas ← panjang*lebar </li></ul><ul><li>Write (luas) </li></ul>
  25. 25. Translasi teks algoritma kedlm teks program pascal & C <ul><li>Teks algoritma merupakan hasil pemikiran konseptual, agar dpt dilaksanakan o/komputer maka harus ditranslasi kedlm bahasa bahasa pemrograman apapun </li></ul><ul><li>Bahasa pascal merupakan bahasa pendidikan krn paling banyak digunakan dilingkungan universitas </li></ul><ul><li>Bahasa C krn memiliki lingkungan yg luas dlm industri perangkat lunak </li></ul>
  26. 26. Contoh2 translasi <ul><li>Algoritmik </li></ul><ul><li>Program luas_segiempat </li></ul><ul><li>{ membaca panjang & lebar yg berbentuk empat persegi panjang, menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran } </li></ul><ul><li>DEKLARASI </li></ul><ul><li>{nama variabel} </li></ul><ul><li>panjang :real {panjang segiempat dlm cm} </li></ul><ul><li>lebar :real {lebar segiempat dlm cm} </li></ul><ul><li>luas :real {luas segiempat dlm cm} </li></ul><ul><li>ALGORITMA: </li></ul><ul><li>Read (panjang,lebar) </li></ul><ul><li>luas ←panjang*lebar </li></ul><ul><li>Write (luas) </li></ul>
  27. 27. Translasi dlm bahasa pascal <ul><li>Program luas_segiempat; </li></ul><ul><li>Uses wincrt; </li></ul><ul><li>Var </li></ul><ul><li>panjang,lebar,luas:real; </li></ul><ul><li>Begin </li></ul><ul><li>write (panjang=‘);readln (panjang); </li></ul><ul><li>write (lebar =‘);readln (lebar); </li></ul><ul><li>luas:=panjang*lebar; </li></ul><ul><li>writeln (luas segiempat=‘,luas:5:2); </li></ul><ul><li>End. </li></ul>
  28. 28. Translasi dlm bahasa C <ul><li>/* program luas_segiempat */ </li></ul><ul><li>/* program untuk menghitung luas segiempat */ </li></ul><ul><li># include <stdio.h> </li></ul><ul><li>Main () </li></ul><ul><li>{ </li></ul><ul><li>/* deklarasi*/ </li></ul><ul><li>Float panjang; {panjang segiempat dlm cm} </li></ul><ul><li>Float lebar; {lebar segiempat dlm cm} </li></ul><ul><li>Float luas; {luas segiempat dlm cm} </li></ul><ul><li>/*algoritma*/ </li></ul><ul><li>Printf (“panjang =“);scanf (“%f”, &panjang); </li></ul><ul><li>Printf (“lebar =“);scanf (“%f”, &lebar); </li></ul><ul><li>Luas=panjang*lebar; </li></ul><ul><li>Printf (“luas segi empat=“ %f “,luas); </li></ul><ul><li>} </li></ul>
  29. 29. <ul><li>Contoh1: menghitung komisi salesman </li></ul><ul><li>Tulislah agoritma untuk menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya.algoritma menerima data nama salesman dan nila penjualan yg dicapainya. Menghitung komisi lalu mencetak nama dan besar komisi yg diperolehnya </li></ul>
  30. 30. penyelesain <ul><li>Program komisi </li></ul><ul><li>{ menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya } </li></ul><ul><li>Deklarasi </li></ul><ul><li>nama_salesman : string </li></ul><ul><li>nilai_penjualan : real </li></ul><ul><li>komisi : real </li></ul><ul><li>Algoritma: </li></ul><ul><li>Read(nama_salesman,nilai_penjualan) </li></ul><ul><li>komisi ←0.05 *nilai_penjualan </li></ul><ul><li>Write (nama_salemsman,komisi) </li></ul>
  31. 31. <ul><li>Program komisi_salesman; </li></ul><ul><li>Uses wincrt; </li></ul><ul><li>Var </li></ul><ul><li>nama_salesman :string; </li></ul><ul><li>nilai_penjualan :real; </li></ul><ul><li>komisi :real; </li></ul><ul><li>Begin </li></ul><ul><li>write (‘nama salesman:‘);readln (nama_salesman); </li></ul><ul><li>write (‘nilai penjualan :‘);readln (nilai_penjualan); </li></ul><ul><li>komisi :=0.05 * nilai_penjualan; </li></ul><ul><li>writeln (‘komisi penjualan =‘,komisi:7:2); </li></ul><ul><li>End. </li></ul>
  32. 32. <ul><li>/* program komisi_salesman */ </li></ul><ul><li>/* program untuk menghitung komisi salesman */ </li></ul><ul><li># include <stdio.h> </li></ul><ul><li>Main () </li></ul><ul><li>{ </li></ul><ul><li>/* deklarasi*/ </li></ul><ul><li>String nama_saleman; </li></ul><ul><li>Float nilai_penjualan; </li></ul><ul><li>Float komisi; </li></ul><ul><li>*algoritma*/ </li></ul><ul><li>Printf (“nama salesman =“);scanf (“%s”, &nama_salesman); </li></ul><ul><li>Printf (“nilai penjualan =“);scanf (“%f”’, &nilai_penjualan); </li></ul><ul><li>Komisi=0.05 * nilai_penjualan; </li></ul><ul><li>Printf (“komisi penjualan=“ %f “,komisi); </li></ul><ul><li>} </li></ul>
  33. 33. TUGAS 2 : <ul><li>Tulislah algoritma yg membaca nama karyawan dan gaji pokok bulanannya serta menghitung gaji bersihnya. Gaji bersih yg diterima pegawai adalah : </li></ul><ul><li>gaji bersih = gaji pokok + tunjangan-pajak </li></ul><ul><li>tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15%dari gaji pokok ditambah tunjangan.nama karyawan dan gaji bersihnya dicetak kepiranti keluaran </li></ul>

×