Cepat, Berkualitas, dan Terjangkau Indonesia

SOLUSI CETAK BERKUALITAS
TEKNOLOGI TERKINI

Praktikum 1
Materi Penjelasan GUI Python

Materi Praktikum: Penjelasan Program GUI Python

Studi Kasus: Manajemen Data Siswa Menggunakan Python dan Struktur Data Dasar

Materi ini menjelaskan kode program Python berbasis GUI (Tkinter) yang menerapkan struktur data list dan dictionary.

1. Import Library

import tkinter as tk
from tkinter import messagebox
  • tkinter → library bawaan Python untuk membuat GUI (Graphical User Interface)
  • messagebox → digunakan untuk menampilkan popup peringatan atau notifikasi

2. Struktur Data Utama

data_siswa = []
  • data_siswa adalah sebuah list
  • Setiap elemen di dalam list berupa dictionary
  • Konsep ini disebut list of dictionary

Contoh isi data_siswa:

[
  {"nama": "Andi", "nim": "123", "umur": 20, "nilai": 85.5},
  {"nama": "Budi", "nim": "124", "umur": 21, "nilai": 90.0}
]

3. Fungsi tambah_data()

Fungsi ini digunakan untuk mengambil input dari GUI, melakukan validasi data, dan menyimpannya ke dalam struktur data.

a. Mengambil Input

nama = entry_nama.get()
nim = entry_nim.get()
umur = entry_umur.get()
nilai = entry_nilai.get()
  • Method .get() digunakan untuk mengambil nilai dari widget Entry
  • Semua data input awalnya bertipe string

b. Validasi Input

if nama == "" or nim == "" or umur == "" or nilai == "":
    messagebox.showwarning("Peringatan", "Semua data harus diisi!")
    return

Validasi ini bertujuan untuk memastikan seluruh field input telah diisi sebelum data diproses.

c. Membuat Dictionary Siswa

siswa = {
    "nama": nama,
    "nim": nim,
    "umur": int(umur),
    "nilai": float(nilai)
}
  • Data siswa disimpan dalam bentuk dictionary
  • umur dikonversi menjadi int
  • nilai dikonversi menjadi float

d. Menyimpan ke List

data_siswa.append(siswa)

Dictionary siswa dimasukkan ke dalam list data_siswa dengan kompleksitas waktu O(1).

e. Update Tampilan

tampilkan_data()
bersihkan_entry()

Data siswa ditampilkan ulang dan field input dibersihkan untuk pengisian berikutnya.

4. Fungsi tampilkan_data()

Fungsi ini menampilkan seluruh data siswa serta menghitung jumlah dan rata-rata nilai.

a. Membersihkan Output

text_output.delete("1.0", tk.END)

b. Perulangan Data

for i, siswa in enumerate(data_siswa, start=1):
  • enumerate() digunakan untuk memberi nomor urut
  • Mengakses setiap dictionary dalam list

c. Menampilkan Data

text_output.insert(
    tk.END,
    f"{i}. {siswa['nama']} | {siswa['nim']} | Umur: {siswa['umur']} | Nilai: {siswa['nilai']}\n"
)

d. Menghitung Rata-rata

jumlah = len(data_siswa)
rata_rata = total_nilai / jumlah if jumlah > 0 else 0
  • Menggunakan len() untuk menghitung jumlah siswa
  • Menghindari kesalahan division by zero
  • Kompleksitas algoritma: O(n)

e. Menampilkan Informasi Ringkasan

label_info.config(
    text=f"Jumlah Siswa: {jumlah} | Rata-rata Nilai: {rata_rata:.2f}"
)

5. Fungsi bersihkan_entry()

Fungsi ini digunakan untuk menghapus isi seluruh field input guna meningkatkan kenyamanan pengguna.

6. Pembuatan Window Utama

root = tk.Tk()
root.title("Manajemen Data Siswa")
root.geometry("500x500")

7. Komponen Input (Label & Entry)

tk.Label(root, text="Nama").pack()
entry_nama = tk.Entry(root)
entry_nama.pack()
  • Label → teks keterangan
  • Entry → input data
  • .pack() → layout manager sederhana

8. Tombol Aksi

tk.Button(root, text="Tambah Data", command=tambah_data).pack(pady=10)

Tombol ini menghubungkan event GUI dengan fungsi algoritma tambah_data().

9. Komponen Output

text_output = tk.Text(root, height=10)
label_info = tk.Label(root, text="Jumlah Siswa: 0 | Rata-rata Nilai: 0")

10. Menjalankan Aplikasi

root.mainloop()

Menjalankan event loop sehingga aplikasi GUI aktif hingga ditutup.

Kesimpulan:

Program ini menerapkan konsep struktur data dasar, algoritma sederhana, serta pemrograman berbasis GUI yang sesuai untuk praktikum tingkat S1.