Array (larik) - altien jonathan rindengan

advertisement
ARRAY (LARIK)
Altien Jonathan Rindengan, S.Si., M.Kom.
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, tabel
harga barang di supermarket, dll.
Setiap elemen data bertipe sama, dibedakan
dengan mengunakan indeks (subscript)
Misal, data nilai mahasiswa dilambangkan x, maka
nilai mahasiswa yang ke-i, dilambangkan xi
Pendahuluan



Dalam pemrograman, sekumpulan data ini disimpan
sementara dalam memori komputer untuk sewaktuwaktu dimanipulasi
Struktur penyimpanan data ini dinamakan array/
larik
Atau : tabel, vektor, atau variabel majemuk (satu
variabel mempunyai banyak elemen)
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
Apakah Array itu? ….

Misal array A dengan 8 elemen dinotasikan :
A[1], A[2],A[3], A[4], A[5],A[6], A[7], A[8]
1
2
3
4
5
6
7
8
A
158
157
167
150
172
161
155
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 selama
pelaksanaan program
Mendefinisikan banyaknya elemen array berarti
memesan sejumlah tempat di memori
Mendefinisikan tipe array berarti menetapkan tipe nilai
yang dapat disimpan oleh array, mis : integer, real,
char, string, dll
Deklarasi Array ….

Notasi deklarasi array :
NamaArray : array [1..n] of tipe elemen

Contoh Deklarasi array :
 Sebagai
A
variabel :
: array [1..100] of integer
NMhs : array [1..12] of string
NUjian : array[0 .. 74] of real
(100 elemen, indeks dimulai dari 1)
(12 elemen, indeks dimulai dari 1)
(74 elemen, indeks dimulai dari 0)
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 bertipe
LarikInt.
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, berturutturut 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 proses
pembacaan dan pencetakan biasanya digunakan satu
statement for untuk mengontrol setiap array. Setiap
statement for digunakan untuk membangkitkan nilai
sebuah 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, masingmasing 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.
Download