USES CRT;
CONST
max = 10;
garis = '----------------------------------------------------------------';
TYPE
rec_data = record;
nip : string[25];
nama : string[25];
gol : string[5];
gapok : real;
tunj : real;
gator : real;
pot : real;
gaber : real;
END;
VAR
rpeg : rec_data;
peg : file of rec_data;
lagi : char;
PROCEDURE entrydata;
BEGIN
ASSIGN (peg,'c:peg.dat');
REWRITE (peg);
CLRSCR;
BEGIN
CLRSCR;
WRITE ('nip :');READLN(rpeg.nip);
IF rpeg.nip=" THEN HALT;
WRITE ('nama :');READLN(rpeg.nama);
WRITE ('golongan :');READLN(rpeg.gol);
END;
END;
{Akhir procedure entrydata}
PROCEDURE prosesdata;
BEGIN
IF rpeg.gol = 'I/a' THEN rpeg.gapok :=250000;
IF rpeg.gol = 'I/b' THEN rpeg.gapok :=300000;
IF rpeg.gol = 'II/a' THEN rpeg.gapok :=350000;
IF rpeg.gol = 'II/b' THEN rpeg.gapok :=400000;
IF rpeg.gol = 'III/a' THEN rpeg.gapok :=450000;
IF rpeg.gol = 'III/b' THEN rpeg.gapok :=500000;
rpeg.tunj :=(0.1)*rpeg.gapok;
rpeg.gator :=rpeg.gapok*rpeg.tunj;
rpeg.pot :=(0.02)*rpeg.gator;
rpeg.gaber :=rpeg.gator-rpeg.pot;
END;
{Akhir procedure prosesdata}
PROCEDURE tampildata;
BEGIN
CLRSCR;
GOTOXY (1,1);WRITE (' daftar gaji pegawai ');
GOTOXY (1,2);WRITE (garis);
GOTOXY (1,3);WRITE (' nip nama gol gapok tunj
gator pot gaber');
GOTOXY (1,4);WRITE (garis);
BEGIN
GOTOXY (2,5) ;WRITELN (rpeg.nip);
GOTOXY (9,5) ;WRITELN (rpeg.nama);
GOTOXY (18,5);WRITELN (rpeg.gol);
GOTOXY (24,5);WRITE (rpeg.gapok:10:0);
GOTOXY (33,5);WRITE (rpeg.tunj:10:0);
GOTOXY (44,5);WRITE (rpeg.gator:10:0);
GOTOXY (54,5);WRITE (rpeg.pot:10:0);
GOTOXY (68,5);WRITE (rpeg.gaber:10:0);
END;
END;
{Akhir procedure tampildata}
BEGIN {Program utama}
CLRSCR;
REPEAT
entrydata;
prosesdata;
tampildata;
WRITELN;
WRITE (' coba lagi : [Y/T]:');
REPEAT
lagi:=UPCASE (READKEY);
UNTIL lagi IN ['Y','T'];
UNTIL lagi ='T';
CLOSE (peg);
END.