diff --git a/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py new file mode 100644 index 0000000..9e159e2 --- /dev/null +++ b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py @@ -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() \ No newline at end of file diff --git a/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py new file mode 100644 index 0000000..392d5d5 --- /dev/null +++ b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py @@ -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() + diff --git a/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 3.py b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 3.py new file mode 100644 index 0000000..74032ac --- /dev/null +++ b/modul-1/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 3.py @@ -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() diff --git a/modul-2/240441100053_DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py b/modul-2/240441100053_DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py new file mode 100644 index 0000000..0a3a336 --- /dev/null +++ b/modul-2/240441100053_DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py @@ -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)) diff --git a/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py b/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py new file mode 100644 index 0000000..1b30c03 --- /dev/null +++ b/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 1.py @@ -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() \ No newline at end of file diff --git a/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py b/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py new file mode 100644 index 0000000..7781b1a --- /dev/null +++ b/modul-3/240441100053-DESTYA NURFAIZA MUSLIM/Tugas Praktikum No 2.py @@ -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")