JS Array Search
Pelajari cara mencari elemen dalam array JavaScript dengan berbagai metode pencarian.
JavaScript Array Search untuk Pemula
Pencarian dalam array adalah operasi yang sangat penting dalam pemrograman JavaScript. Dengan metode pencarian yang tepat, kita bisa menemukan data dengan cepat dan efisien tanpa perlu menulis banyak kode manual.
Mengapa Kita Butuh Metode Pencarian Array? 🤔
Saat bekerja dengan array yang berisi banyak data, kita sering perlu:
- Mencari apakah elemen tertentu ada dalam array
- Menemukan posisi (indeks) elemen dalam array
- Mencari elemen yang memenuhi kriteria tertentu
- Memverifikasi apakah sebagian atau semua elemen memenuhi kondisi
Metode pencarian array di JavaScript memungkinkan kita melakukan semua ini dengan mudah!
1. Metode indexOf() dan lastIndexOf()
Penjelasan:
indexOf(item, start)
: Mengembalikan indeks kemunculan pertamaitem
dalam arraylastIndexOf(item, start)
: Mengembalikan indeks kemunculan terakhiritem
dalam array- Kedua metode mengembalikan
-1
jika elemen tidak ditemukan - Parameter
start
bersifat opsional, menentukan posisi awal pencarian
⚠️ Perhatian: Kedua metode menggunakan perbandingan ketat (===
), jadi [1, "1"]
akan dianggap sebagai nilai berbeda.
2. Metode includes()
Penjelasan:
includes(item, start)
: Mengembalikantrue
jika array berisi elemen yang ditentukan- Parameter
start
bersifat opsional, menentukan posisi awal pencarian - Metode ini lebih baru dibandingkan
indexOf()
(diperkenalkan di ES6) - Lebih mudah dibaca saat hanya perlu mengetahui keberadaan elemen
✅ Tip: Gunakan includes()
ketika hanya perlu tahu apakah elemen ada, dan indexOf()
ketika perlu tahu posisinya.
3. Metode find() dan findIndex()
Penjelasan:
find(callbackFn)
: Mengembalikan nilai elemen pertama yang memenuhi kondisifindIndex(callbackFn)
: Mengembalikan indeks elemen pertama yang memenuhi kondisi- Jika tidak ada elemen yang memenuhi kondisi,
find()
mengembalikanundefined
danfindIndex()
mengembalikan-1
- Callback function menerima tiga parameter: elemen saat ini, indeks, dan array itu sendiri
✨ Keunggulan: Sangat berguna untuk mencari dalam array objek berdasarkan properti atau kondisi kompleks.
4. Metode findLast() dan findLastIndex()
Penjelasan:
findLast(callbackFn)
: Mirip denganfind()
, tetapi mencari dari akhir arrayfindLastIndex(callbackFn)
: Mirip denganfindIndex()
, tetapi mencari dari akhir array- Metode ini relatif baru (ES2023)
⚠️ Perhatian: Pastikan browser atau lingkungan JavaScript Anda mendukung metode ini. Jika tidak, gunakan polyfill atau alternatif lain.
5. Metode filter()
Penjelasan:
filter(callbackFn)
: Mengembalikan array baru berisi semua elemen yang memenuhi kondisi- Berbeda dengan
find()
yang hanya mengembalikan satu elemen,filter()
mengembalikan semua elemen yang cocok - Jika tidak ada elemen yang memenuhi kondisi, mengembalikan array kosong
[]
✅ Tip: Gunakan filter()
saat perlu menemukan beberapa elemen, dan find()
saat hanya perlu satu elemen.
6. Metode some() dan every()
Penjelasan:
some(callbackFn)
: Mengembalikantrue
jika minimal satu elemen memenuhi kondisievery(callbackFn)
: Mengembalikantrue
jika semua elemen memenuhi kondisi- Kedua metode menghentikan iterasi segera setelah hasilnya ditentukan:
some()
berhenti ketika menemukan elemen yang memenuhi kondisievery()
berhenti ketika menemukan elemen yang tidak memenuhi kondisi
✨ Keunggulan: Metode ini sangat efisien untuk validasi data atau memeriksa kondisi dalam array.
7. Pencarian String dengan Array Methods
Penjelasan:
Contoh ini menunjukkan bagaimana kita bisa mengkombinasikan metode array dengan metode string untuk pencarian teks:
split()
untuk memecah string menjadi arrayfilter()
denganincludes()
untuk mencari substringfind()
dengan propertilength
untuk mencari kata dengan panjang tertentusome()
denganstartsWith()
untuk memeriksa awalanmap()
dengantoUpperCase()
untuk transformasi
8. Pencarian Case-Insensitive
Penjelasan:
- Metode array seperti
indexOf()
danincludes()
bersifat case-sensitive - Untuk pencarian case-insensitive, kita bisa mengonversi semua string ke huruf kecil/besar dulu
- Kita bisa membuat fungsi helper atau menggunakan method chaining untuk pencarian yang lebih fleksibel
9. Contoh Nyata: Pencarian dalam Data Peserta
Penjelasan:
Contoh nyata ini menunjukkan bagaimana menggabungkan berbagai metode pencarian untuk:
- Mencari objek berdasarkan ID (
find()
) - Mencari nilai maksimum dengan fungsi kustom (
reduce()
) - Pencarian teks parsial case-insensitive (
filter()
denganincludes()
) - Memfilter berdasarkan kalkulasi (
filter()
dengan fungsi helper)
Ini menggambarkan fleksibilitas metode pencarian array JavaScript dalam aplikasi nyata.
10. Tips untuk Pencarian Array yang Efektif
✅ Lakukan:
- Gunakan
includes()
untuk pemeriksaan keberadaan elemen sederhana - Gunakan
find()
saat hanya perlu satu hasil danfilter()
saat perlu banyak hasil - Gunakan
some()
danevery()
untuk validasi data yang ringkas - Pertimbangkan case-sensitivity saat mencari string
- Kombinasikan metode array untuk pencarian kompleks
❌ Hindari:
- Jangan gunakan loop
for
tradisional jika bisa menggunakan metode array - Hindari mengulangi iterasi array yang sama berkali-kali (simpan hasil di variabel)
- Jangan lupa bahwa pencarian case-sensitive adalah default (
"A"
tidak sama dengan"a"
) - Jangan mengabaikan nilai pengembalian dari metode pencarian (
-1
,undefined
,[]
)
Latihan Singkat
Pertanyaan 1:
Apa output dari kode berikut?
Petunjuk: Perhatikan nilai yang dikembalikan oleh indexOf()
dan includes()
.
Jawaban: Output adalah true
dan false
(karena 30 ada dalam array, tetapi 60 tidak ada)
Pertanyaan 2:
Bagaimana cara mencari semua nama pengguna yang mengandung huruf "a" (case-insensitive) dari array berikut?
Petunjuk: Gunakan filter()
dengan kombinasi metode string yang tepat.
Jawaban: