Array (larik) Array itu? Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe...

26
ARRAY (LARIK) Altien Jonathan Rindengan, S.Si., M.Kom.

Transcript of Array (larik) Array itu? Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe...

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, 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.