Pascal Part 43: Perulangan WHILE DO dalam Pascal
Melanjutkan tutorial tentang perulangan atau looping dalam bahasa pemrograman Pascal, kita akan masuk ke perulangan WHILE DO. Disini akan dibahas cara penulisan serta cara penggunaan perulangan WHILE DO dalam Pascal.
Konsep Dasar Perulangan WHILE DO dalam Pascal
Perulangan FOR DO dan FOR DOWNTO DO yang saya bahas sebelum ini cocok untuk kondisi dimana kita sudah tahu berapa banyak perulangan yang ingin dijalankan. Dalam FOR DO, nilai awal perulangan dan nilai akhir sudah harus ditulis di awal kode program.
Untuk situasi dimana jumlah perulangan belum bisa dipastikan, kita bisa menggunakan perulangan WHILE DO atau REPEAT UNTIL. Dalam tutorial kali ini saya akan fokus kepada WHILE DO.
Berikut format dasar penulisan perulangan WHILE DO dalam bahasa pemrograman PASCAL:
WHILE (condition) DO
begin
(kode program yang ingin diulang disini…)
(kode program untuk mengubah condition..)
end;
Kunci dari perulangan WHILE DO ada di condition dan kode program untuk mengubah condition. Condition bisa dikatakan sebagai syarat agar perulangan bisa dijalankan. Selama syarat ini terpenuhi (bernilai TRUE), perulangan akan terus dijalankan. Jika syarat ini tidak terpenuhi (bernilai FALSE), perulangan tidak akan berjalan.
Mari kita lihat contoh kode programnya.
Contoh kode Program Perulangan WHILE DO dalam Pascal
Agar seragam dengan perulangan FOR DO, saya ingin membuat 10 baris teks “Hello World” menggunakan WHILE DO. Berikut kode programnya:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 0;
while i < 10 do
begin
writeln(‘Hello World’);
i:= i + 1;
end;
readln;
end.
Pada awal program, saya membuat variabel i yang berfungsi sebagai variabel counter. Sebelum perulangan, saya memberikan nilai 0 untuk i. Setelah itu kita masuk ke perulangan WHILE DO.
Baris program while i < 10 do adalah awal dari perulangan. Inilah kondisi atau syarat yang harus dipenuhi supaya perulangan bisa diproses. Ketika kode program jalan pertama kali, nilai variabel i adalah 0, artinya kondisi i < 10 menghasilkan nilai TRUE. Karena tentu saja 0 kurang dari 10.
Karena syarat di penuhi, blok begin hingga end; segera di eksekusi. Baris pertama adalah writeln(‘Hello World’). Ini digunakan untuk menampilkan teks ‘Hello World’. Tidak ada masalah.
Baris berikutnya saya membuat i:= i + 1. Bagian ini dikenal juga sebagai increment, artinya saya ingin menambah nilai variabel counter i sebanyak 1 angka. Ini dilakukan supaya bisa mengubah kondisi i < 10 yang terdapat di awal perulangan. Jika ini tidak ditulis, perulangan tidak akan pernah berhenti (infinity loop).
Sampai disini, kode program akan kembali ke awal dan mengecek apakah i < 10? Ingat, variabel i sekarang sudah bernilai 1. Oke, 1 < 10 = benar (TRUE), kembali jalankan writeln(‘Hello World’), yang diikuti dengan i:= i + 1. Karena 1 + 1 = 2, varibel i sekarang bernilai 2.
Kode program kembali ke awal dan mengecek apakah i < 10? Sekarang nilai i adalah 2, dan 2 masih kurang dari 10, 2 < 10 = benar (TRUE), sekali lagi kode blok perulangan akan dijalankan.
Proses seperti ini terus berlangsung sampai kondisi i < 10 menghasilkan FALSE. Kapan kondisi ini terjadi? Yakni ketika variabel i = 10. 10 < 10 adalah FALSE. Artinya, perulangan WHILE DO akan dijalankan sebanyak 10 kali, dimana dalam setiap perulangan, nilai i akan menaik mulai dari 0, 1, 2, 3, 4, 5, 6, 7, 8, hingga 9.
Agar konsep perulangan ini bisa lebih paham, silahkan anda bayangkan (kalau perlu ditulis), bagaimana nilai variabel counter i bisa naik dari 1 sampai 9, dan pada setiap kenaikan perulangan akan menampilkan teks ‘Hello World’.
Contoh Program Pascal – Perulangan WHILE DO Hello World
Jika kode program diatas masih kurang paham, mari masuk ke contoh kedua:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 0;
while i < 10 do
begin
writeln(‘Variabel i sekarang bernilai: ‘,i);
i:= i + 1;
end;
readln;
end.
Kondisi perulangan WHILE DO yang saya pakai sama persis seperti sebelumnya. Hanya saja kali ini perintah yang dijalankan pada setiap perulangan adalah writeln(‘Variabel i sekarang bernilai: ‘,i). Ini akan membantu kita melihat nilai variabel counter i yang terus bertambah 1 selama perulangan dijalankan.
Contoh Program Pascal – Perulangan WHILE DO Variabel counter
Pemahaman Logika untuk Perulangan WHILE DO
Untuk bisa membuat perulangan dengan WHILE DO, kita perlu pemahaman logika. Logika diperlukan untuk menentukan nilai awal dan kondisi akhir.
Sebagai latihan soal, saya ingin anda membuat kode program yang menghasilkan teks: “Variabel i sekarang bernilai: 5”, “Variabel i sekarang bernilai: 6”, … Hingga “Variabel i sekarang bernilai: 10”. Yup, hanya 5 baris. Silahkan anda modifikasi kode program diatas.
Baik, berikut kode yang saya gunakan:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 5;
while i <= 10 do
begin
writeln(‘Variabel i sekarang bernilai: ‘,i);
i:= i + 1;
end;
readln;
end.
Contoh Program Pascal – Perulangan WHILE DO Variabel counter 2
Kuncinya adalah bagaimana menentukan kondisi awal variabel i, dan kondisi akhir dari perulangan. Dengan membuat i:= 5, dan while i <= 10 do, artinya nilai i akan mulai dari 5, 6, 7, 8, 9, dan 10.
Tapi saya juga bisa menggunakan kode program berikut:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 5;
while i < 11 do
begin
writeln(‘Variabel i sekarang bernilai: ‘,i);
i:= i + 1;
end;
readln;
end.
Dapatkah anda melihat bedanya? Perhatikan bahwa kali ini saya menggunakan kondisi while i < 11 do. Sebenarnya ini sama seperti while i <= 10 do. Angka 10 akan TRUE jika dibandingkan dengan “< 11″, maupun “<= 10“.
Konsep seperti ini agar selalu diperhatikan ketika membuat perulangan WHILE DO.
Hati-hati dengan Infinity Loop
Infinity Loop adalah sebuah perulangan yang tidak pernah berhenti. Ini terjadi karena variabel kondisi akan selalu bernilai TRUE.
Perhatikan kode program berikut:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 5;
while i < 11 do
begin
writeln(‘Variabel i sekarang bernilai: ‘,i);
end;
readln;
end.
Jika anda menjalankan kode program diatas, akan terjadi Infinity Loop. Ini karena kondisi while i <= 10 do akan selalu TRUE. Di dalam perulangan saya tidak membuat ‘sesuatu’ yang bisa mengubah nilai variabel i (untuk membuat syarat i <= 10 menjadi FALSE).
Infinity Loop biasanya terjadi karena kesalahan logika dari programmer, terutama untuk perulangan WHILE DO dan REPEAT UNTIL. Untuk menghentikan infinity loop, anda bisa menekan kombinasi tombol CRTL + C, atau menutup paksa Free Pascal.
Membuat Hitung Mundur dengan WHILE DO
Untuk membuat perulangan yang mundur, kita bisa mengubah nilai awal variabel counter dan kondisi syarat dari perulangan WHILE DO. Berikut contohnya:
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 100;
while i >= 0 do
begin
writeln(‘Hitung mundur: ‘,i);
i:= i – 1;
end;
readln;
end.
Contoh Program Pascal – Perulangan WHILE DO Hitung Mundur
Disini saya memulai variabel i dari 100. Pengecekan kondisi while i >= 0 do artinya, perulangan akan dijalankan selama nilai i besar dari 100.
Bagaimana agar kondisi ini nantinya bisa bernilai FALSE? Saya menggunakan i:= i – 1, sehingga dalam setiap perulangan, nilai i selalu berkurang 1 angka, dari 100, ke 99, ke 98, dst hingga berhenti saat i = 0, yakni ketika syarat i >= 0 menghasilkan FALSE.
Membuat Perulangan Lompat dengan WHILE DO
Dengan memodifikasi bagian counter, kita bisa membuat perulangan yang “lompat”, yakni tidak berurutan dari 1, 2, 3, dst. Kita bisa membuat variabel counter yang naik misalnya dari 3, 6, 9, 12, dst.
Perhatikan kode program berikut, dan dapatkah anda menebak urutan angka yang ditampilkan?
program while_do;
uses crt;
var
i: integer;
begin
clrscr;
i:= 3;
writeln(‘Berikut deret untuk kelipatan 3: ‘);
while i <= 30 do
begin
write(i,’ ‘);
i:= i + 3;
end;
readln;
end.
Perhatikan bahwa variabel i mulai dari 3, dan perubahannya menggunakan i:= i + 3. Artinya variabel i akan ‘lompat’ 3 angka setiap perulangan. Berikut hasilnya:
Contoh Program Pascal – Perulangan WHILE DO Deret 3
Sampai disini saya sarankan anda mencoba2 berbagai kombinasi perulangan lain, misalnya membuat perulangan yang lompat setiap 7 angka, atau perulangan yang mundur 4 angka, misalnya dari 100, ke 96, ke 92, ke 88, dst.
Dalam tutorial belajar pascal kali ini kita telah membahas perulangan WHILE DO. Di dalam pascal masih ada 1 lagi struktur perulangan, yakni REPEAT UNTIL. Apa bedanya perulangan WHILE DO dengan REPEAT UNTIL? Inilah yang akan kita bahas dalam tutorial selanjutnya: Perulangan REPEAT UNTIL dalam Pascal.