0% found this document useful (0 votes)
5 views10 pages

Pertemuan 8 Graphical User Interface( GUI)

The document outlines the creation of a data application for student grades using Excel as a database. It includes code snippets for a GUI built with Tkinter, allowing users to input, save, display, and search for student data. The application stores data in a CSV file named 'nilai_kuliah.csv'.

Uploaded by

Topan Diki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views10 pages

Pertemuan 8 Graphical User Interface( GUI)

The document outlines the creation of a data application for student grades using Excel as a database. It includes code snippets for a GUI built with Tkinter, allowing users to input, save, display, and search for student data. The application stores data in a CSV file named 'nilai_kuliah.csv'.

Uploaded by

Topan Diki
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Membuat Aplikasi data Nilai

dengan Database Excel


Pertemuan 8
import tkinter as tk df.to_csv(FILE_NAME,
index=False)
from tkinter import ttk, messagebox
import pandas as pd def simpan_data(nim, nama,
import os matkul, nilai):
global df
# Nama file CSV df = pd.concat([df,
FILE_NAME = "nilai_kuliah.csv" pd.DataFrame([{
"NIM": nim,
# Cek dan load data awal "Nama": nama,
if os.path.exists(FILE_NAME): "Mata Kuliah": matkul,
df = pd.read_csv(FILE_NAME) "Nilai": nilai
else: }])], ignore_index=True)
df = df.to_csv(FILE_NAME,
pd.DataFrame(columns=["NIM", index=False)
"Nama", "Mata Kuliah",
"Nilai"])
def tampilkan_data(): nilai =
float(entry_nilai.get())
for row in
tree.get_children(): except ValueError:
tree.delete(row)
messagebox.showerror("Error",
for _, row in "Nilai harus berupa angka!")
df.iterrows():
return
tree.insert("", "end",
values=list(row))
if not (nim and nama and
matkul):
def tambah_data():
nim = entry_nim.get() messagebox.showerror("Error",
nama = entry_nama.get() "Semua field harus diisi!")
matkul = entry_matkul.get() return
try:
if not (nim and nama and
matkul): def cari_data():
keyword = entry_cari.get()
messagebox.showerror("Error",
"Semua field harus diisi!") hasil =
df[(df["Nama"].str.contains(ke
return yword, case=False)) |
(df["NIM"].str.contains(keywor
d))]
simpan_data(nim, nama,
matkul, nilai) for row in
tree.get_children():
tampilkan_data()
tree.delete(row)
entry_nim.delete(0, tk.END)
for _, row in
entry_nama.delete(0, tk.END) hasil.iterrows():
entry_matkul.delete(0, tree.insert("", "end",
tk.END) values=list(row))
entry_nilai.delete(0, tk.END)
# GUI column=0)
root = tk.Tk() tk.Label(frame_input,
text="Nilai").grid(row=3,
root.title("Data Nilai Kuliah") column=0)
frame_input = tk.Frame(root) entry_nim =
frame_input.pack(pady=10) tk.Entry(frame_input)
entry_nama =
tk.Label(frame_input, tk.Entry(frame_input)
text="NIM").grid(row=0, entry_matkul =
column=0) tk.Entry(frame_input)
tk.Label(frame_input, entry_nilai =
text="Nama").grid(row=1, tk.Entry(frame_input)
column=0)
tk.Label(frame_input,
text="Mata
Kuliah").grid(row=2,
entry_nim.grid(row=0, column=1)
tk.Label(frame_cari,
entry_nama.grid(row=1, text="Cari
column=1) Nama/NIM:").pack(side=tk.LEFT
entry_matkul.grid(row=2, )
column=1) entry_cari =
entry_nilai.grid(row=3, tk.Entry(frame_cari)
column=1) entry_cari.pack(side=tk.LEFT)
tk.Button(frame_cari,
tk.Button(frame_input, text="Cari",
text="Tambah Data", command=cari_data).pack(side=
command=tambah_data).grid(row tk.LEFT)
=4, column=0, columnspan=2,
pady=5)

frame_cari = tk.Frame(root)
frame_cari.pack(pady=5)
# Tabel
tree = ttk.Treeview(root, columns=("NIM", "Nama", "Mata Kuliah",
"Nilai"), show="headings")
tree.heading("NIM", text="NIM")
tree.heading("Nama", text="Nama")
tree.heading("Mata Kuliah", text="Mata Kuliah")
tree.heading("Nilai", text="Nilai")
tree.pack(pady=10)

tampilkan_data()

root.mainloop()
Data disimpan di file Excel dengan nama
NILAI_KULIAH

You might also like