A. PERULANGAN FOR-DO
Ada 3 bentuk looping for-do yaitu for-do positif, for-do negatif dan for-do tersarang.
1. Looping Positif/Negatif
Looping positif adalah looping dari perhitungan kecil ke perhitungan besar.
Looping for-do digunakan untuk mengulang
statement berulang kali sejumlah yang ditentukan. Bila terdapat lebih dari satu
statement yang ada di dalam looping maka menggunakan begin...end;, jika hanya
satu blok saja tidak perlu menggunakan begin...end;.
Ada 3 bentuk looping for-do yaitu for-do positif, for-do negatif dan for-do tersarang.
1. Looping Positif/Negatif
Looping positif adalah looping dari perhitungan kecil ke perhitungan besar.
Sedangkan looping negatif kebalikan dari
looping positif. Bentuknya sebagai berikut :
For var_int := nilai_awal
to nilai_akhir do statement; (+)
For var_int := nilai_awal
downto nilai_akhir do statement; (-)
Var_int adalah variabel kontrol
yang menentukan looping tersebut. Variabel
kontrol harus bertipe sejenis integer.
Example code :
program looping_without_begin;
uses wincrt;
var x:integer;
begin
For x:= 1 to 5 do writeln(‘Sixiz
gitu lho..!!’);
end.
program looping_with_begin; uses
wincrt;
var x:integer;
begin
For x:= 5 downto 1 do
Begin
write(x);
writeln(‘ Sixiz gitu lho..!!’);
end;
end.
Output program looping_without_begin :
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Sixiz gitu lho..!!
Output program looping_with_begin :
5 Sixiz gitu lho..!!
4 Sixiz gitu lho..!!
3 Sixiz gitu lho..!!
2 Sixiz gitu lho..!!
1 Sixiz gitu lho..!!
Coba perhatikan listing program berikut :
program yang_mana_bukan_looping;
uses wincrt;
var x:integer;
begin
For x:= 5 downto 1 do
write(x);
writeln(‘ Sixiz gitu lho..!!’);
end.
Outputnya adalah 54321 Sixiz gitu lho..!! Statement writeln(‘
Six...)
tidak termasuk ke dalam looping karena
looping x berakhir pada satement write(x);.
Sekarang anda analisis output dari kedua
lsiting code program berikut.
program mikir_donk; uses wincrt;
var x,y:byte;
begin
for x:= 10 downto 1 do
y:=y+(x-1);
writeln(x);
end.
IV
program perpangkatan; uses
wincrt;
var x,x2,x3:integer;
begin
writeln(‘--------------‘);
writeln(‘ x x2 x3’);
writeln(‘--------------‘);
for x:= 1 to 10 do
begin
x2:=x*x;
x3:=x2*x;
writeln(x:3,x2:5,x3:6);
end;
end.
2. Looping For-Do
Tersarang (Nested For)
Looping tersarang yaitu looping yang ada di
dalam looping lainnya. Looping
yang lebih dalam akan diproses terlebih
dahulu hingga habis kemudian looping yang
lebih luar bertambah atau berkurang dan
memproses kembali looping yang paling
dalam. Untuk lebih jelasnya, perhatikan
listing code program berikut :
program looping_tersarang;
uses wincrt;
var i,j:integer;
begin
for i:= 1 to 2 do
begin
for j:=1 to 3 do
write(i,j,’ ‘);
writeln;
end;
end.
Bila dicompile, maka outputnya :
11 12 13
21 22 23
Dengan digit/angka yang kiri adalah i
dan yang kanan adalah j. Bagaimana
bisa terjadi demikian?!??
Looping disamping bisa digambarkan
seperti berikut :
Untuk i=1 è Untuk j=1 è write(i,j,’ ‘); = 11
Untuk j=2 è write(i,j,’ ‘); = 12
Untuk j=3 è write(i,j,’ ‘); = 13 writeln;
Untuk i=2 è Untuk j=1 è write(i,j,’ ‘); = 21
Untuk j=2 è write(i,j,’ ‘); = 22
Untuk j=3 è write(i,j,’ ‘); = 23 writeln;
Bingung khan..?!?? Cara kerja program diatas
yaitu cabang looping harus
didahulukan operasi loop-nya kemudian baru
sub-nya. Looping tersebut berakhir
sampai sub dan cabang bernilai akhir.
Sekarang analisis kedua listing code berikut :
program triple_sum;
uses wincrt;
var i,j,k:integer;
begin
for i:= 5 downto 1 do
begin
for j:=1 to 3 do
k:=k+(i+j);
writeln(k);
end;
end.
program kombinasi;
uses wincrt;
var i,j,k:integer;
begin
for i:= 1 to 3 do
for j:=3 downto 1 do
for k:=i to j do
writeln(i,j,k);
end.
B. PERULANGAN WHILE-DO
Looping dengan while-do mempunyai bentuk
seperi berikut :
while ekspresi_logika/relasi do
statement;
Statement while-do digunakan untuk melakukan
proses looping suatu statemen
terus-menerus selama ekspresi_logika/relasi
bernilai benar atau belum terpenuhi.
program while_do;
uses wincrt;
var i:byte;
begin
i:=0;
while i < 5 do
begin
writeln(i);
i:=i+1;
end;
end.
Outputnya adalah :
0
1
2
3
4
Ekspresi relasi-nya yaitu i < 5.
Jadi jika i masih
lebih kecil dari 5 maka statement akan
terus
diproses berulang, dan proses akan berhenti
setelah i tidak lagi lebih besar dari
5 (i > 5).
Maka dari itu di dalam statement ada i:=i+1;
yang akan menambahkan nilai i satu
persatu supaya i > 5. Lihat
code berikut yang mebaca input dan mengoperasi-kannya.
Kemudian ada penyeleksian input jika memenuhi
akan diulangi jika tidak akan berhenti.
program cel_to_fah; uses wincrt;
var cel,fah:real; lagi:char;
begin
lagi:=’y’;
while lagi=’y’ do
begin
clrscr; {prosedur untuk menghapus
layar}
write(‘Nilai celcius ? ‘);
readln(cel);
fah:=1.8 * cel + 32;
writeln(‘Fahrenheit = ‘,fah:5:2);
write(‘Menghitung lagi (y/t) ?
‘);
readln(lagi);
end;
end.
Di dalam looping while-do juga terdapat
while-do tersarang (nested while-do). Dan
pada prinsipnya adalah sama dengan nested
for-do.
C. PERULANGAN
REPEAT..UNTIL
Repeat..Until adalah proses looping suatu
statement secara terus menerus hingga
ekspresi yang ada di dalam until bernilai
false atau sudah terpenuhi. Dengan kata lain
looping repeat..until prosesnya berkebalikan
dengan looping while-do. Bentuknya:
Repeat statement; until ekspresi_logika/relasi;
Perhatikan contoh berikut :
program repeat_until;
uses wincrt;
var i:byte;
begin
i:=0;
repeat
i:=i+1;
writeln(i);
until i=5;
end.
Output yang dihasilkan adalah :
12345
Proses looping akan terus dilakukan
hingga ekspresi terpenuhi. Pada contoh,
penambahan i terus dilakukan hingga i=5.
Sekarang pada program repeat_until, coba anda
ganti ekspresi di dalam until
menjadi i>5. Kemudian anda compile
dan apa yang terjadi ??! Coba bandingkan contoh
looping menggunakan repeat..until dengan
looping while-do ini!!
program sample_repeat;
uses wincrt;
var i:integer;
begin
i:= 10;
repeat
writeln(i);
i:=i + 1;
until i>5;
end.
Output :
11
program sample_while;
uses wincrt;
var i:integer;
begin
i:= 10;
while i<5 do
begin
writeln(i);
i:=i+1;
end;
end.
Output : Tidak ada hasil
Dari kedua contoh diatas dapat disimpulkan
perbedaan kedua operasi tersebut :
Ø Paling sediki statement di
dalam looping repeat diproses sekali, karena pemenuhan
syarat until terletak setelah statement.
Sedangkan looping while statement-nya paling
sedikit dikerjakan nol kali, karena pemenuhan
syarat while terletak sebelum statement.
Ø Looping repeat tidak
memerlukan blok statement (begin..end;) pada statement yang
lebih dari satu, karena batasnya sudah
ditunjukkan oleh repeat..until. Sedangkan while
memerlukan blok statement (begin..end;) jika
statementnya lebih dari satu.
Didalam looping repeat..until juga
terdapat looping tersarang (nested repeat). Sama
seperti nested for dan nested while
dalam hal aturan, yaitu di dalam looping terdapat
looping yang lain. Perhatikan code program
berikut yang menggunakan nested repeat.
Program ini akan menghitung sisi-sisi
segitiga siku-siku dengan menggunakan rumus
phytagoras yaitu C = A2 + B2.
program phytagoras; uses wincrt;
var a,b,c:real;
begin
writeln(‘----------------------‘);
writeln(‘Sisi A Sisi B Sisi C’);
writeln(‘----------------------‘);
a:=1;
repeat
b:=0;
repeat
c:=sqrt(a*a + b*b);
writeln(a:5:2,b:8:2,c:8:2);
b:=b + 1;
until b>4;
a:=a + 1;
until a>4;
end.
Setelah anda memahami program tersebut, coba
anda analisis proses dari program
berikut ini :
program bengong; uses wincrt;
var a,b:byte;
begin
a:=10;
b:=0;
repeat
b:=b+1;
a:=a-b;
until a>b;
writeln(a,’
‘,b);
Sampai jumpa di postingan saya selanjutnya dan jangan lupa untuk berkunjung setiap hari untuk mendapatkan postingan-postingan terbaru dari saya.
Sekian Materi yang dapat saya bagikan kali ini tentang Materi Perulangan (Looping) Pada Pemrograman Pascal , dan Semoga Bermanfaat buat semuanya.
Sampai jumpa di postingan saya selanjutnya dan jangan lupa untuk berkunjung setiap hari untuk mendapatkan postingan-postingan terbaru dari saya.
Untuk membaca postingan saya yang lainnya, silahkan membuka DAFTAR ISI pada menu Blog ini.
6 komentar:
jika menggunakan uses wincrt,saat dicompile muncul pesan error: file not found(wincrt.tpu).mohon penjelasan.thank u...
Pakai "USES CRT" aja sob, itu untuk turbo pascal. kalau pakai fre pascal pakai "USES WINCRT". fungsinya untuk membersihkan tampilan layar pada saat di compile. terimakasih sudah berkunjung.
Pastinya Sob. Terima kasih dan salam kenal
thanks gan atas info yg ini
kalau mau keluar hasil nya itu lompat 2 seperti ini
2, 4, 6, 8
apa ada syntax khusus ya?
Post a Comment