Skip to content

Instantly share code, notes, and snippets.

@r17x
Last active November 16, 2017 15:09
Show Gist options
  • Save r17x/bfcd09e84294823d26889c5b5383d47c to your computer and use it in GitHub Desktop.
Save r17x/bfcd09e84294823d26889c5b5383d47c to your computer and use it in GitHub Desktop.
from __future__ import division # untuk mendapatkan hasil pembagian pecahan
import datetime as DATE
tahun = DATE.datetime.now().year #tahun sekarang
golongan = {
'I' : {
'3' : 2000000,
'310': 2500000,
'10' : 2700000
},
'II' : {
'3' : 2000000,
'310': 2500000,
'10' : 2700000
},
'III': {
'3' : 2000000,
'310': 2500000,
'10' : 2700000
},
}
karyawan = {
'nama' : None,
'nik' : None,
'jk' : 'L',
'kawin' : False,
'golongan' : 'I',
'pendidikan': 'SMA',
'jabatan' : 'A',
'jam' : 0,
'pinjaman' : 0,
'tahun' : tahun,
'gaji_pokok': 0,
't_pend' : 0,
't_jab' : 5,
't_anak' : 0,
't_istri' : 0,
'j_anak' : 0,
'l_jam' : 0,
'k_jam' : 0,
'transport' : 0,
'beras' : 0,
}
def persen(persen):
global karyawan
return (persen/100) * karyawan['gaji_pokok']
def getGajiKotor():
global karyawan
kotor = sum([persen(sum([
karyawan['t_istri'],
karyawan['t_anak'],
karyawan['t_pend'],
karyawan['t_jab'],
])), karyawan['transport'], karyawan['beras']])
karyawan['gaji_kotor'] = kotor
return kotor
def tunjanganKerja():
# tunjangan di berikan jika PRIA
global karyawan
gaji = karyawan['gaji_pokok']
print "Gaji Pokok Sebesar {g}\n".format(g=gaji)
if karyawan['jk'] == 'L' and karyawan['kawin']:
karyawan['t_anak'] = 5 * 2 if karyawan['j_anak'] > 1 else 5
karyawan['t_istri'] = 10
beras = 100000
karyawan['beras'] = beras
print "Tunjangan Beras Rp {b}".format(b=beras)
print "Tunjangan Anak Sebesar {anak}%\nTunjangan Istri Sebesar {istri}%\n".format(
anak = karyawan['t_anak'],
istri = karyawan['t_istri']
)
# tunjangan Pendidikan
pendidikan = karyawan['pendidikan']
if pendidikan == 'SMA':
pendidikan = 5
elif pendidikan == 'D3':
pendidikan = 7
elif pendidikan == 'S1':
pendidikan = 10
print "Tunjangan Pendidikan {t}%\n".format(t=pendidikan)
karyawan['t_pend'] = pendidikan
# tunjangan jabatan
jab = karyawan['jabatan']
if jab == 'A':
jab = 5
elif jab == 'B':
jab = 10
elif jab == 'C':
jab = 15
else:
jab = 0
print "Tunjangan Jabartan {t}%\n".format(t=jab)
karyawan['t_jab'] = jab
transport = 500000
karyawan['transport'] = transport
print "Tunjangan Transportasi {t}".format(t=transport)
if karyawan['l_jam'] > 0:
lembur = persen(1) * karyawan['l_jam']
karyawan['gaji_lembur'] = lembur
print "Tambahan Gaji Lembur Rp {g} lebih {j} Jam dari 200 Jam Kerja".format(g=lembur, j=karyawan['l_jam'])
if karyawan['k_jam'] > 0:
potongan = persen(2) * karyawan['k_jam']
karyawan['potongan_gaji'] = potongan
print "Potongan Gaji Rp {g} Kurang {j} Jam dari 200 Jam Kerja".format(g=potongan,j=karyawan['k_jam'])
koperasi = persen(5)
print "Potongan Simpanan Koperasi 5% Rp {g}".format(g=koperasi)
if karyawan['pinjaman'] > 0:
pinjaman = persen(10)
karyawan['p_pinjaman'] = pinjaman
print "Potongan Pinjaman Koperasi 10% Rp {g}\n".format(g=pinjaman)
kotor = getGajiKotor()
print "Gaji Kotor : Rp {g}\n".format(g=kotor)
bersih = 0
if kotor in range(3000000, 4000000):
bersih = (2/100) * kotor
elif kotor in range(4000000, 5000000):
bersih = (4/100) * kotor
elif kotor > 5000000:
bersih = (7/100) * kotor
print "Gaji Bersih : Rp {g}\n".format(g=bersih)
#karyawan['gaji_bersih'] = getGajiBersih()
#fungsi mencari gaji pokok
def getGaji():
global karyawan
global golongan
bekerja = tahun - karyawan['tahun']
if bekerja <= 3:
bekera = '3'
elif bekerja > 3 and bekerja < 10:
bekerja='310'
else:
bekerja='10'
gaji = golongan[karyawan['golongan']][bekerja]
karyawan['gaji_pokok'] = gaji
#fungsi inputan data karyawan
def setKaryawan():
global karyawan
karyawan['nama'] = raw_input('Nama :')
karyawan['nik'] = raw_input('Nik :')
kelamin = raw_input('Jenis Kelamin [L/P] :').upper()
kawin = raw_input('Status Perkawinan : [y/n]').upper()
goloongan = raw_input('Golongan [I/II/III] :').upper()
pendidikan = raw_input('Pendidikan [SMA/D3/S1] :').upper()
jabatan = raw_input('Jabatan [A/B/C] :').upper()
tahun = input('Tahun Bekerja [2001] :')
karyawan['kawin'] = True if kawin == 'Y' else False
if kelamin == 'L' and karyawan['kawin'] :
karyawan['j_anak'] = input('Jumlah Anak [0 jika tidak ada] :')
karyawan['tahun'] = tahun if isinstance(tahun, int) else karyawan['tahun']
jam = input('Jumlah Jam Kerja : ')
karyawan['jam'] = jam
karyawan['k_jam'] = 200 - jam if 200 - jam > 0 else 0
karyawan['l_jam'] = jam - 200 if jam - 200 > 0 else 0
karyawan['pinjaman'] = input('Jumlah Pinjaman : ')
karyawan['jk'] = kelamin if kelamin in ['L','P'] else 'L'
karyawan['jabatan'] = jabatan if jabatan in ['A','B','C'] else 'A'
karyawan['golongan'] = goloongan if goloongan in ['I','II','III'] else 'I'
karyawan['pendidikan'] = pendidikan if pendidikan in ['SMA','D3','S1'] else 'SMA'
setKaryawan()
getGaji()
tunjanganKerja()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment