slideshow

Minggu, 30 Oktober 2011

RECORD



1. Dasar Teori
Record merupakan kumpulan elemen data yang dikumpulkan menjadi satu kesatuan dengan tipe data sama ataupun berbeda. Meskipun field tersebut berada dalam satu kesatuan, namun masih dapat di akses secara individual.
Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). 

Cara pendeklarasian dari record adalah sebagai berikut:
·         Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai),
·         Mendefinisikan variabel untuk dilakukan operasi. 

SYNTAX 
type 
nama_record = record
identifier_1 : tipe_data_1;
identifier_n : tipe_data_n;
end;
var variabel : nama_record; 
Contoh. 
type 
Data_mahasiswa = record
Nama : string;
Usia : integer;
Kota : String;
Kodepos : integer;
end;
Var
x: Data_mahasiswa; 
1. Pengaksesan Elemen Record
x.Usia Nama variable disertai nama field. 
x.Nama
x.Kota
x.Kodepos 

Contoh. 
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var 
waktu : tanggal;
begin
waktu.hari :=25;
waktu.bulan:=09;
waktu.tahun:= 1983;
writeln('hari ini adalah ',waktu.hari,':',waktu.bulan,':', waktu.tahun)
end. 

2. Pengunaan With … do
Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Pemrograman dapat mengakses field cukup dengan menyebutkan nama field-nya saja.
Misalkan pernyataan : 
x.Nama
x.Usia
x.Kota
x.Kodepos 
menjadi 
with x do
Begin
Nama
Usia
Kota
Kodepos
end 
Contoh. 
program RECORD_INTRO;
type tanggal = record
bulan, hari, tahun : integer;
end;
var
waktu : tanggal;
begin {program utama}
with waktu do {mulai with}
begin
hari :=25;
bulan:=09;
tahun:=1983;
writeln('hari ini adalah ',hari,':',bulan,':', tahun)
end {akhir with}
end. 

3. Array dari Record
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal. 
type tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal; 
kemudian kita membentuk suatu array dari record ini, namakan birthdays. 
var birthdays : array[1..10] of tanggal; 
pernyataan ini akan membentuk suatu array dengan 10 elemen. Dimana tiap elemen adalah sebuah record tanggal, yaitu, terdiri atas bulan, hari, tahun dengan tipe data Integer.
Digambarkan seperti berikut:
Contoh Pemberian nilai awal dari masing-masing elemen birthdays: 
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983; 

4. 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:= 11;
saat_ini.tanggal.hari:= 2;
saat_ini.tanggal.tahun:= 1985;
saat_ini.waktu.jam:= 3;
saat_ini.waktu.menit:= 3;
saat_ini.waktu.detik:= 33; 

Simple Record dan Array pada Pascal
Pada ujian struktur data kemaren ada sebuah soal yang memerintahkan kita untuk membuat sebuah program untuk sebuah perpustakaan. Program ini akan merekam informasi mengenai 200 data buku-buku yang ada meliputi judul buku, kode, pengarang, edisi, tahun terbit, dan penerbitnya. Output yang diharapkan adalah berupa tabel yang menampilkan informasi data buku yang telah direkam secara terurut ascending dengan metode sorting berdasarkan judul buku. Demikianlah kira-kira gambaran tentang program tersebut..
uses wincrt;
type
recBuku=record
judul:string[20];
kode:string[10];
pengarang:string[20];
ed:string[4];
tahun:integer;
penerbit:string[20];
end;
var
a:array[1..200] of recBuku;
tempjudul,temppeng,temppnb:string[20];
tempkod:string[10];
temped:string[4];
tempth,i,j:integer;
begin
writeln(’+++++++++++++++++ Input Data Buku ++++++++++++++++’);
writeln(’—————————————————————–’);
for i:=1 to 200 do
begin
write(’Judul Buku : ‘);readln(a[i].judul);
write(’Kode Buku : ‘);readln(a[i].kode);
write(’Pengarang : ‘);readln(a[i].pengarang);
write(’Edisi : ‘);readln(a[i].ed);
write(’Tahun terbit : ‘);readln(a[i].tahun);
write(’Penerbit : ‘);readln(a[i].penerbit);
writeln;
end;
for i:=1 to 200 do
begin
for j:=1 to 200 do
begin
if a[j].judul > a[i].judul then
begin
tempjudul:=a[j].judul;
a[j].judul:=a[i].judul;
a[i].judul:=tempjudul;
tempkod:=a[j].kode;
a[j].kode:=a[i].kode;
a[i].kode:=tempkod;
temppeng:=a[j].pengarang;
a[j].pengarang:=a[i].pengarang;
a[i].pengarang:=temppeng;
temped:=a[j].ed;
a[j].ed:=a[i].ed;
a[i].ed:=temped;
tempth:=a[j].tahun;
a[j].tahun:=a[i].tahun;
a[i].tahun:=tempth;
temppnb:=a[j].penerbit;
a[j].penerbit:=a[i].penerbit;
a[i].penerbit:=temppnb;
end;
end;
end;
clrscr;
writeln;
writeln(’+++++++++++++++++ Output Data Buku +++++++++++++++++++’);
writeln;
writeln(’———————————————————————–’);
writeln(’| No | Judul | Kode | Pengarang | Edisi | Tahun | Penerbit |’);
writeln(’———————————————————————–’);
writeln;
for i:=1 to 200 do
begin
writeln(i,’ ‘,a[i].judul:3,’ ‘,a[i].kode:3,’ ‘,a[i].pengarang:3,’ ‘,a[i].ed:3,’ ‘,a[i].tahun:3,’ ‘,a[i].penerbit:3);
end;
readln;
end.
Pada program diatas deklarasi untuk proses sorting data ditunjukkan pada :
for i:=1 to 200 do
begin
for j:=1 to 200 do
begin
if a[j].judul > a[i].judul then
begin
tempjudul:=a[j].judul;
a[j].judul:=a[i].judul;
a[i].judul:=tempjudul;

a[j].penerbit:=a[i].penerbit;
a[i].penerbit:=temppnb;
end;
end;
end;
yang akan memproses data secara ascending berdasarkan judul buku yang telah diinputkan pengguna. Demikian semoga bisa membantu kita semua.

4.2.2.3 Tipe Rekaman
Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.
Bentuk umum deklarasi rekaman adalah
type pengenal = record
medan1 :tipe1;
medan2 :tipe2;
.
.
.
medann :tipen;
end;
Keterangan:
pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.
medan1,…, medann : nama medan yang akan digunakan.
tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.
Contoh deklarasi rekaman,
type Tgl_Kalender = record
Tanggal :1..31;
Bulan : 1..12;
Tahun : 1900..2000;
end;

Tidak ada komentar:

Posting Komentar