Koneksi Database


🎯 1. Pengantar Koneksi Database

https://images.openai.com/static-rsc-4/kK_fhcsTOp6yOaG6MYA89OeSP8FHjyQT-GWXsgwpslSgyMeRX53kl0nTUeYk34vmR_yyEwsvnu7VkhWX8d6g3W2mjSfai8u0Q7XvpFqq1kvZucaVqTQxfDW8YPqR2-UIE7vSUmUhTKlJH2QetxbLwV2cxZzu-8Etc0N2k5I6mfW90BPEacB5LYzk-XbOcTKE?purpose=fullsize
https://images.openai.com/static-rsc-4/5T-GAkdLezaJ5LUuQbpdIS58p2YNdKfeMpxxSDr10Fal6YzIkSG76E7qI0Q8gafTmfdihruE-qI9hnZg0oqd55mMS1mnh6wRQlpAkfl6PtLZWDlqvD9B8BlqYofWNGEQEEiKzLGBpJ_1eGhwdb1FXnPDrXS1uZ0sRs6Sl5J-_ekCWIzd_KaMIuP4yMsyGxsh?purpose=fullsize
https://images.openai.com/static-rsc-4/lg6deshGwVxnYRXRY4-SDcMxyeX3p_id2MmVioqIoZJ64X-fMOsX_kVbPlA36wBaSvrspZ88uMZGWemulSF8dT5c_TjmYT-2lSS-Rtk5xbd-m-TF6MFP8g-pscSkKvkzkhB5DQH62X3Yrh-sFt-1IAfPntPU13KS838zSwq-8FCa4MSmadLNzMUIfmAtYKDR?purpose=fullsize

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

KomponenFungsi
DatabaseTempat penyimpanan
TableStruktur data
RecordBaris data
FieldKolom data

🧠 Narasi

Database seperti lemari arsip:

  • Table = laci
  • Record = dokumen
  • Field = isi dokumen

πŸ—‚οΈ 3. Jenis Database untuk Desktop

https://images.openai.com/static-rsc-4/h4zh7a42Fti3M5nbOm59QXLvg7SkiOjMf4rWksMXhQzbtbYmwIRIqdDcn6QYk2oCAwAZSYFGoGj0Cheb1-dRvzGVYlcj7LVkctuZS-okBXRWSMTGKlOun7okKaTwUPDoOdVhD-FT2a_p26pU6Qvm5ZfecNAVGYdE2HMgWUFQrK2cT2U5EDK79JGxCJ1MIheg?purpose=fullsize
https://images.openai.com/static-rsc-4/ftZXnMQRmDeBNz9Le9v4gwspmb9EyQugmdLyHAmJ9kBPMhn5vdn4N60jphKUAjb4OaqVnf-78fr9XdZRtWazgIThigZbKxwai41R4jGEccugZ4rsLhAJVvwxdEB4Ev8X4JrKZIe-I9isAKrMdbhCe-RalGzAsYknkD01Ne-jESJXdbAgLnAcN5ibV4G9tIpR?purpose=fullsize
https://images.openai.com/static-rsc-4/HU-D3vkiMqmdd0JbfkVb5V7i8-lQmDn75d3SEDrTaX1Pato6p4CyfOUHZAwapxtXIMA2eYQh3GFUHkDW6JHz4INFxmhQObp4tAuOewwG_vfoqNMe6NAnhGmmeNYXhzeZOVZIFOlb_NBPZcqK_JHGPnlOvy34y1vWOiznMxkU1YVa-skjNUAy_v__o3Hp2mpv?purpose=fullsize

6

πŸ“Š Perbandingan

DatabaseTipeKelebihan
MySQLServerMulti-user
SQLiteFileRingan & portable
PostgreSQLServerPowerful

🧠 Narasi

  • SQLite β†’ cocok untuk aplikasi sederhana
  • MySQL/PostgreSQL β†’ untuk sistem besar

πŸ”Œ 4. Konsep Koneksi Database

https://images.openai.com/static-rsc-4/pD25KE9MkbJWi_hCp7pX_kycUkAQ1NGUo8z8Q8fdJ_UvF4-SgR8ArY1Ze5_QUpGVDMf8dM5ALiw2uMO4-G-ZG02o3Y8QcXLwyfahZr-8vItA7uyTbb1a91CgFBAxR60Tk3-hXnAotlIU-oRaRowU1VoBzyc2B8Eh9J7KVNrEgqzSmmZIsu8bpjefAzoA7S4J?purpose=fullsize
https://images.openai.com/static-rsc-4/VTRRFGkKJiAdW3VnwyZ1SdU0qvXwHyrPkrKYFEB2KgMvcPD_dbmWf8zBAexA33QugsAZ5tfqFk2Fx7XwdMYLpdAXWVhlVk1QSXhYP5U3QfAUgh89hnjwC42PNrYViHujrnXG9UxaUY9XejIhz35vB0XoG9mIs-JA3dwqHgd608CdEcyiz0xA4AZ5KGpX8FKf?purpose=fullsize
https://images.openai.com/static-rsc-4/cx6JpkitrR-UDqfjgr6yVNUovM7NKiNq86oJsmKgmthfkOOExWAEd0W7yJFXqZjy6GlPsfs7nG6bIfubOnewM6pi3WRYgLs4r_4lc_MQxI75IHaZUx2A0t8JqUcglbxoTLmp3Xski4gZoaZJ-TavyS4Iva-X8nP9JExSgZ4s2er79q94RSA3j1EyUDEqyatG?purpose=fullsize

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 koneksi
  • cursor() β†’ 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

https://images.openai.com/static-rsc-4/z5OPDtrYRPxOClLPXZtj6ATL7ZmlJaLDuY_R_aiu84grTj2TOJGbtaSNQIuUme1rdO7WrRxIlTuj5kbU7kM6uVI7JWRDq6cTthhpuvZVkrCvjeCYiRzTniF05Rz7b3kLb90pt-6K0DqZRRGP9nHtftCAe7lUEIaOCwfygEEokkvhdqIkIv9eSsyYSKeqYBiq?purpose=fullsize
https://images.openai.com/static-rsc-4/yCaYh7v0N8ClAUhkKQolqUPl1SZTHPFqUmOLjkNzPOak5xO8B4_atfSa2AGkiQRUDOAK5hLTRzD3tyhgXJkHRVqkCFp2jO3QpWU_2hVC2W_izeI0vn0S-SwcOGQ_cS8zFYJUISP4HF-gZuCkbBOyMbuOdskGgDyC8iXeTGl29_MeDLstZEWMWrIUTTe0YU1y?purpose=fullsize
https://images.openai.com/static-rsc-4/wLPyFUgC8akENl0FQ72m1dAZmlXto451wZIfzMwafD7QqelkspqPIM3Zwxqk28uSKymWS1TX3xRK65ntr0gjFpbWj-rG1B_Cyw5Qo3iDPys1PYTAqI5c81CHt1KaFNjiWaBMp--x71jVha0GzqMjK1xS78TLmXs_cm0ETAeVR7m39yIXgj6yJqRI3assNxOv?purpose=fullsize

6

πŸ“– Alur

  1. User input data
  2. GUI kirim ke database
  3. Database simpan
  4. Data ditampilkan kembali

🧠 Narasi

Inilah inti aplikasi desktop modern: GUI + Database


⚠️ 12. Kesalahan Umum

❌ Tabel Kesalahan

KesalahanDampak
Tidak commitData tidak tersimpan
Koneksi tidak ditutupMemory leak
Query salahError
Tidak validasi inputData 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

https://images.openai.com/static-rsc-4/9nO8371d1AErDb92p-5JsI8t0sxwJATfmAKFNO8kTHPPl50hibk3C1rdAHNd_oT2tuUfxm9BEe0HB8slwBDyjZbRPZcoSVcShSxQHhCZ9GoIZLf4JD_VDM2RURjUIW-T77J33jLFc1_9W3-uM0sTe8ReEeW6mdlG0wfWd7ro8oqvc6Q5P5Pn87Yclqnvjn3h?purpose=fullsize
https://images.openai.com/static-rsc-4/X3DCtxSB8jiYJz_Rcp5Kj73oxh6yNNJ3NoIxYZdllsrTOOJloXAym43WNPAyXcT7h0WD_tojvrQI3IwGQrTvEXOjEQAF1MV2UnCLuNCrWYyZDkOhZW8_x5rosScvH6lb2gOG0jqjC4wchtwIVkqND3eMZsh0QLEr_5l8v_1hbPf_DQ-I7NKqXQtueZa_jVZk?purpose=fullsize
https://images.openai.com/static-rsc-4/TA00JzTYNMM9tQBctEgXYHsuPu5LiEDpzEVtB5rKoQyMq6-nlpe7EUJrlySv86LutQ0yiTjvrxtJvlr7OkRSU_cDH62kpWv84xebp285Nvh9tjW9UqzQuMUdr09Y8fT2g9UqJmezDiw97YSMM2IYMx7M0Cf6344JUXVk16QS0H_-ikXvdY2bsJm87yT9hoZi?purpose=fullsize

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

  1. Apa fungsi database?
  2. Apa itu connection?
  3. 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