ETS PBO

 Muhammad rafi budi purnama

5025221307

PBO B

Code : https://github.com/mbahbud/Vending-machine-.git

Vidio :  https://youtu.be/I-1Lm-gUnFw


ETS PBO


work flow , masuk ke link ada di gambar unutk memperjelas gambarnya




PENJELASAN RINGKAS SISTEM VENDING MACHINE

1. DESKRIPSI UMUM SISTEM

Sistem Vending Snack Machine adalah aplikasi simulasi mesin penjual otomatis berbasis Java yang memungkinkan pengguna membeli produk makanan dan minuman secara mandiri. Sistem ini mengelola 24 jenis produk dalam 4 kategori (Snack, Minuman, Coklat, Biskuit), memproses pembayaran, menghitung kembalian otomatis, serta menyimpan log transaksi lengkap.

2. FITUR UTAMA

Manajemen Produk: 24 produk dengan kategori, harga, dan stok
Proses Transaksi: Validasi stok, pembayaran, dan perhitungan kembalian
Log Transaksi: Pencatatan otomatis dengan ID unik dan timestamp
Monitoring Stok: Notifikasi otomatis untuk stok rendah (≤3 unit)
Mode Admin: Refill stok dengan password (admin123)
Laporan: Status mesin, total transaksi, dan total pendapatan

3. ARSITEKTUR SISTEM (5 CLASS)

A. Class Product → Menyimpan data produk (ID, nama, harga, stok, kategori)

B. Class Payment → Mengelola pembayaran dan validasi uang cukup atau tidak

C. Class Transaction → Mencatat setiap transaksi dengan ID otomatis dan timestamp

D. Class VendingMachine → Otak sistem yang mengatur semua proses bisnis

E. Class Main → Interface user untuk interaksi dengan menu

4. ALUR KERJA SISTEM

User → Pilih Menu → Input Data → Validasi → Proses → Output

Detail Proses Pembelian:

  1. User memilih produk berdasarkan kode (A1, B2, dll)
  2. Sistem validasi: Produk ada? Stok ada? Uang cukup?
  3. Jika valid: Kurangi stok → Hitung kembalian → Simpan transaksi
  4. Tampilkan struk digital dengan informasi lengkap
  5. Cek stok rendah → Warning otomatis

PROSES PEMBELIAN (Menu 2):
┌─────────────────────┐
│  Tampilkan Produk   │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  Input Kode Produk  │
└──────────┬──────────┘
           ↓
      ┌────────┐
      │ Produk │ ──→ TIDAK ──→ Error
      │  Ada?  │
      └───┬────┘
          ↓ YA
      ┌────────┐
      │ Stok   │ ──→ TIDAK ──→ Error + Notif Admin
      │  Ada?  │
      └───┬────┘
          ↓ YA
┌─────────────────────┐
│  Input Pembayaran   │
└──────────┬──────────┘
           ↓
      ┌────────┐
      │ Uang   │ ──→ TIDAK ──→ Error
      │ Cukup? │
      └───┬────┘
          ↓ YA
┌─────────────────────┐
│  Hitung Kembalian   │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│   Kurangi Stok      │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  Buat Transaction   │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│   Simpan ke Log     │
└──────────┬──────────┘
           ↓
┌─────────────────────┐
│  Tampilkan Struk    │
└─────────────────────┘

5. TEKNOLOGI & KONSEP OOP

Struktur Data:

  • HashMap<String, Product> → Akses produk cepat berdasarkan kode
  • ArrayList<Transaction> → Menyimpan history transaksi berurutan

Konsep OOP:

  • Encapsulation: Atribut private, akses via getter/setter
  • Constructor: Inisialisasi objek dengan parameter
  • Collection Framework: Map & List untuk manajemen data
  • Exception Handling: Try-catch untuk validasi input

6. VALIDASI & KEAMANAN

✓ Validasi produk tersedia
✓ Validasi stok mencukupi
✓ Validasi pembayaran cukup
✓ Password admin untuk refill
✓ Input validation untuk mencegah error

7. OUTPUT SISTEM

Log Transaksi:

ID: TRX0001 | Produk: Chitato | Harga: Rp10000 | 
Bayar: Rp15000 | Kembalian: Rp5000 | 
Waktu: 15-10-2025 14:30:45

Status Mesin:

  • Total Transaksi: 10
  • Total Pendapatan: Rp125.000
  • Produk Stok Rendah: Mountain Dew (1 unit)

8. KEUNGGULAN SISTEM

🎯 User-Friendly: Menu interaktif mudah dipahami
🎯 Real-Time: Update stok dan pendapatan otomatis
🎯 Reliable: Validasi berlapis untuk mencegah error
🎯 Traceable: Log lengkap untuk audit transaksi
🎯 Scalable: Mudah menambah produk baru

9. CARA PENGGUNAAN

# Compile
javac Main.java

# Run
java Main

# Menu:
1 → Lihat produk
2 → Beli produk (input kode + bayar)
3 → History transaksi
4 → Status mesin & laporan
5 → Admin refill (password: admin123)
6 → Keluar

10. KESIMPULAN

Sistem Vending Snack Machine berhasil mengimplementasikan konsep Object-Oriented Programming dengan struktur class yang jelas, validasi yang ketat, dan user experience yang baik. Sistem ini dapat digunakan sebagai prototype mesin vending nyata dan mudah dikembangkan lebih lanjut.





Komentar

Postingan populer dari blog ini

TUGAS 2 : Jettpack compose : Hello, World!

Pertemuan 3 PPB (A) - Mengenal Composable Aplikasi Selamat Ulang Tahun

Pertemuan 5 - Aplikasi Kalkulator Sederhana