-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
216 lines (196 loc) · 7.33 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# MENGIMPOR MODUL
import getpass
import os
from datetime import datetime
from functions import welcome, siubsielibrary, jeda, detailbuku, KembalikanBuku, daftarbuku, pinjambuku
# ====== FUNGSI MENU ======
def MenuPertama():
jeda(1)
siubsielibrary(60, "Pendaftaran Akun pada layanan SIUBSI E-library")
print("\nBerikut syarat-syarat yang perlu diperhatikan sebelum anda mendaftarkan akun pada Layanan 'SIUBSI E-library'")
print("""
[-] Data yang dimasukkan tidak boleh ada yang kosong.
[-] Tidak boleh mengandung karakter ',' dalam pengisian data.
[-] Maksimum karakter adalah sebagai berikut: Nama (20), Username (15), Password (30).""")
print("\n\n[Pesan] Masukkan Username dan Password untuk akun anda.")
Name = input("Masukkan nama anda: ")
Username = input("Masukkan Username: ")
Password = getpass.getpass("Masukkan Password: ")
print("\nMohon tunggu sebentar...")
jeda(1)
registerUser(Name, Username, Password)
def MenuKedua():
jeda(1)
siubsielibrary(60, '"Prosesi masuk dengan menginput'.center(60) + '\n' + '\'Username & Password\' pada layanan SIUBSI E-Library"')
print("\n[Pesan] Masukkan Username dan Password akun anda dengan benar.")
Username = input("Masukkan Username anda: ")
Password = getpass.getpass("Masukkan Password anda: ")
masuk(Username, Password)
def MenuKetiga():
jeda(1)
os.system("cls")
siubsielibrary(60, "Daftar Buku yang sedang dipinjam\n")
if os.stat("Data/peminjaman.txt").st_size == 0:
return print("Tidak ada buku yang sedang dipinjam saat ini.")
Name = input("Masukkan nama anda: ")
Kodebuku = ""
Judulbuku = ""
file = open("Data/peminjaman.txt", "r")
print("="*125)
print(f"{'Nama peminjam':<20}\tKode Buku\t{'Waktu pinjam':<18}\tJudul Buku")
print("-"*125)
for line in file:
if Name in line:
a, b, c, d = line.split("#")
a == Name
b == Kodebuku
c == Judulbuku
dt = datetime.fromtimestamp(float(d)).strftime("%d-%m-%y %H:%M:%S")
print(f"{a:<20}\t{b:<10}\t{dt:<18}\t{c}")
else:
print(f"Nama {Name} tidak ditemukan")
print("="*125)
file.close()
print("\n[1]. Lihat detail buku\n[2]. Exit")
Pilihan = input("Pilih menu [1|2]: ")
if Pilihan == "1":
Kodebukunya = input("Masukkan kode buku untuk ditampilkan detailnya: ")
detailbuku(Kodebukunya)
elif Pilihan == "2":
exit()
else:
print(f"Pilihan {Pilihan} tidak ditemukan.")
def MenuKeempat():
Name = input("Masukkan nama lengkap anda: ")
Kodebuku = input("Masukkan Kodebuku yang ingin dikembalikan: ")
KembalikanBuku(Name, Kodebuku)
# ====== FUNGSI USER REGISTER ======
def inputUser(Name, Username, Password):
file = open("Data/users.txt", "a")
file.write(f"{Name},{Username},{Password}\n")
file.close()
def registerUser(Name, Username, Password):
file = open("Data/users.txt", "r")
if os.stat("Data/users.txt").st_size != 0:
for i in file:
a, b, c = i.split(",")
pass
if Username == b:
print("Username tidak tersedia, silahkan pilih yang lain.")
jeda(2)
mulai()
akses(opsi)
if Name is "" or Username is "" or Password is "":
print("Pendaftaran akun gagal, data yang dimasukkan tidak boleh ada yang kosong.")
jeda(2)
mulai()
akses(opsi)
elif "," in Name or "," in Username or "," in Password:
print("Pendaftaran akun gagal, tidak boleh mengandung ',' dalam pengisian data.")
jeda(2)
mulai()
akses(opsi)
elif len(Name) > 20 or len(Username) > 15 or len(Password) > 30:
print("Pendaftaran akun gagal, data yang dimasukkan ada yang telah melibihi batas maksimum karakter.")
jeda(2)
mulai()
akses(opsi)
else:
inputUser(Name, Username, Password)
print(f"[Pesan] Berhasil membuat akun.")
jeda(1)
siubsielibrary(60, "Proses masuk pada layanan SIUBSI E-library")
print(f"\n[Pesan] Selamat datang {Name}.\n")
Uname = input("Masukkan Username anda: ")
PW = getpass.getpass("Masukkan Password anda: ")
if Uname == Username and PW == Password:
masuk(Username, Password)
else:
print("Data yang anda masukkan tidak sesuai, silahkan masuk ulang!")
jeda(2)
mulai()
akses(opsi)
# ====== FUNGSI USER AKSES ======
def akses(opsi):
global Username
global Name
if opsi == "1":
MenuPertama()
elif opsi == "2":
MenuKedua()
elif opsi == "3":
MenuKetiga()
elif opsi == "4":
MenuKeempat()
else:
print(f"Menu {opsi} tidak diketahui.")
# ====== FUNGSI USER LOGIN ======
def masuk(Username, Password):
Sukses = False
file = open("Data/users.txt", "r")
for i in file:
a, b, c = i.split(",")
c = c.strip()
if b == Username and c == Password:
Sukses = True
break
file.close()
if (Sukses):
print("\n[Pesan] Mengidentifikasi akun...")
jeda(1)
print("[Pesan] Berhasil masuk.")
os.system("cls")
daftarbuku(1)
while True:
Halaman = input(
"\nPilih nomor untuk dialihkan ke halaman nomor tersebut, Masukkan 'menu' agar dialihkan ke Menu buku, Masukkan 'exit' untuk keluar dari program.\n[1|2|menu]: ")
if Halaman == "1":
os.system("cls")
daftarbuku(1)
elif Halaman == "2":
os.system("cls")
daftarbuku(2)
elif Halaman == "menu":
print("\n"+"="*30 +
"\n[1]. Pinjam buku\n[2]. Lihat detail buku\n[3]. Exit")
RedirectMenuBuku = input("Masukkan pilihan [1|2|3]: ")
if RedirectMenuBuku == "1":
Kodebuku = input("Masukkan kode buku: ")
pinjambuku(a, Kodebuku)
elif RedirectMenuBuku == "2":
Pilihan = input(
"\nMasukkan Kode Buku ('exit' untuk keluar program): ")
if Pilihan == "exit":
print("keluar program...")
jeda(2)
exit()
else:
detailbuku(Pilihan)
elif RedirectMenuBuku == "3":
exit()
else:
print(f"Pilihan {RedirectMenuBuku} tidak ditemukan")
elif Halaman == "exit":
jeda(1)
exit()
else:
print("Nomor Halaman tidak tersedia.")
else:
print(f"\nGagal masuk, Periksa kembali data yang anda masukkan, apakah tersedia atau tidak.")
jeda(3)
mulai()
akses(opsi)
# ====== FUNGSI MEMULAI PROGRAM ======
def mulai():
global opsi
welcome()
print("[1] Daftar (Silahkan pilih menu ini jika anda belum mempunyai akun)")
print("[2] Masuk (Silahkan pilih menu ini jika anda sudah mempunyai akun)")
print("[3] Tampilkan Buku yang sedang dipinjam")
print("[4] Kembalikan buku")
opsi = input("Masukkan pilihan [1|2|3|4]: ")
if opsi != "1" and opsi != "2" and opsi != "3" and opsi != "4":
mulai()
# ====== MEMANGGIL FUNGSI MEMULAI PROGRAM BESERTA AKSES-NYA ======
mulai()
akses(opsi)