uses wincrt;
var
nama : array[1..10] of string;
junak,wajak,tunis,tunak : array[1..10] of integer;
v,x,y,z : integer;
lagi : string[1];
statuss : array[1..10] of string;
gaji,ptkp,pkp,pkps : array[1..10] of real;
pph : array[1..10] of real;
begin
writeln(' PPH PASAL 2 ');
writeln('===================================================');
v:=1;
x:=1;
y:=2;
z:=1;
while (x < y) do
begin
write('Nama Karyawan: '); readln(nama[x]);
write('Gaji Pokok: '); readln(gaji[x]);
write('Status [B/N]: '); readln(statuss[x]);
if (statuss[x]='n') or (statuss[x]='N') then
begin
write('Jumlah Anak: ');readln(junak[x]);
end else junak[x]:=0;
write('Apakah Anda ingin menginput lagi? [y/n] => ');readln(lagi);
if ((lagi='y') or (lagi='Y')) then
begin
x:=x+1;
v:=v+1;
y:=y+1;
writeln;
end
else
begin
x:=y;
end;
end;
ClrScr;
writeln(' DAFTAR GAJI KARYAWAN ');
writeln(' Berdasarkan PPh Pasal 2 ');
writeln('==============================================================================');
writeln(' NAMA | Gaji | Status | JA | WP | Tunis | Tunak | PTKP | PKP | PPh |');
writeln('==============================================================================');
for z:=1 to v do
begin
wajak[z]:=1000;
if (statuss[z]='n') or (statuss[z]='N') then tunis[z]:=500 else tunis[z]:=0;
if junak[z] < 3 then tunak[z]:=junak[z]*500 else tunak[z]:=1500;
ptkp[z]:=wajak[z]+tunis[z]+tunak[z];
pkp[z]:=gaji[z]-ptkp[z];
pkps[z]:=pkp[z];
if pkps[z] > 0 then
begin
pph[z]:=10000/100*5;
pkps[z]:=pkps[z]-10000;
end;
if pkps[z] > 10000 then
begin
pph[z]:=pph[z]+(10000/100*10);
pkps[z]:=pkps[z]-10000;
end;
if pkps[z] > 0 then
begin
pph[z]:=pph[z]+(pkps[z]/100*15);
end;
writeln(nama[z]:8,gaji[z]:8,statuss[z]:10,junak[z]:4,wajak[z]:6,tunis[z]:7,tunak[z]:7,ptkp[z]:8,pkp[z]:7,pph[z]:6);
end;
end.
Tidak ada komentar:
Posting Komentar