Array Dua Dimensi Array 2 dimensi adalah

advertisement
Struktur Data
Array Dua Dimensi
Array 2 dimensi adalah model data yang disajikan dalam bentuk
baris dan kolom atau biasa disebut tabel.
a. Model Logika
Contoh array 2 dimensi adalah jadwal kuliah sebagai berikut:
BRS
0
1
2
KLM
HARI/JAM
Senin
Selasa
Rabu
0
I
A
E
I
1
II
B
F
J
2
III
C
G
K
3
IV
D
H
L
Jika tabel jadwal kuliah di atas jumlah barisnya = M dan jumlah
kolomnya = N, maka tabel tersebut dikatakan tabel berukuran M *
N, atau array 2 dimensi M * N.
b. Model Fisik
Dari data array 2 dimensi seperti pada contoh di atas, bila akan
disimpan ke memori harus diubah kedalam array 1 dimensi. Hal tersebut
dapat dilakukan dengan 2 cara yaitu:
1. Metode Row Major Order
2. Metode Column Major Order
♦ Pengaksesan dengan metode Row Major Order
(0,0)
(0,1)
(0,2)
(0,3)
(1,0)
(1,1)
(1,2)
(1,3)
(2,0)
(2,1)
(2,2)
(2,3)
A
B
C
D
E
F
G
H
I
J
K
L
Algoritma pengaksesan elemenya sebagai berikut:
FOR (BRS = 0; BRS < 3; BRS++)
FOR (KLM = 0; KLM < 4; KLM++)
/* Proses ELEMEN[BRS][KLM]; */
Alamat elemen ke I, J dapat dicari dengan rumus:
LOC(A[I][J]) = BASE(A) + W( N * I + J )
N
= JUMLAH KOLOM
♦ Pengaksesan dengan metode Column Major Order
(0,0)
(1,0)
(2,0)
(0,1)
(1,1)
(2,1)
(0,2)
(1,2)
(2,2)
(0,3)
(1,3)
(2,3)
A
E
I
B
F
J
C
G
K
D
H
L
Algoritma pengaksesan elemenya sebagai berikut:
FOR (KLM = 0; KLM < 4; KLM++)
FOR (BRS = 0; BRS < 3; BRS++)
/* Proses ELEMEN[BRS][KLM]; */
Alamat elemen ke I, J dapat dicari dengan rumus:
LOC(A[I][J]) = BASE(A) + W( M * J + I )
M
= JUMLAH BARIS
Struktur Data
Latihan 1
1. Terdapat deklarasi variabel dalam C sebagai berikut:
int A[10];
float B[20];
a. Hitung kebutuhan momori array A dan B
b. Hitung alamat elemen A[6], jika diketahui BASE(A) = 6666.
c. Hitung alamat elemen B[5], jika diketahui BASE(B) = 5450.
2. Sebuah array 2 dimensi, dideklarasikan dalam Bahasa C sebagai
berikut:
int C[5][7];
a. Hitung kebutuhan momori array C
b. Jika array di atas disimpan ke memori menggunakan metoda Row
Major Order dan diketahui BASE(C) = 5500, hitung alamat
elemen C[3,2].
c. Dengan metoda penyimpanan Column Major Order, hitung
alamat elemen C[2,5], jika diketahui BASE(C) = 5525.
Struktur Data
Kasus:
Diketahui data kelompok dengan jumlah anggotanya tidak sama untuk
tiap-tiap kelompok, sebagai berikut:
1
2
3
4
5
6
7
8
Kel 1
Joko
Joni
Jodi
Jojon
Jono
Johan
Johar
Jovita
Kel 2
Aldi
Alda
Ali
Ani
Kel 3
Ina
Ika
Kel 4
Yuyun
Yoyok
Yayah
Yoyon
Yoyo
Kel 5
Nia
Nina
Ninin
Permintaan:
Simpan data tersebut ke memori komputer, dengan ketentuan:
1. Data tiap kelompok tetap dapat diakses
2. Penggunaan space memori effisien.
Download