StudiKasus_Karyawan (OOP)

Run Settings
LanguagePython
Language Version
Run Command
# Definisikan class Karyawan sebagai parent class class Karyawan: def __init__(self, nama, usia, pendapatan, insentif_lembur): self.nama = nama self.usia = usia self.pendapatan = pendapatan self.pendapatan_tambahan = 0 self.insentif_lembur = insentif_lembur def lembur(self): self.pendapatan_tambahan += self.insentif_lembur def tambahan_proyek(self,jumlah_tambahan): self.pendapatan_tambahan += jumlah_tambahan def total_pendapatan(self): return self.pendapatan + self.pendapatan_tambahan # Definisikan class TenagaLepas sebagai child class dari class Karyawan class TenagaLepas(Karyawan): def __init__(self, nama, usia, pendapatan): super().__init__(nama, usia, pendapatan, 0) def tambahan_proyek(self, nilai_proyek): self.pendapatan_tambahan += nilai_proyek * 0.01 # Definisikan class AnalisData sebagai child class dari class Karyawan class AnalisData(Karyawan): def __init__(self, nama, usia = 21, pendapatan = 6500000, insentif_lembur = 100000): super().__init__(nama, usia, pendapatan, insentif_lembur) # Definisikan class IlmuwanData sebagai child class dari class Karyawan class IlmuwanData(Karyawan): def __init__(self, nama, usia = 25, pendapatan = 12000000, insentif_lembur = 150000): super().__init__(nama, usia, pendapatan, insentif_lembur) def tambahan_proyek(self, nilai_proyek): self.pendapatan_tambahan += 0.1 * nilai_proyek # Definisikan class PembersihData sebagai child class dari class TenagaLepas class PembersihData(TenagaLepas): def __init__(self, nama, usia, pendapatan = 4000000): super().__init__(nama, usia, pendapatan) # Definisikan class DokumenterTeknis sebagai child class dari class TenagaLepas class DokumenterTeknis(TenagaLepas): def __init__(self, nama, usia, pendapatan = 2500000): super().__init__(nama, usia, pendapatan) def tambahan_proyek(self, jumlah_tambahan): return # Definisikan class Perusahaan class Perusahaan: def __init__(self, nama, alamat, nomor_telepon): self.nama = nama self.alamat = alamat self.nomor_telepon = nomor_telepon self.list_karyawan = [] def aktifkan_karyawan(self, karyawan): self.list_karyawan.append(karyawan) def nonaktifkan_karyawan(self, nama_karyawan): karyawan_nonaktif = None for karyawan in self.list_karyawan: if karyawan.nama == nama_karyawan: karyawan_nonaktif = karyawan break if karyawan_nonaktif is not None: self.list_karyawan.remove(karyawan_nonaktif) def total_pengeluaran(self): pengeluaran = 0 for karyawan in self.list_karyawan: pengeluaran += karyawan.total_pendapatan() return pengeluaran def cari_karyawan(self, nama_karyawan): for karyawan in self.list_karyawan: if karyawan.nama == nama_karyawan: return karyawan return None # Create object karyawan sesuai dengan tugasnya masing-masing # seperti yang dinyatakan dalam tabel. ani = PembersihData('Ani', 25) budi = DokumenterTeknis('Budi', 18) cici = IlmuwanData('Cici') didi = IlmuwanData('Didi', 32, 20000000) efi = AnalisData('Efi') febi = AnalisData('Febi', 28, 12000000) # Create object perusahaan perusahaan = Perusahaan('ABC','Jl. Jendral Sudirman, Blok 11', '(021) 95812XX') # Aktifkan setiap karyawan yang telah didefinisikan perusahaan.aktifkan_karyawan(ani) perusahaan.aktifkan_karyawan(budi) perusahaan.aktifkan_karyawan(cici) perusahaan.aktifkan_karyawan(didi) perusahaan.aktifkan_karyawan(efi) perusahaan.aktifkan_karyawan(febi) # Cetak keseluruhan total pengeluaran perusahaan print(perusahaan.total_pengeluaran())
Editor Settings
Theme
Key bindings
Full width
Lines