Larik
Karakteristik
1. Hubungan Antar Komponen Adalah Linier
2. Terdiri Dari Index Dan Komponen
3. Hubungan Antara index dan komponen
adalah Satu-satu
4. Semua Komponen Mempunyai tipe data
yang sama
5. Metode Akses adalah Random
6. Penyimpanan Secara Fisik dan Logika
Adalah Sama
Komponen
X1 X2 X3 X4 …. Xn
Index 1 2 3 4 n
Index
n
1
Operasi Pada Larik
Operasi terhadap elemen di array dilakukan
dengan pengaksesan langsung.
Nilai di masing-masing posisi elemen dapat diambil
dan nilai dapat disimpan tanpa melewati posisi-
posisi lain.
Elemen-elemen terurut, sebagai elemen pertama,
kedua, dan seterusnya.
0000 0001
0000 0010
0000 0011
1111 1111
Variabel yang dugunakan dalam larik
N0 Simbol Arti
1 M Adalah besarnya memori yang dibutuhkan oleh array
2 L Besarnya memori yang dibutuhkan untuk satu komponen,
dimana setiap tipe data dan bahasa pemrograman
mempunyai ukuran yang berbeda. Misalnya untuk tipe data
integer, di Pascal L =2, Turbo C 2.0 L = 2, Visual C++
5.0 L = 4.
3 b Base address
Alamat dari array yang assign pada saat binding time.
Binding time adalah waktu dimana array di assign pada
suatu lokasi di memori bisa pada saat compile, execute dll
4 Lk Lower bound
Lower bound adalah nilai index terkecil dalam larik
5 Uk Upper Bound
Upper bound adalah nilai index terbesar dalam larik
6 d Dimensi
Deklarasi Array
Untuk meningkatkan fleksibilitas, maka sebaiknya seluruh struktur
data didalam program dibawah kendali kita, kita dapat dengan
mudah melakukan pengubahan implementasi untuk meningkatkan
kinerja tanpa mempengaruhi program yang menggunakan
struktur data.
Add(x(i)) = b + (i-1)*L
B : Base Address (alamat Awal)
L : Length (besar memori untuk Komponen)
Untuk larik dua dimensi, pemetaan ke dalam memori dapat
dilakukan dengan dua cara yaitu membelah secara baris dan
membelah secara kolom
A
Untuk mencari alamat data yang berada
pada p,q dapat hitung dengan :
OS Add A(p,q) = b + ((p-1)xY + q-1)x L
a11
b
b+2 Contoh :
a12
b+4 A(3,3) = b+ ((3-1)x 4 + 3-1)x 2
a13 = b+(2x4+2)x2
b+6
= b+10 x 2
= b+ 20
b+22
A34
Free
Membedah perkolom
A11 a21 a31 A12 A22 a32 a13 a23 a33 a14 a24 a34
OS A
Untuk mencari alamat data yang berada
b
A11 pada p,q dapat hitung dengan :
b+2 Add A(p,q) = b + ((q-1)xX + p-1)x L
A21
b+4
A31 b+6 Contoh :
A(3,3) = b+ ((3-1)x 3 + 3-1)x 2
b+22 = b+(2x3+2)x2
A34 = b+8 x 2
Free = b+ 16
Contoh 1 :
Misalkan struktur data adalah
Data : array [1..100] of string[5]
- Gambarkan secara logika dan fisik
- Berapakah kebutuhan memorinya
- Cari alamat dari data[52] jika b=100
Contoh 2 :
Misalkan struktur data adalah
Kota : Array[1..10,1..3] of string[10]
-Gambarkan secara logika dan fisik jika dipecah secara baris
-Gambarkan secara logika dan fisik jika dipecah secara Kolom
-Hitung berapa besar memorinya
-Carilah alamat kota[7,2], jika dengan pemecahan kedua diatas
Dua operasi paling dasar terhadap satu
elemen/posisi adalah :
1. Penyimpanan nilai elemen ke posisi
tertentu di array.
2. Pengambilan nilai dari elemen dari posisi
tertentu di array.
Operasi-operasi dasar terhadap
array secara keseluruhan
adalah :
1. Operasi Penciptaan
2. Operasi Penghancuran
3. Menyimpan dan Mengambil Nilai
4. Operasi Pemrosesan traversal.
5. Operasi pencarian (table look-up).
6. Operasi Sorting
PENCIPTAAN DAN
PENGHANCURAN
Setiap struktur data hendaknya dilengkapi kedua
operasi ini Operasi penciptaan biasa disebut
inisialisasi. Operasi ini untuk mempersiapkan struktur
data untuk operasi-operasi berikutnya.
C := A[10],
berarti pengambilan nilai elemen posisi ke 10 dari array A.