๐ Daftar Isi
Pengantar
Meskipun WHILE DO dan REPEAT UNTIL memiliki makna yang sama, namun pemilihan struktur yang tepat bergantung pada masalah yang akan diprogram. Ingat bahwa pemeriksaan kondisi pada WHILE DO dilakukan di awal pengulangan. Sedangkan pada REPEAT UNTIL pemeriksaan kondisi dilakukan pada akhir pengulangan. Sebagai konsekuensi dari waktu pemeriksaan kondisi, aksi di dalam badan WHILE DO paling sedikit dikerjakan 0 kali. Aksi di dalam badan REPEAT UNTIL paling sedikit dikerjakan 1 kali.
Permasalahan
Perhatikan contoh program memilih mata kuliah berikut ini:
program memilih_matakuliah;
var
nomor_matakuliah:integer;
begin
writeln('MATA KULIAH ');
writeln('1. ALGORITMA DAN PEMROGAMAN ');
writeln('2. BASIS DATA ');
writeln('3. STATISTIKA MATEMATIKA ');
writeln('4. PEMROGAMAN BERBASIS WEB ');
writeln('5. KELUAR');
write('PILIH MATA KULIAH: ');readln(nomor_matakuliah);
case nomor_matakuliah of
1:writeln('ANDA MEMILIH MATA KULIAH ALGORITMA DAN PEMROGAMAN');
2:writeln('ANDA MEMILIH MATA KULIAH BASIS DATA');
3:writeln('ANDA MEMILIH MATA KULIAH STATISTIKA MATEMATIKA');
4:writeln('ANDA MEMILIH MATA KULIAH PEMROGAMAN BERBASIS WEB');
5:writeln('KELUAR PROGRAM');
end;
readln;
end.
Program memilih mata kuliah tidak dapat memilih mata kuliah secara berulang-ulang. Kita menginginkan dapat memilih menu manapun berkali. Misal pemilihan menu hanya diakhiri jika kita memilih nomor 5. Bagaimana hal ini dapat dilakukan?
Menggunakan While-Do
program memilih_matakuliah;
var
nomor_matakuliah:integer;
begin
nomor_matakuliah:=0;
while nomor_matakuliah <> 5 do
begin
writeln('MATA KULIAH ');
writeln('1. ALGORITMA DAN PEMROGAMAN ');
writeln('2. BASIS DATA ');
writeln('3. STATISTIKA MATEMATIKA ');
writeln('4. PEMROGAMAN BERBASIS WEB ');
writeln('5. KELUAR');
write('PILIH MATA KULIAH: ');readln(nomor_matakuliah);
case nomor_matakuliah of
1:writeln('ANDA MEMILIH MATA KULIAH ALGORITMA DAN PEMROGAMAN');
2:writeln('ANDA MEMILIH MATA KULIAH BASIS DATA');
3:writeln('ANDA MEMILIH MATA KULIAH STATISTIKA MATEMATIKA');
4:writeln('ANDA MEMILIH MATA KULIAH PEMROGAMAN BERBASIS WEB');
5:writeln('KELUAR PROGRAM');
end;
end;
readln;
end.
Menggunakan Repeat-Until
program memilih_matakuliah;
var
nomor_matakuliah:integer;
begin
repeat
begin
writeln('MATA KULIAH ');
writeln('1. ALGORITMA DAN PEMROGAMAN ');
writeln('2. BASIS DATA ');
writeln('3. STATISTIKA MATEMATIKA ');
writeln('4. PEMROGAMAN BERBASIS WEB ');
writeln('5. KELUAR');
write('PILIH MATA KULIAH: ');readln(nomor_matakuliah);
case nomor_matakuliah of
1:writeln('ANDA MEMILIH MATA KULIAH ALGORITMA DAN PEMROGAMAN');
2:writeln('ANDA MEMILIH MATA KULIAH BASIS DATA');
3:writeln('ANDA MEMILIH MATA KULIAH STATISTIKA MATEMATIKA');
4:writeln('ANDA MEMILIH MATA KULIAH PEMROGAMAN BERBASIS WEB');
5:writeln('KELUAR PROGRAM');
end;
end;
until nomor_matakuliah = 5;
readln;
end.
Permasalahan memilih matakuliah di atas sama sama bisa dilakukan baik menggunakan struktur REPEAT UNTIL maupun WHILE DO. Namun struktur REPEAT UNTIL lebih tepat, sebab matakuliah ditampilkan lebih dahulu, baru kemudian nomor pilihan matakuliah dibaca. Pemeriksaan kondisi pengulangan dilakukan di akhir struktur sampai nomor_matakuliah yang dibaca adalah 5. Penggunaan WHILE DO pada masalah ini mengharuskan variabel nomor_ matakuliah harus diinisialisasi dengan sembarang nilai asal bukan 5, agar kondisi pengulangan bernilai true. Jadi meskipun program di atas tetap benar, namun penggunaan struktur WHILE DO untuk masalah ini kurang tepat.
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Struktur Perulangan, daftar lengkapnya adalah sebagai berikut.