diff --git a/H071211014/Tugas Pengantar Pemrograman/Tugas 1. Praktisi (Attar Musharih-H071211014).zip b/H071211014/Tugas Pengantar Pemrograman/Tugas 1. Praktisi (Attar Musharih-H071211014).zip new file mode 100644 index 0000000..043537f Binary files /dev/null and b/H071211014/Tugas Pengantar Pemrograman/Tugas 1. Praktisi (Attar Musharih-H071211014).zip differ diff --git a/H071211014/Tugas Pengantar Pemrograman/Tugas 2- Pengantar Pemrograman.zip b/H071211014/Tugas Pengantar Pemrograman/Tugas 2- Pengantar Pemrograman.zip new file mode 100644 index 0000000..538ae2b Binary files /dev/null and b/H071211014/Tugas Pengantar Pemrograman/Tugas 2- Pengantar Pemrograman.zip differ diff --git a/H071211055/Materi_01/tugas_01.py b/H071211055/Materi_01/tugas_01.py new file mode 100644 index 0000000..f7156c2 --- /dev/null +++ b/H071211055/Materi_01/tugas_01.py @@ -0,0 +1,15 @@ +import math +h = 100 +a = 60 +b = 45 + +radian_a = a*math.pi/180 +radian_b = b*math.pi/180 + +panjang_a = math.tan(radian_a)*100 +panjang_b = math.tan(radian_b)*100 + +hasil = panjang_a-panjang_b + + +print("hasil :%.1f m"%hasil) diff --git a/H071211055/Materi_01/tugas_02.py b/H071211055/Materi_01/tugas_02.py new file mode 100644 index 0000000..64444e1 --- /dev/null +++ b/H071211055/Materi_01/tugas_02.py @@ -0,0 +1,8 @@ +n = int(input("masukan detik yang akan diubah : ")) + +Jam = n // 3600 +sisa_jam = n % 3600 +Menit = sisa_jam // 60 +Detik = sisa_jam % 60 + +print (str(Jam)+":"+str(Menit)+":"+str(Detik)) \ No newline at end of file diff --git a/H071211055/Materi_01/tugas_03.py b/H071211055/Materi_01/tugas_03.py new file mode 100644 index 0000000..52a32bf --- /dev/null +++ b/H071211055/Materi_01/tugas_03.py @@ -0,0 +1,13 @@ +import math +r = int(input("jari_jari_alas = ")) +t = int(input("tinggi = ")) + +s = math.sqrt(r**(2)+t**(2)) + +phi = math.pi + +volume = 1/3*phi*(r**2)*t +luas = math.pi*r*(r+s) + +print(f"volume :{volume:.2f}") +print(f"luas :{luas:.2f}") \ No newline at end of file diff --git a/H071211055/Materi_02/No1.py b/H071211055/Materi_02/No1.py new file mode 100644 index 0000000..72f65a3 --- /dev/null +++ b/H071211055/Materi_02/No1.py @@ -0,0 +1,16 @@ +nilai =int(input("nilai =")) + +if nilai >= 90: + hasil = "A" +elif nilai >= 80: + hasil = "B" +elif nilai >= 70: + hasil = "C" +elif nilai >= 60: + hasil = "D" +elif nilai >= 40: + hasil = "E" +else: + hasil = "F" + +print(f"> nilai anda = {hasil}") \ No newline at end of file diff --git a/H071211055/Materi_02/No2.py b/H071211055/Materi_02/No2.py new file mode 100644 index 0000000..b597109 --- /dev/null +++ b/H071211055/Materi_02/No2.py @@ -0,0 +1,55 @@ +import math +gol = (input('golongan = ')) +p = int(input('daya = ')) +kWH = int(input('pemakaian = ')) + +R1_900 = 1352 +R1_1300 = 144470 +R1_2200 = 144470 + +R2_3500 = 169953 +R3_6600 = 169953 + +B2_6600 = 1444.7 +B3_200 = 111474 + +I3_200 = 131412 +P1_6600 = 152328 + +hasil = 0 +if gol == 'R1': + if p == 900: + hasil = kWH*R1_900 + elif p == 1300: + hasil = kWH*R1_1300 + elif p == 2200: + hasil = kWH*R1_2200 +elif gol == 'R2': + if p >= 3500 and 5500: + hasil = kWH*R2_3500 +elif gol == 'R3': + if p >= 6600: + hasil = kWH*R3_6600 + +elif gol == 'B2': + if p >= 6600 and 200: + hasil = kWH*B2_6600 +elif gol == 'B3': + if p > 200: + hasil = kWH*B3_200 + +elif gol == 'I3': + if p > 200: + hasil = kWH*I3_200 + +elif gol == 'P1': + if p >= 6600 and 200: + hasil = kWH*P1_6600 + else: + print('data tidak valid') + +tes = (f'jumlah tagihan anda {hasil:,.1f}') +# tes.replace(',', '.') +# indexT = tes.rindex('.') +# tes = tes[:indexT] + ',' + tes[indexT+1:] +print(tes) diff --git a/H071211055/Materi_02/No3.py b/H071211055/Materi_02/No3.py new file mode 100644 index 0000000..24b2bea --- /dev/null +++ b/H071211055/Materi_02/No3.py @@ -0,0 +1,75 @@ +try: + x = list(input().split(' ')) + + genap = 0 + ganjil = 0 + positif = 0 + negatif = 0 + + input1 = int(x[0]) + if input1 % 2 == 0: + genap+=1 + else: + ganjil+=1 + + if input1 >= 0: + positif+=1 + else: + negatif+=1 + + + input2 = int(x[1]) + if input2 % 2 == 0: + genap+=1 + else: + ganjil+=1 + + if input2 >= 0: + positif+=1 + else: + negatif+=1 + + + input3 = int(x[2]) + if input3 % 2 == 0: + genap+=1 + else: + ganjil+=1 + + if input3 >= 0: + positif+=1 + else: + negatif+=1 + + input4 = int(x[3]) + if input4 % 2 == 0: + genap+=1 + else: + ganjil+=1 + + if input4 >= 0: + positif+=1 + else: + negatif+=1 + + + input5 = int(x[4]) + if input5 % 2 == 0: + genap+=1 + else: + ganjil+=1 + + if input5 >= 0: + positif+=1 + else: + negatif+=1 + + + + print(genap,'Angka Genap') + print(ganjil,'Angka Ganjil') + print(positif,'Angka Positif') + print(negatif,'Angka Negatif') + +except: + print("Inputan tidak valid") \ No newline at end of file diff --git a/H071211055/Materi_03/no1.py b/H071211055/Materi_03/no1.py new file mode 100644 index 0000000..421d982 --- /dev/null +++ b/H071211055/Materi_03/no1.py @@ -0,0 +1,7 @@ +x = int(input('masukkan nilai x :')) +y = int(input('masukkan nilai y :')) + +for i in range(1,y+1) : + print (i, end="" ) + if i % x == 0 : + print () \ No newline at end of file diff --git a/H071211055/Materi_03/no2.py b/H071211055/Materi_03/no2.py new file mode 100644 index 0000000..5500bd3 --- /dev/null +++ b/H071211055/Materi_03/no2.py @@ -0,0 +1,31 @@ +for x in range(0,360): + m = float(input('M(0-360): ')) + if 0 <= m < 90: + n = m*240 + print('selamat pagi') + break + elif 90 <= m < 135: + n = m*240 + print('selamat siang') + break + elif 135 <= m < 180: + n = m*240 + print('selamat sore') + break + elif 180 <= m < 360: + n = m*240 + print('selamat malam') + break + else: + print('inpput salah') + +jam = n // 3600 +jam += 6 +if jam >= 24: + jam -= 24 +sisa = n % 3600 +menit = sisa // 60 +detik = sisa % 60 + +print("%02d:%02d:%02d"%(jam,menit,detik)) + \ No newline at end of file diff --git a/H071211055/Materi_03/no3.py b/H071211055/Materi_03/no3.py new file mode 100644 index 0000000..87c7519 --- /dev/null +++ b/H071211055/Materi_03/no3.py @@ -0,0 +1,50 @@ +harga_barang = int(input("Harga Barang : ")) +uang_yg_dibayarkan = int(input("Nominal Uang : ")) + +kembalian = uang_yg_dibayarkan-harga_barang +x1 = 0 +x2 = 0 +x3 = 0 +x4 = 0 +x5 = 0 +x6 = 0 +x7 = 0 + +if harga_barang < uang_yg_dibayarkan: + while kembalian >= 100000: + x1 += 1 + kembalian -= 100000 + + while kembalian >= 50000: + x2 += 1 + kembalian -= 50000 + + while kembalian >= 20000: + x3 += 1 + kembalian -= 20000 + + while kembalian >= 10000: + x4 += 1 + kembalian -= 10000 + + while kembalian >= 5000: + x5 += 1 + kembalian -= 5000 + + while kembalian >= 2000: + x6 += 1 + kembalian -= 2000 + + while kembalian >= 1000: + x7 += 1 + kembalian -= 1000 +else: + print("Inputan Tidak Valid") + +print(x1, "uang Rp. 100.000" ) +print(x2, "uang Rp. 50.000" ) +print(x3, "uang Rp. 20.000" ) +print(x4, "uang Rp. 10.000" ) +print(x5, "uang Rp. 5.000" ) +print(x7, "uang Rp. 2.000" ) +print(x7, "uang Rp. 1.000" ) \ No newline at end of file diff --git a/H071211055/Materi_04/no1.py b/H071211055/Materi_04/no1.py new file mode 100644 index 0000000..fe69d7f --- /dev/null +++ b/H071211055/Materi_04/no1.py @@ -0,0 +1,12 @@ +n = int(input()) + +def faktorial (n): + if n > 2: + return n*faktorial(n - 1) + return 2 + +hitung_faktorial = faktorial(n) +print(f'{hitung_faktorial}') + + + diff --git a/H071211055/Materi_04/no2.py b/H071211055/Materi_04/no2.py new file mode 100644 index 0000000..fa936e4 --- /dev/null +++ b/H071211055/Materi_04/no2.py @@ -0,0 +1,10 @@ +x = int(input()) +y = int(input()) + +def getFPB(x, y): + while(y): + x, y = y, (x % y) + return x + +print('FPB dari', x,'dan', y,'=', getFPB(x, y)) + diff --git a/H071211055/Materi_04/no3.py b/H071211055/Materi_04/no3.py new file mode 100644 index 0000000..c0dcd2b --- /dev/null +++ b/H071211055/Materi_04/no3.py @@ -0,0 +1,21 @@ +YEAR = 365 +MONTH = 30 +a = int(input("Masukkan Hari : ")) + +def myDay(a): + tahun = 0 + bulan = 0 + while a >= YEAR: + tahun += 1 + a -= YEAR + while a >= MONTH: + bulan += 1 + a -= MONTH + hari = a%YEAR%MONTH + + return tahun,bulan,hari + +x,y,z = myDay(a) +print(x,"tahun") +print(y,"bulan") +print(z,"hari") \ No newline at end of file diff --git a/H071211055/Materi_04/no4.py b/H071211055/Materi_04/no4.py new file mode 100644 index 0000000..7e3381a --- /dev/null +++ b/H071211055/Materi_04/no4.py @@ -0,0 +1,38 @@ +x=0 +y=0 +def kanan(): + global x + x = x+1 + print(f"x{x}, y{y}") +def kiri(): + global x + if x!=0: + x= x-1 + print(f"x{x}, y{y}") +def atas(): + global y + if(y>0): + y= y-1 + print(f"x{x}, y{y}") +def bawah(): + global y + y= y+1 + print(f"x{x}, y{y}") + +while True : + direction= input("inser direction :").upper() + if direction == "END" : + break + else : + arahan= list(direction) + for i in arahan : + if i == 'R' : + kanan() + elif i == 'L' : + kiri() + elif i == 'U' : + atas() + elif i == 'D' : + bawah() + else : + continue diff --git a/H071211055/Materi_05/no1.py b/H071211055/Materi_05/no1.py new file mode 100644 index 0000000..ae8010b --- /dev/null +++ b/H071211055/Materi_05/no1.py @@ -0,0 +1,26 @@ +def matriks(x,y): + data =[] + for i in range(x): + kal =[] + for j in range(y): + isi = int(input("Input nilai matriks index {},{}: ".format(i+1,j+1))) + kal.append(isi) + data.append(kal) + return data + +def perkalian_matriks(a,b): + hasil = [] + for y in range (2): + total = [] + for x in range (2): + kali = a[y][0] * b[0][x] + a[y][1] *b[1][x] + total.append(kali) + hasil.append(total) + return hasil + +matriks_1 = matriks(2,2) +matriks_2 = matriks(2,2) +kali = perkalian_matriks(matriks_1,matriks_2) + +print(f'|{matriks_1[0]}| x |{matriks_2[0]}| = |{kali[0]}|') +print(f'|{matriks_1[1]}| |{matriks_2[1]}| |{kali[1]}|') \ No newline at end of file diff --git a/H071211055/Materi_05/no2.py b/H071211055/Materi_05/no2.py new file mode 100644 index 0000000..8016d19 --- /dev/null +++ b/H071211055/Materi_05/no2.py @@ -0,0 +1,46 @@ +print("Selamat datang untuk memulai silahkan input data anda") +data={} +nama = input("Input nama : ") +umur = input("Input umur : ") +alamat = input("Input alamat : ") +data['nama'] = nama +data['umur'] = umur +data['alamat'] = alamat + +while (True): + print(50*"=") + print(f"Selamat datang {nama} silahkan pilih opsi") + print(50*"=") + print("1. Detail anda") + print("2. Ubah nama") + print("3. Ubah umur") + print("4. Ubah alamat") + print("5. Keluar") + print(50*"=") + opsi = int(input("Input Opsi : ")) + print(50*"=") + if opsi == 1 : + print(f"Data anda adalah : ") + print("Nama : ", data['nama']) + print("Umur : ", data['umur']) + print("Alamat : ", data['alamat']) + print(50*"=") + elif opsi == 2 : + nama = input("Silahkan Input nama baru : ") + data["nama"] = nama + print("Data anda sukses di diperbarui") + print(50*"=") + elif opsi == 3 : + umur = input("Silahkan Input umur baru : ") + data ["umur"] = umur + print("Data anda sukses di diperbarui") + print(50*"=") + elif opsi == 4: + alamat = input("Silahkan Input alamat baru : ") + data ["alamat"] = alamat + print("Data anda sukses di diperbarui") + print(50*"=") + else: + opsi == 5 + print(f"Selamat Tinggal {nama}") + break \ No newline at end of file diff --git a/H071211055/Materi_05/no3.py b/H071211055/Materi_05/no3.py new file mode 100644 index 0000000..3eb5107 --- /dev/null +++ b/H071211055/Materi_05/no3.py @@ -0,0 +1,12 @@ +a = list(map(int, input("input array ke 1 : ").split(" "))) +b = list(map(int, input("input array ke 2 : ").split(" "))) + +hasil = [] + +for i in a: + for j in b: + if i == j: + hasil.append(i) + +print(f'terdapat {len(hasil)} buah duplikat yaitu {tuple(hasil)}') + diff --git a/H071211055/Materi_06/Latihan-1.txt b/H071211055/Materi_06/Latihan-1.txt new file mode 100644 index 0000000..d05347b --- /dev/null +++ b/H071211055/Materi_06/Latihan-1.txt @@ -0,0 +1,7 @@ +Baris pertama +Baris kedua +Dan Seterusnya... + + Baris pertama + Baris kedua +Dan Seterusnya... \ No newline at end of file diff --git a/H071211055/Materi_06/Latihan1.txt b/H071211055/Materi_06/Latihan1.txt new file mode 100644 index 0000000..f92143a --- /dev/null +++ b/H071211055/Materi_06/Latihan1.txt @@ -0,0 +1,3 @@ +Baris pertama +Baris kedua +Dan Seterusnya... diff --git a/H071211055/Materi_06/no1.py b/H071211055/Materi_06/no1.py new file mode 100644 index 0000000..68efd14 --- /dev/null +++ b/H071211055/Materi_06/no1.py @@ -0,0 +1,18 @@ +file = open('Latihan1.txt','w') +file.write('Baris pertama\n') +file.write('Baris kedua \n') +file.write('Dan Seterusnya... \n') + +file.close() + +inputan1 = input() +inputan2 = input() + +file = open(inputan1 + '.txt','r') +data = file.read() +file.close() + +with open(inputan2 + '.txt','w') as file: + file.write(data) +print('\nBerhasil') + diff --git a/H071211055/Materi_06/no2.py b/H071211055/Materi_06/no2.py new file mode 100644 index 0000000..25460c2 --- /dev/null +++ b/H071211055/Materi_06/no2.py @@ -0,0 +1,25 @@ +file = open('Latihan1.txt','w') +file.write('Baris pertama\n') +file.write('Baris kedua \n') +file.write('Dan Seterusnya... \n') + +file.close() + +inputan1 = input() +inputan2 = input() + +file = open(inputan1 + '.txt','r') +data = file.read() +file.close() + +teks1 = 'Baris pertama' +teks2 = 'Baris kedua \n' +teks3 = 'Dan Seterusnya... ' +data1 = '\n{:>15}'.format(teks1) +data2 = '\n{:>20}'.format(teks2) +with open(inputan2 + '.txt','a') as file: + file.write(data1) + file.write(data2) + file.write(teks3) +print('\nBerhasil') + diff --git a/H071211055/Materi_06/no3.py b/H071211055/Materi_06/no3.py new file mode 100644 index 0000000..ed22c98 --- /dev/null +++ b/H071211055/Materi_06/no3.py @@ -0,0 +1,15 @@ +data = 2 +nama = input() +nim = input() +angkatan = input() + + +# +-----------+----------+------------+ +# | Nama | Nim | Angkatan | +# +-----------+----------+------------+ + +for i in range(data): + kolom1 = 'Nama' + kolom2 = 'Nim' + kolom3 = 'Angkatan' + print('+'*'-'+'+') \ No newline at end of file diff --git a/H071211055/Materi_07/no1.py b/H071211055/Materi_07/no1.py new file mode 100644 index 0000000..1c3cafb --- /dev/null +++ b/H071211055/Materi_07/no1.py @@ -0,0 +1,23 @@ +import re + +s = input() + +if len(s) == 45: + syarat_full = r"^[a-zA-Z[02468]{40}[13579\s]{5}" + syarat2 = "[13579\s]" + syarat3 = "[a-zA-Z[02468]" + + pola_full = re.findall(syarat_full, s) + pola1 = re.findall(syarat2, s[0:40]) + pola2 = re.findall(syarat3, s[41:45]) + + if pola_full: + print("True") + else: + print("False") + + if pola1 or pola2: + print(pola1,pola2) + +else: + print("False") \ No newline at end of file diff --git a/H071211055/Materi_07/no2.py b/H071211055/Materi_07/no2.py new file mode 100644 index 0000000..4931c66 --- /dev/null +++ b/H071211055/Materi_07/no2.py @@ -0,0 +1,17 @@ +import re +n = input() +ipv4 = input() +ipv6 = input() + +if (re.search(n)): + print("Bukan IP addres") + if (re.search(ipv4)): + patter = "^(25[0-5]| 2[0-4][0-9]|1[0-9]|[0-9][1-9]?[0-9]\.) $",re.split(".") + print("IPv4") + else: + print("Bukan IP address") + if (re.search(ipv6)): + pattern = "[0-9]{4}re.split(:)\.[a-z]{0,32}" + print("IPv6") + else: + print("Bukan IP address") diff --git a/H071211055/Materi_08/kubus.py b/H071211055/Materi_08/kubus.py new file mode 100644 index 0000000..6f224a9 --- /dev/null +++ b/H071211055/Materi_08/kubus.py @@ -0,0 +1,32 @@ +class Kubus: + def __init__(self,lebar,tinggi,panjang): + self.lebar = lebar + self.tinggi = tinggi + self.panjang = panjang + + def setLebar(self,lebar): + self.lebar = lebar + def setTinggi(self,tingi): + self.tinggi = tinggi + def setPanjang(self,panjang): + self.panjang = panjang + def setMassa(self,massa): + self.massa = massa + def getMassaJenis(self): + volume = self.panjang*self.lebar*self.tinggi + p = self.massa/volume + return p + +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()) + \ No newline at end of file diff --git a/H071211055/Materi_08/person.py b/H071211055/Materi_08/person.py new file mode 100644 index 0000000..e2b97ee --- /dev/null +++ b/H071211055/Materi_08/person.py @@ -0,0 +1,26 @@ +class Person: + def __init__(self, age, name, gender): + self.age = age + self.name = name + self.gender = gender + + 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,gender): + self.gender = gender + def getGender(self): + return self.gender + + +data = Person(19, 'aul', 'perempuan') +print(data.getName()) +print(data.getAge()) +print(data.getGender()) +data.setName('lia') +print(data.getName()) diff --git a/H071211055/Materi_09/game.py b/H071211055/Materi_09/game.py new file mode 100644 index 0000000..816a220 --- /dev/null +++ b/H071211055/Materi_09/game.py @@ -0,0 +1,103 @@ +class Human: + def __init__(self, name, position): + self.name = name + self.__pos_x = position #private klo dua __ + 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 #krena dua yg apakn kt bkin kan kondisi di soal hrus menerima r dan l + +class Hero (Human): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) #super itu memanggil method yg kita definisikan di parent class + 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): #special itu method + 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): #special itu yang akan di ubah + 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 + + 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 + + \ No newline at end of file diff --git a/H071211055/Materi_10/no1.py b/H071211055/Materi_10/no1.py new file mode 100644 index 0000000..b9fa630 --- /dev/null +++ b/H071211055/Materi_10/no1.py @@ -0,0 +1,227 @@ +print("Selamat datang silahkan opsi menu anda") + +a = print(" a. Detail Anda ") +b = print(" b. Ubah Nama ") +c = print(" c. Jumlah Data Pada File ") +d = print(" d. Save Data Pada File ") +e = print(" e. Buat Data Baru ") +f = print(" f. Keluar ") + +x = input("Silahkan Pilih Opsi Anda :") + + +if x == a: + print("data anda kosong")import os +import re + +class DataDiri: + def __init__(self, nama, email, password): + self.nama = nama + self.email = email + self.password = password + + def getNama(self): + return self.nama + def getEmail(self): + return self.email + def getPassword(self): + return self.password + def setNama(self, nama): + self.nama = nama + def setEmail(self, email): + self.email = email + def setPassword(self, password): + self.password = password + +def menu(): + print('Selamat Datang Silahkan Pilih Opsi 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') + pilih = input("Silahkan Pilih Opsi Anda : ") + + + if pilih == '1': + lihat() + elif pilih == '2': + edit() + elif pilih == '3': + jumlahData() + elif pilih == '4': + saveData() + elif pilih == '5': + tambah() + elif pilih == '6': + selesai() + else: + tidak = input('Menu Tidak Ada ') + menu() + +garis='=' * 70 + +def lihat(): + if(int(len(Daftar_Mahasiswa))==0): + print(garis) + print("Data saat ini kosong") + print(garis) + else: + for i in Daftar_Mahasiswa: + print(garis) + print("Data anda adalah") + print("Nama : ", Daftar_Mahasiswa[i].getNama()) + print("Email : ", Daftar_Mahasiswa[i].getEmail()) + print("Password : ", Daftar_Mahasiswa[i].getPassword()) + print(garis) + menu() + +def edit(): + if(int(len(Daftar_Mahasiswa))==0): + print(garis) + print("Data saat ini kosong") + print(garis) + else: + for i in Daftar_Mahasiswa: + nama=Daftar_Mahasiswa[i].getNama() + + print(garis) + namaBaru=input("Silahkan Input Nama Baru : ") + Daftar_Mahasiswa[nama].setNama(namaBaru) + print(garis) + menu() + +def jumlahData(): + print(garis) + nama_file=input("Masukkan nama file : ") + dir_file = r'D:\TUGAS\TUGAS PRAKTIKUM\TUGAS PRAKTIKUM_10\{}.txt'.format(nama_file) # ganti path + try: + f = open(dir_file, "r") + count=0 + for x in f: + count+=1 + jml=(count - 3)/4 + f.close() + print("Jumlah data pada file : {} data".format(int(jml))) + print(garis) + except: + print(garis) + print('File {}.txt tidak ada'.format(nama_file)) + print(garis) + menu() + +def saveData(): + garis='=' * 70 + if(int(len(Daftar_Mahasiswa))==0): + print(garis) + print("Data saat ini kosong") + print(garis) + else: + print(garis) + nama_file=input("Masukkan nama file : ") + dir_file = r'D:\TUGAS\TUGAS PRAKTIKUM\TUGAS PRAKTIKUM_10\{}.txt'.format(nama_file) # ganti path + cekfile=os.path.isfile(dir_file) + + if(cekfile==False): + + buat_file = open(dir_file, "w") + garis_txt='+=====================================\n' + judul="Data yang tersimpan\n" + buat_file.write(garis_txt) + buat_file.write(judul) + buat_file.write(garis_txt) + for i in Daftar_Mahasiswa: + + hasil_input="|Nama : {}\n".format(Daftar_Mahasiswa[i].getNama()) + hasil_input1="|Email : {}\n".format(Daftar_Mahasiswa[i].getEmail()) + hasil_input2="|Password : {}\n".format(Daftar_Mahasiswa[i].getPassword()) + buat_file.write(hasil_input) + buat_file.write(hasil_input1) + buat_file.write(hasil_input2) + buat_file.write(garis_txt) + buat_file.close() + print("Berhasil") + Daftar_Mahasiswa.clear() + else: + + buat_file = open(dir_file, "a") + garis_txt='+=====================================\n' + for i in Daftar_Mahasiswa: + + hasil_input="|Nama : {}\n".format(Daftar_Mahasiswa[i].getNama()) + hasil_input1="|Email : {}\n".format(Daftar_Mahasiswa[i].getEmail()) + hasil_input2="|Password : {}\n".format(Daftar_Mahasiswa[i].getPassword()) + buat_file.write(hasil_input) + buat_file.write(hasil_input1) + buat_file.write(hasil_input2) + buat_file.write(garis_txt) + buat_file.close() + print("Berhasil") + Daftar_Mahasiswa.clear() + print(garis) + menu() + +def tambah(): + Daftar_Mahasiswa.clear() + print(garis) + nama = input("Silahkan Masukkan Nama Anda : ") + + def checkemail(): + regex = r'\b[a-z0-9]+@student.unhas.ac.id' + email = input("Silahkan Masukkan Email Anda : ") + if(re.fullmatch(regex, email)): + return email + else: + print(garis) + print("Email yang anda masukkan salah") + print(garis) + checkemail() + + + email=checkemail() + + def checkpassword(): + capitalalphabets="ABCDEFGHIJKLMNOPQRSTUVWXYZ" + smallalphabets="abcdefghijklmnopqrstuvwxyz" + digits="0123456789" + password = input("Silahkan Masukkan Password Anda : ") + if (len(password) >= 8 and len(password) <= 20): + l=0 + u=0 + d=0 + for i in password: + + if (i in smallalphabets): + l+=1 + if (i in capitalalphabets): + u+=1 + if (i in digits): + d+=1 + + if (l>=1 and u>=1 and d>=1 and l+u+d==len(password)): + return password + else: + print(garis) + print("Password yang anda masukkan terlalu lemah, \n Gunakan minimal 1 huruf kapital, huruf kecil, dan angka") + print(garis) + checkpassword() + else: + print(garis) + print("Password harus memiliki Panjang 8 - 20 karakter") + print(garis) + checkpassword() + + password=checkpassword() + + print(garis) + mahasiswa = DataDiri(nama, email, password) + Daftar_Mahasiswa[nama] = mahasiswa + menu() + +def selesai(): + print("Sampai jumpa lagi") + exit() + +Daftar_Mahasiswa = {} +menu() \ No newline at end of file diff --git a/H071211055/Materi_CP/Toko elektronik.py b/H071211055/Materi_CP/Toko elektronik.py new file mode 100644 index 0000000..f8d6f9d --- /dev/null +++ b/H071211055/Materi_CP/Toko elektronik.py @@ -0,0 +1,21 @@ +def inputan(p): + data =[] + n = input().split(' ') + for i in range(p): + val = int(n[i]) + data.append(val) + return data +def hasil(lk,lm,uang): + total = -1 + for x in lk: + for y in lm: + if x+y <= uang and x+y > total: + total = x+y + print(total) + +bnm = input().split(' ') +uang,p_keyboard,p_mouse = int(bnm[0]),int(bnm[1]),int(bnm[2]) +list_keyboards = inputan(p_keyboard) +list_mouse = inputan(p_mouse) + +hasil(list_keyboards, list_mouse, uang) diff --git a/H071221039/Materi_01/praktikum1_pp_H071221039_no_1.py b/H071221039/Materi_01/praktikum1_pp_H071221039_no_1.py new file mode 100644 index 0000000..93f91fc --- /dev/null +++ b/H071221039/Materi_01/praktikum1_pp_H071221039_no_1.py @@ -0,0 +1,20 @@ +print("Nama\t: Muhammad Khaekal\nNIM\t: H071221039") +print(25*"=") +print("Menghitung panjang kapal") +print(25*"=") + +import math +h = int(input("Tinggi menara =")) +a = int(input("Masukkan sudut elevasi a =")) +b = int(input("Masukkan sudut elevasi b =")) + +a = (a)*math.pi/180 +b = (b)*math.pi/180 +panjang_a = math.tan(a)*(h) +panjang_b = math.tan(b)*(h) +panjang_kapal = panjang_a - panjang_b +print("Panjang kapal =" , round(panjang_kapal,1),"m") +#print(f"Panjang kapal = {panjang_kapal:.1f} m") # +print(25*"=") +print("\tTerima Kasih") +print(25*"=") \ No newline at end of file diff --git a/H071221039/Materi_01/praktikum1_pp_H071221039_no_2.py b/H071221039/Materi_01/praktikum1_pp_H071221039_no_2.py new file mode 100644 index 0000000..956fc99 --- /dev/null +++ b/H071221039/Materi_01/praktikum1_pp_H071221039_no_2.py @@ -0,0 +1,18 @@ +print(28*"=") +print("NAMA\t: Muhammad Khaekal\nNIM\t: H071221039\nKelompok: C") +print(28*"=") +print("Mengubah Detik ke Format Jam") +JumlahDetik = int(input("Total detik : ")) +print(28*"-") +print("Hasilnya adalah :") + +Jam = JumlahDetik // 3600 +Sisa = JumlahDetik % 3600 + +Menit = Sisa // 60 +Detik = Sisa % 60 + +print(Jam,":",Menit,":",Detik) +print(28*"=") +print("\tTerima Kasih") +print(28*"=") \ No newline at end of file diff --git a/H071221039/Materi_01/praktikum1_pp_H071221039_no_3.py b/H071221039/Materi_01/praktikum1_pp_H071221039_no_3.py new file mode 100644 index 0000000..2952403 --- /dev/null +++ b/H071221039/Materi_01/praktikum1_pp_H071221039_no_3.py @@ -0,0 +1,21 @@ +print(53*"=") +print("NAMA\t: Muhammad Khaekal\nNIM\t: H071221039\nKelompok: C") +print(53*"=") +print("\tMENGHITUNG TAGIHAN LISTRIK BULANAN") +print(53*"-") + +Nilai = input("Pemakaian listrik harian dalam satuan watt jam :") + +print("Tarif listrik : Rp. 1325/Kwh") +print(53*"-") + +wh = float(Nilai) +Tarif = 1352 # DALAM HARIAN +Kwh = wh/1000 +Bulanan = Kwh*30 +TarifBulanan = int(Bulanan*Tarif) + +print ("Tagihan listrik perbulannya adalah : Rp.", TarifBulanan) +print(53*"=") +print("\t\t Terima Kasih") +print(53*"=") \ No newline at end of file diff --git a/H071221039/Materi_02/praktikum2_pp_H071221039_ no_1.py b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_1.py new file mode 100644 index 0000000..5116df5 --- /dev/null +++ b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_1.py @@ -0,0 +1,25 @@ +print(26*"=") +print("Nama\t: Muhammad Khaekal") +print("NIM\t: H071221039") +print(26*"=") + +nilai = int(input("Masukkan Nilai :")) +if nilai < 40 and nilai >= 0 : + Hasil = "F" +elif nilai >= 90 and nilai <= 100: + Hasil = "A" +elif nilai >= 80 and nilai <= 90 : + Hasil = "B" +elif nilai >= 70 and nilai <= 80 : + Hasil = "C" +elif nilai >= 60 and nilai <= 70: + Hasil = "D" +elif nilai >= 40 and nilai <= 60: + Hasil = "E" +else : + Hasil = "Anda terlalu jago" +print ("> nilai",nilai,"=", Hasil) + +print(26*"=") +print("\tTerima Kasih") +print(26*"=") \ No newline at end of file diff --git a/H071221039/Materi_02/praktikum2_pp_H071221039_ no_2.py b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_2.py new file mode 100644 index 0000000..54f89ce --- /dev/null +++ b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_2.py @@ -0,0 +1,43 @@ +print(40*"=") +print("Nama\t: Muhammad Khaekal") +print("NIM\t: H071221039") +print(40*"=") + +Golongan = input("Masukkan Golongan :").upper() #upper untuk memberikan kapital pada hasil input +Daya = int(input("Masukkan Daya :")) # Dalam satuan VA +Pemakaian = int(input("Masukkan Pemakaian:")) # Hari +if Golongan == "R1" : + if Daya == 900 : + Tarif = 1352 + elif Daya == 1300 and Daya == 2200 : + Tarif = 1444.70 +elif Golongan == "R2" : + if Daya >= 3500 and Daya <= 5500 : + Tarif = 1699.53 +elif Golongan == "R3" : + if Daya >= 6600 : + Tarif = 1699.53 +elif Golongan == "B2" : + if Daya >= 6600 and Daya <= 200000 : #kVA diubah ke VA + Tarif = 1444.70 +elif Golongan == "B3" : + if Daya >= 200000 : + Tarif = 1114.74 +elif Golongan == "I3" : + if Daya >= 200000 : + Tarif = 1314.12 +elif Golongan == "P1" : + if Daya >= 6600 and Daya <= 200000 : + Tarif = 1523.28 +else : + print("data tidak valid") + + +Tagihan = f"> Jumlah Tagihan Anda : {round(Tarif * Pemakaian,1):_}".replace("_",".") #round digunakan untuk membatasi jumlah angka dibelakang koma, replace untuk mngubah atau mengganti sinmbol +ind = Tagihan.rfind(".") #rfind digunakan untuk menemukan simbol pada progrram +rep = Tagihan[:ind]+','+Tagihan[ind+1:] #rep = replication untuk menggabungkan indeks indeks yang telah diubah , ind = indeks, [:ind]+ untuk menunjukkan simbol kesekian yang akan diubah, [ind+1] untuk menampilkan angka kesatu setelah koma +print(rep) + +print(40*"=") +print("Terima Kasih") +print(40*"=") \ No newline at end of file diff --git a/H071221039/Materi_02/praktikum2_pp_H071221039_ no_3.py b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_3.py new file mode 100644 index 0000000..1cbe6d2 --- /dev/null +++ b/H071221039/Materi_02/praktikum2_pp_H071221039_ no_3.py @@ -0,0 +1,19 @@ +print(26*"=") +print("Nama\t: Muhammad Khaekal") +print("NIM\t: H071221039") +print(26*"=") + +A = int(input("Masukkan Nilai A :")) +B = int(input("Masukkan Nilai B :")) +C = int(input("Masukkan Nilai C :")) +if A >= B and A >= C : + nilai_terbesar = A +elif B >= C : + nilai_terbesar = B +else : + nilai_terbesar = C +print(">", nilai_terbesar, "adalah nilai terbesar") + +print(26*"=") +print("\tTerima Kasih") +print(26*"=") \ No newline at end of file diff --git a/H071221039/Materi_03/praktikum3_pp_H071221039_no_1.py b/H071221039/Materi_03/praktikum3_pp_H071221039_no_1.py new file mode 100644 index 0000000..07efe30 --- /dev/null +++ b/H071221039/Materi_03/praktikum3_pp_H071221039_no_1.py @@ -0,0 +1,23 @@ +print(25*"=") +print("Nama : Muhammad Khaekal") +print("Nim : H071221039") +print("Kelompok : C") +print(25*"=") + +try : + x = int(input("Masukkan angka x : ")) + y = int(input("Masukkan angka y : ")) + angka = 1 + # X < Y + + + for i in range(y) : + print(i+1, end=" ") + if (i+1) % 4 == 0 : + print() +except : + print("Input salah") + +print(25*"=") +print("Terima Kasih") +print(25*"=") \ No newline at end of file diff --git a/H071221039/Materi_03/praktikum3_pp_H071221039_no_2.py b/H071221039/Materi_03/praktikum3_pp_H071221039_no_2.py new file mode 100644 index 0000000..3807d5e --- /dev/null +++ b/H071221039/Materi_03/praktikum3_pp_H071221039_no_2.py @@ -0,0 +1,27 @@ +print(25*"=") +print("Nama : Muhammad Khaekal") +print("Nim : H071221039") +print("Kelompok : C") +print(25*"=") + +try : + n = int(input("Masukkan Nilai n :")) + suku_pertama = 0 + suku_kedua = 1 + count = 0 + + if n < 0 : + print("Himpunan tidak tersedia") + while count < n : + print(suku_pertama, end=" ") + bilangan_terakhir = suku_pertama + suku_kedua + suku_pertama, suku_kedua = suku_kedua, bilangan_terakhir + # suku_kedua = bilangan_terakhir + count += 1 + print() + +except : + print("Inputan salah") +print(25*"=") +print("TERIMA KASIH") +print(25*"=") \ No newline at end of file diff --git a/H071221039/Materi_03/praktikum3_pp_H071221039_no_3.py b/H071221039/Materi_03/praktikum3_pp_H071221039_no_3.py new file mode 100644 index 0000000..4d0ff4d --- /dev/null +++ b/H071221039/Materi_03/praktikum3_pp_H071221039_no_3.py @@ -0,0 +1,28 @@ +print(40*"=") +print("Nama : Muhammad Khaekal") +print("Nim : H071221039") +print("Kelompok : C") +print(40*"=") + +try : + total_pembayaran = int(input("Masukkan jumlah pembayaran : ")) + harga_barang = int(input("Masukkan harga barang : ")) + + pecahan_uang = [100000,50000,20000,10000,5000,2000,1000] + + kembalian = total_pembayaran - harga_barang + + if harga_barang > total_pembayaran : + print("Uang tidak cukup") + for x in pecahan_uang : # x =jenis pecahan_uang yang akan dikembalikan + if kembalian < x: + continue + y = int(kembalian/x) # y = banyaknya jenis_uang yang akan dikembalikan + kembalian = kembalian - (x*y) + print(y, "Uang Rp.", x) +except : + print("Inputan salah") + +print(40*"=") +print("TERIMA KASIH") +print(40*"=") \ No newline at end of file diff --git a/H071221039/Materi_04/praktikum4_pp_H071221039_no_1.py b/H071221039/Materi_04/praktikum4_pp_H071221039_no_1.py new file mode 100644 index 0000000..a9bb083 --- /dev/null +++ b/H071221039/Materi_04/praktikum4_pp_H071221039_no_1.py @@ -0,0 +1,20 @@ +print(40*"=") +print("Nama\t: Muhammad Khaekal") +print("NIM\t: H071221039") +print("Kelompok: C") +print(40*"=") + +jumlah = int(input("Masukkan jumlah inputan angka : ")) +list_angka = list(map(int,(input("Masukkan angka yang akan diurut : ").split(" ")))) + +def urutan(): + for i in range (len(list_angka)): + for j in range (len(list_angka)): + if list_angka[i] len(b) and len(a) > len (c): + terpanjang = len(a) +elif len (b) > len (a) and len (b) > len (c): + terpanjang = len(b) +else : + terpanjang = len(c) +if file_1 != file_2 : + with open(f"{file_1}.txt", "r") as file : + with open(f"{file_2}.txt", "w") as file_salinan: + file_salinan.write(f"{a.rjust(terpanjang)}\n") + file_salinan.write(f"{b.rjust(terpanjang)}\n") + file_salinan.write(f"{c.rjust(terpanjang)}\n") + print("Berhasil") +else : + print("Gagal") +file_1.close() +file_2.close() \ No newline at end of file diff --git a/H071221039/Materi_06/praktikum6_pp_H071221039_no_3.py b/H071221039/Materi_06/praktikum6_pp_H071221039_no_3.py new file mode 100644 index 0000000..c20d90b --- /dev/null +++ b/H071221039/Materi_06/praktikum6_pp_H071221039_no_3.py @@ -0,0 +1,26 @@ +print(40*"=") +print("Nama\t: Muhammad Khaekal") +print("NIM\t: H071221039") +print("Kelompok: C") +print(40*"=") + +nama_file = input("Masukkan nama file : ") + ".txt" +jumlah_asisten = int(input("Jumlah asisten : ")) +buka_file = open(nama_file, "w+") + +try: + buka_file.write("+" + "-"*22 + "+" + "-"*12 + "+" + "-"*10 + "+\n") + buka_file.write("|" + " Nama" + " "*17 + "|" + " NIM" + " "*8 + "|" + " Angkatan" + " " + "|" + "\n") + buka_file.write("+" + "-"*22 + "+" + "-"*12 + "+" + "-"*10 + "+\n") + for i in range(jumlah_asisten): + nama = input("Nama : ").replace(" ","_") + if len(nama) > 20: + raise TypeError + nim = input("NIM : ") + angkatan = input("Angkatan : ") + buka_file.write("|"+ nama + " "*(22 - (len(nama))) + "| " + nim +" "*(10-(len(nim)))+ " | " + angkatan + " "*(9-len(angkatan)) + "|" + "\n") + buka_file.write("+" + "-"*22 + "+" + "-"*12 + "+" + "-"*10 + "+") + print("Berhasil") +except: + print("Gagal") +buka_file.close() \ No newline at end of file diff --git a/H071221039/Materi_07/praktikum7_pp_H071221039_no_1.py b/H071221039/Materi_07/praktikum7_pp_H071221039_no_1.py new file mode 100644 index 0000000..165eca5 --- /dev/null +++ b/H071221039/Materi_07/praktikum7_pp_H071221039_no_1.py @@ -0,0 +1,7 @@ +import re +inputan = input("Masukkan Inputan : ") +match = re.search("[2468a-zA-Z]{40}[13579\s]{5}", inputan) +if match : + print("True") +else : + print("False") diff --git a/H071221039/Materi_07/praktikum7_pp_H071221039_no_2.py b/H071221039/Materi_07/praktikum7_pp_H071221039_no_2.py new file mode 100644 index 0000000..6588665 --- /dev/null +++ b/H071221039/Materi_07/praktikum7_pp_H071221039_no_2.py @@ -0,0 +1,24 @@ +import re + +def ipv4 (ip): + pola1 = r"(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])" + kecocokan1 = fr"{pola1}\.{pola1}\.{pola1}\.{pola1}" + return re.fullmatch (kecocokan1,ip) + +def ipv6 (ip): + pola2 = r"([0-9A-Fa-f]{1,4})" + kecocokan2 = fr"{pola2}:{pola2}:{pola2}:{pola2}:{pola2}:{pola2}:{pola2}:{pola2}" + return re.fullmatch (kecocokan2,ip) + +perulangan = int(input('perulangan : ')) +listIP = [] +for i in range (perulangan): + alamatIP = input() + listIP.append(alamatIP) +for j in listIP: + if ipv4 (j): + print("IPv4") + elif ipv6 (j): + print("IPv6") + else: + print("Bukan IP Address") \ No newline at end of file diff --git a/H071221039/Materi_08/praktikum8_pp_H071221039_no_1.py b/H071221039/Materi_08/praktikum8_pp_H071221039_no_1.py new file mode 100644 index 0000000..62880ad --- /dev/null +++ b/H071221039/Materi_08/praktikum8_pp_H071221039_no_1.py @@ -0,0 +1,37 @@ +class Person : + def __init__(self): + self.nama = nama + self.age = 0 + self.isMale = True + def setNama (self,nama) : + self.nama = nama + def getNama (self) : + return self.nama + def setAge (self,age) : + self.age = age + def getAge (self) : + return self.age + def setGender (self, gender ) : + if gender == "laki-laki" : + self.isMale = True + self.gender = "laki-laki" + elif gender == "perempuan" : + self.isMale = False + self.gender = "perempuan" + else : + print("inputan salah") + def getGender (self) : + return self.gender + +nama = input ("Masukkan Nama :") +age = int(input("Masukkan umur :")) +gender = input("Masukkan gender :") + + +person1 = Person() +person1.setNama(nama) +person1.setAge(age) +person1.setGender(gender) +print(person1.getNama()) +print(person1.getAge()) +print(person1.getGender()) diff --git a/H071221039/Materi_08/praktikum8_pp_H071221039_no_2.py b/H071221039/Materi_08/praktikum8_pp_H071221039_no_2.py new file mode 100644 index 0000000..918e403 --- /dev/null +++ b/H071221039/Materi_08/praktikum8_pp_H071221039_no_2.py @@ -0,0 +1,32 @@ +class Kubus: + def __init__(self, lebar, tinggi, panjang): + self.lebar = lebar + self.tinggi = tinggi + self.panjang = panjang + self.massa = 0 + self.massaJenis = 0 + self.volume = 0 + + def setMassa(self, massa): + self.massa = massa + def setVolume(self): + self.volume = self.panjang * self.lebar * self.tinggi + def getVolume(self,): + return self.volume + + def getMassaJenis(self): + self.massaJenis = (self.massa)/(self.getVolume()) + return self.massaJenis + +lebar = float(input("Masukkan lebar: ")) +tinggi = float(input("Masukkan tinggi: ")) +panjang = float(input("Masukkan panjang: ")) +massa = float(input("Masukkan massa: ")) + +kubus = Kubus(lebar, tinggi, panjang) +kubus.setVolume() +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/H071221039/Materi_09/praktikum9_pp_H071221039.py b/H071221039/Materi_09/praktikum9_pp_H071221039.py new file mode 100644 index 0000000..ae04080 --- /dev/null +++ b/H071221039/Materi_09/praktikum9_pp_H071221039.py @@ -0,0 +1,112 @@ +class Human : + def __init__(self,name,pos_x) : + self.nama = name + self.__posisi = pos_x + self._speed = 1 + + def movement (self,arah) : + for i in arah: + if i == "L" : + self.__posisi-=self._speed + if i == "R" : + self.__posisi+=self._speed + + def setPosition (self,pos_x) : + self.__posisi = pos_x + + def getPosition (self) : + return self.__posisi + + def setSpeed (self,speed) : + self._speed = speed + + def getSpeed (self) : + return 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.setHealth((target.getHealth()-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 + +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._armor = 45 + self._power = 32 + self.attack(target) + +class Assassin (Hero) : + def __init__(self, name, pos_x): + super().__init__(name, pos_x) + self._power = 35 + self._speed = 7 + + def special (self,target) : + self._power = 42 + self._speed = 7 + self.attack(target) + +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.setHealth((target.getHealth()+150)) + +warrior = Warrior("bambang", pos_x=10) +assassin = Assassin("joko", pos_x=25) +support = Support("udin",pos_x=30) + +print("health (before)", warrior.getHealth()) +assassin.attack(warrior) + +print("health (after)", warrior.getHealth()) +print("-"*10) + +print("Warrior (health)", warrior.getHealth()) +print("Support (speed) : ",support.getSpeed()) +support.special(warrior) + +print("Warrior (health)", warrior.getHealth()) +print("Support (speed): ",support.getSpeed()) + +print("-"*10) +print("Warrior (posisi)", warrior.getPosition()) +print("Warrior (speed) : ",warrior.getSpeed()) + +print("-"*10) +warrior.movement ("r".upper()) +print("Warrior (posisi)", warrior.getPosition()) +print("Warrior (speed) : ",warrior.getSpeed()) \ No newline at end of file diff --git a/H071221039/Materi_10/praktikum10_pp_H071221039_no_1.py b/H071221039/Materi_10/praktikum10_pp_H071221039_no_1.py new file mode 100644 index 0000000..1e91e7a --- /dev/null +++ b/H071221039/Materi_10/praktikum10_pp_H071221039_no_1.py @@ -0,0 +1,112 @@ +import re + +def menu(): + print('=' * 50) + print('Selamat Datang Silahkan Pilih Opsi Menu Anda') + print('=' * 50) + 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') + print('=' * 50) + +menu() +opsi = input('Pilih Opsi Anda : ') +while opsi != '6': + + if opsi == '5': + nama = input('Masukkan Nama : ') + a = True + while a == True : + email = input('Email : ') + syarat_email = '^[a-z0-9]*@student.unhas.ac.id$' + cocok_email = re.search(syarat_email,email) + if cocok_email: + a = False + else: + print('=' * 50) + print('Email yang Anda Masukkan Salah') + print('=' * 50) + + while a == False: + password = input('Masukkan Password : ') + if len(password) >= 8 and len(password) <= 20: + syarat_password = "[A-Z]+[a-z]+[0-9]+" + cocok_password = re.search(syarat_password,password) + if cocok_password: + a = True + else: + print('Gunakan minimal 1 Huruf Kapital,Huruf Kecil,dan Angka') + else: + print('=' * 50) + print("Password harus memiliki panjang 8 - 20 karakter") + print('=' * 50) + + elif opsi == '1': + try: + if nama == None and email == None and password == None: + print('=' * 50) + print('Data saat ini kosong') + else: + print('Data Anda Adalah') + print('=' * 50) + print(f'Nama : {nama}\nEmail : {email}\nPassword : {password}') + except: + print('=' * 50) + print('Data saat ini kosong') + + elif opsi == '2': + try: + if nama == None and email == None and password == None: + print('=' * 50) + print('Data saat ini kosong') + else: + nama = input('Masukkan Nama Yang Baru : ') + except: + print('=' * 50) + print('Data saat ini kosong') + + elif opsi == '3': + try: + nama_file = input('Masukkan Nama File : ') + file = open(f'{nama_file}.txt','r') + jumlah = file.read() + syarat_file = 'Nama' + cocok_file =re.findall(syarat_file,jumlah) + print('Jumlah Data pada File : ',len(cocok_file)) + except: + print('=' * 50) + print(f'Tidak Terdapat File Dengan Nama {nama_file}.txt') + + elif opsi == '4': + try: + if nama == None and email == None and password == None: + print('=' * 50) + print('Data saat ini kosong') + else: + nama_file = input('Masukkan Nama File : ') + # pakai a+ untuk membuat file baru + file = open(f'{nama_file}.txt','a+') + file.close() + file = open(f'{nama_file}.txt','r+') + file.write("+" + "="*47 +'\n') + file.write("|" + " Data yang Tersimpan" + " "*42 +"\n") + file.write("+" + "="*47 + '\n') + file.close() + file = open(f'{nama_file}.txt','a+') + file.write("|" + " " + 'Nama' + " "*10 + ":"+nama+'\n'+"| " + "Email" + " "*9+ ":"+email+'\n' +"| " +'Password' + " "*6 + ":" +password+ "\n"+"+" + "="*47+'\n') + file.close() + nama = None + email= None + password = None + print('=' * 50) + print('Berhasil') + except: + print('=' * 50) + print('Data saat ini kosong') + menu() + opsi = input('Pilih Opsi Anda : ') + + diff --git a/H071221039/Materi_10/praktikum10_pp_H071221039_no_2.py b/H071221039/Materi_10/praktikum10_pp_H071221039_no_2.py new file mode 100644 index 0000000..c139260 --- /dev/null +++ b/H071221039/Materi_10/praktikum10_pp_H071221039_no_2.py @@ -0,0 +1,58 @@ +class Hewan: + + def __init__(self, nama, jenis, speed): + self.nama = nama + self.jenis = jenis + self.speed = speed + + def showinfo(self): + print(f'Nama Hewan : {self.nama}\nJenis : {self.jenis}\nKecepatan : {self.speed} Km/jam') + +class Reptil(Hewan): + + def __init__(self, nama, jenis, speed): + super().__init__(nama, jenis ,speed) + super().showinfo() + +class Mamalia(Hewan): + + def __init__(self, nama, jenis, speed): + super().__init__(nama, jenis, speed) + print() + super().showinfo() + +hewan1 = Reptil('Buaya Amerika', 'Reptil', 32) +hewan2 = Mamalia('Kucing', 'Mamalia', 48) + +class Person: + + def __init__(self,nama,umur,gender): + self.__nama = nama + self.__umur = umur + self.__gender = gender + + def setdata(self,nama,umur,gender): + self.__nama = nama + self.__umur = umur + self.__gender = gender + + def getdata(self): + print(f'Nama : {self.__nama}\nUmur : {self.__umur}\nGender : {self.__gender}') + +data = Person('Raehan',19,'Laki - Laki') +data.getdata() + + +class Cheetah: + def kecepatan(self): + return 'Cheetah hewan paling cepat di dunia' + +class Siput: + def kecepatan(self): + return 'Kukang hewan paling lambat didunia' + +hewan1 = Cheetah() +hewan2 = Siput() + +print(hewan1.kecepatan()) +print(hewan2.kecepatan()) diff --git a/H071221039/Materi_CP/diagonal_difference.py b/H071221039/Materi_CP/diagonal_difference.py new file mode 100644 index 0000000..faf606f --- /dev/null +++ b/H071221039/Materi_CP/diagonal_difference.py @@ -0,0 +1,23 @@ +def matriks (n): + matriks = [] + for x in range (n): + row = [] + input_row = input().split(" ") + for k in range(n): + row.append(int(input_row[k])) + matriks.append(row) + return matriks +def hasil (matriks): + left = 0 + right = 0 + for x in range (len(matriks)): + for k in range (len(matriks)): + if x == k : + left += matriks[x][k] + if x + k == len(matriks) - 1 : + right += matriks[x][k] + print(abs(left - right)) + +n = int(input()) +matriks1 = matriks(n) +hasil(matriks1) diff --git a/H071221039/Materi_CP/plus_minus.py b/H071221039/Materi_CP/plus_minus.py new file mode 100644 index 0000000..8ff59e9 --- /dev/null +++ b/H071221039/Materi_CP/plus_minus.py @@ -0,0 +1,20 @@ +def plus_minus(n): + list = [] + negatif = [] + nol = [] + positif = [] + input_isiList = input().split(" ") + for x in range(n): + list.append(int(input_isiList[x])) + for i in (list) : + if i < 0 : + negatif.append(i) + if i == 0 : + nol.append(i) + if i > 0 : + positif.append(i) + print(f"{len(positif)/len(list):6f}") + print(f"{len(negatif)/len(list):.6f}") + print(f"{len(nol)/len(list):.6f}") +n = int(input()) +plus_minus(n) diff --git a/H071221039/Materi_CP/remedial_library_fine.py b/H071221039/Materi_CP/remedial_library_fine.py new file mode 100644 index 0000000..1fb3cce --- /dev/null +++ b/H071221039/Materi_CP/remedial_library_fine.py @@ -0,0 +1,25 @@ +x = list(map(int,(input().split(" ")))) #waktu pengembalian +y = list(map(int,(input().split(" ")))) #jatuh tempo + +d1 = x[0] +m1 = x[1] +y1 = x[2] +d2 = y[0] +m2 = y[1] +y2 = y[2] + +def denda(d1,m1,y1,d2,m2,y2): + if y1 < y2: + return 0 + elif y1 == y2 and m1 < m2 : + return 0 + elif y1 == y2 and m1 == m2 and d1 < d2: + return 0 + elif y1 > y2 : + return 10000 + elif m1 > m2 : + return (m1-m2) * 500 + return (d1-d2) * 15 + +denda = denda(d1,m1,y1,d2,m2,y2) +print(denda) \ No newline at end of file diff --git a/H071221039/Materi_CP/remedial_utopian_tree.py b/H071221039/Materi_CP/remedial_utopian_tree.py new file mode 100644 index 0000000..dd520cb --- /dev/null +++ b/H071221039/Materi_CP/remedial_utopian_tree.py @@ -0,0 +1,13 @@ +def utopian_tree (): + n = int(input()) #menandakan periode keberapa + h = 1 # tinggi awal pohon + for i in range (1,n+1): + if i % 2 != 0 : + h = h*2 + else : + h += 1 + print(h) + +jumlah_periode = int(input()) +for y in range(jumlah_periode): + utopian_tree() \ No newline at end of file diff --git a/H071221039/Materi_CP/simple_array_sum.py b/H071221039/Materi_CP/simple_array_sum.py new file mode 100644 index 0000000..89e652f --- /dev/null +++ b/H071221039/Materi_CP/simple_array_sum.py @@ -0,0 +1,12 @@ +def plus(n): + list = [] + total = 0 + input_array = input().split(" ") + for x in range(n): + list.append(int(input_array[x])) + for i in range(len(list)): + total = total+list[i] + print(total) + +n = int(input()) +plus(n) \ No newline at end of file diff --git a/H071221062/MATERI-01/tugas1lab.py b/H071221062/MATERI-01/tugas1lab.py new file mode 100644 index 0000000..8486f6f --- /dev/null +++ b/H071221062/MATERI-01/tugas1lab.py @@ -0,0 +1,15 @@ +print ("NAMA\t : AHMAD FAUZHAN RAMADHAN B") +print ("NIM\t : H071221062") +print ("Grup\t : A") + +import math +jari_jari_alas = int(input( "Masukkan jari_Jari_alas :")) +tinggi = int(input( "Masukkan tinggi :" )) +s = math.sqrt (jari_jari_alas**2 + tinggi**2) +luas_permukaan = math.pi*jari_jari_alas * s + math.pi*jari_jari_alas**2 +print (round(luas_permukaan,2)) + +volume = 1/3 * math.pi * jari_jari_alas**2 * tinggi +print (round(volume,2)) + +print ("=====ARIGATOOOO=====") \ No newline at end of file diff --git a/H071221062/MATERI-01/tugas2lab.py b/H071221062/MATERI-01/tugas2lab.py new file mode 100644 index 0000000..9da639a --- /dev/null +++ b/H071221062/MATERI-01/tugas2lab.py @@ -0,0 +1,17 @@ +print ("NAMA\t : AHMAD FAUZHAN RAMADHAN B") +print ("NIM\t : H071221062") +print ("Grup\t : A") + +print("Mengubah Detik ke Format Jam") +JumlahDetik = int(input("Total detik : ")) +print("Hasilnya adalah :") + +Jam = JumlahDetik // 3600 +Sisa = JumlahDetik % 3600 + +Menit = Sisa // 60 +Detik = Sisa % 60 + +print(Jam,":",Menit,":",Detik) + +print ("=====ARIGATOOOO====") \ No newline at end of file diff --git a/H071221062/MATERI-01/tugas3lab.py b/H071221062/MATERI-01/tugas3lab.py new file mode 100644 index 0000000..1bfde09 --- /dev/null +++ b/H071221062/MATERI-01/tugas3lab.py @@ -0,0 +1,17 @@ +print ("NAMA\t : AHMAD FAUZHAN RAMADHAN B") +print ("NIM\t : H071221062") +print ("Grup\t : A") + +import math +h = int(input("Tinggi menara =")) +a = int(input("Masukkan sudut elevasi a =")) +b = int(input("Masukkan sudut elevasi b =")) + +a = a*math.pi/180 +b = b*math.pi/180 +panjang_a = math.tan(a)*h +panjang_b = math.tan(b)*h +panjang_kapal = panjang_a - panjang_b +print (round(panjang_kapal, 1)) + +print ("=====ARIGATOOOO=====") \ No newline at end of file diff --git a/H071221062/MATERI-02/no1.py b/H071221062/MATERI-02/no1.py new file mode 100644 index 0000000..1031919 --- /dev/null +++ b/H071221062/MATERI-02/no1.py @@ -0,0 +1,30 @@ +print ("\t===AHMAD FAUZHAN RAMADHAN B===") +print ("\tH0721221062") +print ("\tTUGAS PRAKTIKUM LAB PEKAN 2") + +print ("NOMOR 1") + +print ("====NOMOR 1====\t") + +nilai = int(input ("Masukkan nilai :")) + +if nilai >= 90 and nilai <= 100 : + print ("> nilai", nilai , "=" , "\'A'") + +elif nilai >= 80 and nilai <= 90 : + print ("> nilai", nilai , "=" , "\'B'") + +elif nilai >= 70 and nilai <= 80 : + print ("> nilai", nilai , "=" , "\'C'") + +elif nilai >= 60 and nilai <= 70 : + print ("> nilai", nilai , "=" , "\'D'") + +elif nilai >= 50 and nilai <= 60 : + print ("> nilai", nilai , "=" , "\'E'") + +elif nilai >= 0 and nilai < 40 : + print ("> nilai", nilai , "=" , "\'F'") + +else : < 0 + print ("SALAH WOI") \ No newline at end of file diff --git a/H071221062/MATERI-02/no2.py b/H071221062/MATERI-02/no2.py new file mode 100644 index 0000000..e94e88d --- /dev/null +++ b/H071221062/MATERI-02/no2.py @@ -0,0 +1,37 @@ +print ("\t===AHMAD FAUZHAN RAMADHAN B===") +print ("\tH0721221062") +print ("\tTUGAS PRAKTIKUM LAB PEKAN 2") + +print ("NOMOR 2") +golongan = input("Golongan = ").upper() #.upper penginputan variabel untuk kapital dan non kapital +daya = int(input("Daya = ")) +Pemakaian = int(input("Pemakaian = ")) +rplc = "" + +if golongan =='R1' and daya == 900: + tarif = 1352 +elif golongan =='R1' and daya == 1300: + tarif = 1444.70 +elif golongan =='R1' and daya == 2200: + tarif = 1444.70 +elif golongan =='R2' and daya >= 3500 and daya <=5500: + tarif = 1699.53 +elif golongan =='R3' and daya >= 6600: + tarif = 1699.53 +elif golongan =='B2' and daya >= 6600 and daya <=200000: + tarif = 1444.70 +elif golongan =='B3' and daya >=200000: + tarif = 1114.70 +elif golongan =='I3' and daya >=200000: + tarif = 1314.12 +elif golongan =='P1' and daya >=6600 and daya <=200000: + tarif = 1523.28 +else: + pesan='data tidak valid' + +tagihan= f"Jumlah tagihan anda: {round(tarif * Pemakaian,1):_}".replace("_",".") #replace untuk penggantian suatu tanda baca atau bisa saja isi dari variabel + +ind = tagihan.rfind('.') #.rfind mengembalikkan posisi string sebelumnya + +rep = tagihan[:ind]+','+tagihan[ind+1:] #input [ind+1] untuk jumlah berapa angka dibelakang koma yang diganti dari .rfind sebelumnya +print(rep) \ No newline at end of file diff --git a/H071221062/MATERI-02/no3.py b/H071221062/MATERI-02/no3.py new file mode 100644 index 0000000..fac4550 --- /dev/null +++ b/H071221062/MATERI-02/no3.py @@ -0,0 +1,72 @@ +print ("\t===AHMAD FAUZHAN RAMADHAN B===") +print ("\t=========H0721221062==========") +print ("\t===TUGAS PRAKTIKUM LAB PEKAN 2===") + +print ("NOMOR 3") +try: + # a, b, c, d, e= [int(x) for x in input("Masukkan Angka : "). split()] + list_number = input("Masukkan Angka :").split(" ") + print(list_number) + a = int(list_number[0]) + b = int(list_number[1]) + c = int(list_number[2]) + d = int(list_number[3]) + e = int(list_number[4]) +except: + print("Inputan Tidak Valid") +else: + genap=0 + ganjil=0 + positif=0 + negatif=0 + angka =[a,b,c,d,e] + + if (a%2==0) : + genap += 1 + if (a%2) : + ganjil += 1 + if (a>0) : + positif +=1 + if (a<0) : + negatif +=1 + + if (b%2==0) : + genap += 1 + if (b%2) : + ganjil += 1 + if (b>0) : + positif +=1 + if (b<0) : + negatif +=1 + + if (c%2==0) : + genap += 1 + if (c%2) : + ganjil += 1 + if (c>0) : + positif +=1 + if (c<0) : + negatif +=1 + + if (d%2==0) : + genap += 1 + if (d%2) : + ganjil += 1 + if (d>0) : + positif +=1 + if (d<0) : + negatif +=1 + + if (e%2==0) : + genap += 1 + if (e%2) : + ganjil += 1 + if (e>0) : + positif +=1 + if (e<0) : + negatif +=1 + + print (genap, "Angka Genap") + print (ganjil,"Angka Ganjil") + print (positif, "Angka Positif") + print (negatif, "Angka Negatif") \ No newline at end of file diff --git a/H071221062/MATERI-03/1.py b/H071221062/MATERI-03/1.py new file mode 100644 index 0000000..1203aa9 --- /dev/null +++ b/H071221062/MATERI-03/1.py @@ -0,0 +1,15 @@ +#program mencetak angka +try: + input_x = int(input('x = ')) + input_y = int(input('y = ')) + + if input_x < input_y: + for angka in range(input_y): #angka(iterasi) membaca nilai range + print(angka+1, end=' ') #end=' ' horizontal + if((angka+1) % input_x == 0): + print('') #sebagai enter apabila kondisi terpenuhi + else: + print('x Harus lebih kecil dari y') +except: + print('salaaaaaah') + diff --git a/H071221062/MATERI-03/2.py b/H071221062/MATERI-03/2.py new file mode 100644 index 0000000..2f42eab --- /dev/null +++ b/H071221062/MATERI-03/2.py @@ -0,0 +1,28 @@ +n=float(input('Masukkan nilai n (dalam derajat): ')) +jam=6 +menit=0 +hari=24*3600 +detik=round((n/360)*hari) + +while detik>=3600 : + detik-=3600 + jam+=1 + +while detik>=60 : + detik-=60 + menit+=1 + +jam%=24 + +if jam<4 : + print('Selamat Malam') +elif jam<=10 : + print('Selamat Pagi') +elif jam<=14 : + print('Selamat Siang') +elif jam<=18 : + print('Selamat Sore') +elif jam<=24 : + print('Selamat Malam') + +print('%02d:%02d:%02d'%(jam,menit,detik)) \ No newline at end of file diff --git a/H071221062/MATERI-03/3.py b/H071221062/MATERI-03/3.py new file mode 100644 index 0000000..f3572ae --- /dev/null +++ b/H071221062/MATERI-03/3.py @@ -0,0 +1,10 @@ +price = int(input('price barang: ')) +pay = int(input('nilai mata uang yang diberi: ')) +kembalian = pay - price +money = [100000,50000,20000,10000,5000,1000] +for i in (money): + bagi = kembalian // i + if bagi == 0 : + continue + print('%d uang Rp %d'%(bagi,i)) + kembalian % i \ No newline at end of file diff --git a/H071221062/MATERI-04/no1.py b/H071221062/MATERI-04/no1.py new file mode 100644 index 0000000..cc2982b --- /dev/null +++ b/H071221062/MATERI-04/no1.py @@ -0,0 +1,19 @@ +def ast1(): + n = int(input("Banyak Element Array : ")) + datalist = [] + for i in range(0,n): + element = int(input("- ")) + datalist.append(element) + + print("Sebelum diurut : ",datalist) + + for i in range(0,n): + for j in range(0,n): + if datalist[i]30,10 ->10,0 + if (b==0): + return a + else: + return isiFPB(b,a%b) #30, 20 % 30 = 10 -> 10,30 % 10= 0 + +input_a = int(input()) +input_b = int(input()) + +print('FPB( %s,%s)='%(input_a,input_b),isiFPB(input_a,input_b)) + +if input_a == 0 or input_b == 0: + print('salahhhh') \ No newline at end of file diff --git a/H071221062/MATERI-04/no3.py b/H071221062/MATERI-04/no3.py new file mode 100644 index 0000000..ad32f26 --- /dev/null +++ b/H071221062/MATERI-04/no3.py @@ -0,0 +1,13 @@ + +def rot_str (kata): + N_temp = kata + kata + N_size = len (kata) #len untuk membaca berapa panjang dalam inputan + + for i in range (N_size): + for ii in range (N_size): + print(N_temp[i+ii+1], end="") + + print(end="|") + +kata = str (input('Masukkan Kata :')) +rot_str(kata) \ No newline at end of file diff --git a/H071221062/MATERI-04/no4.py b/H071221062/MATERI-04/no4.py new file mode 100644 index 0000000..d41e215 --- /dev/null +++ b/H071221062/MATERI-04/no4.py @@ -0,0 +1,11 @@ +from types import NoneType + + +nilai = int(input()) +def nilai_f(nilai): + if nilai > 1: + return nilai*nilai_f(nilai-1) + elif nilai < 0: + return NoneType + return 1 +print(nilai_f(nilai)) \ No newline at end of file diff --git a/H071221062/MATERI-05/no1.py b/H071221062/MATERI-05/no1.py new file mode 100644 index 0000000..03994e8 --- /dev/null +++ b/H071221062/MATERI-05/no1.py @@ -0,0 +1,18 @@ +matrix_1 = [[int(input ("input nilai matrix pertama index {}, {} :". format (baris, kolom ))) for kolom in range (1,2+1)] for baris in range (1, 2+1)] +matrix_2 = [[int(input ("input nilai matrix pertama index {}, {} :". format (baris, kolom ))) for kolom in range (1,2+1)] for baris in range (1, 2+1)] +muulti = [] + +for x in range(0, len(matrix_1)): + row = [] + for y in range(0, len(matrix_1[0])): + total = 0 + for z in range(0, len(matrix_2)): + total = total + (matrix_1[x][z] * matrix_2[z][y]) + row.append(total) + muulti.append(row) + + +for x in range(0, len(muulti)): + for y in range(0, len(muulti[0])): + print (muulti[x][y], end=' ') + print () \ No newline at end of file diff --git a/H071221062/MATERI-05/no2.py b/H071221062/MATERI-05/no2.py new file mode 100644 index 0000000..3614834 --- /dev/null +++ b/H071221062/MATERI-05/no2.py @@ -0,0 +1,48 @@ +print('=' * 55) +print('Selamat datang! Untuk memulai, silahkan input data anda!') +print('=' * 55) + +nama = input('kamu siapa: ') +umur = int(input('umur mu berapa: ')) +alamat = input('kamu tinggal dimana: ') + +profile = { + 'Nama': nama, + 'Umur': umur, + 'Alamat': alamat +} + +while True: + print('=' * 55) + print(f'Selamat datang {nama}, silahkan pilih opsi') + print('=' * 55) + print('1. Detail anda') + print('2. Ubah Nama') + print('3. Ubah Umur') + print('4. Ubah Alamat') + print('5. Keluar') + print('=' * 55) + opsi =input('Input opsi: ') + print('=' * 55) + if opsi =='1': + print('Data anda adalah') + print('Nama:',profile['Nama']) + print('Umur:',profile['Umur']) + print('Alamat:',profile['Alamat']) + elif opsi == '2': + nama = input('Silahkan input data nama baru: ') + profile['Nama'] = nama + print('Data anda sukses diperbaharui') + elif opsi == '3': + umur = int(input('Silahkan input data umur baru: ')) + profile['Umur'] = umur + print('Data anda sukses diperbaharui') + elif opsi == '4': + alamat = input('Silahkan input data alamat baru: ') + profile['Alamat'] = alamat + print('Data anda sukses diperbaharui') + elif opsi == '5': + print(f'Selamat tinggal {nama}') + break + else: + print('Opsi salah, masukkan ulang opsi yang benar!') \ No newline at end of file diff --git a/H071221062/MATERI-05/no3.py b/H071221062/MATERI-05/no3.py new file mode 100644 index 0000000..19cb155 --- /dev/null +++ b/H071221062/MATERI-05/no3.py @@ -0,0 +1,15 @@ +x = list(map(int, input("Masukkan Array 1: ").split())) +y = list(map(int, input("Masukkan Array 2: ").split())) ; n = [] +for i in x: + if i in y: + if i not in n: + n.append(i) + +if len(n) == 0: + print (f"tidak ada duplikat") +else: + print(f"Terdapat {len(n)} buah duplikat yaitu {tuple((n))}") + +# x = set(map(int, input("Masukkan Array 1: ").split())) +# y = set(map(int, input("Masukkan Array 2: ").split())) +# print(f"Terdapat {len(x&y)} buah duplikat yaitu {x&y}") diff --git a/H071221062/TUGAS ASISTENSI/1.py b/H071221062/TUGAS ASISTENSI/1.py new file mode 100644 index 0000000..f8ef3c8 --- /dev/null +++ b/H071221062/TUGAS ASISTENSI/1.py @@ -0,0 +1,27 @@ +def toko(panjang) : + list_item = list() + x = input().split(' ') + for i in range (panjang) : + list_item.append(int(x[i])) + return list_item + +def total(list_k,list_m,uang) : + total = -1 + + for i in list_k : + for a in list_m : + if(i+a <= uang and i+a > total) : + total = i+a + + print (total) + +q = input().split(' ') +uang = int(q[0]) +key = int(q[1]) +mouse = int(q[2]) + +list_keyboard = toko(key) +list_mouse = toko(mouse) + + +total (list_keyboard,list_mouse, uang) \ No newline at end of file diff --git a/H071221091/Tugas 1 Praktikum/ass_one_dua.py b/H071221091/Tugas 1 Praktikum/ass_one_dua.py new file mode 100644 index 0000000..d8ef191 --- /dev/null +++ b/H071221091/Tugas 1 Praktikum/ass_one_dua.py @@ -0,0 +1,20 @@ +data_list = ['Adrian Hidayat','H071221091'] + +print('Nama :', data_list[0]) +print('Nim :', data_list[1]) + +print('\n==================\n') + +print('Konversi Detik') +a = 3 ; b = 3 ; hasil = (1000*a)+(100*b)-(10*a) +print(hasil) + +print('\n==================\n') + +n = int(input('masukkan detik awal : ' )) +jam = n // 3600 #penggunaan // untuk pembulatan angka +#n = n - 3600*jam +n = n%3600 #penginputannya untuk pengganti variabel sebelumnya(#) +menit = n // 60 +detik = n - 60*menit +print(f'{jam:02d}:{menit:02d}:{detik:02d}') diff --git a/H071221091/Tugas 1 Praktikum/ass_one_satu.py b/H071221091/Tugas 1 Praktikum/ass_one_satu.py new file mode 100644 index 0000000..6ff72f7 --- /dev/null +++ b/H071221091/Tugas 1 Praktikum/ass_one_satu.py @@ -0,0 +1,24 @@ +data_list = ['Adrian Hidayat','H071221091'] + +print('Nama :', data_list[0]) +print('Nim :', data_list[1]) + +print('\n==================\n') + +print('Dik input 1: h=100 a=60 b=45\n'+'Dik input 2: h=120 a=87 b=50\n') + +# from math import pi +# from math import tan +import math + +tinggi = int(input('Tinggi Menara Kapal :')) +a = int(input('Masukkan sudut a :')) +b = int(input('masukkan sudut b :')) + +a = a*math.pi/180 #180 ubah sudut ke radian +b = b*math.pi/180 #180 adalah nilai pi dalam python +panjang_a = math.tan(a)*(tinggi) +panjang_b = math.tan(b)*(tinggi) +panjang_kapal = panjang_a - panjang_b +print('Panjang kapal =', round(panjang_kapal,1),'m') #round pembulatan angka diblkng koma + diff --git a/H071221091/Tugas 1 Praktikum/ass_one_tigaa.py b/H071221091/Tugas 1 Praktikum/ass_one_tigaa.py new file mode 100644 index 0000000..6d9de29 --- /dev/null +++ b/H071221091/Tugas 1 Praktikum/ass_one_tigaa.py @@ -0,0 +1,17 @@ +data_list = ['Adrian Hidayat','H071221091'] + +print('Nama :', data_list[0]) +print('Nim :', data_list[1]) + +print('\n==================\n') + +print('Devon ','500.0 ','1230.30\n'+'Alif ','700.0 ','0.00\n'+'Ikhsan ','1700.0 ','1230.50') + +input('Nama Seller: ') +g_pokok = float(input('Gaji Pokok: ')) +total_p = float(input('Total Penjualan: ')) +rumus_1 = total_p * 0.15 #0.15 karena 15% #c = b karena di soal menerima 15% dari penjualannnya +rumus_2 = round(g_pokok + rumus_1,2) #fungsi round untk mmbultkan angka dblkng koma,(2)dua sndri untk input dua angka diblkng koma + +print('TOTAL = $',rumus_2) + diff --git a/H071221091/Tugas 10 Praktikum/ast_10_1.py b/H071221091/Tugas 10 Praktikum/ast_10_1.py new file mode 100644 index 0000000..7bbe238 --- /dev/null +++ b/H071221091/Tugas 10 Praktikum/ast_10_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/H071221091/Tugas 10 Praktikum/ast_10_2.py b/H071221091/Tugas 10 Praktikum/ast_10_2.py new file mode 100644 index 0000000..dd5b582 --- /dev/null +++ b/H071221091/Tugas 10 Praktikum/ast_10_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/H071221091/Tugas 10 Praktikum/isi_file_no1.txt b/H071221091/Tugas 10 Praktikum/isi_file_no1.txt new file mode 100644 index 0000000..d019057 --- /dev/null +++ b/H071221091/Tugas 10 Praktikum/isi_file_no1.txt @@ -0,0 +1,5 @@ + +Nama : Hidayat +E-mail : hidayata22h@student.unhas.ac.id +Password : Password27 +==================================================================================================== \ No newline at end of file diff --git a/H071221091/Tugas 2 Praktikum/ass_2_duaa.py b/H071221091/Tugas 2 Praktikum/ass_2_duaa.py new file mode 100644 index 0000000..80f4b17 --- /dev/null +++ b/H071221091/Tugas 2 Praktikum/ass_2_duaa.py @@ -0,0 +1,35 @@ + + +golongan = input("Golongan = ").upper() #.upper penginputan variabel untuk kapital dan non kapital +daya = int(input("Daya = ")) +Pemakaian = int(input("Pemakaian = ")) +tarif = 0 +rplc = "" + +if golongan =='R1' and daya == 900: + tarif = 1352 +elif golongan =='R1' and daya == 1300: + tarif = 1444.70 +elif golongan =='R1' and daya == 2200: + tarif = 1444.70 +elif golongan =='R2' and daya >= 3500 and daya <=5500: + tarif = 1699.53 +elif golongan =='R3' and daya >= 6600: + tarif = 1699.53 +elif golongan =='B2' and daya >= 6600 and daya <=200000: + tarif = 1444.70 +elif golongan =='B3' and daya >=200000: + tarif = 1114.70 +elif golongan =='I3' and daya >=200000: + tarif = 1314.12 +elif golongan =='P1' and daya >=6600 and daya <=200000: + tarif = 1523.28 +else: + pesan='data tidak valid' + +tagihan= f"Jumlah tagihan anda: {round(tarif * Pemakaian,1):_}".replace("_",".") #replace untuk penggantian suatu tanda baca atau bisa saja isi dari variabel + +ind = tagihan.rfind('.') #.rfind mengembalikkan posisi string sebelumnya + +rep = tagihan[:ind]+','+tagihan[ind+1:] #input [ind+1] untuk jumlah berapa angka dibelakang koma yang diganti dari .rfind sebelumnya +print(rep) diff --git a/H071221091/Tugas 2 Praktikum/ass_2_satu.py b/H071221091/Tugas 2 Praktikum/ass_2_satu.py new file mode 100644 index 0000000..5da171c --- /dev/null +++ b/H071221091/Tugas 2 Praktikum/ass_2_satu.py @@ -0,0 +1,18 @@ + +while True: + ko_nilai = int(input("NILAI :")) + + if ko_nilai >=90 : + print(">nilai",ko_nilai,"= 'A'") + elif ko_nilai >=70 and ko_nilai<80 : #penggunaan and dalam varibel karena input 2x + print(">nilai",ko_nilai,"= 'B'") + elif ko_nilai >=80 and ko_nilai <90 : + print(">nilai",ko_nilai,"= 'C'") + elif ko_nilai >=60 : + print(">nilai",ko_nilai,"= 'D'") + elif ko_nilai >=40 : + print(">nilai",ko_nilai,"= 'E'") + elif ko_nilai <=40 and ko_nilai >0 : + print(">nilai",ko_nilai,"= 'F'") + else : #penggunaan else tidak berguna ketika penginputan nilai dibatasi dibawah nol + print("salah salah") #else berguna pada variabel 15, jika formatnya seperti itu \ No newline at end of file diff --git a/H071221091/Tugas 2 Praktikum/ass_2_tiga.py b/H071221091/Tugas 2 Praktikum/ass_2_tiga.py new file mode 100644 index 0000000..4084207 --- /dev/null +++ b/H071221091/Tugas 2 Praktikum/ass_2_tiga.py @@ -0,0 +1,11 @@ + +nilai_a = int(input("Masukkan Nilai A : ")) +nilai_b = int(input("Masukkan Nilai B : ")) +nilai_c = int(input("Masukkan Nilai C : ")) + +if nilai_a >= nilai_b and nilai_a >= nilai_c: #penggunaan nilai_a dan nilai_b ketika dirunning akan ada inputan nilai tertinggi, walaupun nilainya sama, begitupun di nilai_c + print(f"> {nilai_a} adalah Nilai terbesar") +elif nilai_b >= nilai_c: #penggunaan nilai_b dan nilai_c diinput disini karena sebelumnya pasti tidak terbaca, jadi harus pakai variabel sendiri + print(f"> {nilai_b} adalah Nilai terbesar") +else : + print("salah salah") diff --git a/H071221091/Tugas 2 Praktikum/extra_soal_2.py b/H071221091/Tugas 2 Praktikum/extra_soal_2.py new file mode 100644 index 0000000..974ea0d --- /dev/null +++ b/H071221091/Tugas 2 Praktikum/extra_soal_2.py @@ -0,0 +1,63 @@ +import sys + +try: + ix = float(input("X : ")) + iy = float(input("Y : ")) +except: + print (sys.exit("salah input")) + + +# if str(ix) or str(iy): +# sys.exit("input salah") #sys.exit keluar dari program atau hentikan sampai disitu + + +if ix < 0 and iy > 0 and ix < -iy: + print('Koordinat berada pada kuadran 1') +elif ix <0 and iy > 0 and ix > -iy: + print('Koordinat berada pada kuadran 2') +elif ix > 0 and iy < ix and iy > 0: + print('Koordinat berada pada kuadran 3') +elif ix > 0 and iy > ix and iy > 0: + print('Koordinat berada pada kuadran 4') +elif ix > 0 and iy < 0 and -iy < ix: + print('Koordinat berada pada kuadran 5') +elif ix > 0 and iy < 0 and -iy > ix: + print('Koordinat berada pada kuadran 6') +elif ix < 0 and iy < 0 and iy > ix: + print('Koordinat berada pada kuadran 7') +elif ix < 0 and iy < 0 and iy < ix: + print('Koordinat berada pada kuadran 8') + +elif ix == 0 and iy < 0: + print('berada pada garis -y') + +elif ix == 0 and iy > 0: + print('berada pada garis y') + +elif iy == 0 and ix < 0: + print('berada pada garis -x') + +elif iy == 0 and ix > 0: + print('berada pada garis x') + + +elif (ix > 0) and (iy > 0): + print('berada pada garis x=y') + +elif (ix > 0) and (iy < 0): + print('berada pada garis x=-y') + +elif (ix < 0) and (iy > 0): + print('berada pada garis -x=y') + +elif (ix < 0) and (iy < 0): + print('berada pada garis -x=-y') + +elif (ix==0) and (iy==0): + print("berada pada titik pusat") + +else: + print("input salah") + + + diff --git a/H071221091/Tugas 3 Praktikum/ast_3_duaa.py b/H071221091/Tugas 3 Praktikum/ast_3_duaa.py new file mode 100644 index 0000000..f9d3791 --- /dev/null +++ b/H071221091/Tugas 3 Praktikum/ast_3_duaa.py @@ -0,0 +1,61 @@ + +for inputan in range(0,360): + m_derajat = float(input('M(0-360): ')) + + if 0 <= m_derajat < 90: + posisi = m_derajat*240 #240 didaptkan 3600*24/360 + print('selamat pagi') + break #break harus agar ketika inputannya terbaca maka stop sampai dsitu + elif 90 <= m_derajat < 135: + posisi = m_derajat*240 + print('selamat siang') + break + elif 135 <= m_derajat < 180: + posisi = m_derajat*240 + print('selamat sore') + break + elif 180 <= m_derajat < 360: + posisi = m_derajat*240 + print('selamat malam') + break + else: + print('input salah') + +jam = posisi // 3600 #//pembulatan angka +jam += 6 +if jam >= 24: + jam -= 24 +sisa = posisi % 3600 #%sisa hasil +menit = sisa // 60 +detik = sisa % 60 + +print("%02d:%02d:%02d"%(jam,menit,detik)) + +# n=float(input('Masukkan nilai n (dalam derajat): ')) +# jam=6 +# menit=0 +# hari=24*3600 +# detik=round((n/360)*hari) + +# while detik>=3600 : +# detik-=3600 +# jam+=1 + +# while detik>=60 : +# detik-=60 +# menit+=1 + +# jam %= 24 + +# if jam<4 : +# print('Selamat Malam') +# elif jam<=10 : +# print('Selamat Pagi') +# elif jam<=14 : +# print('Selamat Siang') +# elif jam<=18 : +# print('Selamat Sore') +# elif jam<=24 : +# print('Selamat Malam') + +# print('%02d:%02d:%02d'%(jam,menit,detik)) \ No newline at end of file diff --git a/H071221091/Tugas 3 Praktikum/ast_3_empat.py b/H071221091/Tugas 3 Praktikum/ast_3_empat.py new file mode 100644 index 0000000..c213d99 --- /dev/null +++ b/H071221091/Tugas 3 Praktikum/ast_3_empat.py @@ -0,0 +1,13 @@ +input_f = int(input('jumlah : ')) +k = 0 + +for i in range(1,input_f+1): + print((input_f + 1 - i) * ' ',end =' ') + + while k !=(2*i-1): + print('*',end= '') + k += 1 + + k=0 + print() + diff --git a/H071221091/Tugas 3 Praktikum/ast_3_satu.py b/H071221091/Tugas 3 Praktikum/ast_3_satu.py new file mode 100644 index 0000000..12bc893 --- /dev/null +++ b/H071221091/Tugas 3 Praktikum/ast_3_satu.py @@ -0,0 +1,15 @@ +#program mencetak angka +try: + input_x = int(input('x = ')) + input_y = int(input('y = ')) + + if input_x < input_y: + for angka in range(1,input_y+1): #angka(iterasi) membaca nilai range + print(angka, end=' ') #end=' ' horizontal + if(angka % input_x == 0): + print('') #sebagai enter apabila kondisi terpenuhi + else: + print('x Harus lebih kecil dari y') +except: + print('salaaaaaah') + diff --git a/H071221091/Tugas 3 Praktikum/ast_3_tiga.py b/H071221091/Tugas 3 Praktikum/ast_3_tiga.py new file mode 100644 index 0000000..ca7af06 --- /dev/null +++ b/H071221091/Tugas 3 Praktikum/ast_3_tiga.py @@ -0,0 +1,12 @@ +harga = int(input('harga barang: ')) +bayar = int(input('nilai uang yang di bayarkan: ')) + +kembalian = bayar - harga + +uang = [100000,50000,20000,10000,5000,1000] +for i in (uang): + bagi = kembalian // i + print('%d uang Rp %d'%(bagi,i)) + kembalian -= bagi * i + + diff --git a/H071221091/Tugas 4 Praktikum/ast_4_dua.py b/H071221091/Tugas 4 Praktikum/ast_4_dua.py new file mode 100644 index 0000000..08fb830 --- /dev/null +++ b/H071221091/Tugas 4 Praktikum/ast_4_dua.py @@ -0,0 +1,20 @@ +def isiFPB(a,b): #20,30 ->30,10 ->10,0 + if (b==0): #isiFPB rekursif + return a + else: + return isiFPB(b,a%b) #30, 20 % 30 = 10 -> 10,30 % 10= 0 + +input_a = int(input("- ")) +input_b = int(input("- ")) + +print('FPB(%s,%s)='%(input_a,input_b),isiFPB(input_a,input_b)) + +if input_a == 0 or input_b == 0: + print('salahhhh') + + + + + + + diff --git a/H071221091/Tugas 4 Praktikum/ast_4_empat.py b/H071221091/Tugas 4 Praktikum/ast_4_empat.py new file mode 100644 index 0000000..6252b23 --- /dev/null +++ b/H071221091/Tugas 4 Praktikum/ast_4_empat.py @@ -0,0 +1,11 @@ + +isian = int(input()) +def nilai_f(isian): + if isian > 1: + return isian*nilai_f(isian-1) + elif isian < 0: + return None + + return 1 # diluar dari kondisi if else akan keluar 1 + +print(nilai_f(isian)) \ No newline at end of file diff --git a/H071221091/Tugas 4 Praktikum/ast_4_satu.py b/H071221091/Tugas 4 Praktikum/ast_4_satu.py new file mode 100644 index 0000000..0d70f72 --- /dev/null +++ b/H071221091/Tugas 4 Praktikum/ast_4_satu.py @@ -0,0 +1,21 @@ + +n = int(input()) +datalist = list(map(int, (input().split(' ')))) #map untuk mencari objek + + +def ast(): + for i in range(len(datalist)): #untuk membaca isinya parameter + for j in range(len(datalist)): + if datalist[i] len(nama_terpanjang): + nama_terpanjang = panjang + + f.write('+-'+('-'*len(nama_terpanjang))+'-+') #baris pertama atau paling atas dari tabel + f.write(('-'*12)+'+') + f.write(('-'*10)+'+') + + f.write('\n| Nama'+(' '*(len(nama_terpanjang)-5))+' |') #baris kedua untuk kolom format Nama, NIM, Angkatan + f.write(' NIM'+(' '*(12-4))+'|') + f.write(' Angkatan'+(' '*(10-9))+'|') + + f.write('\n+-'+('-'*len(nama_terpanjang))+'-+') #baris ketiga batas antara format dan isi + f.write(('-'*12)+'+') + f.write(('-'*10)+'+') + + for x in range(jumlah): #baris selanjutnya isi sesuai banyak data yang di input + f.write('\n| ') + f.write(nama[x]) + f.write(' '*(len(nama_terpanjang)-len(nama[x]))+' | ') + f.write(nim[x]) + f.write(' '*(11-len(nim[x]))+'| ') + f.write(angkatan[x]) + f.write((' '*(9 - len(angkatan[x])))+'|') + + f.write('\n+-'+('-'*len(nama_terpanjang))+'-+') #baris paling akhir sebagai penutup + f.write(('-'*12)+'+') + f.write(('-'*10)+'+') + + print('Berhasil') \ No newline at end of file diff --git a/H071221091/Tugas 7 Praktikum/ast_7_dua.py b/H071221091/Tugas 7 Praktikum/ast_7_dua.py new file mode 100644 index 0000000..aab1f18 --- /dev/null +++ b/H071221091/Tugas 7 Praktikum/ast_7_dua.py @@ -0,0 +1,29 @@ +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) #ipv4 0-255 terdiri dari 4grup(.) + if ipv4: + print('IPv4') + else: + ipv6 = re.search(regex_ipv6, x) #ipv6 hexadesimal terdiri dari 8 grup(:) + if ipv6: + print('IPv6') + else: + print('Bukan IP Address') + +# 3 +# This line has trailing whitespace +# 121.203.197.20 +# 2001:0db8:0000:0000:0000:ff00:0042:8329 \ No newline at end of file diff --git a/H071221091/Tugas 7 Praktikum/ast_7_satu.py b/H071221091/Tugas 7 Praktikum/ast_7_satu.py new file mode 100644 index 0000000..d13d8aa --- /dev/null +++ b/H071221091/Tugas 7 Praktikum/ast_7_satu.py @@ -0,0 +1,62 @@ +import re +#2222222222aaaaaaaaaa2222222222aaaaaaaaaa13 57 +#x4202v2A22A8a6aaaaaa2G2222m222qwertyYuIo1395779 + +kondisi = r'^[A-Za-z24680]{40}[13579\s]{5}$' + +s = input() +hasil1 = re.findall(kondisi, s) +if hasil1: + print('true') +else: + print('false') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # s = input('') + +# regex1 =r'[0?2?4?6?8?_?a-z?A-Z?]' +# regex2 =r'[1?3?5?7?9? ?]' + +# result1 = re.findall(regex2, s[0:40]) #divariabel ini apabiula di regex 2 diremukan seperri kode akan terinput +# result2 = re.findall(regex1, s[40:45]) #findall menemukan semua kode dalam parameternya +# print(result1, result2) +# if result1: +# print('false') +# exit() +# elif result2: +# print('false') +# exit() + +# if len(s) == 45: +# print('true') +# else: +# print('false') \ No newline at end of file diff --git a/H071221091/Tugas 8 Praktikum/ast_8_one (1).py b/H071221091/Tugas 8 Praktikum/ast_8_one (1).py new file mode 100644 index 0000000..0bbcb58 --- /dev/null +++ b/H071221091/Tugas 8 Praktikum/ast_8_one (1).py @@ -0,0 +1,48 @@ +# Program class diagram Person +# nama, umur dan apakah pria? + +class Person: + def __init__(self, nama, umur, oroane): + self.name = nama + self.age = int(umur) + self.isMale = bool(oroane) + + def setAge(self, umur): + self.age = int(umur) + + def getAge(self): + print(self.age) + + def setName(self, nama): + self.name = nama + + def getName(self): + print(self.name) + + def setGender(self, gender): + if gender == 'Male': + self.isMale = True + else: + self.isMale = False + + def getGender(self): + if self.isMale == True: + self.gender = 'Male' + print(self.gender) + else: + self.gender = 'Female' + print(self.gender) + +name = input('Name = ') +age = int(input('Age = ')) +input_isMale = input('Kamu Male? (True or False) = ') +if input_isMale == 'True': + isMale = bool(True) +else: + isMale = bool(False) + +person1 = Person(name, age, isMale) +print() +person1.getName() +person1.getAge() +person1.getGender() \ No newline at end of file diff --git a/H071221091/Tugas 8 Praktikum/ast_8_two (1).py b/H071221091/Tugas 8 Praktikum/ast_8_two (1).py new file mode 100644 index 0000000..2997c73 --- /dev/null +++ b/H071221091/Tugas 8 Praktikum/ast_8_two (1).py @@ -0,0 +1,44 @@ +# Program class diagram Kubus +# lebar, tinggi, panjang, massa, dan massa jenis + +class Kubus: + def __init__(self, lebar_k, tinggi_k, panjang_k): + self.lebar = float(lebar_k) + self.tinggi = float(tinggi_k) + self.panjang = float(panjang_k) + + def setLebar(self, lebar_k): + self.lebar = float(lebar_k) + + def setTinggi(self, tinggi_k): + self.tinggi = float(tinggi_k) + + def setPanjang(self, panjang_k): + self.panjang = float(panjang_k) + + def setMassa(self, massa_k): + + self.massa = float(massa_k) + + def volume(self): + tinggi = 10; + volume = self.panjang * self.lebar * tinggi + return volume + + def getMassaJenis(self): + massa_jenis = self.massa / self.volume() + return massa_jenis + +lebar = float(input('Lebar = ')) +tinggi = float(input('Tinggi = ')) +panjang = float(input('Panjang = ')) +massa = float(input('Massa = ')) + +kubus = Kubus(lebar, tinggi, panjang) + +print() +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/H071221091/Tugas 9 Praktikum/__pycache__/ast_9_satu.cpython-310.pyc b/H071221091/Tugas 9 Praktikum/__pycache__/ast_9_satu.cpython-310.pyc new file mode 100644 index 0000000..51a8cdc Binary files /dev/null and b/H071221091/Tugas 9 Praktikum/__pycache__/ast_9_satu.cpython-310.pyc differ diff --git a/H071221091/Tugas 9 Praktikum/__pycache__/hero.cpython-310.pyc b/H071221091/Tugas 9 Praktikum/__pycache__/hero.cpython-310.pyc new file mode 100644 index 0000000..c8d3ea4 Binary files /dev/null and b/H071221091/Tugas 9 Praktikum/__pycache__/hero.cpython-310.pyc differ diff --git a/H071221091/Tugas 9 Praktikum/ast_9_satu.py b/H071221091/Tugas 9 Praktikum/ast_9_satu.py new file mode 100644 index 0000000..ffa30ee --- /dev/null +++ b/H071221091/Tugas 9 Praktikum/ast_9_satu.py @@ -0,0 +1,34 @@ +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('Position Warrior (before) :', warrior.getMovement()) +warrior.setMovement('L') +# sesudah +print('Position Warrior (after "L") :', warrior.getMovement()) + +# 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('Position Support (before) :', support.getMovement()) +support.setMovement('R') +print('Position Support (after "R") :', support.getMovement()) \ No newline at end of file diff --git a/H071221091/Tugas 9 Praktikum/hero.py b/H071221091/Tugas 9 Praktikum/hero.py new file mode 100644 index 0000000..c524c82 --- /dev/null +++ b/H071221091/Tugas 9 Praktikum/hero.py @@ -0,0 +1,102 @@ +class Human: + def __init__(self, name, position): + self.name = name + self.__pos_x = position + + def setMovement(self, move): + if move == 'L': + self.__pos_x -= self._speed + elif move == 'R': + 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 -= self._power + + def getPower(self): + return self._power + + def getHealth(self): + return self._health + + def getArmor(self): + return self._armor + + 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._armor = 45 + self._power = 32 + target._health -= self._power + +class Assassin(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 + +warrior = Warrior("bambang", pos_x=10) +assassin = Assassin("joko", pos_x=25) +support = Support("udin",pos_x=30) + +# sebelum +print('Position Warrior (before) :', warrior.getMovement()) +warrior.setMovement('L') +# sesudah +print('Position Warrior (after "L") :', warrior.getMovement()) + +# 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('Position Support (before) :', support.getMovement()) +support.setMovement('R') +print('Position Support (after "R") :', support.getMovement()) \ No newline at end of file diff --git a/H071221095/Materi_01/No1.py b/H071221095/Materi_01/No1.py new file mode 100644 index 0000000..1450876 --- /dev/null +++ b/H071221095/Materi_01/No1.py @@ -0,0 +1,19 @@ +import math +h =input("tinggi") +a =input("sudut a") +b =input("sudut b") + + + + +radian_a = a*math.pi/180 +radian_b = b*math.pi/180 + +panjang_a = math.tan(radian_a)*100 +panjang_b = math.tan(radian_b)*100 + +hasil = panjang_a-panjang_b + + +print("hasil :%.1f m"%hasil) +print(f"{hasil:.1f} m") \ No newline at end of file diff --git a/H071221095/Materi_01/No2.py b/H071221095/Materi_01/No2.py new file mode 100644 index 0000000..aa8f58b --- /dev/null +++ b/H071221095/Materi_01/No2.py @@ -0,0 +1,10 @@ +second = input("detik=") + +second = int(second) + +hours = second//3600 + +second = second-(hours*3600) +minute = second//60 +second = second-(minute*60) +print(f"{hours:02d}:{minute:02d}:{second:02d}") \ No newline at end of file diff --git a/H071221095/Materi_01/No2TugasTambahan.py b/H071221095/Materi_01/No2TugasTambahan.py new file mode 100644 index 0000000..8e18a2a --- /dev/null +++ b/H071221095/Materi_01/No2TugasTambahan.py @@ -0,0 +1,5 @@ +a =int("45") +b =50 + +result = a+b +print(result) \ No newline at end of file diff --git a/H071221095/Materi_01/No3.py b/H071221095/Materi_01/No3.py new file mode 100644 index 0000000..5e18227 --- /dev/null +++ b/H071221095/Materi_01/No3.py @@ -0,0 +1,13 @@ +import math +r = int(input("jari_jari_alas = ")) +t = int(input("tinggi = ")) + +s = math.sqrt(r**(2)+t**(2)) + +pi = math.pi + +volume = 1/3*pi*(r**2)*t +luas = math.pi*r*(r+s) + +print(f"volume :{volume:.2f}") +print(f"luas :{luas:.2f}") \ No newline at end of file diff --git a/H071221095/Materi_01/No3TugasTambahan.py b/H071221095/Materi_01/No3TugasTambahan.py new file mode 100644 index 0000000..205fd67 --- /dev/null +++ b/H071221095/Materi_01/No3TugasTambahan.py @@ -0,0 +1,5 @@ +tinggi= float(input("tinggi= ")) +alas= float(input("alas= ")) + +hasil=(1/2*tinggi*alas) +print(hasil) \ No newline at end of file diff --git a/H071221095/Materi_02/No1.py b/H071221095/Materi_02/No1.py new file mode 100644 index 0000000..5750843 --- /dev/null +++ b/H071221095/Materi_02/No1.py @@ -0,0 +1,19 @@ +try: + nilai= float(input("nilai= ")) + + if nilai >= 90 and nilai <= 100: + print(f"nilai {nilai} = A ") + elif nilai >= 80 and nilai < 90: + print(f"nilai {nilai} = B ") + elif nilai >= 70 and nilai < 80: + print(f"nilai {nilai} = C ") + elif nilai >= 60 and nilai < 70: + print(f"nilai {nilai} = D ") + elif nilai >= 40 and nilai < 60: + print(f"nilai {nilai} = E ") + elif nilai < 40 and nilai >= 0: + print(f"nilai {nilai} = F ") + else: + print("input salah") +except: + print("input salah") \ No newline at end of file diff --git a/H071221095/Materi_02/No2.py b/H071221095/Materi_02/No2.py new file mode 100644 index 0000000..2e462a3 --- /dev/null +++ b/H071221095/Materi_02/No2.py @@ -0,0 +1,36 @@ +try: + golongan=(input("golongan= ")).upper() + daya=int(input("daya= ")) + pemakaian=int(input("pemakaian= ")) + + tarif=0 + if golongan=="R1" and daya>=900: + tarif= 1352 + elif golongan=="R1" and daya>= 1300: + tarif= 144470 + elif golongan=="R1" and daya>= 2200: + tarif= 144470 + elif golongan=="R2" and daya>= 3500 and daya<= 5500: + tarif= 169953 + elif golongan=="R3" and daya>= 6600: + tarif= 169953 + elif golongan=="B2" and daya>= 6600 and daya>= 200: + tarif= 144470 + elif golongan=="B3" and daya> 200: + tarif= 111474 + elif golongan=="I3" and daya>= 200: + tarif= 131412 + elif golongan=="P1" and daya>= 6600 and daya>= 200: + tarif= 152328 + else: + print("data tidak valid") + + hasilsementara=f"Jumlah tagihan anda: {tarif*pemakaian:_}" + hasilreplace=hasilsementara.replace("_", ".") + print(hasilreplace) +except: + print("data tidak valid") + + + + diff --git a/H071221095/Materi_02/No3.py b/H071221095/Materi_02/No3.py new file mode 100644 index 0000000..334a989 --- /dev/null +++ b/H071221095/Materi_02/No3.py @@ -0,0 +1,12 @@ +nilai_a = int(input("Masukkan Nilai A : ")) +nilai_b = int(input("Masukkan Nilai B : ")) +nilai_c = int(input("Masukkan Nilai C : ")) + +if nilai_a >= nilai_b and nilai_a >= nilai_c: + print(f"{nilai_a} adalah Nilai terbesar") +elif nilai_b >= nilai_a and nilai_b >= nilai_c: + print(f"{nilai_b} adalah Nilai terbesar") +else: + print(f"{nilai_c} adalah Nilai terbesar") + + diff --git a/H071221095/Materi_02/Soal01.py b/H071221095/Materi_02/Soal01.py new file mode 100644 index 0000000..80ea9be --- /dev/null +++ b/H071221095/Materi_02/Soal01.py @@ -0,0 +1,17 @@ +try: + angka = int(input("A : ")) + if angka > 0 and angka % 2==0: + print("bilangan positif dan genap") + elif angka < 0 and angka % 2!=0: + print("bilangan negatif dan ganjil") + elif angka > 0 and angka % 2!=0: + print("bilangan positif dan ganjil") + elif angka < 0 and angka % 2==0: + print("bilangan negatif dan genap") + elif angka == 0: + print("bilangan nol") + else: + print("input bukan angka") +except: + print("input bukan angka") + diff --git a/H071221095/Materi_02/Soal02.py b/H071221095/Materi_02/Soal02.py new file mode 100644 index 0000000..3aaddf1 --- /dev/null +++ b/H071221095/Materi_02/Soal02.py @@ -0,0 +1,21 @@ +fruit = int(input("id buah: ")) +kuantitas = int(input("kuantitas: ")) +namabuah = "" +hargabuah = 0 + +match fruit: + case 1: + namabuah = "Apel" + hargabuah = 10000 + case 2: + namabuah = "Jeruk" + hargabuah = 4000 + case 3: + namabuah = "Semangka" + hargabuah = 12000 + case 4: + namabuah = "Mangga" + hargabuah = 7000 + +print("----Nota----") +print(f'Rp{kuantitas*hargabuah}' ) diff --git a/H071221095/Materi_02/Soal03.py b/H071221095/Materi_02/Soal03.py new file mode 100644 index 0000000..3c53f19 --- /dev/null +++ b/H071221095/Materi_02/Soal03.py @@ -0,0 +1,30 @@ +print("Aplikasi Menghitung Luas") +print("[1]Luas Persegi") +print("[2]Luas Segitiga") +print("[3]Luas Lingkaran") +pilihan = int(input(">>")) + +if pilihan == 1: + s = float(input("Input sisi= ")) + Luas = s**2 + print("Luas Persegi= ",str(Luas)) + +elif pilihan == 2: + a = float(input("Input Alas= ")) + t = float(input("Input Tinggi= ")) + luas = 1/2*a*t + print("Luas Segitiga= ",str(luas)) + +elif pilihan == 3: + r = float(input("Input Jari-Jari= ")) + pi = 3.14 + diameter = 2*r + luas = pi*r*r + print("Luas Lingkaran= ",str("%.2f" % luas)) + +else: + print("Input Salah") + + + + diff --git a/H071221095/Materi_02/test.py b/H071221095/Materi_02/test.py new file mode 100644 index 0000000..8b7eeb3 --- /dev/null +++ b/H071221095/Materi_02/test.py @@ -0,0 +1,16 @@ +angka1=12 +angka2=10 +angka3=12 +kata1="APel" +kata2="Apel" + +if angka1 > angka2 and angka3 > angka2: + print(f"{angka1} > angka2") +elif angka1 == angka2: + print("angka1 == angka2") + +else : + print("angka1 < angka2") + +if kata1.upper()==kata2.upper(): + print("sama") diff --git a/H071221095/Materi_03/No1.py b/H071221095/Materi_03/No1.py new file mode 100644 index 0000000..ead783e --- /dev/null +++ b/H071221095/Materi_03/No1.py @@ -0,0 +1,14 @@ +try: + x = int(input("Nilai X: ")) + y = int(input("Nilai Y: ")) + + if x= 24: + jam -= 24 + sisa = n % 3600 + menit = sisa // 60 + detik = sisa % 60 + print("%02d:%02d:%02d"%(jam,menit,detik)) +except: + print("salah") \ No newline at end of file diff --git a/H071221095/Materi_03/No3.py b/H071221095/Materi_03/No3.py new file mode 100644 index 0000000..fce285a --- /dev/null +++ b/H071221095/Materi_03/No3.py @@ -0,0 +1,18 @@ +try: + total, tunai = int(input("Total : ")), int(input("Uang Tunai: ")) + kembalian = tunai - total + uang = [100000, 50000, 20000, 10000, 5000, 1000] + + if total < tunai: + for i in uang: + bagi = kembalian // i + print ("%d uang Rp %d" % (bagi, i)) + kembalian -= bagi * i + + elif total > tunai: + print("mengutang") + + else: + print("uang pas") +except: + print("salah") diff --git a/H071221095/Materi_03/No4.py b/H071221095/Materi_03/No4.py new file mode 100644 index 0000000..de27735 --- /dev/null +++ b/H071221095/Materi_03/No4.py @@ -0,0 +1,7 @@ +n = int(input("Masukkan Jumlah Baris: ")) + +for i in range(1, n+1): + print((n-i) * " " + (i * "* ") + ((i-1) * "* ")) + +for i in range(n, 0,-1): + print((n-i) * " " + (i * "* ") + ((i-1) * "* ")) \ No newline at end of file diff --git a/H071221095/Materi_03/test.py b/H071221095/Materi_03/test.py new file mode 100644 index 0000000..f5d9b0d --- /dev/null +++ b/H071221095/Materi_03/test.py @@ -0,0 +1,5 @@ +nilaiA = int(input("Masukkan Nilai A: ")) +nilaiB = int(input("Masukkan Nilai B: ")) + +for i in range(nilaiA, nilaiB, -2): + print(i,end= " ") \ No newline at end of file diff --git a/H071221095/Materi_04/No1.py b/H071221095/Materi_04/No1.py new file mode 100644 index 0000000..c488fa4 --- /dev/null +++ b/H071221095/Materi_04/No1.py @@ -0,0 +1,10 @@ +list = [7,4,2,1,3,2] + +def bilangan (list) : + for i in range (len(list)) : + for j in range (i +1,len (list)) : + if list [i] >= list [j] : + list [i] , list [j] = list [j] , list [i] + + return list +print (bilangan(list)) \ No newline at end of file diff --git a/H071221095/Materi_04/No2.py b/H071221095/Materi_04/No2.py new file mode 100644 index 0000000..905a787 --- /dev/null +++ b/H071221095/Materi_04/No2.py @@ -0,0 +1,17 @@ +x = int(input("Masukkan bilangan pertama : ")) +y = int(input("Masukkan bilangan kedua : ")) + +def getFPB (x,y) : + if x > y : + bilangan_terkecil = y + else : + bilangan_terkecil = x + + # fpb=0 + for i in range (1, bilangan_terkecil +1) : + if (x % i == 0) and (y % i == 0 ) : + fpb = i + + return fpb + +print ("FPB" , (x, y) , "=", getFPB(x,y)) \ No newline at end of file diff --git a/H071221095/Materi_04/No3.py b/H071221095/Materi_04/No3.py new file mode 100644 index 0000000..823944f --- /dev/null +++ b/H071221095/Materi_04/No3.py @@ -0,0 +1,13 @@ +def rotated_string (kata) : + temp = kata + kata + size = len (kata) + + for i in range (size) : + for j in range (size) : + print (temp[i+j+1] , end= "") + + print (end="|" ) + + +kata = (input("Masukkan kata :")) +rotated_string(kata) \ No newline at end of file diff --git a/H071221095/Materi_04/No4.py b/H071221095/Materi_04/No4.py new file mode 100644 index 0000000..415466b --- /dev/null +++ b/H071221095/Materi_04/No4.py @@ -0,0 +1,9 @@ +n = int (input("Masukkan angka :")) +def nilai_faktorial (n) : + if n > 1 : + return n * nilai_faktorial(n-1) + elif n < 0 : + return "none" + else : + return 1 +print (nilai_faktorial(n)) \ No newline at end of file diff --git a/H071221095/Materi_05/No1.py b/H071221095/Materi_05/No1.py new file mode 100644 index 0000000..03994e8 --- /dev/null +++ b/H071221095/Materi_05/No1.py @@ -0,0 +1,18 @@ +matrix_1 = [[int(input ("input nilai matrix pertama index {}, {} :". format (baris, kolom ))) for kolom in range (1,2+1)] for baris in range (1, 2+1)] +matrix_2 = [[int(input ("input nilai matrix pertama index {}, {} :". format (baris, kolom ))) for kolom in range (1,2+1)] for baris in range (1, 2+1)] +muulti = [] + +for x in range(0, len(matrix_1)): + row = [] + for y in range(0, len(matrix_1[0])): + total = 0 + for z in range(0, len(matrix_2)): + total = total + (matrix_1[x][z] * matrix_2[z][y]) + row.append(total) + muulti.append(row) + + +for x in range(0, len(muulti)): + for y in range(0, len(muulti[0])): + print (muulti[x][y], end=' ') + print () \ No newline at end of file diff --git a/H071221095/Materi_05/No2.py b/H071221095/Materi_05/No2.py new file mode 100644 index 0000000..3b3ccd9 --- /dev/null +++ b/H071221095/Materi_05/No2.py @@ -0,0 +1,49 @@ +print('===============================================================') +print('Selamat datang! Untuk memulai, silahkan input data anda!') +print('===============================================================') + +nama = input('Input nama: ') +umur = int(input('Input umur: ')) +alamat = input('Input alamat: ') + +profile = { + 'Nama': nama, + 'Umur': umur, + 'Alamat': alamat +} + +while True: + print('===============================================================') + print(f'Selamat datang {nama}, silahkan pilih opsi') + print('===============================================================') + print('1. Detail anda') + print('2. Ubah Nama') + print('3. Ubah Umur') + print('4. Ubah Alamat') + print('5. Keluar') + print('===============================================================') + opsi = int(input('Input opsi: ')) + print('===============================================================') + if opsi == 1: + print('Data anda adalah') + print('Nama:',profile['Nama']) + print('Umur:',profile['Umur']) + print('Alamat:',profile['Alamat']) + elif opsi == 2: + nama = input('Silahkan input data nama baru: ') + profile['Nama'] = nama + print('Data anda sukses diperbaharui') + elif opsi == 3: + umur = int(input('Silahkan input data umur baru: ')) + profile['Umur'] = umur + print('Data anda sukses diperbaharui') + elif opsi == 4: + alamat = input('Silahkan input data alamat baru: ') + profile['Alamat'] = alamat + print('Data anda sukses diperbaharui') + elif opsi == 5: + print(f'Selamat tinggal {nama}') + break + else: + print('Opsi salah, masukkan ulang opsi yang benar!') + diff --git a/H071221095/Materi_05/No3.py b/H071221095/Materi_05/No3.py new file mode 100644 index 0000000..d022769 --- /dev/null +++ b/H071221095/Materi_05/No3.py @@ -0,0 +1,12 @@ +x = list(map(int, input("Masukkan Array ke 1:").split())) +y = list(map(int, input("Masukkan Array ke 2:").split())) +n = [] + +for i in x: + if i in y: + if i not in n: + n.append(i) +if len(n) == 0: + print(f"tidak ada duplikat") +else: + print(f"Terdapat {len(n)} buah duplikat yaitu {n}".replace('[','(').replace(']',')')) \ No newline at end of file diff --git a/H071221095/Materi_06/No1.py b/H071221095/Materi_06/No1.py new file mode 100644 index 0000000..c6e1dd8 --- /dev/null +++ b/H071221095/Materi_06/No1.py @@ -0,0 +1,14 @@ +file1 = input('Nama file pertama (auto .txt): ') +file2 = input('Nama file kedua (auto .txt): ') + +try: + with open(file1 + '.txt', 'r') as first_file: + file1_contents = first_file.read() + + with open(file2 + '.txt', 'x') as new_file: + new_file.write(file1_contents) + + print('\nBerhasil') + +except: + print('\nGagal') \ No newline at end of file diff --git a/H071221095/Materi_06/No2.py b/H071221095/Materi_06/No2.py new file mode 100644 index 0000000..c8df880 --- /dev/null +++ b/H071221095/Materi_06/No2.py @@ -0,0 +1,28 @@ +file1 = input('Nama file pertama (auto .txt): ') +file2 = input('Nama file kedua (auto .txt): ') + +try: + with open(file1 + '.txt', 'r') as first_file: + file1_contents = first_file.readlines() + longest_line = file1_contents[0] + + for i in file1_contents: + if len(i) > len(longest_line): + longest_line = i + + if '\n' not in longest_line: + longest_line+= ' ' + + with open(file2 + '.txt', 'w') as new_file: + for j in file1_contents: + if '\n' in j: + space = len(longest_line) - len(j) + new_file.write((' ' * space) + j) + else: + different_space = len(longest_line) - len(j) - 1 + new_file.write((' ' * different_space) + j) + + print('\nBerhasil') + +except: + print('\nGagal') \ No newline at end of file diff --git a/H071221095/Materi_06/No3.py b/H071221095/Materi_06/No3.py new file mode 100644 index 0000000..ac3a4ea --- /dev/null +++ b/H071221095/Materi_06/No3.py @@ -0,0 +1,65 @@ +# Program menyalin nama, NIM, dan angkatan +# semua asisten Pengantar Pemrograman + +try: + file_name = input('Nama file: ') + data_amount = int(input('Jumlah data yang akan diinput: ')) + + name = [] + NIM = [] + college_year = [] + + for i in range(data_amount): + name_contents = input(f'Nama ke-{i+1}: ') + name_contents = name_contents.replace(' ', '_') + name.append(name_contents) + + isi_NIM = input(f'NIM orang ke-{i+1}: ') + NIM.append(isi_NIM) + + year_contents = int(input(f'Angkatan orang ke-{i+1}: ')) + year_contents = str(year_contents) + college_year.append(year_contents) + + for j in name: + if len(j) > 20: + print('\nGagal') + break + + else: + with open(file_name + '.txt', 'w') as file: + longest_name = name[0] + + for name_range in name: + if len(name_range) > len(longest_name): + longest_name = name_range + + file.write('+-' + ('-' * len(longest_name)) + '-+') + file.write(('-' * 12) + '+') + file.write(('-' * 10) + '+') + + file.write('\n| Nama' + (' ' * (len(longest_name) - 5)) + ' |') + file.write(' NIM' + (' ' * (12 - 4)) + '|') + file.write(' Angkatan' + (' ' * (10 - 9)) + '|') + + file.write('\n+-' + ('-' * len(longest_name)) + '-+') + file.write(('-' * 12) + '+') + file.write(('-' * 10) + '+') + + for x in range(data_amount): + file.write('\n| ') + file.write(name[x]) + file.write(' ' * (len(longest_name) - len(name[x])) + ' | ') + file.write(NIM[x]) + file.write(' ' * (11 - len(NIM[x])) + '| ') + file.write(college_year[x]) + file.write((' ' * (9 - len(college_year[x]))) + '|') + + file.write('\n+-' + ('-' * len(longest_name)) + '-+') + file.write(('-' * 12) + '+') + file.write(('-' * 10) + '+') + + print('\nBerhasil') + +except: + print('\nGagal\n-> Ada kesalahan inputan') \ No newline at end of file diff --git a/H071221095/Materi_07/No1.py b/H071221095/Materi_07/No1.py new file mode 100644 index 0000000..cf8ca67 --- /dev/null +++ b/H071221095/Materi_07/No1.py @@ -0,0 +1,44 @@ +# Program mengecek sebuah string S apakah sesuai +# dengan kondisi dalam soal + +import re +s = input('') +print(len(s)) + +# MENYETEL REGULAR EXPRESSION +regex_space = r'\s' +regex_digit = r'\d' +regex_alphabet = r'[A-Z,a-z]' + +# MENENTUKAN APAKAH 40 KARAKTER PERTAMA MEMENUHI KONDISI +result1 = re.findall(regex_space, s[0:40]) +if result1: + print('false') + exit() + +result1_digit = re.findall(regex_digit, s[0:40]) +for i in result1_digit: + i = int(i) + if i % 2 == 1: + print('false') + exit() + +# MENENTUKAN APAKAH KARAKTER KE-41 SAMPAI 45 MEMENUHI KONDISI +result2 = re.findall(regex_alphabet, s[40:45]) +if result2: + print('false') + exit() + +result2_digit = re.findall(regex_digit, s[40:45]) +for j in result2_digit: + j = int(j) + if j % 2 == 0: + print('false') + exit() + +# MENENTUKAN APAKAH JUMLAH KARAKTER ATAU PANJANG STRING MEMENUHI KONDISI +if len(s) == 45: + print('true') +else: + print('false') + exit() \ No newline at end of file diff --git a/H071221095/Materi_07/No2.py b/H071221095/Materi_07/No2.py new file mode 100644 index 0000000..57c1798 --- /dev/null +++ b/H071221095/Materi_07/No2.py @@ -0,0 +1,28 @@ +# Program mengecek apakah sebuah inputan merupakan +# IPv4, IPv6 atau bukan keduanya + +import re +# MENYETEL REGULAR EXPRESSION +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() #BARIS BARU AGAR OUTPUT TERLIHAT LEBIH RAPI + +# MELAKUKAN PENYELEKSIAN JENIS IP ADDRESS +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 diff --git a/H071221095/Materi_08/No1.py b/H071221095/Materi_08/No1.py new file mode 100644 index 0000000..c780c21 --- /dev/null +++ b/H071221095/Materi_08/No1.py @@ -0,0 +1,29 @@ +class Person : + def __init__ (self, name, age, isMale) : + self.name = name #atribut + self.age = age + self.isMale = isMale + def setname (self, name) : + self.name = name + def setage (self, age) : + self.age = age + def setisMale (self, isMale) : + self.isMale = isMale + def getname (self) : + return self.name + def getage (self) : + return self.age + def getisMale (self) : + if self.isMale == True : + return ("Male") + else : + return ("Female") + + +afifah = Person ("afifah", 18, False) #membuat objek +print (afifah.getname()) +print (afifah.getage()) +print (afifah.getisMale()) + +afifah.setname("salsabila") +print (afifah.getname()) \ No newline at end of file diff --git a/H071221095/Materi_08/No2.py b/H071221095/Materi_08/No2.py new file mode 100644 index 0000000..c1af195 --- /dev/null +++ b/H071221095/Materi_08/No2.py @@ -0,0 +1,41 @@ +class Kubus : + def __init__(self, lebar, tinggi, panjang, massa) : + self.lebar = lebar #atribut + self.tinggi = tinggi + self.panjang = panjang + self.massa = massa + self.massaJenis = 0 + 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 setmassaJenis (self,massaJenis) : + self.massaJenis = massaJenis + def getlebar (self) : + return self.lebar + def gettinggi (self) : + return self.tinggi + def getpanjang (self) : + return self.panjang + def getmassa (self) : + return self.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, massa) #objek + +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/H071221095/Materi_09/__pycache__/no1.cpython-310.pyc b/H071221095/Materi_09/__pycache__/no1.cpython-310.pyc new file mode 100644 index 0000000..5a0e8f9 Binary files /dev/null and b/H071221095/Materi_09/__pycache__/no1.cpython-310.pyc differ diff --git a/H071221095/Materi_09/inputan.py b/H071221095/Materi_09/inputan.py new file mode 100644 index 0000000..162ba2e --- /dev/null +++ b/H071221095/Materi_09/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()) \ No newline at end of file diff --git a/H071221095/Materi_09/no1.py b/H071221095/Materi_09/no1.py new file mode 100644 index 0000000..585c4d4 --- /dev/null +++ b/H071221095/Materi_09/no1.py @@ -0,0 +1,102 @@ +class Human: + def __init__(self, name, position): + self.name = name + self.__pos_x = position #private klo dua __ + 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 #krena dua yg apakn kt bkin kan kondisi di soal hrus menerima r dan l + +class Hero (Human): + def __init__(self, name, pos_x): + super().__init__(name, pos_x) #super itu memanggil method yg kita definisikan di parent class + 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): #special itu method + 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): #special itu yang akan di ubah + 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 + + 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 + diff --git a/H071221095/Materi_10/No1.py b/H071221095/Materi_10/No1.py new file mode 100644 index 0000000..7bbe238 --- /dev/null +++ b/H071221095/Materi_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: + 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/H071221095/Materi_10/No2.py b/H071221095/Materi_10/No2.py new file mode 100644 index 0000000..fed78ca --- /dev/null +++ b/H071221095/Materi_10/No2.py @@ -0,0 +1,80 @@ +from abc import ABC, abstractmethod # ketentuan(abstarctbaseclass) + + +class Wisata(ABC): + @abstractmethod + def oleholeh(self): + pass + + def __init__(self, nama, harga): + self.nama = nama + self.__harga = harga + + def setHarga(self, harga): + self.__harga = int(harga) + + def getHarga(self): + return self.__harga + + +class Bali(Wisata): + def __init__(self, nama, harga): + super().__init__(nama, harga) + self.harga = harga + self.biaya = 10 + + def setHarga(self, harga): + self.harga = int(harga) + + def place(self): + print('Total uang yang digunakan ialah', self.biaya, 'juta rupiah') + + def oleholeh(self): + print('Oleh-oleh yang bisa dibawa pulang dari Bali ialah Joger,Pie Susu,Sarung Bali,Bule') + + def Keunggulan(self): + print('Keunggulannya ialah terdapat seluncuran yang tinggi dan banyak wahana waterboom lainnya') + +class Lombok(Wisata): + def __init__(self, nama, harga): + super().__init__(nama, harga) + self.harga = harga + self.biaya = 5 + + def setHarga(self, harga): + self.harga = int(harga) + + def place(self): + print('Total uang yang digunakan ialah', self.biaya, 'juta rupiah') + + def oleholeh(self): + print('Oleh-oleh yang bisa dibawa pulang dari Lombok ialah Manisan Rumput Laut dan Madu Sumbawa') + + def Keunggulan(self): + print('Keunggulannya ialah warna pasirnya yang sangat cantik dan menarik') + + +def test_harga(wisata): + wisata.place() + + +bali = Bali('Circus Waterpark Kuta Bali', 100) +lombok = Lombok('Pink Beach Lombok', 50) + +print('BALI') +print(bali.nama + ' adalah tempat wisata di Bali') +print(f'Dengan harga masuk {bali.harga} ribu rupiah') +bali.Keunggulan() +# memanggil abstrak method +bali.oleholeh() +# memanggil interface +test_harga(bali) + +print('\nLOMBOK') +print(lombok.nama + ' adalah tempat wisata di Lombok') +print(f'Dengan harga masuk {lombok.harga} ribu rupiah') +lombok.Keunggulan() +# memanggil abstrak method +lombok.oleholeh() +# memanggil interface +test_harga(lombok) diff --git a/H071221095/Materi_CP/asistensi1.py b/H071221095/Materi_CP/asistensi1.py new file mode 100644 index 0000000..765d8bb --- /dev/null +++ b/H071221095/Materi_CP/asistensi1.py @@ -0,0 +1,10 @@ +n = 3 +# j = 0 +# for i in range(n, 0, -1): +# print('*'*i) + +for i in range(n, 0, -1): + print(' ', end='') + print((i*2-1)*'*') + + diff --git a/H071221095/Materi_CP/asistensi2.py b/H071221095/Materi_CP/asistensi2.py new file mode 100644 index 0000000..bfd39fd --- /dev/null +++ b/H071221095/Materi_CP/asistensi2.py @@ -0,0 +1,6 @@ +list_angka = list(map(int, input().split())) +for i in range(len(list_angka)): + for j in range(len(list_angka)): + if list_angka[j] < list_angka[i]: + list_angka[j], list_angka[i] = list_angka[i], list_angka[j] +print(list_angka) \ No newline at end of file diff --git a/H071221095/Materi_CP/compare_the_triplets.py b/H071221095/Materi_CP/compare_the_triplets.py new file mode 100644 index 0000000..5a20708 --- /dev/null +++ b/H071221095/Materi_CP/compare_the_triplets.py @@ -0,0 +1,16 @@ +a = input().split() +b = input().split() + +for i in range(3): + a[i] = int(a[i]) + b[i] = int(b[i]) + +nilai_a = 0 +nilai_b = 0 + +for i in range(3): + if (a[i]>b[i]): + nilai_a += 1 + elif (b[i]>a[i]): + nilai_b += 1 +print(f'{nilai_a} {nilai_b}') diff --git a/H071221095/Materi_CP/plus_minus.py b/H071221095/Materi_CP/plus_minus.py new file mode 100644 index 0000000..91308ea --- /dev/null +++ b/H071221095/Materi_CP/plus_minus.py @@ -0,0 +1,19 @@ +n = int(input()) +arr = input().split() + +for i in range(n): + arr[i] = int(arr[i]) + +positif = 0 +negatif = 0 +nol = 0 +for i in range(n): + if (arr[i]>0): + positif = positif+1 + elif (arr[i]<0): + negatif = negatif+1 + else: + nol = nol+1 +print(f'{positif/n:.6f}') +print(f'{negatif/n:.6f}') +print(f'{nol/n:.6f}') \ No newline at end of file diff --git a/H071221095/Materi_CP/simple_array_sum.py b/H071221095/Materi_CP/simple_array_sum.py new file mode 100644 index 0000000..de73927 --- /dev/null +++ b/H071221095/Materi_CP/simple_array_sum.py @@ -0,0 +1,14 @@ +n = int(input()) +# split digunakan untuk memisahkan karakter dlm string +arr = input().split() + +# arr[i] utk mengakses list dlm indeks ke i +# i itu nilainya scra default 0 sampai n-1 +for i in range(n): + print(i) + arr[i]= int(arr[i]) + +total = 0 +for i in range(n): + total = total+arr[i] +print(total) diff --git a/H071221095/Materi_CP/solve_me_first.py b/H071221095/Materi_CP/solve_me_first.py new file mode 100644 index 0000000..9e0db6a --- /dev/null +++ b/H071221095/Materi_CP/solve_me_first.py @@ -0,0 +1,5 @@ +a = int(input()) +b = int(input()) + +print(a+b) + diff --git a/H071221095/Materi_CP/starcase.py b/H071221095/Materi_CP/starcase.py new file mode 100644 index 0000000..892da67 --- /dev/null +++ b/H071221095/Materi_CP/starcase.py @@ -0,0 +1,10 @@ +n = int(input()) +spasi = n-1 +for i in range(n): + for j in range(spasi): + print(' ', end="") + for j in range(n-spasi): + print('#', end="") + print() + spasi = spasi-1 + diff --git a/H071221095/Materi_CP/the_hurdle_race.py b/H071221095/Materi_CP/the_hurdle_race.py new file mode 100644 index 0000000..dc36016 --- /dev/null +++ b/H071221095/Materi_CP/the_hurdle_race.py @@ -0,0 +1,17 @@ +a = input().split() +jumlah_karakter = int(a[0]) +tinggi_lompat = int(a[1]) + +tinggi_balok = input().split() + +for i in range(jumlah_karakter): + tinggi_balok[i] = int(tinggi_balok[i]) + +tinggi_balok.sort(reverse=True) + +selisih = 0 +for j in range(jumlah_karakter): + if tinggi_lompat