Sebuah aplikasi web sederhana namun kuat yang dibangun dengan Python dan Flask untuk membuat berbagai jenis barcode dan QR code secara instan.
"Aku tidak berilmu; yang berilmu hanyalah DIA. Jika tampak ilmu dariku, itu hanyalah pantulan dari Cahaya-Nya."
Aplikasi ini dilengkapi dengan berbagai fitur untuk memenuhi kebutuhan pembuatan barcode Anda:
- Beragam Jenis Barcode: Mendukung barcode linear populer seperti Code128, EAN-13, dan UPC-A.
- Generator QR Code: Membuat QR Code dari teks atau URL apa pun.
- Kustomisasi Tampilan: Ubah warna utama dan latar belakang QR Code sesuai kebutuhan branding.
- Format Download Fleksibel: Unduh barcode dalam format PNG (gambar) atau SVG (vektor berkualitas tinggi).
- Antarmuka Responsif: Tampilan yang bersih dan modern, dapat diakses dengan baik di desktop maupun perangkat mobile.
- Validasi Input: Validasi otomatis untuk memastikan data sesuai dengan format barcode yang dipilih.
Proyek ini dibangun menggunakan teknologi modern dan pustaka Python yang andal:
- Backend: Flask
- Library Barcode:
python-barcode - Library QR Code:
qrcode[pil] - Frontend: HTML5, Tailwind CSS (via CDN)
- Server Produksi (Rekomendasi): Gunicorn, Nginx
Untuk menjalankan aplikasi ini, Anda hanya memerlukan:
- Python versi 3.8 atau yang lebih baru
- pip (Package Installer for Python)
Berikut adalah panduan lengkap untuk menjalankan aplikasi ini, baik di lingkungan lokal untuk pengembangan maupun di server produksi untuk diakses publik.
Ikuti langkah-langkah ini untuk menjalankan aplikasi di mesin Anda sendiri.
-
Clone Repositori Gunakan Git untuk meng-clone repositori ini ke komputer Anda.
git clone [https://github.com/username/barcode-generator.git](https://github.com/username/barcode-generator.git) cd barcode-generator -
Buat dan Aktifkan Virtual Environment Sangat disarankan untuk menggunakan lingkungan virtual agar dependensi proyek tidak tercampur.
# Membuat environment (misal: .venv) python -m venv .venv # Mengaktifkan environment # Windows .\.venv\Scripts\activate # macOS / Linux source .venv/bin/activate
-
Instal Dependensi Instal semua library Python yang dibutuhkan yang tercantum dalam file
requirements.txt.pip install -r requirements.txt
-
Jalankan Aplikasi Setelah semua dependensi terinstal, jalankan server pengembangan Flask.
python app.py
-
Buka di Browser Aplikasi sekarang berjalan! Buka browser Anda dan kunjungi alamat
http://127.0.0.1:5000.
Setelah siap untuk go-live, berikut cara mendeploy aplikasi ini.
Metode ini cocok untuk pemula, namun pastikan penyedia hosting Anda mendukung aplikasi Python (fitur "Setup Python App").
- Login ke cPanel dan cari menu "Setup Python App".
- Buat Aplikasi Baru:
- Pilih versi Python (misal: 3.9).
- Tentukan direktori aplikasi (misal:
barcode-app). - Tentukan URL yang akan digunakan.
- Upload File Proyek:
- Masuk ke "File Manager" dan navigasikan ke direktori yang baru saja Anda buat.
- Upload semua file proyek (
app.py,requirements.txt, foldertemplates, danstatic).
- Buat File WSGI Entry Point:
- Di dalam direktori aplikasi, buat file baru bernama
passenger_wsgi.py. - Isi file tersebut dengan kode berikut. Ini adalah jembatan antara server dan aplikasi Flask Anda.
from app import app as application
- Di dalam direktori aplikasi, buat file baru bernama
- Instal Dependensi:
- Kembali ke menu "Setup Python App".
- Di bagian "Configuration files", tambahkan path ke
requirements.txtAnda (misal:/home/username/barcode-app/requirements.txt). - Klik "Run Pip Install".
- Restart Aplikasi:
- Setelah instalasi selesai, klik tombol "Restart" di pojok kanan atas halaman "Setup Python App".
- Aplikasi Anda sekarang seharusnya sudah bisa diakses melalui URL yang telah ditentukan.
Metode ini memberikan kontrol penuh dan performa terbaik. Panduan ini menggunakan Ubuntu/Debian dengan Nginx dan Gunicorn.
- Setup Awal di VPS:
- Pastikan Anda memiliki akses root atau sudo.
- Update sistem Anda:
sudo apt update && sudo apt upgrade -y. - Install Python, pip, dan Nginx:
sudo apt install python3-venv python3-pip nginx -y.
- Clone Proyek dan Setup Environment:
- Clone repositori Anda:
git clone https://github.com/username/barcode-generator.git. - Masuk ke direktori proyek:
cd barcode-generator. - Buat dan aktifkan virtual environment seperti pada instalasi lokal.
- Instal dependensi:
pip install -r requirements.txt. - Instal Gunicorn:
pip install gunicorn.
- Clone repositori Anda:
- Jalankan Gunicorn sebagai Service (systemd):
- Buat file service untuk mengelola Gunicorn secara otomatis.
sudo nano /etc/systemd/system/barcodeapp.service
- Isi file tersebut dengan konfigurasi berikut (sesuaikan
UserdanWorkingDirectory):
[Unit] Description=Gunicorn instance to serve Barcode Generator After=network.target [Service] User=namauseranda # Ganti dengan username non-root Anda Group=www-data WorkingDirectory=/home/namauseranda/barcode-generator # Ganti pathnya Environment="PATH=/home/namauseranda/barcode-generator/.venv/bin" ExecStart=/home/namauseranda/barcode-generator/.venv/bin/gunicorn --workers 3 --bind unix:barcodeapp.sock -m 007 app:app [Install] WantedBy=multi-user.target
- Simpan file, lalu start dan enable service:
sudo systemctl start barcodeapp sudo systemctl enable barcodeapp - Konfigurasi Nginx sebagai Reverse Proxy:
- Buat file konfigurasi Nginx baru.
sudo nano /etc/nginx/sites-available/barcodeapp
- Isi dengan konfigurasi berikut (ganti
your_domain):
server { listen 80; server_name your_domain www.your_domain; # Ganti dengan domain Anda location / { include proxy_params; proxy_pass http://unix:/home/namauseranda/barcode-generator/barcodeapp.sock; } }
- Aktifkan konfigurasi dengan membuat symbolic link:
sudo ln -s /etc/nginx/sites-available/barcodeapp /etc/nginx/sites-enabled
- Test konfigurasi Nginx dan restart:
sudo nginx -t sudo systemctl restart nginx
- Konfigurasi Firewall:
- Izinkan trafik Nginx melalui firewall.
sudo ufw allow 'Nginx Full'- Aplikasi Anda kini sudah live di domain Anda! Untuk keamanan, sangat disarankan untuk menginstal SSL dengan Certbot.
Struktur folder dan file diatur agar rapi dan mudah dipahami.
barcode_app/
β
βββ .venv/ # Direktori virtual environment (opsional)
βββ static/ # Folder untuk file statis (CSS, JS, gambar)
β βββ barcodes/ # Tempat menyimpan gambar barcode yang dibuat
β
βββ templates/ # Folder untuk file template HTML (Jinja2)
β βββ index.html # Halaman utama dengan form input
β βββ result.html # Halaman untuk menampilkan hasil barcode
β
βββ app.py # File utama aplikasi Flask (logika backend)
βββ requirements.txt # Daftar dependensi library Python
βββ README.md # File ini, dokumentasi proyek
Kami sangat menyambut kontribusi dari komunitas! Baik itu perbaikan bug, penambahan fitur, atau peningkatan dokumentasi.
Ini adalah cara standar untuk berkontribusi pada proyek open-source.
- Fork repositori ini di GitHub.
- Clone fork Anda ke mesin lokal:
git clone https://github.com/YourUsername/barcode-generator.git. - Buat Branch Baru untuk perubahan Anda:
git checkout -b fitur/nama-fitur-baru. - Lakukan Perubahan dan Commit:
git commit -m "feat: Menambahkan fitur X". - Push ke branch Anda di fork:
git push origin fitur/nama-fitur-baru. - Buka repositori asli dan buat Pull Request (PR) dari branch Anda.
Jika Anda memiliki akses tulis langsung ke repositori.
- Clone repositori ini ke mesin lokal.
- Buat Branch Baru untuk setiap tugas:
git checkout -b fix/perbaikan-bug-Y. - Lakukan Perubahan dan Commit.
- Push branch Anda langsung ke repositori utama.
- (Opsional) Buat Pull Request untuk proses review kode oleh tim.
- Pesan Commit: Gunakan format Conventional Commits untuk pesan commit yang jelas (misal:
feat:,fix:,docs:,style:,refactor:). - Gaya Kode: Ikuti panduan gaya PEP 8 untuk kode Python.
- Isu: Laporkan bug atau usulkan fitur baru melalui tab "Issues" di GitHub sebelum membuat Pull Request besar.
Terima kasih telah mempertimbangkan untuk berkontribusi!
This project is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Proyek ini dilisensikan di bawah Lisensi MIT.
Hak Cipta (c) 2025 Alghifari888
Proyek ini menggunakan Lisensi MIT, yang berarti Anda bebas menggunakan, menyalin, mengubah, dan mendistribusikan perangkat lunak ini, termasuk untuk keperluan komersial, selama menyertakan pemberitahuan hak cipta dan lisensi asli.
Perangkat lunak ini disediakan apa adanya tanpa jaminan apa pun. Pengembang tidak bertanggung jawab atas kerusakan atau masalah yang timbul dari penggunaan perangkat lunak ini.
