Rabu, 28 Oktober 2015

PEMETAAN ARRAY

SOAL :
1.  Jelaskan konsep Pemetaan array ke storage
v   Dimensi satu
v   Dimensi banyak
2. Jelaskan contoh kasus Array dalam matriks dan    Pembentukan matriks dengan menggunakan array
PEMETAAN ARRAY DIMENSI SATU KE
STORAGE
            Seperti halnya struktur data yang lain, ada beberapa cara untuk menyajikan array di dalam memori. Skema penyajian dapat dievaluasi berdasarkan 4 karakteristik, yakni :
  1. Kesederhanaan dari akses elemen
  2. Mudah untuk ditelusuri
  3. Efisiensi dari utilitasi storage
  4. Mudah dikembangkan
            Umumnya tidaklah mungkin untuk mengoptimalkan keempat faktor tersebut sekaligus. Pandang array satu dimensi NOPEG dengan batas bawah subscript 1, dan batas atas subscript = N. Salah satu cara untuk menyimpan array ini adalah sedemikian sehingga urutan fisik dari elemen sama dengan urutan logik dari elemen. Storage untuk elemen NOPEG(I+1) adalah berdampingan dengan storage untuk elemen NOPEG(I), untuk setiap I = 1, 2, 3,..., N-1.
Untuk menghitung alamat (address) awal dari elemen NOPEG(I),
diperlukan untuk mengetahui 2 hal yakni :
  1.  Address awal dari ruang storage yang dialokasikan bagi array tersebut.
  2. Ukuran dari masing-masing elemen array.
Address awal dari array, kita nyatakan dengan B, disebut juga base-location. Misalkan :
bahwa masing-masing elemen dari array menduduki S byte. Maka, address awal dari
elemen ke-I adalah :
B + (I-1) * S
            Sekarang kita perluas persamaan di atas untuk mendapat address dari elemen ke-I dari array yang mempunyai batas bawah subscript tidak sama dengan 1. Perhatikan array Z(4:10), maka address awal dari Z(6) adalah :
B + (64) * S
Untuk array Z2 (-2:2) misalnya, address awal dari Z2(l) adalah :
B + (I -(-2)) * S
Maka secara umum, untuk array :
ARRAY(L:U)
elemen ARRAY(I) mempunyai address awal
B + (U-L) *
PEMETAAN KE STORAGE TERHADAP ARRAY DIMENSI BANYAK
Karena memori komputer adalah linear, maka array dimensi banyak harus dilinearkan apabila akan dipetakan ke dalam storage. Salah satu alternatif untuk pelinearan tersebut adalah menyimpan pertama kali baris pertama dari array, kemudian baris ke-2, baris ke-3 dan seterusnya. Ini disebut row major order.
Contoh Kasus penggunaan matrik dalam array
program matrik_transpose;
Uses Wincrt;
Var A: Array [1..5,1..5] of integer;
i,j,baris,kolom :integer;
Begin
Clrscr;
Write('Masukkan Jumlah Baris : ');Readln(baris);
Write('Masukkan Jumlah Kolom : ');Readln(kolom);
Writeln;
Gotoxy(1,5);Write('A= ');
for i := 1 to baris do
for j := 1 to kolom do
begin
Gotoxy(j*5,i*2+3);
Readln(A[i,j]);
end;
Gotoxy(30,5);Write('AT=');
for i := 1 to kolom do
for j := 1 to baris do
begin
Gotoxy(j*5+30,i*2+3);
Write(A[j,i]);
end;
end.
MATRIK
Matrik adalah struktur data di dalam memeori utama, dimana setiap elemennya memiliki dua indeks ( biasa disebut baris dan kolom). Karena ada dua indeks maka disebut larik dua dimensi, sedangkan baris dan kolom hanyalah digunakan untuk memudahkan pengertian tentang struktur logik. Karena matrik adalah sebuah larik maka konsep umum dari larik (array) berlaku untuk matrik , yaitu :
1. Kumpulan elemen bertipe sama, tipe elemeen matrik dapat berupa tipe data dasar  ( integer, char, real, bolean dan string ), ataupun tipe data tersruktur seperti record.

2. Setiap elemen dapat di akses secara acak (random)
3. Merupakan struktur data yang statis, artinya jumlah elemen sudah ditentukan lebih dulu dalam deklarasikan dan tidak dapat di ubah selama pelaksanaan program.
Struktur matrik praktis untuk dipakai untuk pengaksesan cepat karena langsung melalui indeksnya akan tetapi memakan banyak ruang memori. Misalkan matriks 100 x 100 membutuhkan 10.000 x ukuran integer ( 2 byte).
PENYIMPANAN MATRIK DALAM MEMORI
Walaupun matriks dianggap larik dua dimensi, tetapi kenyataan dalam memori tetap sebagai deret yang berurutan.





Tidak ada komentar:

Posting Komentar