Tugas III Pemetaan Array

SOAL :
  1. 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:

Program KUIS

Soal :
1.  Buatlah sebuah contoh kasus array/larik beserta algoritmanya !
2. Buatlah sebuah contoh kasus record beserta algoritmanya !
3. Buatlah sebuah contoh kasus penggabungan array dan record beserta algoritmanya !
4. Jelaskan tentang array dan record secara konsep !
Penyelesaian :
1. Buatlah sebuah contoh kasus array/larik beserta algoritmanya !
Jawab :
Program menentukan_nilai_kode;
Uses winCrt;
VarKode:array[1..5] of Integer;
Begin
Kode[1]:=4;    
Kode[2]:=9;
Kode[3]:=13;
Kode[4]:=15;
Kode[5]:=20;
Writeln;
writeln('Jadi, nilai kode ke 4 adalah =',kode[4]);
Readln;
End.







Outputnya :
Algoritmanya :
1.      Mulai/Start
2.      Var kode
3.      Masukkan kode
4.      Kode[1]:=4
Kode[2]:=9
Kode[3]:=13
Kode[4]:=15
Kode[5]:=20
5.      Tampilkan nilai kode ke 4
6.      Selesai/end.

2.      Buatlah sebuah contoh kasus record beserta algoritmanya !
Jawab :
Program Biodata_diri;
Uses winCrt;
Type
Biodata=record
Nama:string[25];
tempatlahir:string[10];
tanggallahir:string[20];
Alamat:string[15];
NoHp:string[12];
end;
Var B: Biodata;
Begin
clrscr;
            write('Masukkan nama            :'); readln(B.nama);
            write('Masukkan tempatlahir     :'); readln(B.tempatlahir);
            write('Masukkan tanggallahir    :'); readln(B.tanggallahir);
            write('Masukkan alamat          :'); readln(B.alamat);
            write('Masukkan nohp            :'); readln(B.nohp);
            writeln;
            writeln('Biodata Diri Anda');
            writeln('Nama                   :', B.nama);
            writeln('Tempatlahir            :', B.tempatlahir);
            writeln('Tanggallahir           :', B.tanggallahir);
            writeln('Alamat                 :', B.alamat);
writeln('NoHp                   :', B.nohp);
readln;
end.





Outputnya :
Algoritmanya :
1.      Mulai/start
2.      Type Biodata = record
Nama,tempatlahir,tanggallahir,alamat,nohp : string
3.      Var B
4.      Masukkan nama,tempatlahir,tanggallahir,alamat,nohp
5.      Tampilkan biodata diri anda
6.      Selesai/end.

3.      Buatlah sebuah contoh kasus penggabungan array dan record beserta algoritmanya !
Jawab :
Program Mahasiswa_yang_mendapat_beasiswa;
uses wincrt;
Type mahasiswa=record
nama:string; NIM:integer;
jumlah:byte;
end;
var beasiswa:array [1..10] of mahasiswa;
n,i,j:integer;
begin
write(' Banyaknya data yang diinginkan= ');
readln(n);
for i:=1 to n do
begin
write('masukkan nama mahasiswa= ');readln(beasiswa[i].nama);
write(' masukkan NIM=');readln(beasiswa[i].NIM);
write(' masukkan Beasiswa=Rp. ');readln(beasiswa[i].jumlah);
writeln;
end;
for i:=1 to n do
begin
writeln(‘Data Mahasiswa yang Mendapatkan Beasiswa’);
writeln('nama           :',beasiswa[i].nama);
writeln('nim            :',beasiswa[i].nim);
writeln('beasiswa       :',beasiswa[i].jumlah);
writeln;
end;
end.












Outputnya :
Algoritmanya :
1.      Mulai/start
2.      Type mahasiswa:record
Nama: string
Nim: integer
Jumlah: Byte
3.      Var beasiswa:array
n,i,j: integer
4.      Masukkan banyaknya data yang diinginkan
5.      For i:= 1 to n do
6.      Masukkan nama,nim,beasiswa
7.      For i:= 1 to n do
8.      Tampilkan data mahasiswa yang mendapatkan beasiswa
9.      Selesai/end.

4.      Jelaskan tentang array dan record secara konsep !
Jawab :
A.   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.
Pengertian array satu dimensi, dua dimensi dan multi dimensi.
·         Array satu dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses hanya melalui 1 indeks atau subskrip.
Bentuk umum pendeklarasian:
nama_array[jumlah_elemen];
·         Array dua dimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom.
Bentuk umum pendeklarasian:
nama_array[jumlah_eleman_baris][jumah_eleme_kolom];
·         Array multidimensi
Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan diakses melalui banyak indeks atau subskrip. Array seperti ini biasa digunakan untuk matik, array 2 dimensi juga termasuk kedalam array multidimensi.
*      DEKLARASI ARRAY
Didalam penulisan bahasa pemograman setiap penggunaan array harus dideklarsikan terlebih dahulu. Pendeklarasian array diawali dengan nama variabel array diikuti dengan indeks array yang dituliskan didalam tanda “[]” , diikuti dengan kata cadangan of dan tipe data yang dibutuhkan. Berikut bentuk penulisan;
Nama_Variable : array [..tipe index ..] of tipe data;
Contoh :
Var
A : array[1..4] of integer;
B : array[1..5] of string;
C: array[1..10] of real;
Keterangan:
A,B,C merupakan tanda pengenal/ nama variabel dari array;
1..4 : merupakan tipe indek dari array, yang menunjukan banyaknya data yang mampu disimpan.
Integer : menunjukan bahwa data yang diinput berupa bilangan bulat.

B.   Record.
Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil dengan  menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield. Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.
*      DEKLARASI RECORD
Type
Variable = record
…field = type data
…field = type data
…field = type data
End.
Perbedaan array dan record :
a.      Elemen record bersifat heterogen, yaitu  campuran beberapa tipe data, sedangkan elemen array bersifat homogen.
b.      Elemen record didefinisikan simbol/identifer sedangkan elemen array diidentifikasi dengan indeks.


0 komentar: