Perkenalan
Dalam artikel ini, kita akan membahas sebuah aplikasi sederhana yang berfungsi sebagai Buku Tamu. Aplikasi ini dibangun menggunakan PyQt5 untuk antarmuka pengguna dan MySQL untuk penyimpanan data. Pengguna dapat memasukkan informasi seperti nama, nomor telepon, instansi, alamat, tanggal kunjungan, dan keperluan, yang kemudian disimpan ke dalam database.
Konsep Kunci
Aplikasi ini mengintegrasikan beberapa konsep penting:
PyQt5 : Sebuah toolkit untuk membuat antarmuka pengguna grafis (GUI) dengan Python.
MySQL : Sistem manajemen data dasar yang digunakan untuk menyimpan data pengguna.
Validasi Input : Digunakan QRegExpValidator untuk memastikan bahwa input nomor telepon hanya berisi angka.
Pengelolaan Koneksi Database : Menggunakan mysql.connector untuk menghubungkan dan berinteraksi dengan database MySQL.
Struktur Kode
Struktur kode aplikasi ini terdiri dari beberapa bagian utama:
Impor Modul : Mengimpor modul yang diperlukan untuk aplikasi.
KelasGuestBookApp : Kelas utama yang mengatur antarmuka pengguna dan koneksi database.
Metodedb_connection : Mengatur koneksi ke database MySQL.
MetodeinitUI : mengatur elemen-elemen antarmuka pengguna.
MetodesubmitEntry : menggabungkan pengiriman data ke database.
Bagian Eksekusi : memulai aplikasi jika skrip dijalankan sebagai program utama.
Contoh Kode
Berikut adalah penjelasan dari bagian-bagian penting dalam kode:
1. Mengimpor Modul
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QTextEdit, QPushButton, QDateTimeEdit
from PyQt5.QtCore import QRegExp, QDateTime
from PyQt5.QtGui import QRegExpValidator
import mysql.connector
from mysql.connector import Error
Di sini, kita mengimpor modul yang diperlukan untuk aplikasi, termasuk PyQt5 untuk GUI dan mysql.connector untuk koneksi database.
2. KelasGuestBookApp
class GuestBookApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.db_connection()
Kelas ini mewarisi dari QWidgetdan menginisialisasi antarmuka pengguna serta koneksi database saat objek dibuat.
3. Koneksi Database
def db_connection(self):
try:
self.conn = mysql.connector.connect(
host='localhost',
database='bukutamu',
user='andi',
password='sukaslamet',
charset='utf8mb4',
collation='utf8mb4_general_ci'
)
if self.conn.is_connected():
print("Koneksi ke database berhasil.")
self.cursor = self.conn.cursor()
except Error as e:
print(f"Kesalahan saat menghubungkan ke database: {e}")
Metode ini mencoba untuk menghubungkan ke database MySQL dan mencetak pesan jika koneksi berhasil.
4. Antarmuka Pengguna
def initUI(self):
self.setWindowTitle('Buku Tamu')
self.setGeometry(200, 200, 400, 600)
layout = QVBoxLayout()
...
self.submitButton.clicked.connect(self.submitEntry)
...
self.setLayout(layout)
Metode ini mengatur judul jendela, ukuran, dan elemen-elemen antarmuka pengguna seperti label, input, dan tombol.
5. Mengirim Data ke Database
def submitEntry(self):
nama = self.namaInput.text()
NOHP = self.NOHPInput.text()
...
sql = "INSERT INTO tamu (nama, no_hp, instansi, alamat, tanggal_kunjungan, keperluan) VALUES (%s, %s, %s, %s, %s, %s)"
val = (nama, NOHP, Instansi, Alamat, TanggalKunjungan, Keperluan)
self.cursor.execute(sql, val)
self.conn.commit()
Metode ini mengambil data dari input pengguna dan menyimpannya ke dalam tabel tamudi database.
Kesimpulan
Aplikasi Buku Tamu ini merupakan contoh yang baik untuk memahami bagaimana mengintegrasikan PyQt5 dengan MySQL dalam sebuah aplikasi Python. Dengan antarmuka pengguna yang sederhana dan fungsionalitas yang jelas, aplikasi ini dapat dengan mudah dikembangkan lebih lanjut untuk memenuhi kebutuhan yang lebih kompleks. Anda dapat menggunakan kode ini sebagai dasar untuk proyek-proyek lain yang memerlukan interaksi dengan database.
Post a Comment
Post a Comment