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