Pascal - Program Gaji Pegawai
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 :
Comments
Post a Comment
-Berkomentarlah yang baik dan rapi.
-Menggunakan link aktif akan dihapus.