You are on page 1of 6

1.

Buatlah sebuah folder baru


Buatlah sebuah Form windows kosong (lihat script), beri nama: Dashboard.py
import tkinter as tk
class Dashboard:

def __init__(self, parent, title):


self.parent = parent
self.parent.geometry("600x400")
self.parent.title(title)
self.parent.protocol("WM_DELETE_WINDOW", self.onKeluar)

def onKeluar(self, event=None):


# memberikan perintah menutup aplikasi
self.parent.destroy()

if __name__ == '__main__':
root = tk.Tk()
aplikasi = Dashboard(root, "Dashboard Aplikasi")
root.mainloop()

2. Menambahkan fungsi aturKomponen() dan show_login(), letakkan


di bawah fungsi __init__()

def aturKomponen(self):
mainFrame = Frame(self.parent, bd=10)
mainFrame.pack(fill=BOTH, expand=YES)

mainmenu = Menu(self.parent)
self.parent.config(menu=mainmenu)
file_menu_awal = Menu(mainmenu)
file_menu_awal

# Menu Awal
file_menu_awal.add_command(
label='Login', command=self.show_login
)
file_menu_awal.add_command(
label='Exit', command=root.destroy
)

# Tampilkan menu ke layar


mainmenu.add_cascade(
label="File", menu=file_menu_awal
)

def show_login(self):
pass

Tambahkan script berikut setelah import tkinter as tk


from tkinter import Frame, YES, BOTH, Menu

3. Lengkapi fungsi show_login() dan tambahkan fungsi onLogin()


def show_login(self):
self.my_w_child=tk.Toplevel(root)
self.my_w_child.geometry("250x200")
# pasang Label
Label(self.my_w_child, text='Username:').grid(row=0, column=0,
sticky=W, padx=5, pady=5)
Label(self.my_w_child, text="Password:").grid(row=1, column=0,
sticky=W, padx=5, pady=5)

# pasang textbox
self.txtUsername = Entry(self.my_w_child)
self.txtUsername.grid(row=0, column=1, padx=5, pady=5)

self.txtPassword = Entry(self.my_w_child)
self.txtPassword.grid(row=1, column=1, padx=5, pady=5)
self.txtPassword.config(show='*')

# Pasang Button
self.btnLogin = tk.Button(self.my_w_child, text='Login',
command=self.onLogin)
self.btnLogin.grid(row=2, column=1, padx=5, pady=5)

def onLogin(self):
pass

Tambahkan 2 baris script di akhir fungsi __init__()


self.my_w_child = None
self.aturKomponen()

Lengkapi import library tkinter: (tulis dalam 1 baris)


from tkinter import Frame,Label,Entry,Button,Radiobutton,ttk,VERTICAL,
YES,BOTH,END,Tk,W,StringVar,messagebox, Menu

4. Download 3 file berikut:

class koneksi database:


db.py
https://dl.dropbox.com/s/ntnosq3wp4hhxmb/db.py

class tabel users:


Users.py
https://dl.dropbox.com/s/fb9mqqbnvpgvdht/Users.py

Backup tabel users:


users.sql
https://dl.dropbox.com/s/pwgbxe8ax6k0o5m/users.sql

Copykan 3 file tersebut ke dalam folder project

5. Siapkan sebuah mysql database baru lewat phpmyadmin,


import tabel users lewat file users.sql

lalu edit file: db.py


self.name = DB_NAME = "nama_database_anda"

6. Lengkapi fungsi onLogin()


