Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions modul-1/240441100018-MAminuddinMarhan/modul1_soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
class manusia:
def __init__(self, nama, umur, alamat):
self.nama = nama
self.umur = umur
self.alamat = alamat
def tampilkan(self):
print("---DATA ORANG---")
print("Nama :", self.nama)
print("Usia :", self.umur, "Tahun")
print("Alamat:", self.alamat)
print()
def berjalan(self):
print(f"{self.nama} sedang berjalan dengan kecepatan 5km/jam.")
def berlari(self):
print(f"{self.nama} sedang berlari dengan kecepatan 20km/jam")
manusia1 = manusia("Amin", 19, "Pakis")
manusia2 = manusia("Matt", 30, "Ngawi")
manusia3 = manusia("Foggy", 28, "Bogor")
manusia4 = manusia("Karen", 15, "Nganjuk")
manusia5 = manusia("Wilson", 45, "Surabaya")
manusia1.tampilkan()
manusia2.tampilkan()
manusia3.tampilkan()
manusia4.tampilkan()
manusia5.tampilkan()
manusia1.berjalan()
manusia2.berlari()
manusia3.berlari()
manusia4.berjalan()
manusia5.berlari()
28 changes: 28 additions & 0 deletions modul-1/240441100018-MAminuddinMarhan/modul1_soal2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
class mahasiswa:
def __init__(self):
self.nama = ""
self.nim = ""
self.prodi = ""
self.alamat = ""
def input_mahasiswa(self):
print("-----INPUT DATA MAHASISWA-----")
self.nama = input("Masukkan Nama Mahasiswa : ")
self.nim = input("Masukkan NIM Mahasiswa : ")
self.prodi = input("Masukkan Prodi/Jurusan Mahasiswa: ")
self.alamat = input("Masukkan Alamat Mahasiswa : ")
print()
def tampilkan_mahasiswa(self):
print("\n---DATA MAHASISWA---")
print(f"Nama Mahasiswa : {self.nama}")
print(f"NIM Mahasiswa : {self.nim}")
print(f"Prodi Mahasiswa : {self.prodi}")
print(f"Alamat Mahasiswa: {self.alamat}")
mhs1 = mahasiswa()
mhs2 = mahasiswa()
mhs3 = mahasiswa()
mhs1.input_mahasiswa()
mhs2.input_mahasiswa()
mhs3.input_mahasiswa()
mhs1.tampilkan_mahasiswa()
mhs2.tampilkan_mahasiswa()
mhs3.tampilkan_mahasiswa()
109 changes: 109 additions & 0 deletions modul-1/240441100018-MAminuddinMarhan/modul1_soal3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
class Kucing:
def __init__(self):
self.nama = ""
self.berat = 0
self.usia = 0
def input_kucing(self):
try:
self.nama = str(input("Masukkan Nama Hewan : "))
self.berat = float(input("Masukkan Berat Hewan: "))
if self.berat > 0:
self.usia = float(input("Masukkan Usia Hewan : "))
if self.usia > 0:
print()
return True
else:
return False
else:
return False
except ValueError:
print("Input Tidak Valid")
return False
def tampilkan_kucing(self):
print(f"Nama Hewan : {self.nama}")
print(f"Berat Hewan: {self.berat} kg")
print(f"Usia Hewan : {self.usia} Tahun")
print()
class Anjing:
def __init__(self):
self.nama = ""
self.berat = 0
self.usia = 0
def input_anjing(self):
try:
self.nama = str(input("Masukkan Nama Hewan : "))
self.berat = float(input("Masukkan Berat Hewan: "))
if self.berat > 0:
self.usia = float(input("Masukkan Usia Hewan : "))
if self.usia > 0:
print()
return True
else:
return False
else:
return False
except ValueError:
print("Input Tidak Valid")
return False
def tampilkan_anjing(self):
print(f"Nama Hewan : {self.nama}")
print(f"Berat Hewan: {self.berat} kg")
print(f"Usia Hewan : {self.usia} Tahun")
print()
class Kura:
def __init__(self):
self.nama = ""
self.berat = 0
self.usia = 0
def input_kura(self):
try:
self.nama = str(input("Masukkan Nama Hewan : "))
self.berat = float(input("Masukkan Berat Hewan: "))
if self.berat > 0:
self.usia = float(input("Masukkan Usia Hewan : "))
if self.usia > 0:
print()
return True
else:
return False
else:
return False
except ValueError:
print("Input Tidak Valid")
return False
def tampilkan_kura(self):
print(f"Nama Hewan : {self.nama}")
print(f"Berat Hewan: {self.berat} kg")
print(f"Usia Hewan : {self.usia} Tahun")
print()
print("\n---Class Hewan: Kucing---")
binatang_kucing = []
for i in range(0, 3):
hewan1 = Kucing()
while not hewan1.input_kucing():
print("Input tidak valid, silakan coba lagi")
binatang_kucing.append(hewan1)
print("\n---Class Hewan: Anjing---")
binatang_anjing = []
for i in range(0, 3):
hewan2 = Anjing()
while not hewan2.input_anjing():
print("Input tidak valid, silakan coba lagi")
binatang_anjing.append(hewan2)
print("\n---Class Hewan: Kura---")
binatang_kura = []
for i in range(0, 3):
hewan3 = Kura()
while not hewan3.input_kura():
print("Input tidak valid, silakan coba lagi")
binatang_kura.append(hewan3)
print("\n---DAFTAR HEWAN---")
print("\n---Class Hewan: Kucing---")
for hewan1 in binatang_kucing:
hewan1.tampilkan_kucing()
print("\n---Class Hewan: Anjing---")
for hewan2 in binatang_anjing:
hewan2.tampilkan_anjing()
print("\n---Class Hewan: Kura---")
for hewan3 in binatang_kura:
hewan3.tampilkan_kura()
123 changes: 123 additions & 0 deletions modul-2/240441100018-M AMINUDDIN MARHAN/modul2_soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
class Mahasiswa:
jumlah_mahasiswa = 0
def __init__(self, nama, nim, prodi):
self.nama = nama
if not self.cek_nim(nim):
raise ValueError("NIM tidak valid")
self.nim = nim
self.prodi = prodi
self.daftar_matkul = []
Mahasiswa.jumlah_mahasiswa += 1

