Translate to your languages

Selamat Datang . Suatu kehormatan bagi saya atas kunjungan ini. Saya sangat berharap kunjungan berikutnya.

24 Desember 2008

record

REKAMAN (RECORD)


 

Untuk merepresentasikan objek, dibuat tipe bentukan (user-defined type) yg merupakan gabungan dari beberapa tipe dasar(integer, real, boolean, character) dan tipe bentukan lainnya. Salah satu tipe bentukan terstruktur adalah record.


 

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:

  • Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
  • 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;

Kota     : String;

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 :

  • Membaca waktu pertama(t1).
  • Membaca waktu kedua(t2).
  • Menghitung selisih antara waktu pertama dan waktu kedua, dengan :
    • Menghitung selisih menit.
    • Menghitung selisih jam.
  • 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 < t1.menit then

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.


 

Asumsi : Satu bulan = 30 hari


 

************** GOOD LUCK **************

Tidak ada komentar: