Pemrograman Repetisi Ramos Somya, S.Kom., M.Cs.
4 Prinsip Utama dalam Pemrograman Sequence Procedure & Function Choices 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 *** Sequence 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, misal mencetak bujursangkar dengan ukuran 4x4, 5x5 dsb.
Format Sequence Repetisi (1) Contoh: #### Perintah: times 4 do p#; od times F do P od
… #### times 3 do times 4 do p#; od NL; od
Format Sequence Repetisi (2) 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 { times 3 do p*; od NL; } od
… * ** *** **** Perintah: for n runningthrough 1..4 do { times n do p*; od NL; } od
… **** *** ** * Perintah: for n rbt 4..1 do { times n do p*; od; NL; } od
…
… times 7 do p*; od for n rt 1..5 do { times n do ps; od; p*; times 5-n do ps; od; p*; NL; } od times 6 do ps; od; p*;
Sequence Procedure dan repetisi Program sebelumnya dapat dibuat lebih dinamis menggunakan procedure dan repetisi: def segitiga (n) = times n do p*; od for i rt 1..n-2 do { times i do ps; od; p*; times n-2-i do ps; od; p*; NL; } od 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 { times 3 do { times 5-n ps; od times n p*; od } NL; 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 { times k do { times n+1-m do ps; od times m do p*; od } NL; 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
Latihan Buat perintah dengan perulangan untuk mencetak pola: a) b) c)
See You Next Week