Langsung ke konten utama

Tutorial Python Membuat Database dengan file txt serta Autentikasi Login di Python

 

Tutorial Python Membuat Database dengan file txt serta Autentikasi Login di Python

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

Postingan populer dari blog ini

Membuat Aplikasi Android dengan Python dan Kivy | Upload dan Ubah Foto di Halaman Profil

 Hai Sobat Ngoding gimana kabarnya? kalau kamu menemukan blog ini berarti tujuan kita sama yaitu Belajar Ngoding dengan Browsing. saya mo lanjutin yang kemarin ya sob yang baru mampir silahkan cek Membuat Aplikasi Android dengan Python dan Kivy | Halaman Profil Member untuk Update Data dan Membuat Aplikasi Android dengan Python dan Kivy | Tutorial Ganti Password .  Sekarang kita bahas lanjutannya yaitu Membuat Aplikasi Android dengan Python dan Kivy | Upload dan Ubah Foto di Halaman Profil dicatatan kali ini saya ga nambah file, cuma menambah fungsi di profil.py, daftar.py, profil.kv serta menambahkan kolom foto di tabel database SQLite. di file profil.py saya menambahkan fungsi untuk menampilkan foto profil, fungsi ubah dan upload foto ke folder yang sudah ditentukan, lalu merubah nama foto berdasarkan username. Berikut susuna kodenya profil.py from kivy.app import App from kivy.uix.label import Label from kivy.lang import Builder from kivymd.uix.dialog import MDDialog fro...

Membuat Aplikasi Android dengan Pyrhon dan Kivy | Halaman Login | Form Pendaftaran serta Autentikasi ke Halaman Member

  Hai, para koder kece !  Pernah kepikiran gak sih bikin aplikasi Android tapi gak mau ribet sama Java atau Kotlin yang bikin pusing? Nah, di artikel ini kita bakal ngulik cara bikin aplikasi Android cuma pakai Python dan Kivy . Tenang aja, kita gak langsung lompat ke yang susah-susah. Kita mulai dari hal dasar dulu: bikin halaman login , form pendaftaran , dan pastinya autentikasi biar bisa masuk ke halaman member kayak aplikasi beneran! Kalau kamu suka ngoding dan pengen nyobain bikin aplikasi sendiri, yuk lanjut baca sampai habis. Siap-siap jadi koder keren berikutnya!  Siap, koder! 🎉 Yuk kita bedah bareng kode Python di atas dengan gaya santai biar makin paham. 🧠 Apa sih kode ini? Kode ini adalah kerangka utama dari aplikasi Android yang kita bangun pakai Python + KivyMD . Di sini udah disiapin struktur buat halaman login, pendaftaran, dan halaman beranda . Pokoknya dasar dari aplikasi yang punya banyak halaman. 🔍 Penjelasan Baris per Baris from kivymd.a...

Membuat Aplikasi Android dengan Python dan Kivy | Halaman Profil Member untuk Update Data

Halo, para pejuang bug dan error! 😄 Kali ini kita bakal ngulik gimana caranya bikin halaman profil member di aplikasi Android, tapi bukan pake Java yang bikin kepala ngebul—kita pakai Python + Kivy yang lebih santuy dan ringan. Di sini, pengguna bisa lihat dan update data mereka sendiri , biar aplikasi kamu makin interaktif dan kelihatan profesional. Gak cuma buat belajar, tapi siapa tahu jadi jalan ninja jadi developer beneran, kan? Langsung saja.  tambahkan baris kode di main.py yang berada di BlajarKivy - main.py berikut kodenya from kivymd.app import MDApp from kivymd.uix.screenmanager import ScreenManager from kivy.core.text import LabelBase from kivy.core.window import Window Window.size = (500, 650) from screens.screens import * class WindowManager(ScreenManager): pass class LapakNgoding(MDApp): def build(self): self.logged_user = None self.wm = WindowManager() screens =[ Hallog(name="hallog"), Daftar(name="daftar"), Hallogadmin(na...