π― 1. Pengantar Query & Integrasi Data
7
π Deskripsi
- Query adalah perintah untuk mengambil, menambah, mengubah, atau menghapus data dari database.
- Integrasi data adalah proses menghubungkan hasil query dengan aplikasi (GUI) agar data bisa ditampilkan dan digunakan.
π§ Narasi
Jika database adalah βgudang dataβ, maka query adalah βcara mengambil barang dari gudangβ, dan integrasi adalah βmenampilkan barang tersebut ke penggunaβ.
π§© 2. Konsep Dasar Query (SQL)
π Perintah Dasar SQL
| Perintah | Fungsi |
|---|---|
| SELECT | Mengambil data |
| INSERT | Menambah data |
| UPDATE | Mengubah data |
| DELETE | Menghapus data |
π§ Narasi
SQL adalah bahasa standar untuk berkomunikasi dengan database. Hampir semua database menggunakan SQL.
π 3. Query SELECT (Mengambil Data)
7
π» Contoh Query
SELECT * FROM mahasiswa;
π Variasi Query
SELECT nama FROM mahasiswa;
SELECT * FROM mahasiswa WHERE nim = '101';
π§ Narasi
SELECT digunakan untuk membaca data. Dengan kondisi (WHERE), kita bisa mengambil data tertentu saja.
β 4. Query INSERT (Menambah Data)
π» Contoh
INSERT INTO mahasiswa (nama, nim) VALUES ('Andi', '101');
π§ Narasi
Digunakan saat user menambahkan data melalui form.
βοΈ 5. Query UPDATE (Mengubah Data)
π» Contoh
UPDATE mahasiswa SET nama = 'Budi' WHERE id = 1;
π§ Narasi
Digunakan saat user mengedit data.
β 6. Query DELETE (Menghapus Data)
π» Contoh
DELETE FROM mahasiswa WHERE id = 1;
π§ Narasi
Digunakan untuk menghapus data yang tidak diperlukan.
π 7. Integrasi Query dengan Aplikasi Desktop
9
π Alur Integrasi
- User input di GUI
- Aplikasi menjalankan query
- Database memproses
- Data dikembalikan ke aplikasi
- Ditampilkan di GUI
π§ Narasi
Integrasi membuat aplikasi menjadi βhidupβ karena data bisa berubah secara real-time.
π§ͺ 8. Tutorial Praktikum: Query + GUI (Python SQLite)
π― Studi Kasus
Menampilkan data mahasiswa dari database ke GUI
π» Kode Program
import tkinter as tk
import sqlite3
conn = sqlite3.connect("kampus.db")
cursor = conn.cursor()
def tampilkan():
listbox.delete(0, tk.END)
cursor.execute("SELECT nama, nim FROM mahasiswa")
for row in cursor.fetchall():
listbox.insert(tk.END, row[0] + " - " + row[1])
app = tk.Tk()
tk.Button(app, text="Tampilkan Data", command=tampilkan).pack()
listbox = tk.Listbox(app)
listbox.pack()
app.mainloop()
π§ Penjelasan
SELECTβ ambil datafetchall()β ambil semua hasillistboxβ tampilkan data
π 9. Data Binding (Menghubungkan Data ke UI)
7
π Deskripsi
Data binding adalah teknik menghubungkan data dari database ke komponen GUI.
π§ Narasi
Tanpa binding, data harus ditulis manual ke UI. Dengan binding:
- Lebih otomatis
- Lebih cepat
- Lebih rapi
π 10. Query Lanjutan
π Contoh
SELECT * FROM mahasiswa ORDER BY nama ASC;
SELECT * FROM mahasiswa LIMIT 5;
SELECT * FROM mahasiswa WHERE nama LIKE '%an%';
π§ Narasi
Query lanjutan membantu:
- Sorting data
- Membatasi data
- Mencari data
β οΈ 11. Keamanan Query (SQL Injection)
β Contoh Salah
query = "SELECT * FROM mahasiswa WHERE nama = '" + nama + "'"
β Solusi
cursor.execute("SELECT * FROM mahasiswa WHERE nama=?", (nama,))
π§ Narasi
SQL Injection bisa membahayakan database. Gunakan parameterized query.
β οΈ 12. Kesalahan Umum
β Tabel Kesalahan
| Kesalahan | Dampak |
|---|---|
| Query salah | Error |
| Tidak fetch data | Tidak tampil |
| Tidak refresh UI | Data tidak update |
| Tidak validasi input | Data salah |
π§ Narasi
Kesalahan kecil bisa membuat aplikasi tidak menampilkan data.
π― 13. Best Practice
β Tips
- Gunakan query yang efisien
- Gunakan parameter query
- Pisahkan query dari UI
- Gunakan fungsi khusus database
- Gunakan indexing (lanjutan)
ποΈ 14. Studi Kasus Nyata
7
π Contoh
- Dashboard laporan
- Sistem pencarian data
- Aplikasi kasir
π§ Narasi
Query digunakan untuk:
- Laporan
- Analisis data
- Pencarian cepat
π 15. Rangkuman
π Inti Materi
- Query = perintah database
- Integrasi = hubungkan database ke GUI
- Gunakan SELECT, INSERT, UPDATE, DELETE
- Gunakan parameter query untuk keamanan
- Data ditampilkan ke UI
π 16. Latihan & Tugas
βοΈ Latihan
- Apa itu query?
- Sebutkan 4 perintah SQL!
- Apa itu data binding?
π» Tugas Praktikum
Buat aplikasi:
- Tampilkan data dari database
- Tambah data
- Edit data
- Hapus data
π Penutup
Materi ini adalah jantung dari aplikasi:
- Semua sistem menggunakan query
- Integrasi membuat aplikasi dinamis
- Fondasi untuk sistem profesional