fbpx

Algoritma dan Pemrogaman : Struktur While-Do

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.


Tonton juga video pilihan dari kami berikut ini

Bagikan ke teman-teman Anda

Contact Us

How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site
error: Content is protected !!
Up