Skip to content

Makipak/Tugas-UAS-Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“¦ Sistem Penjualan Part Komputer

Aplikasi manajemen penjualan part komputer berbasis Python dengan GUI PyQt5 dan database MySQL. Sistem ini memudahkan Anda untuk mengelola data part komputer termasuk nama, kategori, harga, dan stok dengan interface yang user-friendly.


πŸ“Έ Screenshot Sistem

Main Window - Tampilan Utama

Main Window

Dialog Tambah Part

Dialog Tambah

Dialog Edit Part

Dialog Edit

Konfirmasi Hapus

Konfirmasi Hapus


✨ Fitur Utama

  • βœ… GUI Modern dengan PyQt5 - Interface yang user-friendly dan responsif
  • βœ… Tabel Data Part - Menampilkan semua part dalam format tabel yang rapi
  • βœ… Tambah Part Baru - Dialog form untuk menambah part dengan berbagai kategori
  • βœ… Edit Part - Pilih row dan edit data part dengan mudah
  • βœ… Hapus Part - Hapus part dengan konfirmasi sebelumnya
  • βœ… Database MySQL - Penyimpanan data yang aman dan terstruktur
  • βœ… Input Validation - Validasi input untuk memastikan data valid
  • βœ… Kategori Dropdown - 13 kategori part komputer yang sudah tersedia

πŸ› οΈ Teknologi yang Digunakan

Teknologi Versi Deskripsi
Python 3.8+ Bahasa pemrograman utama
PyQt5 5.15+ Framework GUI modern
MySQL 8.0+ Database management system
mysql-connector-python - Library untuk koneksi MySQL

πŸ“‹ Prasyarat

Sebelum menjalankan aplikasi, pastikan Anda sudah memiliki:

  1. Python 3.8+ - Download Python
  2. MySQL Server - Download MySQL
  3. pip - Package manager Python (biasanya sudah tersedia)

πŸ“¦ Instalasi

1. Clone atau Download Project

# Jika menggunakan git
git clone <repository-url>
cd UAS

# Atau extract folder jika sudah di-download
cd /path/to/UAS

2. Buat Virtual Environment (Opsional tapi Disarankan)

# Windows
python -m venv venv
venv\Scripts\activate

# Linux/Mac
python3 -m venv venv
source venv/bin/activate

3. Install Dependencies

pip install mysql-connector-python PyQt5

4. Setup Database MySQL

Buka MySQL Command Line atau MySQL Workbench dan jalankan query berikut:

-- Buat database
CREATE DATABASE penjualan_pc;

-- Gunakan database
USE penjualan_pc;

-- Buat tabel part
CREATE TABLE part (
    id_part INT AUTO_INCREMENT PRIMARY KEY,
    nama_part VARCHAR(100) NOT NULL,
    kategori VARCHAR(50) NOT NULL,
    harga INT NOT NULL,
    stok INT NOT NULL
);

-- Insert data sample (opsional)
INSERT INTO part (nama_part, kategori, harga, stok) VALUES
('Intel Core i7', 'Processor', 3500000, 10),
('RTX 3080', 'Graphics Card', 8000000, 5),
('RAM 16GB', 'Memory', 800000, 20),
('SSD 1TB', 'Storage', 1200000, 15);

5. Konfigurasi Database

Edit file database/database.py dan sesuaikan konfigurasi:

def get_db_connection():  
    return mysql.connector.connect(
        host="127.0.0.1",          # Alamat server MySQL
        user="root",                # Username MySQL
        password="YOUR_PASSWORD",   # Password MySQL
        database="penjualan_pc",    # Nama database
        auth_plugin="mysql_native_password"
    )

πŸš€ Cara Penggunaan

Menjalankan Aplikasi

python main.py

Aplikasi akan langsung membuka GUI window dengan tabel part dan tombol-tombol fitur.


πŸ“– Panduan Penggunaan Fitur GUI

1️⃣ Tambah Part (Tombol βž• Tambah)

Langkah-langkah:

  1. Klik tombol βž• Tambah Part
  2. Dialog akan terbuka, isi form:
    • Nama Part: Masukkan nama part (mis: RTX 4080)
    • Kategori: Pilih kategori dari dropdown (Processor, Graphics Card, Memory, dll)
    • Harga: Masukkan harga part
    • Stok: Masukkan jumlah stok
  3. Klik Simpan untuk menyimpan atau Batal untuk membatalkan

Kategori yang Tersedia:

  • Processor
  • Graphics Card
  • Memory (RAM)
  • Storage (SSD/HDD)
  • Motherboard
  • Power Supply
  • Cooling
  • Case
  • Monitor
  • Keyboard
  • Mouse
  • Headset
  • Other

2️⃣ Lihat Semua Part

Data part akan langsung ditampilkan di tabel utama dengan informasi:

  • ID - ID unik part
  • Nama Part - Nama part
  • Kategori - Kategori part
  • Harga - Harga dalam format Rp (contoh: Rp 3.500.000)
  • Stok - Jumlah stok tersedia

3️⃣ Edit Part (Tombol ✏️ Edit)

