ARRAY  
  
Array  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.

Contoh:
Var
          Untai : array[1..50] of Integer;

Pada contoh Array dengan nama untai telah  dideklarasikan dengan tipe integer, dengan
jumlah elemen maksimum 50 elemen, nilai dari elemen array tersebut diatas harus bertipe
integer.
         
Cepat Mahir Bahasa Pascal
Alwin sanjaya

1Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

Contoh Program  :

Program Contoh_Array_Input;
Uses Crt;
Var
           Bilangan : array[1..50] of Integer;
              Begin
               ClrScr;
                   Bilangan[1]:=3;
                   Bilangan[2]:=29;
                   Bilangan[3]:=30;
                   Bilangan[4]:=31;
                   Bilangan[5]:=23;
                 Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);
                Readln;
               End.

Array juga dapat dideklarasikan bersama dengan tipe yang beragam seperti contoh dibawah
ini :

Program Contoh_Deklarasi_Array_Beragam;
Uses Crt;
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]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
                End;
             Readln;
            End.

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :

Type 
      Angka = String[20];
Var
         Nama : Array [1..50] of Angka;
         Begin
           .
           .
         End.
          
Deklarasi tipe indeks subrange integer Indeks pada array dapat  tipe skalar atau subrange, 
tetapi tidak bisa real.

Contoh:

Var
    Nilai : Array[1..10] of Integer;

pada contoh ini array nilai mempunyai 10  buah elemen yaitu dari 1 sampai 10. Array
tersebut dapat dideklarasikan dengan type seperti berikut ini  :

Type 
    Skala = 1..10;
         Var
             Nilai   : Array [skala] of Integer;

         atau :

Type 
    Skala = 1..10;
           Y      = Array[skala] of Integer;
Var
            Nilai :  Y;

         atau :

Type 
       Y     = Array[1..10] of Integer;
Var
              Nilai : Y;   

Const
            Atas     =1;
            Bawah = 5;
type
           Y = Array[Atas..Bawah] of Integer;
Var
Nilai : Y;


I. Deklarasi Type Indeks Skalar

Indeks dari larik dapat berupa tipe skalar.

Contoh. :
Program Deklarasi_Indeks_Array_Skalar;
Uses Crt;
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.

dapat juga ditulis :

type
      Bln = (jan,feb,mar,apr,mei);
Var
      Jum : Array[bln] of Integer;

atau :

type
       Bln =(jan,feb,mar,apr,mei);
Var
       Jum : Array[jan..mei] of Integer;


Cepat Mahir Bahasa Pascal
Alwin sanjaya

4Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


II. Deklarasi Konstanta Array

Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi
variabel, tetapi dapat juga berupa konstanta (const).

Contoh Program :

Program Contoh_Deklarasi_Array_Konstan;
Uses Crt;
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.

konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.

Contoh Program :

Program Contoh_Konstan_Array_Char_;
Uses Crt;
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.

Konstanta array dapat juga berupa string seperti berikut ini.

Contoh Program :

Program Constanta_Array_String;
Uses Crt;
Type
             A     = Array [1..5] of String;
Cepat Mahir Bahasa Pascal
Alwin sanjaya

5Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

Const
             Nama : A = ('basic','pascal','cobol','paradox','dbase');
Var
             i : Integer;
Begin
             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 Program :

Program String_Adalah_Array_Tipe_Char;
Uses Crt;
Var
             Nama : string;
             i : Integer;
              Begin
                  Nama:='Turbo 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.

Contoh program :
Program Mencari_Bilangan_Prima_Dengan_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;
Cepat Mahir Bahasa Pascal
Alwin sanjaya

6Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

                If Prima[i]<> 0 Then Write(Prima[i],' ');   {*cetak array yg prima*}
             End;
          Readln;
          End.

Contoh pengurutan data dengan metode buble  sort, yaitu dengan cara penukaran, dapat
dilihat pada contoh dibawah ini :
Contoh Program :

Program Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Uses Crt;
Var
           nil1 : Array[1..100] of Integer;
           n,i,j,dum : Integer;
              Begin
              ClrScr;
                Write('mau isi berapa data acak (integer) ='); readln(n);
                  For i := 1 to n Do
                   Begin
                         Write('Data Ke ',i,':');Readln(nil1[i]);
                    End;

             {* penyapuan proses}
             for i:= 1 to n-1 do
                begin
                for j:= i to n do
                  begin
                   if nil1[j]<nil1[i] then
                    begin
                      dum:=nil1[j];
                      nil1[j]:=nil1[i];
                      nil1[i]:=dum;
                     end;
                end;
          end;
           writeln;
           writeln('Hasil Sortir');
           for i := 1 to n do
            write(nil1[i]:3);
          readln;
          end.




