diff --git a/H071221042/Tugas Praktikum 10/no1.py b/H071221042/Tugas Praktikum 10/no1.py new file mode 100644 index 0000000..835b6a0 --- /dev/null +++ b/H071221042/Tugas Praktikum 10/no1.py @@ -0,0 +1,100 @@ +import re +import os +def bikindata (): + data = { + "Nama" : input("Masukkan nama: "), + "email" : "", + "password" : "" + } + cekemail= 0 + while cekemail== 0: + data ["email"]= input("Masukkan email: ") + cekEmail = "^[a-z0-9]{1,}@student.unhas.ac.id$" + if re.search(cekEmail, data["email"]): + cekemail= 1 + else: + print("=" * 60) + print("Format email salah\nSilahkan masukkan email lagi!") + print("=" * 60) + cekpassword= 0 + while cekpassword == 0: + data ["password"]= input("Masukkan password: ") + cekpass= "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$" + if len(data["password"]) >= 8: + if re.search(cekpass, data["password"]): + cekpassword= 1 + else: + print("=" * 60) + print("Password Terlalu Lemah") + print("Harus Memiliki Minimal 1 Huruf Kapital, Huruf Kecil, dan juga Angka") + print("=" * 60) + else: + print("=" * 60) + print("Panjang Password harus 8-20 Karakter") + print("=" * 60) + return data + +def jumlahdata(): + namafile= input("Masukkan Nama File: ") + x= "@student.unhas.ac.id" + try: + with open(f"{namafile}.txt", "r") as item: + jumlah= re.findall(x, item.read()) + print("Berhasil") + print(f"Jumlah data di File: {jumlah.count(x)} Data") + except FileNotFoundError: + print(f"Tidak Ada File dengan Nama {namafile}.txt") + print("Jumlah Data Pada File: 0") + +def savedata(): + file = input("Input Nama File: ") + if os.path.exists("{file}.txt"): + item.write("+" + "="*50 + "\n") + item.write("|Data yang Tersimpan\n") + item.write("+" + "="*50 + "\n") + with open(f"{file}.txt", "w") as item: + for x, value in data.items(): + item.write(f"|{x} : {value}\n") + + else: + with open(f"{file}.txt", "a") as item2: + for z, value in data.items(): + item2.write(f"|{z} : {value}\n") + print("Berhasil") + + + +data= None +while True: + print("="*60) + print("Selamat Datang\nSilahkan Pilih Opsi Di Menu Anda") + print("1. Detail Anda\n2. Ubah Nama\n3. Jumlah Data pada File\n4. Save Data pada File\n5. Buat Data Baru\n6. Keluar") + x= int(input("Pilih Opsi: ")) + print("="*60) + match x: + case 1: + if data == None: + print("Data saat ini kosong") + else: + print("Data Anda adalah") + for key, value in data.items(): + print(f"{key} : {value}") + case 2: + if data == None: + print("Data saat ini kosong") + else: + data["Nama"] = input("Masukkan Nama Baru: ") + print("Berhasil") + case 3: + jumlahdata() + case 4: + if data== None: + print("Data saat ini kosong") + else: + savedata() + case 5: + data= bikindata() + case 6: + print("Terima Kasih Telah Menggunakan Program") + print("=" * 50) + break \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 10/no2.py b/H071221042/Tugas Praktikum 10/no2.py new file mode 100644 index 0000000..1d2b1f3 --- /dev/null +++ b/H071221042/Tugas Praktikum 10/no2.py @@ -0,0 +1,50 @@ +from abc import ABC, abstractclassmethod + +class MahklukHidup(ABC): + + @abstractclassmethod + def setGender(self): + pass + def getGender(self): + pass + +class Hewan(MahklukHidup): + def __init__(self, nama, gender): + self.__nama= nama + self._gender= gender + + def setNama(self, nama): + self.nama= nama + def getNama(self): + return self.nama + + def setGender(self, gender): + self.gender= gender + def getGender(self): + if self.gender == True: + return 'Jantan' + else: + return 'Betina' + +class Unggas(Hewan): + def __init__(self, nama, gender): + super().__init__(nama, gender) + + + def Bergerak(self): + print("Unggas Bergerak dengan Cara Terbang") + +class Amfibi(Hewan): + def __init__(self, nama, gender): + super().__init__(nama, gender) + + def Bergerak(self): + print("Amfibi Bergerak Dengan Cara Berenang") + + +ayam= Unggas("Ayam", True) +ayam.Bergerak() + +kodok= Amfibi("Kodok", True) +kodok.Bergerak() +print(ayam.__dict__) \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 7/no1.py b/H071221042/Tugas Praktikum 7/no1.py new file mode 100644 index 0000000..350a25f --- /dev/null +++ b/H071221042/Tugas Praktikum 7/no1.py @@ -0,0 +1,9 @@ +import re + +x= input() +y= re.search("^[a-zA-Z02468]{40}[13579 ]{5}$", x) + +if y: + print('true') +else: + print('false') \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 7/no2.py b/H071221042/Tugas Praktikum 7/no2.py new file mode 100644 index 0000000..65afb75 --- /dev/null +++ b/H071221042/Tugas Praktikum 7/no2.py @@ -0,0 +1,17 @@ +import re +a= int(input()) +ip= [] + +for i in range(a): + x= input() + ip.append(x) +for i in ip: + z= re.search("^([0-9a-f]{1,4}:){7}([0-9a-f]{1,4})", i) + y= re.search("^([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|2[5][0-5].){3}([0-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|2[5][0-5])$", i) + + if z: + print('IPv6') + elif y: + print('IPv4') + else: + print('Bukan keduanya') \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 8/no1.py b/H071221042/Tugas Praktikum 8/no1.py new file mode 100644 index 0000000..8328469 --- /dev/null +++ b/H071221042/Tugas Praktikum 8/no1.py @@ -0,0 +1,44 @@ +class Person: + def __init__(self, name, age, gender, makanan): + self.name= name + self.age= age + self.gender= gender + self.makanan= makanan + + def setName(self, name): + self.name= name + def getName(self): + return self.name + + def setAge(self, age): + self.age= age + def getAge(self): + return self.age + + def setGender(self, gender): + self.gender= gender + def getGender(self): + if self.gender == True: + return 'Laki-laki' + else: + return 'Perempuan' + + def setMakanan(self, makanan): + self.makanan= makanan + def getMakanan(self): + return self.makanan + +person1= Person('KELVIN', '18', True, 'Nasi goreng') +print(person1.getName()) +print(person1.getAge()) +print(person1.getGender()) +print(person1.getMakanan()) +person1.setName('Fail') +person1.setAge('20') +person1.setGender(False) +person1.setMakanan('Ayam bakar') +print(person1.getName()) +print(person1.getAge()) +print(person1.getGender()) +print(person1.getMakanan()) +print(person1.__dict__) \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 8/no2.py b/H071221042/Tugas Praktikum 8/no2.py new file mode 100644 index 0000000..312d8c4 --- /dev/null +++ b/H071221042/Tugas Praktikum 8/no2.py @@ -0,0 +1,45 @@ +class Kubus: + def __init__(self, lebar, tinggi, panjang): + self.lebar= lebar + self.tinggi= tinggi + self.panjang= panjang + self.massa= 0 + self.massaJenis= 0 + + 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.lebar*self.tinggi*self.panjang) + +lebar= float(input()) +tinggi= 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()) + +kubus.setLebar(60) +kubus.setTinggi(40) +kubus.setPanjang(10) + +kubus.setMassa(massa) +print("Massa Jenis =", kubus.getMassaJenis()) + +kubus.setMassa(massa*2) +print("Massa jenis =", kubus.getMassaJenis()) \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 9/Perintah.py b/H071221042/Tugas Praktikum 9/Perintah.py new file mode 100644 index 0000000..01ccc3b --- /dev/null +++ b/H071221042/Tugas Praktikum 9/Perintah.py @@ -0,0 +1,18 @@ +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()) \ No newline at end of file diff --git a/H071221042/Tugas Praktikum 9/no1.py b/H071221042/Tugas Praktikum 9/no1.py new file mode 100644 index 0000000..1d867c0 --- /dev/null +++ b/H071221042/Tugas Praktikum 9/no1.py @@ -0,0 +1,86 @@ +class Human: + def __init__(self, name, position): + self.name= name + self.__position = position + + def setName(self, name): + self.name= name + def getName(self): + return self.name + + def setMovement(self, arah): + if arah == "L": + self.__position = self.__position - self.speed + + elif arah == "R": + self.__position = self.__position + self.speed + + def getMovement(self): + return self.__position + +class Hero(Human): + def __init__(self, name, position): + super().__init__(name, position) + self._power= 15 + self._health= 400 + self._armor= 15 + self._speed= 3 + self.target= None + + 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 + + def attack(self, target): + target._health= target._health-self._power + + +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._armor= 45 + self._power= 32 + target._health= 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= 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= target._health + 150 \ No newline at end of file