๐ Daftar Isi
Definisi Record
Tipe data record merupakan tipe data terstruktur. Tipe data record digunakan untuk
menyimpan sejumlah data dengan nilai dengan tipe data yang berbeda dalam satu wadah.
Perbedaan record dan array, jika array semua elemennya harus bertipe sama, kalau record semua elemennya boleh bertipe berbeda antara satu sama lainnya.
Deklarasi Penulisan
Type
pengenal=record
namafield-1:type
namafield-2:type
...
namafield-n:type
end
atau dapat juga dideklarasikan sebagai berikut
var
pengenal=record
namafield-1:type
namafield-2:type
...
namafield-n:type
end
Contoh :
type
data_mahasiswa = record
nim : string[10];
nama : string[25];
alamat : string[20];
nilai : longint;
end;
var
mahasiswa : data_mahasiswa;
atau bisa juga langsung kita deklarasikan pada bagian var
var
mahasiswa : record
nim : string[10];
nama : string[25];
alamat : string[20];
nilai : longint;
end;
Untuk mengakses elemen record kita menggunakan nama identifiernya diikuti dengan tanda titik (.). perhatikan contoh berikut ini:
type
struktur_mahasiswa = record
nim : string[10];
nama : string[25];
alamat : string[20];
nilai : longint;
end;
var
mahasiswa : struktur_mahasiswa;
begin
mahasiswa.nim := โ235121';
mahasiswa.nama := โMilly Mamet';
mahasiswa.alamat:= โJl. Otista no 64c';
mahasiswa.nilai:=98;
writeln(โNIM :โ,mahasiswa.nim);
writeln(โNama :',mahasiswa.nama);
writeln(โAlamat :',mahasiswa.alamat);
writeln(โNilai :',mahasiswa.nilai);
readln;
end.
Statement With
Statement with digunakan untuk menyingkat penulisan dalam membaca elemen record. Sintaks umumnya adalah with namarecord do. Potongan kode program di atas dapat kita ganti menjadi:
with mahasiswa do
begin
nim := โ235121';
nama := โMilly Mamet';
alamat:= โJl. Otista no 64c';
nilai:= 98;
end;
Sehingga dengan menggunakan with maka kita tidak perlu untuk menuliskan nama record sebelum elemen recordnya.
Dalam contoh sebelumnya penggunan tipe data record hanya dapat menyimpan satu data saja. (satu data mahasiswa saja) . Untuk dapat menyimpan sejumlah data mahasiswa maka dapat digunakan array yang bertipe record. Untuk mengakses tiap data mahasiswa pada array data mahasiswa, kita bisa memanfaatkan indeks array seperti pada pelajaran array sebelumnya. Perhatikan contoh berikut ini:
type
data_mahasiswa = record
nim : string[10];
nama : string[25];
alamat : string[20];
nilai : longint;
end;
var
mahasiswa : array[1..10] of data_mahasiswa;
i : integer;
begin
for i:= 1 to 10 do
begin
writeln(โInput mahasiswa ke-โ, i);
with mahasiswa[i] do
begin
write(โkode=โ);readln(nim);
write(โnama=โ);readln(nama);
write(โalamat=โ);readln(alamat);
write(โnilai=โ);readln(nilai);
end;
end;
for i:=1 to 10 do
begin
writeln(โData Mahasiswa ke-โ, i);
write(โkode=โ);
writeln(mahasiswa[i].nim);
write(โnama=โ);
writeln(mahasiswa[i].nama);
write(โalamat=โ);
writeln(mahasiswa[i].alamat);
write(โnilai=โ);
writeln(mahasiswa[i].nilai);
end;
end.
Jika dalam suatu record terdapat beberapa field yang sama tipenya maka dapat kita gunakan array.
Contoh ada data barang yang mempunyai struktur:
- Nama barang -> bertipe String
- Jumlah unit barang ke 1 -> bertipe Byte
- Jumlah unit barang ke 2 -> bertipe Byte
- Jumlah unit barang ke 3 -> bertipe Byte
Maka deklarasi recordnya dapat kita nyatakan sebagai berikut:
type
data_brg = record
namaBrg : string[15];
unitBrg : array[1..3] of byte;
end;
var
Barang : array[1..10] of data_brg;
Untuk mengakses array unitBrg dalam record data_brg maka dapat kita gunakan indeks array seperti contoh berikut:
Barang[1].unitBrg[1] := 5;
Berikut adalah contoh listing lengkap program:
type
data_brg = record
namaBrg : string[15];
unitBrg : array[1..3] of byte;
end;
var
Barang : array[1..10] of data_brg;
i : integer;
Begin
Barang[1].namaBrg := โScannerโ;
Barang[1].unitBrg[1] := 4;
Barang[1].unitBrg[2] := 5;
Barang[1].unitBrg[3] := 3;
Barang[2].namaBrg := โPrinterโ;
Barang[2].unitBrg[1] := 1;
Barang[2].unitBrg[2] := 2;
Barang[2].unitBrg[3] := 4;
For i:=3 to 10 do
begin With barang[i] do
Begin
Writeln(โBarang ke-โ, i);
Write(โnama=โ);Readln(namaBrg);
Write(โjumlah 1= โ);Readln(unitBrg[1]);
Write(โjumlah 2= โ);Readln(unitBrg[2]);
Write(โjumlah 3= โ);Readln(unitBrg[3]);
End;
End;
End.
Tipe record dapat menjadi elemen dari record lainnya. Sebuah record dapat memiliki elemen yang juga bertipe record.
Contoh: sebuah data pegawai mempunyai struktur sebagai berikut :
- Nama pegawai -> string
- Mulai masuk -> – Tgl
- Bln
- Thn
- Alamat pegawai -> – Jalan
- Kota
- Nilai -> – Nilai pokok
- Lembur
- Tunjangan
Maka deklarasi record data pegawai tersebut dapat kita nyatakan sebagai berikut:
type
masuk = record
tgl : 1..31;
bln : 1..12;
thn : integer;
end;
alamat = record
jalan : string[20];
kota : string[10];
end;
nilaipeg = record
pokok,tunjangan,lembur : real;
end;
pegawai = record
nama : string[20];
tglmasuk : masuk;
almt : alamat;
nilai : nilaipeg;
end;
var
datapegawai : array [1..10] of pegawai;
atau bisa juga kita deklarasikan secara langsung sebagai berikut:
type
pegawai = record
nama: string[20];
tglmasuk: record
tgl : 1..31;
bln : 1..12;
thn : integer;
end;
alamat : record
jalan : string[20];
kota : string[10];
end;
nilaipeg : record
pokok,tunjangan,lembur : real;
end;
end;
var
datapegawai : array [1..100] of pegawai;
Untuk mengakses misalnya nilai pokok dari pegawai nomor 50. Maka caranya adalah seperti ini:
Datapegawai[50].nilaipeg.pokok := 5000000;
Untuk mengakses nama kota dari pegawai nomor 50 adalah sebagai berikut:
Datapegawai[50].alamat.kota := โBekasiโ;
Materi Lengkap
Silakan baca juga beberapa artikel menarik kami tentang Array dan Record, daftar lengkapnya adalah sebagai berikut.