Rabu, 28 November 2018

Memanipulasi Database pada Tkinter Python part2



Ini merupakan lanjutan tutorial yang sebelumnya. Disini kita memodifikasi file yang sudah kita buat. Dengan menambahkan Treeview untuk melihat data yang sudah kita simpan. Tetapi sebelumnya mari kita rapihkan kode yang sudah kita buat agar mudah mengembangkannya.
#import modules
import tkinter as tk
import sqlite3
from tkinter import ttk
win = tk.Tk()
win.title(‘CRUD Tkinter’)
#buat fungsi-fungsi
def database():
global conn, cursor
conn = sqlite3.connect(‘testDB.db’)
cursor = conn.cursor()
cursor.execute(“CREATE TABLE IF NOT EXISTS ‘COMPANY'(ID integer primary key autoincrement not null,NAME text not null, AGE int not null , ADDRESS char(50), SALARY real);”)
def entry():
database()
conn.execute(“INSERT INTO COMPANY ( NAME, AGE, ADDRESS, SALARY) values (?,?,?,? )”, (name.get(),age.get(),address.get(),salary.get(),));
conn.commit()
sta.configure(text = ‘Status :Entry data success!’)
sta.configure(foreground = ‘green’)
clear()
def clear():
name.set(”)
age.set(0)
address.set(”)
salary.set(0)
#buat variabel-variabel
name = tk.StringVar()
age = tk.IntVar()
address = tk.StringVar()
salary = tk.IntVar()
#menginisiasi komponen-komponen
labTittle = ttk.Label(win, font=(16), foreground=’#0000FF’, text=’Add An employee’)
labNama = ttk.Label(win, text=’Name ‘)
labAge = ttk.Label(win, text=’Age ‘)
labAddress = ttk.Label(win, text=’Address’)
labSalary = ttk.Label(win, text=’Salary’)
sta = ttk.Label(win, text=’Status :’)
#colom-colom
colName = ttk.Entry(win, textvariable=name)
colAge = ttk.Entry(win, textvariable=age)
colAddress = ttk.Entry(win, textvariable=address)
colSalary = ttk.Entry(win, textvariable=salary)
#Tombol tombol
bAdd = ttk.Button(win, text=’Add’, command=entry)
bReset = ttk.Button(win, text=’Reset’, command=clear)
#menempatkan komponen-komponen
labTittle.grid(column=1,sticky=tk.W+tk.E)
labNama.grid(column=0,row=1)
labAge.grid(column=0,row=2)
labAddress.grid(column=0,row=3)
labSalary.grid(column=0,row=4)
sta.grid(column=1,row=5,sticky=tk.W+tk.E)
colName.grid(column=1, row=1)
colAge.grid(column=1, row=2)
colAddress.grid(column=1, row=3)
colSalary.grid(column=1, row=4)
bAdd.grid(column=0, row=6,sticky=tk.W+tk.E)
bReset.grid(column=1, row=6,sticky=tk.W+tk.E)
#menjalankan applikasi
win.mainloop()
Selanjutnya mari kita tambahkan Treeview diatas kode win.mainloop().
#menambahkan Treeview
tree = ttk.Treeview(win,columns=(“ID”, “NAME”, “AGE”, “ADDRESS”, “SALARY”), selectmode=”extended”, height=500)
tree.heading(‘ID’, text=”ID”, anchor=W)
tree.heading(‘NAME’, text=”NAME”, anchor=W)
tree.heading(‘AGE’, text=”AGE”, anchor=W)
tree.heading(‘ADDRESS’, text=”ADDRESS”, anchor=W)
tree.heading(‘SALARY’, text=”SALARY”, anchor=W)
tree.column(‘#0’, stretch=NO, minwidth=0, width=0)
tree.column(‘#1’, stretch=NO, minwidth=0, width=40)
tree.column(‘#2’, stretch=NO, minwidth=0, width=120)
tree.column(‘#3’, stretch=NO, minwidth=0, width=40)
tree.column(‘#4’, stretch=NO, minwidth=0, width=120)
tree.grid(column=0,columnspan=3,row=7)
Kemudian kita buat fungsi read untuk membaca datanya.
def read():
tree.delete(*tree.get_children())
database()
cursor.execute(“SELECT * FROM `COMPANY` ORDER BY `NAME` ASC”)
fetch = cursor.fetchall()
for data in fetch:
tree.insert(”, ‘end’, values=(data[0], data[1], data[2], data[3], data[4]))
cursor.close()
conn.close()
sta.config(text=”Successfully read the data from database”, foreground=”black”)
Kemudian eksekusi fungsi read saat program dimulai dengan menambahkan kode read() sebelum win.mainloop(). Lihatlah maka akan muncul data yang sudah kita masukan. Dan masukan kode read() juga pada akhir baris fungsi entry agar langsung merefresh setelah data ditambahkan.
.:GOOD LUCK:.

Tidak ada komentar:

Posting Komentar