ARRAY
Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis.
Terdapat dua bagian penting yaitu
• elemen array yang merupakan nilai
• indeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Bentuk Umum:
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;
Contoh:
Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer
Var A: array [1..10] of Integer;
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
end.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
end.
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
end.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
VAR A, N, Jml_Nilai : Integer;
Nilai : ARRAY[1..10] Of Integer;
Nil_Rata : Real;
Begin
Write('Masukan Banyak Data : '); Readln(N);
FOR A := 1 TO N DO
Begin
Write('Nilai Ke- ',A,' = '); Readln(Nilai[A]);
End;
writeln; Nil_Rata := Jml_Nilai / N;
WriteLn('---------------------');
WriteLn('Jumlah Total : ', Jml_Nilai);
Nil_Rata := 0; WriteLn('Nilai Rata-Rata : ', Nil_Rata:5:2);
Jml_Nilai := 0;
FOR A := 1 TO N DO Readln;
Begin end.
Jml_Nilai := Jml_Nilai + Nilai[A];
Writeln('Nilai Ke- ',A,' = ',Nilai[A]);
End;
Uses Crt;
VAR A, N, Jml_Nilai : Integer;
Nilai : ARRAY[1..10] Of Integer;
Nil_Rata : Real;
BEGIN
ClrScr;
Write('Masukan Banyak Data : '); ReadLn(N);
FOR A := 1 TO N DO
Begin
Write('Nilai Ke- ',A,' = '); ReadLn(Nilai[A]);
End;
Nil_Rata := 0;
Jml_Nilai := 0;
FOR A := 1 TO N DO
Begin
Jml_Nilai := Jml_Nilai + Nilai[A];
Write('Nilai Ke- ',A,' = ',Nilai[A]);
End;
Nil_Rata := Jml_Nilai / N;
WriteLn('---------------------');
WriteLn('Jumlah Nilai : ',Jml_Nilai);
WriteLn('Nilai Rata-Rata : ',Nil_Rata:5:2);
ReadLn;
END.
Indeks dari larik dapat berupa tipe skalar.
Contoh. :
Uses Crt;
Var
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Begin
Clrscr;
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
Readln;
End.
Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi
variabel, tetapi dapat juga berupa konstanta (const).
Contoh:
Uses Crt;
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
Var
i : Integer;
Begin
clrscr;
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);
Readln;
End.
konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh Program :
Uses Crt;
Const
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
Var
i : Integer;
Begin
Clrscr;
For i:= 0 to 5 Do
Writeln('Nilai konstan array ke',i:2,' = ',Huruf[i]);
Readln;
End.
Konstanta array dapat juga berupa string seperti berikut ini.
Contoh :
Uses Crt;
Type
A = Array [1..5] of String;
Const
Nama : A = ('sate','gule','soto','tahu','tempe');
Var
i : Integer;
Begin
clrscr;
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);
readln;
end.
Dalam pascal, string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh :
Uses Crt;
Var
Nama : string;
i : Integer;
Begin
clrscr;
Nama:=‘Program Pascal';
For i:= 1 to Length(nama) Do
Writeln('Elemen ',i,' dari ',Nama,'= ',Nama[i]);
Readln;
End.
contoh program bilangan prima dengan menggunakan bantuan array.
Uses Crt;
Var
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Begin
ClrScr;
For i := 2 to 100 Do
Begin
Prima[i]:=i;
For j:= 2 to i-1 Do
Begin
bil := (i mod j); {i dibagi j dicek apakah 0}
If bil = 0 then Prima[i]:=0;
{jika habis dibagi,berarti bkn prima}
End;
If Prima[i]<> 0 Then Write(Prima[i],' ');
{cetak array yg prima}
End;
Readln;
End.
Array 2 dimensi mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama
menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik.
program Project1;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Var Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
Tabel[1,1]:=1;
Tabel[1,2]:=2;
Tabel[2,1]:=3;
Tabel[2,2]:=4;
Tabel[3,1]:=5;
Tabel[3,2]:=6;
For I := 1 to 3 Do
Begin
For J:= 1 to 2 Do
Begin
Writeln('Elemen ',i,',',j,'= ',tabel[i,j]);
End;
End;
Readln;
Contoh Program Penjumlahan Matrik dengan menggunakan Array 2 dimensi:
program Project1;
{$APPTYPE CONSOLE}
Uses
SysUtils;
Var Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
Writeln(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Begin
Write('Elemen baris -',i,' Kolom -',j,'= ');
Readln(matrik1[i,j]);
End;
End;
Writeln('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write('Elemen baris -',i,' kolom -',j,'= ');
Readln(matrik2[i,j]);
End;
End;
{proses penjumlahan matrik}
For i := 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End;
End;
{proses cetak hasil}
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Begin
Write(Hasil[i,j]:6);
End;
Writeln;
End;
Readln;
End.
Jika matriks Am x n dan matriks Bp x q dikalikan, maka :
•Banyaknya kolom matriks A harus sama dengan banyaknya kolom matriks B,
sehingga n = p
•Matriks hasil perkalian antara A dan B adalah matriks dengan ordo m x q
•Perkalian dilakukan dengan menjumlahkan hasil kali setiap elemen baris matriks A
dengan setiap elemen kolom matriks B yang sesuai
Perkalian dua buah matriks Am x n dan matriks Bp x q
program Project1;
{$APPTYPE CONSOLE}
Uses
SysUtils; Var a,b,c : array [1..50,1..50] of integer;
i,j,k,m,n,q : integer;
begin
writeln('Ukuran matrix A');
write('Baris : '); readln(m);
write('Kolom : '); readln(n);
writeln; writeln;
writeln('Ukuran matrix B');
writeln('Baris : ',n);
write('Kolom : '); readln(q);
for i:=1 to m do
for j:=1 to n do
begin
write('Elemen A[',i,',',j,'] : ');
readln(a[i,j]);
end;
writeln;
for i:=1 to n do
for j:=1 to q do
begin
write('Elemen B[',i,',',j,'] : ');
readln(b[i,j]);
end;
for i:=1 to m do
for j:=1 to q do
for k:=1 to n do
c[i,j] := c[i,j] + a[i,k]*b[k,j];
writeln; writeln;
writeln('Hasil perkalian Matrix A dan Matrix B adalah : ');
Writeln;
for i:=1 to m do
begin
for j:=1 to q do
write(c[i,j],' ');
writeln;
end;
writeln;
readln;
end.