๐ Daftar Isi
Konsep Array (Larik)
Array adalah suatu tipe data yang terdiri dari kumpulan tipe data lain. Daripada membuat 10 variabel yang terdiri dari nama1, nama2, nama3, dst, akan lebih efisien jika variabel nama ini disimpan ke dalam array.
Misalkan kita ingin membuat suatu deretan record dari mahasiswa perguruan tinggi, data tersebut dapat berjumlah ratusan-ribuan. Untuk memudahkannya, diperlukan struktur data yang memudahkan dalam mengumpulkan data yang sejenis tersebut. Sehingga data yang cocok akan seperti:
Mahasiswa[1]
Mahasiswa[2]
Mahasiswa[3]
...
Array adalah sekumpulan variabel yang memiliki tipe data yang sama dan dinyatakan dengan nama yang sama. Array merupakan konsep yang penting dalam pemrogaman, karena array memungkinkan untuk menyimpan data maupun referensi objek dalam jumlah banyak dan terindeks. Array menggunakan indeks integer untuk menentukan urutan elemen elemennya, dalam Pascal elemen pertamanya dimulai dari indeks 1, elemen kedua memiliki indeks 2, dan seterusnya. Dengan kata lain, array adalah variabel yang dapat menampung sejumlah data dengan tipe dan nama sama tetapi ditandai dengan suatu indeks pada masing masing elemennya.
Mendeklarasikan Variabel Array
Mendeklarasikan variabel array dengan tipe data yang diinginkan dengan cara yang hampir sama dengan variabel biasa. Misalnya untuk mendeklarasikan variabel bertipe integer dapat dilakukan dengan cara :
x : array [1..10] of integer;
dengan keterangan:
- x = Nama array
- [1..10] = Definisi panjang array (indeks)
- integer = Tipe data
Jadi perbedaan utama pendeklarasian variabel array dengan variabel biasa adalah adanya array + tanda kurung [ ] + tipe datanya.
Mendefinisikan Array
Dengan adanya pendefinisian panjang array (yang berada dalam [ ]), berarti Array memiliki ukuran yang tetap dalam arti tidak dapat membesar atau mengecil ukurannya setelah didefinisikan. Setelah didefinisikan , maka variabel dengan nama array dapat menyimpan sebanyak nilai yang berada dalam [ ]. Contoh yang sebelumnya , berarti terdapat 10 angka x yang bertipe integer yang dapat diakses melalui indeks 1 s.d 10.
Pada masing masing elemen x hanya menampung satu nilai integer. Setelah pendefinisian array, maka memori akan dialokasikan untuk menyimpan data dari array. Besar memori yang dialokasikan tergantung dari tipe data variabel array dan jumlah elemen array yang didefinisikan.
Perbandingan Tanpa dan Dengan Array
Misalnya kita akan menjumlahkan total nilai dari variabel tersebut tanpa array maka dapat ditulis
Total:=0;
Total:=x1+x2+x3+x4+x5+x6+x7+x8+x9+x10;
Dan kalau memakai array
Total:=0;
for i:=1 to 10 do
total:=total+nilai[i];
Bagaimana kalau terdapat 100 elemen? Mudah disimpulkan bahwa akan lebih ringkas dengan menggunakan array.
Array juga dapat digunakan pada loop for/while/repeat dengan menggunakan variabel indeks . Variabel penghitung harus berjenis ordinal misalnya integer atau char, sesuai dengan nilai nilai yang tercantum pada definisi array yang bersangkutan , seperti
array1 : array[1..10] of integer;
array2 : array[-20..8] of real;
array3 : array['a'..'z'] of char;
Contoh Program Array
Contoh 1
Program berikut akan menerima inputan dari user, yang kemudian inputan user tersebut akan disimpan dalam bentuk array x[i]. Proses terakhir, program akan menampilkan isi dari array x[i].
program contoharray;
uses crt;
var
x:array[1..100] of integer;
n,i:integer;
begin
writeln('Ini adalah contoh program aray');
writeln('==============================');
writeln;
write('Silakan input banyak data : ');readln(n);
writeln;
for i:=1 to n do
readln(x[i]);
writeln;
write('Data yang telah dimasukkan :');
for i:=1 to n do
write(x[i],' ');
readln;
end.
Contoh output:
Contoh 2
Program berikut akan menerima inputan dari user, yang kemudian inputan user tersebut akan disimpan dalam bentuk array x[i]. Proses terakhir, program mencari nilai max, min, mean, standar deviasi, dan median.
program contoharraylain;
var
x: array [1..100] of integer;
n,i,max,min,tot,pos:integer;
rt,sdt,sd,md:real;
begin
writeln('Program Array');
writeln('=============');
writeln;
write('Masukkan Jumlah Data (Data harus Urut ): ');readln(n);
writeln;
for i:= 1 to n do
readln(x[i]);
writeln;
Write('Data Yang Telah Dimasukkan : ');
max:=x[1];
min:=x[1];
tot:=0;
sdt:=0;
for i:= 1 to n do
begin
write(x[i],' ');
if (max<x[i]) then
max:=x[i]
else
min:=x[i];
tot:= tot+x[i];
end;
rt:=tot/n;
for i:= 1 to n do
begin
sdt:=sdt+sqr(x[i]-rt);
end;
sd:=sqrt(sdt/(n-1));
if (n mod 2 = 1) then
begin
pos:=(n div 2)+1;
md:=x[pos];
end
else
begin
pos:=(n div 2);
md:=(x[pos]+x[pos+1])/2;
end;
writeln;
writeln('Nilai Maximal : ',max);
writeln('Nilai Minimal : ',min);
writeln('Nilai Rata Rata : ',rt:4:2);
writeln('Standar Deviasi : ',sd:4:2);
writeln('Median : ',md:4:2);
end.
Contoh output:
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Array dan Record, daftar lengkapnya adalah sebagai berikut.