🧾 Spesifikasi Sistem: Vending Coffee Machine
1. Deskripsi Umum
Sistem Vending Coffee Machine adalah aplikasi yang mensimulasikan mesin penjual otomatis untuk minuman kopi. Pengguna dapat memilih jenis kopi, ukuran gelas, menambahkan gula atau susu, melakukan pembayaran, dan menerima kopi yang telah disiapkan oleh mesin.
Sistem ini mengelola stok bahan (kopi, gula, susu, air), memproses pembayaran, serta memberikan laporan transaksi dan status mesin.
2. Tujuan Sistem
-
Menyediakan simulasi interaktif untuk pemesanan kopi otomatis.
-
Mengelola transaksi antara pengguna dan mesin.
-
Memastikan stok bahan selalu terpantau.
-
Memberikan laporan penggunaan dan pendapatan mesin.
3. Fitur Utama
| No | Fitur | Deskripsi |
|---|---|---|
| 1 | Pilih Jenis Kopi | Pengguna dapat memilih jenis kopi: Espresso, Cappuccino, Latte, Americano. |
| 2 | Pilih Ukuran Cup | Pilihan ukuran: Small, Medium, Large. |
| 3 | Atur Tambahan | Tambahkan gula dan/atau susu sesuai preferensi. |
| 4 | Pembayaran | Pembayaran menggunakan uang koin atau kartu (simulasi). |
| 5 | Proses Pembuatan Kopi | Sistem akan memproses pembuatan kopi sesuai pilihan pengguna. |
| 6 | Tampilkan Status | Menampilkan status mesin: sedang membuat kopi, siap, atau kehabisan bahan. |
| 7 | Laporan Stok dan Transaksi | Admin dapat melihat laporan bahan dan hasil penjualan. |
4. Spesifikasi Teknis
| Komponen | Deskripsi |
|---|---|
| Bahasa Pemrograman | Java (Object-Oriented) |
| Desain UML | Class Diagram, Use Case Diagram |
| Penyimpanan Data | File atau Database sederhana (mis. coffeeData.txt / SQLite) |
| Interface | Console / GUI (opsional) |
| Unit | ml (air/susu), gram (kopi/gula) |
| Mode Admin | Untuk pengecekan stok dan pengisian ulang bahan |
5. Daftar Class dan Tanggung Jawab
| Class | Deskripsi / Tanggung Jawab |
|---|---|
| CoffeeMachine | Kelas utama yang mengatur seluruh proses pembuatan kopi, transaksi, dan manajemen stok. |
| CoffeeType | Enum atau class untuk menyimpan jenis kopi dan harganya (Espresso, Cappuccino, dll). |
| IngredientStock | Mengelola stok bahan (kopi, gula, susu, air). Memiliki metode checkStock(), reduceStock(), dan refill(). |
| Order | Menyimpan detail pesanan (jenis kopi, ukuran, tambahan gula/susu). |
| Payment | Mengelola proses pembayaran dan validasi uang yang dimasukkan pengguna. |
| Display | Menampilkan menu, status, dan hasil transaksi kepada pengguna. |
| AdminPanel | Fitur untuk admin melihat laporan transaksi dan stok bahan. |
| Transaction | Menyimpan riwayat pembelian (waktu, jenis kopi, total harga). |
6. Atribut Utama (contoh per class)
CoffeeMachine
-
IngredientStock stock -
List<Transaction> transactions -
boolean isActive
Order
-
CoffeeType type -
String size -
boolean addMilk -
boolean addSugar -
double totalPrice
IngredientStock
-
int coffeeGrams -
int milkMl -
int sugarGrams -
int waterMl
Payment
-
double amountInserted -
double totalCost -
boolean processPayment()
Transaction
-
LocalDateTime dateTime -
String coffeeType -
double amountPaid
7. Use Case Diagram (Deskripsi Tekstual)
Aktor:
-
User
-
Admin
Use Case:
-
User:
-
Memilih kopi
-
Memasukkan pembayaran
-
Menerima kopi
-
-
Admin:
-
Melihat laporan transaksi
-
Mengisi ulang stok bahan
-
8. Alur Sistem (Flow)
-
Mesin aktif → menampilkan menu pilihan kopi.
-
Pengguna memilih jenis dan ukuran kopi.
-
Pengguna menambah gula/susu (opsional).
-
Mesin menampilkan total harga.
-
Pengguna melakukan pembayaran.
-
Mesin memverifikasi pembayaran → jika cukup → membuat kopi.
-
Kopi disajikan → sistem mengurangi stok.
-
Transaksi disimpan ke log.
-
Jika stok habis → admin diingatkan untuk refill.
9. Contoh Output Console
10. Ekstensi (Optional Features)
-
Pembayaran dengan QR Code.
-
Sensor suhu kopi.
-
Statistik pembelian per hari.
-
Mode hemat energi (auto-off).
-
Tampilan GUI berbasis JavaFX / Swing.


No comments:
Post a Comment