Skip to content

M03 · Bab 10± 60 menitDraf AI

Proyek Mini: Inventaris In-Memory

Tujuan belajar

  • Menerjemahkan kebutuhan bisnis menjadi model, service, dan exception domain
  • Memilih struktur data untuk penyimpanan in-memory (LinkedHashMap, List.copyOf) beserta alasannya
  • Menjaga aturan bisnis dengan record immutable dan validasi di compact constructor
  • Mendesain exception domain unchecked yang bisa dipetakan ke status HTTP
  • Menulis operasi atomik dengan pola "validasi semua dulu, baru ubah state"

Prasyarat: Big-O & Memilih Struktur Data

Kuis

5 soal · lulus bila minimal 70% benar

1.Apa output kode ini? Product p = new Product(" kopi-1 ", "Kopi", 10_000, 5); Product q = p.withStock(2); System.out.println(p.sku() + " " + p.stock() + " " + q.stock()); — compact constructor Product melakukan sku = sku.strip().toUpperCase();
2.Versi awal reserveAll langsung mengurangi stok tiap item di dalam satu loop. Pesanan berisi KOPI-001 × 2 (stok 12) lalu TEH-001 × 99 (stok 5). Apa yang terjadi?
3.Kenapa lowStock mengembalikan List.copyOf(result), bukan result atau list internal service?
4.Nanti di Spring Boot, InsufficientStockException sebaiknya dipetakan ke status HTTP apa?
5.Halaman admin ingin menampilkan produk sesuai urutan ditambahkan, dan pencarian per SKU harus cepat. Implementasi Map mana yang paling cocok?

Jawab semua soal dulu (0/5)