61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
import tkinter as tk
|
|
from database import setup_database, connect
|
|
from pembeli_menu import PembeliMenu
|
|
from kasir import KasirPage
|
|
from pemilik import PemilikPage
|
|
from tkinter import messagebox
|
|
|
|
# --- Login Screen ---
|
|
class LoginScreen:
|
|
def __init__(self, root):
|
|
self.root = root
|
|
self.frame = tk.Frame(root)
|
|
self.frame.pack(fill="both", expand=True)
|
|
|
|
tk.Label(self.frame,text="LOGIN SISTEM CAFE", font=("Arial",18,"bold")).pack(pady=20)
|
|
tk.Label(self.frame,text="Username").pack()
|
|
self.username_entry = tk.Entry(self.frame)
|
|
self.username_entry.pack()
|
|
tk.Label(self.frame,text="Password").pack()
|
|
self.password_entry = tk.Entry(self.frame, show="*")
|
|
self.password_entry.pack(pady=5)
|
|
tk.Button(self.frame,text="Login", bg="#cfe2ff", command=self.login).pack(pady=10)
|
|
|
|
def login(self):
|
|
username = self.username_entry.get()
|
|
password = self.password_entry.get()
|
|
|
|
db = connect()
|
|
cur = db.cursor()
|
|
cur.execute("SELECT role FROM users WHERE username=? AND password=?", (username,password))
|
|
result = cur.fetchone()
|
|
db.close()
|
|
|
|
if result:
|
|
role = result[0]
|
|
self.frame.destroy()
|
|
if role=="pembeli":
|
|
PembeliMenu(self.root)
|
|
elif role=="kasir":
|
|
KasirPage(self.root)
|
|
elif role=="pemilik":
|
|
PemilikPage(self.root)
|
|
else:
|
|
messagebox.showerror("Error","Role tidak dikenali")
|
|
else:
|
|
messagebox.showerror("Error","Username / Password salah")
|
|
|
|
# --- App ---
|
|
class App(tk.Tk):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.title("Sistem Cafe")
|
|
self.geometry("700x600")
|
|
|
|
# --- Run Program ---
|
|
if __name__=="__main__":
|
|
setup_database()
|
|
app = App()
|
|
LoginScreen(app)
|
|
app.mainloop()
|