Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
RECORD Denny Agustiawan,M.pd
STRUKTUR DATA RECORD Denny Agustiawan,M.pd STMIK Asia Malang – 2011
2
Record RECORD, adalah type data kompleks yang menyimpan berbagai macam data yang tergabung menjadi satu kesatuan data. Cara penyimpanan type data record pada memori adalah dengan menyimpan masing- masing fieldnya secara berurutan di dalam memori. Jumlah memori yang diperlukan oleh type data record sebesar total memori yang dibutuhkan untuk masing-masing fieldnya.
3
Record (2) Contoh: 1: var 2: R: record 3: Field1 : integer; 4: Field2 : real; 5: Field3 : string[10]; 6: end; Jumlah memori yang dibutuhkan untuk mengalokasikan variabel tersebut adalah : 2 byte (ukuran field1 = integer) + 6 byte (ukuran field2 = real) + 11 byte (ukuran field3 = string[10]) = 19 byte
4
ARRAY of RECORD Type data array of record, cara penyimpanan pada memori sama seperti penyimpanan type data array, hanya saja ukuran 1 elemen = ukuran 1 record Contoh: 1: TYPE 2: Mhs = Record 3: Nama : String[20]; 4: Alamat : String[40]; 5: Umur : Byte; 6: END; 7: VAR 8: Data: ARRAY [1..10] of Mhs;
5
Array of Record (2) Jika alamat awal elemen pertama array adalah 1000, di mana kah lokasi field Alamat untuk elemen Data[4] Langkah pengerjaan: menentukan ukuran 1 record ukuran 1 record = = 63 byte menentukan lokasi elemen Data[4] lokasi Data[4] = (4-1) * 63 = = 1189 menentukan lokasi alamat untuk elemen Data[4] lokasi alamat untuk elemen Data[4] = = 1210
6
Contoh Soal Cari alamat dari Secara RMO dan CMO dgn Alamat awal = 1000
TYPE tPegawai = RECORD Nama : STRING[20]; Alamat : STRING[30]; Usia : Byte; Gaji : Real; Status : Char; END VAR A : ARRAY [10..30,13..25] of tPegawai; Cari alamat dari A[15,15] A[19,13] A[20,21] Secara RMO dan CMO dgn Alamat awal = 1000
7
Secara RMO L = Lo + {(i-l1) * (u2 – l2 + 1) + (j – l2)} * c
= {5*13+2}*60 = * 60 = = 5020 A[19,13] = {(19-10)*( ) + (13-13)} * 60 = (9*13) * 60 = = 8020 A[20,21] = {(20-10)*( ) + (21-13)} * 60 = (10*13+8) *60 = * 60 = = 9280
8
Secara CMO L = Lo + {(i-l1) + (j-l2) * (u1 – l1 + 1)} * c
= {5 + 2 * 21} * 60 = (5+42) * 60 = = 3820 A[19,13] = {(19-10)+(13-13) * ( )} * 60 = (9 + 0 * 21) * 60 = * 60 = 1540 A[20,21] = {(20-10)+(21-13) * ( )} * 60 = { * 21} *60 = *60 = = 11680
9
Latihan Soal Diberikan segmen program berikut : 1: Type
2: tNRP = RECORD 3: angkatan : integer; 4: jurusan : byte; 5: counter : integer; 6: END; 7: tAlamat = RECORD 8: alamat : string[30]; 9: kota : string[20]; 10: END; 11: tMhs = RECORD 12: NRP : tNRP; 13: nama : string[30] 14: alamat asal : array[1..2] of tAlamat; 15: END; 16: 17: Var i : byte; 18: Mhs : array[ ] of tMhs; Jika alamat awal pada lokasi 1000, tentukan alamat dari data berikut : Mhs[5] Field Kota dari alamat asal[2] Mhs[5] Field jurusan Mhs[5]
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.