Skip to main content

Tugas 3 Pemrograman Website B - Pencarian Kode Pos


Tugas 3 Pemrograman Website

Nama : Muhammad Fuad Salim

NRP : 5025201057

Kelas : PWEB-B

=======================================

Deskripsi 

Membuat pencarian kode pos Indonesia dengan metode pencarian dengan memilih Provinsi, Kabupaten, dan Kecamatan. Output dari hasil pencarian ini adalah berupa informasi daerah tersebut dan juga kode pos pada daerah tersebut.

Website pencarian kode pos Indonesia ini dibuat dengan menggunakan HTML, CSS, dan JavaScript. Serta untuk data kode pos menggunakan format JSON yang diambil dari internet serta format datanya menggunakan JSON.

Link Repository : Repository

Code 

HTML :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>KodePos Indonesia</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="index.js"></script>
<link rel="stylesheet" href="index.css">
</head>
<body>
<div class="header">
<h1>Kode Pos Indonesia</h1>
</div>
<div class="container">
<div class="card">
<p>Masukkan data berupa wilayah Provinsi, Kabupaten, dan Kecamatan untuk mencari kode pos</p>
<h1>Provinsi</h1>
<select id="prov">
<option value="item0">-- Pilih Provinsi --</option>
</select>
<h1>Kabupaten</h1>
<select id="kab">
<option value="item0">-- Pilih Kabupaten --</option>
</select>
<h1>Kecamatan</h1>
<select id="kec">
<option value="item0">-- Pilih Kecamatan --</option>
</select>
<button type="button" id="searchBtn" target="#res">Cari</button>
</div>
<div id="res" class=""></div>
</div>
</body>
</html>
view raw html pos hosted with ❤ by GitHub
CSS :
/* Fonts */
@font-face {
font-family: 'open_sansregular';
src: url('opensans-regular-webfont.woff2') format('woff2'),
url('opensans-regular-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}
/* CSS Reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-style: normal;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/* Custom CSS */
* {
font-family: sans-serif;
}
body {
background-color: lightgray;
}
.header {
display:flex;
align-items: center;
background-color: #f67606;
padding-left: 3em;
height: 60px;
}
.header h1 {
color:whitesmoke;
font-size: large;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: 6.3em 16em;
max-width: 100%;
}
.card {
display: flex;
flex-direction: column;
justify-content: center;
background-color: whitesmoke;
border-radius: 10px;
box-shadow: 0px 0px 20px -8px grey;
padding: 3em;
width: 100%;
height: 25em;
margin-bottom: 6em;
}
.card p {
margin-bottom: 20px;
}
.card h1 {
font-size: large;
margin-bottom: 10px;
}
select {
margin-bottom: 30px;
border: 1px solid lightgray;
border-radius: 20px;
width: 40%;
height: 40px;
padding: 0 2em;
appearance: none;
}
select:hover, button:hover {
cursor:pointer;
}
#searchBtn {
border: 1px solid lightgray;
border-radius: 10px;
height: 40px;
width: 80px;
font-size: 15px;
background-color: #110a06;
color: whitesmoke;
}
#searchBtn:hover {
background-color: #f67606;
}
#res {
display: flex;
flex-direction: column;
}
.res-card {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: whitesmoke;
height: 50px;
width: 350px;
padding: 2em;
margin-bottom: 20px;
border-radius: 0 0 10px 10px;
/* box-shadow: 0px 0px 20px -5px grey; */
}
.urban {
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
background-color: #f67606;
color: whitesmoke;
padding: 0 2em;
height: 30px;
width: 350px;
border-radius: 10px 10px 0 0;
/* box-shadow: 0px 0px 20px -5px grey; */
}
.code {
margin-bottom: 10px;
font-weight: bold;
}
view raw css pos hosted with ❤ by GitHub
JavaScript :
$(document).ready(function () {
var selectedProv = {};
var selectedKab = {};
var selectedKec = {};
// load provinsi
$.getJSON('prov.json', function(data) {
var output = '<option>-- Pilih Provinsi --</option>\n';
$.each(data, function(key, val) {
output += ('<option value=\"' + val.id + '\">' + val.nama + '</option>\n');
// console.log(output);
});
$('#prov').html(output);
});
// load kabupaten
$('#prov').change(function () {
// var selectedProv = $('#prov option:selected').val();
selectedProv[0] = $('#prov option:selected').val();
selectedProv[1] = $('#prov option:selected').text();
console.log(selectedProv[0]);
$.getJSON('kabupaten/' + selectedProv[0] + '.json', function(data) {
var output = '<option>-- Pilih Kabupaten --</option>\n';
$.each(data, function(key, val) {
output += ('<option value=\"' + val.id + '\">' + val.nama.slice(5) + '</option>\n');
// console.log(output);
});
$('#kab').html(output);
})
.fail(function() {$('#kab').html('<option>-- Pilih Kabupaten --</option>\n');});
});
// load kecamatan
$('#kab').change(function () {
// var selectedKab = $('#kab option:selected').val();
selectedKab[0] = $('#kab option:selected').val();
selectedKab[1] = $('#kab option:selected').text();
console.log(selectedKab[0]);
$.getJSON('kecamatan/' + selectedKab[0] + '.json', function(data) {
var output = '<option>-- Pilih Kecamatan --</option>\n';
$.each(data, function(key, val) {
output += ('<option value=\"' + val.id + '\">' + val.nama.toUpperCase() + '</option>\n');
// console.log(output);
});
$('#kec').html(output);
})
.fail(function() {$('#kec').html('<option>-- Pilih Kecamatan --</option>\n');});
});
// display result
$('#kec').change(function () {
selectedKec[0] = $('#kec option:selected').val();
selectedKec[1] = $('#kec option:selected').text();
console.log(selectedKec[0]);
});
function capitalCase(mySentence) {
const words = mySentence.toLowerCase().replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase());
return words;
}
$('#searchBtn').click(function() {
console.log('IM HERE');
$.getJSON('kodepos.json', function(data) {
var output = '';
$.each(data, function(key, val) {
// console.log(val.sub_district);
// console.log(selectedKec[1]);
if(val.sub_district === selectedKec[1]) {
// if(val.sub_district.localCompare(selectedKec[1]) == 0) {
console.log('IM HERE2');
output += ('<div class=\"urban\">' + val.urban +
'</div><div class=\"res-card\"><p class="code">' + val.postal_code + '</p>' +
'<p>Daerah Kecamatan '+ capitalCase(val.urban) +
', Kecamatan '+ capitalCase(selectedKec[1]) +
', Kabupaten '+ capitalCase(selectedKab[1]) +
', Provinsi '+ capitalCase(selectedProv[1]) +
'</p></div>\n');
}
});
$('#res').html(output);
});
});
});
view raw Js pos hosted with ❤ by GitHub

Tampilan 

Tampilan Awal Website Pencarian Kode Pos
Tampilan ketika selesai memilih datanya

Hasil Pencarian Kode Pos dengan data yang dipilih
Terima Kasih :D






Comments

Popular posts from this blog

Pemrograman Berbasis Kerangka Kerja - Evaluasi Tengah Semester Membuat Aplikasi Peramal Cuaca

Pemrograman Berbasis Kerangka Kerja - Evaluasi Tengah Semester Membuat Aplikasi Peramal Cuaca Nama : Muhammad Fuad Salim NRP : 5025201057 Kelas : PBKK - B ================================================ Deskripsi Pada Evaluasi Tengah semester ini kami diminta untuk merancang aplikasi Desktop, Mobile, dan Website serta mengimplementasikan rancangan tersebut menggunakan framework .NET. Adapun referensi yang diambil untuk Evaluasi Tengah semester ini diambil dari Weather Apps Desktop Repository :  Repository Rancangan UI Tampilan Tampilan Awal Tampilan Mencari Cuaca Surabaya Tampilan Mencari Cuaca Sumenep Terima Kasih :D