Tugas III Pemetaan Array
SOAL :
- Jelaskan konsep Pemetaan array ke storage.
q
Dimensi satu ?
q
Dimensi banyak ?
2. Jelaskan contoh kasus Array dalam matriks dan Pembentukan matriks dengan menggunakan
array.
Penyelesaian :
PENGERTIAN ARRAY
Array merupakan tipe data
tersetruktur dimana di dalamnya terdiri dari komponen–komponen yang mempunyai
tipe data yang sama. Di dalam suatu array jumlah komponen banyaknya adalah
tetap. Di dalam suatu larik atau array setiap kompoenen ditunjukan oleh suatu
index yang unik. Index dari setiap komponen array menunjukan urutan data atau
identitas yang mewakili data yang ada didalamnya. Logika sederhananya array itu
bisa disamakan dengan dua orang dengan nama yang sama didalam suatu komunitas,
untuk membedakan antara nama yang satu atau dengan nama yang lain maka
diberikan initial tambahan untuk setiap nama.
Karakteristik
Array
a. Mempunyai
batasan dari pemesanan alokasi memori (bersifat statis).
b. Mempunyai
tipe data sama (bersifat homogen).
c. Dapat
diakses secara acak.
Deklarasi
Array
Ada tiga hal yang harus diketahui
dalam pendeklarasian, yaitu :
a. Type
data array.
b. Nama
variable array.
c. Subkrip
/ index array.
Contoh
deklarasai array adalah sebagai berikut :
int A[10], artinya variabel A adalah
kumpulan data sebanyak 10 bilangan bertipe integer.
Penggunaan
Array
Pada dasarnya penggunaan array
sangat luas tidak hanya digunakan pada bahasa pemrogaman. Contoh penggunaan
array sebagai berikut :
1.
Array digunakan untuk suatu database, contoh : tabel.
2.
Array digunakan untuk operasi matematika seperti vektor.
3.
Digunakan dalam bentuk struktur data lain, contohnya list.
Pengurutan
Array
Pengurutan atau sorting adalah
proses yang paling sering dilakukan dalam pengolahan data, pengurutan dibedakan
menjadi dua, yaitu :
1. Pengurutan
internal
Pengurutan
dilakukan terhadap sekumpulan data di media memory internal komputer di mana
data dapat diakses elemennya secara langsung.
2.
Pengurutan eksternal
Pengurutan data
di memory sekunder. Biasanya data bervolume besar sehingga tidak mampu dimuat
semuanya di memory utama.
Keunggulan
Dan Kelemahan Array
q
Keunggulan array adalah sebagai berikut :
a.
Array sangat cocok untuk pengaksesan acak.
Sembarang elemen di array dapat diacu secara langsung tanpa melalui
elemen-elemen lain.
b.
Jika berada di suatu lokasi elemen, maka sangat
mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen
penerus.
c.
Jika elemen-elemen array adalah nilai-nilai
independen dan seluruhnya harus terjaga,maka penggunaan penyimpanannya sangat
efisien.
q Kelemahan Array adalah sebagai berikut :
Array mempunyai fleksibilitas
rendah, sehingga tidak cocok untuk berbagai aplikasi karena array
mempunyai batasan sebagai berikut:
a.
Array harus bertipe homogen. Kita tidak dapat
mempunyai array dimana satu elemenadalah karakter, elemen lain bilangan, dan
elemen lain adalah tipe-tipe lain.
Kebanyakan bahasa
pemrograman mengimplementasikan array statik yang sulitdiubah ukurannya di
waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka
representasi statis
1.
ARRAY DIMENSI SATU
Deklarasi :
Type_Data Nama_Variabel [index]
Rumus untuk
menentukan jumlah elemen dalam array adalah :
n
p(Index Array)
i = 1
ket:
p =
Perkalian dari index sebelumnya (untuk arraybdimensi dua dan tiga).
Pemetaan (mapping) array dimensi satu ke
storage
Rumus : @A[i]
= B + (i – 1) * L
Dimana : @A[i] : Posisi
array yang dicari
B : Posisi
awal index di memori computer
i : Subkrip
atau index array yang di cari
L : Ukuran
atau besar memori suatu tipe data
2.
ARRAY DIMENSI DUA
Deklarasi :
Type_Data Nama_Variabel [index1] [index2]
Menentukan
jumlah elemen dalam array dimensi dua :
n
p(Index Array)
i = 1
ket:
p =
Perkalian dari statemen sebelumnya
Pemetaan
(mapping) array dimensi dua ke storage terbagi dua cara pandang
(representasi) yang berbeda yaitu :
1)
Secara kolom per kolom (coloumn major order /
CMO)
@M[i][j] =
M[0][0] + {(j – 1) * K + (i – 1)} * L
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 di cari, M[0][0 = Posisi alamat awal index array, i = Baris, j =
Kolom, L = Ukuran memory type data, K = Banyaknya elemen per kolom, N =
Banyaknya elemen per baris.
3.
ARRAY DIMENSI TIGA
Deklarasi
: type_Data Nama_Variabel [index1][index2][index3]
Menentukan jumlah elemen dalam array
dimensi tiga :
N
p (Index
Array)
i = 1
p = Perkalian dari statemen sebelumnya
Pemetaan (mapping) array dimensi tiga ke
storage
RUMUS :
@M[ M[m][n][p] =
M[0][0][0] + {((m-1) *
(jum.elemen2*jum.elemen3))
+ ((n-1)*(jum.elemen 3)) * ((p-1)} * L
Contoh program
Matriks :
program Jumlah_Matrik;
uses wincrt;
const
Orde = 3;
type
Matrik = array[1..orde,1..orde] of integer;
var
M1, M2, H : matrik;
I, J : integer;
procedure Awal;
begin
Writeln('Latihan Pascal 3 : Array');
Writeln('------------------------');
Writeln;
Writeln('Nama : Saputri Phonna');
Writeln('NIM : 1405020054 ');
Writeln;
end;
procedure JumlahMatrik(var Mat1, Mat2,
MatHasil : matrik);
begin
for I := 1 to orde do
for J := 1 to orde do
MatHasil[I,J] := Mat1[I,J] + Mat2[I,J];
end;
procedure BacaData(var Mat : matrik);
begin
for I := 1 to orde do
for J := 1 to orde do
begin
Write('Nilai[',I,',',J,'] = ');
Readln(Mat[I,J]);
end;
end;
procedure
TulisMatrik(var Mat : matrik);
begin
for I := 1 to
orde do
begin
for J := 1 to
orde do
begin
Write(Mat[I,J]:5);
end;
Writeln;
end;
end;
begin
ClrScr;
Awal;
Writeln('Isi
matrik pertama :');
BacaData(M1);
Writeln;
Writeln('Isi
matrik kedua :');
BacaData(M2);
Writeln;
JumlahMatrik(M1,
M2, H);
Writeln('Penjumlahan
matrik pertama dan kedua :');
TulisMatrik(H);
Writeln;
Write('Tekan
Enter...');
Readln;
end.
0 komentar: