200 likes | 576 Views
PERTEMUAN KE-4. STRUKTUR DATA ARRAY. Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya. Pemetaan Array ke Memori Kasus : Array Dimensi 1. Array A(1:5).
E N D
PERTEMUAN KE-4 STRUKTUR DATAARRAY Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya
Pemetaan Array keMemoriKasus: Array Dimensi 1 Array A(1:5) Array A (dimensi 1) dipetakankememorimulaialamat 32004 (Base address). Kebutuhanmemoritiapelemen (S) = 1 byte. Memori Alamatawalelemen A[i] dimemoridihitungsbb : B + (i – L) * S Contoh: Elemen A[4] alamatawalnyadimemoriadalah: 32004 + (4 – 1) * 1 = 32004 + 3 * 1 = 32007
Pemetaan Array keMemoriKasus: Array Dimensi 1 Array X(-2:2) Array X (dimensi 1) dipetakankememorimulaialamat 32004 (Base address). Kebutuhanmemoritiapelemen (S) = 2 byte. Memori Alamatawalelemen X[i] dimemoridihitungsbb : B + (i – L) * S Contoh: Elemen X[1] alamatawalnyadimemoriadalah: 32004 + (1 – (-2)) * 2 = 32004 + 3 * 2 = 32010
Pemetaan Array keMemoriKasus: Array Dimensi 2 Ada 2 metodepemetaan array dimensi 2 kememori: Row major order, yaitumemetakanelemen-elemen array kememorisecarabarisdemibaris. Column major order, yaitumemetakanelemen-elemen array kememorisecarakolomdemikolom. Memori Memori
Pemetaan Array keMemoriKasus: Array Dimensi 2 Array A(1:3,1:4) Array A (dimensi 2) dipetakankememorimulaialamat 500000(Base address) dgnmetoderow major order. Kebutuhanmemoritiapelemen (S) = 1 byte. Memori Alamatawalelemen A[i,j] dimemoridihitungsbb : B + (i-L1) * (U2-L2+1) * S + (j-L2) * S Contoh: Elemen A[2,3] alamatawalnyadimemoriadalah: 500000 + (2-1)*(4-1+1)*1 + (3-1)*1 = 500000 + 4 + 2 = 500006
Pemetaan Array keMemoriKasus: Array Dimensi 2 Array X(0:2,-1:2) Array X (dimensi 2) dipetakankememorimulaialamat 500000(Base address) dgnmetodecolumn major order. Kebutuhanmemoritiapelemen (S) = 1 byte. Memori Alamatawalelemen A[i,j] dimemoridihitungsbb : B + (j-L2) * (U1-L1+1) * S + (i-L1) * S Contoh: Elemen A[1,1] alamatawalnyadimemoriadalah: 500000 + (1-(-1))*(2-0+1)*1 + (1-0)*1 = 500000 + 2*3 + 1 = 500007
Pemetaan Array keMemoriKasus: Array Dimensi n Memori Bagaimanamenghitungalamatawalelemen A[i1,i2,i3,…,in] jika array dimensi n dipetakankememori ?
Pemetaan Array keMemoriKasus: Array SegitigaAtas Array segitigaatas A dipetakankememoridengan base address = 40000. Kebutuhanmemoritiapelemen (S) = 1 byte. Alamatawalelemen A[i,j] dimemoridihitungsbb : B + ((i-1)*N+j-i*(i-1)/2 - 1) * S Contoh: Elemen A[3,4] alamatawalnyadimemoriadalah: = 40000 + ((3-1)*5+4 - 3*(3-1)/2 - 1) * 1 = 40000 + (2*5 + 4 – 3 * 2/2 - 1) * 1 = 40000 + (10+4-3*1 - 1)*1 = 40000 + 14 – 3 – 1 = 40010
Pemetaan Array keMemoriKasus: Array SegitigaBawah Array segitigabawah A dipetakankememoridengan base address = 40000. Kebutuhanmemoritiapelemen (S) = 1 byte. Alamatawalelemen A[i,j] dimemoridihitungsbb : B + (i*(i-1)/2 + j - 1) * S Contoh: Elemen A[4,3] alamatawalnyadimemoriadalah: = 40000 + (4*(4-1)/2 + 3 - 1) * 1 = 40000 + (4*3/2+3-1) = 40000 + 9 – 1 = 40008
JENIS-JENIS DATA • Tipe Data Sederhana - Data Sederhana Tunggal : integer, real, boolean, karakter - Data SederhanaMajemuk : string • Tipe Data Berstruktur - Struktursederhana : array, record - Strukturmajemuk - Linier : stack (tumpukan), queue (antrian), linear linked list - Non Linier : tree (pohon), graph
Tipe RECORD • Record adalah koleksi satuan data yang heterogen. • Satuan data sering disebut field. • Field diacu dengan menggunakan nama field-nya. • Contoh: Data seorang mahasiswa terdiri atas: MHS: Nama : string NIM : string Usia : byte Menikah : boolean Tinggi_cm : word
Tipe RECORD • Identifikasi suatu record dilakukan dengan menentukan suatu field yang nilainya unik, artinya tidak boleh ada yang nilainya sama. Field seperti ini disebut key field. • Misalnya, untuk record mahasiswa, biasanya dipakai NIM sebagai key field. • Koleksi record yang sama struktur fieldnya disebut file atau berkas.
Tipe RECORD • Suatu field dapatbertipe data record juga. • Contoh : MHS: Nama : t_NAMA NIM : string t_NAMA : NamaDepan : string NamaBelakang : string
Tipe RECORD • Contoh cara mengacu field suatu record. MHS : Nama : t_NAMA NIM : string Variabel Mhs_STMIK bertipe MHS. Mhs_STMIK.NIM Mhs_STMIK.Nama.NamaDepan Mhs_STMIK.Nama.NamaBelakang
Tipe RECORD • PemetaanTipe Record keMemori MHS: Nama : string NIM : string Usia : byte Menikah : boolean Tinggi_cm : integer .
GabunganStruktur Record dan Array Contohkasus Data mahasiswaterdiriatasberbagaitipe. Nama : STRING NIM : STRING TTL : STRING Alamat : STRING IPK : REAL Tinggibadan _cm: INTEGER Beratbadan_kg : REAL Jumlahsaudara : INTEGER Untukmencatat data 500 orangmahasiswamakadigunakantipe Array(1:500) dengantipe RECORD.
GabunganStruktur Record dan Array Padakasusdiatas, pendeklarasianstrukturdatanyasebagaiberikut: Tipe MHS: Nama : STRING NIM : STRING TTL : STRING Alamat : STRING IPK : REAL Tinggibadan : REAL Beratbadan : REAL Jumlahsaudara: INTEGER Tipe DATA (1:500) = (DATA(i)), i=1,2,…,500; DATA(i) bertipe MHS
GabunganStruktur Record dan Array Dapatkahterjadisebaliknya, struktur record mengandungtipe array pada field-nya?