Tujuan Program
Tujuan dari program ini adalah membuat Jam digital dengan fungsi menampilkan
waktu dalam format Jam:Menit:Detik serta fitur border jam berubah warna jika
detik jam memiliki angka genap atau ganjil.
Hasil Akhir |
Source Code
Kalian bisa mencoba kode berikut secara langsung dengan mengklik link
ini [JSFiddle Link]
Github Repository untuk Mini Project modul Pengenalan Javascript ada di link
berikut [Repository]
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> @import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap'); :root { --neongreen: #48ff00; --biru: rgb(0, 132, 255); --merah: rgb(255, 22, 22); } body { margin: 0; height: 100vh; display: grid; place-items: center; background-color: rgb(8, 8, 22); font-family: 'Bebas Neue', sans-serif; } #container { display: grid; place-items: center; color: var(--neongreen); text-shadow: 0 0 5vh var(--neongreen); background-color: rgb(5, 5, 5); padding: 1.5vh 5vh 1.5vh 5vh; border-radius: 25px; border: 1vh solid; transition: border-color 0.5s ease; border-color: none; } #displayTime { font-size: 12vh; } #checkOddEven { font-size: 4vh; } </style> </head> <body> <div id="container"> <span id="displayTime">00:00:00</span> <span id="checkOddEven">TEST</span> </div> <script> // Jalankan fungsi clock() setiap 1000 milisekon (1 detik) setInterval(clock, 1000); let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); if (date.getSeconds() % 2 == 0) { timeContainer.style.borderColor = "var(--merah)"; checkOddEven.innerHTML = "GENAP"; } else { timeContainer.style.borderColor = "var(--biru)"; checkOddEven.innerHTML = "GANJIL"; } } </script> </body> </html>
Pembahasan
1. Styling dan HTML
Pertama buat struktur HTML beserta isinya serta tambah styling CSS.
@import digunakan untuk menggunakan font external (dari google font)
dan :root digunakan untuk membuat "variabel" dalam CSS.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> @import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap'); :root { --neongreen: #48ff00; --biru: rgb(0, 132, 255); --merah: rgb(255, 22, 22); } body { margin: 0; height: 100vh; display: grid; place-items: center; background-color: rgb(8, 8, 22); font-family: 'Bebas Neue', sans-serif; } #container { display: grid; place-items: center; color: var(--neongreen); text-shadow: 0 0 5vh var(--neongreen); background-color: rgb(5, 5, 5); padding: 1.5vh 5vh 1.5vh 5vh; border-radius: 25px; border: 1vh solid; transition: border-color 0.5s ease; border-color: none; } #displayTime { font-size: 12vh; } #checkOddEven { font-size: 4vh; } </style> </head> <body> <div id="container"> <span id="displayTime">00:00:00</span> <span id="checkOddEven">TEST</span> </div> </body> </html>
Hasilnya akan jadi seperti berikut
2. Tambahkan Script Javascript
Setelah membuat tampilan web, langkah selanjutnya kita bisa membuat skrip agar
jam tersebut bekerja.
... <script> setInterval(clock, 1000); let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); if (date.getSeconds() % 2 == 0) { timeContainer.style.borderColor = "var(--merah)"; checkOddEven.innerHTML = "GENAP"; } else { timeContainer.style.borderColor = "var(--biru)"; checkOddEven.innerHTML = "GANJIL"; } } </script> ...
Pembahasan
1. Ambil element HTML menggunakan document
.getElementById dan masukan ke
dalam variabel.
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); </script>
2. Buat function jam. Deklarasi function dan beri nama
clock().
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { ... } </script>
3. Dapatkan waktu saat ini menggunakan object
Date() dan simpan di dalam
variabel bernama date.
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); ... } </script>
4. Tampilkan waktu dengan
.innerHTML di dalam variabel
displayTime (yang merupakan elemen
<span> dengan id
"displayTime" yang ada di HTML) dengan
waktu diformat 24 jam.
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); ... } </script>
5. Buat conditional if-else. Kondisinya yakni jika detik waktu (.getSeconds()
berfungsi mendapatkan detik dari object
Date) dibagi 2 hasilnya 0, Jalankan kode yang ada di dalamnya. Jika tidak,
jalankan kode berikut.
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); if (date.getSeconds() % 2 == 0) { ... } else { ... } } </script>
6. Di conditional if, tambahkan style bordercolor merah dan ubah isi dari
checkOddEven menjadi GENAP. sedangkan di conditional else, tambahkan
style bordercolor biru dan ubah isi dari checkOddEven menjadi GANJIL.
<script> let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); if (date.getSeconds() % 2 == 0) { timeContainer.style.borderColor = "var(--merah)"; checkOddEven.innerHTML = "GENAP"; } else { timeContainer.style.borderColor = "var(--biru)"; checkOddEven.innerHTML = "GANJIL"; } } </script>
7. Tambahkan setInterval(clock, 1000) untuk menjalankan function clock()
setiap 1000 milidetik atau 1 detik.
<script> setInterval(clock, 1000); let displayTime = document.getElementById("displayTime"); let timeContainer = document.getElementById("container"); let checkOddEven = document.getElementById("checkOddEven"); function clock() { let date = new Date(); displayTime.innerHTML = date.toLocaleTimeString(undefined, {hour12: false}); if (date.getSeconds() % 2 == 0) { timeContainer.style.borderColor = "var(--merah)"; checkOddEven.innerHTML = "GENAP"; } else { timeContainer.style.borderColor = "var(--biru)"; checkOddEven.innerHTML = "GANJIL"; } } </script>
Bila sudah menambahkan Javascript tersebut, Jam akan menunjukkan waktu dan
border akan berubah warna menjadi merah ketika detik genap dan border menjadi
biru ketika detik ganjil.
Jam digital ketika detik ganjil |
Jam digital ketika detik genap |
0 Komentar