Translate

Wednesday, April 24, 2013

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:

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.

Contoh Algoritma :

Algoritma  Contoh_Array_Input;
Deklarasi
Bilangan : array[1..5] of Integer;

Deskripsi
Bilangan[1]:=3;
Bilangan[2]:=29;
Bilangan[3]:=30;
Bilangan[4]:=31;
Bilangan[5]:=23;
Write('nilai varibel bilangan ke 3 =',Bilangan[3]);

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

Algoritma Contoh_Deklarasi_Array_Beragam;
Deklarasi
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;
Deskripsi
Write('Isi berapa data array yang diperlukan’)  Read(banyak);
For i := 1 to banyak Do
Write('NPM =');Readln(NPM[i]);
Write('Nama =');readln(Nama[i]);
Write('Nilai=');readln(Nilai[i]);
Write('Umur =');readln(Umur[i]);
End for;
{cetak varibel array}
Write('NPM NAMA NILAI UMUR ');
For i:= 1 to banyak Do
Writeln(Npm[i]:10,Nama[i]:25,Nilai[i]:3:2,' ',Umur[i]:3);
End for;

Untuk deklarasi array dapat digunakan beberapa cara seperti berikut ini :

Type
Angka = String[20];
Deklarasi
Nama : Array [1..50] of Angka;
Deskripsi
.
.
.

Deklarasi tipe indeks subrange integer Indeks pada array dapat tipe skalar atau subrange, tetapi tidak bisa real.
Contoh:

Deklarasi
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 :


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

atau :

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

atau :

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

atau :

Deklarasi
Const
Atas =1;
Bawah = 5;
type
Y = Array[Atas..Bawah] of Integer;

Nilai : Y;

I. Deklarasi Type Indeks Skalar

Indeks dari larik dapat berupa tipe skalar.
Contoh:
Algortima indeks_Array_Skalar;
Deklarasi
Jum : Array[(jan,feb,mar,apr,mei)] of Integer;
Deskripsi
Jum[jan]:=25;
Jum[feb]:=45;
Jum[mar]:=21;
Jum[apr]:=23;
Jum[mei]:=50;
Writeln('Jumlah nilai bulan maret =',Jum[mar]);
 
dapat juga ditulis :

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

atau :



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

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 :
Algortimat  Contoh_Deklarasi_Array_Konstan;
Deklarasi
Const
Tetap : Array[1..4] of Integer=(7,10,21,20);
i : Integer;
Deskripsi
For i:= 1 to 4 Do
Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);

konstanta array dapat juga berupa ketetapan dalam bentuk karakter seperti berikut.
Contoh :
Algoriritma Contoh_Konstan_Array_Char_;
Deklarasi
Huruf : Array[0..5] of Char=('A','B','C','D','E','F');
i : Integer;

Deskripsi
For i:= 0 to 5 Do
Write('Nilai konstan array ke',i:2,' = ',Huruf[i]);

Konstanta array dapat juga berupa string seperti berikut ini.
Contoh algoritma :
Algortima Constanta_Array_String;
Deklarasi
A = Array [1..5] of String;
Const
Nama : A = ('basic','pascal','cobol','paradox','dbase');
i : Integer;
Deskripsi
For i:= 1 to 5 Do
Writeln('Nilai Array ke-',i:2,'= ',Nama[i]);

Dalam Algoritma, string merupakan array dari elemen- elemen karakter seperti berikut :
Contoh Algortima :
Algoritma String_Adalah_Array_Tipe_Char;
Deklarasi
Nama : string;
i : Integer;

Nama:='Turbo Pascal';
For i:= 1 to Length(nama) Do
Write('Elemen ',i,' dari ',Nama,'= ',Nama[i]);

contoh algoritma bilangan prima dengan menggunakan bantuan array.
Contoh Algortima :
Algoritma Mencari_Bilangan_Prima_Dengan_Array;
Deklarasi
Prima : Array[1..100] of Integer;
i,j : Integer;
bil : Integer;
Deskripsi
For i := 2 to 100 Do
Prima[i]:=i;
For j:= 2 to i-1 Do
bil := (i mod j); {* i dibagi j dicek apakah 0*}
If bil = 0 then Prima[i]:=0; {*jika habis dibagi,berarti bkn prima*}
Endif;
Prima[i]<> 0 Then Write(Prima[i],' ');
{*cetak array yg prima*}


