Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Das prog modul_14_record
1. MODUL 14
RECORD
I. PENDAHULUAN
Jika pada array komponen data harus memiliki tipe data yang sama, maka pada
record beberapa item data yang dikumpulkan dapat memiliki tipe data yang berbeda.
Masing masing item data disebut dengan FIELD. Jadi record terdiri dari kumpulan field
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.
II. DEKLARASI RECORD
Deklarasi tipe record diawali dengan kata cadangan RECORD dan diikuti oleh suatu
daftar field dan diakhiri dengan kata cadangan END.
Contoh 1 :
type
Lgn = record
Kode : integer;
Nama : string[35];
Alamat : string[45];
Piutang ; real;
End;
Var
Langganan : Lgn;
Deklarasi variable tipe data record dapat langsung dilakukan di bagian
deklarasi variable :
Var
Langganan : record
Kode : integer;
Nama : string[35];
Alamat : string[45];
Piutang ; real;
2. End;
III. MENGGUNAKAN TIPE DATA RECORD
Tiap tiap komponen field dari record dapat dipergunakan dengan cara menuliskan :
Pengenal-record.pengenal-field[.pengenal.field]
Dari contoh 1 bila field nama akan dipanggil, misalnya akan diisi dengan suatu nilai
nama maka dapat ditulis :
Langganan.Nama := ‘Yahya Ayyash’;
Pengenal field
Pengenal record
Contoh 2 :
Type
Hasil = record
JariJari : real;
Keliling : real;
Luas : real;
End;
Var
Lingkaran : Hasil;
Begin
Write(‘Jari-jari lingkaran ? ‘); readln(Lingkaran.JariJari);
Lingkaran.Keliling := 2*PI*Lingkaran.JariJari;
Lingkaran.Luas := PI*sqr(Lingkaran.JariJari);
Writeln;
Writeln('Keliling Lingkaran = ‘,Lingkaran.Keliling:7:2);
Writeln('Luas Lingkaran = ‘,Lingkaran.Luas:7:2);
End.
3. IV. STATEMEN WITH
Penggunaan field di dalam record seperti contoh 2 meneyebabkan statemen
menjdai panjang akan lebih mudah dan lebih pendek bila pengenal record tidak selalu
harus ditulis dengan menggunakan statemen With.
Contoh 3 ;
Type
Hasil = record
JariJari : real;
Keliling : real;
Luas : real;
End;
Var
Lingkaran : Hasil;
Begin
With Lingkaran Do
Begin
Write(‘Jari-jari lingkaran ? ‘); readln(JariJari);
Keliling := 2*PI*JariJari;
Luas := PI*sqr(JariJari);
Writeln;
Writeln(“Keliling Lingkaran = ‘,Keliling:7:2);
Writeln(“Luas Lingkaran = ‘,Luas:7:2);
End;
End.
V. 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
4. c. tahun
3. Alamat pegawai
a. jalan
b. kota
4. Gaji
a. gaji pokok
b. tunjangan
c. lembur
Contoh 4 :
Type
Tgl = Record
Hari : 1..31;
Bulan : 1..12;
Tahun : word;
End;
alm =record
Jalan : string[35];
Kota : string[25];
End;
GajiPeg = Record
GajiPokok, Tunjangan, Lembur : real;
End;
Pegawai = Record
Nama : string[40];
TglMasuk : Tgl;
Alamat : Almt;
Gaji : GajiPeg;
End;
Var
DataPegawai : Pegawai;
TotalGaji : Real;
Begin
DataPegawai.Nama := ‘Badu’;
DataPegawai.TglMasuk.Hari := 15;
5. DataPegawai.TglMasuk.Bulan := 3;
DataPegawai.TglMasuk.Tahun := 1980’
DataPegawai.Alamat.Jalan := ‘gang Buntu 22’;
DataPegawai.Alamat.Kota := ‘ Yogyakarta’;
DataPegawai.Gaji.GajiPokok := 1000000;
DataPegawai.Gaji.Tunjangan := 1000000;
DataPegawai.Gaji.Lembur := 500000;
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.
6. VI. RECORD BERVARIASI
Pada contoh 4 kita lihat field field pada record sudah tertentu dan pasti disebut
fixed record structure, kita juga dapat membuat sutu record yang mempunyai field
yang tidak pasti atau bervariasi disebut variant record.
Contoh 5 :
Uses crt;
Type
StatusMenikah = (Single, menikah, Cerai);
DataPribadi = record
Nama : string[20];
Gaji : real;
Case Status : StatusMenikah of
Single();
Menikah : (AnakM : 0..20);
Cerai : (AnakC : 0..20);
menikahLagi : Char)
end;
var
Karyawan : Array[1..20] of DataPribadi;
Jawab : Char;
JumlahData, I : Byte;
Procedure MasukkanData;
Begin
Clrscr;
Write(‘Jumlah Data ? ‘);readln(JumlahData);
For I := 1 to JumlahData Do
Begin
With Karyawan[I] Do
Begin
Writeln;
Write(‘ Nama Karyawan ? ‘);readln(Nama);
Write(‘ Gaji tiap Bulan ? ‘);readln(Gaji);
Write(“ status menikah (S/M/C) ? ‘);readln(Jawab);
7. If Upcase(Jawab)=’S’ then
Begin
Status := Single;
End;
If Upcase(Jawab)=’M’ then
Begin
Status := Menikah;
Write(“ Jmlah anak ? ‘);readln(AnakM);
End;
If Upcase(Jawab)=’C’ then
Begin
Status := Cerai;
Write(“ Jmlah anak ? ‘);readln(AnakC);
Write(“ Menikah lagi (Y/T) ? ‘);readln(MenikahLagi);
End;
End; {with karyawan[I]}
End; {for I }
End; {Masukkan data}
Procedure TampilkanHasil;
Begin
Clrscr;
Writeln(‘ D A F T A R K A R Y A W A N’);
Writeln(‘--------------------------------------------------------------------------------------------‘);
Writeln(‘ Gaji Status Jumlah Menikah’);
writeln(‘ Nama Karyawan Sebulan S/M/C Anak Lagi’);
writeln(‘----------------------------------------------------------------------------------------‘);
For I := 1 to JumlaData Do
Begin
With Karyawan[I] Do
Begin
8. Write(Nama:20, Gaji:10:2);
Case Status Of
Single : Writeln(‘ S’);
Menikah : writeln(“ M’,AnakM:11);
Cerai : writeln(‘ C’,AnakC:11,MenikahLagi:7);
End; {Case Status}
End; {With Karyawan[I]}
End; {For I }
Writeln(‘--------------------------------------------------------------------------------------‘);
End; {TampilkanHasil}
Begin {Modul utama}
MasukkanData;
TampilkanHasil;
End.
Tugas Mandiri:
Tulislah program untuk menampilkan sejumlah data pegawai yang terdiri dari Nomor pegawai,
nama pegawai, alamat, jabatan, gaji dan jenis kelamin. Banyaknya jumlah pegawai ditentukan
oleh pengguna.
==============
Referensi:
Jogiyanto, Konsep Dasar Pemrograman Bahasa Pascal, Andi Offset, Yogyakarta, 1993