Berikut ini adalah source code Program Gaji pegawai menggunakan bahasa Pascal.
program
Gaji_Pegawai;
{Dibaca
data pegawai dengan tabel NIK, Nama, JK, Jam Kerja, Gaji akan diolah
datanya
dengan soal: 1. Menginputkan data, 2. Mencetak data,
3.
Jam Kerja Minimum, 4. Jam Kerja maksimum, 5. Rata-rata jam kerja,
6.
banyaknya karyawan yang lembur, 7. banyaknya karyawan yang jam kerjanya
   48 jam. Program ini dibuat oleh
NIM.1400018214-SRI WAHYUNI dengan JUJUR
 pada tanggal 30 Mei 2015}
uses
crt;
const
Nmaks=500;
type
  karyawan=record
        nama, nik : string[25];
        jk : char;
        jamkerja:integer;
        gaji : longint;
  end;
  karyawanArray=array[1..Nmaks] of karyawan;
procedure
BacaPegawai(N:integer; var krywan:karyawanArray);
var
   i : integer;
begin
    for i:=1 to N do
    begin
        write('Masukkan NIK Karyawan : ');
readln(krywan[i].nik);
        write('Masukkan Nama Karyawan : ');
readln(krywan[i].nama);
        write('Masukkan Jenis Kelamin [L/P] :
'); readln( krywan[i].jk);
        write('Masukkan Jam Kerja/Minggu : ');
readln(krywan[i].jamkerja);
    end;
end;
procedure
Gaji(N:integer; var krywan : karyawanArray);
var
   i : integer;
   const gajipokok = 2000000;
   const lembur = 50000;
begin
     for i:= 1 to N do
     begin
        if (krywan[i].jamkerja > 48) then
        begin
            krywan[i].gaji :=
gajipokok+((krywan[i].jamkerja-48)*lembur);
        end
        else
        begin
            krywan[i].gaji:=gajipokok;
        end;
     end;
end;
procedure
Carikaryawan(N:integer;var krywan:karyawanArray; namaygdicari: string);
var
   i : integer;
   ketemu : boolean;
begin
    i := 1;
    ketemu := false;
    while ((i <= N) and (not ketemu)) do
          if (krywan[i].nama = namaygdicari)
then
          begin
             ketemu := true;
          end
          else
          begin
         i := i + 1;
         end;
    if (ketemu) then
    begin
       write('Nama ',namaygdicari,'
ditemukan');
    end
    else
    begin
        writeln('Nama ',namaygdicari,' tidak
ditemukan');
    end;
end;
function
rataJamKerja(N:integer; krywan:karyawanArray):real;
var
   i, jml:integer;
begin
   jml:=0;
   for i:=1 to N do
   begin
        jml:=jml+krywan[i].jamkerja;
   end;
   rataJamKerja:=jml/N;
end;
function
minimumJamKerja(N: integer; krywan:karyawanArray):integer;
var
   i, min : integer;
begin
   min:=1000;
   for i:=1 to N do
   begin
        if (krywan[i].jamkerja<min) then
        begin
           min:=krywan[i].jamkerja;
        end;
   end;
   minimumJamKerja:=min;
end;
function
maxJamKerja(N:integer; krywan:karyawanArray):integer;
var
   i, max : integer;
begin
   max := -1;
   for i:=1 to N do
   begin
        if ( krywan[i].jamkerja > max ) then
        begin
           max := krywan[i].jamkerja;
        end;
   end;
   maxJamKerja := max;
end;
function
karyawanLembur(N:integer; krywan : karyawanArray) : integer;
var
   i, lmbur : integer;
begin
     lmbur := 0;
     for i := 1 to N do
     begin
        if (krywan[i].jamkerja > 48 ) then
        begin
           lmbur := lmbur + 1;
        end;
     end;
     karyawanLembur := lmbur;
end;
function
karyawanNormal ( N : integer; krywan : karyawanArray ) : integer;
var
   i, normal : integer;
begin
   normal := 0;
   for i := 1 to N do
   begin
        if krywan[i].jamkerja = 48 then
        begin
           normal := normal + 1;
        end;
   end;
   karyawanNormal := normal;
end;
procedure
TampilData (N: integer; var krywan : karyawanArray);
var
   i : integer;
begin
     writeln('NIK         Nama        JK    
Jam Kerja   Gaji          ');
     for i :=1 to N do
     begin
        write(krywan[i].nik,'         ', krywan[i].nama,'         ');
        write(krywan[i].jk,'       ', krywan[i].jamkerja,'          ');
        writeln(krywan[i].gaji);
     end;
end;
var
   N, jum, min, maxi, Nnormal, Nlembur :
integer;
   rerata : real;
   namadicari, enter : string;
   krywan : karyawanArray;
begin
     write('Masukkan Banyaknya Karyawan : ');
readln(N);
     writeln(' ');
     BacaPegawai(N, krywan);
     writeln(' ');
     Gaji(N, krywan);
     TampilData(N, krywan);
     writeln(' ');
     rerata := rataJamKerja(N, krywan);
     writeln('Rata-rata Jam Kerja : ', rerata);
     min := minimumJamKerja(N, krywan);
     writeln('Jam Kerja Paling sedikit : ',
min);
     maxi := maxJamkerja(N, krywan);
     writeln('Jam Kerja Paling Banyak : ',
maxi);
     Nnormal := karyawanNormal (N, krywan);
     writeln ('Banyaknya karyawan yang kerja 48
jam : ', Nnormal);
     Nlembur := karyawanLembur (N, krywan);
     writeln ('Banyaknya karyawan yang lembur :
', Nlembur);
     write('Masukkan nama karyawan yang dicari
: ');
     readln(namadicari);
     Carikaryawan(N, krywan, namadicari);
     writeln(' ');
     write('Tekan enter untuk EXIT'); readln(enter);
end. 
Hasil Tampilan Setelah diRunning :


0 komentar:
Posting Komentar