pert 5
TRANSCRIPT
ARRAY
Dikatakan berdimensi satu karena nilai subcripnya tunggal.Contoh :For k=1 to 10
a(k) = k + 5Next kHasil : nilai data a(1)=6, a(2)=7, a(3)=8 dst.
ARRAY BERDIMENSI SATU
Reprentasi (Pemetaan di Memory)
Memory komputer untuk pemetaan linear array dibentuk pula.Pengalamatan memory berfungsi sebagai identifikasi letak agar jika data akan diambil kembali, maka akan dengan tepat ditetmui data tsb.Setiap alamat dapat ditempati oleh data sebesar satu byte.
Elemen data pertama yang disimpan dalam alamat memori disebut dengan base address (B).Misal kita memiliki 20 nilai data dalam variabel ber subcript A, yang masing-masing memerlukan 8 byte data dan base addressnya 1000. berada dimanakah mulainya nilai data A yang ke-18 disimpan.
Gambaran pemetaan Data A di memori
A(1)
A(2)
A(3) A(4)
A(5)
A(6)
A(7)
… A(17) A(18) A(19)
A(20)
1000
1008
11441128104810321016
11521136105610401024
Kita dapat membuat rumusnya : AD = B + (SK – 1) * LDDimana :AD = Posisi alamat awal dari nilai data yang akan dicariB = Base AddressSK = Subscript keberapa yang akan dicariLD = Lebarnya data disimpan di setiap alamat memori
Contoh ekspresi matematis adalah :A11, A12, A13, ………. , A21, A22, A23, ………. , A31, A32, A33, ……………. , Amn.
ARRAY DIMENSI DUA
Contoh : 5 6 73 8 910 9 4
A = For baris =1 to 3For kolom = 1 to 3
a(baris, kolom)next kolom
Next baris
Membelah per barisDisebut teknik row major orderContoh :Hasil matrik diatas menjadi
Reprentasi (Pemetaan di Memory)
5 6 7 3 8 9 10 9 4
Jika kita memiliki matriks A berordo 59 x 78, base address adalah 1000 dan setiap nilai data membutuhkan 8 byte memori, dilokasi (alamat) manakah awal nilai data A(57,71) disimpan ?
Contoh :
Kita dapat membuat rumusnya : AD = B + (p – 1) * y + (q -1) * LDDimana :AD = Posisi alamat awal dari nilai data yang akan dicariB = Base AddressP = alamat awal dari elemen matriks yang dicari pada sumbu xQ = alamat awal dari elemen matriks yang dicari pada sumbu yY = alamat matirk pada sisi kolomLD = Lebarnya data disimpan di setiap alamat memori
AD = B + (p – 1) * y + (q -1) * LDB = 1000 ; p = 57 ; y = 78 ; q = 71 ; LD = 8Maka :AD = 1000 + ((57-1) * 78 + (71-1)) * 8
= 1000 + (56*78 +70)*8= 1000 + (4368 + 70) * 8= 1000 + 4438 * 8= 1000 + 35504= 36505
Penyelesaian :
Membelah per KolomDisebut teknik colomn major orderContoh :Hasil matrik diatas menjadi
5 3 10 6 8 9 7 9 4
Jika kita memiliki matriks A berordo 59 x 78, base address adalah 1000 dan setiap nilai data membutuhkan 8 byte memori, dilokasi (alamat) manakah awal nilai data A(57,71) disimpan ?
Contoh :
Kita dapat membuat rumusnya : AD = B + (q – 1) * x + (p -1) * LDDimana :AD = Posisi alamat awal dari nilai data yang akan dicariB = Base AddressP = alamat awal dari elemen matriks yang dicari pada sumbu xQ = alamat awal dari elemen matriks yang dicari pada sumbu yx = alamat matirk pada sisi barisLD = Lebarnya data disimpan di setiap alamat memori
AD = B + (q – 1) * x + (p -1) * LDB = 1000 ; p = 57 ; x = 59 ; q = 71 ; LD = 8Maka :AD = 1000 + ((71-1) * 59 + (57-1)) * 8
= 1000 + (70*59 +56)*8= 1000 + (4130 + 56) * 8= 1000 + 4186 * 8= 1000 + 33488= 34488
Penyelesaian :
1. Buatlah program penjumlahan 2 buah matriks
2. Buatlah program untuk mengetahui lokasi awal penyimpanan data dengan teknik row major order dan colomn major order
Tugas :
Dim m(4, 4) As SinglePrivate Sub Command1_Click()'Memasukkan nilai matrik sesuai dengan'baris dan kolom yang dimasukkanbaris = Val(Text1)kolom = Val(Text2)m(baris, kolom) = Val(Text3)End SubPrivate Sub Command2_Click()'Menampilkan semua isi matrikList1.ClearFor i = 1 To 4kal = ""For j = 1 To 4kal = kal & m(i, j) & " "Next jList1.AddItem kalNext iEnd Sub