Array adalah salah satu tipe data terstruktur. Array terdiri dari sekumpulan variabel bertipe sama yang direferensikan menggunakan nama yang sama.
Cara mendeklarasikan:
[nama array] : array [[indeks awal] .. [indeks akhir]] of [tipe data]
Contoh:
var
Physics : array [1 .. 20] of integer;
Dari contoh di atas, kita dapat membayangkan bahwa kita sekarang memiliki variable yang kira-kira dapat divisualisasikan seperti ini:
Berarti kita sekarang memiliki PHYSICS sebagai array of integer yang memiliki 20 elemen integer.
Cara assignment value ke array:
[nama variabel array] := [value];
Mengapa harus menggunakan array?
Bandingkan kedua program ini:
//Array_1
//Membaca 20 buah bilangan berbeda dan mencetaknya kembali secara terbalik (reversed)
var
a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 : integer;
a11,a12,a13,a14,a15,a16,a17,a18,a19,a20 : integer;
begin
read(a1);
read(a2);
read(a3);
...
//dst, lanjutkan sampai a20
writeln(a20);
writeln(a19);
writeln(a18);
...
//dst, lanjutkan sampai a1
end.
//Array_2
//Membaca 20 buah bilangan berbeda dan mencetaknya kembali secara terbalik (reversed)
var
a : array [1..20] of integer;
i : integer; //pointer
begin
for i:=1 to 20 do
read(a[i]);
for i:=20 downto 1 do
writeln(a[i]);
end.
Input:
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
Kedua program melakukan pekerjaan yang serupa, namun, program kedua lebih simpel dan mudah dan enak dilihat, karena menggunakan array.
Contoh problem:
Kita akan mencari integer maksimum (paling besar) dalam array dan posisinya dalam array.
var
arr : array [1..10] of integer;
i,max,maxpos : integer; // max untuk nilai maksimal,
begin // maxpos untuk posisi nilai tersebut.
writeln('Tulis 10 integer satu per satu:');
for i := 1 to 10 do
read(arr[i]);
max := arr[1]; // anggap nilai pada arr[1] maksimal
maxpos := 1;
for i := 2 to 10 do
if (arr[i]>max) then
begin
max := arr[i];
maxpos := i;
end;
writeln('Integer terbesar: ',max,', bertempat di arr[',maxpos,']');
end.
Jalankan program di atas.
No comments:
Post a Comment