import tkinter as tk from database import setup_database, connect from pembeli_menu import PembeliMenu from kasir import KasirPage from pemilik import PemilikPage from admin_menu import AdminMenu from waiter_dashboard import WaiterDashboard from tkinter import messagebox 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="SISTEM CAFE", font=("Arial", 24, "bold")).pack(pady=30) # --- Bagian Login Staff --- frame_login = tk.LabelFrame(self.frame, text="Login Staff (Admin/Kasir/Waiter)", padx=20, pady=20) frame_login.pack(pady=10) tk.Label(frame_login, text="Username:").pack(anchor="w") self.username_entry = tk.Entry(frame_login) self.username_entry.pack(fill="x", pady=5) tk.Label(frame_login, text="Password:").pack(anchor="w") self.password_entry = tk.Entry(frame_login, show="*") self.password_entry.pack(fill="x", pady=5) tk.Button(frame_login, text="Login Staff", bg="#cfe2ff", command=self.login_staff).pack(pady=10, fill="x") # --- Bagian Pelanggan (Tanpa Password) --- tk.Label(self.frame, text="--- ATAU ---", fg="grey").pack(pady=5) tk.Button(self.frame, text="🍽️ MASUK SEBAGAI PELANGGAN", bg="#d1e7dd", fg="#0f5132", font=("Arial", 12, "bold"), height=2, command=self.masuk_pelanggan).pack(pady=10, ipadx=20) def login_staff(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 == "kasir": KasirPage(self.root, self.root) elif role == "pemilik": PemilikPage(self.root, self.root) elif role == "admin": AdminMenu(self.root) elif role == "waiter": WaiterDashboard(self.root) elif role == "pembeli": # Jika ada user iseng login pakai akun pembeli di database PembeliMenu(self.root) else: messagebox.showerror("Error", "Role tidak dikenali") else: messagebox.showerror("Error", "Username / Password salah") def masuk_pelanggan(self): # Langsung buka menu tanpa cek password self.frame.destroy() PembeliMenu(self.root) # --- App Class --- class App(tk.Tk): def __init__(self): super().__init__() self.title("Sistem Cafe Python") self.geometry("800x600") if __name__ == "__main__": setup_database() app = App() LoginScreen(app) app.mainloop()