160 likes | 361 Views
Alamat Array. Arrray 2 dimensi. char a[3][5] Sama dengan matriks berukuran 3x5 Pada kenyataan di memory:. Ilustrasi array 2 dimensi. Soal alamat array. 1. Diketahui variabel A dengan tipe data: int A[10] dan alamat A : &A[0] = 0FFH1000 Ditanya : Berapa &A[7]?
E N D
Arrray 2 dimensi • char a[3][5] • Sama dengan matriks berukuran 3x5 • Pada kenyataan di memory:
Soalalamat array 1. Diketahuivariabel A dengantipe data: int A[10] danalamat A : &A[0] = 0FFH1000 • Ditanya : Berapa &A[7]? 2. Diketahuivariabel A dengantipe data: int A[3][5] dan &A[0][0] = 0FFH1000 • Ditanya : Berapa &A[2][3]?
Soalalamat array • Soal: int A[10], diket. &A[0] = 0FFH1000 • Berapa &A[7]? • Jawab: • intberukuran4 byte • Perpindahan 7-0 = 7 * 4 byte = 28 byte • Maka H1000 + 28 = …… (bahasdikelas) • Soal: int A[3][5], &A[0][0] = 0FFH1000 • Berapa &A[2][3]? • Jawab: • int4 byte • Perpindahanbaris: 2-0 = 2 * 5 (kolomnya) = 10 • Perpindahankolom: 3-0 = 3 • Total perpindahan: 10 + 3 = 13 * 4 byte = 52 byte • Maka H1000 + 52 = …… (bahasdikelas)
RepresentasiKontigu Memoridapatdigambarkansebagaiberikut : 0000 0000 0000 0001 0000 0010 0000 0011 1111 1111
Deklarasi Array Untukmeningkatkanfleksibilitas, makasebaiknyaseluruhstruktur data didalam program dibawahkendalikita, kitadapatdenganmudahmelakukanpengubahanimplementasiuntukmeningkatkankinerjatanpamempengaruhi program yang menggunakanstruktur data. ≈ Deklarasi Array satudimensi Nama_larik : Array[Lk..Uk] of tipe data Lk & Ukadalahtipe data sederhanadanterdefenisi
Array Mapped Function Salahsatukarakteristiklarikadalahpenyimpanansecaralogikadanfisikadalahsama, sehinggapemetaanantaralogikadanfisikdapatterlihatdalamgambarberikut : 4 40
Alamat data dalamMemori KomponenAlamat X1 b X2b+4 X3b+8 ….. ……. X10b+36 Base address b B+4 b+8 b+12 b+36 Sistem Operasi Alamat komponen yang 3 RumusUntukMencariAlamatadalah Add(x(i)) = b + (i-1)*L B : Base Address (alamatAwal) L : Length (besarmemoriuntukKomponen)
Untuklarikduadimensi, pemetaankedalammemoridapatdilakukandenganduacarayaitumembelahsecarabarisdanmembelahsecarakolom Inisialisasistruktur Data : tipe data variabel [1..x, 1..y] Misalkanstruktur data adalahsbb : Int A [3] [4] a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 Besarnya memori yang dibutuhkan oleh struktur data adalah M = X *Y *L = 3 *4 *4 = 48byte memori
Membedahperbaris A Untukmencarialamat data yang beradapadap,qdapathitungdengan : Add A(p,q) = b + ((p-1)*Y + (q-1))* L Contoh : A(3,3) = b+ ((3-1)x 4 + 3-1)x 4 = b+(2x4+2)x4 = b+10 x 4 = b+ 40 b b+4 b+8 b+12 b+44
Membedahperkolom A Untukmencarialamat data yang beradapadap,qdapathitungdengan : Add A(p,q) = b + ((q-1)*X + (p-1))* L Contoh : A(3,3) = b+ ((3-1)x 3 + 3-1)x 4 = b+(2x3+2)x4 = b+8 x 4 = b+ 32 b b+4 b+8 b+12 b+44