Anda di halaman 1dari 25

PERTEMUAN 10

RECORD
1
RECORD
Kebanyakan pemakain record berupa larik, yaitu
untuk pemakaian dalam jumlah besar.
Pada pendeklarasian record memungkinkan
suatu variabel mempunyai banyak tipe
3
Type Bentukan
1. Type dasar yang diberi nama type baru
Alasan pemberian nama type baru mungkin
agar nama baru tersebut lebih akrab dan
lebih mudah diinterpretasi oleh orang yang
membaca algoritma.
Contoh :
type BilanganBulat : integer
BilanganBulat adalah type Bilangan Bulat yang
sama saja dengan dengan type integer.
4
2. Record (Rekaman)
Record disebut juga type terstruktur. Record
tersusun dari satu atau lebih field. Tiap field
menyimpan data dan type dasar tertentu atau
type bentukan lain yang sudah didefinisikan
sebelumnya
Contoh :
type Mahasiswa = record
<NIM : String,
Nama : String,
Alamat : String >
5
Jika M dideklarasikan sebagai peubah bertype Mahasiswa,
maka cara mengacu tiap field pada record M adalah
M.NIM
M.Nama
M.Alamat
Dalam bahasa Pascal record tersebut ditulis
Dengan :
Type Mahasiswa = record
NIM : String;
Nama : String;
Alamat : String;
End;

Pengertian Lain
Record
Pascal Menyediakan suatu tipe data terstruktur yang disebut
Record. Dengan tipe data record, dapat dikumpulkan 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 field yang dapat
berbeda tipe. Biasanya suatu record berisi beberapa field untuk
sebuah subjek tertentu. Misalnya, record langganan dapat
terdiri dari field kode langganan, nama langganan, alamat
langganan dan besarnya piutang.
6
Deklararasi
Deklarasi tipe data record, diawali dengan reserve word record, dan
diikuti oleh suatu daftar field dan diakhiri dengan reserve word end.
Contoh dari deklarasi pada record adalah sebagai berikut:
Type
Lgn = Record
kode : integer;
nama : string [35];
alamat : string [45];
piutang : real;
end;
Var
Langganan : Lgn;
Pada Array :
Var P : array [1..100] of integer;

