ARRAY (Lanjutan)
Contoh Penerapan Array Dimensi 1 Pada Program C++ 2 Contoh Penerapan Array Dimensi 1 Pada Program C++ 2. ARRAY DIMENSI DUA (Two Dimensional Array) 0 1 2 3 4 5 6 7 Indeks #include <stdio . h> void main () { int a[8] ; for (int i=0;<8;1++) } printef (‘%x\n”,&a[i] ; %x adalah hexadesimal 21d2 21d4 21d6 21d8 21da 21dc 21de 21d5 Value 21d2 21d4 21d6 21d8 21da 21dc 21de 21d5
Deklarasi : Type_Data Nama_Variabel [Index1] [index2]; Misal : int A[3][2]; 0 1 Penggambaran secara Logika : 1 2 Sering digunakan dalam menterjemahkan matriks pada pemrograman.
Menentukan jumlah elemen dalam Array dimensi dua: n (Index array) = Perkalian dari statemen sebelumnya i=1 Contoh : Suatu Array X dideklarasikan sbb : int X[4][3]; maka jumlah elemen Array dimensi dua tersebut adalah : (4) * (3) = 12
P EM ETA A N (M A PPI N G ) A RR A Y DI M EN S I DU A KE STO R AG E Terbagi Dua cara pandang (representasi) yang berbeda : 1. Secara Kolom Per Kolom (Column Major Order/CMO) @M[i][j] = M[0][0] + {(j - 1) * K + (i - 1)} * L 2. Secara Baris Per Baris (Row Major Order / RMO) @M[i][j] = M[0][0] + {(i - 1) * N + (j - 1)} * L Keterangan : @ M[ i] [ j] = Posisi Array yang dicari, M[ 0] [ 0 ] = Posisi alamat awal index i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Penggambaran secara logika 1 2 Misal : int M[3][2]; (Array dengan 3 Baris & 2 Kolom) Berdasarkan Cara pandang : 1. Kolom Per Baris (Row Major Order / RMO) Jumlah elemen per baris = 2 2. Baris Per Kolom (Coloumn Major Order / CMO) Jumlah elemen per kolom =3 M[0,0] M[0,1] M[1,0] M[1,1] M[2,0] M[2,1] M [2 ,0 ] M [ 1, 0] M [ 0, 0] M[ 2 ,1 ] M [1 ,1 ] M [ 0, 1]
Lanjutan Contoh Pemetaan Penyelesaian : Jumlah Elemen Per Baris (N) = 3 Secara Baris Per Baris (Row Major Oder / RMO) @M[i][j] = @M[0][0] + {(i - 1) * N + (j - 1)} * L X[3][2] = 0011(H ) + {(3 – 1) * 3 + (2 – 1)} * 4 = 0011(H) + 28 (D ) 1C ( H) = 0011(H) + 1C ( H) = 002D(H ) M[ 0] [ 0 ] = Posisi alamat awal index i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Lanjutan Contoh Pemetaan : Penyelesaian : Jumlah Elemen Per Kolom (K) = 4 Secara Kolom Per Kolom (Coloumn Major Oder / CMO) @M[i][j] = @M[0][0] + {(j - 1) * K + (i - 1)} * L X[3][2] = 0011(H) + {(2 – 1) * 4 + (3 – 1)} * 4 = 0011(H) + 24 (D) 18 (H) = 0011(H) + 18 (H) = 0029(H) M[ 0] [ 0 ] = Posisi alamat awal index i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
Contoh Penerapan Array Dimensi 2 Pada Program C++ getch() ; #include <atdio.h> #include <c0nio.h> 1nt main () { char a([3][5];1++){ for (1nt j=0;j<5;j++){ printf(“%x “;&[i] [j] ) ; } perintf (“\n”); getch () teturn 0; 21d4 21d5 21d6 21d7 21d8 21d9 21da 21db 21dc 21dd 21de 21df 21e5 21e1 21e2
3. ARRAY DIMENSI TIGA (Three Dimensional Array) Deklarasi : Type_Data Nama_Variabel [index1] [index2] [index3]; Misal : int A [3][4][2]; Penggambaran secara Logika : 1 2 01 0 1 2 3
PEM E TA AN (M A PP I N G) AR R A Y D I M EN SI T IG A K E S TOR A GE Rumus : @M[n][m][p] = M[0][0][0] + {((n-1)*(index1)) + ((m-1)*(index2)) + ((p-1)*(index3)}* L Contoh : Suatu Array A dideklarasikan sebagai berikut : Shortint A [2][4][3], dengan alamat awal index A[0][0][0] berada di 0011( H) dan ukuran type data shortint = 1 Tentukan berapa alamat array di A[2][3][2] ?
Contoh Pemetaan : Penyelesaian : 1. Tentukan jumlah elemen array A [2][4][3] = (2) * (4) * (3) = 32 2. @M[n][m][p] = M[0][0][0]+{((n-1)*(index1))+((m-1)*(index2)) + ((p-1)*(index3)}* L A[2][3][2] = 0011(H ) + {((2–1) * 4 * 3) + ((3-1) * 3) + (2-1)*1} * 1 = 0011(H ) + {12 + 9 + 1 } * 1 = 0011(H ) + 22 ( D) 16 = 0011(H ) + 16 (H ) = 0027( H)
TRINGULAR ARRAY (ARRY SEGITIGA) TINGULAR ARRAY Tringular Array dapat merupakan Upper Tringular (seluruh elemen di bawah diagonal utama = 0), ataupun Lower Tringular (seluruh elemen di atas diagonal utama = 0). Dalam Array Lower Tringular dengan N baris, jumlah maksimum elemen <> 0 pada baris ke-I adalah = I, karenanya total elemen <> 0, tidak lebih dari N I = N(N+1) / 2 I =1
X X X X X X X 0 0 0 0 0 0 X X X X X X X 0 0 0 0 0 0 X X X X X X X 0 0 0 0 0 0 X X X X X X X 0 0 0 0 0 0 X X X X X X X 0 0 0 0 0 0 0 X X X X X X (a) (b) Gambar (a) Upper Triangular Array (b) Lower Triangular Array
Suatu Array Upper Tringular dan Array Lower Tringular dapat dengan order yang sama, dapat disimpan sebagai suatu array dengan order yang berbeda, Contohnya : 1 2 3 7 0 0 A= 0 4 5 B= 8 9 0 0 0 6 11 12 13 Dapat disimpan sebagai Array Cberorder (3x4) 7 1 2 3 8 9 4 5 11 12 13 6
Latihan Soal Struktur Data (Pertemuan 2) 1. Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis c. Heterogen b. Terurut d. Homogen 2. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu c. Tiga b. Dua d. Empat
3. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array : a. Satu c. Tiga b. Dua d. Empat 4. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah …… a. 25 c. 15 b. 35 d. 20 5. Diketahui float A[5] dan lokasi awal terletak di alamat 00F( H) , maka lokasi A[3] adalah ….. a. 00FC( H) c. 01B( H) b. 017(H) d. 111( H)
SEKIAN Anak ayam turun sembilan Mati satu tinggal delapan Ilmu boleh sedikit ketinggalan Tapi jangan sampai putus harapan