import java.net.URI;

public class BedahUri {
    public static void main(String[] args) throws Exception {
        URI uri = URI.create("https://api.example.com:8443/v1/produk?halaman=2&urut=harga#ulasan");

        System.out.println("scheme   : " + uri.getScheme());
        System.out.println("host     : " + uri.getHost());
        System.out.println("port     : " + uri.getPort());
        System.out.println("path     : " + uri.getPath());
        System.out.println("query    : " + uri.getQuery());
        System.out.println("fragment : " + uri.getFragment());

        // Merujuk alamat relatif terhadap URI dasar
        URI dasar = URI.create("https://api.example.com/v1/");
        URI gabung = dasar.resolve("produk/42");
        System.out.println("resolve  : " + gabung);

        // Membangun URI dari komponen (komponen dienkode otomatis)
        URI dibangun = new URI("https", null, "api.example.com", -1,
                "/v1/produk", "halaman=3", null);
        System.out.println("dibangun : " + dibangun);
    }
}