Contoh pengurutan data dengan metode buble sort, yaitu dengan cara penukaran, dapat dilihat pada contoh dibawah ini :
Contoh  algoritma:
Algoritma Penggunaan_Array_Untuk_Sortir_Buble_Sort;
Deklarasi
nil1 : Array[1..100] of Integer;
n,i,j,dum : Integer;
Deskripsi
Write('mau isi berapa data acak (integer) ='); readln(n);
For i := 1 to n Do
Write('Data Ke ',i,':');Read(nil1[i]);
{* penyapuan proses}
for i:= 1 to n-1 do
for j:= i to n do
if nil1[j] then
dum:=nil1[j];
nil1[j]:=nil1[i];
nil1[i]:=dum;
endfor
endfor
endif
write('Hasil Sortir');
for i := 1 to n do
write(nil1[i]:3);
end.


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 Algoritma:
Algoritma Deklarasi_Array_Dua_Dimensi;
Deklarasi
Tabel : Array[1..3,1..2] of Integer;
i,j : Integer;
Deskripsi
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
For J:= 1 to 2 Do
Write('Elemen ',i,',',j,'= ',tabel[i,j]);
End for
End for


IV. Alternatif Deklarasi Array Dua Dimensi.
Ada beberapa cara dalam mendeklarasikan array dua dimensi, beberapa cara tersebut dapat dilihat dibawah ini :
Contoh :
Deklarasi
Tabel : Array[1..3] of Array[1..2] of Byte;

atau :

Deklarasi
Type
Matrik = Array[1..3,1..2] of Byte;

Tabel : Matrik;

atau :

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

atau :

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

Dibawah ini akan diberikan Algortima penggunaan array dua dimensi dalam aplikasi penjumlahan matrik :
Contoh algoritma:
algoritma Penjumlahan_Matrik;
Deklarasi
Matrik1,Matrik2, Hasil : Array[1..3,1..2] : Integer;
i,j : Integer;
Deklarasi
{ input matrik ke satu }
Write(' Elemen matrik satu');
For i := 1 to 3 Do
Begin
For j := 1 to 2 Do
Write('Elemen baris -',i,' Kolom -',j,'= ');
Read(matrik1[i,j]);
End for
End for 
{input matrik ke dua}
Write('input elemen matrik dua');
For i:= 1 to 3 Do
Begin
For j:= 1 to 2 Do
Write('Elemen baris -',i,' kolom -',j,'= ');
Read(matrik2[i,j]);
End for;
End for;
{proses penjumlahan tiap elemen}
For i := 1 to 3 Do
For j:= 1 to 2 Do
Hasil[i,j]:=Matrik1[i,j]+Matrik2[i,j];
End for;
End for;
{proses cetak hasil}
For i:= 1 to 3 Do
For j:= 1 to 2 Do
Write(Hasil[i,j]:6);
End for
End for
 

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 Algortima :
Algoritma  Contoh_Pengiriman_Parameter_Array;
Deklarasi
Const
Garis ='---------------------------------------------------';
Type
Untai = Array[1..10] of String[15];
Bulat = Array[1..10] of Integer;
Huruf = Array[1..10] of Char;
i,Banyak : Integer;
Procedure Proses(Nama:Untai;Nilai:Bulat);
deklarasi
Ket : String;
Abjad : Char;
Deskripsi
Write(Garis);
Write('Nama Nilai Abjad Keterangan');
Write(Garis);
For i := 1 to Banyak Do
If Nilai[i] > 90 Then
Abjad:='A';
Ket :='Istimewa';
Endif
If (Nilai[i]<90) And (Nilai[i]>70) Then
Abjad:='B';
Ket :='Memuaskan';
End if
If (Nilai[i]<70) And (Nilai[i]>60) Then
Abjad:='C';
Ket :='Cukup';
End if
If (Nilai[i]<60) And (Nilai[i]>45) Then
Abjad:='D';
Ket :='Kurang';
Endif;
If Nilai[i]< 45 Then
Begin
Abjad:='E';
Ket :='Sangat kurang';
Endif
Write(Nama[i]:15,' ',Nilai[i]:4,' ',Abjad,' ',Ket:15);
Write(Garis);
deskripsi
Procedure Masuk_Data;
Deklarasi
Nama : Untai;
Nilai : Bulat;
Read(Banyak);
For i:= 1 to Banyak Do
Deskripsi
Write('Data ke - ',i);
Write('Nama ='nama[i]);
Write('Nilai ='Nilai[i])

Proses(Nama,Nilai);
Masuk_Data;
 

No comments:

Post a Comment