Friday, February 17, 2012

Arrays

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