Files
winproject/individu.py
T
2026-10-14 21:10:10 +07:00

71 lines
2.0 KiB
Python

class Karyawan:
def __init__(self, id_karyawan, nama, gaji_pokok):
self.id_karyawan = id_karyawan
self.nama = nama
self.gaji_pokok = gaji_pokok
def hitung_total_gaji(self):
return self.gaji_pokok
class KaryawanTetap(Karyawan):
def __init__(self, id_karyawan, nama, gaji_pokok, tunjangan):
super().__init__(id_karyawan, nama, gaji_pokok)
self.tunjangan = tunjangan
# Method overriding
def hitung_total_gaji(self):
return self.gaji_pokok + self.tunjangan
def tampilkan_data(self):
print("=== KARYAWAN TETAP ===")
print(f"ID Karyawan : {self.id_karyawan}")
print(f"Nama : {self.nama}")
print(f"Gaji Pokok : Rp{self.gaji_pokok:,}")
print(f"Tunjangan : Rp{self.tunjangan:,}")
print(f"Total Gaji : Rp{self.hitung_total_gaji():,}")
class KaryawanKontrak(Karyawan):
def __init__(self, id_karyawan, nama, gaji_pokok, hari_kerja, upah_harian):
super().__init__(id_karyawan, nama, gaji_pokok)
self.hari_kerja = hari_kerja
self.upah_harian = upah_harian
# Method overriding
def hitung_total_gaji(self):
return self.gaji_pokok + (self.hari_kerja * self.upah_harian)
def tampilkan_data(self):
print("=== KARYAWAN KONTRAK ===")
print(f"ID Karyawan : {self.id_karyawan}")
print(f"Nama : {self.nama}")
print(f"Gaji Pokok : Rp{self.gaji_pokok:,}")
print(f"Hari Kerja : {self.hari_kerja} hari")
print(f"Upah Harian : Rp{self.upah_harian:,}")
print(f"Total Gaji : Rp{self.hitung_total_gaji():,}")
# Membuat object Karyawan Tetap
karyawan_tetap = KaryawanTetap(
"T001",
"Budi Santoso",
5_000_000,
1_500_000
)
# Membuat object Karyawan Kontrak
karyawan_kontrak = KaryawanKontrak(
"K002",
"Siti Aminah",
2_000_000,
20,
100_000
)
# Menampilkan data
karyawan_tetap.tampilkan_data()
print()
karyawan_kontrak.tampilkan_data()