7
Operasi Record
ASSIGN (Variabel_File,Nama_File
Merupakan pernyataan untuk mendeklarasikan
pengenal yang dipakai sebagai variabel record, serta
pendelarasian nama berkas yang dibuka atau di
gunakan.
Contoh : ASSIGN (Lteman,Soal.Dat)
8
Rewrite (Variabel File)
Merupakan pernyataan untuk membangun berkas
baru dan menempatkan pointer pada awal berkas
atau posisi no. Pernyataan ini hanya digunakan untuk
membentuk berkas baru. Bila berkas sudah ada dan
ada isinya maka semua data yang sudah pernah ada
di hapus dan ditimpa dengan daa baru.
CONTOH : REWRITE (Lteman);
9
RESET
Pernyataan untuk menempatkan pointer pada posisi
nol atau pada awal berkas tanpa menghapus data
yang pernah ada pada berkas tersebut.
Contoh RESET (Lteman)
WRITE
Adalah pernyataan untuk mencetak data dari variabel
rekaman ke dalam berkas sesuai dengan letak
pointer. Setelah mencetak maka pointer maju satu ke
rekaman berikutnya
Contoh READ (Variabel_file, variabel rekaman)
10
SEEK
Merupakan pernyataan untuk menggerakan pointer
ke rekaman tertentu pada berkas.
Contoh SEEK (Lteman, 5);
FILEPOS
FILESIZE
EOF
FLUSH
11
12
LATIHAN
Buatlah dalam notasi bahasa pascal :
1. Definisikan sebuah type terstruktur untuk
menyatakan data nasabah disebuah bank. Data
nasabah terdiri atas field Nomor Account, Nama
Nasabah, Alamat Nasabah, Kota Nasabah, dan
Nomor Telpon Nasabah.
Untuk setiap field definisikan type data yang
cocok
13
2. Buatlah algoritma untuk untuk mengkonversi
waktu tempuh seorang pelari maraton ke
dalam detik, jika diketahui pelari maraton
tersebut mamiliki waktu tempuh dalam jam-
menit-detik (hh : mm : ss).
Misalnya waktu tempuh seorang pelari
maraton adalah 2 jam, 3 menit dan 30 detik,
maka dalam detik waktu tempuhnya adalah
(2*3600) + (3*60) + (40)
14
1. Peubah (Variable)
Peubah adalah tempat penyimpanan
data/informasi di memori yang isinya dapat di
ubah.
Contoh :
Deklarasi
p : integer
l : real
Buat Flowchart dan program untuk menghasilkan output berikut :
Pembayaran Listrik
No.rek :X(10)..
Nama :X(25).
Besar Daya :999.
Meter Bulan Lalu :.9999.
Meter Bulan Ini :..
Biaya Beban :
Pakai :..
Harga / Kwh :..
Pembayaran :

Ketentuan Proses :
Jika Daya = 450, maka biaya beban = 10000
Jika daya = 900, maka biaya beban = 15000
Jika daya = 1200, maka biaya beban = 20000
Pakai = meter b ini- meter b lalu
Harga/kwh = 500
Pembayaran = b.beban+pakai*harga/kwh
Uses crt;
Var nr : string[10];
nm : string[20];
bd,mbi,mbl,pakai,pby,harga,beban :longint;
Begin
clrscr;
writeln(Pembayaran Listrik);
writeln(==============);
write(No. Rekening :) ; readln(nr);
write(Nama :) ; readln(nm);
write(Besar Daya :) ; readln(bd);
write(Meteran Bulan Lalu :) ; readln(mbl);
write(Meteran Bulan Ini :) ; readln(mbi);
if bd=450 then bb:=10000
else if bd=900 then bb:=15000
else bb:=20000;

pakai:=mbi-mbl;
harga:=500;
pby := bb + pakai * harga ;
writeln(Biaya Beban : , bb);
writeln(Pakai : , pakai);
writeln(Harga : , harga);
writeln(Pembayaran : ,pby);
Readkey;
End.

ENTRY DATA NASABAH
Kode Nasabah : X(6)
Nama Nasabah : X(25)
Type Rumah : X(4)
Uang Muka : 999999
Lama Angsuran : 999
Harga Rumah : 9999999
Angsuran Pokok Per Bulan : 99999999.9
Bunga Kredit : 9999999.9
Jumlah Angsuran : 9999999.9
Ada Data Lagi [Y/T] : X

Ketentuan Proses :
a. Jika type rumah adalah RS21 maka harga adalah 40000000
Jika type rumah adalah RS36 maka harga adalah 71000000
Jika type rumah adalah RS45 maka harga adalah 125000000
Jika type rumah adalah RS72 maka harga adalah 175000000
b. Jumlah Angsuran dapat dicari dengan rumus sebagai berikut :
Angsuran Pokok = ((harga rumah uang muka )/ lama angsuran)
Bunga = 0.16/12 *Angsuran pokok
Jumlah Angsuran = Angsuran pokok + bunga
uses crt;
var
nm:string[15];
tr:string[4];
um,la,hg:longint;
ap,bg,ja:real;
adl:char;
begin
adl:='y';
while upcase(adl)='Y' do
begin
clrscr;
writeln('Entry Data Angsuran');
writeln('===================');
write('Nama Nasabah :');readln(nm);
write('Type Rumah :');readln(tr);
write('Uang Muka :');readln(um);
write('Lama Angsuran :');readln(la);
if tr='RS21' then hg:=40000000
else if tr='RS36' then hg:=71000000
else if tr='RS45' then hg:=125000000
else if tr='RS72' then hg:=175000000;
ap:=(hg-um)/la;
bg:=0.16/12*ap;
ja:=ap+bg;
writeln('Harga :',hg);
writeln('Angsuran Pokok :',ap:8:1);
writeln('Bunga :',bg:8:1);
writeln('Jumlah Angsuran :',ja:8:1);
write('Ada Data Lagi[Y/T] :');readln(adl);
end;
end.
Entry Data Penjualan Obat
Nama Obat :..X(10)...............................
Kode Jenis :..X...
Keterangan :..
Harga :..9(6).......
Satuan :..X(10)............
Jumlah :..9(3).........
Total Harga :
PPh :
Total Penjualan :.

Ada Data Lagi[Y/T]:..X

Jika kode jenis obat = 1, maka keterangan Kapsul
Jika kode jenis obat = 2, maka keterangan Syrup
Jika kode jenis obat = 3, maka keterangan Saket
Total Harga = Harga * jumlah
Total Harga PPH
>1500000 2.5 % dari total harga
>1000000 1.5 % dari total harga
>500000 1 % dari total harga
<=500000 0 % dari total harga
Total Penjualan = total harga + Pph
ARRAY / LARIK
VARIABEL DENGAN TYPE DATA ARRAY ADALAH VARIABEL YANG BISA
MENAMPUNG LEBIH DARI SATU DATA SESUAI DENGAN INDEK YANG
DIDEKLARASIKAN

CONTOH : NAMA : ARRAY [1..50] OF STRING [25];

ARTINYA : NAMA ADALAH VARIABEL ARRAY DENGAN TYPE STRING
DENGAN MAKSIMAL KARAKTER 25 DAN JUMLAH DATA YANG BISA
DITAMPUNG MAKSIMAL ADALAH 50 BUAH DATA.
SETIAP DATA YANG DISIMPAN HARUS DITENTUKAN INDEK DARI
PENYIMPANAN. DALAM MEMASUKKAN DATA KE VARIABEL ARRAY
DAPAT DIGUNAKAN PERULANGAN DENGAN MAKSIMAL PERULANGAN
ADALAH SESUAI DENGAN JUMLAH INDEK YANG DIDKELARASIKAN.


ENTRY DATA BUKU
----------------------------
NAMA BUKU :..
PENGARANG :..
PENERBIT :.
JUMLAH :.
HARGA :
ADA DATA LAGI [Y/T] :..

Proses :
Maksimal data adalah 10 buah data
Nilai Persediaan = harga * Jumlah
Total Nilai Pers = Total Nilai Pers + Nilai Pers

NO NAMA BUKU PENGARAN
G
PENERBIT JUMLA
H
HARG
A
PERSEDIAA
N



LAPORAN DATA BUKU
TOTAL NILAI PERSEDIAAN BUKU :.
Buat flowchart dan program untuk soal berikut :
1
2
3..
4..
5..
1 4 20 25 30 40 47 57 67
1
2
3..
4..
5..
6..
7..
8..

20 30 45
Uses crt;
Var
nb,pg,pn : array[1..10] of string[10];
jml,hg : array[1..10] of longint;
x,jd,br,pers,tpers,no : longint;
adl : char;
Begin
adl:=y;
while (adl=y) and (jd<=10) do
begin
clrscr;
gotoxy(30,1);write(entry data buku);
gotoxy(30,2);write(---------------------);
gotoxy(20,3);write(Nama Buku :);
gotoxy(20,4);write(Pengarang :);
gotoxy(20,5);write(Penerbit :);
gotoxy(20,6);write(Jumlah :);
gotoxy(20,7);write(Harga :);
gotoxy(20,8);write(Ada Data Lagi [y/t] :);

jd:=jd+1;
gotoxy(45,3);readln(nb[ jd ] );
gotoxy(45,4);readln(pg[ jd ]);
gotoxy(45,5);readln(pn[ jd ]);
gotoxy(45,6);readln(jml[ jd ]);
gotoxy(45,7);readln(hg[jd ]);
gotoxy(45,8);readln(adl);
end;
Clrscr;
Gotoxy(25,1);write(Laporan Data Buku);
Gotoxy(1,2);write(------------------------------------------------------------------------------
--);
Gotoxy(1,3) ;write(|no|nama
buku|pengarang|penerbit|harga|jumlah|persediaan|);
Gotoxy(1,4);write(------------------------------------------------------------------------------
--);
{
1234567890....0123.89012.89012.9012....67890678}
{ 1 2 3 4 5
6.. }
Br:=5;
For x:=1 to jd do
Begin
no:=no+1;
pers := hg[x] * jml[x];
tpers:= tpers + pers;
gotoxy(1,br);write(|,no:2);
gotoxy(4,br);write(|,nb[x]);
gotoxy(20,br);write(|,pg[x]);
gotoxy(30,br);write(|,pn[x]);
gotoxy(40,br);write(|,hg[x]);
gotoxy(50,br);write(|,jml[x]);
gotoxy(57,br);write(|,pers);
gotoxy(67,br);write(|);
br:=br+1;
End;
Br:=br+1;
Gotoxy(1,br);write(Total Persediaan :,tpers);
Readkey;
End.
Gotoxy(1,br);write(-----------------------------------------------------------------------------------);
TERIMA KASIH
25

Anda mungkin juga menyukai