Filter Data di Array? Coba Pakai Array Filter!

Filter Data di Array? Coba Pakai Array Filter!
Photo by Roman Synkevych / Unsplash

Pernah nggak sih kamu kerja dengan array tapi cuma butuh data yang memenuhi kriteria tertentu? Misalnya, cari angka genap dari sekumpulan angka, ambil produk dengan stok tersisa, atau filter user yang aktif. Kalau iya, berarti kamu butuh filter() di JavaScript! 😎

Metode filter() ini sangat berguna buat menyaring elemen-elemen dalam array berdasarkan kondisi yang kita tentukan. Hasilnya? Sebuah array baru yang cuma berisi elemen yang lolos dari filter. Gampang dan efisien!

Yuk, kita bahas cara pakai filter() dan gimana bikin kode jadi lebih rapi! 🎯

Apa Itu filter()?

filter() adalah metode bawaan JavaScript yang digunakan buat menyaring elemen dalam array sesuai dengan kondisi tertentu. Metode ini tidak mengubah array asli, tapi menghasilkan array baru berdasarkan hasil filter.

Sintaks Dasar:

let newArray = array.filter(function(element, index, array) {
  return kondisi;
});

Parameter yang Bisa Dipakai:

  • element → Elemen array yang sedang diperiksa. (Wajib)
  • index → Indeks dari elemen dalam array. (Opsional)
  • array → Array yang sedang diperiksa. (Opsional)

Hasil yang dikembalikan?
Array baru yang hanya berisi elemen yang memenuhi kondisi.

Contoh Penggunaan filter()

1. Filter Angka Genap dari Array

Misalnya kita punya daftar angka dan mau nyari angka yang genap.

let angka = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

let angkaGenap = angka.filter(num => num % 2 === 0);

console.log(angkaGenap);

Output:

[2, 4, 6, 8, 10]

Mudah banget, kan? Array asli tetap utuh, dan kita dapat array baru yang hanya berisi angka genap.

2. Filter Produk dengan Stok Tersedia

Misalnya kita punya daftar produk dan cuma mau ngambil produk yang stoknya masih ada.

let produk = [
  { nama: "Laptop", stok: 5 },
  { nama: "Mouse", stok: 0 },
  { nama: "Keyboard", stok: 3 },
  { nama: "Monitor", stok: 0 }
];

let produkTersedia = produk.filter(item => item.stok > 0);

console.log(produkTersedia);

Output:

[
  { nama: "Laptop", stok: 5 },
  { nama: "Keyboard", stok: 3 }
]

Jadi, hanya produk dengan stok lebih dari 0 yang masuk ke array baru.

3. Filter User yang Aktif

Kalau kamu lagi kerja dengan daftar user dan cuma mau ambil yang statusnya aktif, bisa pakai filter() juga.

let users = [
  { nama: "Andi", aktif: true },
  { nama: "Budi", aktif: false },
  { nama: "Citra", aktif: true },
  { nama: "Dewi", aktif: false }
];

let userAktif = users.filter(user => user.aktif);

console.log(userAktif);

Output:

[
  { nama: "Andi", aktif: true },
  { nama: "Citra", aktif: true }
]

Sekarang kita hanya mendapatkan user yang aktif.

4. Filter String Berdasarkan Kata Kunci

Misalnya kita punya daftar nama dan mau cari nama yang mengandung huruf "a".

let nama = ["Andi", "Budi", "Citra", "Dewi", "Eka"];

let namaAdaA = nama.filter(n => n.toLowerCase().includes("a"));

console.log(namaAdaA);

Output:

["Andi", "Citra", "Eka"]

Jadi, kita bisa nyaring data yang mengandung kata atau huruf tertentu dengan includes().

Kapan Sebaiknya Pakai filter()?

  • Kalau cuma mau ambil data yang memenuhi kondisi tertentu.
  • Kalau butuh array baru hasil filter, bukan sekadar looping.
  • Kalau pengen bikin kode lebih rapi dibanding pakai for manual.

Kapan Jangan Pakai filter()?

  • Kalau cuma mau looping tanpa butuh hasil array baru, lebih baik pakai forEach().
  • Kalau butuh mengubah data tanpa menyaring elemen, lebih baik pakai map().
  • Kalau perlu hanya satu elemen, lebih baik pakai find().

Kesimpulan

  • filter() adalah metode JavaScript yang berguna buat menyaring data dari array.
  • Menghasilkan array baru dengan elemen yang memenuhi kondisi tertentu.
  • Bisa dipakai buat memfilter angka, objek, string, atau data lainnya.
  • Alternatif yang lebih simpel dibanding pakai loop for biasa.