Materi III Rekaman/Record REKAMAN Rekaman atau record adalah sekumpulan data yang disusun dari tipe data yang sama atau tipe data yang berbeda. Pada prinsipnya rekaman sama dengan larik namun perbedaan utama adalah pada larik disusun dari komponen-komponen yang mempunyai tipe data yang sama namun pada rekaman boleh disusun dari komponen yang sama atau yang bebeda. Inisialisasi adalah membentuk struktur data sekaligus pemesanan memori computer untuk kebutuhan penyimpanan stuktur data. Bentuk inisialisasi : Nama_record = record Field1 : tipe-data1 Field2 : tipe-data2 Field3 : tipe-data3 Fieldn : tipe-datan End Tipedata yang digunakan adalah tipe data atomik (sederhana) ataupun tipe data terstruktur. Contoh : Mahasiswa = record Nama : string[20]; NIM : string[9]; Kelas : string[5]; Umur : integer; IPK : real; End; OS Field 1 Field 2 Field 3 Rekaman Secara Logika Field n Fiel 1 Field 2 Fiel 3 ... Field n free Rekaman Secara Fisik Rekaman Besarnya memori dapat dihitung dengan : M = L field 1 + L field 2 + L field 3 + …. + L. field n. Untuk alamat field dapat dicari dengan Add field = b + offset Offset adalah selisih alamat awal field (komponen) dengan alamat awal record Nama Nim kelas umur ipk OS Nama NIM Kelas Umur ipk free M (Mahasiswa) : L Nama + L Nim + L Kelas + L Umur + L IPK 20 + 9 + 5 + 2 + 4 40 Byte memori Tabel Offset untuk mahasiswa Field Tipe data Length Offset Nama String 20 0 NIM String 9 20 Kelas String 5 29 Umur Integer 2 34 Ipk Real 4 40 Add kelas = b + offset = b + 29 Contoh 2: Gambaran Logika Pegawai = record NIP NIP : String[10] Nama : String[20] Alamat : string[30] Tgl_lahir : string[8] Jk : Char Nama 10 20 Alamat 30 8 jk 1 M (Pegawai) = L.Nip+L.Nama+LAlamat+L.Tgl_Lahir +L.JK 10+20+30+8+1 end Tgl OS NIP =69 byte memori Field Type Data Length Offset NIP Nama Almt String String string 10 20 30 0 10 30 Tgl Jk String Char 8 1 60 68 Nm Tgl Jk Free Contoh 3: Date = record Tanggal : integer bulan : integer tahun : longint End Pegawai = record Nip : String[10] Nama : String[15] Tgl_lahir : Date TMT : Date Gapok : Real end NIP Nama Gapok Tabel Offset untuk pegawai Field T. data length off Nip String 10 0 NAMA String 15 10 Tgl_lahir Date 8 25 Tanggal Integer 2 25 Bulan Integer 2 27 Tahun Longint 4 29 Date 8 33 Tanggal Integer 2 33 Bulan Integer 2 35 Tahun Longint 4 37 Real 6 41 TMT Gapok Add tgl_lahir = b+25 Add tgl_lahir.Bulan b+27 Contoh 1 : Nilai : Array[1..10] of integer Mahasiswa = record Nama : string[20] NIM : String[8] Kelas : string[5] Nimk : Nilai IPK : Real End 1. Gambarkan Secara Logika untuk mahasiswa 2. Hitung kebutuhan memori untuk Mahasiswa 3. Cari alamat untuk data nilai mata kuliah (nimk) yang 7, jika base adress adalah 500 Contoh 2 : Dengan menggunakan data di atas, deklarasi struktur data Mhs : array[1..20] of mahasiswa Maka : 1. Gambarkan secara logika untuk mhs 2. Cari alamat untuk mhs[6].nimk[6]