💻 Program Java yang mensimulasikan sistem restoran dengan tiga peran utama: Waiter, Chef, dan Cashier.
Setiap peran dijalankan di thread terpisah dan disinkronisasi menggunakan BlockingQueue serta AtomicInteger agar data tetap aman dan konsisten.
Pastikan sudah terinstal:
- Java JDK 21 atau lebih baru
- Git Version Control
- IntelliJ IDEA atau IDE Java lain
Clone repository:
git clone https://github.com/natainditama-edu/SimulasiRestoran-2401010039-NyomanCandraNataInditama.gitMasuk ke folder project:
cd SimulasiRestoran-2401010039-NyomanCandraNataInditama/srcKompilasi semua file Java:
javac Main.javaJalankan program:
java MainProgram ini mensimulasikan alur kerja restoran dengan tiga jenis pekerja yang berjalan secara paralel menggunakan multi-threading:
| Peran | Deskripsi |
|---|---|
| Waiter | Menerima pesanan dari pelanggan dan mengantarkan pesanan yang sudah siap |
| Chef | Memasak pesanan dari antrean dan menandai pesanan sebagai siap saji |
| Cashier | Memproses pembayaran setelah pesanan selesai disajikan |
| Konsep | Implementasi |
|---|---|
| Multi-threading | Setiap staf (Waiter, Chef, Cashier) dijalankan di thread terpisah |
| Synchronization | Menggunakan BlockingQueue & AtomicInteger untuk menghindari race condition |
| ExecutorService | Mengatur dan mematikan thread pool dengan rapi |
| Object-Oriented | Menggunakan kelas abstrak Staff untuk struktur hierarki yang jelas |
[Main] Pelanggan datang -> Order{id=1, customer=Customer-1, item=Sate, prepared=false}
[Waiter-1] mulai bekerja (Waiter)
[Chef-1] mulai bekerja (Chef)
[Cashier-1] mulai bekerja (Cashier)
[Chef-2] Memasak: Order{id=2, customer=Customer-2, item=Mie Ayam, prepared=false}
[Chef-1] Selesai memasak: Order{id=1, customer=Customer-1, item=Sate, prepared=true}
[Cashier-1] Pembayaran diterima untuk Order{id=1, customer=Customer-1, item=Sate, prepared=true} | Harga=30000 | Total sementara=30000
[Main] Simulasi selesai. Total penjualan = 225000
Kontribusi selalu terbuka!
Silakan buat issue atau pull request untuk perbaikan dan pengembangan program.
Proyek ini dilisensikan di bawah MIT License.
Lihat file LICENSE untuk detail.
Nata Inditama
📎 LinkedIn
Project Link: https://github.com/natainditama-edu/SimulasiRestoran-2401010039-NyomanCandraNataInditama