Studi Kasus Berpikir Komputasional: Implementasi Algoritma Pencarian dengan JavaScript

Khusni Ja'far
Tulisan Khusni
Published in
2 min readSep 20, 2023

Berpikir komputasional menggabungkan pemahaman konseptual dengan praktik aplikatif dalam pemrograman. Pada konteks pencarian, algoritma memainkan peran penting dalam menemukan data dengan cepat dan efisien. Mari kita pelajari sebuah studi kasus sederhana dan cara mengimplementasikannya dalam JavaScript.

Studi Kasus:
Sebuah toko buku online ingin memberikan fitur pencarian buku berdasarkan judul. Dengan ribuan buku dalam katalog mereka, efisiensi algoritma sangat penting untuk memberikan respons cepat kepada pengguna.

Algoritma Binary Search:
Dalam situasi ini algoritma pencarian biner (binary search) bisa menjadi pilihan ideal, asalkan daftar buku diurutkan berdasarkan judul. Binary search bekerja dengan membagi daftar menjadi dua bagian berulang kali hingga menemukan buku yang dicari atau memastikan buku tidak ada dalam daftar.

Implementasi dengan JavaScript:

function binarySearch(arr, x) {
let awal = 0, akhir = arr.length - 1;

while (awal <= akhir) {
let tengah = Math.floor((awal + akhir) / 2);

if (arr[tengah] === x) return tengah;

if (arr[tengah] < x) awal = tengah + 1;
else akhir = tengah - 1;
}

return -1;
}

const buku = ["Algoritma 101", "Berpikir Komputasional", "JavaScript Dasar", "Pemrograman Lanjut", "Struktur Data"];
const cariJudul = "Berpikir Komputasional";
const index = binarySearch(buku, cariJudul);

if (index !== -1) {
console.log(`Buku "${cariJudul}" ditemukan pada indeks ${index}.`);
} else {
console.log(`Buku "${cariJudul}" tidak ditemukan.`);
}

Output:

Buku "Berpikir Komputasional" ditemukan pada indeks 1.

Dari implementasi di atas, kita dapat melihat bahwa binary search mampu menemukan buku dengan judul “Berpikir Komputasional” pada indeks ke-1 dari daftar yang sudah diurutkan. Tentunya dalam aplikasi nyata data yang diberikan mungkin jauh lebih kompleks dan memerlukan struktur data tambahan seperti objek atau peta untuk menyimpan informasi tambahan tentang setiap buku, seperti pengarang, tahun terbit, dan sebagainya. Namun prinsip dasar pencarian tetap sama.

Ketika menghadapi data dalam jumlah besar efisiensi algoritma menjadi krusial. Binary search dengan kompleksitas waktu O(logn), menawarkan kecepatan yang signifikan dibandingkan dengan pencarian sekuensial yang memiliki kompleksitas waktu O(n). Hal ini berarti semakin banyak buku dalam katalog semakin besar keunggulan menggunakan binary search.

Namun ada batasan pada binary search; daftar buku harus selalu diurutkan. Jika toko buku online kita sering mendapatkan penambahan stok buku baru atau menghapus beberapa buku, kita mungkin perlu mempertimbangkan struktur data lain seperti pohon pencarian biner untuk mempertahankan efisiensi pencarian sambil memungkinkan penambahan dan penghapusan yang cepat.

Kesimpulan:

Berpikir komputasional tidak hanya tentang memahami teori, tetapi juga tentang bagaimana menerapkannya dalam situasi nyata. Pemilihan algoritma yang tepat dalam hal ini binary search, dan implementasinya dengan benar dalam JavaScript dapat meningkatkan kinerja aplikasi dan meningkatkan pengalaman pengguna. Sebagai programmer penting untuk terus belajar dan menyesuaikan solusi sesuai dengan kebutuhan yang spesifik dan memastikan bahwa teknologi yang kita gunakan selalu memberikan manfaat optimal bagi pengguna.

--

--