From 0f317c9d89b9a2e75bb0eea1b7ccbcaf00f7d3d5 Mon Sep 17 00:00:00 2001 From: fathantsaqib Date: Sat, 29 Oct 2022 11:49:39 +0800 Subject: [PATCH 1/4] uploadtugas7 --- H071221099/Tugas Praktikum 7/no1.py | 22 ++++++++++++++++++++++ H071221099/Tugas Praktikum 7/no2.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 H071221099/Tugas Praktikum 7/no1.py create mode 100644 H071221099/Tugas Praktikum 7/no2.py diff --git a/H071221099/Tugas Praktikum 7/no1.py b/H071221099/Tugas Praktikum 7/no1.py new file mode 100644 index 0000000..5b60535 --- /dev/null +++ b/H071221099/Tugas Praktikum 7/no1.py @@ -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') \ No newline at end of file diff --git a/H071221099/Tugas Praktikum 7/no2.py b/H071221099/Tugas Praktikum 7/no2.py new file mode 100644 index 0000000..fb221ed --- /dev/null +++ b/H071221099/Tugas Praktikum 7/no2.py @@ -0,0 +1,28 @@ +# Program mengecek apakah sebuah inputan merupakan +# IPv4, IPv6 atau bukan keduanya + +import re + +regex_ipv4 = r'^(([0-1]?[\d][\d]?|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') \ No newline at end of file From e094b115781f255a664b316b6e095493173f14b5 Mon Sep 17 00:00:00 2001 From: fathantsaqib Date: Tue, 8 Nov 2022 10:52:13 +0800 Subject: [PATCH 2/4] uploadtugas8 --- H071221099/Tugas Praktikum 7/no2.py | 3 +- H071221099/Tugas Praktikum 8/no1.py | 54 +++++++++++++++++++++++++++++ H071221099/Tugas Praktikum 8/no2.py | 27 +++++++++++++++ 3 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 H071221099/Tugas Praktikum 8/no1.py create mode 100644 H071221099/Tugas Praktikum 8/no2.py diff --git a/H071221099/Tugas Praktikum 7/no2.py b/H071221099/Tugas Praktikum 7/no2.py index fb221ed..eab1637 100644 --- a/H071221099/Tugas Praktikum 7/no2.py +++ b/H071221099/Tugas Praktikum 7/no2.py @@ -3,7 +3,7 @@ import re -regex_ipv4 = r'^(([0-1]?[\d][\d]?|2[0-4][\d]|25[0-5]).){3}([0-1]?[\d][\d]?|2[0-4][\d]|25[0-5])$' +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('')) @@ -15,7 +15,6 @@ print() - for x in list_address: ipv4 = re.search(regex_ipv4, x) if ipv4: diff --git a/H071221099/Tugas Praktikum 8/no1.py b/H071221099/Tugas Praktikum 8/no1.py new file mode 100644 index 0000000..5ff9f54 --- /dev/null +++ b/H071221099/Tugas Praktikum 8/no1.py @@ -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()) + diff --git a/H071221099/Tugas Praktikum 8/no2.py b/H071221099/Tugas Praktikum 8/no2.py new file mode 100644 index 0000000..b35f243 --- /dev/null +++ b/H071221099/Tugas Praktikum 8/no2.py @@ -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()) From 14d7a3374d5a19be1c8e8480afe59f06fe2d5f83 Mon Sep 17 00:00:00 2001 From: fathantsaqib Date: Sat, 12 Nov 2022 13:25:15 +0800 Subject: [PATCH 3/4] uploadtugas9 --- .../__pycache__/no1.cpython-310.pyc | Bin 0 -> 2954 bytes H071221099/Tugas Praktikum 9/inputan.py | 17 ++++ H071221099/Tugas Praktikum 9/no1.py | 85 ++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc create mode 100644 H071221099/Tugas Praktikum 9/inputan.py create mode 100644 H071221099/Tugas Praktikum 9/no1.py diff --git a/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc b/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..739a625084d6c9a928a87c3cf40a5bc126232ca6 GIT binary patch literal 2954 zcmbtW&u<$=6rR~#uQzeh8VD51j|R#wg9uH8)TTnHp_Ry?gs7oHvMjBZ-EHf{_L>>H zg~+#7>JogK$?eo4jGjHC!?|U>Y@2RH7371kYoqNzF-IXl|+=yG;$_iWm^XXv9Dz}6nLv)-OE zJ`De~;_I!uHZ``jwsm)_^<6K$W!ewZ)~zfacGKR#w)!U88MJqX-A?r5Qva9M?X|Br zH&<3#>sPKWudFOzSzT>?KfE8=#m#cy;%cjxEn{pRgkiha9)ux-w@kaQXZ7wm32>?G zjM-Z@zB5$W>NUKKbfR}0GdEJ6+EydAt*;>$*gUca`^5wMRk1T2d>ZaXu5ai1PQx)= zIrl@`Ptycy1!~jlW)D+ILLsUgQ?u#dTiCgE=Essqfv)R7FKF-I-It2U4~^PrRJcuM zJ`D5OFzjZ@u*3JcF#Ks4b&4JX9x5|OLBEFt*EJe~k7Z|o73Vy$#ZZqlriRVlf+&gf zRNX_8K&Id@nGzqQswCAUz`vi&B(wOhCbeV^|G`tFvpIt_&F9{FYO)i2W6rpm{RCp5 z9;-hzSm*rdXp{ZRia*0adj(-~e-N4b>EIZ2xgQM%QM|*EmQxq>ZcRcc>@i_2TM6?` z7@iSo(0PAJU96^y3>>gTh#6qzP3G+ar*a*?+-lh~btUr-h8Nq?#kMZdaBPJc_*oZ3 zF0%Js2ox%Fx!-ZN6<*`?=dHj!tP$$B_ZKL@D(z?UPo7Nmzr_+?Jn3KTjafs+m~#{) zX;GCD&LY+KC@xdH4}p`k;9Z<{IwkicYj1Ff6fO^AR<)(iK+Wl(8o2z`UBkW@&ymK8 zV0*?DPAgz3P~HfYy!u0AOgl4EYxEfrKBY#B<8Vx1#~j-5%q#dSwom370gc=;vNzeK zY>?*`LlwHR%ur(WNjzt$vPDdlBLep-FDt1yylpEv#huAXJ?6OaXAlin%Ag2HYVb{1 zkCU~Eqdaa$od)_OGL}Co?|d2Aq<_zUF5*jc`N2`Y2bg|@4w66|6VrOd&^8rI^C5bP z)0(xBZJ)fm%d^yc%z^I4nC{24oaxRw>lKX}>e9y?2hn!wQdx1#$4#6qF ak}!GjW%0%H6)(5qGFJ6k{X)IAQ2P%hYVJe; literal 0 HcmV?d00001 diff --git a/H071221099/Tugas Praktikum 9/inputan.py b/H071221099/Tugas Praktikum 9/inputan.py new file mode 100644 index 0000000..2968bd9 --- /dev/null +++ b/H071221099/Tugas 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.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()) diff --git a/H071221099/Tugas Praktikum 9/no1.py b/H071221099/Tugas Praktikum 9/no1.py new file mode 100644 index 0000000..94acdec --- /dev/null +++ b/H071221099/Tugas Praktikum 9/no1.py @@ -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 + + From 247f2bc8f4d5e732b1af18e92d7788a699fae02d Mon Sep 17 00:00:00 2001 From: fathantsaqib Date: Fri, 25 Nov 2022 17:51:15 +0800 Subject: [PATCH 4/4] uploadtugas10 --- H071221099/Tugas Praktikum 10/no1.py | 74 ++++++++++++++++++ H071221099/Tugas Praktikum 10/no2.py | 68 ++++++++++++++++ .../__pycache__/no1.cpython-310.pyc | Bin 2954 -> 3784 bytes H071221099/Tugas Praktikum 9/inputan.py | 7 ++ 4 files changed, 149 insertions(+) create mode 100644 H071221099/Tugas Praktikum 10/no1.py create mode 100644 H071221099/Tugas Praktikum 10/no2.py diff --git a/H071221099/Tugas Praktikum 10/no1.py b/H071221099/Tugas Praktikum 10/no1.py new file mode 100644 index 0000000..b00fce0 --- /dev/null +++ b/H071221099/Tugas Praktikum 10/no1.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 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 \ No newline at end of file diff --git a/H071221099/Tugas Praktikum 10/no2.py b/H071221099/Tugas Praktikum 10/no2.py new file mode 100644 index 0000000..8824081 --- /dev/null +++ b/H071221099/Tugas Praktikum 10/no2.py @@ -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) + + diff --git a/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc b/H071221099/Tugas Praktikum 9/__pycache__/no1.cpython-310.pyc index 739a625084d6c9a928a87c3cf40a5bc126232ca6..245aaf8d2575e448c906d11c0ac55b04623e579b 100644 GIT binary patch literal 3784 zcmbtX$!{A~7@x%+k7GM=OUhEQM3l`ep$SWys+6QHB7$NYLmA3^g8ta55VDjF$PSFhcEtpoQfa{Hzyxdoc2ov%MqnGTtFnNz0;kl% zu2IU>K=)9y0Bxd&A7coNim8l>rA%c#F)FsQRSGlsCa>l``fV$?sq2q|>dkho*9=k^!%ms6QQ3PB~Hf!8X8rO-c2Xt?&DwWj44@}XdWa%^@S&Js|kO3~rgh96qOYpz} z?|@|?W;xoanZPEEYjzsav6)hsmwh~=lezqdOWn&z zIj5de%b4>|;e$#6wmlc6wgcThmgF=vr3v4~&@~<#znh4E>krFB-9oZkiYaf)I;Cu^ z)8eaCc}TO=e}(2l5-2%QI_z}&2^sK3S&lH4)%1V5h|v{|Bt6TA1Q9$Cn{EslSk ztVEH;M3H!79!(gOCu)*~#4(vS$Ew8i#~btMLQ5pNq~i#k=MDx zqsRxd6roFm%6nry#x9AeGj@{3HT$v1VwjKBkg9pqBUEFT<#ZKCk3^Q>=TYM#@6L)W zp|Zvkha*eyrA7Tbw_f1zA_u9jZ*e7tEpa7Ac%Lhg@QgkkvwyhMUs@7j#nw4 zbW$R*dSJ-6+8TY2hdeiA@Rn?;Ua>$@G-;@#L6!+SL9OmLu3%3jW4%VHTuLMx?GKz2 zqv0w^esq}b#J5zJuUsKa-xkxFxS77xJWW4sg`pqTkH2t}kDvaO2kr9k0_GvHrDL98 zhUpa!CwO9$_zevE#SyRnr^*o4cct@8wS)_k>XSje20Uh{~u=& z|A`pS^a4Hi74MRr1i7P$E5jaqWJ>jtu-BUe#nTga$}0YBU5($h*LW*_JsHJf@j@}T Gocj+yc6&tt delta 1026 zcmaJ=O=}ZT6rGp($Rsn9jyg5X$24tIO{UsZgCKR)g&%cOh3qN_Ass9#MqUDu*o6yG zaiig`1-o=1(wz%`K!1VYT3i&|^$&Q@Yhz5YO_;-*d(XY+y!+nlhHtZ8+w;;I|ESz< z^#gighMyXy71_kdC!_er+|K#(Nut535G!Qoz+;j zYt3%A*?L6ViCkeHB3s%+t)WS9A|b*5B&10zc6RD+yBEtWNA{7mMBh^#9?+IGdwQBf z!zv|MqFyr0~RHWNY37FJdNXx znWGhPSH+{W^pMH`CIB`-3Cv(M2PgyP>3J%w7druTwy0|9e-b!K8}EX zrd}+b0bljRsHEBiMkG}ub)>2rDD(6_{lp*f)R+pCaS9@$1!wNo|E$)~>>OZpKSm}i zoPc|EbTH|gvcl#dh+WB7JQSoIL|ChCE_fjq*6lOI#u^P|0mADxNZb;2W8d zCACR-y@L1>eQ_tNm&Pe0*L6;)eO(5le&{#t-Css^Wd37OX{o86=<^zFdz)oNInmt; zUCd11Io8-!mS5)Q@N?sFS`x7}_Jq$+;!;QqU1AR^CoR6S0e#K{NypFnPT>3jT(X|} diff --git a/H071221099/Tugas Praktikum 9/inputan.py b/H071221099/Tugas Praktikum 9/inputan.py index 2968bd9..975bdba 100644 --- a/H071221099/Tugas Praktikum 9/inputan.py +++ b/H071221099/Tugas Praktikum 9/inputan.py @@ -15,3 +15,10 @@ # 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())