Tutorial While Do
Tutorial While Do
atau satu blok baris instruksi selama syarat yang diberikan masih terpenuhi. Ciri utama
pengulangan while adalah syarat akan uji terlebih dahulu sebelum instruksi yang akan diulang
dikerjakan dengan kata lain dalam instruksi while syarat akan diuji didepan, sehingga ada
kemungkinan baris instruksi yang akan diulang tidak dikerjakan sama sekali (syarat tidak
terpenuhi).
CONTOH 1:
ALGORITMA PSEUDOCODE
Algoritma Perulangan_1
{mencetak kata belajar perulangan}
Deklarasi
Integer i;
Deskripsi
i:=0;
While i<10 do
Begin
Write (‘Belajar Perulangan’);
I:=i+1;
End
Program Pascal
Program perulangan;
Uses crt;
Var i: integer;
Begin
Clrscr;
i:=0;
while i < 10 do
Begin
Writeln(‘Belajar Perulangan’);
i:=i+1;
End;
Readln;
End.
Penjelasan:
Pada awal program, dibuat variabel i yang berfungsi sebagai variabel counter. Sebelum
perulangan, diberikan 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(‘Belajar Perulangan’). Ini digunakan untuk menampilkan teks ‘Belajar Perulangan’.
Tidak ada masalah.
Baris berikutnya dibuat i:= i + 1. Bagian ini dikenal juga sebagai increment, artinya 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(‘Belajar
Perulangan’), 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 dibayangkan (kalau perlu ditulis),
bagaimana nilai variabel counter i bisa naik dari 1 sampai 9, dan pada setiap kenaikan perulangan
akan menampilkan teks ‘Belajar Perulangan’.
Contoh 2:
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.
Penjelasan:
Kondisi perulangan WHILE DO yang dipakai 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.
Untuk bisa membuat perulangan dengan WHILE DO, perlu pemahaman logika. Logika diperlukan
untuk menentukan nilai awal dan kondisi akhir.
Contoh 3:
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.
Penjelasan:
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.
Contoh 4:
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.
Penjelasan:
Dapatkah melihat perbedaanya? Perhatikan bahwa kali ini menggunakan kondisi while i < 11
do. Sebenarnya ini sama seperti while i <= 10 do. Angka 10 akan TRUE jika dibandingkan dengan
“< 11″, maupun “<= 10“.
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.
Penjelasan
Jika 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, bisa menekan
kombinasi tombol CRTL + C, atau menutup paksa Free Pascal.
Perhitungan mundur
Untuk membuat perulangan yang mundur, bisa mengubah nilai awal variabel counter dan
kondisi syarat dari perulangan WHILE DO
Contoh 5:
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.
Penjelasan:
Disini 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? 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.
Tugas:
1. Menampilkan bilangan kelipatan tiga dari angka 1 s/d 20
2. Menampilkan bilangan ganjil dari angka 1 s/d 100
3. Menampilkan bilangan genap dari angka 1 s/d 50
4. Menampilkan bilangan prima dari angka 1 s/d 20
5. Menampilkan bilangan kelipatan 3 dan kelipatan 5 dari angka 1 s/d 30