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:
KLM 0 1 2 3
BRS HARI/JAM I II III IV
0 Senin A B C D
1 Selasa E F G H
2 Rabu I J K 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) A (0,1) B (0,2) C (0,3) D (1,0) E (1,1) F (1,2) G (1,3) H (2,0) I (2,1) J (2,2) K (2,3) 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) A (1,0) E (2,0) I (0,1) B (1,1) F (2,1) J (0,2) C (1,2) G (2,2) K (0,3) D (1,3) H (2,3) 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 )
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
Struktur Data Kasus:
Diketahui data kelompok dengan jumlah anggotanya tidak sama untuk tiap-tiap kelompok, sebagai berikut:
Kel 1 Kel 2 Kel 3 Kel 4 Kel 5 1 Joko Aldi Ina Yuyun Nia 2 Joni Alda Ika Yoyok Nina
3 Jodi Ali Yayah Ninin
4 Jojon Ani Yoyon
5 Jono Yoyo
6 Johan 7 Johar 8 Jovita
Permintaan:
Simpan data tersebut ke memori komputer, dengan ketentuan: 1. Data tiap kelompok tetap dapat diakses