Rabu, 12 Desember 2018

Create Read Update Delete data PyMysql dan Tkinter part2

Seperti yang saya janjikan pada postingan sebelumnya saya akan melanjutkan fungsi Read, Update dan Delete database. Ini merupakan lanjutan kode yang telah dibuat selanjutnya.
Pertama kita buat Treeview untuk melihat data yang sudah tersimpan di mysql. Tambahkan kode ini sebelum baris terakhir kode sebelumnya. Kode Treeview:
tree = ttk.Treeview(win,columns=("Nim", "Nama", "Jenis Kelamin", "Tempat Lahir", "Tanggal Lahir", "Alamat", "Pekerjaan"), selectmode="extended", height=200) tree.heading('Nim', text="Nim", anchor=W) tree.heading('Nama', text="Nama", anchor=W) tree.heading('Jenis Kelamin', text="Jenis Kelamin", anchor=W) tree.heading('Tempat Lahir', text="Tempat Lahir", anchor=W) tree.heading('Tanggal Lahir', text="Tanggal Lahir", anchor=W) tree.heading('Alamat', text="Alamat", anchor=W) tree.heading('Pekerjaan', text="Pekerjaan", anchor=W) tree.column('#0', stretch=NO, minwidth=0, width=0) tree.column('#1', stretch=NO, minwidth=0, width=100) tree.column('#2', stretch=NO, minwidth=0, width=130) tree.column('#3', stretch=NO, minwidth=0, width=100) tree.column('#4', stretch=NO, minwidth=0, width=150) tree.column('#5', stretch=NO, minwidth=0, width=100) tree.column('#6', stretch=NO, minwidth=0, width=180) tree.grid(column=0,columnspan=6,row=9)
Lalu buat fungsi read dibawah fungsi database:
def read(): tree.delete(*tree.get_children()) database() cursor.execute("SELECT * FROM `Mahasiswa` ORDER BY `nama_mahasiswa` ASC") fetch = cursor.fetchall() for data in fetch: tree.insert('', 'end', values=(data[0], data[1], data[2], data[3], data[4], data[5], data[6])) cursor.close() conn.close()
Bila sudah maka tambahkan kode read() untuk mengeksekusi fungsi read, taruh sebelum baris terakhir lagi, untuk membaca data setelah applikasi terbuka.Untuk memuat ulang data setelah menambahkannya juga bisa ditambahkan fungsi ini pada baris terakhir. Selanjutnya kita buat fungsi clear() untuk membuat form kosong dari data yang sudah dieksekusi baik telah disuntung, dipilih atau ditambah. Ini merupakan kode fungsi clear:
def clear(): nim.set('') nama.set('') kelamin.set('') tempat.set('') tanggal.set('') alamat.set('') pekerjaan.set('') colNim.configure(state='enabled')
Selanjutnya Kita akan buat fungsi onSelected untuk memilih data dari Treeview ketika diklik dua kali. Ini merupakan fungsi onSelected:
def onSelected(event): global Nim; curItem = tree.focus() contents =(tree.item(curItem)) selecteditem = contents['values'] Nim = selecteditem[0] clear() nim.set(selecteditem[0]) nama.set(selecteditem[1]) kelamin.set(selecteditem[2]) tempat.set(selecteditem[3]) tanggal.set(selecteditem[4]) alamat.set(selecteditem[5]) pekerjaan.set(selecteditem[6]) colNim.configure(state="disabled")
Lalu tambahkan kode ini dibawah tree.grid untuk memberi membuat fungsi onSelected berjalan dengan baik.:
tree.bind('<Double-Button-1>', onSelected)
Untuk mebuat fungsi delete silahkan tambahkan kode ini:
def remove(): if not tree.selection(): sta.config(text="Please select an item first", foreground="red") else: result = tkMessageBox.askquestion('Formulir Mahasiswa', 'Benar ingin menghapusnya?', icon="warning") if result == 'yes': curItem = tree.focus() contents =(tree.item(curItem)) selecteditem = contents['values'] tree.delete(curItem) database() cursor.execute("DELETE FROM `Mahasiswa` WHERE `nim` = %d" % selecteditem[0]) conn.commit() cursor.close() conn.close() sta.config(text="Successfully deleted the data", foreground="black")
Dan fungsi update:
def update(): database() if nim.get() == '' or nim.get() == 0: sta.config(text="Can not entry nim", foreground="red") else: tree.delete(*tree.get_children()) cursor.execute("UPDATE `Mahasiswa` SET `nama_mahasiswa` = (%s), `jenis_kelamin` = (%s), `tempat_lahir` =(%s), `tanggal_lahir` = (%s), `alamat` = (%s), `pekerjaan` = (%s) WHERE `nim` = (%s)", (nama.get(),kelamin.get(),tempat.get(),tanggal.get(),alamat.get(),pekerjaan.get(), int(Nim))) conn.commit() read() clear() sta.config(text="Successfully updated the data", foreground="black")
Bila sudah tinggal buat tombol-tombolnya dengan command yang akan dieksekusi. .: Good Luck :.

Tidak ada komentar:

Posting Komentar