Skip to content

Program Java yang mensimulasikan sistem restoran menggunakan multi-threading dengan tiga peran utama (Waiter, Chef, Cashier) dan mekanisme sinkronisasi untuk mencegah konflik data.

Notifications You must be signed in to change notification settings

natainditama-edu/SimulasiRestoran-2401010039-NyomanCandraNataInditama

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🍽️ Simulasi Restoran — Multi-threading (Java)

💻 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.

contributors open issues forks commits count stars license last update


🚀 Getting Started

🔧 Prerequisites

Pastikan sudah terinstal:


⚙️ Installation & Run

Clone repository:

git clone https://github.com/natainditama-edu/SimulasiRestoran-2401010039-NyomanCandraNataInditama.git

Masuk ke folder project:

cd SimulasiRestoran-2401010039-NyomanCandraNataInditama/src

Kompilasi semua file Java:

javac Main.java

Jalankan program:

java Main

📖 Deskripsi Program

Program 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 yang Digunakan

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

💡 Contoh Output

[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

👋 Contributing


Kontribusi selalu terbuka!
Silakan buat issue atau pull request untuk perbaikan dan pengembangan program.


📜 License

Proyek ini dilisensikan di bawah MIT License.
Lihat file LICENSE untuk detail.


📬 Contact

Nata Inditama
📎 LinkedIn

Project Link: https://github.com/natainditama-edu/SimulasiRestoran-2401010039-NyomanCandraNataInditama

About

Program Java yang mensimulasikan sistem restoran menggunakan multi-threading dengan tiga peran utama (Waiter, Chef, Cashier) dan mekanisme sinkronisasi untuk mencegah konflik data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages