Terdapat tiga macam perulangan (repetition) yang dapat digunakan, yaitu statement FOR, statement WHILE, dan statement REPEAT. Masing-masing statement digunakan pada jenis perulangan yang berbeda , meski untuk sebuah kasus sebuah statement perulagan dapat diganti dengan statement perulangan yang lain.
I. STATEMENT FOR
Statement For digunakan untuk perulangan yang telah diketahui beberapa kali akan dilakukan.
Skema umum statement FOR adalah sebagai berikut :
♥ FOR…TO….DO
FOR Variabel : = ekspresi1 TO ekspresi2 DO
Statement;
♥ FOR…DOWNTO…DO
FOR Variabel :=ekspresi 1 DOWNTO ekspresi2 DO
Statement;
Perbedaan antar skema pertama dan kedua adalah pada harga ekspresi1 dan ekspresi2 jika harga ekspresi1
1. FOR..TO..DO
Buat program yang membaca sebuah integer positif dan menjumlahkan angka 1 sampai dengan angka yang di baca tersebut :
Jawab :
program jumlahinteger;
{menunjukan integer 1 sampai dengan batas}
var
i: integer;
batas: integer;
hasil: integer;
begin
write ('Masukan Integer positif : ') ; readln (batas);
hasil := 0;
For i:= 1 To batas Do
hasil := hasil+i;
write ('Jumlah 1 sampai ', batas, '=');
write (hasil);
End.
Masukan / Keluaran
2. FOR …DWONT…TO
Buat program yang membaca sebuah integer positif deret angka mulai batas sampai dengan 1
Jawab :
program deretangka2;
{menuliskan deret mulai batas samapi dengan 1 }
var
i: integer;
batas: integer;
begin
write ('Masukan integer positif : ') ; readln (batas);
For i:= 5 Downto 1 Do
Write (i,' ');
End.
Masukan / Keluaran
Perhatikan statement For yang digunakan. Program menggunakan For-Downt-to sebagai ganti statement For-To-Do pada program jumlahinteger. Pada program jumlahinteger setiap setelah statement FOR dijalanakan nilai i ditambah dengan 1 atau diganti dengan i+1, sedang pada program deretangka2 setiap setelah statement FOR dijalankan nilai i dikurangi dengan 1 atau diganti dengan i-1. Penambahan nilai I dilakukan sampai mencapai nilai batas yang telah ditentukan.
II. STATEMENT WHILE
Jika banyak perulangan yang akan dilakukan sudah diketahui , maka statement FOR yang dijalankan. Bagaimana jika banyak perulangan tidak diketahui? Salah satunya dapat mengunakan statement WHILE mirip dengan ststement IF yang melakukan pemeriksaan ekspresi Boolean sebelum sebuah atau serangkai statement dilakukan.
Skema umum statement WHILE adalah :
WHILE kondisi DO
Statement
Kondisi adalah sebuah ekspresi boolean . Jika ekspresi boolean bernilai true , statement dijalankan dan ekspresi Boolean tersebut diperiksa kembali, dan perulangan jika ekspresi boolean bernilai false. Dengan demikian, banyak perulangan yang dilakukan sama dengan banyak pemeriksaan ekspresi Boolean yang mengirimkan harga TRUE.
Untuk memperjelas penggunaan statement WHILE, berikut diberikan beberapa contoh :
Buat program yang membaca sebuah integer positif dan menjumlahkan angka 1 sampai dengan angka yang dibaca tersebut.
Jawab :
program jumlahinteger;
{menggunakan integer, 1 sampai dengan batas, menunjukan statement while}
uses wincrt;
var
i : integer;
batas : integer;
hasil :integer;
begin
write ('Masukan integer positif : '); readln (batas);
hasil := 0;
i:= 0;
While i < batas Do begin i:= i+1; hasil := hasil + i; end; {kondisi berhenti : i > batas}
write (' Jumlah 1 sampai ', batas, ' = ');
write (hasil)
End.
Masukan / Keluaran :
III. STATEMENT REPEAT
Sekema umum statement REPEAT adalah sebagai berikut :
REPEAT
Statement
UNTIL kondisi
Dimana kondisi adalah sebuah ekspresi Boolean, Jika kondisi berhargaTRUE perulangan selesai dan statement tidak dijlankan lagi , dan sebaliknya , jika kondisi berharga FALSE statement dijalankan lagi . REPEAT dan UNTIL adalah reserved word Pascal. Untuk memperjelas penggunaan statement REPEAT , berikut contohnya :
Buatlah program yang membaca karakter , ‘a’…’z’ , dan menuliskan deretan karakter mulai dari ‘a’ sampai dengan karakter yang dibaca dari keyboard tersebut.
Jawab :
program derethuruf;
{menuliskan angka mulai 'a' sampai dengan batas}
uses wincrt;
var
cc,batas : char;
begin
write (' Masukan huruf , a...z : '); readln (batas);
cc := 'a';
Repeat
write (cc);
cc := succ(cc);
Until (cc > batas);
End.
Masukan / Keluaran :
PENDEKLARASIAN ARRAY
Berdasarkan dimensinya , dibedakan yaitu array satu dimensi dan array dua dimensi .
Skema Array satu dimensi
Type nama_array=array [I] of tipe_baris ;
I adalah yang menyatakan jangkauan array , mulai dari indeks terkecil sampai terbesar.
Contoh pendeklarasian array dalam pascal
Type arrhuruf =array [1..20] of char;
Type arrangka =array [1..100] of integer;
Type arrfrek = array [ ‘ a ‘… ‘ z ‘] of integer;
Nilai sebuah eleman array dapat diacu menggunakan nilai indeksnya yang disebut array selector, dengan aturan berikut :
NamaVariabel[ Indeks ];
Dimana NamaVariabel adalah NamaVariabel yang berupa tipe array , dan indeks adalah nilai jangkauan array yang bertipe tertentu, Tipe indeks disesuaikan dengan tipe indeks pada pendeklarasian. Contoh pemberian nilai tersebut adalah sebai berikut :
OPERASI TERHADAP ARRAY
Operasi atau manipulasi terhadap array hanya dapat dilakukan terhadap satu elemennya yang ditunjukan oleh indeks. Jika tipe-baris array berupa record maka aturan operasi terhadap record pun berlaku , yaitu selain menuliskan indeks array juga menulis file record yang dimaksud . Operasi yang dapat dkenakan terhadap tipe-barisnya .
Contoh :
Buatlah program dalam bahasa pascal yang membaca sebuah integer dan mengisi array integer , Tablnt , mulai indeks 1 sampai n
Jawab :
program isiarray;
{program membaca sebuah integer, n, dan mengisi array mulai indeks 1 sampai n}
uses wincrt;
var
Tablnt : array [1..100] of integer;
n : integer {indeks efektif , n <=100}; i : integer {indeks pengisian array}; begin {membaca nilai n, n<=10} write (' Nilai n=' ) ; readln (n); {mengisi array} For i:= 1 To n Do Begin Write (' Tabln [', i , '] =') ; readln ( Tablnt [i] ); end; End. Masukan / Keluaran :
NB : Nilai n yang dapat dimaukan adalah 100 , karena array yang dipesan hanya untuk max 100 elemen perhatikan deklarasi Tablnt = array [ 1..100] of integer
Contoh 2 :
Buatlah program dalam bahasa pascal yang membaca sebuah array integer yang menyatakan nilai ujian , TabNilai, mulai indeks 1 samapi n dan menghitung nilai rata-rata ujian dan menampilkanny pada layar .
Jawab :
program bacaarray;
{program membaca sebuah integer, n, dan mengisi array mulai indeks 1 sampai n,
dan menghitung nilai rata-rata ujian dan menampilkannya di layar}
uses wincrt;
var
Tabnilai : array [1..100] of integer;
n : integer {indeks efektif , n <=100}; i : integer {indeks pengisian array}; jumlah : integer {jumlah elemen-elemen}; rerata : integer {rerata nilai ujian}; begin {mengisi array Tabnilai} {membaca nilai n ,n <=100} write (' Nilai n=' ) ; readln (n); {mengisi array} For i:= 1 To n Do begin write (' Tabnilai [',i,']=') ; readln ( Tabnilai [i]); end; {menjumalhkan elemen-elemen array} jumlah :=0; For i:= 1 To n Do jumlah:= jumlah + Tabnilai[i]; {menghitung rata-rata} rerata:= jumlah div n; {menuliskan nilai rata-rata di layar} write ('Rata-rata = ',rerata); End. Masukan / Keluaran :
Skema Array dua dimensi
Selain dikenal array satu dimensi ( one-simensional-array) seperti contoh di atas juga terdapat array dua dimensi (two-dimensional-array). Jika array 1 dimensi seperti vector matematika , maka array dua dimensi dideklarasikan dengan aturan type namaarray= array [i,j] of tipe-baris;
Dimana i dan j menyatakan array , mulai dari indeks terkecil sampai tebesar.
Sebagi contoh matrik MatA , berikut 2 baris dan 3 kolom dan tipe barisnya adalah integer.
MatA = [ 2 3 5]
[ 7 1 8]
Dapat didefinisikan sebagai berikut :
MatA =array [ 1..2,1..3] of integer;
Aturan umum pengajuan eleman array dua dimensi adalah
Namavariabel[indeksbaris,indekskolom]
Sebagai contoh , angka 3 MatA diatas diacu dengan [1,2] dan angaka 8 diacu dengan MatA [2,3] , sehingga untuk keseluruhan sbb :
MatA= [ Mat [1,1] Mat[1,2] Mat [1,3] ]
[ Mat [2,1] Mat[2,2] Mat[2,3] ]
Contoh :
Buat program untuk matriks yang ditentukan jumlah baris dan kolomnya dan menampilkan kembali isi matriks yang telah diisi tersebut.
Jawab :
Program isi_matriks;
{program mengisi matriks}
uses wincrt;
var
matA : array [1..100,1..100] of integer;
i,j : integer;
bar,kol : integer;
begin
{membaca banyak baris dan kolom}
write ('Banyak baris = '); readln (bar);
write ('Banyak kolom = '); readln (kol);
writeln;
{mengisi matriks}
For i:= 1 To bar Do
begin
For j:= 1 To kol Do
begin
write ('Mat [', i,',',j,']='); readln (matA [i,j]);
end;
end;
{menampilkan kembali isi matriks}
writeln;
writeln ( 'Isi MatA: ');
For i:= 1 To bar Do
begin
For j:= 1 To kol Do
write (MatA [ i,j]:3);
writeln;
end;
End.
Masukan / Keluaran :
$1000 Bonus Code for 'Coin Casino' | Claim an Exclusive $1000
BalasHapus$1000 Bonus Code 바카라 for 'Coin Casino' · Get $1000 Welcome Bonus · Get $1000 septcasino Risk Free · Claim Free Bet Promo Code. 인카지노 · Bonus code: