public class PolaSwitch {
    record Pesan(String pengirim, String isi) {}

    static String deskripsi(Object o) {
        return switch (o) {
            case null -> "nilai null";
            case Integer i when i > 100 -> "bilangan besar: " + i;
            case Integer i -> "bilangan bulat: " + i;
            case String s -> "teks sepanjang " + s.length() + " karakter";
            case Pesan(String pengirim, String isi) ->
                "pesan dari " + pengirim + " tentang \"" + isi + "\"";
            default -> "tipe lain: " + o.getClass().getSimpleName();
        };
    }

    public static void main(String[] args) {
        Object bilanganKecil = 42;
        Object bilanganBesar = 250;
        Object teks = "Selamat pagi";
        Object kosong = null;
        Object pesan = new Pesan("Budi", "rapat jam 9");
        Object pecahan = 3.5;

        System.out.println(deskripsi(bilanganKecil));
        System.out.println(deskripsi(bilanganBesar));
        System.out.println(deskripsi(teks));
        System.out.println(deskripsi(kosong));
        System.out.println(deskripsi(pesan));
        System.out.println(deskripsi(pecahan));
    }
}
