3. Langkah2 proses penyelesaian masalah tersebut dpt membentk konstruksi suatu algoritma, langkah2 tersbt adalah : 1. runtunan aksi 2. pemilihan aksi 3. pengulangan aksi
5. Contoh: Program tukar_isi Diberikan 2 buah ember A & B berisi air berwarnamerah, ember B berisi air berwarnabiru.pertukarkankeduaisi ember tersbtshg ember A berisi air berwrnabiru & ember B berisi air berwanamerah Algoritma : Tuangkan air dari ember A kedlm ember C Tuangkan air dari ember B kedlm ember A Tuangkan air dari ember C kedlm ember B
6.
7. Misal A=8 dan B=5, pertukarkannilai A & B, sehingga A=5 dan B=8,maka algoritmanya : isikannilai A kedlm B isikannilai B kedlm A makahasilnya:A=8 & B=8, makaalgoritmapertkarannyasalah.Agaralgirtmanyabenar,makaperludigunakanpeubahbantu,misal C, sehingggaalgoritmanyaadalah:
11. Bentuk lain statentcondisional if kondisi then aksi1 Else aksi2 a. else “kalautdk”. Bilakondisibenar,maka aksi1 ygdikerjakan,kalautdk aksi2 dikerjakan.contoh: iflampu A nyalathen tekantombolmerah else tekantombolbiru
12. b.nested-if =pemilihanbersarang ad/ apabilapemilihanaksiygdilakukanlebihdr 2 buah,makastrukturpemilihanyamenjdirumit. if kondisi1 then aksi1 Else if kondisi2 then aksi2 else aksi3
15. 3.PENGULANGAN Salahkelebihankomputer ad/ kemampuannya u/ melakukanperkerjaansecaraberulang-ulang Contoh: program menulis_kalimat_500_kali menuliskankalimat ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ sebanyak 500 kali Algoritma: 1. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ 2. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah 3. tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah . . . 500
16. u/ mengtasihaltersbtdptdigunakanstukrutrpengulanganfor-do, sehinggaalgoritmya: programmenulis_kalimat_500_kali menuliskankalimat ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ sebanyak 500 kali Algoritma: foridari 1 sampai 50 do tulis ‘algoritmaadalahlangkahlogispenyelesaianmasalah’ i ad/ pencacahpengulanganygmencacah 1 s/d 500
17. Bentuk2 pengulangan: Forpencacahpengulangandr 1 s/d N do aksi repeat-until=ulangi-sampai: prosespengulanganakanberhentijikakondisiterpenuhi 3 While-do=selama-lakukan= prose pengulanganakanberhentijikakondisisalah Repeat Aksi Until kondisi While kondisi do Aksi
18. STRUKTUR TEKS ALGORITMA Ada 3 bagian struktur suatu algoritma, yaitu : Bagian Judul (header) Bagian Deklarasi Bagian Algoritma
19. StrukturteksAgoritma : PROGRAM nama_program {penjelasan tentang algoritma yg beisi uraian singkat mengenai masalah yg akan diselesaikan} DEKLARASI {Semua nama yg dipakai, nama tipe,konstanta,var,prosedur,dan fungsi diumumkan disini} ALGORITMA {Semua langkah/aksi algoritma dituliskan disini}
20. Contoh: PROGRAM luas_lingkaran {menghitung luas lingkaran apabila jari-jari lingkaran sudah diberikan} DEKLARASI {Nama Konstanta} const N =10 const phi=3.14 {nilai phi} {Nama variabel} jari_jari, luas:real ALGORITMA: READ (jari_jari) LUAS Phi *jari_jari*jari_jari Write (luas)
21. 1. Bagianjudul / header Memuat nama program dan penjelasan(spesifkasi) tentang program Nama program ditulis singkat,tetapi hrs menggambarkan apa yg dilakukan algoritma Algoritma yg dibuat harus sesuai dgn spesifikasi masalah yang diberikan Contoh: PROGRAM helloWord {program untuk mencetak “hello word”} PROGRAM luas_lingkaran {program untuk menghitung luas lingkaran”}
22. 2. BagianDeklarasi Mengumumkan semua nama yg akan dipakai, termasuk nama tipenya Nama tersbut berupa:konstanta,variabel,tipe, prosedur dan fungsi Semua nama tersbt harus dideklarasikan sebelum digunakan
24. FUNCTION apakah_A(input c:char) boolean {mengembalikannilai true bila c adalahkarakter ‘A’ atau false bilasebaliknya} PROSEDURE tukar(input/output A:integer, input/output B:integer) {mempertukarkannilai A & B,parameter A & B sudahterdefinisinilainya.setelahpertukaran A berisinilai B semula, B berisinilai A semula}
26. 3. BagianAlgortima Bagian ini merupakan inti dari suatu program Berisi deskripsi langkah2 penyelesain masalah berupa pernyataan, yg ditulis dalam suatu notasi Misal write untuk mencetak data/informasi, read untuk membaca data,dsb Setiap pernyataan dlm algoritma dibaca dari atas ke bawah Algoritma dieksekusi berdasarkan urutan pernyataan
28. Translasiteksalgoritmakedlmteks program pascal & C Teks algoritma merupakan hasil pemikiran konseptual, agar dpt dilaksanakan o/komputer maka harus ditranslasi kedlm bahasa bahasa pemrograman apapun Bahasa pascal merupakan bahasa pendidikan krn paling banyak digunakan dilingkungan universitas Bahasa C krn memiliki lingkungan yg luas dlm industri perangkat lunak
29. Contoh2 translasi Algoritmik Program luas_segiempat {membaca panjang & lebar yg berbentuk empat persegi panjang, menghitung luasnya, lalu mencetak luas tersebut ke piranti keluaran} DEKLARASI {nama variabel} panjang :real {panjang segiempat dlm cm} lebar :real {lebar segiempat dlm cm} luas :real {luas segiempat dlm cm} ALGORITMA: Read (panjang,lebar) luas←panjang*lebar Write (luas)
30. Translasidlmbahasapascal Program luas_segiempat; Uses wincrt; Var panjang,lebar,luas:real; Begin write (panjang=‘);readln (panjang); write (lebar =‘);readln (lebar); luas:=panjang*lebar; writeln (luassegiempat=‘,luas:5:2); End.
31. Translasi dlm bahasa C /*program luas_segiempat */ /* program untukmenghitungluassegiempat */ # include <stdio.h> Main () { /* deklarasi*/ Float panjang; {panjangsegiempatdlm cm} Float lebar; {lebarsegiempatdlm cm} Float luas; {luassegiempatdlm cm} /*algoritma*/ Printf (“panjang =“);scanf (“%f”, &panjang); Printf (“lebar =“);scanf (“%f”, &lebar); Luas=panjang*lebar; Printf (“luassegiempat=“ %f “,luas); }
32. Contoh1: menghitungkomisi salesman Tulislahagoritmauntukmenghitungkomisiygditerima salesman berdasarkannilaipenjualanygdicapainya. Salesman mendapatkomisi 5% darihasilpejualannya.algoritmamenerima data nama salesman dannilapenjualanygdicapainya. Menghitungkomisilalumencetaknamadanbesarkomisiygdiperolehnya
33. penyelesain Program komisi {menghitung komisi yg diterima salesman berdasarkan nilai penjualan yg dicapainya. Salesman mendapat komisi 5% dari hasil pejualannya} Deklarasi nama_salesman : string nilai_penjualan : real komisi : real Algoritma: Read(nama_salesman,nilai_penjualan) komisi←0.05 *nilai_penjualan Write (nama_salemsman,komisi)
34. Translasibahasapascal Program komisi_salesman; Uses wincrt; Var nama_salesman :string; nilai_penjualan :real; komisi :real; Begin write (‘nama salesman:‘);readln (nama_salesman); write (‘nilaipenjualan :‘);readln (nilai_penjualan); komisi :=0.05 * nilai_penjualan; writeln (‘komisipenjualan =‘,komisi:7:2); End.