import java.util.List;
import java.util.Optional;

public class ReduceOpsional {

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

    static Optional<Integer> termurah(List<Produk> sumber) {
        return sumber.stream()
                .map(Produk::harga)
                .reduce(Integer::min);
    }

    public static void main(String[] args) {
        List<Produk> terisi = List.of(
                new Produk("Kopi Arabika", "minuman", 85000),
                new Produk("Air Mineral", "minuman", 8000)
        );
        List<Produk> kosong = List.of();

        System.out.println("Termurah (terisi) : " + termurah(terisi).orElse(-1));
        System.out.println("Termurah (kosong) : " + termurah(kosong).orElse(-1));
        System.out.println("Kosong ada nilai? : " + termurah(kosong).isPresent());
    }
}
