Dasar-Dasar Pemrograman
MODUL 13 RECORD
Record adalah suatu tipe data terstruktur. Dengan record data dapat dikumpulkan yang masing-masing dapat mempunyai tipe data berbeda. Masing-masing item data disebut dengan fieild. Jadi record terdiri dari kumpulan field yang dapat berbeda tipe. 1 Deklarasi Record Tipe record
record
Daftar field
End; Contoh: Type Langganan = Record Kode : integer; Nama : string [25]; Alamat
: string [45];
Piutang
: real;
End; Var Pelanggan : Langganan; Atau Var Pelanngan : Record Kode : integer;
1
Dasar-Dasar Pemrograman
Nama : string [25]; Alamat
: string [45];
Piutang
: real;
End;
2 Menggunakan Tipe Data Record Cara penulisannya: Nama_Record . Nama_Field Contoh : Langganan.Nama := ‘Zidan’;
Nama_Field Nama_Record Studi Kasus 1 : Record mahasiswa mempunyai field yaitu NIM, Nama, IPK. Algoritma : Deklarasi DataMhs = Record [ NIM, Nama, IPK] Mahasiswa = array dengan type data DataMhs Mulai Memasukan data Mahasiswa Selama I < JumlahMhs Input NIM, Nama, IPK Mengurutkan data Mahasiswa berdasarkan NIM Selama I < JumlahMhs-1 kerjakan Selama J < JumlahMhs – i kerjakan Jika Mahasiswa[ J ].NIM > Mahasiwa[J+1].NIM maka Lakukan tukar tempat Dummy Mahasiswa[J] Mahasiswa[J] Mahasiswa[J+1] Mahasiswa[J+1] Dummy Menampilkan data Mahasiswa
2
Dasar-Dasar Pemrograman
Selama I < JumlahMhs kerjakan Dengan Mahasiswa[ i ] Tulis [NIM, Nama, IPK] Selesai Program : Program Contoh_RecordMhs ; Uses Wincrt; Type DataMhs = Record NIM
: integer;
Nama
: string [20];
IPK
: real;
End; Var JumlahMhs, I,J : byte; Mahasiswa : array [1..50] of DataMhs; Dummy : DataMhs; Begin Clrscr; {* Memasukkan data Mahasiswa *} write (‘Jumlah Mahasiswa = ‘); readln (JumlahMhs); for I := 1 to JumlahMhs Do begin writeln; with Mahasiswa do begin writeln ; write (‘NIM = ‘); readln (NIM); write (‘Nama Mahasiswa :’) ; readln (Nama); write (‘IPK: ‘); readln (IPK) ; end ; end; {* Mengurutkan data berdasarkan NIM *} for i := 1 to JumlahMhs-1 do for J := 1 to JumlahMhs-i do if Mahasiswa[ J ].NIM > Mahasiwa[J+1].NIM then
3
Dasar-Dasar Pemrograman
begin Dummy := Mahasiswa[J]; Mahasiswa[J] := Mahasiswa[J+1] ; Mahasiswa[J+1] := Dummy ; End; {* Menampilkan Hasil *} writeln ; writeln (‘---------------------------------------------‘) ; writeln (‘
NIM
Nama
IPK
‘) ;
writeln (‘---------------------------------------------‘) ; for i := 1 to JumlahMhs do begin with Mahasiswa[i] do writeln (NIM:5, Nama:20, IPK:11:2) ; end; writeln (‘---------------------------------------------‘) ; end. {* Selesai *}
2.3 Record di dalam record Mungkin saja sebuah record berisi record. Sebagai gambaran hal ini, perhatikan deklarasi berikut : RecTanggal = Record Tanggal, Bulan, Tahun : integer; End; RecPegawai = Record NIP
: LongInt;
Nama
: string[25];
TglLahir
: RecTanggal;
Gaji : LongInt; End;
4
Dasar-Dasar Pemrograman
Jadi dapat digambarkan :
Tipe RecPegawai NIP
Tanggal
Nama
Bulan
Tahun
Gaji
Field TglLahir
Berarti pada record RecPegawai didalamnya terdapat RecTanggal. Hal ini sering ditemui pada kasus pendataan Pegawai atau juga Mahasiswa. Studi kasus 2 : Seorang pegawai memiliki data-data sbb :
NIP, Nama, Tanggal
Lahir, Gaji.
Sedangkan tanggal lahir sendiri terdiri dari field : Tanggal, Bulan, Tahun. Algoritma : Deklarasikan Record tanggal [Tanggal, bulan, tahun] Record Pegawai Mulai Masukan data pegawai Input NIP, Nama, Tanggal, Bulan, Tahun, Gaji Tampilkan data pegawai Tulis NIP, Nama, Tanggal, Bulan, Tahun, Gaji Selesai Program : Program Contoh_Record_dalam_Record; Uses WinCrt; Type RecTanggal = Record Tanggal, Bulan, Tahun : integer; End; RecPegawai = Record
5
Dasar-Dasar Pemrograman
NIP
: LongInt;
Nama
: string[25];
TglLahir
: RecTanggal;
Gaji : LongInt; End; Var DataPeg : RecPegawai ; Begin Clrscr; {* Memasukan Data pegawai *} Write (‘NIP = ‘); Readln (DataPeg.NIP) ; Write (‘Nama = ‘); Readln (DataPeg.Nama) ; Write (‘Tanggal Lahir‘); Write (‘Tanggal =‘); Readln (DataPeg.TglLahir.Tanggal) ; Write (‘Bulan = ‘) ; Readln (DataPeg.TglLahir.Bulan) ; Write (‘Tahun = ‘) ; Readln (DataPeg.TglLahir.Tahun) ; Write (‘Gaji = ‘) ; Readln (DataPeg.Gaji) ; Clrscr; {* Menampilkan Data Pegawai *} Writeln; Writeln (‘NIP = ‘, DataPeg.NIP); Writeln(‘Nama = ‘, DataPeg.Nama); Writeln
(‘Tanggal
Lahir
=‘,DataPeg.TglLahir.Tanggal,’/’,
DataPeg.TglLahir.Bulan,’/’, DataPeg.TglLahir.Tahun); Writeln (‘Gaji = ‘, DataPeg.Gaji) ; Readln; End.
Latihan : Buatlah record untuk menyatakan : a. Data buku : judul, pengarang, penerbit, jumlah b. Data mobil : merk, cc, No. mesin, tahun, warna.
6