Ilustrasi proses membandingkan setiap elemen satu per satu.
Sequential Search, atau sering juga disebut Linear Search, adalah metode pencarian data yang paling sederhana dan mendasar. Algoritma ini bekerja dengan cara memeriksa setiap elemen dalam sebuah koleksi (seperti list atau array) secara berurutan, mulai dari elemen pertama hingga elemen terakhir, sampai nilai yang dicari ditemukan.
Prinsip kerjanya sangat intuitif: jika kita mencari buku tertentu di rak, kita akan mulai dari buku paling kiri, memeriksanya, lalu geser ke buku berikutnya, dan seterusnya. Jika kita sudah memeriksa semua buku namun tidak menemukannya, maka elemen tersebut tidak ada dalam koleksi.
Meskipun sederhana, penting untuk dipahami bahwa Sequential Search kurang efisien untuk kumpulan data yang sangat besar, terutama jika data tersebut sudah terurut. Dalam kasus data terurut, algoritma seperti Binary Search jauh lebih cepat karena mampu membagi ruang pencarian menjadi dua bagian pada setiap langkahnya. Namun, Sequential Search memiliki keunggulan karena tidak memerlukan data harus dalam keadaan terurut.
Kompleksitas waktu (time complexity) dari Sequential Search adalah:
Notasi 'n' merujuk pada jumlah total elemen dalam list.
Berikut adalah implementasi dasar dari algoritma Sequential Search menggunakan bahasa pemrograman Python:
def sequential_search(data_list, target):
"""
Melakukan pencarian sekuensial pada list yang diberikan.
Args:
data_list (list): List angka atau string tempat pencarian dilakukan.
target (any): Nilai yang dicari.
Returns:
int: Indeks dari elemen jika ditemukan, atau -1 jika tidak ditemukan.
"""
# Iterasi melalui setiap indeks dan elemen dalam list
for index, element in enumerate(data_list):
# Bandingkan elemen saat ini dengan nilai target
if element == target:
# Jika ditemukan, kembalikan indeksnya
return index
# Jika loop selesai tanpa menemukan target
return -1
# --- Contoh Penggunaan ---
# 1. Definisikan list data
angka = [10, 45, 23, 89, 5, 67, 12, 99]
target_ditemukan = 67
target_tidak_ada = 50
# 2. Melakukan pencarian
hasil_1 = sequential_search(angka, target_ditemukan)
hasil_2 = sequential_search(angka, target_tidak_ada)
print(f"List Data: {angka}")
if hasil_1 != -1:
print(f"Target {target_ditemukan} ditemukan pada indeks: {hasil_1}")
else:
print(f"Target {target_ditemukan} tidak ditemukan.")
if hasil_2 != -1:
print(f"Target {target_tidak_ada} ditemukan pada indeks: {hasil_2}")
else:
print(f"Target {target_tidak_ada} tidak ditemukan.")
# Output yang diharapkan:
# Target 67 ditemukan pada indeks: 5
# Target 50 tidak ditemukan.
Meskipun performanya O(n), ada beberapa skenario di mana Sequential Search masih merupakan pilihan terbaik:
Sebagai kesimpulan, Sequential Search adalah fondasi penting dalam ilmu komputasi. Memahami cara kerjanya memberikan dasar yang kuat sebelum beralih ke algoritma pencarian yang lebih canggih dan berkinerja tinggi.