Skip to content

240441100054-MUHAMMAD NAUFALDI ARZAKI-MUHAMMAD MAULANA KHANIF-MODUL1 #22

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
23 changes: 23 additions & 0 deletions modul-1/240441100054_MuhammadNaufaldiArzaki/Soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
class manusia:
def __init__(self, nama, umur, alamat):
self.nama = nama
self.umur = umur
self.alamat = alamat

def berjalan(self):
print(f"{self.nama} berjalan")

def berlari(self):
print(f"{self.nama} berlari")

manusia1 = manusia("Faisal","80","Bojonegoro")
manusia2 = manusia("Yoga","25","Tuban")
manusia3 = manusia("Adit","27","Pamekasan")
manusia4 = manusia("Denis","40","Ngawi")
manusia5 = manusia("Naufal","20","Sidoarjo")

manusia1.berlari()
manusia2.berjalan()
manusia3.berjalan()
manusia4.berlari()
manusia5.berjalan()
40 changes: 40 additions & 0 deletions modul-1/240441100054_MuhammadNaufaldiArzaki/Soal2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
class mahasiswa:
def __init__(self, nama, nim, jurusan, alamat):
self.nama = nama
self.nim = nim
self.jurusan = jurusan
self.alamat = alamat

def tampilkan_mahasiswa(self):
print(f"Nama : {self.nama}")
print(f"Nim : {self.nim}")
print(f"Jurusan : {self.jurusan}")
print(f"Alamat : {self.alamat}")
print("=" * 30)

print("Mahasiswa 1")
mahasiswa1 = mahasiswa(input("Masukkan nama mahasiswa : "),
input("Masukkan NIM mahasiswa : "),
input("Masukkan jurusan/prodi mahasiswa : "),
input("Masukkan alamat mahasiswa : "))

print("\nMahasiswa 2")
mahasiswa2 = mahasiswa(input("Masukkan nama mahasiswa : "),
input("Masukkan NIM mahasiswa : "),
input("Masukkan jurusan/prodi mahasiswa : "),
input("Masukkan alamat mahasiswa : "))

print("\nMahasiswa 3")
mahasiswa3 = mahasiswa(input("Masukkan nama mahasiswa : "),
input("Masukkan NIM mahasiswa : "),
input("Masukkan jurusan/prodi mahasiswa : "),
input("Masukkan alamat mahasiswa : "))

print("\nInformasi Mahasiswa:")
mahasiswa1.tampilkan_mahasiswa()

print("\nInformasi Mahasiswa:")
mahasiswa2.tampilkan_mahasiswa()

print("\nInformasi Mahasiswa:")
mahasiswa3.tampilkan_mahasiswa()
59 changes: 59 additions & 0 deletions modul-1/240441100054_MuhammadNaufaldiArzaki/Soal3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
class Burung:
def __init__(self, nama, warna, jenis):
self.nama = nama
self.warna = warna
self.jenis = jenis

def info(self):
print(f"Burung yang bernama {self.nama} memiliki warna {self.warna} dan berjenis {self.jenis}")

def aksi(self):
print(f"{self.nama} sedang terbang tinggi di udara")

def suara(self):
print(f"{self.nama} bersuara cuit-cuit")

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

def info(self):
print(f"Kucing yang bernama {self.nama} memiliki warna {self.warna} dan berjenis {self.jenis}")

def aksi(self):
print(f"{self.nama} sedang bermain")

def suara(self):
print(f"{self.nama} bersuara meong")

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

def info(self):
print(f"Anjing yang bernama {self.nama} memiliki warna {self.warna} dan berjenis {self.jenis}")

def aksi(self):
print(f"{self.nama} sedang berlari-lari dengan ceria")

def suara(self):
print(f"{self.nama} bersuara guk-guk")

hewan_list = [
Kucing("ayu", "Abu-abu", "Persia"),
Kucing("unyil", "Putih", "Munchkin"),
Burung("Fajar", "Biru Cerah", "Lovebird"),
Burung("Mimi", "Coklat", "Pipit"),
Anjing("Faisal", "Hitam", "Pudel"),
Anjing("Yoga", "Putih Hitam", "Buldog")
]

for hewan in hewan_list:
hewan.info()
hewan.aksi()
hewan.suara()
print("=" * 30)
106 changes: 106 additions & 0 deletions modul-2/Soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
class MataKuliah:
def __init__(self, kode, nama, sks):
if self.validasi_sks(sks):
self.kode = kode
self.nama = nama
self.sks = sks
self.valid = True
else:
print(f" SKS '{sks}' untuk mata kuliah '{nama}' tidak valid (hanya boleh 2 atau 3). Data tidak disimpan.")
self.valid = False

@staticmethod
def validasi_sks(sks):
return sks in [2, 3]

class Mahasiswa:
total = 0
def __init__(self, nama, nim, prodi):
if self.validasi_nim(nim):
self.nama = nama
self.nim = nim
self.prodi = prodi
self.mata_kuliah = []
Mahasiswa.total += 1
self.valid = True
else:
print(f"\n salah NIM '{nim}' untuk mahasiswa '{nama}' tidak valid!")
print("Alasan: NIM harus terdiri dari 10 digit dan diawali dengan '24'.")
print(f"Data mahasiswa '{nama}' tidak disimpan.\n")
self.valid = False

