Simulasi sistem Point of Sale (POS) sederhana.
Membuat program kasir sederhana adalah salah satu proyek dasar yang sangat baik untuk memahami konsep pemrograman, terutama dalam hal input/output, perulangan (looping), dan struktur data. Bahasa Python, dengan sintaksnya yang bersih dan mudah dibaca, adalah pilihan ideal untuk tugas ini. Program kasir ini akan memungkinkan pengguna memasukkan item yang dibeli, menghitung total harga, dan memberikan kembalian.
Untuk membuat sistem kasir minimalis, kita memerlukan beberapa komponen utama:
Mari kita mulai dengan mendefinisikan inventaris atau daftar produk yang tersedia. Kita akan menggunakan dictionary di Python karena memungkinkan kita memetakan nama barang ke harganya secara efisien.
# 1. Database Produk (Simulasi)
produk = {
"A001": {"nama": "Kopi Hitam", "harga": 10000},
"A002": {"nama": "Teh Manis", "harga": 8000},
"B010": {"nama": "Nasi Goreng", "harga": 25000},
"C050": {"nama": "Air Mineral", "harga": 5000}
}
total_belanja = 0
keranjang = []
Langkah selanjutnya adalah membuat perulangan (loop) agar kasir bisa terus memasukkan barang sampai transaksi selesai. Di sini kita menggunakan perulangan `while True` yang akan berhenti hanya ketika pengguna memasukkan perintah keluar (misalnya, 'SELESAI').
Dalam perulangan, kita meminta kode produk. Jika kode ada di database, harga barang ditambahkan ke total belanja, dan item tersebut dicatat di variabel `keranjang`. Jika kode tidak ditemukan, sistem akan memberikan pesan kesalahan.
while True:
kode = input("Masukkan kode produk (atau ketik SELESAI): ").upper()
if kode == 'SELESAI':
break
if kode in produk:
item = produk[kode]
harga_item = item["harga"]
total_belanja += harga_item
keranjang.append((item["nama"], harga_item))
print(f"Ditambahkan: {item['nama']} - Rp{harga_item}")
else:
print("Kode produk tidak ditemukan. Silakan coba lagi.")
Setelah perulangan berhenti, kita perlu menanyakan berapa uang yang dibayarkan oleh pelanggan dan menghitung kembalian. Bagian ini krusial untuk menyelesaikan transaksi. Kita perlu memastikan uang yang dibayarkan lebih besar atau sama dengan total belanja.
# 3. Menampilkan Rincian Struk
print("\n--- STRUK PEMBAYARAN ---")
if not keranjang:
print("Tidak ada barang yang dibeli.")
else:
for nama, harga in keranjang:
print(f"{nama:<15} Rp{harga:>8,}") # Format rapi
print("-" * 30)
print(f"TOTAL BELANJA: Rp{total_belanja:,}")
# 4. Input Pembayaran dan Kembalian
while True:
try:
bayar = int(input("Uang Tunai yang Dibayar: "))
if bayar < total_belanja:
print("Uang tidak cukup. Mohon masukkan jumlah yang lebih besar.")
continue
kembalian = bayar - total_belanja
print(f"Uang Kembalian: Rp{kembalian:,}")
print("--- TERIMA KASIH ---")
break
except ValueError:
print("Input pembayaran harus berupa angka.")
Meskipun program ini sederhana dan berjalan di konsol (bukan antarmuka grafis), ia mengajarkan dasar-dasar penting dalam pengembangan perangkat lunak ritel. Struktur data yang digunakan mudah diperluas; misalnya, Anda bisa menambahkan fitur diskon dengan menambahkan kolom persentase ke dictionary produk, atau mengelola stok dengan mengurangi kuantitas setelah pembelian. Penggunaan blok try-except pada input pembayaran menunjukkan penanganan error dasar yang penting agar program tidak berhenti mendadak saat pengguna memasukkan teks alih-alih angka. Untuk proyek selanjutnya, Anda dapat mengintegrasikan modul pihak ketiga untuk membuat antarmuka web atau desktop yang lebih interaktif.