Nurdiansah PTIK 09 UNM 1
Record (Rekaman)
Nurdiansah PTIK 09 UNM 2
Pengertiantipe 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 3
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 4Bentuk umum deklarasi rekaman
Type pengenal = recordmedan1 : tipe1;medan2 : tipe2;.........medann : tipen
end;
Nurdiansah PTIK 09 UNM 5Keterangan
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
Nurdiansah PTIK 09 UNM 6
Contoh deklarasi rekamanType Tgl_kalender = record
Tanggal : 1..31;Bulan : 1..12;Tahun : 1900..2000
end;
Siswa = recordNama : string[25];Alamat : string[35];Kelamin : (L,P);Kelas : 1..6
end;
Nurdiansah PTIK 09 UNM 7Rekaman 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
Nurdiansah PTIK 09 UNM 8
Type pengenal = record{*bagian tetap*}Medan1 : tipe1;Medan2 : tipe2;...Medann : tipen;
{* bagian bebas *}Case tag : tipe_tag of
Label1 : (medan : tipe: . . .medan : tipe);
Nurdiansah PTIK 09 UNM 9
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
Nurdiansah PTIK 09 UNM 10
Dimungkinkan adanya bagian bebas dalam bagian bebas yang lain (nested variant).
Sebuah statement end menutup bagian tetap dan bagian bebas
Nurdiansah PTIK 09 UNM 11Contoh rekaman bebas
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;
Nurdiansah PTIK 09 UNM 12
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 13
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 14
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 doDengan nama_rekaman adalah nama rekaman yang akan diakses
Nurdiansah PTIK 09 UNM 15Statement “with”
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 :=Lelse kelamin:=P
end
Nurdiansah PTIK 09 UNM 16
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 17
To be continue…
Top Related