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;
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
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 :
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
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.
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.
Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal.
type
tanggal = record
bulan, hari, tahun : integer;
end;
var waktu : tanggal;
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;
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:
Digambarkan seperti berikut:
Contoh
Pemberian nilai awal dari masing-masing elemen birthdays:
Birthdays[1].hari :=25;
Birthdays[1].bulan:=09;
Birthdays[1].tahun:=1983;
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;
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;
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.
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;
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;
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