DataPegawai
{I.S. : user memasukan NIP, nama pegawai, golongan, status
dan jumlah anak}
{F.S. : Menampilkan daftar gaji pegawai}
//kamus global
const
makspeg = 10
Data1 : array[1..makspeg]
of string
Data2 : array[1..makspeg]
of integer
Data3 : array[1..makspeg]
of char
Data4 : array[1..makspeg]
of real
Kamus
NIP, nama : Data1
Gol, JmlhAnak : Data2
status : Data3
PPN, GajiBersih :
Data4
function GajiPokok (input Gol : integer)
{I.S. : golongan sudah terdefinisi}
{F.S. : menghasilkan fungsi gaji pokok}
algoritma
case (Gol) of
1 : GajiPokok ← 1250000
2 : GajiPokok ← 1350000
3 : GajiPokok ← 1500000
4 : GajiPokok ← 1750000
endcase
endfunction
function Tunjangan (input Gol,GajiPokok : integer, output Tunjangan : real)
{I.S. : golongan sudah terdefinisi}
{F.S. : menghasilkan fungsi gaji pokok}
algoritma
case (Gol) of
1 : Tunjangan ← 0.1 * GajiPokok
2 : Tunjangan ← 0.125 * GajiPokok
3 : Tunjangan ← 0.15 * GajiPokok
4 : Tunjangan ← 0.2 * GajiPokok
endcase
endfunction
procedure IsiData(input NIP,nama : Data1)
{I.S. : user memasukan NIP, nama pegawai, golongan, status
dan jumlah anak}
{F.S. : Menampilkan daftar gaji pegawai}
kamus // kamus lokal
i : integer
GajiTotal : real
algoritma
output('DAFTAR
GAJI PEGAWAI') output('================================================================================')
output('| NIP
| Nama Pegawai | Gol | Status | Anak | PPN
| Gaji Bersih |') output('================================================================================')
//memasukan nip
pertama
i ←1
output('| | | |
| | Rp. | Rp. |')
input(NIP[i])
while (NIP[i]
<> 'STOP') and (i <= makspeg) do
input(nama[i])
input(Gol[i])
input(status[i])
if (status[i] =
'M')
then
input(JmlhAnak[i])
endif
else
if (status[i] =
'BM')
then
output('0')
endif
//menghitung gaji
total
GajiTotal ←
GajiPokok(Gol[i]) + Tunjangan(Gol[i],GajiPokok(Gol[i]))
// menghitung PPN
PPN[i] ← 0.1 *
GajiTotal
//menampilkan PPN
output(PPN[i])
//menghitung gaji
bersih
GajiBersih[i] ← GajiTotal-PPN[i]
output(GajiBersih[i])
//memasukan nip
berikutnya
i ← i+1
output('| | | |
| | Rp. | Rp. |')
input(NIP[i])
endwhile
//garis penutup
tabel output('================================================================================')
endprocedure
//program utama
algoritma
IsiData(NIP,nama)
Tabel Waktu Eksekusi Algoritma data pegawai
Tabel Waktu Eksekusi Algoritma data pegawai
|
C(n)
|
Cop
|
=
|
2n + 1
|
A
|
Input
|
5n + 3
|
B
|
output
|
4n + 7
|
C
|
←
|
4n + 9
|
D
|
+
|
2n
|
E
|
*
|
n + 4
|
F
|
<>
|
n
|
G
|
<=
|
n
|
H
|
And
|
n
|
I
|
-
|
n
|
J
|
Cara Penghitungan Waktu Eksekusi Algoritma data pegawai :
T(n) = C(n) * Cop
T(n) = (2n + 1)A + (5n + 3)B + (4n+7)C + (4n+9)D + (2n)E +
(n+4)F + (n)G + (n)H + (n)I + (n)J
Ket :
T(n) : waktu eksekusi algoritma
C(n) : Jumlah suatu operasi dasar dalam algoritma
Cop : waktu eksekusi suatu operasi dasar dalam algoritma
Tidak ada komentar:
Posting Komentar