Record (Rekaman) Nurdiansah PTIK 09 UNM
Pengertian tipe terstruktur yang terdiri atas sejumlah elemen yang tipenya tidak harus sama. Elemen di dalam suatu record disebut dengan istilah field (medan). Perbedaan utama dari array adalah bahwa elemen dalam suatu array semuanya memiliki tipe yang sama sedang elemen- elemen di dalam rekaman tidak harus bertipe sama. Nurdiansah PTIK 09 UNM
Beberapa contoh pemakaian misalnya : Dalam aktivitas sehari-hari, pemakaian rekaman lebih banyak digunakan dibanding dengan larik. Beberapa contoh pemakaian misalnya : - informasi tertulis pada kartu dan tersimpan dalam sebuah kotak, - sebagai informasi yang diketikkan lewat komputer dan tersimpan dalam harddisk. Biasanya rekaman-rekaman dalam komputer tersimpan dalam bentuk berkas (file) yang tidak menggantung pada program yang menggunakannya Nurdiansah PTIK 09 UNM
Bentuk umum deklarasi rekaman Type pengenal = record medan1 : tipe1; medan2 : tipe2; ... medann : tipen end; Bentuk umum deklarasi rekaman Nurdiansah PTIK 09 UNM
pengenal pengenal yang menunjukkan tipe data yang akan dideklarasikan medan1,......, medann nama medan yang akan digunakan. tipe1, ......., tipen sembarang tipe data yang telah dideklarasikan sebelumnya Keterangan Nurdiansah PTIK 09 UNM
Contoh deklarasi rekaman Type Tgl_kalender = record Tanggal : 1..31; Bulan : 1..12; Tahun : 1900..2000 end; Siswa = record Nama : string[25]; Alamat : string[35]; Kelamin : (L,P); Kelas : 1..6 Nurdiansah PTIK 09 UNM
Rekaman Bebas Adakalanya rekaman memiliki medan-medan yang tetap. Bentuk rekaman yang salah satu medannya bisa bervariasi tergantung dari kebutuhan disebut dengan rekaman bebas (variant record). Rekaman bebas terbagi menjadi dua bagian, yaitu bagian tetap dan bagian bebas, yaitu bagian yang akan dipilih sesuai dengan kasus yang dihadapi. Medan dalam bagian bebas disebut dengan tag field Rekaman Bebas Nurdiansah PTIK 09 UNM
Type pengenal = record {*bagian tetap*} Medan1 : tipe1; . Medann : tipen; {* bagian bebas *} Case tag : tipe_tag of Label1 : (medan : tipe: medan : tipe); Nurdiansah PTIK 09 UNM
Aturan Tag file dengan kata baku “case” Nilai dari tag field diantara case dan of menentukan struktur yang akan digunakan untuk keseluruhan rekaman. Tag field mempunyai dua komponen, yaitu pengenal medan yang menyimpan nilai tag fied dan tipe data yang menunjukkan semua kemungkinan nilai tag field. Setiap struktur bebas harus ditulis di dalam tanda kurung. Semua yang ditulis dalam kurung mengunakan aturan yang sama seperti halnya pada bagian tetap Aturan Tag file dengan kata baku “case” Nurdiansah PTIK 09 UNM
Sebuah statement end menutup bagian tetap dan bagian bebas Dimungkinkan adanya bagian bebas dalam bagian bebas yang lain (nested variant). Sebuah statement end menutup bagian tetap dan bagian bebas Nurdiansah PTIK 09 UNM
type Status = (T,P,J); Gaji = record Nama_Pegawai : string[25]; Nomor_identitas : string[10]; Bagian : string[15] case Stat_Peg : Status of T : (Gaji : integer); P : (Gaji_Per_Jam, Jumlah_Jam_Lembur, Max_Jam_Minggu, Lembur : integer); J : (Upah_Per_Jam, Jumlah_Jam_Kerja, Jam_Lembur : integer); end; Contoh rekaman bebas Nurdiansah PTIK 09 UNM
Deklarasi di atas juga bisa ditulis sebagai : Type Gaji = record Nama Pegawai : string[25]; Nomor_Identitas : string[10]; Bagian : string[15]; case Stat_Peg : (T,P,J) of .... end Nurdiansah PTIK 09 UNM
Tipe data tag bisa langsung ditulis di belakang nama tag field. Untuk memanipulasi medan pada suatu rekaman, harus ditulis dengan menggunakan bentuk umum : nama_rekaman.nama_medan Notasi ini disebut penanda medan (field designator). Contoh untuk rekaman bertipe siswa : Var Murid : Siswa; Nurdiansah PTIK 09 UNM
Medan Nama dan Alamat dapat dibaca dengan menggunakan statemen : readln(Murid.Nama) ; readln(Murid.Alamat); Untuk mengakses sejumlah medan dalam saat yang bersamaan dengan menggunakan statemen with. Bentuk umum statemen with adalah : with nama_rekaman do Dengan nama_rekaman adalah nama rekaman yang akan diakses Nurdiansah PTIK 09 UNM
Contoh menggunakan deklarasi rekaman bertipe siswa, dan statemen with, maka kita bisa mengakses rekaman murid sebagai berikut : with Murid do begin readln(Nama); readln(Alamat); readln(Kelas); readln(Kode_jnskelamin); if jnskelamin=1 then kelamin :=L else kelamin:=P end Statement “with” Nurdiansah PTIK 09 UNM
Atau : readln(Murid. Nama); readln(Murid. Alamat); readln(Murid Atau : readln(Murid.Nama); readln(Murid.Alamat); readln(Murid.Kelas); readln(Kode_jnskelamin); if Kode_jnskelamin=1 then Murid.Kelamin :=L else Murid.kelamin :=P Nurdiansah PTIK 09 UNM
To be continue… Nurdiansah PTIK 09 UNM