STRUKTUR DASAR PENGULANGAN (LOOPING)
Struktur pengulangan terdiri atas 2 bagian yaitu :
Kondisi pengulangan, yaitu ekspresi
boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ada yang
dinyatakan secara explisit oleh pemrogram.
Badan (body) pengulangan, yaitu satu
atau lebih aksi yang akan diulang
Stuktur pengulangan biasanya disertai dengan :
- Inisialisasi
yaitu ; Aksi yang dilakukan sebelum
pengulangan dilakukan pertama kali.
- Terminasi
yaitu ; Aksi yang dilakukan setelah
pengulangan selesai dilaksanakan.
.
Didalam
algoritma terdapat beberapa macam struktur pengulangan yang berbeda, beberapa
struktur dapat dipakai untuk masalah yang sama, namun ada notasi pengulangan
yang hanya cocok dipakai untuk masalah tertentu, struktur pengulangan tersebut
adalah :
- Struktur WHILE-DO
Bentuk umum struktur WHILE-DO adalah
|
while <kondisi> do
Aksi
endwhile
|
aksi (atau runtunan aksi) akan
dilaksanakan berulang kali sepanjang <kondisi> boolean masih tetap
bernilai true, jika <kondisi> bernilai false, badan
pengulangan tidak akan dilaksanakan. Pengulangan selesai.
Contoh :
Tuliskan algoritma untuk mencetak
banyak HALO sebanyak 10 kali .
Algoritma cetak_banyak_halo
Deklarasi
K : integer {pencacah pengulangan}
Deskripsi
K ← 1 {inisialisasi}
While k ≤ 10 do
Write (‘HALO’)
K ←K+1
Endwhile
{kondisi berhenti : k > 10}
Contoh :
Tuliskan
Algoritma untuk mencetak urutan angka 1 s/d 10
Algoritma
cetak_angka
Deklarasi
Angka : integer
Deskripsi
Angka ← 1
While angka ≤ 10 do
Write (angka)
angka ← angka +1
Endwhile
- Struktur REPEAT-UNTIL
Bentuk umum struktur REPEAT-UNTIL
adalah :
|
Repeat
Aksi
Until <kondisi>
|
Struktur REPEAT-UNTIL memiliki makna
yang sama dengan WHILE-DO namun ada perbedaan mendasar diantara keduanya. Pada
struktur REPEAT-UNTIL aksi (atau sekumpulan aksi) dilaksanakan minimal satu
kali, karena kondisi pengulangan diperiksa pada akhir struktur,
sedangkan pada struktur WHILE-DO kondisi pengulangan diperiksa pada awal
struktur sehingga memungkinkan pengulangan tidak pernah dilaksanakan bila
kondisi pengulangan bernilai false.
Ini adalah contoh pada contoh
WHILE-DO
Contoh :
Algoritma cetak_banyak_halo
Deklarasi
K : integer {pencacah pengulangan}
Deskripsi
K ← 1 {inisialisasi}
Repeat
Write (‘HALO’)
K ←K+1
Until k > 10
{kondisi berhenti : k > 10}
Contoh 2 :
Tuliskan Algoritma untuk mencetak
urutan angka 1 s/d 10
Algoritma
cetak_angka
Deklarasi
Angka : integer
Deskripsi
Angka ← 1
Repeat
Write (angka)
angka ← angka +1
until angka > 10
v Perbedaan Repeat…until pada algoritma dengan do…while pada bahasa C++
adalah : pada bagian keadaan/kondisi pengecekannya. Pada repeat…until
loop akan dikerjakan kembali jika kondisi masih
salah dan berhenti jika kondisi benar, tetapi kalau do…while kebalikannya.
- Struktur FOR
Struktur FOR digunakan untuk
menghasilkan pengulangan sejumlah kali tanpa penggunaan kondisi apapu, struktur
ini menyebabkan aksi diulangi sejumlah kali (tertentu)
Bentuk umum struktur FOR ada 2 macam
: menaik (ascending) dan menurun (descending)
FOR menaik :
|
For peubah ← nilai_awal to nilai_akhir do
Aksi
Endfor
|
Keterangan :
- peubah : haruslah bertipe
sederhana
- nilai_awal : haruslebih kecil
atau sama dengan nilai_akhir
- pada awalnya, peubah
diinisialisasi dengan nilai_awal. Nilai peubah secara otomatis bertambah
satru setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah
sama dengan nilai_akhir
Ini adalah
contoh pada contoh WHILE-DO
Contoh 1 :
Algoritma
cetak_banyak_halo
Deklarasi
K : integer
{pencacah pengulangan}
Deskripsi
For K ← 1 to 10 do
Write (‘HALO’)
Endfor
{kondisi berhenti : k > 10}
Contoh 2 :
Tuliskan Algoritma untuk mencetak
urutan angka 1 s/d 10
Algoritma
cetak_angka
Deklarasi
Angka : integer
Deskripsi
For angka ← 1 to 10 do
Write (angka)
Endfor
FOR menurun :
|
For peubah ← nilai_akhir downto nilai_awal do
Aksi
Endfor
|
Keterangan :
- Peubah : haruslah bertipe
sederhana
- Nilai_akhir : harus lebih
besar atau sama dengan nilai_awal
- Pada awalnya, peubah
diinisialisasi dengan nilai_akhir. Nilai peubah secara otomatis berkurang
satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai peubah
sama dengan nilai_awal
Contoh :
algoritma peluncuran roket dengan
hitungan mundur, muali dari 100, 99, 98, …. 0
Algoritma peluncuran_roket
Deklarasi
K : integer
Deskripsi
For k ← 100 downto 0 do
Write (k)
Endfor
Write (‘GO!’) {roket meluncur}
Perbedaan FOR dengan WHILE..DO
ü FOR digunakan untuk proses pengulangan yang jumlah pengulangannya
dapat
diketahui di awal.
ü WHILE..DO selain dapat berfungsi seperti FOR juga dapat digunakan untuk
proses yang jumlah pengulangannya tidak dapat diketahui.