Skip to content

M04 · Bab 8± 60 menitDraf AI

Proyek Mini: Laporan Penjualan

Tujuan belajar

  • Memodelkan data pesanan dengan record immutable (Order, OrderLine) dan method turunan seperti total()
  • Menyusun laporan dengan flatMap, groupingBy, summingLong, counting, dan averagingLong
  • Mengurutkan hasil agregasi dengan Comparator bertingkat, termasuk aturan seri yang pasti
  • Mengelompokkan data per bulan memakai java.time.YearMonth sebagai kunci map
  • Memeriksa hasil laporan terhadap perhitungan manual sebelum mempercayainya

Prasyarat: Gaya Fungsional yang Sehat

Kuis

5 soal · lulus bila minimal 70% benar

1.Data: Gula terjual 7 unit, Kopi 7 unit, Teh 4 unit. Apa hasil topProducts(2) bila comparator-nya comparingInt(ProductSales::qty).reversed().thenComparing(ProductSales::product)?
2.Apa yang terjadi bila jumlah pesanan per pelanggan dibuat dengan Collectors.toMap(Order::customer, order -> 1L) dan ada pelanggan dengan dua pesanan?
3.Kamu ingin rata-rata nilai pesanan per bulan, terurut dari bulan paling awal. Kunci dan map mana yang paling tepat?
4.Laporan omzet kategori Alat Seduh tertulis Rp750.000, padahal perhitungan manual dari pesanan yang dibayar hanya Rp300.000. Penyebab paling mungkin?
5.Kenapa topCustomer() mengembalikan Optional<String>, bukan String?

Jawab semua soal dulu (0/5)