Document - SI - STMIK EL RAHMA Tipe Data Record

Teks penuh

(1)

RECORD (REKAMAN)

Pascal menyediakan suatu tipe data terstruktur yang disebut dengan Record. Record adalah tipe data terstruktur yang dapat menampung beberapa item data yang masing-masing dapat mempunyai tipe data yang berbeda-beda.

Masing-masing item data disebut dengan Field. Jadi Record terdiri dari kumpulan Filed yang dapat berbeda tipe. Biasanya suatu Record berisi beberapa Field untuk sebuah subyek tertentu. Misalnya Record Langganan dapat terdiri dari Field Kode Langganan, Nama Langganan, Alamat Langganan dan Besarnya Piutang.

Deklarasi Record

Bentuk umum deklarasi suatu variabel berjenis record adalah sbb : TYPE <nama_record> = RECORD

Nama_field_1 : jenis; Nama_field_2 : jenis; ………..

………..

nama_field_n : jenis; END;

Deklarasi tipe data Record diawali dengan kata cadangan Record diikuti oleh suatu daftar Field dan diakhiri dengan kata cadangan End.

Contoh : Type

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; Piutang : Real; End;

Var

Langganan : Lgn;

Deklarasi variabel tipe data Record dapat juga dilakukan langsung dibagian deklarasi variabel sebagai berikut :

Var

Langganan : Record

Kode : Integer;

Nama : String;

Alamat : String;

Piutang : Real;

End;

Menggunakan Tipe Data Record

(2)

Pengenal_Record.Pengenal_Field := value;

Tipe data Record yang telah dideklarasikan sebelumnya, pengenal Record adalah Langganan dan Pengenal Field adalah Kode, Nama, Alamat dan Piutang. Bila Field Nama akan digunakan, Misalnya akan diisi dengan suatu nilai, maka dapat dituliskan :

Langganan.Nama := ‘Anto’; Contoh :

Memasukkan data record pelanggan uses wincrt;

Type

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; Piutang : Real; End;

Var

Langganan : Lgn;

begin

langganan.kode:=123; langganan.nama:='Budi';

langganan.alamat:='Jl. Solo'; langganan.piutang:=10000;

writeln('Kode Pelanggan : ',langganan.kode); writeln('Nama Pelanggan : ',langganan.nama); writeln('ALamat : ',langganan.alamat);

writeln('Jumlah piutang : ',langganan.piutang:5:0);

end.

Memasukkan data pelanggan input dari keyboard uses wincrt;

Type

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; Piutang : Real; End;

Var

Langganan : Lgn;

begin

(3)

writeln('Kode Pelanggan : ',langganan.kode); writeln('Nama Pelanggan : ',langganan.nama); writeln('ALamat : ',langganan.alamat);

writeln('Jumlah piutang : ',langganan.piutang:5:0);

end.

uses wincrt; Type

Hasil = Record

Jari_jari : Real; Keliling : Real; Luas : Real; End;

Var

Lingkaran : Hasil; Begin

Write('Jari Jari Lingkaran ?');Readln(Lingkaran.Jari_jari); Lingkaran.Keliling := 2*Pi*Lingkaran.Jari_jari;

Lingkaran.Luas := Pi * SQR(Lingkaran.Jari_jari); Writeln;

Writeln('Keliling Lingkaran =',Lingkaran.Keliling:7:2); Writeln('Luas Lingkaran =',Lingkaran.Luas:7:2);

End.

Output :

Jari Jari Lingkaran ? 10

Keliling Lingkaran = 62.83 Luas Lingkaran = 314.16

Statement With

Penggunaan Field didalam Record seperti contoh sebelumnya dapat menyebabkan statement menjadi panjang, sebagai berikut :

Lingkaran.Keliling := 2*Pi*Lingkaran.Jari-Jari

Akan lebih mudah dan lebih pendek bila pengenal Record tidak selalu harus ditulis, sehingga statement diatas dapat berbentuk :

Keliling := 2 * Pi * Jari-Jari

Hal ini dapat dilakukan dengan menggunakan statement With yang menyebutkan pengenal Recordnya sehingga penggunaan Field-field selanjutnya sudah tidak perlu menyebutkan pengenal Recordnya kembali.

Contoh :

(4)

uses wincrt; Type

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; Piutang : Real; End;

Var

Langganan : Lgn;

begin

with langganan Do Begin

write('Kode Pelanggan : ');readln(kode); write('Nama Pelanggan : ');readln(nama); write('ALamat : ');readln(alamat); write('Jumlah piutang : ');readln(piutang); writeln;

writeln('Kode Pelanggan : ',kode); writeln('Nama Pelanggan : ',nama); writeln('ALamat : ',alamat);

writeln('Jumlah piutang : ',piutang:5:0); End; {akhir with}

end.

uses wincrt; Type

Hasil = Record

Jari_jari : Real; Keliling : Real; Luas : Real; End;

Var

Lingkaran : Hasil; Begin

With Lingkaran Do Begin