Cepat Mahir Bahasa Pascal
Alwin sanjaya

7Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com


III. Array Dua Dimensi

Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi
banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. 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.
                  1    2
              1
              2
              3

Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat
pada listing program dibawah ini .
         
Contoh Program:

Program Deklarasi_Array_Dua_Dimensi;
Uses Crt;
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;
              Readln;
End.





Cepat Mahir Bahasa Pascal
Alwin sanjaya

8Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com



IV. Alternatif  Deklarasi Array Dua Dimensi.

Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat
dilihat dibawah ini :

Contoh :

Var
     Tabel : Array[1..3] of Array[1..2] of Byte;

         atau :

Type
      Matrik = Array[1..3,1..2] of Byte;
Var
      Tabel    : Matrik;

         atau :

Type
        Baris    = 1..3;
        Kolom  = 1..2;
        Matrik  = Array[Baris,Kolom] of Byte;
Var
Tabel     : Matrik;

         atau :

Type
         Baris = 1..3;
         Kolom=1..2;
         Matrik= Array[Baris] of Array[Kolom] of Byte;
Var
            Tabel   : Matrik;

Dibawah ini akan diberikan listing program penggunaan array dua dimensi dalam aplikasi
penjumlahan matrik :

Contoh Prorgam:

Program Penjumlahan_Matrik;
Uses Crt;
Cepat Mahir Bahasa Pascal
Alwin sanjaya

9Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

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;
           {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;
            {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.
Cepat Mahir Bahasa Pascal
Alwin sanjaya

10Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com



V. Array Sebagai Parameter

Array dapat digunakan sebagai parameter yang dikirimkan baik secara nilai (by value) atau
secara acuan (by reference) ke procedure atau ke function. Procedure yang menggunakan
parameter berupa array harus dideklarasikan di dalam judul procedure yang menyebutkan 
parameternya bertipe array.
         
Contoh Program :

Program Contoh_Pengiriman_Parameter_Array_Di_Procedure;
Uses Crt;
Const
Garis ='---------------------------------------------------';
Type
             Untai   = Array[1..10] of String[15];
             Bulat   = Array[1..10] of Integer;
             Huruf   = Array[1..10] of Char;
Var
             i,Banyak   : Integer;

Procedure  Proses(Nama:Untai;Nilai:Bulat);
Var
              Ket   : String;
              Abjad : Char;
Begin
             Writeln(Garis);
             Writeln('Nama             Nilai      Abjad     Keterangan');
             Writeln(Garis);
               For i := 1 to Banyak Do
           Begin
             If Nilai[i] > 90 Then
               Begin
                  Abjad:='A';
                   Ket  :='Istimewa';
               End;
             If (Nilai[i]<90) And (Nilai[i]>70) Then
                Begin
                   Abjad:='B';
                   Ket  :='Memuaskan';
                End;
             If (Nilai[i]<70) And (Nilai[i]>60) Then
                Begin
Cepat Mahir Bahasa Pascal
Alwin sanjaya

11Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

                   Abjad:='C';
                   Ket :='Cukup';
                End;
             If (Nilai[i]<60) And (Nilai[i]>45) Then
                Begin
                   Abjad:='D';
                   Ket :='Kurang';
                End;
             If Nilai[i]< 45 Then
               Begin
                      Abjad:='E';
                     Ket  :='Sangat kurang';
               End;
             Writeln(Nama[i]:15,' ',Nilai[i]:4,'    ',Abjad,'   ',Ket:15);
            End;
                 Writeln(Garis);
End;

Procedure Masuk_Data;
Var
Nama  : Untai;
              Nilai : Bulat;
Begin
              Write('Banyak data =');Readln(Banyak);
               For i:= 1 to Banyak Do
                Begin
             ClrScr;
               Writeln('Data ke - ',i);
               Write('Nama =');readln(Nama[i]);
               Write('Nilai =');readln(Nilai[i]);
                End;
Proses(Nama,Nilai);
End;

{modul Utama}
Begin
         Masuk_Data;
                Readln;
End.


Referensi :
# Lepkom Universitas Gunadarma.
# Dasar-dasar Pemrograman Pascal, Teori dan Program terapan , Ir.P. Insap Santosa, M.Sc.
Cepat Mahir Bahasa Pascal
Alwin sanjaya

12Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com

 
Cepat Mahir Bahasa Pascal
Alwin sanjaya

13

0 comments