Kali ini kita akan membuat sebuah program login yang disertai fitur seperti penambahan user dan penghapusan user.
Tapi pertama-tama. Apa itu Array?
Array adalah sebuah tipe data bawaan dalam Bahasa Pemrograman Python, bisa juga disebut list.
Array juga bisadi gunakan untuk memanipulasi data dan lebih menghemat memori.
Array tergolong dari 2 jenis yaitu:
-Array Numerik, dan
-Array Karakter.
Array Numerik dapat digunakan untuk perhitungan matematika, sedangkan Array Karakter digunakan untuk menyimpan karakter'string dan juga boolean. Array karakter-lah yang akan kita gunakan dalam pemrograman kita kali ini.
Array juga memiliki dimensi:
-Array 1 dimensi
Menyimpan data dalam 1 dimensi
-Array 2 dimensi
Kumpulan baris data dan kolom
-Array 3 dimensi
Garis, Kolom, dan Kedalaman.
Program yang telah dibuat dan Outputnya:
#untuk fitur keluar
#sys.exit() sebagai fitur force close jika sudah login
import sys
#array untuk membuat list
data_pengguna = [
["Username", "Password"],
['user1', 'pass123'],
['user2', 'pass112']
]
login_admin = ['admin', 'admin123']
#membuat limit percobaan login
max_limit = 3
#fungsi untuk mendaftarkan pengguna baru
def register():
print("\n")
print("-"*75)
print("REGISTRASI")
print("-"*75)
while True:
new_username = input("Buat username baru: ")
#menghindari penimpaan pengguna yang ada
alluser = [user[0] for user in data_pengguna[1:]] + [login_admin[0]]
if new_username in alluser:
print("Username sudah digunakan. Silahkan pilih username lain.")
else:
break #jika username baru yang dibuat berbeda dengan yang ada di data
new_password = input("Buat password baru: ")
#memasukkan username baru ke data_pengguna
data_pengguna.append([new_username, new_password])
print("Registrasi berhasil!")
def login():
print("\n")
print("-"*75)
print("LOGIN")
print("-"*75)
limit = 0
while limit < max_limit:
username = input("Masukkan username: ")
password = input("Masukkan password: ")
if [username, password] in data_pengguna[1:]:
print(f"Login berhasil! Selamat datang {username}!")
usermenu()
return
elif username == login_admin[0] and password == login_admin[1]:
print(f"Selamat datang, {username}!")
adminmenu()
return
else:
limit += 1
print("Login gagal. Silahkan coba lagi.")
print("Percobaan login telah mencapai batas maksimum.")
#tampilan menu pengguna
def usermenu():
while True:
print("\n")
print("="*75)
print("MENU")
print("="*75)
print("9. Log out")
print("0. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "9":
print("Anda telah log out.")
main_menu()
return
elif pilihan == "0":
print("Sampai jumpa kembali!")
sys.exit()
else:
print("Pilihan tidak valid. silahkan coba lagi.")
#tampilan menu admin
def adminmenu():
while True:
print("\n")
print("="*75)
print("MENU")
print("="*75)
print("1. Tambah pengguna")
print("2. Hapus pengguna")
print("3. Daftar pengguna")
print("9. Log out")
print("0. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "9":
print("Anda telah log out.")
main_menu()
return
elif pilihan == "0":
print("Sampai jumpa kembali!")
sys.exit()
elif pilihan == "1":
register()
elif pilihan == "2":
deluser()
elif pilihan == "3":
userlist()
else:
print("Pilihan tidak valid. silahkan coba lagi.")
#membuat fitur menghapus pengguna
def deluser():
print("\n")
print("-"*75)
print("HAPUS PENGGUNA")
print("-"*75)
while True:
admin_password = input("Masukkan password admin: ")
if admin_password != login_admin[1]:
print("Password admin salah. Silahkan coba lagi.")
continue
username_delete = input("Masukkan username yang ingin dihapus: ")
found = False
for i in range(1, len(data_pengguna)): #mulai dari 1 untuk melewati header
if data_pengguna[i][0] == username_delete:
data_pengguna.pop(i) #.pop(i) menghapus pengguna berdasarkan kata kunci pencarian indeks
found = True
print(f"Pengguna '{username_delete}' berhasil dihapus.")
break
if not found:
print(f"Pengguna '{username_delete}' tidak ditemukan.")
adminmenu()
return
def userlist():
header = data_pengguna[0]
print("\n")
print("-"*75)
print(f"{header[0]:<15} {header[1]:<15}")
print("-"*75)
for row in data_pengguna[1:]:
print(f"{row[0]:<15} {row[1]:<15}")
adminmenu()
def main_menu():
while True:
print("\n")
print("="*75)
print("MAIN MENU")
print("="*75)
print("1. Login")
print("2. Register")
print("0. Keluar")
print("\n")
pilihan = input("Pilih menu: ")
if pilihan == "1":
login()
elif pilihan == "2":
register()
elif pilihan == "0":
print("Sampai jumpa kembali!")
sys.exit()
else:
print("Pilihan tidak valid. Silahkan coba lagi.")
main_menu()
Outputnya:
===========================================================================
MAIN MENU
===========================================================================
1. Login
2. Register
0. Keluar
Pilih menu: 1
---------------------------------------------------------------------------
LOGIN
---------------------------------------------------------------------------
Masukkan username: admin
Masukkan password: admin123
Selamat datang, admin!
===========================================================================
MENU
===========================================================================
1. Tambah pengguna
2. Hapus pengguna
3. Daftar pengguna
9. Log out
0. Keluar
Pilih menu: 3
---------------------------------------------------------------------------
Username Password
---------------------------------------------------------------------------
user1 pass123
user2 pass112
===========================================================================
MENU
===========================================================================
1. Tambah pengguna
2. Hapus pengguna
3. Daftar pengguna
9. Log out
0. Keluar
Pilih menu: 0
Sampai jumpa kembali!
An exception has occurred, use %tb to see the full traceback.
SystemExit
/usr/local/lib/python3.12/dist-packages/IPython/core/interactiveshell.py:3561: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)
Eror SystemExit ini adalah kendala biasa dikarenakan kita menggunakan kode sys.exit()
untuk force close program yang kita buat. Sekian dan Terima Kasih
Komentar
Posting Komentar