import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class RingkasanToko {

    record Produk(String nama, String kategori, int harga) {}

    public static void main(String[] args) {
        List<Produk> produk = List.of(
                new Produk("Kopi Arabika", "minuman", 85000),
                new Produk("Teh Hijau", "minuman", 45000),
                new Produk("Roti Gandum", "makanan", 30000),
                new Produk("Madu Hutan", "makanan", 120000),
                new Produk("Air Mineral", "minuman", 8000)
        );

        // Gaya imperatif: kita menuliskan BAGAIMANA, langkah demi langkah
        List<String> mahal = new ArrayList<>();
        for (Produk p : produk) {
            if (p.harga() >= 50000) {
                mahal.add(p.nama());
            }
        }
        Collections.sort(mahal);
        StringBuilder teks = new StringBuilder();
        for (int i = 0; i < mahal.size(); i++) {
            teks.append(mahal.get(i));
            if (i < mahal.size() - 1) {
                teks.append(", ");
            }
        }
        System.out.println("Imperatif : " + teks);

        // Gaya stream: kita menyatakan APA yang ingin dicapai
        String hasil = produk.stream()
                .filter(p -> p.harga() >= 50000)
                .map(Produk::nama)
                .sorted()
                .collect(Collectors.joining(", "));
        System.out.println("Stream    : " + hasil);
    }
}
