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.
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.
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".
Disini 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.
Terima kasih banyak gan. Tumben nih cepet banget postnya 2 post dalam 2 hari. Gan, saya ingin ikut osn komputer, apakah dengan tutorial yang ada disini sudah cukup untuk bisa mengikuti osn?
Ini masih dasar2nya saja gan, di OSN jauh lebih rumit untuk menguji kemampuan berfikir dan logika. Misalnya disini perulangannya hanya 1 kali, di OSN banyak yang menggunakan perulangan bersarang (perulangan di dalam perulangan), atau soal2 dengan matriks 2 dimensi. Ada baiknya cari contoh soal2 OSN tahun2 lalu…
Waduh gimana donk? Soalnya gak ada tutorial yang lebih lengkap daru website ini. Ada ebook paacal tapi bahasanya sulit dipahami dan tidak detail.
Coba cari buku2 di gramedia gan. Saya juga berencana membuat eBook tentang Pascal (dengan bahasan yang lebih lengkap), tapi kayaknya baru bisa selesai di tahun depan.
Mas andre lulusan SMA apa SMK? Kalau lulusan SMA, kok bisa sampe tingkat provinsi? Kan di SMA gak diajarin programing. Minta tipsnya donk untuk menghadapi OSN, itung itung buat modal masuk PT dan cari pengalaman. Walaupun saya masih kelas SMP tapi pengen banget ikutan buat banggain orang tua.
Betul, guru di SMA saat itu jg g ada yang paham tentang programming (OSN baru mulai diadakan tahun itu). Jadi saya belajar sendiri dari buku (internet pun masih jadi barang langka, hehe…)
Oke gapapa gan. Kan saya masih kelas 3 masih ada waktu tunggu ebooknya. BTW, OSN buat kelas berapa yah?
Biasanya OSN untuk kelas 1 dan kelas 2, atau kalau menggunakan istilah sekarang kelas X dan XI. Soalnya kalau kelas 3, sudah fokus ke UAN.
gan kalo hasilnya 1 0 3 0 gimana programnya ?
Untuk tutorial yang khusus tentang membuat deret, bisa lanjut kesini: https://www.duniailkom.com/tutorial-belajar-pascal-cara-membuat-deret-dalam-bahasa-pascal/
pak permisi saya mau tanya. program perulangan yang saya coba berhasil sama seperti hasil konten dari web pak. tetepi hasil "hello word" tidak menurun kebawa tetapi malah kesamping kanan lalu menurun kayae menulis biasa tanpa enter.
Program "hello world"nya dapat darimana y? soalnya di halaman ini tidak ada contoh seperti itu. Tp menurut saya tampil ke kanan semua gara2 menggunakan perintah write('Hello World'). Coba ganti menjadi writeln('Hello World').
writeln('Perkalian 7 * ', i ,' adalah = ', 7 * i);
Kenapa di akhir kata 7*i tidak di tambahkan " ' " (koma atas) namun di awal malah di tambahkan
Tanda kutip digunakan sebagai penanda mana yang teks biasa (cukup langsung ditampilkan) dan mana yang harus diproses. 7 * 1 yang ada di paling kanan bukan berfungi sebagai teks, tapi harus diproses oleh Pascal sehingga tidak ditulis di dalam tanda kutip.
Misi mau tanya kak, koding pascal untuk ini gmana ya kak?
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7
1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
pakai deret angka tuh kyknya.. jujur gw sampai ke artikel ini cuma buat nyari tutorial begituan
gw otodidak dapat deret gini
12345 54321
2345 5432
345 543
45 54
5 5
sampai skrng bingung gmn caranya terurut