140 likes | 258 Views
R EC OR D. What is Record?. Record adalah sekumpulan elemen data yang memiliki tipe dan panjang data yang berbeda-beda tapi memiliki nama yang sama. Struct/Record merupakan koleksi satuan data yang heterogen, yaitu terdiri dari berbagai type: integer, string, char etc.
E N D
What is Record? • Record adalah sekumpulan elemen data yang memiliki tipe dan panjang data yang berbeda-beda tapi memiliki nama yang sama. • Struct/Record merupakan koleksi satuan data yang heterogen, yaitu terdiri dari berbagai type: integer, string, char etc. • Data item yang merupakan elemen record biasanya disebut dengan FIELD.
Record sering digunakan dalam program terutama yang berhubungan dengan file. Misalnya, sebuah record tentang data karyawan, yang terdiri dari nama, alamat, umur dan pekerjaan.
Deklarasi Record Type Name of record = record name of field (1) : type of field (1); name of field (2) : type of field (2); name of field (3) : type of field (3); :: : : : : name of field (n) : type of field (n); end;
Contoh Program Record • program rekord; • usescrt; • typeTSiswa = recordnim : string[8];nama : string[25];agama : string[10];ktp : string[25];end; • vars : TSiswa;umur : integer;ts : integer;tl : integer; • beginclrscr;write (’Masukkan tahun sekarang: ‘);readln (ts);writeln (’Isikan data anda dalam Form ini’);write (’NIM : ‘);readln (s.nim);write (’NAMA : ‘);readln (s.nama);write (’TAHUN LAHIR : ‘);readln (tl);umur := (ts-tl);write (’AGAMA : ‘);readln (s.agama);write (’NO.KTP : ‘);readln (s.ktp);writeln;writeln (’Berikut ini informasi yang anda berikan: ‘);writeln (’NIM : ‘, s.nim);writeln (’NAMA : ‘, s.nama);writeln (’Umur : ‘, umur);writeln (’AGAMA : ‘, s.agama);writeln (’NO.KTP : ‘, s.ktp);READLN; end.
iTab Template
Array dalam Record • uses wincrt; • type pegawai=record • nik,nama:string; • gaji:real; • status:char; • totalgaji:real; • end; • larikpeg=array[1..20] of pegawai; • var • peg:larikpeg; • n,i,j:byte; • lagi:char; • xx:pegawai; • begin • {mengisi Data Pegawai} • Repeat • clrscr; • lagi:='y'; • while lagi='y' do • begin • inc(n); • writeln(' mengisi data pegawai ke,n); • write(' masukan nik ==> ');readln(peg[n].nik); • write(' masukan nama ==> ');readln(peg[n].nama); • write(' gaji pokok ==> ');readln(peg[n].gaji); • write(' status ? <menikah=k, tidak=t> ');readln(peg[n].status); • if peg[n].status='k' then peg[n].totalgaji:= peg[n].gaji+(0.2*peg[n].gaji)
Array dalam Record • else peg[n].totalgaji:=peg[n].gaji+(0.1*peg[n].gaji); • writeln; • write(' apakah akan mengisi lagi y/t? ');readln(lagi); • writeln; • end; • clrscr; • writeln(' ':10,'Daftar gaji pegawai PT. Maju Terus'); • writeln(' ========================================================= '); • writeln(' | no | nik | nama | gaji pokok | gaji bersih | '); • writeln(' ========================================================= '); • for i:=1 to n do • writeln(i:4,peg[i].nik:9,peg[i].nama:12,' Rp',peg[i].gaji:10:2,' Rp',peg[i].totalgaji:10:2); • writeln(' ======================================================= '); • {mengurutkan} • writeln; • for i:=1 to n-1 do • begin • for j:=i+1 to n do • begin
Array dalam Record • if (peg[i].totalgaji<peg[j].totalgaji) then • begin • xx:=peg[i];peg[i]:=peg[j];peg[j]:=xx; • end; • end; • end; • writeln(' ':3,'Daftar gaji pegawai PT. Maju Terus Sesudah Diurutkan'); • writeln(' ========================================================= '); • writeln(' | no | nik | nama | gaji pokok | gaji bersih | '); • writeln(' ========================================================= '); • for i:=1 to n do • writeln(i:4,peg[i].nik:9,peg[i].nama:12,' Rp',peg[i].gaji:10:2,' Rp',peg[i].totalgaji:10:2); • writeln(' ====================================================== '); • writeln; • write(' Apakah Ingin Menambah Data Karyawan lagi y/t? ');readln(lagi); • until(lagi='t'); • end.
Record dalam Array • uses wincrt; • type tb_brg=record • kb:string; • nb:string; • hb:string; • end; • var • brg:array[1..10] of tb_brg; • a,b,ke:integer; • tukar:tb_brg; • pilih:char; • posisi:array[1..10] of integer; • begin • pilih:='y'; • while ((pilih='y') or (pilih='Y')) do • begin • ke:=ke+1; • writeln; • writeln(' Masukan Jenis Barang ke ',ke,' : '); • writeln('====================================='); • write('Masukan Kode Barang : ');readln(brg[ke].kb); • write('Masukan Nama Barang : ');readln(brg[ke].nb); • write('Masukan Harga Barang : ');readln(brg[ke].hb);
Record dalam Array • writeln('===================================='); • write('Tambah Barang yang Lain ? y/t: ');readln(pilih); • end; • clrscr; • for a:=1 to ke do • begin • writeln; • writeln(' Tabel Barang '); • writeln('--------------------------------------------'); • writeln('no | Kode | Barang | Harga |'); • writeln('============================================'); • for a:=1 to ke do • writeln(a:6,'|',brg[a].kb:10,'|',brg[a].nb:12,'|',brg[a].hb:12,'|'); • writeln('--------------------------------------------'); • writeln; • end; • end.