Selain struktur percabangan program seperti IF THEN, IF THEN ELSE dan CASE, struktur program lain yang wajib kita ketahui adalah looping, atau perulangan, atau disebut juga dengan iterasi.
Di dalam Pascal setidaknya terdapat 3 jenis perulangan, yakni FOR DO, WHILE DO, dan REPEAT UNTIL. Kita mulai dengan membahas Perulangan FOR DO dalam bahasa pemrograman Pascal.
Pengertian Perulangan FOR DO dalam Pascal
Perulangan, atau looping dalam bahasa inggris, adalah konsep pemrograman dimana kita mengulang baris program beberapa kali. “Beberapa kali” disini bisa dikatakan tidak terbatas, selama komputer masih bisa mengolahnya.
Sebagai contoh, saya ingin anda menulis teks “Hello World” sebanyak 1000 kali. Tentu sangat melelahkan mengetik semua ini (walaupun dengan di-copy paste). Menggunakan struktur looping, kita bisa membuatnya dalam waktu singkat dan cepat, hanya butuh beberapa baris kode program.
Salah satu struktur perulangan di dalam Pascal adalah FOR DO, berikut format penulisannya:
FOR (variabel_counter) := (nilai_awal) TO (nilai_akhir) DO begin (kode program yang ingin diulang disini...) end;
variabel_counter adalah variabel yang berfungsi sebagai counter, atau penghitung di dalam perulangan. Variabel ini otomatis menaik dari nilai_awal hingga nilai_akhir. Dalam setiap kenaikan, blok kode program yang berada di dalam begin dan end; akan dijalankan. variabel_counter ini bisa digunakan sepanjang perulangan (jika diperlukan).
Mari langsung masuk ke contoh kode program.
Contoh Kode Program PASCAL untuk Perulangan FOR DO
Sebagai contoh pertama, saya ingin membuat 1000 teks “Hello World”. Berikut kode programnya:
program for_do_loop; uses crt; var i: integer; begin clrscr; for i := 1 to 1000 do begin writeln('Hello World'); end; readln; end.
Di bagian var, saya membuat sebuah variabel i dengan tipe data integer. Variabel ini saya siapkan sebagai variabel counter.
Untuk membuat perulangan sebanyak 1000 kali, saya menggunakan perintah for i := 1 to 1000 do. Ini bisa dibaca dengan “Untuk variabel i, jalankan perulangan mulai dari 1 hingga 1000”.
Apa yang akan diulang? Adalah blok program yang diawali perintah begin, dan diakhiri perintah end;. Di dalam blok ini saya membuat sebuah perintah: writeln(‘Hello World’).
Dengan demikian, pascal akan menjalankan 1000 kali baris writeln(‘Hello World’). Mari kita coba:
Karena keterbatasan ukuran layar, kita tidak akan bisa menghitung jumlah “Hello World” ini. Tapi kita bisa memanfaatkan variabel counter i. Saya akan ubah kode programnya menjadi seperti berikut:
program for_do_loop; uses crt; var i: integer; begin clrscr; for i := 1 to 1000 do begin writeln('Hello World ke - ',i); end; readln; end.
Disini, saya menambahkan variabel counter i ke dalam blok perulangan. Kode writeln(‘Hello World ke – ‘,i), artinya saya ingin menampilkan Hello World – 1, Hello World – 2, Hello World – 3, hingga Hello World – 1000.
Jika komputer anda cukup lambat (eh), ketika program dijalankan akan terlihat teks Hello World menaik secara perlahan dari 1 hingga 1000.
Mari masuk ke contoh selanjutnya. Kali ini saya ingin membuat kode program yang merupakan daftar perkalian 7, yakni 7 x 1 = 7, 7 x 2 = 14, 7 x 3 = 21, dst hingga 7 x 10 = 70. Disini kita harus menggunakan variabel counter i agar setiap perkalian naik dari 1 hingga 10. Berikut kode program yang saya gunakan:
program for_do_loop; uses crt; var i: integer; begin clrscr; for i := 1 to 10 do begin writeln('7 x ',i,' = ',7 * i); end; readln; end.
Ini sebenarnya modifikasi dari kode program perulangan Hello World. Saya merangkai tampilan daftar perkalian menggunakan perintah writeln(‘7 x ‘,i,’ = ‘,7 * i). Jika anda mengikuti tutorial belajar pascal duniailkom dari awal, ini adalah penyambungan teks dengan variabel. Tanda koma digunakan untuk memisahkan mana bagian teks, dan mana variabel Pascal.
Sebagai contoh terakhir, mari kita coba modifikasi kode program diatas agar lebih interaktif. Kali ini saya ingin membuat daftar perkalian tapi angka perkaliannya diinput oleh pengguna. Misalnya diinput angka 9, tampilkan daftar perkalian 9 x 1, 9 x 2, hingga 9 x 10. Jika diinput 14, tampilkan perkalian 14 x 1, 14 x 2, hingga 14 x 10.
Sebagai latihan, silahkan anda coba buat sendiri.
Baik, berikut kode program yang saya gunakan:
program for_do_loop; uses crt; var i,angka: integer; begin clrscr; writeln('========================'); writeln('Program Daftar Perkalian'); writeln('========================'); writeln; write('Input perkalian yang diinginkan: '); readln(angka); writeln; for i := 1 to 10 do begin writeln( i ,' x ', angka ,' = ', i * angka); end; readln; end.
Disini saya menggunakan 2 buah variabel: i dan angka. Variabel angka digunakan untuk menampung inputan, sedangkan variabel i sebagai variabel counter.
Selain tambahan kode readln(angka), kode program diatas mirip seperti sebelumnya. Tentu saja di dalam blok perulangan saya harus membuat baris writeln( i ,’ x ‘, angka ,’ = ‘, i * angka) agar variabel angka di proses sebagai bilangan pengali.
Perulangan Dengan Angka Negatif untuk FOR DO Pascal
Dalam contoh sebelumnya, saya menggunakan angka positif untuk perulangan. Selain itu, kita juga bisa menggunakan nilai negatif, selama nilai awal harus lebih besar daripada nilai akhir:
program for_do_loop; uses crt; var i: integer; begin clrscr; for i := -35 to -20 do begin writeln('10 x ',i,' = ',10 * i); end; readln; end.
Perulangan Mundur untuk FOR DO Pascal
Bisa menggunakan angka negatif, kenapa kita tidak mencoba hitung mundur? Yakni dari bilangan besar ke kecil. Berikut contoh kode programnya:
program for_do_loop; uses crt; var i: integer; begin clrscr; for i := 10 to 0 do begin writeln('Hitung mundur: ',i); end; readln; end.
Eh, kenapa layarnya kosong? Yup, di dalam PASCAL kita tidak bisa melakukan hitung mundur dengan perulangan FOR DO, tapi harus menggunakan perulangan FOR DONWTO DO. Inilah yang akan kita bahas dalam tutorial selanjutnya: Perulangan FOR DOWN TO dalam Pascal.
Maksudnya variabel counter apa yah?
Diartikel ini sudah saya jelaskan tuh gan:
"variabel_counter" adalah variabel yang berfungsi sebagai counter, atau penghitung di dalam perulangan. Variabel ini otomatis menaik dari nilai_awal hingga nilai_akhir.
Dalam setiap kenaikan, blok kode program yang berada di dalam begin dan end; akan dijalankan. variabel_counter ini bisa digunakan sepanjang perulangan (jika diperlukan).
Silahkan dicoba2 kode programnya, disini saya menggunakan i sebagai variabel counter.
aplikasi pascal apa yang admin gunakan ?? tampilannya bagus
Saya pakai Free Pascal
Variabel I adalah Integer, nah klo Variable j dan k itu apa gan ? saya cari gak penjelasannya diatas, mohon pencerahannya gan :)
Kode programnya lihat dimana y? soalnya dalam tutorial ini memang tidak menggunakan variabel j maupun k.
Tergantung kode programnya, variabel j dan k bisa diisi dengan tipe data apa saja (bisa dilihat di kode program). Tapi khusus untuk perulangan, biasanya i, j, dan k sama-sama bertipe integer.
gan mau nnya, gini gan kn aku pake pakai for do nah aku bikin coding nya berhasil aj pas dirun , nah dicoding nya aku bikin kan ad masukan jumlah data gitu aku masukin data nya ad 2 trs kn diinputkan tuh di data ke 1 sama data ke 2 nah pas hasil output nya yg muncul cuma didata ke 2 aja gan smentara data 1 nya kya ga terbaca gitu
Kalau yang seperti ini harus dianalisis semua kode program dan melihat pesan error yang tampil.
melihat pesan error nya di turbo pascal dimna
Biasanya di bagian bawah akan keluar teks warna merah sewaktu di compile.
tapi pas di run berhasil ko , yang pas di hasil nya itu gan mau nginputin nah disitu yang agak gak jelas
hasil program stlh di run:
//input
nama barang 1 :sabun
harga barang 1:10000
nama barang 2 :sampo
harga barang 2:5000
//output
nama barang 2 :sampo
harga barang 2:5000
nama barang 2 :sampo
harga barang 2:5000
nah gitu gan permasalahan nya
gan,,,
saya punya tugas sekolah,,
kalau membuat program dengan hasil.
1 x 5 = 5
2 x 4 = 4
3 x 3 = 3
4 x 2 = 8
5 x 1 = 5
… gimana gan?.. mohon bantuannya.
begin
i :=0;
for y := 5 downto 1 do
begin
i :=1+i;
write (i ,' x ',y,' = ');
kali:=i* y;
writeln (kali);
end;
readln;
end.
ASK
for a := 1 to 10 do
begin
writeln('Hello Ke : ', a);
end;
ketika dirun tampak normal, akan tetapi saat nilai dari 10 diubah menjadi 100 lalu dirun hasilnya hanya beberapa saja yang tampil, seperti 10 / 15. Bahkan ada yang aneh, yang tampil seharusnya "Hello Ke -" malah 10 * 8 (ketika hasil run programm lalu discroll keatas). Kira kira kenapa ya ?
Kurang tau juga nih masalahnya dimana…
Atau mungkin itu tergabung dengan kode program lain. Bisa test copy paste kode yang sama persis dengan yang ada di tutorial ini.
Ijin bertanya untuk membuat seperti ini bagaimana ya? Apa codingnya? Terimakasih
Ini tugas sekolah
I
I-N
I-N-F
I-N-F-O
I-N-F-O-R
I-N-F-O-R-M
I-N-F-O-R-M-A
I-N-F-O-R-M-A-T
I-N-F-O-R-M-A-T-I
I-N-F-O-R-M-A-T-I-K
I-N-F-O-R-M-A-T-I-K-A
Requestnya di tampung dulu ya…
Min contoh yang paling atas kok di compile error yak?
Kode yang pertama kan y? pesan errornya apa? Saya barusan sudah cek ulang g ada masalah…
Mungkin ada yang salah ketik, atau bisa copy paste saja kode tersebut untuk memastikan.
kalau bikin program yang nampiling angka : 1 27 .. .. itu gimana ya ? bisa dibuatkan tutorialnya / algoritmanya.
Perulangan itu bisanya pake bilangan bulat aja ya ?
Atau bisa pake bilangan pecahan ?
hallo ka mau tanya kan aku bikin program struk kan trs ada Error: Illegal assignment to for-loop variable “i” itu kenpa ya?
Apakah di dalam perulangan variabel i-nya coba di ubah? Kalau iya, itu memang tidak bisa dilakukan dalam perulangan for do. Solusinya bisa ganti dengan perulangan while do atau repeat until.