Program Menghitung Gaji Menggunakan Procedure

08.17 Unknown 0 Comments



program gaji_pegawai;
uses wincrt;
var
   nm,jab,sts,tmplhr:string;
   gaji,tunjank,gatot,anak,tunjkwn,nip:real;
   d,m,y:integer;
procedure dir;
begin
     write  ('Status Perkawinan    (N/B] : '); readln(sts);
     if sts = 'N' then
        begin
             write  ('Masukkan Jumlah Anak       : '); readln(anak);    
             gaji:=2000000;
             if anak>=3 then
                 tunjank:=3*(0.1*gaji)
             else
                 tunjank:=anak*(0.1*gaji);
             tunjkwn:=gaji*0.03;
             gatot:=gaji+tunjank+tunjkwn;
             writeln('Gaji Pokok                 : ',gaji:0:0);
             writeln('Tunjangan Nikah            : ',tunjkwn:0:0);
             writeln('Tunjangan Anak             : ',tunjank:0:0);
             writeln('Gaji Total                 : ',gatot:0:0);
        end
     else
     if sts = 'B' then
         begin
             gaji:=2000000;
             writeln('Gaji Total                 : ',gaji:0:0);
         end
     else
         writeln('Kode yang Anda Masukkan salah! Gunakan huruf kapital');
end;
procedure mgr;
begin
     write  ('Status Perkawinan    (N/B) : '); readln(sts);
     if sts = 'N' then
        begin
             write  ('Masukkan Jumlah Anak       : '); readln(anak);
    
             gaji:=1500000;

             if anak>=3 then
                 tunjank:=3*(0.1*gaji)
             else
                 tunjank:=anak*(0.1*gaji);
             tunjkwn:=gaji*0.03;
             gatot:=gaji+tunjkwn+tunjank;
             writeln('Gaji Pokok                 : ',gaji:0:0);
             writeln('Tunjangan Jabatan          : ',tunjkwn:0:0);
             writeln('Tunjangan Anak             : ',tunjank:0:0);
             writeln('Gaji Total                 : ',gatot:0:0);
        end
     else
     if sts = 'B' then
         begin
             gaji:=1500000;           
             writeln('Gaji Total                 : ',gaji:0:0);
         end
     else
         writeln('Kode yang Anda Masukkan salah! Gunakan huruf kapital');
end;
procedure spv;
begin
     write  ('Status Perkawinan    (N/B) : '); readln(sts);
     if sts = 'N' then
        begin
             write  ('Masukkan Jumlah Anak       : '); readln(anak);
             gaji:=1000000;
             if anak>=3 then
                 tunjank:=3*(0.1*gaji)
             else
                 tunjank:=anak*(0.1*gaji);
             tunjkwn:=gaji*0.03;
             gatot:=gaji+tunjkwn+tunjank;
             writeln('Gaji Pokok                 : ',gaji:0:0);
             writeln('Tunjangan Nikah            : ',tunjkwn:0:0);
             writeln('Tunjangan Anak             : ',tunjank:0:0);
             writeln('Gaji Total                 : ',gatot:0:0);
        end
     else
     if sts = 'B' then
         begin
             gaji:=1000000;
             writeln('Gaji Total                 : ',gaji:0:0);
         end
     else
         writeln('Kode yang Anda masukkan salah! Gunakan huruf kapita');
end;
procedure gol;
begin
     write  ('Golongan           [1/2/3] : '); readln(jab);
     if jab = '1' then
        dir
     else
     if jab = '2' then
        mgr
     else
     if jab = '3' then
        spv
     else
         writeln('Kode yang Anda masukkan salah');
end;
begin
     clrscr;
     writeln('==============================================');
     writeln('            Program Gaji Pegawai              ');
     writeln('==============================================');
     writeln;
     write  ('NIP                        : '); readln(nip);
     write  ('Nama                       : '); readln(nm);
     write  ('Tempat Lahir               : '); readln(tmplhr);
     write  ('Tanggal Lahir (DD MM YYYY) : '); readln(d,m,y);
     case m of
     1,3,5,7,8,10,12:begin
                       if (d>31) then
                            writeln('Tanggal salah')
                       else
                           gol;
                  end;
     4,6,9,11:begin
                   if (d>30) then
                      writeln('Tanggal salah')
                   else
                       gol;
              end;
     2:begin
            if (y mod 4=0) then
            begin
                 if (d>29) then
                 writeln('Tanggal salah')
                 else
                 gol;
                 end
            else
            begin
           if (d>28) then
             writeln('Tanggal salah')
            else
             gol;
             end;
       end;
     end;
     readkey;
     donewincrt;
end.


Flowchart 

 

0 komentar: