Materi 9 LOGIKA & ALGORITMA
Pengulangan (Looping) Buatlah program untuk menampilkan 10 buah kata ‘hello’ di monitor. Mudah… tuliskan saja perintah write(‘hello’) 10 kali. Bagaimana jika menampilkan 1000 buah kata ‘hello’? Sanggupkah anda menuliskan perintah write(‘hello’) sebanyak 1000 kali? Bagaimana pula jika ingin menampilkan kata ‘hello’ sebanyak x kali, dimana x akan diatur saat program dijalankan? Kita tidak dapat menggunakan cara pertama tadi. Dengan menggunakan looping, kasus ini dapat diselesaikan dengan mudah. Ada 3 jenis perintah looping: For While – do Repeat – until
For (1) Syntax 1: For <identifier> := <start> to <end> do <statement>; Contoh: Menampilkan 10 buah kata ‘hello’ For i:= 1 to 10 do write(‘hello’); Contoh: Menampilkan nomor terurut naik dari -5 sampai 3 For i:= -5 to 3 do writeln(i); Tipe data untuk <start> dan <end> harus ordinal (integer/char). Jika <start> = <end> maka looping dijalankan satu kali. Jika <start> lebih besar dari <end> maka looping tidak dijalankan.
Contoh Contoh: Error, tipe data i = real For i:= 1.5 to 2.7 do writeln(‘hello’); Contoh: <start> = <end>, menampilkan satu ‘hello’ For i:= 10 to 10 do Contoh: <start> lebih besar dari <end>, tidak menampilkan apa-apa For i:= 5 to 1 do
Pseudocode vs Pascal Looping For Pseudocode : For i:= 1 to 10 do write(‘hello’) write(‘------’) endfor Pascal : For i:= 1 to 10 do begin writeln(‘hello’); writeln(‘-----’); end; Catatan : Perhatikan penggunaan separator
Latihan Buatlah program console untuk menampilkan tanda ‘*’ sebanyak x buah. Nilai x diinput melalui keyboard saat program dijalankan. Pseudocode Deklarasi : i, x : integer Deskripsi : Read (x) For i := 1 to x do write(‘*’) endfor
Latihan Buatlah program console untuk menampilkan daftar bilangan ganjil sebanyak x buah. Nilai x diinput melalui keyboard saat program dijalankan. Pseudocode Deklarasi : i, x : integer Deskripsi : Read (x) For i := 1 to x do write(2*i-1) endfor
Latihan Buatlah program console untuk menampilkan angka terurut turun (descending) dari 10 sampai 1. Pseudocode Deklarasi : i : integer Deskripsi : For i := 1 to 10 do write(11-i) endfor
For (2) Syntax 2: For <identifier> := <start> downto <end> do <statement>; Setelah mempelajari looping for dengan downto, maka latihan sebelumnya dapat juga menggunakan cara berikut: Deklarasi : i : integer Deskripsi : For i := 10 downto 1 do write(i) endfor
Perhatikan Di dalam looping For, tidak boleh ada perintah mengubah nilai identifier counter-nya. Contoh: Program ini salah !!! Tidak boleh mengubah nilai i di dalam loop-nya For i:= 1 to 10 do begin i := i + 1; //mengubah nilai counter i writeln(i); end; Jika anda melakukan hal di atas, program tidak bisa di-compile/di-run. Hati-hati ! Bahasa pemrograman lain, misalnya C, membolehkan hal ini (tidak error).
Latihan Pseudocode endfor Buatlah program console untuk menampilkan tabel perkalian x dengan bilangan 1 - 10. Nilai x diinput melalui keyboard. Pseudocode Deklarasi : i, x : integer Deskripsi : Read (x) For i := 1 to 10 do write(x, ’*’ , i , ’=‘ , x*i) endfor
Latihan Buatlah program console untuk menampilkan tanda ‘*’ pada baris genap dan tanda ‘#’ pada baris ganjil. Jumlah baris diatur melalui keyboard.
Pseudocode Deklarasi : i, x : integer Deskripsi : Read (x) For i := 1 to x do if (i mod 2 = 0) then write(’*’) else write(’#’) endif endfor
Latihan Buatlah program console untuk menampilkan daftar bilangan dari 1 – 100 yang tidak habis dibagi 3 dan 7. Buatlah program console untuk menampilkan teks lagu “Anak Ayam”. Jumlah anak ayam mula-mula diinput dari keyboard.
Latihan Buatlah program untuk menghitung nilai rata-rata mahasiswa. Jumlah mahasiswa dapat ditentukan saat program dijalankan.
Pseudocode Deklarasi : Deskripsi : readln(x) total:=0 i, x, total, nilai : integer mean : real Deskripsi : readln(x) total:=0 for i:= 1 to x do readln(nilai) total:=total+nilai endfor mean:=total/x writeln(mean)
Latihan Buatlah program console untuk menghitung faktorial dari suatu bilangan integer yang dimasukkan melalui keyboard.