🚀 Python ⭐ FEATURED

Membuat Aplikasi Komunikasi dengan Database Menggunakan Python 3

Administrator

Senior Tech Writer

15 menit baca
08 Oct, 2025
3 views
Python

🧠 Panduan Lengkap: Membuat Aplikasi Komunikasi dengan Database Menggunakan Python 3

1. Tujuan

Membangun aplikasi Python yang dapat:

  • Terhubung ke database (MySQL atau SQLite)
  • Melakukan CRUD (Create, Read, Update, Delete)
  • Dapat dikembangkan ke versi GUI (Tkinter) dan Web (Flask)

2. Persiapan Awal

  1. Install Python versi 3:
    python --version
  2. Install library:
    pip install mysql-connector-python
  3. Buat struktur folder:
python_db_app/
├── config.py
├── database.py
├── app.py
└── requirements.txt

3. File config.py

DB_CONFIG = {
    'db_path': 'mydatabase.db'
}

4. File database.py (versi SQLite)

import sqlite3
from config import DB_CONFIG

def connect_db():
    return sqlite3.connect(DB_CONFIG['db_path'])

def create_table():
    conn = connect_db()
    cursor = conn.cursor()
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            name TEXT,
            email TEXT
        )
    """)
    conn.commit()
    conn.close()

def insert_user(name, email):
    conn = connect_db()
    cursor = conn.cursor()
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", (name, email))
    conn.commit()
    conn.close()

def fetch_users():
    conn = connect_db()
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    result = cursor.fetchall()
    conn.close()
    return result

5. File app.py (program CLI)

from database import create_table, insert_user, fetch_users

def main_menu():
    while True:
        print("\n=== MENU UTAMA ===")
        print("1. Buat Tabel")
        print("2. Tambah User")
        print("3. Lihat Semua User")
        print("4. Keluar")
        pilihan = input("Pilih menu: ")

        if pilihan == '1':
            create_table()
            print("Tabel berhasil dibuat.")
        elif pilihan == '2':
            nama = input("Masukkan nama: ")
            email = input("Masukkan email: ")
            insert_user(nama, email)
            print("Data user berhasil disimpan.")
        elif pilihan == '3':
            users = fetch_users()
            print("\n=== DATA USER ===")
            for row in users:
                print(row)
        elif pilihan == '4':
            print("Keluar dari aplikasi.")
            break
        else:
            print("Pilihan tidak valid!")

if __name__ == "__main__":
    main_menu()

6. Menjalankan Aplikasi

python app.py

🪟 Versi GUI (Tkinter)

1. Instalasi

pip install tk

3. File gui_app.py

import tkinter as tk
from tkinter import ttk, messagebox
from database import create_table, insert_user, fetch_users

class UserApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Aplikasi Database Python - Tkinter")
        self.root.geometry("500x400")

        frame_input = tk.Frame(self.root, padx=10, pady=10)
        frame_input.pack(fill=tk.X)

        tk.Label(frame_input, text="Nama:").grid(row=0, column=0, sticky=tk.W)
        self.name_entry = tk.Entry(frame_input, width=40)
        self.name_entry.grid(row=0, column=1)

        tk.Label(frame_input, text="Email:").grid(row=1, column=0, sticky=tk.W)
        self.email_entry = tk.Entry(frame_input, width=40)
        self.email_entry.grid(row=1, column=1)

        tk.Button(frame_input, text="Simpan", command=self.save_user).grid(row=2, column=1, pady=5, sticky=tk.E)

        frame_table = tk.Frame(self.root)
        frame_table.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)

        self.tree = ttk.Treeview(frame_table, columns=("ID", "Nama", "Email"), show="headings")
        self.tree.heading("ID", text="ID")
        self.tree.heading("Nama", text="Nama")
        self.tree.heading("Email", text="Email")
        self.tree.pack(fill=tk.BOTH, expand=True)

        self.load_data()

    def save_user(self):
        name = self.name_entry.get()
        email = self.email_entry.get()
        if name and email:
            insert_user(name, email)
            messagebox.showinfo("Berhasil", "Data user berhasil disimpan!")
            self.load_data()
            self.name_entry.delete(0, tk.END)
            self.email_entry.delete(0, tk.END)
        else:
            messagebox.showwarning("Peringatan", "Nama dan Email harus diisi!")

    def load_data(self):
        for row in self.tree.get_children():
            self.tree.delete(row)
        for row in fetch_users():
            self.tree.insert("", tk.END, values=row)

if __name__ == "__main__":
    create_table()
    root = tk.Tk()
    app = UserApp(root)
    root.mainloop()

4. Menjalankan GUI

python gui_app.py

Tags:

Python

Administrator

Senior Tech Writer. Spesialisasi web development.

150+ artikel diterbitkan

Diskusi & Komentar

📧 Newsletter

Dapatkan artikel terbaru tentang AI dan teknologi langsung di inbox Anda