Sebuah rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan sekumpulan elemen data yang berbeda-beda tipenya.
Contoh , sebuah record dengan empat buah field.
|
|
|
|
Field 1 | Field 2 | Field 3 | Field 4 |
Cara pendeklarasian dari record adalah sbb:
o Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
o Mendefinisikan variabel untuk dilakukan operasi.
BENTUK UMUM :
type nama_record = record
identifier_1 : tipe_data_1;
:
:
identifier_n : tipe_data_n;
end;
var
nama_variabel : nama_record;
Contoh :
type Data_mahasiswa = record
Nama : string;
Umur : integer;
Kodepos : integer;
end;
Var
x : Data_mahasiswa; <------------ Penggunaan record menjadi variabel-variabel
Pengacuan tiap field pada record(record selector) pada contoh di atas adalah sbb :
x.Nama
x.Umur
x.Kota
x.Kodepos
Contoh Program 1:
program CONTOH_RECORD_1;
uses wincrt;
type tanggal = record
hari, bulan, tahun : integer;
end;
var
waktu : tanggal;
begin
waktu.hari := 17;
waktu.bulan := 07;
waktu.tahun := 2007;
writeln( 'Tanggal Lahir : ', waktu.hari, ':', waktu.bulan, ':', waktu.tahun )
end.
Pengunaan With … do :
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record.
Misalkan pernyataan :
x.Nama
x.Umur
x.Kota
x.Kodepos
Menjadi :
with x do
Begin
Nama
Umur
Kota
Kodepos
end
Contoh Program 2:
program CONTOH_RECORD_2;
uses wincrt;
type tanggal = record
hari, bulan, tahun : integer;
end;
var waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari := 17;
bulan := 07;
tahun := 2007;
writeln ('Tanggal Lahir : ',hari,':',bulan,':', tahun)
end {akhir with}
end.
Record di dalam Record
Record bisa berisi record lain sebagai field.
Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini,
type tanggal = record
bulan, hari, tahun : integer;
end;
type waktu = record
jam, menit, detik : integer;
end;
type waktu_ini = record
tanggal_ini : tanggal;
waktu_ini : waktu
end;
Kemudian kita perlu membuat variabel kerja :
var saat_ini : waktu_ini;
Pemberian nilai akan terjadi seperti di bawah ini:
saat_ini.tanggal.bulan:= 01;
saat_ini.tanggal.hari:= 07;
saat_ini.tanggal.tahun:= 2008;
saat_ini.waktu.jam:= 14;
saat_ini.waktu.menit:= 30;
saat_ini.waktu.detik:= 33;
LATIHAN :
Buatlah Program untuk mendapatkan tampilan dari penjelasan di atas !!!
STUDI KASUS :
Diketahui : Tipe bentukan record waktu yg terdiri field jam dan menit yg bertipe integer.
Buat program u/ membaca waktu : t1, t2 dan menghitung selisih jam dan menit.
Asumsi :
- t2 selalu akhir dari t1,
- nilai terbesar t1 dan t2 = 23:59 dan nilai terkecilnya =00:00,
- nilai tidak melewati 23:59
Analisis :
1. Membaca waktu pertama(t1).
2. Membaca waktu kedua(t2).
3. Menghitung selisih antara waktu pertama dan waktu kedua, dengan :
§ Menghitung selisih menit.
§ Menghitung selisih jam.
4. Menampilkan selisih waktu di layar.
Contoh Program :
Program selisih_waktu;
Uses wincrt;
type waktu = record
jam, menit : integer;
end;
var
t1,t2 : waktu;
selisih : waktu;
begin
writeln(’Isikan Time pertama (t1)’);
write(‘t1.jam = ’); readln(t1.jam);
write(‘t1.menit = ’); readln(t1.menit);
writeln(’Isikan Time kedua (t2)’);
write(‘t2.jam = ’); readln(t2.jam);
write(‘t2.menit = ’); readln(t2.menit);
if t2.menit <>
begin
selisih.menit := (t2.menit+60)-t1.menit;
t2.jam := t2.jam – 1;
end
else
selisih.menit := t2.menit-t1.menit;
selisih.jam := t2.jam-t1.jam;
writeln (’Selisih t1 dan t2 adalah : ’, selisih.jam, ’jam’, selisih.menit, ’menit’);
end.
TUGAS :
Buatlah program yg dapat membaca dua tanggal (tanggal, bulan, dan tahun), menghitung selisih kedua tanggal tersebut dalam hari, bulan, dan tahun serta menampilkannya di layar.
Tidak ada komentar:
Posting Komentar