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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions H071221051/tugas_prak10/prak10_tgs1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import re
# from prettytable import PrettyTable
_Data = []
while True:
print(100*"="+"""\nPILIHAN LAYANAN
1. Detail Anda
2. Ubah Nama
3. Jumlah Data Pada File
4. Save Data pada File
5. Buat Data Baru
6. Keluar """)
_inputan = int(input(100*"="+"\nPilihan : "));
if _inputan == 1:
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:
_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:
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:
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:
print(100*"="+"\nSampai Jumpa Lagi\n"+100*"=")
break
42 changes: 42 additions & 0 deletions H071221051/tugas_prak10/prak10_tgs2.py
Original file line number Diff line number Diff line change
@@ -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()
18 changes: 18 additions & 0 deletions H071221051/tugas_prak4/prak4_tgs1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
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]<datalist[j]:
iniv = datalist[i]
datalist[i] = datalist[j]
datalist[j] = iniv

print("Setelah diurut : ",datalist)
ast1 ()
16 changes: 16 additions & 0 deletions H071221051/tugas_prak4/prak4_tgs2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
def isiFPB(a,b):
if (b==0):
return a
else:
return isiFPB(b,a%b)

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('salah')

isiFPB (4,8)

13 changes: 13 additions & 0 deletions H071221051/tugas_prak4/prak4_tgs3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
def rot_str (kata):
N_temp = kata + kata
N_size = len (kata)

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)

11 changes: 11 additions & 0 deletions H071221051/tugas_prak4/prak4_tgs4.py
Original file line number Diff line number Diff line change
@@ -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))
18 changes: 18 additions & 0 deletions H071221051/tugas_prak5/prak5_tgs1.py
Original file line number Diff line number Diff line change
@@ -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 ()
48 changes: 48 additions & 0 deletions H071221051/tugas_prak5/prak5_tgs2.py
Original file line number Diff line number Diff line change
@@ -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!')
13 changes: 13 additions & 0 deletions H071221051/tugas_prak5/prak5_tgs3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
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))}")


11 changes: 11 additions & 0 deletions H071221051/tugas_prak6/prak6_tgs1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
a = input()
b = input()
c = open(f"{a}.txt","r")
d = c.read()

try:
with open(f"{b}.txt","w") as file: #f{b} salinan dari file awal
file.write(d)
print('Berhasil')
except:
print('Tidak berhasil')
15 changes: 15 additions & 0 deletions H071221051/tugas_prak6/prak6_tgs2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
a = input()+'.txt'
b = input()+'.txt'
try:
with open(a) as asli:
file_as = asli.readlines() #read semua file bentuk list
n = []
file_as[-1] += " " #untuk mengetahui baris terpanjang dalan len
for x in file_as:
n.append(len(x))
with open(b, "w") as salinan:
for i in file_as:
salinan.write(i.rjust(max(n))) #rjust untuk list dari kanan #max(n) nilai terpanjang dalam list
print("Berhasil")
except:
print("Invalid")
52 changes: 52 additions & 0 deletions H071221051/tugas_prak6/prak6_tgs3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
file = input("Nama file: ")
jumlah = int(input("Jumlah data: "))

nama = []
nim = []
angkatan = []

for i in range(jumlah): #perulangan untuk isi biodata sebanyak jumlah yang kita mau
isi_nama = input('Masukkan Nama: ').replace(' ','_')
if len(isi_nama) <= 20:
nama.append(isi_nama)
else:
print('Gagal')
exit()
isi_nim = input('Masukkan NIM: ')
nim.append(isi_nim)
isi_angkatan = input('Masukkan Angkatan: ')
angkatan.append(isi_angkatan)

if len(isi_nama) <= 20:
with open(f"{file}.txt","w") as f:
nama_terpanjang = nama[0]
for panjang in nama: #mencari nama yang terpanjang
if len(panjang) > 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')
9 changes: 9 additions & 0 deletions H071221051/tugas_prak7/prak7_tgs1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import re
kondisi = r'^[A-Za-z24680]{40}[13579\s]{5}$'

s = input()
hasil1 = re.findall(kondisi, s)
if hasil1:
print('true')
else:
print('false')
24 changes: 24 additions & 0 deletions H071221051/tugas_prak7/prak7_tgs2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
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')
Loading