Macam-macam Perulangan
For..do Whiledo Repeat..until
Perulangan dengan statement for digunakan untuk mengulang statement atau satu blok statement berulang kali sejumlah yang ditentukan.
Perulangan Positif
Perulangan
tipe
sama
yaitu
Example
uses crt; var i: integer; begin clrscr; for i:= 1 to 5 do begin writeln('Pascal'); end; readkey; end.
Perulangan Negatif
Adalah perulangan dengan penghitung (counter) dari besar ke kecil. Bentuk: for variabel kontrol := nilai awal downto nilai-akhir do statement
Example
uses crt; var i: integer; begin clrscr; for i:= 5 downto 1 do begin writeln(i); end; readkey; end.
Perulangan Tersarang
Perulangan tersarang (nested loop) adalah perulangan yang berada di dalam perulangan yang lainnya.
Example
uses crt; var i,j : integer; begin clrscr; for i := 1 to 5 Do begin for j := 1 to 3 do begin write(i:8, j:3); end; writeln(); end; readkey; end.
nyata dalam kehidupan, pada saat dilakukan proses menggali sumur untuk mencari sumber air.
Pada awal penggalian, tidak dapat ditentukan dengan pasti berapa meter kedalaman yang harus dicapai. Proses penggalian dilakukan terus menerus sampai ditemukan cukup air. Dengan demikian perulangan dalam menggali dihentikan saat terjadi kondisi ditemukan air.
repeat
Pada awal, perintah akan dilakukan 1 kali baru kemudian dilakukan pengecekan pada kondisi yang diberikan pada until. Kondisi ini yang menentukan apakah dilakukan perulangan lagi atau tidak. Jika kondisi bernilai false maka program akan dilanjutkan pada perintah repeat lagi. Hal ini berlangsung terus menerus, sampai saat kondisi bernilai true, program dilanjutkan ke perintah setelah until.
x := 3;
repeat
write(x); x:= x + 1 ; until (x > 7); write(done..);
Program 6.10
Program 6.10 diawali dengan memberikan nilai 3 pada variabel i. Setelah itu bagian repeat akan dilakukan, diawali dengan mencetak nilai x, yaitu 3 dillanjutkan dengan menambahkan nilai x dengan 1 menjadi 4. Pada bagian until akan diperiksa kondisi (x >7). Dengan nilai x adalah 4 maka kondisi ini akan bernilai false sehingga program akan dilanjutkan pada bagian repeat lagi. Mencetak nilai x, yaitu 4 dan kemudian menambahkan nilai x dengan 1 menjadi 5. Kembali diperiksa kondisi ( x > 7 ) yang tetap memberikan nilai false sehingga repeat dilakukan lagi.
Contoh yang lain dapat dilihat pada Program 6.11, dimana user diberikan kesempatan untuk menuliskan namanya. Hal ini dilakukan terus menerus sampai nama yang dituliskan adalah kristin.
uses crt; var nama : string; begin repeat clrscr; write(input nama : ); readln(nama); until ( nama = kristin ); write(done); end.
Program 6.11
while...do
Perintah yang kedua adalah while...do. bentuk dasar dari perintah ini adalah :
while (kondisi) do begin
perintah yang diulang
end;
while...do
Program 6.10 jika dituliskan menggunakan whiledo maka akan menjadi seperti program 6.12. x := 3;
end;
write(done..);
Program 6.12
while...do
Dengan nilai x adalah 3 maka kondisi (x <= 7) akan bernilai true sehingga repetisi dikerjakan, yaitu proses mencetak nilai x dan menambahkan nilai x menjadi 4. Setelah mencapai end, program dilanjutkan pada while, sehingga kondisi (x <= 7) diperiksa lagi, kali ini dengan nilai x adalah 4. Kondisi bernilai true, maka repetisi dilakukan lagi. Proses ini terjadi terus-menerus sampai nilai x adalah 7. Setelah mencetak nilai x dan ditambahkan 1 menjadi 8, program mencapai end dan dilanjutkan pada while. Kondisi (x <= 7) akan memberikan nilai false sehingga repetisi dihentikan. Program dilanjutkan pada perintah setelah end, yaitu
write(done);.
Kesimpulan
Perintah repeat...until dan while...do pada prinsipnya adalah sama namun ada beberapa perbedaan yang dapat dimanfaatkan sesuai dengan situasi dan proses yang diinginkan. Pada repeat...until perintah repetisi akan dilakukan minimal satu kali, karena kondisi akan diperiksa pada bagian akhir dari repetisi. Pada while...do, kondisi akan langsung diperiksa sehingga mungkin saja tidak terjadi perulangan sama sekali jika kondisi tidak terpenuhi. Pada repeat...until, repetisi akan terjadi jika kondisi yang diberikan bernilai false sedangkan pada while...do, repetisi akan dilakukan jika kondisi bernilai true.
Rangkuman
Soal Latihan
Penggalan program pascal sebagai berikut: y := 0; for i := 1 to 5 do for j := 5 downto i do y := y + i; writeln(y); Tentukan nilai y yang
dicetak !
Soal Latihan
Penggalan program pascal sebagai berikut: x := 0 ; y := 0 ; while x < 10 do begin x := x + 1 ; y := y + x ; end ; writeln(x , y) ; Berapa harga x dan y yang dicetak ?
Soal Latihan
Penggalan program pascal sebagai berikut: a := 10 ; b := 0 ; repeat b := b + 1 ; a := a - b ; until a > b ; writeln (a, b) ; Berapa harga a dan b yang dicetak ?
-selesai-