Perulangan Pascal: Panduan Lengkap Looping dengan WHILE-DO dan REPEAT-UNTIL

Dalam pemrograman, kita seringkali perlu menjalankan satu blok kode berulang kali. Proses inilah yang disebut perulangan atau looping. Tanpa perulangan, tugas sederhana seperti menampilkan "Hello World" 100 kali akan membutuhkan 100 baris kode!

Struktur perulangan secara umum terdiri dari kondisi perulangan (ekspresi boolean yang menentukan apakah loop lanjut) dan badan perulangan (kode yang diulang). Di Pascal, ada tiga jenis perulangan utama, namun kali ini kita akan fokus pada dua jenis perulangan kondisional yang paling fundamental: WHILE-DO dan REPEAT-UNTIL.

1. Perulangan WHILE-DO (Si Satpam di Depan) 

Perulangan WHILE-DO bekerja dengan prinsip "cek dulu, baru kerjakan". Kondisi akan diperiksa di awal setiap iterasi. Badan perulangan hanya akan dieksekusi selama kondisi bernilai TRUE. Jika sejak awal kondisi sudah FALSE, badan perulangan tidak akan pernah dijalankan sama sekali.

Analogi: Bayangkan seorang satpam yang memeriksa tiket di depan pintu konser. Jika Anda punya tiket (TRUE), Anda boleh masuk. Jika tidak (FALSE), Anda tidak akan pernah bisa masuk ke dalam.

Struktur dan Flowchart WHILE-DO

Flowchart While Do
// Inisialisasi
WHILE (kondisi) DO
begin
  // Badan perulangan...
  // Kode untuk mengubah kondisi...
end;

Struktur ini terdiri dari inisialisasi, kondisi perulangan, dan badan perulangan.

Contoh Kasus: Simulasi Bola Memantul

Mari kita buat program untuk menghitung berapa kali sebuah bola memantul. Bola akan terus memantul selama ketinggiannya masih di atas 20 cm, dan setiap pantulan mengurangi ketinggiannya menjadi setengah.

program Bola_Pantulan;
uses crt;
var
  tinggi: real;
  pantulan: integer;
begin
  clrscr;
  pantulan := 0; // Inisialisasi
  write('Input ketinggian awal bola (cm): ');
  readln(tinggi);

  while (tinggi > 20) do // Cek kondisi di awal
  begin
    pantulan := pantulan + 1; // Badan perulangan
    tinggi := tinggi / 2;     // Kode pengubah kondisi
  end;

  writeln('Jumlah Pantulan: ', pantulan);
  readln;
end.

Pada kasus ini, WHILE-DO sangat cocok karena jika kita menginput ketinggian awal di bawah 20 cm, program akan langsung menampilkan "Jumlah Pantulan: 0", yang mana logikanya benar.

2. Perulangan REPEAT-UNTIL (Si Penjamin Aksi) 

Berbeda dengan WHILE-DO, perulangan REPEAT-UNTIL menganut prinsip "kerjakan dulu, baru cek". Pengecekan kondisi dilakukan di akhir perulangan. Hal ini menjamin bahwa badan perulangan pasti dieksekusi minimal satu kali, apa pun kondisi awalnya. Perulangan akan terus berjalan dan berhenti sampai kondisi bernilai TRUE.

Analogi: Bayangkan sebuah booth sampel gratis di supermarket. Anda selalu bisa mencoba sampelnya (aksi dieksekusi sekali), baru setelah itu penjaga bertanya apakah Anda suka (kondisi dicek).

Struktur dan Flowchart REPEAT-UNTIL

Flowchart Repeat Until
// Inisialisasi
REPEAT
begin
  // Badan perulangan...
  // Kode untuk mengubah kondisi...
end;
UNTIL (kondisi);

Struktur ini terdiri dari inisialisasi, badan perulangan, dan kondisi perulangan di akhir.

Contoh Kasus: Mengulang Program

Salah satu penggunaan terbaik REPEAT-UNTIL adalah untuk membuat program yang bisa berjalan berulang kali tanpa harus menutup dan membukanya lagi.

program Luas_Persegi_Panjang_Berulang;
uses crt;
var
  panjang, lebar, luas: integer;
  jawab: char;
begin
  repeat // Mulai blok perulangan utama
    clrscr;
    write('Input nilai panjang : ');
    readln(panjang);
    write('Input nilai lebar : ');
    readln(lebar);
    luas := panjang * lebar;
    writeln('Luas Persegi panjang adalah: ', luas);
    writeln;
    write('Apakah anda ingin mengulang program [Y/N] ? ');
    readln(jawab);
  until (UpCase(jawab) = 'N'); // Berhenti jika jawaban 'N' atau 'n'

  writeln('Terimakasih telah menggunakan program ini.');
  readln;
end.

Program ini pasti berjalan minimal satu kali untuk menghitung luas, lalu di akhir ia akan memeriksa apakah pengguna ingin berhenti.

Perbandingan Langsung: WHILE-DO vs. REPEAT-UNTIL

Kapan sebaiknya kita menggunakan WHILE atau REPEAT? Berikut adalah perbedaan kuncinya:

KriteriaWHILE-DOREPEAT-UNTIL
Pengecekan Kondisi

Di

awal (Pre-condition)

 

Di

akhir (Post-condition)

 
Eksekusi Minimum

Bisa

0 kali (jika kondisi awal FALSE)

 

Selalu

minimal 1 kali

 
Kondisi Berhenti

Saat kondisi menjadi

FALSE

 

Saat kondisi menjadi

TRUE

 
Kapan Digunakan?

Ketika aksi

mungkin tidak perlu dilakukan sama sekali jika syaratnya tidak terpenuhi sejak awal (cek dulu, baru proses).

 

Ketika aksi

harus dilakukan setidaknya satu kali sebelum kondisinya dievaluasi (proses dulu, baru cek).

Kesimpulan

WHILE-DO dan REPEAT-UNTIL adalah dua alat yang sangat berguna untuk mengontrol alur perulangan dalam program Pascal. Pilihan di antara keduanya bergantung pada logika masalah yang ingin Anda selesaikan. WHILE-DO adalah "penjaga" yang waspada di gerbang depan, sementara REPEAT-UNTIL memastikan setiap tamu setidaknya bisa masuk sekali sebelum ditanyai.

Tantangan: Kembangkan program deret kelipatan dari file materi. Buat agar program meminta input dari pengguna untuk angka kelipatan yang ingin ditampilkan serta batas atasnya.