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
48 changes: 48 additions & 0 deletions H071221020/Tugas Praktikum 10/Data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import re
class Data:

def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password

# Nama
def setName(self, name):
self.name = name
def getName(self):
return self.name

# Email dan validasinya
def setEmail(self, email):
self.email = email
def getEmail(self):
return self.email

# Password dan validasinya
def setPass(self, password):
self.password = password
def getPass(self):
return self.password

def save(self, filename):
try:
with open(filename+'.txt','r') as file:
file.read()
with open(filename+'.txt','a') as file:
file.write('Name'.ljust(10)+':'+self.name+'\n')
file.write('Email'.ljust(10)+':'+self.email+'\n')
file.write('Password'.ljust(10)+':'+self.password+'\n')
file.write(50*'='+'\n')
except:
with open(filename+'.txt','a') as file:
file.write(50*'='+'\n')
file.write('Data yang Tersimpan'.center(50)+'\n')
file.write(50*'='+'\n')
file.write('Name'.ljust(10)+':'+self.name+'\n')
file.write('Email'.ljust(10)+':'+self.email+'\n')
file.write('Password'.ljust(10)+':'+self.password+'\n')
file.write(50*'='+'\n')

def count(filename):
with open(filename+'.txt') as file:
return ((len(file.readlines())//3)-1)
58 changes: 58 additions & 0 deletions H071221020/Tugas Praktikum 10/no1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
from Data import Data
import re

while True:
print('Selamat Datang Silakan Pilih Opsi Menu Anda')
print(' 1. Detail Anda')
print(' 2. Ubah Nama')
print(' 3. Jumlah Data pada File')
print(' 4. Save Data pada File')
print(' 5. Buat Data Baru')
print(' 6. Keluar')
op = int(input('Silakan Pilih Opsi Menu Anda '))
if op==1:
try:
print(data.getName())
print(data.getEmail())
print(data.getPass())
except:
print('Data saat ini kosong')
elif op==2:
try:
data.getName()
name = input()
data.setName(name)
except:
print('Data saat ini kosong')
elif op==3:
try:
filename = input()
print(Data.count(filename))
except:
print('Tidak Terdapat File dengan Nama {}.txt'.format(filename))
elif op==4:
try:
filename = input()
data.save(filename)
print('Berhasil')
delattr(data, 'name')
delattr(data, 'email')
delattr(data, 'password')
except:
print('Data saat ini kosong')
elif op==5:
name = input()
email = 'True'
password = 'True'
while bool(re.match('^[a-z0-9]+\@student\.unhas\.ac\.id$', email))==False:
email = input()
if bool(re.match('^[a-z0-9]+\@student\.unhas\.ac\.id$', email))==False:
print('Email yang Anda Masukkan Salah')
while bool(re.match('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$', password))==False:
password = input()
if bool(re.match('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$', password))==False:
print('Password yang anda masukkan terlalu lemah, gunakan minimal 1 huruf kapital, huruf kecil, dan angka')
data = Data(name, email, password)
elif op==6:
print('SAMPAI JUMPA LAGI')
break
75 changes: 75 additions & 0 deletions H071221020/Tugas Praktikum 10/no4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
from abc import ABC, abstractmethod

class Abs(ABC):
@abstractmethod
def getName():
pass

class Person():
def __init__(self, name, power):
self.name = name
self.power = power
def getName(self):
return self.name

class Tkgpukul(Person):
def __init__(self, name, power):
super().__init__(name, power)
self.kekuatan = 50
def Menyekiti(self, target):
target.power-=self.kekuatan
def MintaTolong(self):
self.power+=30
def getPower(self):
return self.power

class Tkgtendang(Person):
def __init__(self, name, power):
super().__init__(name, power)
self.kekuatan = 75
def Menyekiti(self, target):
target.power-=self.kekuatan
def MintaTolong(self):
self.power+=15
def getPower(self):
return self.power

op1 = int(input('Masukkan pilihan pemain 1: '))
if op1==1:
name_1 = input('Masukkan nama: ')
player_1 = Tkgpukul(name_1, 500)
elif op1==2:
name_1 = input('Masukkan nama: ')
player_1 = Tkgtendang(name_1, 350)

op2 = int(input('Masukkan pilihan pemain 2: '))
if op1==1:
name_2 = input('Masukkan nama: ')
player_2 = Tkgpukul(name_2, 500)
elif op1==2:
name_2 = input('Masukkan nama: ')
player_2 = Tkgtendang(name_2, 350)

print(50*'=')
print('WAKTUNYA BERMAIN'.center(50))
print(50*'=')

while True:
p1 = int(input(f'apa yang akan dilakukan {name_1}? '))
if p1==1:
player_1.Menyekiti(player_2)
print(f'sisa power {name_2}: {player_2.getPower()}')
elif p1==2:
player_1.MintaTolong()
print(f'power {name_1} menjadi: {player_1.getPower()}')

p2 = int(input(f'apa yang akan dilakukan {name_2}? '))
if 2==1:
player_2.Menyekiti(player_1)
print(f'sisa power {name_1}: {player_1.getPower()}')
elif p2==2:
player_2.MintaTolong()
print(f'power {name_2} menjadi: {player_2.getPower()}')
maulagi = int(input('mau lagi? '))
if maulagi==0:
break
14 changes: 14 additions & 0 deletions H071221020/Tugas Praktikum 7/no1.PY
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#AAAAAAAAAAbbbbbbbbbb2222222222444444444413 57
#adfhladkjfhladdfs697adfs86ad7f69a9sdf876
import re
x=input()
bag1=x[0:40]
bag2=x[40:46]
pat1='^(([a-zA-Z]|(2|4|6|8|0)){40})$'
pat2='((([\s1359])){5})$'
res1=re.match(pat1,bag1)
res2=re.match(pat2,bag2)
if res1 and res2:
print('true')
else:
print('false')
32 changes: 32 additions & 0 deletions H071221020/Tugas Praktikum 7/no2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

import re
x = int(input()) #input jumlah baris
ipl = [] #list kosong umtuk diisi hasil input
for i in range(0,x): #perulangan jumlah baris inputan
ip = input() #inpiutan ip
ipl.append(ip) #memasukkan input ke ipl
for j in ipl: #perulangan untuk pengecekan
i4=False
i6=False
if re.match('^((\d|[a-f]){1,4}:){7}(\d|[a-f]){1,4}$',j):
i6=True
else:
i4 = re.match('^((((\d){1,3})(\.)){3})((\d){1,3})$',j)
cek=j.split('.') #dipisah untuk pengecekan jumlah di i4
jum=[] #list kosong untuk menyimpan elemen yang dipisah dalam tipe int
try: #untuk menangani eror apabila inputan bukan angka
for k in cek:
k=int(k)
jum.append(k)
if max(jum)<=255 and i4: #memerikasa jumlah dan kecocokan i4
i4=True
else:
i4=False
except ValueError:
i4=False
if i4:
print('IPv4')
elif i6:
print('IPv6')
else:
print('Bukan IP Address')
42 changes: 42 additions & 0 deletions H071221020/Tugas Praktikum 8/no1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
class Bio:

def __init__(self, name, age, isMale):
self.name=name
self.age=age
self.isMale=isMale

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):
self.isMale=isMale

def getGender(self):
if self.isMale==True:
return 'Laki-Laki'
else:
return 'Perempuan'

name=input('name: ')
age=int(input('age: '))
isMale=bool(input('isMale: '))

bio=Bio(name, age, isMale)

bio.setName(bio.getName())
print(bio.getName())

bio.setAge(bio.getAge())
print(bio.getAge())

bio.setGender()
print(bio.getGender())
42 changes: 42 additions & 0 deletions H071221020/Tugas Praktikum 8/no2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
class Kubus:

def __init__(self, panjang, lebar, tinggi):
self.panjang=panjang
self.lebar=lebar
self.tinggi=tinggi

def setPanjang(self, panjang):
self.panjang=panjang

def setLebar(self, lebar):
self.lebar=lebar

def setTinggi(self, tinggi):
self.tinggi=tinggi

def setMassa(self, massa):
self.massa=massa

def getMassaJenis(self):
return self.massa/(self.panjang*self.lebar*self.tinggi)


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.setPanjang(10)
kubus.setLebar(10)
kubus.setTinggi(10)
kubus.setMassa(50)

print("Massa Jenis =", kubus.getMassaJenis())
66 changes: 66 additions & 0 deletions H071221020/Tugas Praktikum 9/hero.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
class Human:
def __init__(self, name, pos_x):
self.name = name
self.__pos_x = pos_x
# self.arah = arah
def setMovement(self, arah):
if self.arah == 'L':
self.__pos_x = self.__pos_x - self._speed
elif self.arah == 'R':
self.__pos_x = self.__pos_x + self._speed
def getMovement(self):
return self.__pos_x

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 = 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 setPower(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 = 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._power = 42
self._speed = 7
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
Loading