Pert 5

14
ARRAY

Transcript of Pert 5

Page 1: Pert 5

ARRAY

Page 2: Pert 5

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

Page 3: Pert 5

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.

Page 4: Pert 5

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.

Page 5: Pert 5

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

Page 6: Pert 5

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

Page 7: Pert 5

Membelah per barisDisebut teknik row major orderContoh :Hasil matrik diatas menjadi

Reprentasi (Pemetaan di Memory)

5 6 7 3 8 9 10 9 4

Page 8: Pert 5

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

Page 9: Pert 5

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 :

Page 10: Pert 5

Membelah per KolomDisebut teknik colomn major orderContoh :Hasil matrik diatas menjadi

5 3 10 6 8 9 7 9 4

Page 11: Pert 5

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

Page 12: Pert 5

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 :

Page 13: Pert 5

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 :

Page 14: Pert 5

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