Perulangan

Jika mengulang sesuatu terasa membosankan bagi manusia, itu jelas tidak berlaku bagi komputer. Komputer bisa mengulang-ulang proses yang sama sebanyak-banyaknya.

Komputer mempermudah perulangan saat perulangan tersebut dituliskan dengan pola tertentu dalam bahasa pemrograman. Dalam Pascal, ada beberapa macam perulangan. Perulangan-perulangan tersebut, yaitu :
  1. While ... do
  2. For ... to ... do
  3. For ... downto ... do
  4. Repeat ... until
Perhatikan contoh berikut ini :
Program Perulangan;
uses crt;
var i:integer=0;
Begin
    clrscr;
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    i:=i+1;Writeln(i);
    Readln
end. 
Bandingkan kode program di atas dengan kode program berikut ini!
Program Perulangan;
uses crt;
Var i : integer;
Begin
    clrscr;
    for i:=1 to 10 do writeln (i);
    Readln
end.
Hasil kode program dengan for to do di atas sama dengan program sebelumnya. Perulangan dengan for to do digunakan untuk melakukan perulangan yang menambahkan nilai variabel dengan satu (1) setiap kali statement diulang. Perulangan itu dimulai dari nilai tertentu dan berakhir saat nilai tertentu.

Jika "for to do" menggunakan rentang nilai tertentu untuk mengubah nilai variabelnya secara berurutan, perulangan selain for to do menggunakan variabel yang terus menerus berubah nilainya hingga kondisi terpenuhi. Saat kondisi sudah terpenuhi, perulangan akan berhenti. Pada contoh di atas nilai variabel adalah 1 sampai dengan 10. Hal ini juga bisa dilakukan dengan while do.

Program Perulangan;
uses crt;
Var i:integer=1;
Begin
    clrscr;
    while (i<=10) do
    begin
        writeln (i);
        i:=i+1;
    end;
    Readln
end.
Nilai variabel dalam while do tidak otomatis berubah kecuali ada perubahan nilai yang dilakukan pada variabel yang ada. While do bisa menggunakan lebih dari satu "syarat" untuk melakukan perulangan. Jika "for to do" mengubah nilai variabel secara berurutan, perubahan nilai variabel pada while do bisa dengan bebas kita ubah sesuai pola yang kita inginkan.

Perhatikan "begin dan end;" diatas. Begin dan end digunakan jika ada lebih satu pernyataan dalam percabangan atau perulangan selain repeat until. Kode program di bawah ini menggunakan repeat until tapi hasilnya sama dengan program di atas.

Perbedaan while do dan repeat until adalah pada pengecekan syarat perulangannya yang merupakan kebalikan dari while do. Berbeda dengan while do (yang diulang saat syarat masih terpenuhi), Isi repeat until diulang saat syarat belum terpenuhi. Repeat until berbeda dengan while do yang bisa saja tidak melaksanakan apapun yang merupakan bagian dari perulangan karena pengecekannya di awal. Repeat until akan minimal melaksanakan satu kali putaran karena pengecekannya ada di akhir perulangan.

Program Perulangan;
uses crt;
Var i : integer=1;
Begin
    clrscr;
    Repeat
        writeln (i);
        i:=i+1;
    until(i>10);
    Readln
end.

For to do kebalikannya adalah for down to do. Jika for to do urutannya naik, maka for down to urutannya adalah menurun. Untuk lebih jelasnya, bandingkan kode program di bawah ini dengan for to do yang sudah saya tulis di atas!

Program Perulangan;
uses crt;
Var i : integer;
Begin
    clrscr;
    For i:=10 downto 1 do writeln (i);
    Readln
end.


Contoh di atas adalah perulangan yang mengubah nilai "variabel i" dari 10 sampai dengan 1. Artinya perulangan terjadi sebanyak 10 kali dan di setiap perulangan nilai variabel i berkurang secara berurutan. Hasilnya adalah kebalikan dari "for i:=1 to 10 do".

Begin dan end akan dibutuhkan jika ada lebih dari satu pernyataan / statement dalam perulangan / loop. Kalau kalian tidak tahu atau lupa apa dengan apa yg dimaksud sebagai statement dalam perulangan, anggap saja statement adalah semua bagian program yang diakhiri dg titik koma (;).

Perulangan dalam Perulangan
Mari kita lanjutkan pembahasan kita tentang perulangan. Sekarang kita akan coba membuat perulangan di dalam perulangan. Kali ini yang akan kita cetak bukan nilai "variabel i", tapi kita akan mencetak pola bintang (*) menggunakan for to do. Walaupun begitu, perlu diingat bahwa apapun yang dicetak dan dilakukan nilai "variabel i" akan berubah di setiap perulangan for to do dan for down to do. Ayo kita buat kode program tersebut!
program perulangan;
uses crt;
Var i, j: integer;
Begin
    clrscr;
    For i := 1 to 10 do
    Begin
        For j :=1 to 10 do write('*');
        Writeln;
    End;
    readln;
End.

Perulangan bisa kita letakkan dalam perulangan. Perulangan yang ada di dalam perulangan akan diselesaikan lebih dahulu sebelum perulangan bagian luar dilanjutkan. Perulangan tidak mengulang pola tapi yang diulang adalah statement dalam perulangan. Perhatikan contoh berikut ini!


Program Polasegitiga;
uses crt;
var i,j:integer;
begin
    clrscr;
    for i:=1 to 9 do
    begin
        for j:=1 to i do write(i);
        writeln;
    end;
    readln;
end.

Break dan Continue
Ada dua "perintah khusus" dalam perulangan yaitu break dan Continue. Break digunakan untuk menghentikan perulangan dan melewatkan semua baris di bawahnya yg termasuk bagian dari perulangan tersebut. Sedangkan continue digunakan untuk mengulang dari awal perulangan tapi baris dibawahnya diabaikan.
Program Perulangan;
uses crt;
Var i : integer;
Begin
    clrscr;
    For i:=10 downto 1 do
    begin
        writeln (i);
        break;
        write('baris ini tidak dikerjakan') 
    end; 
    Readln
end.
Bandingkan hasilnya dengan kode program di bawah ini!
Program Perulangan; 
uses crt;
Var i : integer; 
Begin
    clrscr;
    For i:=10 downto 1 do 
    begin 
        writeln (i); 
        continue; 
        write('baris ini tidak dikerjakan')  
    end; 
    Readln
end.
Untuk lebih memahami tentang perulangan kalian bisa mencoba mengubah angka yang digunakan untuk menentukan jumlah perulangan dan apa yang ditulis dalam perulangan tersebut.