public class NamaPaket {

    public static void main(String[] args) {
        System.out.println(bangunPaket("example.com", "perpustakaan"));
        System.out.println(bangunPaket("tokobudi.co.id", "kasir"));
        System.out.println(bangunPaket("kampus.ac.id", "nilai"));

        System.out.println();
        System.out.println("cek java.contoh    : " + cek("java.contoh"));
        System.out.println("cek com.example    : " + cek("com.example"));
        System.out.println("cek com.contoh-api : " + cek("com.contoh-api"));
    }

    static String bangunPaket(String domain, String proyek) {
        String[] bagian = domain.toLowerCase().split("\\.");
        StringBuilder nama = new StringBuilder();
        for (int i = bagian.length - 1; i >= 0; i--) {
            nama.append(bagian[i]).append('.');
        }
        return nama + proyek;
    }

    static String cek(String namaPaket) {
        if (namaPaket.startsWith("java.")) {
            return "terlarang, prefiks java dipesan platform";
        }
        for (String segmen : namaPaket.split("\\.")) {
            if (!segmen.matches("[a-z_][a-z0-9_]*")) {
                return "tidak sah, segmen '" + segmen + "' bukan identifier";
            }
        }
        return "sah";
    }
}
