JavaScript Dasar
Array & Objek
Bekerja dengan struktur data array dan objek dalam JavaScript
Array dan Metode Array
Pada langkah ini, kita akan belajar bekerja dengan array dan berbagai metode array:
// Array dan metode array
const buah = ["Apel", "Jeruk", "Mangga", "Pisang", "Anggur"];
document.getElementById("result").innerHTML += `
<hr>
<h3>Manipulasi Array:</h3>
<div id="array-demo"></div>
`;
// Menampilkan array
document.getElementById("array-demo").innerHTML += `
<p><strong>Array buah:</strong> ${buah.join(", ")}</p>
`;
// Menambahkan item
buah.push("Durian");
document.getElementById("array-demo").innerHTML += `
<p><strong>Setelah push Durian:</strong> ${buah.join(", ")}</p>
`;
// Menghapus item terakhir
const itemDihapus = buah.pop();
document.getElementById("array-demo").innerHTML += `
<p><strong>Setelah pop:</strong> ${buah.join(", ")} (item dihapus: ${itemDihapus})</p>
`;
// Mengurutkan array
buah.sort();
document.getElementById("array-demo").innerHTML += `
<p><strong>Setelah sort:</strong> ${buah.join(", ")}</p>
`;
// Array map
const hargaBuah = [10000, 8000, 15000, 5000, 20000];
const daftarBuah = buah.map((item, index) => `${item} (Rp${hargaBuah[index].toLocaleString()})`);
document.getElementById("array-demo").innerHTML += `
<p><strong>Array dengan harga:</strong> ${daftarBuah.join(", ")}</p>
`;
// Array filter
const buahMahal = buah.filter((item, index) => hargaBuah[index] > 10000);
document.getElementById("array-demo").innerHTML += `
<p><strong>Buah dengan harga > 10.000:</strong> ${buahMahal.join(", ")}</p>
`;Metode array seperti push(), pop(), map(), filter(), dan reduce() adalah tools yang sangat berguna untuk memanipulasi data dalam array. Metode-metode ini membuat kode lebih clean dan mudah dibaca.
Bekerja dengan Objek
Sekarang mari kita pelajari cara bekerja dengan objek dalam JavaScript:
// Objek
const mahasiswa = {
nama: "Budi Santoso",
nim: "20210001",
jurusan: "Teknik Informatika",
nilai: {
algoritma: 85,
basis_data: 90,
web: 88
},
hobi: ["Coding", "Membaca", "Futsal"],
tampilkanInfo: function() {
return `${this.nama} (${this.nim}) - ${this.jurusan}`;
},
hitungRataRata: function() {
const nilaiArray = Object.values(this.nilai);
const total = nilaiArray.reduce((sum, nilai) => sum + nilai, 0);
return (total / nilaiArray.length).toFixed(2);
}
};
document.getElementById("result").innerHTML += `
<hr>
<h3>Manipulasi Objek:</h3>
<div id="objek-demo"></div>
`;
// Menampilkan informasi objek
document.getElementById("objek-demo").innerHTML += `
<p><strong>Info Mahasiswa:</strong> ${mahasiswa.tampilkanInfo()}</p>
<p><strong>Rata-rata Nilai:</strong> ${mahasiswa.hitungRataRata()}</p>
<p><strong>Hobi:</strong> ${mahasiswa.hobi.join(", ")}</p>
`;
// Menambahkan properti baru ke objek
mahasiswa.email = "budi.santoso@example.com";
document.getElementById("objek-demo").innerHTML += `
<p><strong>Email:</strong> ${mahasiswa.email}</p>
`;
// Mengubah nilai properti
mahasiswa.nilai.web = 92;
document.getElementById("objek-demo").innerHTML += `
<p><strong>Nilai Web setelah diubah:</strong> ${mahasiswa.nilai.web}</p>
`;
// Menghapus properti
delete mahasiswa.hobi;
document.getElementById("objek-demo").innerHTML += `
<p><strong>Hobi setelah dihapus:</strong> ${mahasiswa.hobi ? mahasiswa.hobi.join(", ") : "Tidak ada data hobi"}</p>
`;Objek dalam JavaScript adalah struktur data key-value yang sangat fleksibel. Kalian dapat menambahkan, mengubah, atau menghapus properti objek secara dinamis. Objek juga dapat memiliki method (fungsi) sebagai properti.
Latihan
- Buat array berisi minimal 5 objek mahasiswa (dengan properti nama, nim, jurusan, nilai) dan tampilkan dalam bentuk tabel HTML
- Implementasikan fungsi untuk mencari mahasiswa dengan nilai tertinggi menggunakan method array
- Filter dan tampilkan mahasiswa yang nilainya di atas rata-rata
- Buat fungsi untuk mengurutkan mahasiswa berdasarkan nama (ascending/descending)
- Tambahkan fitur CRUD sederhana (Create, Read, Update, Delete) untuk data mahasiswa dengan event handler
Selanjutnya, mari kita lanjut ke DOM & API untuk mempelajari manipulasi DOM dan penggunaan Fetch API.
