Pendahuluan
Sebuah variabel hanya menyimpan sebuah nilai, tidak dapat menyimpan beberapa buah nilai yang bertipe sejenis
Dalam pemrograman, mengolah sekumpulan data bertipe sama, misal : hasil ujian 100 mhs, tabelharga barang di supermarket, dll.
Setiap elemen data bertipe sama, dibedakandengan mengunakan indeks (subscript)
Misal, data nilai mahasiswa dilambangkan x, makanilai mahasiswa yang ke-i, dilambangkan xi
Dalam pemrograman, sekumpulan data ini disimpan
sementara dalam memori komputer untuk sewaktu-
waktu dimanipulasi
Struktur penyimpanan data ini dinamakan array/
larik
Atau : tabel, vektor, atau variabel majemuk (satu
variabel mempunyai banyak elemen)
Pendahuluan
Apakah Array itu?
Array adalah struktur data yang menyimpan
sekumpulan elemen yang bertipe sama
Setiap elemen diakses langsung melalui indeksnya
Indeks array harus tipe data yang menyatakan
keterurutan, misal : integer atau karakter
Keterurutan secara horisontal atau vertikal
Misal array A dengan 8 elemen dinotasikan :
A[1], A[2],A[3], A[4], A[5],A[6], A[7], A[8]
Apakah Array itu? ….
A
1 158
2 157
3 167
4 150
5 172
6 161
7 155
8 180
Deklarasi Array
Deklarasi array berarti :
Mendefinisikan bayaknya elemen array (ukuran array)
Mendefinisikan tipe elemen array
Jumlah elemen harus sudah diketahui sebelum program dieksekusi
Jumlah elemen tidak dapat diubah selamapelaksanaan program
Mendefinisikan banyaknya elemen array berartimemesan sejumlah tempat di memori
Mendefinisikan tipe array berarti menetapkan tipe nilaiyang dapat disimpan oleh array, mis : integer, real, char, string, dll
Deklarasi Array ….
Notasi deklarasi array :
Contoh Deklarasi array :
Sebagai variabel :
A : array [1..100] of integer (100 elemen, indeks dimulai dari 1)
NMhs : array [1..12] of string (12 elemen, indeks dimulai dari 1)
NUjian : array[0 .. 74] of real (74 elemen, indeks dimulai dari 0)
NamaArray : array [1..n] of tipe elemen
Deklarasi Array ….
Sebagai tipe bentukan :
Misalkan LarikInt didefinisikan sebagai nama tipe baru
untuk array yang bertipe integer. Ukuran array 100
elemen . Misal dideklarasikan variabel A yang bertipeLarikInt.
type LarikInt : array[1..100] of integer
A : LarikInt
Cara mengacu elemen array
Elemen array diacu melalui indeksnya dimana nilai
indeksnya harus terdefinisi.
Contoh :
A[4] {mengacu elemen keempat dari array A}
NMhs[2] {mengacu elemen kedua dari array NMhs}
A[i] {mengacu elemen ke-i dari array A, asalkan nilai i
sudah terdefinisi}
NMhs[i+1] {mengacu elemen ke-i+1 dari array NMhs, asalkan
nilai i sudah terdefinisi}
Pemrosesan Array
Memproses array artinya mengunjungi setiap
elemen array dan memanipulasi nilai didalamnya
Kunjungan dimulai dari elemen pertama, berturut-
turut sampai terakhir
Skema umum algoritma pemrosesan array
(menggunakan struktur pengulangan while do)
Pemrosesan Array ….
PROGRAM pemrosesan_array
DEKLARASI
A: array [1..100] of integer
i: integer {indeks array}
ALGORITMA
i=1 {inisialisasi, mulai dari elemen pertama}
while i<=100 do
pemrosesan terhadap A[i]
i=i+1
endwhile (i>100)
program array1;
uses crt;
var
A: array [1..100] of integer;
i,n,jumlah: integer;
rataan : real;
begin
clrscr;
write('Banyaknya data : ');readln(n);
i:=1;
jumlah:=0;
while i<=n do
begin
write('Nilai data ke-',i,' : ');readln(A[i]);
jumlah:=jumlah+A[i];
i:=i+1;
end;
writeln ('Penjumlahan datanya : ',jumlah);
rataan:=jumlah/n;
writeln ('Rata-rata : ',rataan:0:2);
readln;
writeln('Data ke-2 adalah ',A[2]);
write('Data ke ');readln(i);
writeln(A[i]);
readln;
end.
program array1a;
uses crt;
var
A: array [1..100] of integer;
i,n,jumlah: integer;
begin
clrscr;
write('Banyaknya data : ');readln(n);
i:=1;
jumlah:=0;
while i<=n do
begin
write('Nilai data ke-',i,' : ');readln(A[i]);
i:=i+1;
end;
for i:=1 to n do
jumlah := jumlah+A[2*i];
writeln('Penjumlahan datanya : ', jumlah);
readln;
end.
Mencari nilai maksimum dari elemen array
Dengan array dapat dicari nilai maksimum dari
data yang dientry dalam bentuk array
Nilai maksimum adalah elemen dengan nilai
terbesar pada array
Jika bukan dalam bentuk array, hal ini tidak dapat
dilakukan
program array1b;
uses crt;
var
A: array [1..100] of integer;
i,n,maks: integer;
begin
clrscr;
write('Banyaknya data : ');readln(n);
i:=1;
while i<=n do
begin
write('Nilai data ke-',i,' : ');readln(A[i]);
i:=i+1;
end;
maks:=A[1];
for i:=2 to n do
begin
if A[i] > maks then
maks:=A[i];
end;
writeln('Data terbesar adalah : ', maks);
readln;
end.
Array 2 dimensi
Selain array 1 dimensi yang berbentuk vector, juga
dikenal array 2 dimensi yang berbentuk matriks.
Secara umum array 2 dimensi dideklarasikan
dengan bentuk:
type NamaArray = array[I,J] of tipeelemen;
dimana I dan J menyatakan jangkauan array, mulai
dari indeks terkecil sampai dengan yang terbesar
Array 2 dimensi …..
Misalnya jika kita ingin membuat matrik A
berukuran 2 baris dan 3 kolom, maka matriks
tersebut dapat disimpan dalam array 2 dimensi
yang didefinisikan sebagai:
MatA : array[1..2,1..3] of integer;
Array 2 dimensi …..
Jika perulangan for digunakan untuk mengontrol prosespembacaan dan pencetakan biasanya digunakan satustatement for untuk mengontrol setiap array. Setiapstatement for digunakan untuk membangkitkan nilaisebuah indeks.
Sebagai contoh:
var tabel:array[1..40,1..5] of real;
for i:= 1 to 40 do
for j:=1 to 5 do
read(tabel[i,j]);
Array 2 dimensi …..
Dari contoh diatas dapat dijelaskan bahwa:
tabel adalah array dimensi dua atau matriks
dengan 40 baris dan 5 kolom (200 elemen).
statement read akan dikerjakan 200 kali, masing-
masing 5 kali untuk setiap eksekusi perulangan luar.
indeks j akan bernilai 1,2,3,4 dan 5 untuk setiap
nilai i karena j sebagai perulangan dalam.
program array3;
uses crt;
var
tabel: array[1..3,1..2] of byte;
i,j:byte;
begin
clrscr;
tabel[1,1] := 5;
tabel[1,2] := 25;
tabel[2,1] := 200;
tabel[2,2] := 22;
tabel[3,1] := 75;
tabel[3,2] := 50;
for i:=1 to 3 do
begin
for j:= 1 to 2 do
write(tabel[i,j]:6);
writeln;
end;
readln;
end.
Bekerja dengan 2 Array
Dua array dapat dioperasikan sekaligus
Misal :
Nilai ujian n mahasiswa disimpan pada array NilUjian
Nilai mutu disimpan pada array Indeks
program array4;
uses crt;
const Nmaks = 200;
var
NilUjian : array [1..Nmaks] of real;
Indeks : array [1..Nmaks] of char;
i,n : integer;
begin
clrscr;
write('Banyaknya mahasiswa : ');readln(n);
for i:=1 to n do readln(NilUjian[i]);
for i:= 1 to n do
if NilUjian[i]>=80 then Indeks[i]:='A'
else
if NilUjian[i]>=70 then Indeks[i]:='B'
else
if NilUjian[i]>=55 then Indeks[i]:='C'
else
if NilUjian[i]>=45 then Indeks[i]:='D'
else
Indeks[i]:='E';
writeln;
for i:=1 to n do
writeln(i,' ',NilUjian[i]:0:2,' ',Indeks[i]);
readln;
end.