Record merupakan suatu kumpulan data item yang masing-masing mempunyai jenis data berbeda. Data item yang merupakan elemen record biasanya disebut dengan FIELD.
CARA MENDEKLARASIKAN RECORD
Bentuk umum deklarasi suatu variabel berjenis record adalah sbb:
TYPE identifier = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
……………………..
nama_field_n : jenis;
END;
1. Contoh 1:
VAR nilai : RECORD
Nilai_1 : integer;
Nilai_2 : integer;
END;
2. Contoh 2:
TYPE date = RECORD
Tanggal : 1..31;
Bulan : 1…12;
Tahun : 1900..2000;
END;
VAR event1,event2 : ARRAY [1..10] OF date;
3. Contoh 3:
TYPE account = RECORD
cust_no : integer;
cust_type : char;
cust_balance : real;
END;
VAR customer : account;
MEMPROSES VARIABEL BERJENIS RECORD
Perhatikan deklarasi variabel berikut:
TYPE nilai : RECORD
Nilai1 : real;
Nilai2 : real;
END;
VAR x,y : nilai;
Untuk memproses variabel x dan / atau y dilakukan dengan cara menyebutkan field designatornya, yang terdiri dari atas:
Nama_record.nama_field
Pada deklarasi diatas yang dimaksud dengan field designator-nya adalah :
x.nilai1
x.nilai2
y.nilai1
y.nilai2
Jadi jika ingin membaca variabel x atau y atau keduanya, maka bentuk statement-nya adalah:
READ (x.nilai1, x.nilai2, y.nilai1, y.nilai2);
STATEMENT WITH
Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat digunakan statement WITH. Dengan statement ini penulisannya akan lebih sederhana. Bentuk Umum penulisan statement WITH ini adalah:
WITH nama_record DO statement
Perhatikan deklarasi dibawah ini :
TYPE x = RECORD
No : integer;
Kode : char;
Juml : integer;
Harga : real;
END;
VAR p,q : x;
Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITHbentuknya menjadi:
WITH p,q DO read (no, kode, juml, harga);
Bandingkan jika digunakan cara sebelumnya :
Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);
ARRAY BERTIPE RECORD
Tipe terstruktur (Array) dapat pula bertipe record. Perhatikan contoh berikut:
type barang=RECORD
namabrg:string[20];
jmlbrg:byte;
hargabrg:real;
total:real;
end;
var
jual:array [1..10] of barang
i,j:integer;
tot1:real;
ARRAY DALAM RECORD
Elemen suatu array juga bisa berupa record. Sebagai contoh dapat dilihat di bawah ini:
Type barang= RECORD
nmbrg:string[20];
jmlbrg:array[1..3]of byte;
hrgbrg:real;
total:real;
end;
var
jual:barang;
barang, i:integer;
RECORD DI DALAM RECORD
Didalam sebuah record memungkinkan berisi record lain. Sebagai gambaran hal ini, perhatikan deklarasi berikut:
RecTanggal = Record
Tanggal,
Bulan,
Tahun :Integer;
End;
RecPegawai = Record
Nomor : LongInt;
Nama : String [35];
TglLahir : RecTanggal;
Gaji : LongInt
End;
Tampak bahwa tipe record bernama RecPegawai berisi record yang lain (RecTanggal). Hal yang menarik yang perlu diperhatikan adalah cara mengakses field seperti Tanggal, Bulan dan Tahun. Notasi yang diperlukan adalah sebagai berikut.
Nama_variabel.TglLahir.Tanggal
Nama_variabel.TglLahir.Bulan
Nama_variabel.TglLahir.Tahun
RECORD BERVARIASI
Record bervaiasi merupakan suatu record dengan field yang bisa berubah pada saat program berjalan. Hal yang perlu diperhatikan adalah bahwabeberapa field yang berada dalam record tidak pernah muncul dalam serempak, hanya akan ada satu field yang terpakai dalam satu saat. Record varian akan memberikan fasilitas untuk menentukan field yang diperlukan pada saat program berjalan (RUN-TIME), berdasarkan keperluannya.
Bentuk umum Record Varian:
TYPE namarecord = RECORD
Nama_field_1 : jenis;
Nama_field_2 : jenis;
……………………..
nama_field_n : jenis;
Case Tagfield:jenis Of
nama_tagfield : (Nama_field:jenis);
nama_tagfield :
(Nama_field_1,
Nama_field_2:jenis);
……………………..
nama_tagfield : (Nama_field_n:jenis);
END;