Study
Akka

Tugas Akhir

Penjelasan

Tugas akhir ini menggabungkan konsep-konsep utama yang sudah dipelajari: actor hierarchy, actor state internal, ask pattern, supervision, dan timer. Skenario: bangun sistem pemesanan sederhana dengan actor `TokoOnline` sebagai induk yang men-spawn actor anak `Pesanan` untuk tiap pesanan baru (memakai spawn dan actor hierarchy). Actor `Pesanan` menyimpan state internal berupa daftar item dan status (misal "Menunggu", "Diproses", "Selesai") lewat pola state-lewat-parameter. Ketika pelanggan mengirim command `Bayar`, actor `Pesanan` harus membalas hasilnya lewat ask pattern (mengembalikan Future[Boolean] ke pemanggil) supaya kode luar bisa menunggu konfirmasi pembayaran. Tambahkan timer: jika pesanan tidak dibayar dalam waktu tertentu (misal 10 detik untuk simulasi), actor `Pesanan` otomatis mengubah statusnya jadi "Dibatalkan" dan menghentikan dirinya sendiri (menggabungkan konsep timer dan lifecycle). Terakhir, bungkus behavior `Pesanan` dengan supervision strategy restart untuk exception validasi data pesanan, sehingga kegagalan satu pesanan tidak menjatuhkan seluruh sistem TokoOnline.

Tugas

Lengkapi sistem pemesanan berikut: actor TokoOnline men-spawn Pesanan baru saat menerima BuatPesanan, actor Pesanan menyimpan status dan item, menangani Bayar lewat ask pattern (membalas Boolean ke pemanggil), memakai timer single-shot 10 detik yang membatalkan pesanan otomatis jika belum dibayar, dan seluruh behavior Pesanan dibungkus supervision restart untuk IllegalArgumentException.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kerjakan tugas ini bertahap: pastikan dulu actor Pesanan bisa dibuat dan menerima Bayar lewat tell biasa, baru tambahkan ask pattern, lalu timer, dan terakhir supervision — menggabungkan semua konsep sekaligus dari awal akan sulit di-debug kalau ada bagian yang salah.