Write('Jari Jari Lingkaran ?');Readln(Jari_jari); Keliling := 2*Pi* Jari_jari;

Luas := Pi * SQR(Jari_jari); Writeln;

Writeln('Keliling Lingkaran =', Keliling:7:2); Writeln('Luas Lingkaran =', Luas:7:2);

End; End.

(5)

Tipe Data Record Dengan Field Tipe Record

Tipe data Record dapat juga mempunyai Field berupa tipe data Record yang lainnya. Misalnya item-item data berikut :

1. Nama Pegawai 2. Tanggal Masuk

a. Hari b. Bulan c. Tahun 3. Alamat Pegawai

a. Jalan

Item data ini dapat dideklarasikan dalam bentuk tipe data Record sebagai berikut :

uses wincrt;

GajiPeg = Record

GajiPokok,Tunjangan,Lembur : Real; End;

Pegawai = Record

Nama : String;

DataPegawai : Pegawai; TotalGaji : Real; Begin

{ Memasukkan Data}

DataPegawai.Nama :='Badu'; DataPegawai.TglMasuk.Hari :=15; DataPegawai.TglMasuk.Bulan :=3; DataPegawai.TglMasuk.Tahun :=1980;

(6)

DataPegawai.Gaji.Tunjangan :=25000; DataPegawai.Gaji.Lembur :=10000;

{Menampilkan Hasil}

With DataPegawai Do Begin

Writeln('Nama Pegawai :',Nama);

With TglMasuk Do

Writeln('Tanggal Masuk :',Hari : 2, '-',Bulan : 2,'-',Tahun : 4);

With Alamat Do Begin

Writeln('Alamat :', Jalan);

Writeln(' ',Kota); End;

With Gaji Do Begin

TotalGaji := GajiPokok+ Tunjangan + Lembur; Writeln;

Writeln('Gaji Pokok : Rp',GajiPokok:6:0); Writeln('Tunjangan : Rp',Tunjangan:6:0); Writeln('Lembur : Rp',Lembur :6:0); Writeln(' *** Total : Rp',TotalGaji:6:0); End;

End; End.

Output :

Nama Pegawai : Badu

Tanggal Masuk : 15-3-1980

Alamat : Gang Buntu 22

Yogyakarta

Gaji Pokok : 75000

Tunjangan : 25000

Lembur : 10000

*** Total : 110000

Pada program diatas terlihat bahwa data dimasukkan ke Field-Field di variabel tipe Record DataPegawai menggunakan cara Pengenal-Record.Pengenal-Field.

Sedangkan nilai-nilai data dari Record ditampilkan dengan menggunakan Statement With. uses wincrt;

Type

(7)

Tgl : 1..31; Bln : 1..12; Thn : word; End;

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; TglMsk : Tgl;

Piutang : Real; End;

Var

Langganan : Lgn;

begin

with langganan Do Begin

write('Kode Pelanggan : ');readln(kode); write('Nama Pelanggan : ');readln(nama); write('ALamat : ');readln(alamat); write('Tanggal Masuk : ');readln(TglMsk.Tgl); write('Bulan Masuk : ');readln(TglMsk.Bln); write('Tahun Masuk : ');readln(TglMsk.Thn); write('Jumlah piutang : ');readln(piutang); writeln;

writeln('Kode Pelanggan : ',kode); writeln('Nama Pelanggan : ',nama); writeln('ALamat : ',alamat);

writeln('Tanggal Masuk :

',TglMsk.Tgl,'/',TglMsk.Bln,'/',TglMsk.Thn);

writeln('Jumlah piutang : ',piutang:5:0); End; {akhir with}

end.

ARRAY RECORD

Array record adalah variabel array yang elemen-elemennya berupa record. uses wincrt;

Type

Lgn = Record

Kode : Integer; Nama : String; Alamat : String; Piutang : Real; End;

Var

Langganan : array[1..10] of Lgn; i,jml:integer;

begin

(8)

for i:=1 to jml do Begin

write('Kode Pelanggan : ');readln(langganan[i].kode); write('Nama Pelanggan : ');readln(langganan[i].nama);

write('ALamat : ');readln(langganan[i].alamat); write('Jumlah piutang : ');readln(langganan[i].piutang);

writeln; end;

clrscr;

writeln('Data yang anda inputkan');writeln; for i:=1 to jml do

begin

writeln('Kode Pelanggan : ',langganan[i].kode); writeln('Nama Pelanggan : ',langganan[i].nama); writeln('ALamat : ',langganan[i].alamat);

writeln('Jumlah piutang : ',langganan[i].piutang:5:0); writeln;

end; end.

Contoh dengan menggunakan kalusa with : uses wincrt;

write('Berapa jml pelanggan : ');readln(jml);

writeln('Data yang anda inputkan');writeln; for i:=1 to jml do

begin

(9)

begin

writeln('Kode Pelanggan : ',kode); writeln('Nama Pelanggan : ',nama); writeln('ALamat : ',alamat);

writeln('Jumlah piutang : ',piutang:5:0); writeln;

Figur

Memperbarui...

Referensi

Memperbarui...