Skip to content

aikariena/Sistem_Supermarket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistem Supermarket - Manajemen Terpadu dengan Fitur Pembayaran

📌 Deskripsi Sistem

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

🎯 Fitur Utama

1. Admin

  • 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

2. Kasir

  • 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

3. Pengguna

  • 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

🗂️ Struktur Folder

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)

🚀 Cara Menjalankan

Compile

javac Login/*.java Gudang/*.java Keranjang/*.java Pembayaran/*.java

Run

java Login.MainMenu

👤 User Credentials

Admin Default

Username: admin
No. Telepon: 0812345678

Test Kasir (Dibuat oleh Admin)

Buat melalui menu Admin → "Kelola Kasir (Tambah Kasir)"

Test Pengguna (Registrasi Mandiri)

Di MainMenu pilih "Registrasi (Pengguna Baru)"


📊 Alur Pembayaran

  1. Login/Registrasi → Pilih role
  2. Browse Produk → Cari barang yang diinginkan
  3. Tambah ke Keranjang → Tentukan jumlah
  4. Review Keranjang → Ubah jumlah atau hapus item
  5. Checkout → Pilih metode pembayaran
  6. Konfirmasi → Verifikasi pembayaran
  7. Cetak Struk → Struk ditampilkan dan disimpan ke file
  8. Update Stok → Stok gudang otomatis berkurang

💾 File Data

  • 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

⚙️ Konfigurasi

Pajak

Ubah di Pembayaran/PaymentMenu.java:

private double PAJAK = 10.0; // Ubah sesuai kebutuhan

Format Database

Barang (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

📝 Catatan Penting

  1. Keamanan Minimal: Sistem hanya menggunakan username + nomor telepon (tanpa password)
  2. Transaksi ID Unik: Format TRX[timestamp][random]
  3. Kembalian Otomatis: Jika pembayaran tunai lebih dari total, otomatis hitung kembalian
  4. No Telepon: Berfungsi sebagai identifier unik per user

🔄 Perubahan Minimum pada Kode Lama

Gudang/Gudang.java

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.

Keranjang/CartItem.java & CartMenu.java

TIDAK ADA PERUBAHAN - Tetap sesuai kode teman Anda


🎓 Pengembangan Lanjutan (Opsional)

  • Implementasi password dengan hashing
  • Laporan penjualan dengan grafik
  • Riwayat transaksi per user
  • Sistem diskon dan promo
  • Integrasi payment gateway
  • Database SQL (MySQL/PostgreSQL)

📧 Informasi Lebih Lanjut

Lihat DOKUMENTASI_PEMBAYARAN.md untuk dokumentasi teknis lengkap.

About

Selamat Datang di Supermarket Kelompok Dua~!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors