Selasa, 03 April 2012

Source kode pascal 5


Program DataPegawai;
Uses Wincrt;
Type Pegawai = record
     NIP       : String[9];
     Nama      : String[30];
     Golongan  : Char;
     Jamkerja  : Real;
End;
Var
  Data                  : Pegawai;
  Gapok                 : Real;
  Insentif,Gaber        : Real;
  Ul                    : Char;
Begin  
  Repeat
    Clrscr;
    Writeln('Entry Data Pegawai PT. XYZ');



    Writeln('==========================');
    Writeln;
    Write('NIP          : ');Readln(Data.NIP);
    Write('Nama         : ');Readln(Data.Nama);
    Write('Golongan     : ');Readln(Data.Golongan);
    Write('Jam Kerja    : ');Readln(Data.Jamkerja);
    Writeln;
    Case Data.Golongan of
      '1'  : Gapok:=1000000;
      '2'  : Gapok:=1500000;
      '3'  : Gapok:=2000000;
    Else
      Gapok:=0;
    End;

    if Data.Jamkerja>200 then
      Insentif:=(Data.Jamkerja-200)*10000
    else
      Insentif:=0;

    Gaber:=Gapok+Insentif;

    Clrscr;
    Writeln('Laporan Gaji Pegawai');
    Writeln('PT. XYZ');
    Writeln;
   
Writeln('=============================================================
===============');
    Writeln('|NIP       | Nama                    | Golongan | Jam
Kerja | Gaji         |');
   
Writeln('=============================================================
===============');
   
Writeln('|',Data.NIP:10,'|',Data.Nama:25,'|',Data.Golongan:10,'|',Data
.Jamkerja:11:0,'|',Gaber:14:2,'|');
   
Writeln('=============================================================
===============');
    Writeln;
    Write('Mau Ulang Lagi? [Y/T]: ');Readln(Ul);
  Until Upcase(Ul)<>'Y';
End.


Program DataPegawai_Array;
Uses Wincrt;
Type Pegawai = record
     NIP       : String[9];
     Nama      : String[30];
     Golongan  : Char;
     Jamkerja  : Real;
End;

Var
  Data                  : Array [1..100] of Pegawai;
  Gapok,Insentif,Gaber  : Real;
  Tot,Rata              : Real;
  Ul                    : Char;
  i,n                   : Integer;
Begin
 Repeat
  Clrscr;
  Write('Masukkan Jumlah Data Pegawai : ');Readln(n);
  For i := 1 to n do
    Begin
      Clrscr;
      Writeln('Entry Data Pegawai PT. XYZ');
      Writeln('==========================');
      Writeln;
      Writeln('Data Ke-',i);
      Writeln;
      Write('NIP          : ');Readln(Data[i].NIP);
      Write('Nama         : ');Readln(Data[i].Nama);
      Write('Golongan     : ');Readln(Data[i].Golongan);
      Write('Jam Kerja    : ');Readln(Data[i].Jamkerja);
      Writeln;
    End;
  Clrscr;
  Writeln('Laporan Gaji Pegawai');
  Writeln('PT. XYZ');
  Writeln;
Writeln('=============================================================
==================');
  Writeln('|NO. |NIP       | Nama                    | Golongan | Jam
Kerja | Gaji       |');
Writeln('=============================================================
==================');
  Tot:=0;
  For i := 1 to n do
    Begin
      Case Data[i].Golongan of
      '1'  : Gapok:=1000000;
      '2'  : Gapok:=1500000;
      '3'  : Gapok:=2000000;
      Else
        Gapok:=0;
      End;

      if Data[i].Jamkerja>200 then
         Insentif:=(Data[i].Jamkerja-200)*10000
      else
         Insentif:=0;
      Gaber:=Gapok+Insentif;
      Tot:=Tot+Gaber;
Writeln('|',i:4,'|',Data[i].NIP:10,'|',Data[i].Nama:25,'|',Data[i].Gol
ongan:10,'|',Data[i].Jamkerja:10:0,
      '|',Gaber:13:0,'|');
    End;
    Rata:=Tot/n;
Writeln('=============================================================
==================');
  Writeln('Total Gaji Keseluruhan : Rp.',Tot:12:0);
  Writeln('Rata Gaji Pegawai      : Rp.',Rata:12:0);
  Writeln;
  Write('Mau Ulang Lagi? [Y/T]: ');Readln(Ul);
 Until Upcase(Ul)<>'Y';
End.


0 komentar: