IT-132 Dasar-Dasar Pemrograman Repetisi Ramos Somya, S.Kom., M.Cs.
4 Prinsip Utama dalam Pemrograman Sequence Procedure & Function Choice Repetition
Repetisi Looping Iterasi Perulangan Mengulang suatu perintah yang memiliki aturan yang sama, sehingga mengefisienkan dan memudahkan dalam pemrograman. Karena penggunaan prosedur tidak mampu menghilangkan sekuens instruksi yang bersifat perulangan atau repetisi dalam suatu program.
Contoh *** Dengan Procedure: def r3(p) = p();p();p(); enddef def tiga() = NL; p*;p*;p*; enddef r3(tiga) Penggunaan repetisi jauh lebih baik terutama jika kita ingin membuat pola yang berbeda.
Format Repetisi (1) times F do P od Contoh: #### Perintah: times 4 do p#; od times F do P od
… #### times 3 do NL; times 4 do p#; od od
Format Repetisi (2) Contoh: *** Perintah: for n runningthrough 1..5 do { perintah yang diulang } od for n runningbackthrough 5..1 do { perintah yang diulang } od Contoh: *** Perintah: for n runningthrough 1..3 do { NL; times 3 do p*; od } od
… * ** *** **** Perintah: for n runningthrough 1..4 do { NL; times n do p*; od } od
… **** *** ** * Perintah: for n rbt 4..1 do { NL; times n do p*; od; } od
…
… NL; times 7 do p*; od for n rt 1..5 do { NL; times n do ps; od; p*; times 5-n do ps; od; p*; } od NL; times 6 do ps; od; p*;
Procedure dan repetisi Program sebelumnya dapat dibuat lebih dinamis menggunakan procedure dan repetisi: def segitiga (n) = NL; times n do p*; od for i rt 1..n-2 do { NL; times i do ps; od; p*; times n-2-i do ps; od; p*; } od NL; times n-1 do ps; od; p*; enddef
… Buat procedure untuk mencetak sebaris k segitiga dengan ukuran nxn. Jarak antar segitiga satu spasi. ??????
… Ada berapa baris?? Ada berapa segitiga?? Perintah: for n rbt 4..1 do { NL; times 3 do { times 5-n ps; od times n p*; od } od
… Modifikasi menjadi n baris dan k kolom. for n rt 4..1 mencetak 4 baris. times 3 mencetak 3 segitiga. Prosedure-nya: def segitiga(n, k) = for m rbt n..1 do { NL; times k do { times n+1-m do ps; od times m do p*; od } od enddef
Latihan Buat pola berikut ini dengan perulangan!
… * ** *** Bagaimana jika * diganti dengan angka?? Buat perintah dengan perulangan untuk mencetak pola: 1 1 22 12 333 123
… for n rt 1..3 do { NL; times n do p(n); od } od NL; for m rt 1..n do { p(m); od
See You Next Week