Modul 11 Record
Modul 11 Record
1. Deskripsi Singkat
Pada modul 11 ini akan dibahas penggunaan record.
2. Tujuan Praktikum
Setelah praktikum pada modul 11 ini diharapkan:
3. Material Praktikum
Kegiatan pada modul 11 ini memerlukan material berupa program Pascal
4. Kegiatan Praktikum
Berbeda dengan array yang berfungsi untuk menyimpan sejumlah data dengan tipe
yang sama, record merupakan sebuah variabel untuk menyimpan data dengan tipe
yang bisa berbeda.
Record dapat juga dideklarasikan pada bagian type untuk selanjutnya kita gunakan
pada bagian var.
Type
Identifier = Record
Namafield-1 : Type
Namafield-2 : Type
……
Namafield-N : Type
End
Var
Identifier : Record
Namafield-1 : Type
Namafield-2 : Type
……
Namafield-N : Type
End
1
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';
2
mahasiswa.nama := ‘Upin Ipin';
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 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 := ‘Upin Ipin';
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;
3
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
4
- 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;
5
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;
6
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;
7
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’;
5. Penugasan
Buatlah program entri data mahasiswa dengan memanfaatkan record dengan
struktur nim, nama, kelas, dan nilai_alpro. Program memiliki fungsi untuk input data,
menampilkan data, menampilkan nilai terbesar, nilai terkecil, dan rata-rata. Semua
fungsi memanfaatkan sub program yang dibahas pada pertemuan sebelumnya.