def tambah_matkul(self, matkul):
for matkul_duplikat in self.daftar_matkul:
if matkul_duplikat.kode_matkul == matkul.kode_matkul:
raise ValueError(f"{self.nama} sudah mengambil mata kuliah {matkul.nama_matkul} (Kode: {matkul.kode_matkul})")
self.daftar_matkul.append(matkul)

def tampilkan(self):
print("\n" + "=" * 40)
if len(self.daftar_matkul) < 4:
print(f"{self.nama} harus mengambil minimal 4 mata kuliah. Saat ini hanya mengambil {len(self.daftar_matkul)} mata kuliah.")
elif len(self.daftar_matkul) > 8:
print(f"{self.nama} hanya boleh mengambil maksimal 8 mata kuliah.")
else:
print(f"Nama: {self.nama}")
print(f"NIM: {self.nim}")
print(f"Program Studi: {self.prodi}")
print("Mata kuliah yang diambil:")
for matkul in self.daftar_matkul:
print(f" - {matkul.nama_matkul} (Kode: {matkul.kode_matkul}, SKS: {matkul.sks})")
print("=" * 40)

@classmethod
def jumlah_mhs(cls):
print(f"Jumlah mahasiswa: {cls.jumlah_mahasiswa}")

@staticmethod
def cek_nim(nim):
if not isinstance(nim, str):
print("NIM harus bertipe string")
return False
if not nim.startswith('23'):
print("NIM harus dimulai dengan angka 23")
return False
if len(nim) == 10 and nim.isdigit():
return True
return False

class MataKuliah:
def __init__(self, kode_matkul, nama_matkul, sks):
self.kode_matkul = kode_matkul
self.nama_matkul = nama_matkul
self.sks = self.cek_sks(sks)

@staticmethod
def cek_sks(sks):
if sks in [2, 3]:
return sks
raise ValueError("SKS harus 2 atau 3.")

class Kampus:
daftar_mahasiswa = []
def __init__(self, nama_kampus, alamat):
self.nama_kampus = self.cek_nama(nama_kampus)
self.alamat = alamat

def jumlah_mhs(self):
print(f"Jumlah mahasiswa di {self.nama_kampus}: {len(self.daftar_mahasiswa)}")

@classmethod
def tambah_mahasiswa(cls, mahasiswa):
cls.daftar_mahasiswa.append(mahasiswa)

@staticmethod
def cek_nama(nama_kampus):
if any(karakter.isdigit() for karakter in nama_kampus):
raise ValueError("Nama kampus tidak boleh mengandung angka.")
return nama_kampus

