Perulangan dengan REPEAT UNTIL loop pada Pascal

baca 2 menit
Perulangan dengan REPEAT UNTIL loop pada Pascal

Setelah sebelumnya kita membahas tentang FOR loop, dan WHILE DO loop pada Pascal. Sekarang kita akan membahas tentang REPEAT UNTIL loop.

Pengertian REPEAT UNTIL loop pada Pascal

REPEAT UNTIL loop memiliki kemiripan dengan WHILE DO loop. Keduanya sama sama menggunakan ekspresi boolean sebagai kondisinya. Perbedaannya terletak pada letak kondisi, dan juga waktu berhentinya.

Pada REPEAT UNTIL loop, pengecekan kondisi dilakukan pada akhir perintah dan perulangan akan terus berjalan selama kondisi masih bernilai false. Ini kebalikan dari WHILE DO loop yang pengecekan kondisi berada di awal dan perulangan berjalan selama kondisi bernilai true.

Mari kita lihat contoh sederhananya, tetap dengan mengaduk adonan roti hehe...

// dalam bahasa pascal
repeat
  aduk_adonan;
until (roti_mengembang);

// atau dalam bahasa Indonesia
ulangi
  aduk_adonan;
sampai (roti_mengembang);

Pada perulangan REPEAT UNTIL tersebut, perintah aduk_adonan akan terus berjalan selama roti belum mengembang. Namun ketika roti telah mengembang, perulangan akan berhenti.

Format Penulisan REPEAT UNTIL loop pada Pascal

Sama seperti WHILE DO loop, komponen terpenting dari REPEAT UNTIL loop terletak pada kondisi dan perintah yang akan dijalankan. Untuk format penulisannya sebagai berikut.

repeat
  {perintah yang akan dijalankan}
until ({kondisi});

Oke supaya lebih paham, kita lanjut dengan membuat program sederhana menggunakan REPEAT UNTIL loop.

Contoh Penggunaan REPEAT UNTIL loop pada Pascal

Pada contoh kali ini kita akan coba membuat program untuk mengeluarkan output bilangan kelipatan 2 dengan mengunakan REPEAT UNTIL loop. Silahkan ketikkan kode berikut.

pascal
program WhileDoLoop;
uses crt;
var
  i: integer;
begin
  clrscr;
  i := 2;
  writeln('Bilangan kelipatan 2');
  repeat
    write(i, ', ');
    i := i+2; // menambah i sebanyak 2
  until(i > 100); // perulangan sampai i lebih dari 100
  readln;
end.

Silahkan kalian jalankan, maka kurang lebih outputnya akan seperti ini.

Bilangan kelipatan 2
2 4 6 8 ... 98 100

Pada program tersebut perintah write(i, ' ') dijalankan sebanyak 50 kali karena variable i ditambah 2 setiap perulangannya. Setelah variable i lebih dari 100 maka perulangan akan berhenti dan program selesai.

Sekarang coba kalian ubah sedikit kondisinya menjadi sebagai berikut.

pascal
....
  until (i >= 100);
....

Kalau sudah coba kalian jalankan. Jika kalian perhatikan, hasil outpunya tidak akan sampai 100, hanya sampai angka 98 saja. Kira kira kenapa?

Ini karena saat nilai variable i sudah mencapai angka 100 perulangan telah berhenti. karena 100 >= 100 menghasilkan value true. Ini perlu diperhatikan dalam penulisan kondisi, karena jika terjadi kesalahan maka logika program juga akan ikut salah.

Oh iya, perulangan REPEAT UNTIL ini juga dapat menghasilkan infinite loop, apabila logikanya selalu bernilai false. Contohnya saja.

pascal
....
  until (false); // akan menghasilkan infinite loop
....

Jadi selalu ingat untuk memberikan perintah logika agar tidak terjadi infinite loop hehe...

Seperti biasanya, silahkan kalian bereksperimen dengan mengubah variable dan kondisi perulangannya. Selamat mencoba...

Penutup

Cukup sekian untuk tutorial kali ini, semoga bermanfaat pada tutorial selanjutnya kita akan kembali lagi membahas seputar percabangan seperti IF ELSE yang pernah kita bahas sebelumnya. Namun kali ini akan menggunakan metode yang lain yaitu percabangan dengan kondisi CASE OF.