Perulangan FOR Pascal: Panduan Lengkap dengan Contoh Program Game
Setelah mempelajari perulangan kondisional (WHILE-DO dan REPEAT-UNTIL), saatnya kita mengenal jenis perulangan ketiga yang sangat kuat di Pascal: perulangan FOR. Perbedaan utamanya adalah, jika WHILE dan REPEAT bergantung pada sebuah kondisi, FOR digunakan ketika kita sudah tahu pasti berapa kali sebuah blok kode akan diulang.
Analogi: WHILE itu seperti "aduk terus supnya sampai mengental" (jumlah adukan tidak pasti). Sedangkan FOR itu seperti "kocok telur ini sebanyak 20 kali" (jumlah perulangan sudah jelas dari awal).
Di Pascal, perulangan FOR ada dua jenis: FOR-TO-DO untuk perulangan naik dan FOR-DOWNTO-DO untuk perulangan turun.
1. Perulangan FOR-TO-DO (Naik)
Struktur FOR-TO-DO digunakan untuk melakukan perulangan dari nilai awal yang kecil ke nilai akhir yang lebih besar. Kelebihannya, Pascal akan menangani variabel counter (penghitung) secara otomatis.
Struktur Dasar
FOR variabel_counter := nilai_awal TO nilai_akhir DO
begin
// Blok kode yang akan diulang...
end;variabel_counter: Variabel (biasanya integer) yang nilainya akan otomatis bertambah satu setiap iterasi.nilai_awal: Angka dimulainya perulangan.nilai_akhir: Angka diakhirinya perulangan.
Contoh Kasus 1: Menghitung Nilai Pangkat
Mari buat program untuk menghitung a pangkat b (a^b). Logikanya, kita akan mengalikan a sebanyak b kali. Ini adalah contoh sempurna untuk perulangan FOR.
program Hitung_Pangkat;
uses crt;
var
a, b, counter, hasil: integer;
begin
clrscr;
hasil := 1; // Inisialisasi hasil dengan 1
write('Input bilangan pertama : ');
readln(a);
write('Input bilangan kedua (pangkat) : ');
readln(b);
// Ulangi perkalian sebanyak 'b' kali
for counter := 1 to b do
begin
hasil := hasil * a;
end;
writeln('Maka nilai ', a, ' pangkat ', b, ' adalah: ', hasil);
readln;
end.2. Perulangan FOR-DOWNTO-DO (Turun)
Struktur FOR-DOWNTO-DO adalah kebalikan dari FOR-TO-DO. Ia digunakan untuk melakukan perulangan dari nilai awal yang besar ke nilai akhir yang lebih kecil. Variabel counter akan otomatis berkurang satu setiap iterasi.
Struktur Dasar
FOR variabel_counter := nilai_awal DOWNTO nilai_akhir DO
begin
// Blok kode yang akan diulang...
end;Contoh Kasus 2: Hitung Mundur
Program sederhana untuk melakukan hitung mundur dari 10 ke 1, sering digunakan untuk simulasi peluncuran roket.
program Hitung_Mundur;
uses crt;
var
i: integer;
begin
clrscr;
for i := 10 downto 1 do
begin
writeln('Hitung mundur: ', i);
end;
writeln('GO!');
readln;
end.Studi Kasus Lanjutan: Membuat Game Kuis Matematika
Sekarang, mari gabungkan semua yang telah kita pelajari (FOR, IF, variabel, dan I/O) untuk membuat sebuah program yang lebih seru: game kuis matematika sederhana!
Logika Program:
- Tanya pengguna berapa jumlah soal yang diinginkan.
- Lakukan perulangan
FORdari 1 hingga jumlah soal tersebut. - Di setiap perulangan, hasilkan dua angka acak.
- Tampilkan soal penjumlahan dan minta jawaban pengguna.
- Gunakan
IFuntuk memeriksa apakah jawaban benar atau salah, lalu perbarui skor. - Setelah perulangan selesai, tampilkan total jawaban benar, salah, dan nilai akhir.
program Kuis_Matematika;
uses crt;
var
a, b, benar, salah, jumlah_soal, jawaban, counter: integer;
nilai: real;
begin
clrscr;
randomize; // Inisialisasi penghasil angka acak
benar := 0;
salah := 0;
write('Input jumlah soal: ');
readln(jumlah_soal);
writeln;
for counter := 1 to jumlah_soal do
begin
a := random(100); // Angka acak dari 0-99
b := random(100);
write('Soal ', counter, ': ', a, ' + ', b, ' = ');
readln(jawaban);
if (jawaban = (a + b)) then
benar := benar + 1
else
salah := salah + 1;
end;
// Hitung nilai akhir
nilai := (benar / jumlah_soal) * 100;
writeln;
writeln('====================');
writeln('Jumlah Jawaban Benar : ', benar);
writeln('Jumlah Jawaban Salah : ', salah);
writeln('Nilai Anda : ', nilai:0:0);
readln;
end.Kesimpulan
Perulangan FOR adalah alat yang sangat efisien dan mudah dibaca ketika Anda berhadapan dengan tugas yang jumlah iterasinya sudah pasti. Ia menyederhanakan kode dengan mengelola variabel counter secara otomatis, baik untuk perulangan naik (FOR-TO-DO) maupun turun (FOR-DOWNTO-DO). Kemampuannya untuk menjalankan blok kode sejumlah kali yang ditentukan menjadikannya fondasi untuk banyak algoritma, mulai dari perhitungan matematis hingga pembuatan aplikasi interaktif seperti game.
Tantangan: Buatlah program yang meminta input sebuah bilangan. Kemudian, tampilkan semua angka dari 1 hingga bilangan tersebut, dan di akhir, tampilkan jumlah total dari semua angka tersebut (misal, input 10, outputnya adalah deret 1-10 dan totalnya 55).
