Membandingkan Algorithma Pencarian (linear search vs Binary Search) dengan Menggunakan Phyton

Sumber: linkedln

Kalian tentu pernah mencari kontak di HP, file di laptop, atau buku di perpustakaan. Tapi, tahukah kalian bahwa cara kamu mencari itu bisa disederhanakan dengan algoritma? Pada artikel ini mengajak kalian untuk membandingkan dua metode pencarian yang sering digunakan dalam pemrograman: Linear Search dan Binary Search. Kegiatan ini akan membantu kalian memahami efisiensi algoritma secara nyata melalui eksperimen langsung dengan data kecil.

Langkah-Langkah

  • Salin dan jalankan kode Linear Search dan Binary Search di bawah ini ke Google Colab.

Linear Search
def linear_search(arr, target):
    """
    Mencari target dalam list arr secara berurutan dari depan.
    Mengembalikan semua indeks tempat target ditemukan.
    """
    hasil = []
    for i in range(len(arr)):
        if arr[i] == target:
            hasil.append(i)
    return hasil if hasil else -1

# Contoh penggunaan:
data = ["Andi", "Budi", "Citra", "Dina", "Eka", "Fajar", "Gina"]
target = "Dina"
print("Linear Search:")
print("Ditemukan di indeks:", linear_search(data, target))
Binary Search
 
 def binary_search(arr, target):
    """
    Mencari target dalam list arr yang sudah terurut menggunakan metode Binary Search.
    Mengembalikan indeks pertama target jika ditemukan, -1 jika tidak.
    """
    kiri = 0
    kanan = len(arr) - 1

    while kiri <= kanan:
        tengah = (kiri + kanan) // 2
        if arr[tengah] == target:
            return tengah
        elif arr[tengah] < target:
            kiri = tengah + 1
        else:
            kanan = tengah - 1
    return -1

# Contoh penggunaan:
data = sorted(["Andi", "Budi", "Citra", "Dina", "Eka", "Fajar", "Gina"])
target = "Dina"
print("\nBinary Search:")
print("Ditemukan di indeks:", binary_search(data, target))

 
Silahkan catat hasil waktu eksekusi masi-masing algoritma. Kemudian jawab pertanyaan reflektif di bawah ini.
No Pertanyaan Refleksi Jawaban
1 Algoritma mana yang lebih cepat?
2 Apakah hasilnya sesuai harapan? Mengapa demikian?
3 Jika datanya belum diurutkan, algoritma mana yang lebih cocok?
4 Apa kesulitan yang kamu temui dalam implementasi kode Python?

Selamat belajar dan mencoba!
Diberdayakan oleh Blogger.