Perulangan (Looping) dengan "FOR" dalam Pascal.
Ya seperti pada judulnya, kali ini kita akan belajar mengenai perulangan (looping) dalam Bahasa pemprograman Pascal.
Ada 3 cara di dalam Bahasa Pemprograman Pascal untuk menyatakan perulangan. Yaitu
1. FOR - DO
2. WHILE - DO
3. REPEAT - UNTIL
ke tiganya mempunyai cara penulisan dan fungsinya masing-masing(meskipun pada dasarnya semua nya digunakan untuk perulangan)
Menurut saya, bagian dari belajar dasar pemprograman yang "membutuhkan waktu lebih" untuk di kuasai adalah bagaian ini.
yah, perulangan. karena akan banyak khasus yang membutuhkan analisa logika teman-teman untuk menyelesaikanya(tentunya berhubungan dengan perulangan)
Kali ini kita akan membahas perlulangan dalam Bahasa Pemprograman Pascal menggunakan FOR - DO. Yuk mari...
Di dalam Pemprograman pascal, Syntax Looping dengan menggunakan FOR di bedakan menjadi 2 jenis. Yaitu
A. Increasement (bertambah)
FOR <variable> : = <nilai_awal> TO <nilai_akhir> DOSyntax FOR di atas digunakan untuk perulangan yang nilai awalnya terus bertambah hingga nilai akhir.
atau dalam pengertian dapat di rumuskan :
Printah (statement) di dalam FOR akan selalu di jalankan selama nilai_awal masih <= nilai_akhir.
Kemudian nilai_awal akan selalu di tambahkan 1 di setiap kali perulangan.
Perintah (statement) di dalam FOR akan berkahir/selesai di eksekusi pada saat nilai_awal > nilai_akhir.
Sebagai contoh :
Contoh1
Tampilkan urutan bilangan mulai dari 1 hingga 10
Berikut script penyeselsaianya :
program Contoh1; var x: integer; begin for x := 1 to 10 do begin write(x , ' '); end; readln; end.Hasil dari program di atas adalah :
1 2 3 4 5 6 7 8 9 10nilai dari variable x mula-mula adalah 1, kemudian perintah yang dijalankan adalah write/mencetak variable x .
Kemudian karena x masih kurang dari 10 maka x ditambahkan 1, sehingga sekarang nilai x menjadi 2 .
Dan begitu seterusnya hingga x = 10 maka program perhenti di proses.
B. Decreasement (berkurang)
FOR <variable> : = <nilai_awal> DOWNTO <nilai_akhir> DOBerkebalikan dengan FOR untuk Increasement, Syntax FOR untuk Decreasement di atas digunakan untuk perulangan dengan penurunan nilai.
Jadi :
Printah (statement) di dalam FOR akan selalu di jalankan selama nilai_awal masih >= nilai_akhir.
Kemudian nilai_awal akan selalu di dikurangi 1 di setiap kali perulangan,
Perintah (statement) di dalam FOR akan berkahir/selesai di eksekusi pada saat nilai_awal < nilai_akhir.
Sebagai contoh :
Contoh2
Tampilkan urutan bilangan mulai dari 15 hingga 5
Berikut script penyelesaianya :
program Contoh2; var y: integer; begin for y := 15 downto 5 do begin write(y , ' '); end; readln; end.Hasil dari program di atas adalah :
15 14 13 12 11 10 9 8 7 6 5nilai dari variable y mula-mula adalah 15, kemudian perintah yang dijalankan adalah write/mencetak variable y .
Kemudian karena y masih lebih dari 5 maka y dikurangi 1, sehingga sekarang nilai y menjadi 14 .
Dan begitu seterusnya hingga y = 5 maka program perhenti di proses.
OK,, kita sudah mengenal 2 jenis FOR dalam pascal, sekarang saat nya implementasi :D
Saya mempunyai 2 khasus yaitu :
1. Saya ingin menampilkan bilangan perima mulai dari 1 hingga 50
2. Saya inggin membuat Pyramit dari character 'x' menjadi seperti :
x
xxx
xxxxx
xxxxxxx
Bagaimana caranya?yuk kita kerjakan bersama - sama :D
1. Khasus 1
untuk mengerjakan khasus ini kita memerlukan operator artimatik "MOD" (modulus) yaitu operator aritmatik yang berfungsi untuk mendapatkan nilai sisa hasil bagi.
seperti yang kita ketahui, ciri-ciri dari bilangan prima adalah hanya dapat dibagi oleh angka 1 dan bilangan itu sendiri.
jadi jumlah bilangan pembagi bilangan prima hanyalah ada 2.
Brikut script nya :
Program khasus1; var a,b,c,x : integer; BEGIN x := 50; // batas nilai prima for a:= 1 to x do // for pertama Begin c := 0; // jumlah pembagi bilangan prima for b: = 1 to a do // for ke 3 Begin if a mod b=0 then // pengecekan sisa hasil pembagian c:=c+1; // jika sisanya 0 jumlah pembagi ditambah 1 end; // akhir for ke 2 if c = 2 then // pengecekan jumlah pembagi, jika jumlah pembagi = 2 maka cetak bilangan tersebut (berarti bilangan prima) begin write(a,' '); // cetak nilai bilangan prima end; end; // akhir for pertama readln; END.
Penjelasan :
a. for pertama berfungsi untuk perulangan bilangan variable a dari 1 hingga x (50)
b. for ke 2 berfungsi untuk mencari berapa jumlah bilangan yang hasil bagi dengan variable a nya adalah 0
Hasilnya :
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
2. Khasus 2
Dilihat dari hasilnya, sepertinnya mudah? yakin? hehehe
Menurut saya, bagi yang baru belajar Pemprograman, khasus ini adalah khasus yang cukup meguras otak kita hehe.
Tapi tenang jangan panik. disini kita kan bahas bersama-sama :D
sebelumnya akan saya berikan script lengkapnya terlebih dahulu baru akan saya bahas bagian-perbagian :D
berikut ini script lengkapnya :
program khasus2; var baris,sepasi,piramit1,piramit2,jumbaris :integer; begin jumbaris := 4; for baris :=1 to jumbaris do // for pertama begin for sepasi := jumbaris downto baris do // for ke 2 begin write(' '); // mencetak segitiga spasi end; // akhir for 2 for piramit1 := 1 to baris do // for 3 begin write('x'); // mencetak segitiga x 1 end; // akhir for 3 for piramit2 := 2 to baris do // for 4 begin write('x'); // mencetak segitiga x 2 end; // akhir for 4 writeln; // mencetak baris baru end; // akhir for pertama readln; end.
hah? panjang dan banyak banget for nya??
tenang aja, yuk kita bahas bersama-sama.
dari yang temen-temn lihat, kira-kira ada berapa objek segitiga?
1?
hmm... salah... :)
jawabanya ada 3..
loh koq bisa?
heheh akan saya jelaskan
a. For pertama
for baris :=1 to jumbaris do // for pertama begin . . . . end;
for pertama adalah FOR pembungkus dari semua FOR pembentuk objek segitiga.
fungsi dari for pertama adalah untuk membuat baris. yaitu mulai baris pertama (1) hingga baris ke jumbaris (4)
varibale "baris" disini berfungsi sebagai acuan pembentukan kolom di setiap objek segitiganya
b. For ke 2
for sepasi := jumbaris downto baris do // for ke 2 begin write(' '); // mencetak segitiga spasi end; // akhir for 2for ke 2 ini berfungsi sebagai pemebentuk kolom yang nantinya menjadi segitiga spasi.
bingung? sekarang coba temen-temen ganti isi dari write(' '); menjadi write('0');
apa yang terjadi?
yups ada segitiga yang terbentuk dari angka 0.
Seperti yang saya sebutkan, fungsi dari for ini adalah untuk membuat kolom, jumlah kolom (dalam hal ini spasi/angka 0) adalah hasil dari perulangan for tersebut, sebagai contoh di baris yang pertama jumlah spasi/0 adalah 4 buah. itu dukarenakan perulangan Decreasement perintah mencetak spasi/0 di baris pertama yaitu dari nilai variable sepasi (4) hingga nilai variable baris (1). dan begitu seterusnya hingga for pembentuk beris(for pertama) berakhir.
c. For ke 3
for piramit1 := 1 to baris do // for 3 begin write('x'); // mencetak segitiga x 1 end; // akhir for 3fungsi dari for ke 3 ini adalah untuk membentuk segitiga x yang ke 1. sama seperti fungsi dari for yang kedua, cuma bedanya yang di cetak adalah character x dan perulangan untuk pembentukan barisnya adalah Increasement.
sebagai contoh di baris yang pertama jumlah x adalah 1 buah. itu di karenakan perulangan perintah pencetakan x dari nilai mulla-mula varibale piramit1 (1) bertambah terus hingga nilainya sama dengan variable baris (1) dan begitu seterusnya hingga for pembentuk beris(for pertama) berakhir.
d. For ke 4
for piramit2 := 2 to baris do // for 4 begin write('x'); // mencetak segitiga x 2 end; // akhir for 4Fungsinya adalah pembentuk segitiga x yang ke 2. algoritmanya sama persis dengan for yang ke 3, hanya bedanya piramit2 dimulai dari 2, bukan 1.
kenapa? karena segitiga yang akan dicetak lebih kecil 1 baris dari yang pertama. coba temen-temen ganti isi piramit2 menjadi 1. apa yang akan terjadi? :D
Hasilnya adalah :
x
xxx
xxxxx
xxxxxxx
yeah,,, kita sudah belajar macam-macam for dalam pascal.. udah tambah Pintar Coding dong pastinya hehehe..terus terang For adalah bagian dasar dari pemprograman yang perlu perhatian lebih dalam memahaminya, jadi tenang aja bagi yang belum paham bisa di pelajari pelan-pelan koq hehe
ok,, di article selanjutnya kita kan belajar Looping dalam Pascal menggunakan WHILE-DO dan REPEAT-UNTIL ..
tenang ndak sesulit For koq, saya yakin ini lebih mudah,, jadi nantikan ya article selanjutnya... semoga bermanfaat.. :D
0 komentar:
Posting Komentar