JavaScript Dasar
Loop & Fungsi
Memahami perulangan dan pembuatan fungsi dalam JavaScript
Menggunakan Loop
Tambahkan kode berikut untuk mempelajari loop dalam JavaScript:
// For loop
let nilaiSiswa = [85, 92, 78, 90, 88];
let total = 0;
document.getElementById("result").innerHTML += `
<hr>
<h3>Daftar Nilai Siswa:</h3>
<ul id="daftar-nilai"></ul>
<p id="rata-rata"></p>
`;
for (let i = 0; i < nilaiSiswa.length; i++) {
total += nilaiSiswa[i];
document.getElementById("daftar-nilai").innerHTML += `
<li>Siswa ${i + 1}: ${nilaiSiswa[i]}</li>
`;
}
let rataRata = total / nilaiSiswa.length;
document.getElementById("rata-rata").innerHTML = `
Rata-rata nilai: <strong>${rataRata.toFixed(2)}</strong>
`;
// While loop
document.getElementById("result").innerHTML += `
<h3>Countdown:</h3>
<div id="countdown"></div>
`;
let hitungMundur = 5;
while (hitungMundur > 0) {
document.getElementById("countdown").innerHTML += `
<span class="inline-block bg-blue-100 px-2 py-1 m-1 rounded">${hitungMundur}</span>
`;
hitungMundur--;
}
// For...of loop (ES6)
document.getElementById("result").innerHTML += `
<h3>Nilai dengan for...of:</h3>
<div id="nilai-of" class="flex flex-wrap gap-2"></div>
`;
for (let nilai of nilaiSiswa) {
let statusNilai = nilai >= 80 ? "text-green-600" : "text-red-600";
document.getElementById("nilai-of").innerHTML += `
<span class="inline-block bg-gray-100 px-3 py-1 rounded ${statusNilai}">${nilai}</span>
`;
}JavaScript menyediakan beberapa jenis loop: for, while, do-while, for...in, dan for...of. for...of (diperkenalkan di ES6) sangat berguna untuk meng-iterasi array dan objek iterable lainnya.
Fungsi dan Event Handler
Pada langkah ini, kita akan belajar membuat fungsi dan menangani event:
<hr>
<div class="event-demo p-4 my-4 border border-gray-300 rounded">
<h2 class="text-xl font-bold mb-3">Demo Event Handler</h2>
<input type="text" id="nama-input" placeholder="Masukkan nama Kalian" class="border p-2 rounded w-full mb-3">
<button id="sapa-button" class="bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600">Sapa Saya</button>
<div id="sapa-output" class="mt-3"></div>
<div class="mt-4">
<h3 class="font-semibold mb-2">Kalkulator Sederhana</h3>
<div class="flex gap-2 mb-3">
<input type="number" id="angka1" placeholder="Angka 1" class="border p-2 rounded flex-1">
<input type="number" id="angka2" placeholder="Angka 2" class="border p-2 rounded flex-1">
</div>
<div class="flex gap-2">
<button id="btn-tambah" class="bg-green-500 text-white px-3 py-1 rounded hover:bg-green-600">+</button>
<button id="btn-kurang" class="bg-yellow-500 text-white px-3 py-1 rounded hover:bg-yellow-600">-</button>
<button id="btn-kali" class="bg-purple-500 text-white px-3 py-1 rounded hover:bg-purple-600">×</button>
<button id="btn-bagi" class="bg-red-500 text-white px-3 py-1 rounded hover:bg-red-600">÷</button>
</div>
<div id="hasil-kalkulator" class="mt-3 font-semibold"></div>
</div>
</div>function sapaNama(nama) {
return `Halo, ${nama}! Selamat belajar JavaScript!`;
}
// Event handler untuk tombol sapa
document.getElementById("sapa-button").addEventListener("click", function() {
const nama = document.getElementById("nama-input").value;
if (nama.trim() === "") {
document.getElementById("sapa-output").innerHTML =
`<p class="text-red-500">Silakan masukkan namaKalianterlebih dahulu!</p>`;
} else {
const pesan = sapaNama(nama);
document.getElementById("sapa-output").innerHTML =
`<p class="text-green-500">${pesan}</p>`;
}
});
// Fungsi untuk kalkulator
function hitungKalkulator(angka1, angka2, operasi) {
let hasil = 0;
switch (operasi) {
case "tambah":
hasil = angka1 + angka2;
break;
case "kurang":
hasil = angka1 - angka2;
break;
case "kali":
hasil = angka1 * angka2;
break;
case "bagi":
if (angka2 === 0) {
return "Error: Pembagian dengan nol tidak diperbolehkan";
}
hasil = angka1 / angka2;
break;
default:
return "Operasi tidak valid";
}
return hasil;
}
// Event handler untuk tombol operasi matematika
document.getElementById("btn-tambah").addEventListener("click", function() {
const angka1 = parseFloat(document.getElementById("angka1").value);
const angka2 = parseFloat(document.getElementById("angka2").value);
if (isNaN(angka1) || isNaN(angka2)) {
document.getElementById("hasil-kalkulator").innerHTML =
`<p class="text-red-500">Masukkan angka yang valid!</p>`;
} else {
const hasil = hitungKalkulator(angka1, angka2, "tambah");
document.getElementById("hasil-kalkulator").innerHTML =
`<p>Hasil: ${angka1} + ${angka2} = ${hasil}</p>`;
}
});
document.getElementById("btn-kurang").addEventListener("click", function() {
const angka1 = parseFloat(document.getElementById("angka1").value);
const angka2 = parseFloat(document.getElementById("angka2").value);
if (isNaN(angka1) || isNaN(angka2)) {
document.getElementById("hasil-kalkulator").innerHTML =
`<p class="text-red-500">Masukkan angka yang valid!</p>`
} else {
const hasil = hitungKalkulator(angka1, angka2, "kurang");
document.getElementById("hasil-kalkulator").innerHTML =
`<p>Hasil: ${angka1} - ${angka2} = ${hasil}</p>`;
}
});
document.getElementById("btn-kali").addEventListener("click", function() {
const angka1 = parseFloat(document.getElementById("angka1").value);
const angka2 = parseFloat(document.getElementById("angka2").value);
if (isNaN(angka1) || isNaN(angka2)) {
document.getElementById("hasil-kalkulator").innerHTML =
`<p class="text-red-500">Masukkan angka yang valid!</p>`;
} else {
const hasil = hitungKalkulator(angka1, angka2, "kali");
document.getElementById("hasil-kalkulator").innerHTML =
`<p>Hasil: ${angka1} × ${angka2} = ${hasil}</p>`;
}
});
document.getElementById("btn-bagi").addEventListener("click", function() {
const angka1 = parseFloat(document.getElementById("angka1").value);
const angka2 = parseFloat(document.getElementById("angka2").value);
if (isNaN(angka1) || isNaN(angka2)) {
document.getElementById("hasil-kalkulator").innerHTML =
`<p class="text-red-500">Masukkan angka yang valid!</p>`;
} else {
const hasil = hitungKalkulator(angka1, angka2, "bagi");
document.getElementById("hasil-kalkulator").innerHTML =
`<p>Hasil: ${angka1} ÷ ${angka2} = ${hasil}</p>`;
}
});Latihan
- Buat loop untuk mencetak tabel perkalian dari 1 sampai 10 untuk angka pilihan Kalian
- Implementasikan fungsi untuk menghitung faktorial dari sebuah angka
- Buat fungsi untuk memeriksa apakah sebuah angka adalah bilangan prima
- Buat kalkulator BMI (Body Mass Index) dengan fungsi dan event handler
- Implementasikan program FizzBuzz (print angka 1-100, tapi untuk kelipatan 3 print "Fizz", kelipatan 5 print "Buzz", kelipatan keduanya print "FizzBuzz")
Selanjutnya, mari kita lanjut ke Array & Objek untuk mempelajari struktur data array dan objek.
