Study
Play Framework

Tugas Akhir

Penjelasan

Tugas akhir ini menggabungkan beberapa konsep inti Play yang sudah dipelajari: routing dengan parameter dinamis, controller dengan Action sinkron maupun async, form handling dengan validasi, response JSON, dan penggunaan session untuk menandai user yang sudah "login" secara sederhana. Studi kasus: modul manajemen produk sederhana bernama ProdukController yang mendukung menambah produk lewat form (dengan validasi nama tidak boleh kosong dan harga minimal 0), menampilkan daftar produk sebagai JSON, dan endpoint yang hanya bisa diakses jika session "userId" tersedia (selain itu redirect ke halaman login).

Tugas

Implementasikan ProdukController dengan spesifikasi berikut: 1. Route GET /produk/api mengembalikan daftar produk (List[Produk] statis di memori boleh saja) sebagai JSON menggunakan Play JSON. 2. Route POST /produk/tambah menerima form (nama: String, harga: Int) memakai Play Forms dengan validasi nonEmptyText dan number(min = 0); jika gagal, BadRequest dengan pesan error; jika sukses, redirect ke /produk/api. 3. Route GET /produk/rahasia hanya bisa diakses jika request.session berisi key "userId"; jika tidak ada, redirect ke /login dengan flash message "Silakan login dulu". 4. Tuliskan juga baris conf/routes yang sesuai untuk ketiga endpoint tersebut. Tuliskan kerangka controller dan routes yang menggabungkan keempat poin di atas.

Editor Latihan

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

Tips

Kerjakan bertahap: pastikan dulu endpoint JSON berjalan, baru form dengan validasi, lalu session-guard terakhir — menggabungkan fitur satu per satu memudahkan menemukan bagian mana yang error.