๐ Daftar Isi
Pengantar Pengulangan
Komputer dapat melaksanakan instruksi berulang tanpa rasa bosa dengan kinerja yang sama. Sedangkan manusia gampang bosan dan cenderung rentan melakukan kesalahan. Contoh :
Menulis "Saya berjanji akan belajar Algoritma dan Pemrogaman dengan rajin" sebanyak 100 kali
Terdapat dua bagian struktur pengulangan:
- Kondisi pengulangan
- Badan (body) pengulangan
Struktur pengulangan biasanya disertai bagian:
- Inisialisasi
- Terminasi
Di dalam algortima, pengulangan (repetition atau loop) dapat dilakukan sejumlah n kali, atau sampai kondisi pengulangan berhenti tercapai.
Struktur WHILE-DO
Bentuk umum algoritma:
while <kondisi> do
aksi
endwhile
Translasi dalam bahasa pascal:
while kondisi do
aksi;
Aksi akan dilaksanakan berulang-ulang sepanjang <kondisi> boolean bernilai True. Jika <kondisi> boolean bernilai False, badan pengulangan tidak dilakuakan lagi (selesai).
Algoritma Cetak Halo WHILE-DO
algoritma cetak_halo;
{mencetak 'Halo' sebanyak 10 kali}
deklarasi
n:integer {pencacah pengulangan}
deskripsi
n โ 1
while n<=10 do
write('Halo')
n โ n+1;
endwhile
{kondisi berhenti saat n>10}
Apabila di translasikan ke dalam bahasa pascal sebagai berikut.
program cetak_halo_while;
var n:integer;
begin
n:=1;
while n<=10 do
begin
writeln('Halo');
n:=n+1;
end;
readln;
end.
Pada mulanya n diisi dengan nilai 1. Sebelum memasuki badan pengulangan, kondisi n<=10 diperiksa apakah bernilai True. Karena 1<=10 bernilai True maka pernyataan writeln(‘Halo’) dilaksanakan sehingga output yang tercetak:
Halo
Selanjutnya pernyataan n:=n+1 menyebabkan nilai n bertambah 1 menjadi 2, lalu siklus pengulangan dimasuki lagi.
Sebelum melaksanakan perintah writeln(‘Halo’), kondisi pengulangan n<=10 diperiksa terlebih dahulu. Karena 2<=10 maka badan penulangan dimasuki, writeln(‘Halo’) dilaksanakan sehingga output yang tercetak:
Halo
Halo
Demikian seterusnya sebanyak 10 kali. Setiap kali badan pengulangan dimasuki, nilai n bertambah satu sampai dengan n=11. Karena 11>10 maka kondisi pengulangan n<=10 bernilai False. Oleh karena itu pengulangan berhenti.
Jadi output cetak halo di atas adalah:
Halo
Halo
Halo
Halo
Halo
Halo
Halo
Halo
Halo
Halo
Permasalahan Inisiasi Nilai n
Bagaimana jika programmer lupa melakukan inisiaisi nilai n?
program cetak_halo_while;
var n:integer;
begin
//n:=1; {bagian ini tidak dituliskan}
while n<=10 do
begin
writeln('Halo');
n:=n+1;
end;
readln;
end.
Apabila inisiasi nilai n tidak dilakukan akan menyebabkan program tidak dapat dijalankan (terjadi error). Karena fungsi inisiasi nilai awal ini adalah untuk memberi tahu komputer bahwa perulangan pertama dimulai dari angka tersebut.
Bagaimana jika programmer lupa menambahkan nilai n dengan 1?
program cetak_halo_while;
var n:integer;
begin
n:=1;
while n<=10 do
begin
writeln('Halo');
// n:=n+1; {bagian ini tidak dituliskan}
end;
readln;
end.
Apabila statemen n:=n+1 tidak dituliskan pada program akan menyebabkan looping dalam eksekusi programnya. Karena setelah perulangan pertama, nilai awal tidak berubah (tetap seperti awal perulangan). Fungsi dari penambahan n:=n+1 adalah untuk menambah nilai awal agar bertambah satu setelah melakukan perulangan tertentu.
Algortma Cetak Angka Sebanyak N WHILE-DO
algoritma cetak_n_angka;
{mencetak 1,2,3,...,n}
deklarasi
n:integer
angka:integer
deskripsi
read(n)
angka โ 1
while angka<=n do
write(angka)
angka โ angka+1;
endwhile
{kondisi berhenti saat angka>n}
Apabila ditranslasikan ke dalam bahasa pascal menjadi seperti berikut.
program cetak_angka;
var n,angka:integer;
begin
write('Masukkan jumlah angka: ');readln(n);
angka:=1;
while angka<=n do
begin
writeln(angka);
angka:=1ngka+1;
end;
readln;
end.
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Struktur Perulangan, daftar lengkapnya adalah sebagai berikut.