Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions H071221099/Tugas Praktikum 10/no1.py
Original file line number Diff line number Diff line change
@@ -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 <namaFile>.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 <namaFile>.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
68 changes: 68 additions & 0 deletions H071221099/Tugas Praktikum 10/no2.py
Original file line number Diff line number Diff line change
@@ -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)


22 changes: 22 additions & 0 deletions H071221099/Tugas Praktikum 7/no1.py
Original file line number Diff line number Diff line change
@@ -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')
27 changes: 27 additions & 0 deletions H071221099/Tugas Praktikum 7/no2.py
Original file line number Diff line number Diff line change
@@ -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')
54 changes: 54 additions & 0 deletions H071221099/Tugas Praktikum 8/no1.py
Original file line number Diff line number Diff line change
@@ -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())

27 changes: 27 additions & 0 deletions H071221099/Tugas Praktikum 8/no2.py
Original file line number Diff line number Diff line change
@@ -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())
Binary file not shown.
24 changes: 24 additions & 0 deletions H071221099/Tugas Praktikum 9/inputan.py
Original file line number Diff line number Diff line change
@@ -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())
85 changes: 85 additions & 0 deletions H071221099/Tugas Praktikum 9/no1.py
Original file line number Diff line number Diff line change
@@ -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