LOGIKA DAN ALGORITMA - PERTEMUAN 5 & 6 – PERULANGAN Alur proses perulangan Menyelesaikan masalah dengan melakukan perulangan satu proses atau beberapa proses. Biasa disebut dengan looping. Memindahkan kontrol komputer dari akhir suatu proses kembali ke bagian awalnya. Contoh Proses Perulangan Tentukan (pertama/berikutnya) nama pegawai, empname, salarinya Bonus=0.03*salari Catat empname dan bonus Kembali ke langkah awal Start Read empname, salary Bonus=0.03*salary Write empname, bonus Counter Untuk mengontrol sebuah loop. Menghasilkan kondisi stop. Counter merupakan sebuah variabel yang nilainya dinaikkan satu setiap kali pengulangan. Contoh pengulangan sebanyak 50 kali. Start Count=1 Count =50 No Yes Proses Count = count+1 End Perulangan For Notasi text algoritma For Menaik : ForVariableCounter NilaiAwal to NilaiAkhir do Aksi-aksi Endfor Notasi text algoritma For Menurun : ForVariableCounter NilaiAkhir Downto NilaiAwal do Aksi-aksi Endfor For i:=1 to jmlh Proses 1 i = jmlh Percabangan dalam perulangan For i:=1 to jmlh N Kondisi 1 Y Instruksi 1 N i = jmlh Y Instruksi 2 PercabanganDalamPerulangan; Deklarasi Variabel; jmlh:numerik; Begin …… for i:=1 to jmlh do begin if kond 1 then instruksi 1 else instruksi 2 end …… End Latihan Soal Cetak Bilangan 1-N bilangan secara Ascending dan Descending. Cetak tulisan “STIKOM Surabaya” sebanyak 10 kali. Cetak Bilangan Genap mulai dari 0 sampai N bilangan. TUGAS 5 Buat algoritma untuk menghitung nilai rata-rata dari sejumlah nilai yang dimasukkan dari keyboard. Buat algoritma untuk menghitung nilai faktorial dari n bilangan, contoh : 5! = 5*4*3*2*1=120 While – Do Pengulanganan for mengharuskan jumlah pengulangannya harus diketahui saat akan dieksekusi. Problem : Tampilkan tulisan berjalan di monitor, dan berhenti jika user menekan Enter. While – Do : Bentuk pengulangan dengan kondisi pengulangan diperiksa pada awal struktur pengulangan. Instruksi dalam badan pengulangan hanya dapat dilaksanakan bila pengetesan kondisi menghasilkan nilai true. Diagram Flowchart While – Do Notasi penulisan : while (kondisi) do Aksi endwhile No (Kondisi) Yes Notasi penulisan : do { Aksi; } while (kondisi) /*endwhile*/ Aksi-aksi Contoh Algoritma While-Do Algoritma Mencetak_Bilangan_Genap_<_Input {Mencetak bilangan genap yang lebih kecil dari masukan} Deklarasi K, N:Integer {Pencacah pengulangan} Diskripsi Read(N) K0 (Inisialisasi) while K<= N do write (K) K K+2 Endwhile {Kondisi akhir pengulangan : K>N} Repeat – Until Hampir sama dengan pernyataan pengulangan while-do Jika pada pernyataan while, kondisi dicetak pada awal kalang. Pada Repeat Until, kondisi dicetak pada akhir kalang. Bila pernyataan while-do mengulang pernyataan selama kondisi masih terpenuhi Pernyataan repeat-until mengulang pernyataan selama kondisi belum terpenuhi Diagram Flowchart Repeat – Until Notasi penulisan : repeat (pernyataan – pernyataan yang akan diulang) until kondisi Aksi-aksi No (Kondisi) Yes Contoh Algoritma Repeat – Until Algoritma Mencetak_Bilangan_Genap_<_Input {Mencetak bilangan genap yang lebih kecil dari masukan} Deklarasi K, N:Integer {Pencacah pengulangan} Diskripsi Read(N) K0 (Inisialisasi) repeat write (K) K K+2 until (k>N) {Kondisi akhir pengulangan : K>N} Pengulangan Bersarang Algoritma Menampilkan_Konfigurasi_Bintang Deklarasi Baris, i , j : Integer Deskripsi read(baris) for i 1 to Baris do for j 1 to i do write(“*”) endfor writeln // Ganti baris endfor LATIHAN SOAL Buatlah deret bilangan fibonacci dimana jumlah bilangan yang ditampilkan dimasukkan. Carilah nilai KPK dari 2 bilangan bulat yang dimasukkan dari keyboard. Input : N=10 Output : 1 1 2 3 5 8 13 21 34 55 Input : x=10; y = 6 Output : KPK = 30 Input : x = 15; y = 25 Output : KPK = 75 Buat algoritma untuk menampilkan konfigurasi sbb : Jika N=1, maka output di layar adalah * Jika N = 2, maka output di layar adalah * ** Jika N=3, maka output di layar adalah * ** *** Jika N =4, maka output di layar adalah * ** *** **** TUGAS 6 Buatlah deret bilangan fibonacci dimana jumlah bilangan yang ditampilkan dimasukkan. Input : N=10 Output : 55 34 21 13 8 5 3 1 1 Buat algoritma untuk menampilkan konfigurasi ***** **** *** ** * Buat algoritma untuk membentuk suatu deret 1, 1, 1, 4, 1, 9,1,16,1 ……