try:
campus = Kampus("UTM", "Jl. Raya Telang")
mhs1 = Mahasiswa("Amin", "2304411001", "SI")
mhs2 = Mahasiswa("Denis", "2304411002", "SI")
mhs3 = Mahasiswa("Adit", "2304411003", "SI")
mhs4 = Mahasiswa("Jarwo", "2304411004", "SI")
mhs5 = Mahasiswa("Sopo", "2304411005", "SI")
mhs6 = Mahasiswa("Adel", "2304411006", "SI")

mk1 = MataKuliah("SI001", "Alpro", 3)
mk2 = MataKuliah("SI002", "Statistik", 3)
mk3 = MataKuliah("SI003", "MO", 2)
mk4 = MataKuliah("SI004", "KI", 2)
mk5 = MataKuliah("SI005", "Pancasila", 2)
mk6 = MataKuliah("SI006", "LE", 2)
mk7 = MataKuliah("SI007", "PTIK", 3)
mk8 = MataKuliah("SI008", "B. Inggris", 2)

for mhs in [mhs1, mhs2, mhs3, mhs4, mhs5, mhs6]:
Kampus.tambah_mahasiswa(mhs)

for matkul in [mk1, mk2, mk3, mk4]:
mhs1.tambah_matkul(matkul)
for matkul in [mk1, mk2, mk3, mk4, mk6]:
mhs2.tambah_matkul(matkul)
for matkul in [mk5, mk6, mk1, mk2]:
mhs3.tambah_matkul(matkul)
for matkul in [mk8, mk3, mk4, mk7, mk1, mk2, mk5, mk6]:
mhs4.tambah_matkul(matkul)
for matkul in [mk8, mk7, mk6, mk5, mk4]:
mhs5.tambah_matkul(matkul)
for matkul in [mk1, mk2, mk3, mk4, mk6, mk8, mk7]:
mhs6.tambah_matkul(matkul)

mhs1.tampilkan()
mhs2.tampilkan()
mhs3.tampilkan()
mhs4.tampilkan()
mhs5.tampilkan()
mhs6.tampilkan()
Mahasiswa.jumlah_mhs()
campus.jumlah_mhs()
except ValueError as a:
print(f"Error: {a}")
50 changes: 50 additions & 0 deletions modul-3/240441100018-M AMINUDDIN MARHAN/modul3_soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
class Karyawan:
def __init__(self, nama, gaji, departemen):
self.nama = nama
self.gaji = gaji
self.departemen = departemen
def info(self):
print(f"Nama : {self.nama}")
print(f"Gaji : Rp. {self.gaji}")
print(f"Departemen : {self.departemen}")

class KaryawanTetap(Karyawan):
def __init__(self, nama, gaji, departemen, tunjangan):
super().__init__(nama, gaji, departemen)
self.tunjangan = tunjangan
def info(self):
print("---Karyawan Tetap---")
super().info()
print(f"Tunjangan per bulan: Rp.{self.tunjangan}")
print("\n")

class KaryawanHarian(Karyawan):
def __init__(self, nama, gaji, departemen, jam_kerja):
super().__init__(nama, gaji, departemen)
self.jam_kerja = jam_kerja
def info(self):
print("---Karyawan Harian---")
super().info()
print(f"Jam kerja per hari : {self.jam_kerja} jam")
print("\n")

class ManajemenKaryawan:
daftar_karyawan = []
@classmethod
def tambah_karyawan_tetap(cls, nama, gaji, departemen, tunjangan):
karyawan = KaryawanTetap(nama, gaji, departemen, tunjangan)
cls.daftar_karyawan.append(karyawan)
@classmethod
def tambah_karyawan_harian(cls, nama, gaji, departemen, jam_kerja):
karyawan = KaryawanHarian(nama, gaji, departemen, jam_kerja)
cls.daftar_karyawan.append(karyawan)
@classmethod
def tampilkan_semua_karyawan (cls):
for k in cls.daftar_karyawan:
k.info()

karyawan1 = ManajemenKaryawan.tambah_karyawan_tetap("Amin", 4500000, "Keuangan", 200000)
karyawan2 = ManajemenKaryawan.tambah_karyawan_tetap("Bolang", 4000000, "IT", 300000)
karyawan3 = ManajemenKaryawan.tambah_karyawan_harian("Unyil", 3000000, "Pemasaran", 8)
karyawan4 = ManajemenKaryawan.tambah_karyawan_harian("Gurt", 3500000, "SDM", 7.5)
ManajemenKaryawan.tampilkan_semua_karyawan()
Loading