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:

Tambahkan ke script.js
// 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:

Tambahkan ke script.js
// 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

  1. Buat array berisi minimal 5 objek mahasiswa (dengan properti nama, nim, jurusan, nilai) dan tampilkan dalam bentuk tabel HTML
  2. Implementasikan fungsi untuk mencari mahasiswa dengan nilai tertinggi menggunakan method array
  3. Filter dan tampilkan mahasiswa yang nilainya di atas rata-rata
  4. Buat fungsi untuk mengurutkan mahasiswa berdasarkan nama (ascending/descending)
  5. 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.