def tambah_matkul(self, matkul):
if matkul.valid:
self.mata_kuliah.append(matkul)

def tampilkan(self):
print(f"\n Mahasiswa: {self.nama} | NIM: {self.nim} | Prodi: {self.prodi}")
print("Mata kuliah yang diambil:")
for mk in self.mata_kuliah:
print(f" - {mk.nama} ({mk.sks} SKS)")
else:
print("Tidak ada mata kuliah yang diambil.")

@staticmethod
def validasi_nim(nim):
return nim.startswith("24") and len(nim) == 10 and nim.isdigit()

@classmethod
def total_mahasiswa(cls):
return cls.total

class Kampus:
def __init__(self, nama, alamat):
self.nama = nama
self.alamat = alamat
self.valid = self.validasi_nama_kampus(nama)
if not self.valid:
print(f"\n Salah Nama kampus '{nama}' tidak valid!")
print("Alasan: Nama kampus tidak boleh mengandung angka.\n")

@staticmethod
def validasi_nama_kampus(nama):
return all (not char.isdigit() for char in nama)

@classmethod
def info(cls, nama):
print(f"\nKampus: {nama}")
print(f"Total Mahasiswa: {Mahasiswa.total_mahasiswa()}")

daftar_matkul = [
MataKuliah("MK001", "PBO", 3),
MataKuliah("MK002", "Struktur Data", 3),
MataKuliah("MK003", "Algoritma", 2),
MataKuliah("MK004", "Basis Data", 3),
MataKuliah("MK005", "Kalkulus", 3),
MataKuliah("MK006", "Statistik", 2),
MataKuliah("MK007", "Sistem Operasi", 3),
MataKuliah("MK008", "Jaringan Komputer", 2),
]

daftar_mahasiswa = []
data_mhs = [
("Andi", "2h412345678", "Teknik Informatika"),
("Budi", "2412345679", "Sistem Informasi"),
("Citra", "2412345680", "Teknik Komputer"),
("Dina", "2412345681", "Teknik Informatika"),
("Eka", "2412345682", "Sistem Informasi"),
("Fahri", "2412345683", "Teknik Komputer"),
]

for nama, nim, prodi in data_mhs:
mhs = Mahasiswa(nama, nim, prodi)
if mhs.valid:
for mk in daftar_matkul[:4]:
mhs.tambah_matkul(mk)
daftar_mahasiswa.append(mhs)

kampus = Kampus("Universitas Trunojoyo Madura66", "Jl.Raya Telang No.345")

print("\n---- DATA MAHASISWA -----")
for mhs in daftar_mahasiswa:
mhs.tampilkan()

print("\n----- DATA KAMPUS -----")
kampus.info(kampus.nama)
print(f"Validasi Nama Kampus: {'Valid' if kampus.valid else 'Tidak Valid'}")
52 changes: 52 additions & 0 deletions modul-3/Soal1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
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 : {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"Tunjangano : {self.tunjangan}")
print("-" * 30)

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 : {self.jam_kerja} Jam/Hari")
print("-" * 30)

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()

karyawan1 = karyawantetap("Sulis", 3000000, "Keuangan", 100000)
karyawan2 = karyawanharian("Sugianto", 2000000, "Produksi", 6)

manajemen.tambah_karyawan(karyawan1)
manajemen.tambah_karyawan(karyawan2)
manajemen.tampilkan_semua_karyawan()
66 changes: 66 additions & 0 deletions modul-3/Soal2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
class Pengiriman:
def __init__(self, asal, tujuan):
self.asal = asal
self.tujuan = tujuan

def estimasi_waktu(self):
return 5

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.lower() == "motor":
return 3
elif self.jenis_kendaraan.lower() == "mobil":
return 4
else:
return super().estimasi_waktu()

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

def estimasi_waktu(self):
if self.maskapai.lower() == "garuda":
return 1
else:
return 2

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

def estimasi_waktu(self):
waktu_darat = PengirimanDarat(self.asal, self.tujuan, self.jenis_kendaraan).estimasi_waktu()
waktu_udara = PengirimanUdara(self.asal, self.tujuan, self.maskapai).estimasi_waktu()
waktu_tercepat = (waktu_darat + waktu_udara)

if self.asal.lower() != self.tujuan.lower():
return waktu_tercepat + 3
else:
return waktu_tercepat

def info_pengiriman(self):
print("=== Informasi Pengiriman ===")
print(f"Asal : {self.asal}")
print(f"Tujuan : {self.tujuan}")
print(f"Kendaraan : {self.jenis_kendaraan}")
print(f"Maskapai : {self.maskapai}")
print(f"estimasi : {self.estimasi_waktu()} hari")
print("-" * 30)

pengiriman1 = PengirimanInternasional("Indonesia", "Rusia", "mobil", "Garuda")
pengiriman2 = PengirimanInternasional("Indonesia", "Indonesia", "motor", "Airline")
pengiriman3 = PengirimanInternasional("Indonesia", "Jerman", "motor", "Garuda")
pengiriman4 = PengirimanInternasional("Indonesia", "Indonesia", "mobil", "Airline")

pengiriman1.info_pengiriman()
pengiriman2.info_pengiriman()
pengiriman3.info_pengiriman()
pengiriman4.info_pengiriman()
Loading