Langkah-langkah:

  1. Pilih/klik row part yang ingin diubah di tabel
  2. Klik tombol ✏️ Edit Part
  3. Dialog edit akan terbuka dengan data part yang sudah terisi
  4. Ubah data sesuai kebutuhan
  5. Klik Simpan untuk menyimpan perubahan

4️⃣ Hapus Part (Tombol πŸ—‘οΈ Hapus)

Langkah-langkah:

  1. Pilih/klik row part yang ingin dihapus di tabel
  2. Klik tombol πŸ—‘οΈ Hapus Part
  3. Konfirmasi akan muncul, klik Yes untuk menghapus atau No untuk membatalkan
  4. Part akan dihapus dari database

5️⃣ Refresh Data (Tombol πŸ”„ Refresh)

Klik tombol πŸ”„ Refresh untuk merefresh/memperbarui data dari database. Berguna jika ada perubahan dari sumber lain.


6️⃣ Keluar (Tombol ❌ Keluar)

Klik tombol ❌ Keluar untuk menutup aplikasi.


πŸ“ Catatan Penggunaan

  • βœ… Nama Part tidak boleh kosong - Validasi akan mengingatkan jika nama kosong
  • βœ… Harga dan Stok numeric - Gunakan field spinner untuk angka
  • βœ… Konfirmasi sebelum hapus - Sistem akan meminta konfirmasi sebelum menghapus data
  • βœ… Sorting kolom - Anda bisa klik header tabel untuk sort (jika diaktifkan)
  • βœ… Auto-refresh - Setelah tambah/edit/hapus, tabel akan otomatis refresh

πŸ“ Struktur Project

UAS/
β”‚
β”œβ”€β”€ main.py                    # File utama aplikasi
β”‚
β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── part_controller.py    # Controller untuk menangani input user
β”‚
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── part.py               # Model data Part
β”‚
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── part_service.py       # Service untuk business logic
β”‚
β”œβ”€β”€ database/
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── database.py           # Konfigurasi koneksi database
β”‚
β”œβ”€β”€ .gitignore               # File untuk mengabaikan file tertentu di git
└── README.md                # File dokumentasi ini

πŸ”§ Troubleshooting

Error: "No module named 'mysql'"

Solusi:

pip install mysql-connector-python

Error: "Connection refused"

Solusi:

  • Pastikan MySQL Server sudah berjalan
  • Cek konfigurasi host, user, dan password di database/database.py
  • Pada Linux: sudo service mysql start
  • Pada Windows: Buka Services dan start MySQL

Error: "Unknown database"

Solusi:

  • Pastikan database penjualan_pc sudah dibuat
  • Jalankan query SQL seperti yang dijelaskan di bagian Instalasi

Error: "Access denied for user"

Solusi:

  • Periksa username dan password MySQL di database/database.py
  • Pastikan user MySQL memiliki privilege yang sesuai

Aplikasi tidak membuka window

Solusi:

  • Pastikan Anda menjalankan dari terminal, bukan double-click
  • Pastikan DISPLAY variable sudah set (Linux/Mac)
  • Coba dengan: python main.py

🎨 Fitur GUI yang Tersedia

Fitur Deskripsi
Tabel Data Menampilkan semua part dalam format tabel yang rapi
Form Input Dialog modern untuk input data
Dropdown Kategori 13 kategori part yang sudah tersedia
Validasi Input Memvalidasi input sebelum menyimpan
Konfirmasi Hapus Dialog konfirmasi sebelum menghapus data
Format Harga Harga ditampilkan dengan format Rp
Error Handling Pesan error yang jelas dan informatif
Auto Refresh Tabel otomatis refresh setelah operasi

πŸ‘¨β€πŸ’» Pengembang

Aspek Detail
Dibuat Oleh Muhamad Farhan Qolbi
Tanggal Desember 2025
Status Active βœ…
Versi 2.0 (GUI dengan PyQt5)

πŸ“ Lisensi

Proyek ini bebas digunakan untuk keperluan pendidikan dan komersial.


πŸ’‘ Tips & Saran

  1. Selalu backup database sebelum melakukan operasi delete
  2. Gunakan virtual environment untuk menghindari konflik package
  3. Pastikan MySQL running sebelum membuka aplikasi
  4. Gunakan git untuk version control dan collaboration
  5. Double-check data sebelum hapus karena tidak bisa di-undo

❓ FAQ

T: Bisakah saya menambah kategori part baru?
J: Ya, edit file gui/part_gui.py dan tambahkan kategori di list kombobox.

T: Bisakah saya menampilkan lebih banyak kolom di tabel?
J: Ya, edit struktur tabel di gui/part_gui.py dan tambahkan kolom di database.

T: Bagaimana cara backup database?
J: Gunakan mysqldump atau export dari MySQL Workbench.

T: Apakah aplikasi ini support multi-user?
J: Ya, asalkan semua user terkoneksi ke database MySQL yang sama.

T: Bisakah saya menjalankan aplikasi ini di web?
J: Saat ini CLI/GUI only. Untuk web, Anda bisa membuat REST API dengan Flask/Django.


πŸ“§ Kontak & Support

Jika ada pertanyaan atau saran, silakan hubungi melalui:


Selamat menggunakan Sistem Penjualan Part Komputer! πŸš€

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages