Skip to content

240441100053-DESTYA NURFAIZA MUSLIM-MUHAMMAD YUSRI-MODUL 1 #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class manusia:
def __init__(self, nama, umur, alamat):
self.nama = nama
self.umur = umur
self.alamat = alamat

def berjalan(self):
print( f"{self.nama} yang berumur {self.umur} tahun dan tinggal di {self.alamat} kini dapat berjalan.")

def berlari(self):
return f"{self.nama} yang berumur {self.umur} tahun dan tinggal di {self.alamat} kini dapat berlari dengan kencang."

mns1 = manusia("Adit", 3, "Jl. Mawar")
mns2 = manusia("Salsa", 6, "Jl. Melati")
mns3 = manusia("Aurel", 12, "Jl. Bola")
mns4 = manusia("Aiz", 8, "Jl. Pahlawan")
mns5 = manusia("Puput", 4, "Jl. Jayanegara")

# print(f"1. {mns1.berjalan()}")
# print(f"2. {mns2.berlari()}")
# print(f"3. {mns3.berjalan()}")
# print(f"4. {mns4.berlari()}")
# print(f"5. {mns5.berjalan()}")
mns1.berjalan()
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
class mahasiswa:
def __init__(self, nama, nim, prodi, alamat):
self.nama = nama
self.nim = nim
self.prodi = prodi
self.alamat = alamat

def tampilkan_info(self):
print(f"Nama : {self.nama}")
print(f"NIM : {self.nim}")
print(f"Prodi : {self.prodi}")
print(f"Alamat : {self.alamat}")

mahasiswa_list = []
jumlah = int(input("Masukkan jumlah mahasiswa (minimal 3) : "))
while jumlah < 3:
print("Jumlah data minimal 3. Ulangi lagi.")
jumlah = int(input("Masukkan jumlah mahasiswa (minimal 3) : "))

for i in range (jumlah):
print()
nama = input(f"Masukkan Nama Mahasiswa ke-{i+1} : ")
nim = input(f"Masukkan NIM Mahasiswa ke-{i+1} : ")
prodi = input(f"Masukkan Prodi Mahasiswa ke-{i+1} : ")
alamat = input(f"Masukkan Alamat Mahasiswa ke-{i+1} : ")
mahasiswa_list.append(mahasiswa(nama,nim,prodi,alamat))

print()
for i in range(len(mahasiswa_list)):
print(f"\nData Mahasiswa ke-{i+1} : ")
mahasiswa_list[i].tampilkan_info()

Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
class kucing :
def __init__(self, nama, jenis, warna):
self.nama = nama
self.jenis = jenis
self.warna = warna

def mengeong(self):
return f"Si Kucing {self.nama} itu suka mengeong malam-malam."

def tampilkan_info(self):
print(f"Nama : {self.nama}")
print(f"Jenis : {self.jenis}")
print(f"Warna : {self.warna}")

class singa :
def __init__(self, nama, jenis, warna):
self.nama = nama
self.jenis = jenis
self.warna = warna

def mengaum(self):
return f"Si Singa {self.nama} itu suka mengaum jika lapar."

def tampilkan_info(self):
print(f"Nama : {self.nama}")
print(f"Jenis : {self.jenis}")
print(f"Warna : {self.warna}")


class ayam :
def __init__(self, nama, jenis,warna):
self.nama = nama
self.jenis = jenis
self.warna = warna

def berkokok(self):
return f"Si Ayam {self.nama} itu selalu berkokok di pagi hari."

def tampilkan_info(self):
print(f"Nama : {self.nama}")
print(f"Jenis : {self.jenis}")
print(f"Warna : {self.warna}")


kucing_data = [("Muhammad Sumbul", "Persia", "Putih"), ("Khalid Kashmiri", "Bengal", "Coklat")]
singa_data = [("Leo", "Sumatera", "Kuning"), ("Simba", "Barbary", "Coklat")]
ayam_data = [("Chiki", "Ayam Hutan", "Hitam"),("Bobby", "Ayam Petelur", "Putih")]

kucing_list = []
for data in kucing_data:
kucing_list.append(kucing(*data))

singa_list = []
for data in singa_data:
singa_list.append(singa(*data))

ayam_list = []
for data in ayam_data:
ayam_list.append(ayam(*data))

for kucing in kucing_list:
kucing.tampilkan_info()
print(kucing.mengeong())
print()

for singa in singa_list:
singa.tampilkan_info()
print(singa.mengaum())
print()

