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:

  1. Tanya pengguna berapa jumlah soal yang diinginkan.
  2. Lakukan perulangan FOR dari 1 hingga jumlah soal tersebut.
  3. Di setiap perulangan, hasilkan dua angka acak.
  4. Tampilkan soal penjumlahan dan minta jawaban pengguna.
  5. Gunakan IF untuk memeriksa apakah jawaban benar atau salah, lalu perbarui skor.
  6. 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).