disini.

advertisement
Array ( Larik )
Array Satu Dimensi
Array Dua Dimensi
Oleh : Oman Somantri, S.Kom
Email : oman_mantri@yahoo.com
Array Satu Dimensi
Array adalah sekumpulan data yang bertipe sama, yang
anggota-anggotanya dapat diakses berdasarkan nomor
indeks.
Misalnya ada 26 huruf, kita sebut saja array Abjad,
adalah sekumpulan 26 buah karakter yang berisi namanama abjad latin. Anggota pertama adalah ‘A’, anggota
kedua adalah ‘B’ dan seterusnya hingga anggota ke 26
adalah ‘Z’.
• Dalam notasi algoritma kita tuliskan :
Abjad : array [1..26] of character
Pemberian nilainya bisa dilakukan dengan cara,
pertama pengisian satu-satu berdasarkan nomor
indeks :
Abjad [1]  ‘A’
Abjad [2]  ‘B’ dst sampai Abjad [26]  ‘Z’
• Dalam notasi algoritma , indeks array dimulai dari 1,
artinya jika kita punya array dengan 26 anggota,
indeksnya mulai dari 1,2,3…sampai 26.
• Berikut penulisan array dengan menggunakan
turbo Pascal:
Abjad : array [1..26] of char;
Contoh pemberian nilai untuk array diatas
dengan menggunakan bahasa Pascal adalah :
Abjad [1] := ‘A’;
Abjad [2] := ‘B’ dst sampai Abjad [26] := ‘Z’
Contoh 1.1
Program Nama_array;
Uses winrt;
Type
nameType = String[50];
ageType = 0..150; { age range: from 0 to 150 }
Var
name : nameType;
age : ageType;
Begin
Write('Enter your name: ');
Readln(name);
Write('Enter your age: ');
Readln(age);
Writeln;
Writeln('Your name:', name);
Writeln('Your age :', age);
Readln;
End.
Program P002;
uses wincrt;
var
abjad : array [1..50] of char;
i,maks : integer;
begin
clrscr;
write ('Masukan jumlah data karakter : ');
readln(maks);
for i:=1 to maks do
begin
write ('Masukan karakter ke ',i,' : ');
readln(abjad[i]);
end;
write ('Karakter yang dinput : ');
for i:=1 to maks do
begin
write (abjad[i],’ ‘);
end;
readln;
end.
Contoh 1.2
Program P003;
uses wincrt;
var angka:array [1..50] of integer;
i,maks:integer;
begin
clrscr;
write ('Masukan jumlah data : ');
readln(maks);
for i:=1 to maks do
begin
write ('Masukan angka ke ',i,' : ');
readln(angka[i]);
end;
write ('Angka yang dinput : ');
for i:=1 to maks do
begin
write(angka[i]);
end;
readln;
end.
Contoh 1.3
Program Contoh_Deklarasi_Array_Beragam;
Contoh 1.4
Uses winCrt;
Var
NPM
:array[1..20] of string[10];
Nama :array[1..20] of string[25];
Nilai
: array[ 1. .20] of real;
Umur : array[1 . .20] of byte;
banyak,i : integer;
Begin
ClrScr;
Write('Isi berapa data array yang diperlukan :');
Readln(banyak);
For i := 1 to banyak Do
Begin
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End;
{cetak varibel array}
Writeln('NPM
NAMA
NILAI UMUR ');
For i:= 1 to banyak Do
Begin
Writeln(Npm[i]:1 0,Nama[i] :25,Nilai[i] :3:2,' ',Umur[i] :3); End;
Readln;
End.
Studi Kasus :
Buat sebuah program perhitungan nilai akhir 5 orang mahasiswa ?
Input : nama, tugas, quiz, uts, dan uas
Proses : nilai = 10%*tugas + 20%*quiz + 30%*uts+ 40%*uas.
Output : nama, dan nilai ditampilan menurut index
Program Studi_Kasus;
Jawaban.
Uses wincrt;
Var Nama:array[1..5]of string;
I,Tugas,Quiz,UTS,UAS:integer;
Nilai:array[1..5]of real;
Begin
for I:=1 to 5 do
begin
Clrscr;
write('Masukan Nama : ');readln(Nama[I]);
write('Masukan Tugas : ');readln(Tugas);
write('Masukan Quis : ');readln(Quiz);
write('Masukan UTS
: ');readln(UTS);
write('Masukan UAS
: ');readln(UAS);
Nilai[I]:=0.1*Tugas+0.2*Quiz+0.3*UTS+0.4*UAS;
end;
Clrscr;
for I:=1 to 5 do
writeln('Nama
: ',Nama[I],' mendapat nilai
:',nilai[i]
:5:2);
readln;
End.
Array Dua Dimensi
Di dalam pascal Array dapat berdimensi lebih dari satu
yang disebut dengan array dimensi banyak
(Multidimensional array).
Array 2 dimensi dapat mewakili suatu bentuk tabel atau
matrik, yaitu indeks pertama menunjukkan baris dan
indeks ke dua menunjukkan kolom dari tabel atau
matrik.
Contoh Bentuk Tampilan
Let us have the 2 dimensional array defined first. Think of a
grid where each box is located by using horizontal and vertical
coordinates just in the example below:
1
2
3
4
5
2
3
3,4
4
5
5,3
An example of a 5 by 5 2D array illustrated on a grid
Having the vertical axis as the 1st dimension and the horizontal one as the 2nd
dimension, the above example is illustrated as follows:
Var
my2DArray : Array[1..3][1..5] of Byte;
Begin
my2DArray[2][4] := 10;
End.
1
2
3
2
3
4
10
5
Program Deklarasi_Array_Dua_Dimensi;
Uses Wincrt;
Var
Tabel : Array [1..3, 1..2] of Integer;
i,j
: Integer;
Begin
ClrScr;
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;
End.
Contoh 2.1
Program penjumlahan_matrik;
Contoh 2.2
Uses Wincrt;
Var
Matrik1,Matrik2, Hasil : Array[1..3,1..2] of Integer;
i,j : Integer;
Begin
ClrScr;
{ input matrik ke satu }
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;
Contoh 2.2 cont…
{input matrik ke dua}
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;
Contoh 2.2 cont…
{proses penjumlahan tiap elemen}
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.
Contoh 2.2 cont…
SEKIAN
Download