diff --git a/H071221075/Tugas Praktikum 10/Nomor 1.py b/H071221075/Tugas Praktikum 10/Nomor 1.py new file mode 100644 index 0000000..7bbe238 --- /dev/null +++ b/H071221075/Tugas Praktikum 10/Nomor 1.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: + 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/H071221075/Tugas Praktikum 10/Nomor 2.py b/H071221075/Tugas Praktikum 10/Nomor 2.py new file mode 100644 index 0000000..dd5b582 --- /dev/null +++ b/H071221075/Tugas Praktikum 10/Nomor 2.py @@ -0,0 +1,42 @@ +class Elektronik: + def __init__(self, merk) -> None: + self.harga = 0 + self.merk = merk + + def setHarga(self, harga): + self.harga = harga + + def getHarga(self): + return self.harga + + def nyalakan(self): + print(f"{self.merk} Menyela") + +class Handphone(Elektronik): + def __init__(self, merk, harga): + super().__init__(merk) + self.harga = harga + self.baterai = 5 + + def charge(self): + self.baterai = 100 + + def layar(self): + print(f"{self.merk} Layarnya Kecil") + + +class Laptop(Elektronik): + def __init__(self, merk, harga): + super().__init__(merk) + self.harga = harga + self.baterai = 10 + + def layar(self): + print(f"{self.merk} Layarnya Besar") + + +HP = Handphone("Samsung", 5000) +laptop = Laptop("Asus", 20000) + +HP.layar() +laptop.layar() \ No newline at end of file diff --git a/H071221075/Tugas Praktikum 10/m.txt b/H071221075/Tugas Praktikum 10/m.txt new file mode 100644 index 0000000..e69de29 diff --git a/H071221075/Tugas Praktikum 3/Nomor 2.py b/H071221075/Tugas Praktikum 3/Nomor 2.py index 728e925..4a06a50 100644 --- a/H071221075/Tugas Praktikum 3/Nomor 2.py +++ b/H071221075/Tugas Praktikum 3/Nomor 2.py @@ -1,4 +1,4 @@ -# Soal Modul +# # Soal Modul n = int(input("Jumlah angka : ")) a = 0 ; b = 1 ; c = a + b for i in range(n): @@ -7,8 +7,7 @@ # Soal Prak while True: - derajat = (input("Masukkan derajat :")) - c = '' + derajat = (input("Masukkan derajat :")) ; c = '' if derajat is not c: waktu = (1 / 15) * 3600 * float(derajat) jam = waktu // 3600 diff --git a/H071221075/Tugas Praktikum 6/Nomor 2.py b/H071221075/Tugas Praktikum 6/Nomor 2.py index f18115e..16a80cc 100644 --- a/H071221075/Tugas Praktikum 6/Nomor 2.py +++ b/H071221075/Tugas Praktikum 6/Nomor 2.py @@ -5,9 +5,9 @@ file_as[-1] += "\n" for x in file_as: n.append(len(x)) - with open(b, "w") as salinan: - for i in file_as: - salinan.write(i.rjust(max(n))) + with open(b, "w") as salinan: + for i in file_as: + salinan.write(i.rjust(max(n))) print("Berhasil") except: print("Gagal") diff --git a/H071221075/Tugas Praktikum 7/Nomor 1.py b/H071221075/Tugas Praktikum 7/Nomor 1.py new file mode 100644 index 0000000..6008cc9 --- /dev/null +++ b/H071221075/Tugas Praktikum 7/Nomor 1.py @@ -0,0 +1,3 @@ +import re +x = input() +print(True) if re.search(r"^[24680a-zA-Z]{40}[13579\s]{5}$", x) else print(False) \ No newline at end of file diff --git a/H071221075/Tugas Praktikum 7/Nomor 2.py b/H071221075/Tugas Praktikum 7/Nomor 2.py new file mode 100644 index 0000000..de429e6 --- /dev/null +++ b/H071221075/Tugas Praktikum 7/Nomor 2.py @@ -0,0 +1,14 @@ +import re +x = int(input()) ; ip_lst = [] +for i in range(x): + string_ = input() + ip_lst.append(string_) +def IP(c): + if re.search(r"^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]?[0-9]).){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]?[0-9])$", c): + return "IPv4" + elif re.search(r"^([\da-f]{1,4}:){7}([\da-f]{1,4}){1}$", c): + return "IPv6" + else: + return "Bukan iP address" +for i in ip_lst: + print(IP(i)) \ No newline at end of file diff --git a/H071221075/Tugas Praktikum 8/Nomor 1.py b/H071221075/Tugas Praktikum 8/Nomor 1.py new file mode 100644 index 0000000..2d00132 --- /dev/null +++ b/H071221075/Tugas Praktikum 8/Nomor 1.py @@ -0,0 +1,29 @@ +class human: + def __init__(self, name, age, isMale, tinggi): + self.name = name + self.age = age + self.isMale = isMale + self.tinggi = tinggi + def setTinggi(self, tinggi): + self.tinggi = tinggi + def getTinggi(self): + return self.tinggi + def setAge(self, age): + self.age = age + def getAge(self): + return self.age + def setname(self, name): + self.name = name + def getname(self): + return self.name + def setGender(self, isMale): + self.isMale = isMale + def getGender(self): + if self.isMale == True: + return("Male") + elif self.isMale == False: + return("Female") +Rio = human("Rio", 19, True, 171) +Kelvin = human("kelvin",20,False,140) +print(Rio.getGender()) +print(Kelvin.getGender()) diff --git a/H071221075/Tugas Praktikum 8/Nomor 2.py b/H071221075/Tugas Praktikum 8/Nomor 2.py new file mode 100644 index 0000000..477bc4d --- /dev/null +++ b/H071221075/Tugas Praktikum 8/Nomor 2.py @@ -0,0 +1,24 @@ +class BangunRuang: + def __init__(self, lebar, tinggi, panjang): + self.lebar = lebar + self.tinggi = tinggi + self.panjang = panjang + def setTinggi(self, tinggi): + self.tinggi = tinggi + def setPanjang(self, panjang): + self.panjang = panjang + def setLebar(self, lebar): + self.lebar = lebar + 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 = BangunRuang(lebar,tinggi,panjang) +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/H071221075/Tugas Praktikum 9/Hero.py b/H071221075/Tugas Praktikum 9/Hero.py new file mode 100644 index 0000000..043c292 --- /dev/null +++ b/H071221075/Tugas Praktikum 9/Hero.py @@ -0,0 +1,104 @@ +class Human: + + + def __init__(self, nama, pos_x): + self.name = nama + self.__pos_x = pos_x + + def setName(self, nama): + self.name = nama + + def getName(self): + return self.name + + def setPosx(self, posx): + self.__pos_x = posx + + def getPosx(self): + return self.__pos_x + + def move_Setter(self, arah): + if arah == "L": self.__pos_x -= self._speed + elif arah == "R": self.__pos_x += self._speed + + def move_Getter(self): + return self.__pos_x + +class Hero(Human): + + + def __init__(self,nama, pos_x): + super().__init__(nama, 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, pwr): + self._power = pwr + + def getPower(self): + return self._power + + def setHealth(self, hlt): + self._health = hlt + + def getHealth(self): + return self._health + + def setArmor(self, arm): + self._armor = arm + + def getArmor(self): + return self._armor + + def setSpeed(self, spd): + self._speed = spd + + def getSpeed(self): + return self._speed + + +class Warrior(Hero): + + + def __init__(self,nama, pos_x): + super().__init__(nama, pos_x) + self._armor = 30 + self._power = 26 + + def setSpecial(self, target): + self._armor = 45 + self._power = 32 + self.attack(target) + +class Support(Hero): + + + def __init__(self,nama, pos_x): + super().__init__(nama, pos_x) + self._armor = 8 + self._speed = 4 + self._health = 500 + + def setspecial(self, target): + self._speed = 6 + target._health += 150 + + +class Assassin(Hero): + + def __init__(self,nama, pos_x): + super().__init__(nama, pos_x) + self.armor = 4 + self._power = 35 + + def setSpecial(self,target): + self._speed = 7 + self._power = 42 + self.attack(target) + + diff --git a/H071221075/Tugas Praktikum 9/Program.py b/H071221075/Tugas Praktikum 9/Program.py new file mode 100644 index 0000000..c73d06e --- /dev/null +++ b/H071221075/Tugas Praktikum 9/Program.py @@ -0,0 +1,24 @@ +from Hero import Warrior, Assassin, Support +warrior = Warrior("bambang",pos_x=10) +assassin = Assassin("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.setspecial(warrior) +# sesudah +print("Warrior (health)", warrior.getHealth()) +print("Support (speed): ",support.getSpeed()) +support.move_Setter("L") +print(f"support posisi = {support.move_Getter()}") +print(warrior.name) +print("Before", assassin.getHealth()) +warrior.setSpecial(assassin) +print("After", assassin.getHealth()) +print(warrior.getArmor(), warrior.getPower()) \ No newline at end of file diff --git a/H071221075/Tugas Praktikum 9/__pycache__/Hero.cpython-310.pyc b/H071221075/Tugas Praktikum 9/__pycache__/Hero.cpython-310.pyc new file mode 100644 index 0000000..f188611 Binary files /dev/null and b/H071221075/Tugas Praktikum 9/__pycache__/Hero.cpython-310.pyc differ