Transcript Array

ARRAY
SESI 2
KARAKTERISTIK ARRAY
Disusun dari tipe data yang sama
 Memiliki index
 Memiliki komponen
 Metode akses random

index
Komponen
1
2
3
x1
x2
x3
…
N
xn
2
JENIS ARRAY
Array satu dimensi ( vektor)
 Array dua Dimensi (matrik)
 Array multi dimensi

MENDEFENISIKAN ARRAY
Var x : array[1..n] of tipe_data;
 Contoh
 Var nilai : array[1..10] of char

3
ARRAY DUA DIMENSI
Var
 X : array[1..n,1..m] of tipe_data;
 n adalah jumlah baris
 m adalah jumlah kolom

x11
x12
x13
x21
x22
x23
..
x2m
x31
x32
x33
..
x3m
..
xn1
x1m
..
xn2
xn3
xnm
4
PENGALAMATAN ARRAY
Pengalamatan array adalah proses penempatan
data/komponen array ke dalam memori komputer.
Komponen-komponen array akan ditempatkan berurutan
sesuai dengan urutan komponen dalam array
OS
1
2
3
4
….
n
x1
x2
x3
x4
….. xn
X1
X2
X3
X4
Xn
5
Besarnya kebutuhan Memori untuk Array X dapat
dihitung dengan
 m = n*LB
Dimana
m adalah besar memori
n adalah jumlah data
LB adalah lebar memori untuk tipe datanya
Contoh:
Jika sebuah array x didefeniskan sebagai berikut
x : array[1..100] of integer
Dimana tipe data integer membutuhkan 2 byte
memory, sehingga LB =2
Maka besarnya memory untuk array x adalah
M = 100x 2
= 200 byte meory

6
Untuk mencari alamat komponen/elemen I
 Add(x(i)) = b+(i-1)*LB
Dimana
b : base address/Alamat awal untuk array X
I : adalah index dari alamat di cari

Contoh :
Jika array x diatas di tempatkan dari alamat 1000,
maka alamat dari x(9) berada pada
add(x(9)) = 1000 +(9-1)*2
= 1000 + 16
= 1016
7
ARRAY DUA DIMENSI


Misalkan sebuah matriks berukuran x,y, maka
alamat dari x(p,q) dapat dihitung dengan rumus
Add(x(p,q))= b+((p-1)*y+q-1)*LB
8
OPERASAI PADA ARRAY
Memberikan nilai array
 Membaca nilai array
 Pencarian(search)
 Pengurutan(Sort)

9
PENCARIAN
Linier Search
 Binary Search

10
Pengurutan/Sorting
•
•
•
•
•
•
•
•
Bubble sort
Selection sort
Insertion sort
Shell sort
Merge sort
Radix sort
Quick sort
Heap short
11
Bubble Sort
Bubble artinya gelembung dan gelembung selalu
mengapung. Prinsip proses pengurutan dengan
menggunakan
metode
bubble
sort
adalah
menempatkan (mengapungkan) nilai terbesar (jika urut
ascending) atau nilai terkecil (jika urut descending)
pada elemen ujung paling kanan pada tahap per
tahapnya.
12
Bubble Sort
Sudah ada array satu dimensi sudah ada isinya,
diilustrasikan sebagai berikut :
Akan diurutkan ascending sehingga dihasilkan
urutan data seperti berikut:
13
Bubble Sort
Maka proses pengurutan tahap demi tahap dengan menggunakan
metode bubble sort adalah sebagai berikut :
14
Bubble Sort
Dari array diatas yang terdiri dari 6 elemen
dibutuhkan proses sebanyak 5 tahap maka untuk N
elemen dibutuhkan (N-1) tahap proses pengurutan.
Selanjutnya proses tahap per tahap akan diuraikan
lebih rinci lagi.
Pada proses setiap tahap algoritma yang digunakan
adalah proses banding (compare) dan tukar (swap).
Bukan semata-mata meletakkan nilai terbesar ke
ujung kanan, melainkan membandingkan nilainilai yang ada pada masing-masing elemen.
15
Bubble Sort
Algoritma tahap 1 untuk array dengan jumlah
elemen N :
Bandingkan (compare) A[0] dan A[1], jika A[0] >
A[1] maka lakukan tukar nilai (swap), dilanjutkan
dengan bandingkan A[1] dan A[2], jika A[1] >
A[2] maka lakukan tukar nilai, dan seterusnya
sampai perbandingan A[N-2] dan A[N-1] sehingga
diperoleh nilai terbesar pertama yang diletakkan
pada A[N-1].
Untuk tahap ke-K lakukan dari perbandingan A[0]
dan A[1] sampai dengan perbandingan A[N-2-K]
16
dan A[N-1-K]
F
l
o
w
c
h
a
r
t
17
Rumus Bubble Sort
for (K = 0 ; K < N-1 ; K++)
{
for (i = 0 ; i < N-2-K ; i++)
{
if ( A[i] > A[i+1] )
{
x = A[i];
A[i] = A[i+1];
A[i+1] = x;
}
}
}
18
Selection Sort
Metode selection sort ini menggunakan proses
pencarian (searching) kemudian tukar nilai yang dicari
dengan nilai pada elemen awal.
Misalnya untuk pengurutan ascending, dicari nilai
terkecil pertama kemudian tukar dengan elemen ke0,selanjutnya dicari nilai terkecil kedua dan tukar
dengan elemen ke-1 dan seterusnya.
19
F
l
o
w
c
h
a
r
t
20
Rumus Selection Sort
for ( i=0 ; i <= N-2 ; i++)
{
j = i;
for ( k = i+1 ; k <= N-1 ; k++ )
{
if (A[k] > A[j])
{
j = k;
}
}
x = A[i];
A[i] = A[j];
A[j] = x;
}
21
Insertion Sort
Tahap 1 :
Dimulai dari A[1]
Simpan nilai A[1] pada sebuah variabel (misal x)
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri
A[1] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
Tahap 2 :
Simpan nilai A[2] pada variabel x.
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri
A[2] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.
Tahap berikutnya dan seterusnya hingga terakhir tahap ke N-1 (untuk array
dengan N elemen).
Instruksi pergeseran ke kanan adalah A[i]=A[i - 1], sehingga nilai A[i] akan
hilang (ditimpa oleh nilai A[i-1] oleh karena itu pada awal tahap A[i] disimpan
pada sebuah variabel.
22
F
l
o
w
c
h
a
r
t
23