Hai Koder, semoga kita semua selalu diberikan kesehatan, kemudahan dan kelancaran di setiap langkah kita. Aamiin
Catatan kali ini saya ingin membagikan pengalaman saya dalam Belajar Python, yaitu tentang Membuat Database dengan file txt serta Autentikasi Login.
Caranya sangat simple sekali. karena kita ga perlu install databasenya hanya membuat file dengan format txt sudah jadi. tapi ini hanya untuk pembelajaran saja ya sob.
langsung aja buat file dengan nama database.txt dan lokasinya dijadikan satu folder dengan file python.
Lalu buat file dengan nama
LoginPython.py
import bcrypt #untuk enkripsi password
#print ketika berhasil login
def selamat():
print("Selamat Datang di Lapak Ngoding")
#membuat fungsi formDaftar
def formDaftar(Username=None, Password1=None, Password2=None):
Username = input("Buat username:") #form input username
Password1 = input("Buat password:") #form input password
Password2 = input("Konfirmasi Password:") #form konfirmasi password
db = open("belajarPython/LoginPython/database.txt", "r") #membuka file database.txt
z = []
for i in db: #mengambil data dari database.txt
a,b = i.split(",")
b = b.strip()
c = a,b
z.append(a)
if not len(Password1)<=8:#parameter password tidak boleh kurang 8 karakter ke bawah
db = open("belajarPython/LoginPython/database.txt", "r")
if not Username ==None:
if len(Username) <1:#parameter username tidak boleh kurang dari 1
print("Mohon masukkan Username yang benar")
formDaftar()
elif Username in z:#periksa username sudah terdaftar di database atau belum
print("Username sudah terdaftar")
formDaftar()
else:
if Password1 == Password2: #periksa password harus sama, jika sama langsung simpan ke database
Password1 = Password1.encode('utf-8')
Password1 = bcrypt.hashpw(Password1, bcrypt.gensalt())#enkripsi password bcrypt
db = open("belajarPython/LoginPython/database.txt", "a")
db.write(Username+", "+str(Password1)+"\n")
print("User berhasil di buat!")#print info jika behasil
print("Silahkan Login:")
else: #print jika password berbeda
print("Password tidak sama")
formDaftar()
else: #print jika password terlalu pendek
print("Password terlalu pendek")
def formLogin(Username=None, Password=None):
Username = input("Masukkan username:") #form input username
Password = input("Masukkan Password:") #form input password
if not len(Username or Password) < 1:
if True:
db = open("belajarPython/LoginPython/database.txt", "r") #membuka file database.txt
z = []
k = []
for i in db:
a,b = i.split(",") #memisahkan data di database antara koma dan menjadi variabel a dan b
b = b.strip() #mengambil data b
c = a,b #mendefiniskan data a dan b
z.append(a) #menambahakan data a ke variabel z
k.append(b) #menambahakan data b ke variabel k
data = dict(zip(z, k)) #konversi data ke tipe dictionary
try:
if Username in data:
hashed = data[Username].strip('b') #meniadakan b yang berada di awal password enkripsi
hashed = hashed.replace("'", "") #menghapus koma antara username dan password
hashed = hashed.encode('utf-8') #mengembalikan nilai password yang di enkripsi
try:
if bcrypt.checkpw(Password.encode(), hashed): #cek password yang sudah di encode
print("Berhasil login!")
print("Hai apa kabar", Username+"?")
selamat()
else:
print("Password salah")
except:
print("Koreksi passwords atau username")
else:
print("Username tidak ada")
except:
print("Password atau username tidak ada")
else:
print("Error logging into the system")
else:
print("Mohon login kembali")
formLogin()
#Membuat pilihan
def home(option=None):
print("Welcome, silahkan ketik Login atau Daftar untuk memulai")
option = input("Login | Daftar:")
if option == "Login":
formLogin()
elif option == "Daftar":
formDaftar()
else:
print("Mohon ketik Login atau Daftar untuk memulai")
home ()
Note: Mohon maaf jika ada penjelasan dalam kome yang keliru atau bahkan salah.
di dalam LoginPython.py terdapat empat fungsi yang di tampung dalam def
1. def selamat
fungsi ini akan di eksekusi jika berhasil login
2. def formDaftar
fungsi untuk mendaftrakan atau input data ke dalam database.txt
3. def formLogin
Fungsi ini untuk login dengan mengambil data yang sudah ada di dalam database.txt
4. def home
terdapat fungsi pilihan pada saat pertama kali di jalankan
berikut tampilan jika file LoginPython.py di jalankan
karena di database.txt masih kosong. maka saya pilih daftar dan jika password berbeda maka
oke kita coba lagi dengan input password kurang dari 8 maka hasilnya
dan jika sudah sesuai dengan parameter yang ditentukan maka hasilnya sebagai berikut.
dan isi dari database.txt
sekarang saya login dengan data tersebut
gimana jika password salah?
bagaimana jika username sudah terdaftar?
nah, begitulah sob hasil eksekusi programnya. koder silahkan bereksplorasi dengan menambahkan fungsi-fungsi yang koder inginkan.
nantikan versi videoanya di Channel Youtube Lapak Ngoding.
Sampai sini dulu ya sob, karena, di minta masak nasi sama istri buat sarapan besok pagi hehehe
Jakarta di saat istri ga jadi jemurin cucian karena si bontot bangun.
sa
Komentar
Posting Komentar