95 lines
2.7 KiB
Python

import tkinter as tk
from tkinter import messagebox
from database import setup_database, connect
from admin_dashboard import AdminDashboard
from kasir_dashboard import KasirDashboard
from waiter_dashboard import WaiterDashboard
from pembeli_menu import PembeliMenu
from pemilik_dashboard import PemilikDashboard
class App(tk.Tk):
def __init__(self):
super().__init__()
self.title("Sistem Cafe")
self.geometry("500x400")
self.container = tk.Frame(self)
self.container.pack(fill="both", expand=True)
self.frames = {}
# Register screens
for name, FrameClass in {
"Login": LoginScreen,
"Admin": AdminDashboard,
"Kasir": KasirDashboard,
"Waiter": WaiterDashboard,
"Pembeli": PembeliMenu,
"Pemilik": PemilikDashboard
}.items():
frame = FrameClass(self.container, self)
self.frames[name] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame("Login")
def show_frame(self, name):
frame = self.frames[name]
frame.tkraise()
class LoginScreen(tk.Frame):
def __init__(self, parent, controller):
super().__init__(parent)
self.controller = controller
tk.Label(self, text="LOGIN SISTEM CAFE", font=("Arial", 20, "bold")).pack(pady=20)
tk.Label(self, text="Username").pack()
self.username_entry = tk.Entry(self, width=30)
self.username_entry.pack()
tk.Label(self, text="Password").pack()
self.password_entry = tk.Entry(self, width=30, show="*")
self.password_entry.pack()
tk.Button(self, text="Login", width=20, command=self.login).pack(pady=15)
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()
if result:
role = result[0]
if role == "admin":
self.controller.show_frame("Admin")
elif role == "kasir":
self.controller.show_frame("Kasir")
elif role == "waiter":
self.controller.show_frame("Waiter")
elif role == "pembeli":
self.controller.show_frame("Pembeli")
elif role == "pemilik cafe":
self.controller.show_frame("Pemilik")
else:
messagebox.showerror("Error", "Username atau password salah")
db.close()
# RUN PROGRAM
if __name__ == "__main__":
setup_database()
app = App()
app.mainloop()