Array

ARRAY


WHAT IS ARRAY?
Array (larik) adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut. 
Tipe Array dapat ditulis sebagai berikut:
Array [Indeks_1,…,Indeks_n] of  Tipe_Dasar
Contoh :
Var Nilai: Array [1..10] of integer;

BAGAIMANA MENDEKLARASIKAN ARRAY?
Mendeklarasikan array seperti :
  x   : Array[3..10] of Integer;   
{elemennya x[3], x[4], x[5], …, x[10]}
  idx : Array['A'..'Z'] of Integer;
  a   : Array['a'..'z'] of Byte;
  n   : Array[byte] of Integer;
{ The same as array[0..255] of integer; }

KEUNGGUALAN ARRAY
Misalnya saya punya permasalahan menjumlahkan total nilai dari 10 variabel. Jika tanpa array maka sintaxnya seperti ini:
Total := Nilai1+ Nilai2+ Nilai3+ Nilai4+ Nilai5+Nilai6+  Nilai7+Nilai8+Nilai9+Nilai10; 
Tapi kalau pakai array sintaknya cukup seperti ini: 
total := 0; 
for i:= 1 to 10 do total := total + nilai[i];

ARRAY SATU DIMENSI
Array berdimensi satu adalah array yang memiliki tipe indeks hanya satu buah. Deklarasi Variabel Dengan Tipe Array Berdimensi Satu:
var  x : array[1..10] of  Integer;
Untuk menyimpan suatu nilai kedalam lokasi array, dapat dilakukan dengan instruksi :
      n[i]:=nilai; aau readln(n[i]);  
Sedangkan untuk menampilkan nilai yang ada di salah satu elemen array dapat dengan cara:
      writeln(nilai[i]);       
Contoh array satu dimensi seperti ini:

program bilangan_prima_antara_1_sd_n;
uses wincrt;
var
   batas : real;
   n:integer;
   i,j,jumlah :word;
   prima: array[1..1000] of char;
begin
write('bilangan prima antara 1 sampai dengan ');  read (n);
     writeln('------------------------------------');
     batas:=sqrt(n);
     jumlah:=0;
     writeln;
     for i:=2 to n do
     begin
          if prima[i]<>'*' then
          begin
               write(i:5);
               jumlah:=jumlah+1;
               if i<batas then
          begin
               j:=i;
               while j<n do
               begin
                    j:=j+i;
                    prima[j] := '*';
               end;
          end;
     end;
     end;
writeln;
writeln;
writeln;
writeln('ada sejumlah  ',jumlah, ' bilangan prima');
end.

Contohnya, kita ingin tahu berapa banyak bilangan prima antara angka 1 sampai dengan 100. Maka hasil outpunya akan seperti ini



ARRAY MULTI DIMENSI
Array multi dimensi merupakan array dengan ciri memiliki tipe indeks lebih dari satu.  Deklarasi variabel dengan tipe array berdimensi dua:
var  y : array[1..5,1..10] of  Integer;
Untuk menyimpan suatu nilai kedalam lokasi array, dapat dilakukan dengan instruksi :
      n[i,j]:=nilai;
readln(n[i,j]);
Sedangkan untuk menampilkan nilai yang ada di salah satu elemen array dapat dengan cara:
      writeln(n[i,j]);    

Contoh dari penggunaan array dua dimensi adalah pada perhitungan matrik.
Contoh programnya seperti ini:

program matriks_transpose;
uses wincrt;
var
bar,col,i,j:integer;
a,b:array[1..20,1..20] of real;
begin
write ('baris yang diinginkan?'); readln (bar);
write ('colom yang diinginkan?');readln (col);
for i:=1 to bar do
begin
for j:=1 to col do
begin
readln (a[i,j]);
end;
end;
writeln('matriks aslinya adalah:');
for i:=1 to bar do
begin
for j:=1 to col do
begin
write (a[i,j]:0:0,' ');
end;
writeln;
end;
writeln ('matriks transposenya adalah:');
for i:=1 to col do
begin
for j:=1 to bar do
begin
b[i,j]:=a[j,i];
end;
end;
for i:=1 to col do
begin
for j:=1 to bar do
begin;
write (b[i,j]:0:0,' ');
end;
writeln;
end;
end.

Dan hasilnya seperti ini



Sudah mengerti kan? Silahkan dicoba sendiri...  (^,^)

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Read Comments

0 komentar:

Posting Komentar