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

// 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

// 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:
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.
