Sistem Supermarket adalah aplikasi manajemen terpadu dengan tiga peran utama:
- Admin: Mengelola inventory, user, dan laporan
- Kasir: Memproses pembayaran pelanggan
- Pengguna: Self-service shopping
Fitur utama meliputi:
- ✅ Sistem login berbasis role
- ✅ Manajemen inventory/gudang
- ✅ Keranjang belanja interaktif
- ✅ Proses pembayaran lengkap (tunai/non-tunai)
- ✅ Perhitungan pajak otomatis
- ✅ Cetak & simpan struk pembayaran
- ✅ Update stok otomatis
- Login dengan akun default (username:
admin, no telepon:0812345678) - Menu Gudang: Tambah, edit, hapus, cari barang, update stok
- Menu Keranjang: Kelola keranjang pelanggan
- Laporan Penjualan: Analitik penjualan (dalam pengembangan)
- Kelola User: Tambah admin baru, tambah kasir baru
- Dibuat oleh admin
- Menu Pembayaran (sub-menu):
- Input barang ke keranjang
- Lihat/edit/hapus barang dari keranjang
- Proses checkout dengan pilihan metode pembayaran (tunai/non-tunai)
- Cetak struk pembayaran
- Registrasi mandiri dengan username dan nomor telepon
- Gudang (Browse Produk): Lihat semua produk atau cari
- Keranjang Saya: Lihat, ubah jumlah, hapus barang
- Bayar (Checkout): Proses pembayaran
Sistem_Supermarket/
├── Login/
│ ├── User.java (Model user dengan role)
│ ├── LoginSystem.java (Sistem autentikasi)
│ ├── MainMenu.java (Entry point aplikasi)
│ ├── AdminMenu.java (Menu untuk admin)
│ ├── CashierMenu.java (Menu untuk kasir)
│ └── UserMenu.java (Menu untuk pengguna)
├── Pembayaran/
│ ├── Transaction.java (Model transaksi)
│ ├── TransactionItem.java (Item dalam transaksi)
│ ├── Receipt.java (Pembuatan struk)
│ └── PaymentMenu.java (Menu pembayaran)
├── Gudang/
│ ├── Barang.java (Model barang)
│ ├── Gudang.java (Manajemen inventory)
│ ├── SistemGudang.java (Logic gudang lanjutan)
│ └── database.txt (Database barang)
├── Keranjang/
│ ├── CartItem.java (Item keranjang)
│ └── CartMenu.java (Menu keranjang)
├── README.md (File ini)
└── DOKUMENTASI_PEMBAYARAN.md (Dokumentasi teknis lengkap)
javac Login/*.java Gudang/*.java Keranjang/*.java Pembayaran/*.javajava Login.MainMenuUsername: admin
No. Telepon: 0812345678
Buat melalui menu Admin → "Kelola Kasir (Tambah Kasir)"
Di MainMenu pilih "Registrasi (Pengguna Baru)"
- Login/Registrasi → Pilih role
- Browse Produk → Cari barang yang diinginkan
- Tambah ke Keranjang → Tentukan jumlah
- Review Keranjang → Ubah jumlah atau hapus item
- Checkout → Pilih metode pembayaran
- Konfirmasi → Verifikasi pembayaran
- Cetak Struk → Struk ditampilkan dan disimpan ke file
- Update Stok → Stok gudang otomatis berkurang
Gudang/database.txt- Menyimpan daftar barang (format: id;nama;harga;stok)Login/users.txt- Menyimpan data user (format: username;noTelepon;role;isDefault)struk_[TRANSAKSI_ID].txt- Struk pembayaran setiap transaksi
Ubah di Pembayaran/PaymentMenu.java:
private double PAJAK = 10.0; // Ubah sesuai kebutuhanBarang (database.txt):
B001;Beras 5kg;50000;100
B002;Minyak Goreng 2L;25000;50
User (users.txt):
admin;0812345678;admin;true
kasir1;0813456789;kasir;false
user1;0814567890;pengguna;false
- Keamanan Minimal: Sistem hanya menggunakan username + nomor telepon (tanpa password)
- Transaksi ID Unik: Format
TRX[timestamp][random] - Kembalian Otomatis: Jika pembayaran tunai lebih dari total, otomatis hitung kembalian
- No Telepon: Berfungsi sebagai identifier unik per user
Hanya ditambahkan 1 method public untuk akses read-only:
public ArrayList<Barang> getSemuaBarang() {
return new ArrayList<>(daftarBarang);
}Alasan: PaymentMenu memerlukan akses ke data barang untuk update stok setelah pembayaran.
TIDAK ADA PERUBAHAN - Tetap sesuai kode teman Anda
- Implementasi password dengan hashing
- Laporan penjualan dengan grafik
- Riwayat transaksi per user
- Sistem diskon dan promo
- Integrasi payment gateway
- Database SQL (MySQL/PostgreSQL)
Lihat DOKUMENTASI_PEMBAYARAN.md untuk dokumentasi teknis lengkap.