Membuat program kasir (Point of Sale/POS) sederhana menggunakan Python adalah proyek yang sangat baik untuk pemula hingga menengah. Python menawarkan sintaks yang bersih dan banyak modul yang dapat dimanfaatkan, meskipun untuk aplikasi kasir dasar, kita sering kali hanya membutuhkan fungsionalitas inti seperti input, perhitungan, dan output (cetak struk).
Artikel ini akan memandu Anda melalui langkah-langkah dasar untuk membangun sistem kasir berbasis teks (command-line interface/CLI) yang mencatat transaksi penjualan, menghitung total, dan menampilkan kembalian. Ini adalah fondasi kuat sebelum beralih ke antarmuka grafis (GUI) menggunakan Tkinter atau PyQT.
Langkah pertama dalam membuat program kasir adalah mendefinisikan data barang dagangan. Dalam contoh sederhana, kita akan menggunakan struktur data Python seperti dictionary (kamus) untuk menyimpan nama produk beserta harganya. Jika skala bisnis Anda besar, Anda mungkin akan menggunakan database seperti SQLite atau PostgreSQL, namun untuk CLI, dictionary sudah cukup.
Berikut adalah contoh data barang:
barang = {
"A001": {"nama": "Buku Tulis", "harga": 5000},
"A002": {"nama": "Pensil 2B", "harga": 2500},
"B010": {"nama": "Penghapus Besar", "harga": 1500},
"C005": {"nama": "Stiker Motivasi", "harga": 1000}
}
Sebuah sistem kasir harus mampu melakukan beberapa tugas utama:
Kita akan menggunakan loop tak terbatas (while True) agar kasir dapat melayani pelanggan berikutnya tanpa perlu me-restart program.
Berikut adalah kerangka kode Python yang menggabungkan struktur data di atas dengan logika transaksi:
def buat_transaksi():
keranjang = []
total_belanja = 0
print("--- APLIKASI KASIR SEDERHANA ---")
while True:
kode = input("Masukkan Kode Barang (atau 'SELESAI' untuk hitung): ").upper()
if kode == 'SELESAI':
break
if kode in barang:
nama = barang[kode]['nama']
harga = barang[kode]['harga']
try:
qty = int(input(f"Berapa kuantitas {nama}? "))
if qty <= 0:
print("Kuantitas harus lebih dari nol.")
continue
subtotal = harga * qty
total_belanja += subtotal
keranjang.append((nama, qty, harga, subtotal))
print(f"--> {nama} ditambahkan. Subtotal: Rp{subtotal}")
except ValueError:
print("Input kuantitas tidak valid.")
else:
print("Kode barang tidak ditemukan. Silakan coba lagi.")
if not keranjang:
print("Transaksi dibatalkan.")
return
# Proses Pembayaran
print("\n==================================")
print("RINCIAN PEMBAYARAN")
for nama, qty, harga, subtotal in keranjang:
print(f"{nama} ({qty}x @Rp{harga}): Rp{subtotal}")
print("----------------------------------")
print(f"TOTAL BELANJA: Rp{total_belanja}")
while True:
try:
bayar = int(input("Uang Tunai Pembayaran: Rp"))
if bayar < total_belanja:
print("Uang kurang! Silakan masukkan jumlah yang cukup.")
continue
kembalian = bayar - total_belanja
print(f"Kembalian Anda: Rp{kembalian}")
print("--- TERIMA KASIH TELAH BERBELANJA ---")
break
except ValueError:
print("Input pembayaran tidak valid.")
# Mulai Program
buat_transaksi()
Kode di atas adalah inti dari sistem kasir berbasis CLI. Untuk menjadikannya sistem yang lebih tangguh, Anda perlu menambahkan beberapa fitur penting. Pertama, pengelolaan stok. Setiap kali barang terjual, stok harus dikurangi dari database (atau dictionary). Kedua, kemampuan untuk mengedit atau menghapus item dari keranjang sebelum pembayaran. Ketiga, validasi input yang lebih ketat untuk menghindari crash program.
Jika Anda berencana untuk melangkah ke GUI, Python dan pustaka seperti Tkinter atau PyQt akan sangat membantu. Namun, pemahaman mendalam tentang logika transaksi seperti yang dijelaskan di sini adalah fondasi utama yang tidak boleh dilewatkan. Dengan Python, pembuatan sistem kasir yang efisien dan mudah dikelola menjadi lebih terjangkau.