for ayam in ayam_list:
ayam.tampilkan_info()
print(ayam.berkokok())
print()
141 changes: 141 additions & 0 deletions modul-2/240441100053_DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# 1. Mahasiswa
class Mahasiswa:
jumlah_mahasiswa = 0

def __init__(self, nama, nim, prodi):
self.nama = nama
self.nim = nim
self.prodi = prodi
self.daftar_matkul = []
Mahasiswa.jumlah_mahasiswa += 1

def tambah_matkul(self, matkul):
self.daftar_matkul.append(matkul)

def tampilkan_biodata(self):
print(f"Nama: {self.nama}")
print(f"NIM: {self.nim}")
print(f"Prodi: {self.prodi}")
print("Mata Kuliah yang Diambil :")
for idx, mk in enumerate(self.daftar_matkul, 1):
print(f" {idx}. {mk.nama_mata_kuliah} ({mk.kode_matkul}, {mk.jumlah_sks} SKS) -> Jumlah SKS valid")
print()

@classmethod
def tampilkan_jumlah(cls):
print(f"Jumlah Mahasiswa saat ini: {cls.jumlah_mahasiswa}")

@staticmethod
def cek_validasi_nim(nim):
return nim[:2] == '23' and len(nim) == 10 and nim.isdigit()

# 2. Mata Kuliah
class Mata_kuliah:
def __init__(self, kode_matkul, nama_mata_kuliah, jumlah_sks):
self.kode_matkul = kode_matkul
self.nama_mata_kuliah = nama_mata_kuliah
self.jumlah_sks = jumlah_sks

@staticmethod
def cek_validasi_sks(sks):
return sks in (2, 3)

# 3. Kampus
class Kampus:
def __init__(self, nama_kampus, alamat_kampus):
self.nama_kampus = nama_kampus
self.alamat_kampus = alamat_kampus

@staticmethod
def cek_validasi_kampus(nama_kampus):
return nama_kampus.replace(" ", "").isalpha()

def tampilkan_info(self, total_mahasiswa):
print(f"Nama Kampus: {self.nama_kampus}\nAlamat : {self.alamat_kampus}\nTotal Mahasiswa : {total_mahasiswa}")
print(f"Nama kampus valid: {Kampus.cek_validasi_kampus(self.nama_kampus)} -> Nama Kampus Valid")


# 6 Mahasiswa
data_mhs = [
("Bambang", "23044110001", "Teknik Informatika"),
("Sutaji", "2344110002", "Sistem Informasi"),
("Sriyati", "2444110003", "Sistem Informasi"),
("Suhadi", "2344110004", "Teknik Infromatika"),
("Wiyoto", "2344110005", "Teknik Informatika"),
("Herman", "2344110006", "Sistem Informasi"),
]

# 8 Objek Mata Kuliah
matkul_list = []
data_matkul = [
("SI001", "Algoritma dan Pemrograman", 3),
("SI002", "Struktur Data", 3),
("SI003", "Pengantar Basis Data", 2),
("SI004", "Desain Manajemen Komputer", 3),
("SI005", "Sistem Operasi", 3),
("SI006", "Pemrograman Berbasis Web", 4),
("SI007", "Kecerdasan Buatan", 3),
("SI008", "Keamanan Siber", 2),
]

# cek sks
for kode, nama_matkul, sks in data_matkul:
if Mata_kuliah.cek_validasi_sks(sks):
mk = Mata_kuliah(kode, nama_matkul, sks)
matkul_list.append(mk)
else:
print(f"- Jumlah SKS untuk {nama_matkul} tidak valid. Mata kuliah tidak dibuat.")


# Minimal 4 matkul
mahasiswa_list = []
data_matkul_terpilih = [
[2, 1, 4, 3],
[0, 1, 4, 5],
[1, 3, 5, 6, 4],
[1, 2, 3, 5, 6],
[1, 2, 4, 5, 6],
[0, 1, 4],
]


# Membuat objek mahasiswa dan menambahkan mata kuliah yang dipilih
for i in range(len(data_mhs)):
nama, nim, prodi = data_mhs[i]
matkul_terpilih_mahasiswa = data_matkul_terpilih[i]

# cek nim
if Mahasiswa.cek_validasi_nim(nim):
mhs = Mahasiswa(nama, nim, prodi)

# cek minimal 4 matkul
if len(matkul_terpilih_mahasiswa) < 4:
print(f"- Mahasiswa {nama} harus mengambil minimal 4 mata kuliah.")
continue

#Menambahkan mata kuliah yang sudah ditentukan
for idx in matkul_terpilih_mahasiswa:
if 0 <= idx < len(matkul_list):
mhs.tambah_matkul(matkul_list[idx])
else:
print(f"- Indeks {idx} untuk mata kuliah tidak valid. Mata kuliah gagal ditambahkan.")

mahasiswa_list.append(mhs)
else:
print(f"- NIM {nim} tidak valid. Mahasiswa {nama} tidak dibuat.")

# 1 Kampus
kmps = Kampus ("Universitas Trunojoyo Madura", "Telang")

if Kampus.cek_validasi_kampus(kmps.nama_kampus):
kampus_obj = Kampus(kmps.nama_kampus, kmps.alamat_kampus)
else:
print("Nama kampus tidak valid.")


print("\n ========= DATA MAHASISWA =========")
for mhs in mahasiswa_list:
mhs.tampilkan_biodata()

print("========= INFO KAMPUS =========\n")
kampus_obj.tampilkan_info(len(mahasiswa_list))
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
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} \nGaji : {self.gaji} \nDepartemen : {self.departemen}")

class KaryawanTetap(Karyawan):
def __init__(self, nama, gaji, departemen, tunjangan):
super().__init__(nama, gaji, departemen)
self.tunjangan = tunjangan

def info(self):
print()
print("======Karyawan Tetap======")
super().info()
print(f"Jumlah Tunjangan : {self.tunjangan}")

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()
print("======Karyawan Harian=======")
super().info()
print(f"Jam Kerja per Hari : {self.jam_kerja} Jam")

class ManajemenKaryawan:
def __init__(self):
self.daftar_karyawan = []

def tambah_karyawan(self,karyawan):
self.daftar_karyawan.append(karyawan)

def tampilkan_semua_karyawan(self):
for karyawan in self.daftar_karyawan:
karyawan.info()

manajemen = ManajemenKaryawan()
k1 = KaryawanTetap("Karto", 5000000, "Periklanan", 30000000)
k2 = KaryawanTetap("Suharti", 7000000, "IT", 15000000)
k3 = KaryawanHarian("Sartimi", 2500000, "Penjualan", 6)
k4 = KaryawanHarian("Pardi", 2000000, "Periklanan", 8)

manajemen.tambah_karyawan(k1)
manajemen.tambah_karyawan(k2)
manajemen.tambah_karyawan(k3)
manajemen.tambah_karyawan(k4)

manajemen.tampilkan_semua_karyawan()
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
class Pengiriman:
def __init__(self, asal, tujuan):
self.asal = asal
self.tujuan = tujuan

def estimasi_waktu(self):
return 2

class PengirimanDarat(Pengiriman):
def __init__(self, asal, tujuan, jenis_kendaraan):
super().__init__(asal, tujuan)
self.jenis_kendaraan = jenis_kendaraan

def estimasi_waktu(self):
if self.jenis_kendaraan == "Truk":
return 6
elif self.jenis_kendaraan == "Mobil Box":
return 5
elif self.jenis_kendaraan == "Motor":
return 3
else:
return 10

class PengirimanUdara(Pengiriman):
def __init__(self, asal, tujuan, maskapai):
super().__init__(asal, tujuan)
self.maskapai = maskapai

def estimasi_waktu(self):
if self.maskapai == "Garuda":
return 1
elif self.maskapai == "Lion Air":
return 3
elif self.maskapai == "Air Asia":
return 2
else:
return 10

class PengirimanInternasional:
def __init__(self, asal, tujuan, jenis_kendaraan, maskapai):
self.darat = PengirimanDarat(asal, tujuan, jenis_kendaraan)
self.udara = PengirimanUdara(asal, tujuan, maskapai)

def estimasi_waktu(self):
waktu_darat = self.darat.estimasi_waktu()
waktu_udara = self.udara.estimasi_waktu()
estimasi = min(waktu_darat, waktu_udara)

tujuan = self.darat.tujuan
if tujuan != "Indonesia":
estimasi += 3

return estimasi

p1 = PengirimanDarat("Jakarta Timur", "Gresik", "Mobil Box")
p2 = PengirimanUdara("Bali", "Palembang", "Garuda")
p3 = PengirimanInternasional("Norwegia", "Singapura", "Truk", "Air Asia")

print(f"Estimasi Pengiriman 1 : {p1.estimasi_waktu()} hari")
print(f"Estimasi Pengiriman 2 : {p2.estimasi_waktu()} hari")
print(f"Estimasi Pengiriman 3 : {p3.estimasi_waktu()} hari")