Topik 08:
Python Tkinter dan SQLite
Makul : Algoritma & Pemrograman
Pengampu : Khamarudin Syarif
Tujuan
• Memahami dasar-dasar pembuatan antarmuka grafis (GUI)
menggunakan Python Tkinter atau PyQt5 Designer.
• Menguasai penggunaan SQLite untuk mengelola data
secara lokal dalam aplikasi Python.
• Membuat aplikasi GUI sederhana yang terintegrasi dengan
database SQLite untuk menyimpan dan menampilkan data.
Python Tkinter
• Tkinter adalah pustaka standar Python untuk
membuat antarmuka pengguna grafis (GUI).
• Tkinter menyediakan widget seperti tombol,
label, entri teks, dan lainnya untuk membangun
aplikasi interaktif.
Konsep Dasar Tkinter
• Window Utama: Dibuat dengan Tk() untuk membuat jendela utama aplikasi.
• Widget: Elemen GUI seperti Label, Button, Entry, Frame, dll.
• Layout Manager:
• pack(): Menyusun widget secara vertikal atau horizontal.
• grid(): Menyusun widget dalam bentuk tabel (baris dan kolom).
• place(): Menempatkan widget pada koordinat tertentu.
• Event Handling: Menghubungkan widget (misalnya, tombol) dengan fungsi
menggunakan parameter command.
Contoh Sederhana
import tkinter as tk
window = [Link]()
[Link]("Aplikasi Tkinter Sederhana")
[Link]("300x200")
label = [Link](window, text="Halo, Selamat Datang!")
[Link]()
button = [Link](window, text="Klik Saya", command=lambda: [Link](text="Tombol diklik!"))
[Link]()
[Link]()
SQLite
• SQLite adalah basis data ringan berbasis file yang
terintegrasi dengan Python melalui modul sqlite3.
• SQLite cocok untuk aplikasi kecil hingga
menengah karena tidak memerlukan server
terpisah.
Konsep Dasar SQLite
• Database dan Tabel: SQLite menyimpan data dalam file .db. Tabel dibuat menggunakan
perintah SQL seperti CREATE TABLE.
• Operasi Dasar:
• Koneksi: Menggunakan [Link]() untuk menghubungkan ke database.
• Cursor: Objek untuk mengeksekusi perintah SQL.
• CRUD:
• Create: Menambahkan data (INSERT).
• Read: Mengambil data (SELECT).
• Update: Memperbarui data (UPDATE).
• Delete: Menghapus data (DELETE).
• Commit dan Rollback: Simpan perubahan dengan commit() atau batalkan dengan
rollback().
Contoh Sederhana
import sqlite3 # Menambahkan data
[Link]("INSERT INTO mahasiswa (nim,
nama, nilai) VALUES (?, ?, ?)", ("12345", "Budi", 85.5))
# Koneksi ke database
[Link]()
conn = [Link]("[Link]")
cursor = [Link]()
# Membaca data
[Link]("SELECT * FROM mahasiswa")
# Membuat tabel
data = [Link]()
[Link]('''CREATE TABLE IF NOT EXISTS
mahasiswa ( print(data) # Output: [('12345', 'Budi', 85.5)]
nim TEXT PRIMARY KEY,
nama TEXT, # Menutup koneksi
nilai REAL)''') [Link]()
Latihan
Latihan 1: GUI Dasar dengan Tkinter
import tkinter as tk ent_nama = [Link](app)
ent_nama.pack()
def tampilkan():
btn_tampil = [Link](app, text="Tampilkan",
[Link](text=f"Halo {ent_nama.get()}!") command=tampilkan)
btn_tampil.pack()
app = [Link]() hasil = [Link](app, text="")
[Link]("Aplikasi GUI Tkinter") [Link]()
[Link]()
lbl_nama = [Link](app, text="Masukkan Nama:")
lbl_nama.pack()
Latihan
Latihan 2: Form Input + SQLite [Link]("CREATE TABLE IF NOT EXISTS siswa (id INTEGER PRIMARY KEY, nama TEXT)")
import tkinter as tk [Link]()
import sqlite3
# GUI
def simpan_data(): root = [Link]()
nama = entry_nama.get() [Link]("Form Input Siswa")
conn = [Link]('db_siswa.db')
c = [Link]() [Link](root, text="Nama:").pack()
[Link]("INSERT INTO siswa (nama) VALUES (?)", (nama,)) entry_nama = [Link](root)
[Link]() entry_nama.pack()
[Link]()
label_status.config(text="Data disimpan!") [Link](root, text="Simpan", command=simpan_data).pack()
label_status = [Link](root, text="")
# Setup DB label_status.pack()
conn = [Link]('db_siswa.db')
c = [Link]() [Link]()
Tugas dan Praktek
Python Tkinter dan SQLite
Tugas 1
Buatlah aplikasi GUI menggunakan Tkinter atau PyQt5
Designer dengan fitur berikut:
• Input data nama, alamat, dan jurusan mahasiswa.
• Tampilkan data tersebut ke dalam tabel (Listbox atau
TableWidget).
• Simpan data ke database SQLite.
• Tambahkan fitur hapus dan update data.
Ketentuan:
• Gunakan struktur folder rapi: /src, /assets, /db
• Desain GUI menarik
• Sertakan dokumentasi singkat penggunaan aplikasi
Tugas 2
Buat aplikasi Manajemen Perpustakaan dengan Tkinter dan
SQLite:
• Buat tabel buku dengan kolom id_buku (primary key),
judul, penulis, dan status (dipinjam/belum dipinjam).
• Buat GUI dengan:
• Form untuk menambah buku baru.
• Tombol untuk menampilkan daftar buku (gunakan
Listbox atau Label).
• Tombol untuk mengubah status peminjaman buku (dari
"belum dipinjam" ke "dipinjam" atau sebaliknya).
• Tombol untuk menghapus buku berdasarkan id_buku.
• Tangani exceptions seperti input tidak valid, duplikasi
id_buku, atau kesalahan database.
• Tampilkan pesan konfirmasi atau error di GUI.
Terima Kasih