diff --git a/H071221099/Tugas Praktikum 10/no1.py b/H071221099/Tugas Praktikum 10/no1.py new file mode 100644 index 0000000..b00fce0 --- /dev/null +++ b/H071221099/Tugas Praktikum 10/no1.py @@ -0,0 +1,74 @@ +import re +# from prettytable import PrettyTable +_Data = [] +while True: + print(100*"="+"""\nPILIHAN LAYANAN +1. Detail Anda +2. Ubah Nama +3. Jumlah Data Pada File +4. Save Data pada File +5. Buat Data Baru +6. Keluar """) + _inputan = int(input(100*"="+"\nPilihan : ")); + if _inputan == 1: # Menampilkan Data Diri yang ada dalam list _Data + if len(_Data) > 0: + print(100*"=") + for i in range(len(_Data)): + for y in range(len(_Data[0])): + print(f'{_Data[i][y]}') + else: + print(100*"="+"\nData saat ini kosong!\n"+100*"=") + elif _inputan == 2: # Mengubah nama dalam list _Data + if len(_Data) != 0: + print(100*"=") + for i in range(len(_Data)): + for y in range(len(_Data[0])): + if y == 1 or y == 2: + continue + print(f'Urutan {i+1} {_Data[i][y]}') + _newName = list(map(str, input("Masukkan Index dan nama baru (Urutan NamaBaru) : ").split())) + _Data[int(_newName[0])-1][0] = "Nama : "+_newName[1] + elif len(_Data) == 0: + print(100*"="+"\nData Tidak Ditemukan!\n"+100*"=") + elif _inputan == 3: # Menampilkan jumlah data pada file .txt + _file = input("Masukkan fIle : ")+".txt" + try: + with open(_file) as baca: + dataFILE = re.findall(r"@student.unhas.ac.id", baca.read()) + print(f"Jumlah Data adalah {dataFILE.count('@student.unhas.ac.id')}") + except FileNotFoundError: + print(100*"="+f"\nTidak Terdapat File Dengan Nama {_file}") + print("Jumlah data pada file = 0\n"+100*"=") + elif _inputan == 4: # Menulis data pada list ke File .txt + if len(_Data) == 0: + print(100*"="+"\nData Sata Ini Kosong!\n"+100*"=") + else: + _FILE = input("Nama File : ")+".txt" + with open(_FILE, "a") as tulis: + tulis.write("\n") + for i in range(len(_Data)): + for y in range(len(_Data[0])): + tulis.write(_Data[i][y]+"\n") + tulis.write(100*"=") + _Data = [] + elif _inputan == 5: # Memasukkan data baru kedalam list _Data + nama = input(100*"="+"\nNama : "); print(100*"=") + while True: + Email = input("Email : ") + if re.search(r"^[a-z0-9]{1,}@student[.]unhas[.]ac[.]id$", Email): + break + else: + print(100*"="+"\nEmail Yang Anda Masukkan salah\n"+100*"=") + while True: + _Pass = input(100*"="+"\nMasukkan Password : "); print(100*"=") + if len(_Pass) >= 8 and len(_Pass) <= 20: + if re.search('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$', _Pass): + break + else: + print("Password yang anda masukkan terlalu lemah, gunakan minimal 1 huruf kapital, huruf kecil, dan angka") + else: + print("Password Harus Memiliki 8-20 Karakter") + _Data.insert(len(_Data), ["Nama : " + nama,"E-mail : "+ Email, "Password : "+ _Pass]); print("Berhasil") + elif _inputan == 6: # Keluar dari program/menyelesaikan while + print(100*"="+"\nSampai Jumpa Lagi\n"+100*"=") + break \ No newline at end of file diff --git a/H071221099/Tugas Praktikum 10/no2.py b/H071221099/Tugas Praktikum 10/no2.py new file mode 100644 index 0000000..8824081 --- /dev/null +++ b/H071221099/Tugas Praktikum 10/no2.py @@ -0,0 +1,68 @@ +from abc import ABC, abstractmethod + +class Motor(ABC): + @abstractmethod + def helm(self): + pass + + def __init__(self, produk, mesin): + self.produk = produk + self.__mesin = mesin + + def setMesin(self, mesin): + self.__mesin = int(mesin) + + def getMesin(self): + return self.__mesin + +class Yamaha(Motor): + def __init__(self, produk, mesin): + super().__init__(produk, mesin) + self.kecepatan = 105 + + def setKecepatan(self, kecepatan): + self.kecepatan = int(kecepatan) + + def melaju(self): + print('Dapat melaju hingga',self.kecepatan,'km/jam') + + def helm(self): + print('Beli Motor Yamaha gratis Helm') + +class Honda(Motor): + def __init__(self, produk, mesin): + super().__init__(produk, mesin) + self.kecepatan = 95 + + def setKecepatan(self, kecepatan): + self.kecepatan = int(kecepatan) + + def melaju(self): + print('Dapat melaju hingga',self.kecepatan,'km/jam') + + def helm(self): + print('Beli Helm gratis Motor Honda') + +def test_kecepatan(motor): + motor.melaju() + +yamaha = Yamaha('Odong-odong', 110) +honda = Honda('Bentor', 110) + +print('YAMAHA') +print(yamaha.produk + ' Keluaran terbaru dari Yamaha') +print(f'Dengan mesin {yamaha.getMesin()} cc') +#memanggil abstrak method +yamaha.helm() +#memanggil interface +test_kecepatan(yamaha) + +print('\nHONDA') +print(honda.produk + ' Sedikit modifikasi dari Honda') +print(f'Dengan mesin {honda.getMesin()} cc') +#memanggil abstrak method +honda.helm() +#memanggil interface +test_kecepatan(honda) + + diff --git a/H071221099/Tugas Praktikum 7/no1.py b/H071221099/Tugas Praktikum 7/no1.py new file mode 100644 index 0000000..5b60535 --- /dev/null +++ b/H071221099/Tugas Praktikum 7/no1.py @@ -0,0 +1,22 @@ +import re + +s = input('') +# print(len(s)) + +first_regex = r'[02468_]' +sec_regex = r'[13579 ]' + +resultone = re.findall(sec_regex, s[0:40]) +if resultone: + print('\nfalse') + exit() + +resultwo = re.findall(first_regex, s[40:45]) +if resultwo: + print('\nfalse') + exit() + +if len(s) == 45: + print('\ntrue') +else: + print('\nfalse') \ No newline at end of file diff --git a/H071221099/Tugas Praktikum 7/no2.py b/H071221099/Tugas Praktikum 7/no2.py new file mode 100644 index 0000000..eab1637 --- /dev/null +++ b/H071221099/Tugas Praktikum 7/no2.py @@ -0,0 +1,27 @@ +# Program mengecek apakah sebuah inputan merupakan +# IPv4, IPv6 atau bukan keduanya + +import re + +regex_ipv4 = r'^(([0-1]?[\d][\d]?|[0-2]?[0-4][\d]|25[0-5]).){3}([0-1]?[\d][\d]?|2[0-4][\d]|25[0-5])$' +regex_ipv6 = r'(([\d,A-F,a-f]{1,4}?:){7})([\d,A-F,a-f]{1,4})$' + +n = int(input('')) +list_address = [] + +for i in range(n): + address = input('') + list_address.append(address) + +print() + +for x in list_address: + ipv4 = re.search(regex_ipv4, x) + if ipv4: + print('IPv4') + else: + ipv6 = re.search(regex_ipv6, x) + if ipv6: + print('IPv6') + else: + print('Bukan IP Address') \ No newline at end of file diff --git a/H071221099/Tugas Praktikum 8/no1.py b/H071221099/Tugas Praktikum 8/no1.py new file mode 100644 index 0000000..5ff9f54 --- /dev/null +++ b/H071221099/Tugas Praktikum 8/no1.py @@ -0,0 +1,54 @@ +class Person: + def __init__(self, name, age, matkul, isMale): + self.name = name + self.age = age + self.isMale = isMale + self.matkul = matkul + + def setAge (self, age): + self.age = int(age) + + def getAge (self): + return self.age + + def setName (self, name): + self.name = name + + def getName (self): + return self.name + + def setMatkul (self, matkul): + self.matkul = matkul + + def getMatkul (self): + return self.matkul + + def setGender (self, gender): + if gender == "male": + self.isMale = True + else: + self.isMale = False + + def getGender (self): + if self.isMale == True: + self.gender = "male" + return self.gender + else: + self.gender = "female" + return self.gender + +name = input ("masukkan nama: " ) +Age = int(input ("masukkan umur: ")) +matkul = input("masukkan matkul:") +isMale = input ("ismale? True or False: ").upper() +if isMale == "TRUE": + isMale = bool(True) +else: + isMale = bool(False) + +person = Person(name, Age, matkul, isMale) +print(person.getName()) +print(person.getAge()) +print(person.getGender()) +print(person.getMatkul()) + diff --git a/H071221099/Tugas Praktikum 8/no2.py b/H071221099/Tugas Praktikum 8/no2.py new file mode 100644 index 0000000..b35f243 --- /dev/null +++ b/H071221099/Tugas Praktikum 8/no2.py @@ -0,0 +1,27 @@ +class Kubus: + def __init__(self, lebar, tinggi, panjang): + self.lebar = lebar + self.panjang = panjang + self.tinggi = tinggi + def setLebar (self, lebar): + self.lebar = lebar + def setTinggi (self, tinggi): + self.tinggi = tinggi + def setPanjang (self, panjang): + self.panjang = panjang + def setMassa (self, massa): + self.massa = massa + def getMassaJenis (self): + return self.massa / (self.panjang * self.lebar * self.tinggi) + +tinggi = float(input()) +lebar = float(input()) +panjang = float(input()) +massa = float(input()) + +kubus = Kubus (lebar, tinggi, panjang) + +kubus.setMassa (massa) +print("Massa jenis = ", kubus.getMassaJenis()) +kubus.setMassa (massa*2) +print("Massa jenis = ", kubus.getMassaJenis()) diff --git a/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc b/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc new file mode 100644 index 0000000..245aaf8 Binary files /dev/null and b/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc differ diff --git a/H071221099/Tugas Praktikum 9/inputan.py b/H071221099/Tugas Praktikum 9/inputan.py new file mode 100644 index 0000000..975bdba --- /dev/null +++ b/H071221099/Tugas Praktikum 9/inputan.py @@ -0,0 +1,24 @@ +from no1 import Warrior, Assasin, Support +warrior = Warrior("bambang", pos_x=10) +assassin = Assasin("joko", pos_x=25) +support = Support("udin",pos_x=30) +# sebelum +print("health (before)", warrior.getHealth()) +assassin.attack(warrior) +# sesudah +print("health (after)", warrior.getHealth()) +print("-"*10) +# sebelum +print("Warrior (health)", warrior.getHealth()) +print("Support (speed) : ",support.getSpeed()) +support.special(warrior) +# sesudah +print("Warrior (health)", warrior.getHealth()) +print("Support (speed): ",support.getSpeed()) +# sebelum +print("assasin (health)", assassin.getHealth()) +print("Support (speed) : ",support.getSpeed()) +support.special(assassin) +# sesudah +print("assassin (health)", assassin.getHealth()) +print("Support (speed): ",support.getSpeed()) diff --git a/H071221099/Tugas Praktikum 9/no1.py b/H071221099/Tugas Praktikum 9/no1.py new file mode 100644 index 0000000..94acdec --- /dev/null +++ b/H071221099/Tugas Praktikum 9/no1.py @@ -0,0 +1,85 @@ +class Human: + def __init__(self, name, position): + self.name = name + self.__pos_x = position + def setName (self, name): + self.name = name + def getName (self): + return self.name + def getPosition (self): + return self.__pos_x + def setMovement (self, move): + if move == 'L': + self.__pos_x -= self._speed + if move == 'R': + self.__pos_x += self._speed + +class Hero (Human): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._power = 15 + self._health = 400 + self._armor = 15 + self._speed = 3 + + def attack (self, target): + target._health -= self._power + + def setPower (self, power): + self._power = power + + def getPower (self): + return self._power + + def setHealth (self, health): + self._health = health + + def getHealth (self): + return self._health + + def setArmor (self, armor): + self._armor = armor + + def getArmor (self): + return self._armor + + def setSpeed (self, speed): + self._speed = speed + + def getSpeed (self): + return self._speed + +class Warrior (Hero): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._power = 26 + self._armor = 30 + + def special (self, target): + self._power = 32 + self._armor = 45 + target._health -= self._power + +class Assasin (Hero): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._power = 35 + self._speed = 4 + + def special (self, target): + self._speed = 7 + self._power = 42 + target._health -= self._power + +class Support (Hero): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._health = 500 + self._armor = 8 + self._speed = 4 + + def special (self, target): + self._speed = 6 + target._health += 150 + +