def onLogin(self, event=None):
u = self.txtUsername.get()
p = self.txtPassword.get()
A = Users()
B =[]
A.username = u
A.password = p
B = A.Login()
if(B[0]=='True'):
if(B[1]=='admin'):
messagebox.showinfo("showinfo", "Login diterima, Anda login sebagai
" + B[1])
elif(B[1]=='manager'):
messagebox.showinfo("showinfo", "Login diterima, Anda login sebagai
" + B[1])
elif(B[1]=='operator'):
messagebox.showinfo("showinfo", "Login diterima, Anda login sebagai
" + B[1])
else:
messagebox.showinfo("showinfo", "Maaf, User tidak dikenal")

else:
messagebox.showinfo("showinfo", "Login Tidak Valid")

Tambahkan library class user sebelum perintah: class Dashboard


from Users import *

7. Menyiapkan masing-masing 3 file tampilan Form untuk


user admin, manager, dan operator
dengan nama sebagai berikut:
FrmAdmin1, FrmAdmin2, FrmAdmin3
FrmManager1, FrmManager2, FrmManager3
FrmOperator1, FrmOperator2, FrmOperator3

simpan script berikut dgn nama FrmAdmin1.py

from tkinter import Frame,Label,Entry,Button,YES,BOTH,END,Tk,W

class FrmAdmin1:
def __init__(self, parent, title):
self.parent = parent
self.parent.geometry("400x200")
self.parent.title(title)
self.parent.protocol("WM_DELETE_WINDOW", self.onKeluar)
self.aturKomponen()

def aturKomponen(self):
mainFrame = Frame(self.parent, bd=10)
mainFrame.pack(fill=BOTH, expand=YES)

# pasang Label
Label(mainFrame, text='Admin-1',font=("Arial", 40)).grid(row=0,
column=0,
sticky=W, padx=5, pady=5)

def onKeluar(self, event=None):


# memberikan perintah menutup aplikasi
self.parent.destroy()

if __name__ == '__main__':
root = Tk()
aplikasi = FrmAdmin1(root, "Admin-1")
root.mainloop()

Buatlah untuk file lainnya dan ubahlah kata : FrmAdmin1, Admin-1


8. Tambahkan import utk class FrmAdmin, FrmManager, dan FrmOperator
from FrmAdmin1 import *
from FrmAdmin2 import *
from FrmAdmin3 import *
from FrmManager1 import *
from FrmManager2 import *
from FrmManager3 import *
from FrmOperator1 import *
from FrmOperator2 import *
from FrmOperator3 import *

Tambahkan fungsi new_window, letakkan setelah fungsi __init__()


def new_window( self, number, _class):
new = tk.Toplevel()
new.transient()
new.grab_set()
_class(new, number)

9. Update fungsi onLogin()


def onLogin(self, event=None):
u = self.txtUsername.get()
p = self.txtPassword.get()
A = Users()
B =[]
A.username = u
A.password = p
B = A.Login()

if(B[0]=='True'):
if(B[1]=='admin'):
self.my_w_child.destroy()
self.menuAdmin()
elif(B[1]=='manager'):
self.my_w_child.destroy()
self.menuManager()
elif(B[1]=='operator'):
self.my_w_child.destroy()
self.menuOperator()
else:
messagebox.showinfo("showinfo", "Maaf, User tidak dikenal")

else:
messagebox.showinfo("showinfo", "Login Not Valid")

Tambahkan fungsi onLogout() dibawah fungsi onLogin()


def onLogout(self):
self.aturKomponen()

Tambahkan fungsi berikut setelah fungsi aturKomponen()


def menuAdmin(self):
menubar = Menu(self.parent)
self.parent.config(menu=menubar)

# create a menu
file_menu = Menu(menubar)
admin_menu = Menu(menubar)

# Menu File
file_menu.add_command(
label='Logout', command=self.onLogout
)
file_menu.add_command(
label='Exit', command=root.destroy
)

# Menu Admin
admin_menu.add_command(
label='Menu Admin 1', command= lambda: self.new_window("Menu Admin 1",
FrmAdmin1)
)
admin_menu.add_command(
label='Menu Admin 2', command= lambda: self.new_window("Menu Admin 2",
FrmAdmin2)
)
admin_menu.add_command(
label='Menu Admin 3', command= lambda: self.new_window("Menu Admin 3",
FrmAdmin3)
)

# Tampilkan menu ke layar


menubar.add_cascade(
label="File", menu=file_menu
)

menubar.add_cascade(
label="Menu Admin", menu=admin_menu
)

def menuManager(self):
menubar = Menu(self.parent)
self.parent.config(menu=menubar)

# create a menu
file_menu = Menu(menubar)
manager_menu = Menu(menubar)

# Menu File
file_menu.add_command(
label='Logout', command=self.onLogout
)
file_menu.add_command(
label='Exit', command=root.destroy
)

# Menu Manager
manager_menu.add_command(
label='Menu Manager 1', command= lambda: self.new_window("Menu Manager
1", FrmManager1)
)
manager_menu.add_command(
label='Menu Manager 2', command= lambda: self.new_window("Menu Manager
2", FrmManager2)
)
manager_menu.add_command(
label='Menu Manager 3', command= lambda: self.new_window("Menu Manager
3", FrmManager3)
)

# Tampilkan menu ke layar


menubar.add_cascade(
label="File", menu=file_menu
)
menubar.add_cascade(
label="Menu Manager", menu=manager_menu
)

def menuOperator(self):
menubar = Menu(self.parent)
self.parent.config(menu=menubar)

# create a menu
file_menu = Menu(menubar)
operator_menu = Menu(menubar)

# Menu File

file_menu.add_command(
label='Logout', command=self.onLogout
)
file_menu.add_command(
label='Exit', command=root.destroy
)

# Menu Operator
operator_menu.add_command(
label='Menu Operator 1', command= lambda: self.new_window("Menu
Operator 1", FrmOperator1)
)
operator_menu.add_command(
label='Menu Operator 2', command= lambda: self.new_window("Menu
Operator 2", FrmOperator2)
)
operator_menu.add_command(
label='Menu Operator 3', command= lambda: self.new_window("Menu
Operator 3", FrmOperator3)
)

# Tampilkan menu ke layar


menubar.add_cascade(
label="File", menu=file_menu
)
menubar.add_cascade(
label="Menu Operator", menu=operator_menu
)

You might also like