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:
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 :
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 :
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 :
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
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 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;
Skala = 1..10;
Nilai : Array [skala] of Integer;
atau
:
Deklarasi
Type
Skala = 1..10;
Y = Array[skala] of Integer;
Nilai : Y;
Skala = 1..10;
Y = Array[skala] of Integer;
Nilai : Y;
atau
:
Deklarasi
Type
Y = Array[1..10] of Integer;
Var
Nilai : Y;
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
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
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 :
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;
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
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]);
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
Contoh :
Algoriritma Contoh_Konstan_Array_Char_;
Deklarasi
Huruf
: Array[0..5] of Char=('A','B','C','D','E','F');
i : Integer;
i : Integer;
Deskripsi
For
i:= 0 to 5 Do
Write('Nilai konstan array ke',i:2,' = ',Huruf[i]);
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
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]);
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
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
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
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],' ');
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
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
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
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
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
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
Contoh Algoritma:
Algoritma Deklarasi_Array_Dua_Dimensi;
Deklarasi
Tabel
: Array[1..3,1..2] of Integer;
i,j : Integer;
Deskripsi
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
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;
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;
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;
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;
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
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
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
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
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
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;
Write('Nama ='nama[i]);
Write('Nilai ='Nilai[i])
Proses(Nama,Nilai);
Masuk_Data;
No comments:
Post a Comment