Tutorial Belajar Pascal Part 42: Perulangan FOR DOWNTO dalam Pascal

Tutorial kali ini merupakan lanjutan dari perulangan FOR DO yang saya bahas sebelumnya. Disini kita akan mempelajari cara penggunaan perulangan FOR DOWNTO dalam bahasa pemrograman Pascal.


Pengertian Perulangan FOR DOWNTO dalam Pascal

Perulangan FOR DOWNTO pada dasarnya sangat mirip dengan perulangan FOR DO, bedanya perulangan kali ini khusus untuk iterasi yang menurun, dari angka besar ke angka kecil.

Berikut format penulisannya:

FOR (variabel_counter) := (nilai_awal) DOWNTO (nilai_akhir) DO
begin
  (kode program yang ingin diulang disini...)
end;

Nyaris tidak berbeda dengan format perulangan FOR DO, hanya saja kali ini kita menggunakan keyword DOWNTO sebagai pengganti TO. Mari kita lihat contoh kode programnya.


Contoh Perulangan FOR DOWNTO dalam Pascal

Melanjutkan contoh kasus yang kita coba pada akhir tutorial FOR DO, berikut kode program hitung mundur dari 10 ke 1 menggunakan FOR DOWNTO:

program for_do_loop;
uses crt;
var
  i: integer;
begin
  clrscr;

    for i := 10  downto 0 do
      begin
        writeln('Hitung mundur: ',i);
      end;
    
  readln;
end.

Disini variabel counter i akan menurun dari 10 ke 0, sesuai dengan perintah for i := 10  downto 0 do.

Contoh Program Pascal - Perulangan FOR DOWN TO Hitung Mundur

Menggunakan contoh kode program perkalian dari tutorial sebelumnya, saya bisa mengubahnya sebagai berikut:

program for_downto_loop;
uses crt;
var
  i: integer;
begin
  clrscr;

    for i := 10  downto 1 do
      begin
        writeln('Perkalian 7 * ', i ,' adalah = ', 7 * i);
      end;
    
  readln;
end.

Contoh Program Pascal - Perulangan FOR DOWN TO Perkalian

Untuk contoh yang lebih interaktif, saya ingin membuat lirik lagu ayak ayam dengan perulangan FOR DOWNTO, yakni menampilkan string “Anak ayam turun 10, pergi 1 tinggal 9”, kemudian dilanjutkan dengan string “Anak ayam turun 9, pergi 1 tinggal 8”, hingga “Anak ayam turun 1, pergi 1 tinggal 0”. Jumlah anak ayam awal harus diinput oleh pengguna.

Kode programnya kurang lebih mirip seperti contoh program perkalian interaktif dalam tutorial FOR DO. Hanya saja selain menggunaan FOR DOWNTO, anda perlu memikirkan bagaimana baris “Anak ayam turun 9, pergi 1 tinggal 8” dirangkai. Silahkan buka aplikasi Free PASCAL, dan coba soal latihan ini.

Baik, berikut contoh kode program yang saya gunakan:

program for_downto_loop;
uses crt;
var
  anak_ayam,i: integer;
begin
  clrscr;

    writeln('==============');
    writeln('Lagu Anak Ayam');
    writeln('==============');
    writeln;

    write('Input jumlah anak ayam: ');
    readln(anak_ayam);
    writeln;

    for i := anak_ayam downto 1 do
      begin
        writeln('Anak ayam turun ',i,' pergi 1, tinggal ',i-1);
      end;

  readln;
end.

Saya membuat 2 buah variabel: i sebagai variabel counter, dan anak_ayam sebagai variabel penampung inputan untuk perintah  readln(anak_ayam).

Perhatikan baris writeln(‘Anak ayam turun ‘,i,’ pergi 1, tinggal ‘,i-1); inilah yang akan menampilkan teks lagu anak ayam yang terus menurun hingga “Anak ayam turun 1, pergi 1 tinggal 0”.

Contoh Program Pascal - Perulangan FOR DOWN TO Lagu anak ayamDisini saya membuat perulangan dengan for i := anak_ayam  downto 1 do. Saya tidak membuat for i := anak_ayam  downto 0 do, karena di looping nanti nilai i akan dikurangi lagi. Jika saya melakukan perulangan hingga 0, lirik lagu terakhir akan menjadi “Anak ayam turun 0, pergi 1 tinggal -1”. Sangat tidak logis ada anak ayam dengan nilai negatif.

Sama seperti FOR TO, perulangan FOR DOWNTO juga bisa digunakan untuk nilai negatif. Tentu saja dengan catatan nilai awal harus lebih besar daripada nilai akhir.


Dalam tutorial ini dan tutorial sebelumnya kita telah mempelajari struktur perulangan FOR DO, serta struktur perulangan FOR DOWNTO di dalam bahasa pemrograman PASCAL. Berikutnya kita akan masuk ke perulangan (looping) WHILE DO.


Tutorial Terkait:

10 Comments

  1. Fredy
    23 Oct 16
    • Andre
      24 Oct 16
  2. Fredy
    24 Oct 16
    • Andre
      25 Oct 16
  3. Fredy
    24 Oct 16
    • Andre
      25 Oct 16
  4. Fredy
    25 Oct 16
    • Andre
      26 Oct 16
  5. ibnu
    26 Nov 16
    • Andre
      27 Nov 16

Add Comment