NAMA : BINTANG DWI ANGGARA
KELAS : X-RPL
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body onchange="textColor(), hoverColor()"> <ul id="unorderedList"> </ul> <hr> <span style="font-size: 4vh;"><b>Konfigurasi</b></span> <form onchange="generateList()"> <label style="margin-right: 17px;">Teks:</label> <input type="text" id="inputIsiList"> <br> <label>Jumlah:</label> <input type="number" id="inputJumlahList"> </form> <br> <span style="font-size: 4vh;"><b>Warna Text</b></span> <form id="warnaText"> <input type="radio" name="clr" id="textBiru-Btn"> <label>Biru</label> <input type="radio" name="clr" id="textHijau-Btn"> <label>Hijau</label> <input type="radio" name="clr" id="textKuning-Btn"> <label>Kuning</label> </form> <br> <span style="font-size: 4vh;"><b>Warna Hover</b></span> <form id="warnaHover"> <input type="radio" name="clr" id="hoverMerah-Btn"> <label>Merah</label> <input type="radio" name="clr" id="hoverCokelat-Btn"> <label>Cokelat</label> <input type="radio" name="clr" id="hoverPink-Btn"> <label>Pink</label> </form> <script> // simpan list dan unordered list let list = document.getElementsByTagName("li"); let ul = document.getElementById("unorderedList"); // Simpan input konfigurasi let isiText = document.getElementById("inputIsiList"); let jumlahList = document.getElementById("inputJumlahList"); // simpan elemen radio untuk text color let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); // simpan elemen radio untuk hover color let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn"); // Fungsi Konfigurasi function generateList() { // agar page tidak refresh event.preventDefault(); // clear isi ul untuk membuat list baru ul.innerHTML = ''; // check input jika memiliki value if ((isiText && isiText.value) && (jumlahList && jumlahList.value)) { // loop untuk membuat element list for (let i = 0; i < Number(jumlahList.value); i++) { let li = document.createElement("li"); li.appendChild(document.createTextNode(isiText.value + (i + 1))); ul.appendChild(li); } } } // Untuk otomatis mengganti Isi list jika input diganti valuenya isiText.addEventListener('input', generateList); jumlahList.addEventListener('input', generateList); // Fungsi Ganti color list text // buat fungsi, iterasi List buat ganti color function iterateListColor(property, value) { for (let index = 0; index < list.length; index++) { list[index].style[property] = value; } } // fungsi ganti color list text function textColor() { if (textBiru.checked) { iterateListColor("color", "blue"); } else if (textHijau.checked) { iterateListColor("color", "green"); } else if (textKuning.checked) { iterateListColor("color", "yellow"); } } // Fungsi ganti color text saat di hover function hoverColor() { for (let index = 0; index < list.length; index++) { list[index].onmouseover = function() { if (hoverMerah.checked) { list[index].style.color = "red"; } else if (hoverCokelat.checked) { list[index].style.color = "brown"; } else if (hoverPink.checked) { list[index].style.color = "pink"; } } list[index].onmouseout = function() { if (textBiru.checked || textHijau.checked || textKuning.checked) { textColor(); } else { list[index].style.color = ""; } } } } </script> </body> </html>
Form Konfigurasi: Memungkinkan pengguna mengatur teks dan jumlah list.
Form Warna Text dan Hover: Memberikan opsi untuk mengubah warna teks dan warna saat di-hover.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Aplikasi Pengaturan List</title> </head> <body onchange="textColor(), hoverColor()"> <!-- Daftar List ditampilkan dalam elemen ul --> <ul id="unorderedList"> </ul> <hr> <!-- Konfigurasi untuk membuat list baru --> <span style="font-size: 4vh;"><b>Konfigurasi</b></span> <form onchange="generateList()"> <label style="margin-right: 17px;">Teks:</label> <input type="text" id="inputIsiList"> <br> <label>Jumlah:</label> <input type="number" id="inputJumlahList"> </form> <br> <!-- Pengaturan Warna Teks --> <span style="font-size: 4vh;"><b>Warna Text</b></span> <form id="warnaText"> <input type="radio" name="clr" id="textBiru-Btn"> <label>Biru</label> <input type="radio" name="clr" id="textHijau-Btn"> <label>Hijau</label> <input type="radio" name="clr" id="textKuning-Btn"> <label>Kuning</label> </form> <br> <!-- Pengaturan Warna Saat Hover --> <span style="font-size: 4vh;"><b>Warna Hover</b></span> <form id="warnaHover"> <input type="radio" name="clr" id="hoverMerah-Btn"> <label>Merah</label> <input type="radio" name="clr" id="hoverCokelat-Btn"> <label>Cokelat</label> <input type="radio" name="clr" id="hoverPink-Btn"> <label>Pink</label> </form> <!-- Skrip JavaScript untuk logika aplikasi --> <script> // ... (diberikan dalam kode) ... </script> </body> </html>
generateList(): Fungsi untuk membuat list baru berdasarkan konfigurasi yang dimasukkan pengguna.
textColor() dan hoverColor(): Fungsi untuk mengatur warna teks dan warna saat di-hover berdasarkan pilihan pengguna.
<script> // ... (diberikan dalam kode) ... </script>
Loop Pembuatan List: Membuat elemen list sejumlah yang dimasukkan pengguna dan menambahkannya ke dalam elemen <ul>.
function generateList() { // ... (diberikan dalam kode) ... }
function textColor() { // ... (diberikan dalam kode) ... }
function hoverColor() { // ... (diberikan dalam kode) ... }
ul: Menyimpan referensi ke elemen dengan id "unorderedList" (elemen <ul>).
isiText dan jumlahList: Menyimpan referensi ke elemen input untuk teks dan jumlah list.
Elemen Radio Warna Text (textBiru, textHijau, textKuning): Menyimpan referensi ke elemen radio yang mengontrol warna teks.
Elemen Radio Warna Hover (hoverMerah, hoverCokelat, hoverPink): Menyimpan referensi ke elemen radio yang mengontrol warna saat di-hover.
let list = document.getElementsByTagName("li"); let ul = document.getElementById("unorderedList"); let isiText = document.getElementById("inputIsiList"); let jumlahList = document.getElementById("inputJumlahList"); let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn");
7. Fungsi generateList()
ul.innerHTML = '';: Menghapus isi dari elemen <ul> untuk membersihkan list sebelum membuat yang baru.
Validasi Input: Memastikan bahwa teks dan jumlah list diisi sebelum membuat list baru.
Loop Pembuatan List: Membuat elemen list sejumlah yang dimasukkan pengguna dan menambahkannya ke dalam elemen <ul>.
let list = document.getElementsByTagName("li"); let ul = document.getElementById("unorderedList"); let isiText = document.getElementById("inputIsiList"); let jumlahList = document.getElementById("inputJumlahList"); let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn");
jumlahList.addEventListener('input', generateList);: Memanggil generateList() ketika jumlah list berubah.
isiText.addEventListener('input', generateList); jumlahList.addEventListener('input', generateList);
function textColor() { if (textBiru.checked) { iterateListColor("color", "blue"); } else if (textHijau.checked) { iterateListColor("color", "green"); } else if (textKuning.checked) { iterateListColor("color", "yellow"); } }
function hoverColor() { for (let index = 0; index < list.length; index++) { // ... } }
function iterateListColor(property, value) { for (let index = 0; index < list.length; index++) { list[index].style[property] = value; } }





