π― 1. Pengantar Koneksi Database
7
π Deskripsi
Koneksi database adalah proses menghubungkan aplikasi desktop dengan sistem penyimpanan data (database) agar data bisa disimpan, diambil, diperbarui, dan dihapus secara permanen.
π§ Narasi
Jika sebelumnya kita hanya menyimpan data di list (sementara), maka dengan database:
- Data tidak hilang saat aplikasi ditutup
- Bisa digunakan oleh banyak user
- Lebih aman dan terstruktur
π§© 2. Konsep Dasar Database
π Komponen Database
| Komponen | Fungsi |
|---|---|
| Database | Tempat penyimpanan |
| Table | Struktur data |
| Record | Baris data |
| Field | Kolom data |
π§ Narasi
Database seperti lemari arsip:
- Table = laci
- Record = dokumen
- Field = isi dokumen
ποΈ 3. Jenis Database untuk Desktop
6
π Perbandingan
| Database | Tipe | Kelebihan |
|---|---|---|
| MySQL | Server | Multi-user |
| SQLite | File | Ringan & portable |
| PostgreSQL | Server | Powerful |
π§ Narasi
- SQLite β cocok untuk aplikasi sederhana
- MySQL/PostgreSQL β untuk sistem besar
π 4. Konsep Koneksi Database
7
π Deskripsi
Koneksi database dilakukan menggunakan:
- Driver (penghubung)
- Connection string (alamat database)
π Komponen Koneksi
- Host (server)
- Username
- Password
- Nama database
π§ Narasi
Aplikasi harus βloginβ ke database sebelum bisa membaca atau menulis data.
βοΈ 5. Tools & Teknologi Koneksi Database
π Teknologi Umum
- ODBC
- JDBC (Java)
- ADO.NET (C#)
- SQLite3 (Python)
π§ Narasi
Setiap bahasa memiliki cara sendiri untuk koneksi database, tetapi konsepnya sama.
π§ͺ 6. Tutorial Praktikum: Koneksi SQLite (Python)
π― Studi Kasus
Membuat koneksi database lokal
π» Kode Koneksi
import sqlite3
conn = sqlite3.connect("kampus.db")
cursor = conn.cursor()
print("Database berhasil terhubung")
π§ Penjelasan
connect()β membuka koneksicursor()β eksekusi query
π§± 7. Membuat Tabel Database
π» Contoh SQL
cursor.execute("""
CREATE TABLE IF NOT EXISTS mahasiswa (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nama TEXT,
nim TEXT
)
""")
conn.commit()
π§ Narasi
Tabel adalah struktur utama penyimpanan data.
β 8. Insert Data ke Database
π» Contoh
cursor.execute("INSERT INTO mahasiswa (nama, nim) VALUES (?, ?)", ("Andi", "101"))
conn.commit()
π§ Narasi
Gunakan parameter ? untuk keamanan (hindari SQL Injection).
π 9. Menampilkan Data (Read)
π» Contoh
cursor.execute("SELECT * FROM mahasiswa")
data = cursor.fetchall()
for row in data:
print(row)
π§ Narasi
Data diambil dari database lalu ditampilkan ke GUI.
βοΈ 10. Update & Delete Data
π» Update
cursor.execute("UPDATE mahasiswa SET nama=? WHERE id=?", ("Budi", 1))
conn.commit()
π» Delete
cursor.execute("DELETE FROM mahasiswa WHERE id=?", (1,))
conn.commit()
π§ Narasi
Operasi ini melengkapi CRUD dalam database.
π₯οΈ 11. Integrasi Database dengan GUI
6
π Alur
- User input data
- GUI kirim ke database
- Database simpan
- Data ditampilkan kembali
π§ Narasi
Inilah inti aplikasi desktop modern: GUI + Database
β οΈ 12. Kesalahan Umum
β Tabel Kesalahan
| Kesalahan | Dampak |
|---|---|
| Tidak commit | Data tidak tersimpan |
| Koneksi tidak ditutup | Memory leak |
| Query salah | Error |
| Tidak validasi input | Data rusak |
π§ Narasi
Kesalahan kecil bisa menyebabkan data hilang atau aplikasi crash.
π― 13. Best Practice
β Tips
- Gunakan parameter query
- Tutup koneksi setelah selesai
- Pisahkan database dan GUI
- Gunakan error handling
- Backup database
ποΈ 14. Studi Kasus Nyata
8
π Contoh
- Sistem kasir
- Sistem akademik
- Aplikasi inventaris
π§ Narasi
Semua aplikasi tersebut menggunakan database untuk menyimpan data secara permanen.
π 15. Rangkuman
π Inti Materi
- Database = penyimpanan permanen
- Koneksi diperlukan untuk akses data
- Menggunakan CRUD
- Bisa menggunakan SQLite/MySQL
- Terintegrasi dengan GUI
π 16. Latihan & Tugas
βοΈ Latihan
- Apa fungsi database?
- Apa itu connection?
- Sebutkan 2 jenis database!
π» Tugas Praktikum
Buat aplikasi:
- Input: Nama, NIM
- Simpan ke database SQLite
- Tampilkan data ke GUI
π Penutup
Materi ini adalah dasar menuju:
- Aplikasi profesional
- Sistem informasi
- Software enterprise