Selasa, 11 Oktober 2016

Waktu Eksekusi Algoritma data pegawai



DataPegawai
{I.S. : user memasukan NIP, nama pegawai, golongan, status dan jumlah anak}
{F.S. : Menampilkan daftar gaji pegawai}

//kamus global
const
  makspeg = 10
kamus
  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) 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




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