3045f array dua dimensi

 Array Dua Dimensi
Array 2 dimensi adalah model data yang disajikan dalam bentuk
baris dan kolom atau biasa disebut tabel.
Struktur Data

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:

(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 (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

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.