import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import java.util.Map;

public class EnkodeUrl {
    static String bangunKueri(Map<String, String> parameter) {
        StringBuilder hasil = new StringBuilder();
        for (Map.Entry<String, String> e : parameter.entrySet()) {
            if (hasil.length() > 0) {
                hasil.append('&');
            }
            hasil.append(URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8));
            hasil.append('=');
            hasil.append(URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8));
        }
        return hasil.toString();
    }

    public static void main(String[] args) {
        Map<String, String> parameter = new LinkedHashMap<>();
        parameter.put("nama", "Budi Santoso");
        parameter.put("kota", "Bandung");
        parameter.put("saringan", "harga < 100000");

        System.out.println("kueri    : " + bangunKueri(parameter));
        System.out.println("nama     : " + URLDecoder.decode("Budi+Santoso", StandardCharsets.UTF_8));
        System.out.println("saringan : " + URLDecoder.decode("harga+%3C+100000", StandardCharsets.UTF_8));
    }
}
