Membuat program Python kasir sederhana adalah langkah awal yang sangat baik bagi siapa pun yang ingin memahami logika dasar sistem Point of Sale (POS). Meskipun banyak aplikasi komersial tersedia, membangun versi sederhana menggunakan Python memungkinkan pengembang untuk memodifikasi fitur, memahami manajemen data (meskipun hanya dalam memori), dan mengontrol alur transaksi secara penuh. Tujuannya di sini adalah membuat sistem yang mampu mencatat barang yang dibeli, menghitung total, dan menampilkan kembalian.
Keuntungan utama menggunakan Python terletak pada sintaksnya yang ringkas dan mudah dibaca. Untuk proyek kasir dasar, kita tidak memerlukan framework GUI yang rumit (seperti Tkinter atau PyQt) pada awalnya; implementasi berbasis konsol (Command Line Interface/CLI) sudah memadai untuk memahami logika inti kalkulasi dan input data.
Sebuah program kasir sederhana memerlukan beberapa komponen utama:
dictionary di Python untuk menyimpan nama produk dan harganya.
Berikut adalah kerangka kode yang dapat Anda gunakan sebagai dasar. Kode ini menggunakan struktur dictionary untuk inventaris.
# 1. Inventaris Barang (Stok)
INVENTORY = {
"A101": {"nama": "Kopi Hitam", "harga": 5000},
"B202": {"nama": "Roti Tawar", "harga": 12000},
"C303": {"nama": "Air Mineral", "harga": 3500},
"D404": {"nama": "Biskuit Premium", "harga": 25000}
}
def tampilkan_menu():
print("\n--- Daftar Barang ---")
for kode, item in INVENTORY.items():
print(f"Kode: {kode} | {item['nama']:<15} | Rp {item['harga']:,}")
print("---------------------")
def proses_transaksi():
keranjang = {}
total_belanja = 0
print("\n--- Memulai Transaksi Baru ---")
while True:
kode_input = input("Masukkan Kode Barang (atau 'SELESAI'): ").upper()
if kode_input == 'SELESAI':
break
if kode_input in INVENTORY:
item = INVENTORY[kode_input]
harga = item['harga']
nama = item['nama']
# Asumsi kuantitas 1 untuk kesederhanaan
jumlah = 1
subtotal = harga * jumlah
total_belanja += subtotal
# Tambahkan ke keranjang (untuk struk nanti)
if kode_input in keranjang:
keranjang[kode_input]['qty'] += jumlah
else:
keranjang[kode_input] = {'nama': nama, 'harga': harga, 'qty': jumlah}
print(f"Ditambahkan: {nama}. Subtotal saat ini: Rp {total_belanja:,}")
else:
print("Kode barang tidak ditemukan. Coba lagi.")
if total_belanja == 0:
print("Transaksi dibatalkan atau tidak ada item dibeli.")
return
# 2. Menampilkan Detail dan Kalkulasi Akhir
print("\n======== STRUK PEMBAYARAN ========")
for kode, data in keranjang.items():
sub = data['harga'] * data['qty']
print(f"{data['nama']:<20} x{data['qty']} | Rp {sub:,}")
print(f"---------------------------------")
print(f"TOTAL BELANJA : Rp {total_belanja:,}")
while True:
try:
bayar = int(input("Uang Tunai Dibayarkan: Rp "))
if bayar < total_belanja:
print("Uang tidak cukup!")
else:
kembalian = bayar - total_belanja
print(f"KEMBALIAN : Rp {kembalian:,}")
print("=================================")
print("Terima kasih telah berbelanja!")
break
except ValueError:
print("Input pembayaran harus berupa angka.")
# --- Eksekusi Program ---
if __name__ == "__main__":
tampilkan_menu()
proses_transaksi()
Meskipun program di atas berfungsi sebagai program python kasir sederhana, terdapat banyak ruang untuk peningkatan. Untuk meningkatkan fungsionalitasnya, Anda bisa mempertimbangkan:
dictionary statis dengan membaca dan menulis data dari file CSV atau JSON, sehingga data inventaris tetap ada meskipun program dimatikan.Menguasai dasar-dasar implementasi konsol ini akan memberikan landasan kuat sebelum melangkah ke tantangan pemrograman yang lebih kompleks dalam lingkungan ritel. Python adalah alat yang fantastis untuk prototyping cepat seperti ini.