Professional Documents
Culture Documents
TP9 Pemograman Visual - Akhmad Suhaimi - 2055201110007
TP9 Pemograman Visual - Akhmad Suhaimi - 2055201110007
PEMOGRAMAN VISUAL
2022
Tugas (perorangan).
1. Berdasarkan UTS yang kalian buat, pilihlah kembangkanlah dari design yang
kalian buat sehingga dilengkapi fitur CRUD.
2. Tampilkan minimal 30 data dalam form tersebut.
3. Pada Fitur Delete data buatlah fitur yang dapat berfungsi delete multiple data.
import tkinter as tk
from tkinter import ttk, messagebox
import mysql.connector
from tkinter import *
def GetValue(event):
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
row_id = listBox.selection()[0]
select = listBox.set(row_id)
e1.insert(0,select['nim'])
e2.insert(0,select['nama'])
e3.insert(0,select['prodi'])
e4.insert(0,select['keterangan'])
def Add():
nim = e1.get()
nama = e2.get()
prodi = e3.get()
keterangan = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",d
atabase="suhai")
mycursor=mysqldb.cursor()
try:
sql = "INSERT INTO surat (nim,nama,prodi,keterangan) VALUES (%s,
%s, %s, %s)"
val = (nim,nama,prodi,keterangan)
mycursor.execute(sql, val)
mysqldb.commit()
messagebox.showinfo("information", "Data Berhasil Ditambahkan...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
messagebox.showinfo("information", "Data Gagal Ditambahkan...")
mysqldb.rollback()
mysqldb.close()
def update():
nim = e1.get()
nama = e2.get()
prodi = e3.get()
keterangan = e4.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",d
atabase="suhai")
mycursor=mysqldb.cursor()
try:
sql = "UPDATE surat SET nama= %s,prodi= %s,keterangan= %s where
nim= %s"
val = (nama,prodi,keterangan,nim)
mycursor.execute(sql, val)
mysqldb.commit()
messagebox.showinfo("information", "Data Berhasil DiUpdate...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def delete():
nim = e1.get()
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",d
atabase="suhai")
mycursor=mysqldb.cursor()
try:
sql = "DELETE from surat where nim = %s"
val = (nim,)
mycursor.execute(sql, val)
mysqldb.commit()
messagebox.showinfo("information", "Data Berhasil Dihapus...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def selected():
mysqldb=mysql.connector.connect(host="localhost",user="root",password="",d
atabase="suhai")
mycursor=mysqldb.cursor()
try:
x = listBox.selection()
val = []
for record in x:
val.append(listBox.item(record, 'values')[0])
for record in x:
listBox.delete(record)
sql = "delete from surat where nim = %s"
mycursor.executemany(sql, [(a,) for a in val])
mysqldb.commit()
messagebox.showinfo("information", "Data Berhasil Dihapus...")
e1.delete(0, END)
e2.delete(0, END)
e3.delete(0, END)
e4.delete(0, END)
e1.focus_set()
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def show():
mysqldb = mysql.connector.connect(host="localhost", user="root",
password="", database="suhai")
mycursor = mysqldb.cursor()
mycursor.execute("SELECT nim,nama,prodi,keterangan FROM surat")
records = mycursor.fetchall()
print(records)
root = Tk()
root.geometry("800x500")
root.title('Data Surat Dispensasi')
root.config(bg='mediumturquoise')
global e1
global e2
global e3
global e4
e1 = Entry(root)
e1.place(x=140, y=10)
e2 = Entry(root)
e2.place(x=140, y=40)
e3 = Entry(root)
e3.place(x=140, y=70)
e4 = Entry(root)
e4.place(x=140, y=100)
show()
listBox.bind('<Double-Button-1>',GetValue)
root.mainloop()
Hasil Run