Struktur Dasar Algoritma: Perulangan FOR dan REPEAT-UNTIL
Struktur Perulangan (Repetition) digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan perulangan, Anda hanya perlu menuliskan pernyataan tersebut satu kali saja, tapi akan dilakukan oleh program sebanyak yang diperintahkan.
Setiap struktur perulangan terdiri dari dua elemen utama:
- Kondisi Pengulangan: Syarat (ekspresi Boolean) yang harus diuji (
TrueatauFalse) agar perulangan berlanjut. - Badan Pengulangan (Loop Body): Satu atau lebih instruksi yang akan diulang.
1. Perulangan FOR (Perulangan Pasti)
Perulangan FOR digunakan bila sudah diketahui pasti berapa kali pernyataan akan diulang.
Konsep Utama dan Struktur
Perulangan FOR menggunakan sebuah variabel yang disebut loop's counter. Nilai penghitung ini secara otomatis bertambah atau berkurang setiap kali pengulangan dilaksanakan, tergantung jenis perulangannya.
Bentuk Umum:
For pencacah := nilai_awal to nilai_akhir do // Naik (increment)
Begin
{ pernyataan yang akan dijalankan}
End;
Bentuk Menurun (DOWNTO): Untuk melakukan pengulangan dari bilangan terbesar hingga terkecil:
For x := 10 downto 1 do // Turun (decrement)
Begin
writeln('Algoritma Pemrograman');
End;FOR Bersarang (Nested FOR)
Anda dapat menyisipkan pernyataan FOR di dalam pernyataan FOR lainnya.
Contoh FOR Bersarang:
For x := 1 to 3 do // Perulangan Luar (x)
for y := 1 to 2 do // Perulangan Dalam (y)
writeln(x, y);
Perulangan terluar (x) akan menjalankan perulangan dalam (y) sebanyak 3 kali.
Hasil Output:
- Ketika x=1: 11, 12
- Ketika x=2: 21, 22
- Ketika x=3: 31, 32
2. Perulangan REPEAT-UNTIL (Uji Akhir)
Perulangan REPEAT-UNTIL digunakan bila jumlah pengulangan belum dapat ditentukan saat program ditulis.
Prinsip Kerja (Kerjakan Dulu, Baru Cek)
Berbeda dengan WHILE-DO, pada REPEAT-UNTIL kondisi dicek pada akhir loop.
- Eksekusi Minimum: Instruksi (atau runtunan instruksi) akan dilaksanakan minimal satu kali sebelum kondisi diuji.
- Kondisi Berhenti: Pengulangan terus dilakukan selama kondisi bernilai False, dan akan berhenti ketika kondisi bernilai True.
Bentuk Umum:
repeat
{pernyataan yang akan diulang}
instruksi
until kondisi; Contoh Kasus: Hitung Mundur
Contoh ini menunjukkan penggunaan REPEAT-UNTIL untuk hitung mundur. Program akan mencetak 100 sampai 0, baru berhenti setelah i < 0 menjadi True.
i <- 100
Repeat
write(i)
i <- i - 1
until i < 0
write ('GO!') 3. Kapan Menggunakan WHILE atau REPEAT?
Memilih antara WHILE-DO dan REPEAT-UNTIL sangat krusial, karena pilihan yang salah dapat menyebabkan error program.
Studi Kasus Kritis: Menghitung Deret Pecahan
Pertimbangkan kasus menghitung jumlah deret pecahan , di mana proses penjumlahan harus berhenti bila nilai yang dibaca adalah .
Menggunakan WHILE (Benar)
Perulangan WHILE memeriksa kondisi () sebelum melakukan pembagian .
read(x)
while x != 0 do
S <- S + 1/x // Pembagian hanya terjadi jika x != 0
read(x)
endwhile
Jika nilai yang pertama kali dibaca adalah , WHILE akan mendeteksi sebagai False, dan perulangan akan dilewati, menghindari error Pembagian dengan Nol.
Menggunakan REPEAT (Salah/Fatal)
Perulangan REPEAT melakukan aksi () sebelum memeriksa kondisi ().
repeat
read(x)
S <- S + 1/x // Pembagian dilakukan dulu
until x = 0
Penggunaan REPEAT di sini berakibat fatal bila yang pertama kali dibaca adalah , karena pembagian dengan nol () akan terjadi dan program akan mengalami error.
Kesimpulan
Perulangan FOR adalah pilihan Anda untuk perulangan dengan jumlah yang sudah pasti. Untuk perulangan kondisional, gunakan WHILE-DO jika ada kemungkinan aksi tidak perlu dilakukan sama sekali, dan gunakan REPEAT-UNTIL jika Anda yakin aksi harus dijalankan minimal satu kali. Selalu pertimbangkan risiko error fatal saat memilih di mana Anda akan menempatkan pengecekan kondisi.
Tantangan: Tuliskan algoritma (menggunakan WHILE atau REPEAT) untuk menghitung semua bilangan ganjil yang kurang dari 100, lalu cetak hasilnya.
