PROGRAM DATA BARANG
Bahasa program : Turbo Pascal
program menu;
uses crt;
type rec = record
kdsewa : string[4];
nokam : string[20];
jekam : string[15];
tglmasuk : longint;
tglkeluar : integer;
end;
var filehot : file of rec;
rechot : rec;
lagi,jawab,pilih : char;
filetakada,selesai : boolean;
jumlahrecord : integer;
ketemu : boolean;
procedure entri_;
begin
assign(filehot,'.dat');
{$I-}
reset(filehot);
if ioresult<>0 then rewrite(filehot);
{$I+}
seek(filehot,filesize(filehot));
lagi:='Y';
while upcase(lagi)='Y'do
with rechot do
begin
clrscr;
writeln('masukan data ');
writeln('___________________');
writeln;
write('kode : ');readln(rechot.kdsewa);
write('nama : ');readln(rechot.nokam);
write('jekam : ');readln(rechot.jekam);
write('tglmasuk : ');readln(rechot.tglmasuk);
write('tglkeluar : ');readln(rechot.tglkeluar);
write(filehot,rechot);
write('ada lagi?(y/t) ');readln(lagi);
close(filehot);
end;close(filehot);
end;
procedure tampil_;
var kdsewacari : string[4];
i : integer;
begin
assign(filehot,'.dat');
(*$I-*)
reset(filehot);
(*$I+*)
jumlahrecord := filesize(filehot);
lagi:='Y';
while upcase(lagi)='Y' do
begin
clrscr;
ketemu :=false;
writeln('mnampilkan tertentu');
writeln('__________________________');
writeln;
write('kode : ');readln(kdsewacari);
for i:=1 to jumlahrecord do
begin
seek(filehot,i-1);
read(filehot,rechot);
if rechot.kdsewa = kdsewacari then
begin
ketemu := true;
writeln('nama : ',rechot.nokam);
writeln('jekam : ',rechot.jekam);
writeln('tglmasuk : ',rechot.tglmasuk);
writeln('tglkeluar : ',rechot.tglkeluar);
writeln;
end;
end;
if not ketemu then
writeln('!!!!!!!!!!!!!!!!!!!tidak ada kode tersebut!!!!!!!!!!!!!!!!');
write('ada lagi yang dicari(y/t)? : ');readln(lagi);
end;
close(filehot);
end;
procedure koreksi_;
var kdsewacari : string[4];
i : integer;
begin
assign(filehot,'.dat');
(*$I-*)
reset(filehot);
(*$I+*)
jumlahrecord := filesize(filehot);
lagi :='Y';
while upcase(lagi)='Y' do
begin
clrscr;
ketemu := false;
writeln('mengoreksi data ');
writeln('----------------------');
writeln;
write('kode : ');readln(kdsewacari);
writeln;
for i:=1 to jumlahrecord do
begin
seek(filehot,i-1);
read(filehot,rechot);
if rechot.kdsewa = kdsewacari then
begin
with rechot do
begin
ketemu:=true;
writeln('nama : ',nokam);
write('koreksinya : ');readln(nokam);
writeln('jekam : ',jekam);
write('koreksinya : ');readln(jekam);
writeln('tglmasuk : ',tglmasuk);
write('koreksinya : ');readln(tglmasuk);
writeln('tglkeluar : ',tglkeluar);
write('koreksinya : ');readln(tglkeluar);
writeln;
end;
end;
seek(filehot,i-1);
write(filehot,rechot);
end;
if not ketemu then
writeln('!!!!!!!!!!tidak ada kode tersebut!!!!!!!!!!!!!!!!!');
write ('ada lagi(y/n)???????? : ');readln(lagi);
end;
close(filehot);
end;
procedure tampil_semua;
var nilaibrg : longint;
totnilbrg : longint;
totharsat : longint;
tottglkeluar : integer;
i : integer;
begin
assign(filehot,'.dat');
{$I-}
reset(filehot);
{$I+}
if ioresult=0 then filetakada:=false;
clrscr;
writeln('daftar persediaan barabg di gudang ');
writeln('pt.intermilan padang');
writeln;
writeln('--------------------------------------');
writeln('no kode nama jekam tglmasuk tglkeluar nilai ');
writeln('urt brg brg brg brg ');
writeln('---------------------------------------------------------------');
jumlahrecord:=filesize(filehot);
totnilbrg:=0;totharsat:=0;tottglkeluar:=0;
for i:=1 to jumlahrecord do
with rechot do
begin
read(filehot,rechot);
nilaibrg :=tglmasuk*tglkeluar;
writeln(i:3,kdsewa:5,nokam:20,jekam:10,tglmasuk:9,tglkeluar:10,nilaibrg:12);
tottglkeluar:=tottglkeluar+tglkeluar;
totnilbrg:=totnilbrg+nilaibrg;
totharsat:=totharsat+tglmasuk;
end;
writeln('--------------------------------------------------------------');
writeln(' total : ',totharsat:12,tottglkeluar:10,totnilbrg:12);
writeln('--------------------------------------------------------------');
writeln('tekan sem konci');
repeat until keypressed;
close(filehot);
end;
begin{main program}
repeat
clrscr;
writeln('<<<<<<<<<<<<<<MENU UTAMA >>>>>>>>>>>>>>>>');
writeln;
writeln('1. menambah data ');
writeln('2. menampilkan tertentu');
writeln('3. mengkoreksi data');
writeln('4. menampilkan semua tertentu');
writeln('5. selesai');
writeln;
write('pilihan anda [1..5] : ');readln(pilih);
case pilih of
'1' : entri_;
'2' : tampil_;
'3' : koreksi_;
'4' : tampil_semua;
end;
until pilih = '5';
end.