diff --git a/H071221057/Praktikum 10/3.txt b/H071221057/Praktikum 10/3.txt new file mode 100644 index 0000000..bc34c88 --- /dev/null +++ b/H071221057/Praktikum 10/3.txt @@ -0,0 +1,6 @@ ++=========================================================================== +| Data yang Tersimpan ++=========================================================================== +| Nama : Evan +| Email : evan@student.unhas.ac.id +| Password : Evan12345 \ No newline at end of file diff --git a/H071221057/Praktikum 10/Evan.txt b/H071221057/Praktikum 10/Evan.txt new file mode 100644 index 0000000..17a897e --- /dev/null +++ b/H071221057/Praktikum 10/Evan.txt @@ -0,0 +1,11 @@ ++=========================================================================== +| Data yang Tersimpan ++=========================================================================== +| Nama : Pandu +| Email : pandu@student.unhas.ac.id +| Password : Evan12345 ++=========================================================================== +| Nama : Evan +| Email : pandu@student.unhas.ac.id +| Password : Pandu12345 ++=========================================================================== \ No newline at end of file diff --git a/H071221057/Praktikum 10/Zoo.py b/H071221057/Praktikum 10/Zoo.py new file mode 100644 index 0000000..c17b6f1 --- /dev/null +++ b/H071221057/Praktikum 10/Zoo.py @@ -0,0 +1,94 @@ +from abc import ABC, abstractmethod + + + + + + +#class abstract +#3.abstract adalah digunakan untuk memaksa anakan atau turunannya ada fungsi didalamnya. +#4.penggunaan abstract di kodeku itu ada pada self suara yg se buat untuk semua animal atau hewanku. +class Animal(ABC): + @abstractmethod + def suara(self): + pass +#polymorphism + def __init__(self, nama): + self.nama = nama + +#Inharitance Hewan(Animal) +#5.Inheritance adalah pewarisan dari kelas parent ke child +#6.penggunaan inheritance di kodeku itu ada pada class animal terus turun ke hewan lalu turun ke kucing dan anjing. +class Hewan(Animal): + def __init__(self, nama): + super().__init__(nama) + #Encapsulation (_) + self._suara = "Suara" + + #Polymorphism + #7.polymorphism adalah menggunakan interface publik pada setiap hewanku. +#8.penggunaan polymorphism di kodeku itu adalah pada kucing dan anjing bertarung menggunakan. + def serang(self,target): + #Encapsulation (_) + target._health -= self._power + #Polymorphism + def bergerak(self): + print("Bergerak dengan cara") + #Polymorphism + def bertarung(self): + print("Bertarung dengan") + +#Inharitance +class Kucing(Hewan): + def __init__(self, nama): + super().__init__(nama) + #Encapsulation (_) + self._health = 200 + #Encapsulation (_) + self._power = 100 + #Polymorphism + def cekDarah(self): + #Encapsulation (_) + print(self._health) + #Polymorphism + def serang(self,target): + #Encapsulation (_) + target._health -= self._power + #Polymorphism + def bergerak(self): + print("Kucing bergerak dengan menggunakan kaki dan tangannya") + #Polymorphism + def bertarung(self): + print("Kucing bertarung dengan mengunakan cakarnya") + #Polymorphism + def suara(self): + print("Meow") +#Inharitance +class Anjing(Hewan): + def __init__(self, nama): + super().__init__(nama) + #Encapsulation (_) + #1.encapsulation adalah untuk menunjukkan atribut private +#2.penggunaan encapsulation di kodeku itu adalah untuk membuat atribut” tersendiri atau private kepada animal atau hewanku. + self._health = 250 + #Encapsulation (_) + self._power = 50 + #Polymorphism + def cekDarah(self): + #Encapsulation (_) + print(self._health) + #Polymorphism + def serang(self,target): + #Encapsulation (_) + target._health -= self._power + #Polymorphism + def bergerak(self): + print("Anjing bergerak dengan menggunakan kaki dan tangannya") + #Polymorphism + def bertarung(self): + print("Anjing bertarung menggunakan taringnya") + #Polymorphism + def suara(self): + print("Guk-guk") + + \ No newline at end of file diff --git a/H071221057/Praktikum 10/__pycache__/War.cpython-310.pyc b/H071221057/Praktikum 10/__pycache__/War.cpython-310.pyc new file mode 100644 index 0000000..025e5e8 Binary files /dev/null and b/H071221057/Praktikum 10/__pycache__/War.cpython-310.pyc differ diff --git a/H071221057/Praktikum 10/__pycache__/Zoo.cpython-310.pyc b/H071221057/Praktikum 10/__pycache__/Zoo.cpython-310.pyc new file mode 100644 index 0000000..d85a99d Binary files /dev/null and b/H071221057/Praktikum 10/__pycache__/Zoo.cpython-310.pyc differ diff --git a/H071221057/Praktikum 10/hahaha.txt b/H071221057/Praktikum 10/hahaha.txt new file mode 100644 index 0000000..4532a9a --- /dev/null +++ b/H071221057/Praktikum 10/hahaha.txt @@ -0,0 +1,6 @@ ++=========================================================================== +| Data yang Tersimpan ++=========================================================================== +| Nama : Evan +| Email : evan@student.unhas.ac.id +| Password : EvanPandu69 \ No newline at end of file diff --git a/H071221057/Praktikum 10/no1.py b/H071221057/Praktikum 10/no1.py new file mode 100644 index 0000000..e6aee3b --- /dev/null +++ b/H071221057/Praktikum 10/no1.py @@ -0,0 +1,158 @@ +import re +# list data +name = [] +email = [] +password = [] +# regex +regex_email1 = r'@student[.]unhas[.]ac[.]id$' +regex_email2 = r'[A-Z]' +regex_email3 = r'[\s]' +regex_email4 = r'[!/,#$%^&*()_+=|{}[":;]' +regex_pw1 = r'[A-Z]' +regex_pw2 = r'[a-z]' +regex_pw3 = r'[\d]' +regex_file = r'Nama' +# function +def decoration(num): + print('='*num) +def pw_lemah(): + print('Password yang Anda Masukkan Terlalu Lemah,') + print('Gunakan Minimal 1 Huruf Kapital, Huruf Kecil, dan Angka') + +while True: + decoration(75) + print('''Selamat Datang Silahkan Pilih Opsi Menu Anda +1. Detail Anda\n2. Ubah Nama\n3. Jumlah Data pada File +4. Save Data pada File\n5. Buat Data Baru\n6. Keluar''') + opsi = input('Silahkan Pilih Opsi Anda : ') + + if opsi == '1': + decoration(75) + if name: + print('Data anda adalah') + for i in range(len(name)): + print(f'Name : {name[i]}\nEmail : {email[i]}') + print(f'Password : {password[i]}') + else: + print('Data Saat Ini Kosong') + + elif opsi == '2': + decoration(75) + if name: + for i in range(len(name)): + change = input(f'Silahkan Input Nama Baru Data ke-{i+1} : ') + name[i] = change + else: + print('Data Saat Ini Kosong') + + elif opsi == '3': + decoration(75) + input_file = input('Silahkan Masukkan Nama File : ') + try: + with open(input_file + '.txt', 'r') as file: + isi = file.read() + total = isi.count(regex_file) # isi.count('Nama') + print('Berhasil') + print(f'Jumlah Data Pada File : {total} Data') + except: + print(f'Tidak Terdapat File Dengan Nama {input_file}.txt') + print('Jumlah Data Pada File : 0 Data') + + elif opsi == '4': + decoration(75) + if name: + input_file = input('Silahkan Masukkan Nama File: ') + try: + with open(input_file + '.txt', 'r') as file1: + file1.read() + except: + with open(input_file + '.txt', 'w') as file2: + file2.write('+'+'='*75) + file2.write('\n| Data yang Tersimpan') + file2.write('\n+'+'='*75) + + with open(input_file + '.txt', 'a') as file3: + for i in range(len(name)): + file3.write(f'\n| Nama : {name[i]}') + file3.write(f'\n| Email : {email[i]}') + file3.write(f'\n| Password : {password[i]}') + file3.write('\n+' + '='*75) + name.clear() + email.clear() + password.clear() + print('Berhasil') + + else: + print('Data Saat Ini Kosong') + + elif opsi == '5': + decoration(75) + input_name = input('Silahkan Masukkan Nama Anda : ') + name.append(input_name) + + while True: + input_email = input('Silahkan Masukkan Email Anda : ') + cek1 = re.search(regex_email1, input_email) + if cek1: + cek2 = re.findall(regex_email2, input_email) + if cek2: + decoration(75) + print('Email yang Anda Masukkan Salah') + decoration(75) + else: + cek3 = re.findall(regex_email3, input_email) + if cek3: + decoration(75) + print('Email yang Anda Masukkan Salah') + decoration(75) + else: + cek4 = re.findall(regex_email4, input_email) + if cek4: + decoration(75) + print('Email yang Anda Masukkan Salah') + decoration(75) + else: + email.append(input_email) + break + else: + decoration(75) + print('Email yang Anda Masukkan Salah') + decoration(75) + + while True: + input_pw = input('Silahkan Masukkan Password Anda : ') + if len(input_pw) >= 8 and len(input_pw) <= 20: + cek1 = re.findall(regex_pw1, input_pw) + if cek1: + cek2 = re.findall(regex_pw2, input_pw) + if cek2: + cek3 = re.findall(regex_pw3, input_pw) + if cek3: + password.append(input_pw) + break + else: + decoration(75) + pw_lemah() + decoration(75) + else: + decoration(75) + pw_lemah() + decoration(75) + else: + decoration(75) + pw_lemah() + decoration(75) + else: + decoration(75) + print('Password Harus Memiliki Panjang 8 - 20 karakter') + decoration(75) + + elif opsi == '6': + decoration(75) + print('Sampai Jumpa Lagi') + break + + else: + decoration(75) + print('Inputan Salah') + print('Silahkan Masukkan Ulang Opsi') \ No newline at end of file diff --git a/H071221057/Praktikum 10/no2 (1).py b/H071221057/Praktikum 10/no2 (1).py new file mode 100644 index 0000000..e1bd73d --- /dev/null +++ b/H071221057/Praktikum 10/no2 (1).py @@ -0,0 +1,29 @@ +from Zoo import Kucing, Anjing +kucing = Kucing("oren") +anjing = Anjing("coklat") + +print("-"*30) +print("--- Cara kucing bergerak ---") +kucing.bergerak() +print("-"*30) +print("--- Cara anjing bergerak ---") +print("-"*30) +anjing.bergerak() + +print("-"*30) +print("--- Cara kucing bertarung ---") +kucing.bertarung() +print("-"*30) + +print("--- Cara anjing bertarung ---") +anjing.bertarung() +print("-"*30) + +print("Kucing serang anjing") +print("--- Darah anjing sebelum diserang ---") +anjing.cekDarah() +kucing.serang(anjing) +print("--- Darah anjing setelah diserang ---") +anjing.cekDarah() + + diff --git a/H071221057/Praktikum 8/Nomor 1.py b/H071221057/Praktikum 8/Nomor 1.py new file mode 100644 index 0000000..017753d --- /dev/null +++ b/H071221057/Praktikum 8/Nomor 1.py @@ -0,0 +1,60 @@ +class Person: + def __init__(self, name, age, isMale, Idola, Asal_Sekolah): + self.name = name + self.age = age + self.isMale = isMale + self.Idola = Idola + self.Asal_Sekolah = Asal_Sekolah + + 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 setGender(self, isMale): + self.isMale = isMale + + def getGender(self): + if isMale == True: + self.isMale = 'male' + return self.isMale + elif isMale == False: + self.isMale = 'female' + return self.isMale + + def setIdola(self, Idola): + self.Idola = Idola + + def getIdola(self): + return self.Idola + + def setAsal_Sekolah(self, Asal_Sekolah): + self.Asal_Sekolah = Asal_Sekolah + + def getAsal_Sekolah(self): + return self.Asal_Sekolah + +name = input('Masukkan nama: ') +age = int(input('Masukkan umur: ')) +isMale = input('is Male? True / False: ').upper() +if isMale == 'TRUE': + isMale == bool(True) +elif isMale == 'FALSE': + isMale = bool(False) +Idola = input('Masukkan Idola Anda: ') +Asal_Sekolah = input('Sekolah: ') + +person = Person(name, age, isMale, Idola, Asal_Sekolah) +print('\nNama saya ' + person.getName()) +print(f'Sekarang saya berumur {person.getAge()} tahun') +print(f'Saya berjenis kelamin {person.getGender()}') +print('Idola Saya ' + person.getIdola()) +print('Saya berasal dari ' + person.getAsal_Sekolah()) + diff --git a/H071221057/Praktikum 8/Nomor 2.py b/H071221057/Praktikum 8/Nomor 2.py new file mode 100644 index 0000000..165e123 --- /dev/null +++ b/H071221057/Praktikum 8/Nomor 2.py @@ -0,0 +1,36 @@ +class Kubus: + def __init__(self , lebar, tinggi, panjang, massa): + self.lebar = lebar + self.tinggi = tinggi + self.panjang = panjang + self.massa = massa + + def setLebar(self, lebar): + self.lebar = float(lebar) + + def setTinggi(self, tinggi): + self.tinggi = float(tinggi) + + def setPanjang(self, panjang): + self.panjang = float(panjang) + + def setMassa(self, massa): + self.massa = float(massa) + + def getMassaJenis(self): + MassaJenis = self.massa / (self.lebar*self.tinggi*self.panjang) + self.MassaJenis = MassaJenis + return self.MassaJenis + +lebar = float(input()) +tinggi = float(input()) +panjang = float(input()) +massa = float(input()) + + +kubus = Kubus(lebar, tinggi, panjang, massa) +kubus.setMassa(massa) +print("Massa Jenis =", kubus.getMassaJenis()) +kubus.setMassa(massa*2) +print("Massa Jenis =", kubus.getMassaJenis()) + diff --git a/H071221057/Praktikum 9/__pycache__/no1.cpython-310.pyc b/H071221057/Praktikum 9/__pycache__/no1.cpython-310.pyc new file mode 100644 index 0000000..e62cb3e Binary files /dev/null and b/H071221057/Praktikum 9/__pycache__/no1.cpython-310.pyc differ diff --git a/H071221057/Praktikum 9/inputan.py b/H071221057/Praktikum 9/inputan.py new file mode 100644 index 0000000..e74fce0 --- /dev/null +++ b/H071221057/Praktikum 9/inputan.py @@ -0,0 +1,17 @@ +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.special(warrior) +# setelah +print("health (after)", warrior.getHealth()) +print("-"*10) +# sebelum +print("Warrior (health)" ,warrior.getHealth()) +print("Support (speed) : ",support.getSpeed()) +support.special(warrior) +# setelah +print("Warrior (health)", warrior.getHealth()) +print("Support (speed): ",support.getSpeed()) diff --git a/H071221057/Praktikum 9/no1.py b/H071221057/Praktikum 9/no1.py new file mode 100644 index 0000000..35f8695 --- /dev/null +++ b/H071221057/Praktikum 9/no1.py @@ -0,0 +1,88 @@ +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 + + +health = int(input()) +class Hero (Human): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._power = 15 + self.health = health + 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 + + +