DEV Community

Cover image for Praktikum Algoritma: Linear Search dengan Python 😎
ahmadasroni38
ahmadasroni38

Posted on

Praktikum Algoritma: Linear Search dengan Python 😎

Halo, teman-teman mahasiswa! Selamat datang di praktikum super seru tentang Linear Search (pencarian linier). Ini adalah algoritma pencarian yang paling sederhana di dunia pemrograman. Bayangkan kamu lagi nyari kunci rumah di tas yang berantakan – kamu cek satu per satu dari atas sampai ketemu. Nah, itu mirip linear search!

Kita akan belajar step by step dengan bahasa yang santai, banyak contoh gampang, kode Python yang mudah dicopy-paste, dan ilustrasi keren biar cepat paham. Siap? Yuk langsung gas! πŸš€

Apa Itu Linear Search? πŸ€”

Linear search adalah cara mencari suatu nilai (disebut target) di dalam sebuah list (daftar) dengan memeriksa satu per satu elemen dari awal sampai akhir.

  • Kalau ketemu β†’ Kembalikan posisi (index) nya.
  • Kalau nggak ketemu β†’ Bilang "Nggak ada nih!" (biasanya return -1).

Kelebihan: Super simple, nggak perlu list-nya urut.
Kekurangan: Lambat kalau list-nya panjang banget (harus cek semua kalau target di akhir atau nggak ada).

Ilustrasi di atas nunjukin gimana linear search kerja: mulai dari index 0, cek satu-satu sampai ketemu target.

Cara Kerja Linear Search Langkah demi Langkah πŸ“

Misal list kita: [10, 20, 30, 40, 50] dan target: 30

  1. Mulai dari index 0: 10 == 30? Tidak.
  2. Index 1: 20 == 30? Tidak.
  3. Index 2: 30 == 30? Ya! Ketemu di posisi 2.

Kalau target 60: Cek semua sampai akhir β†’ Nggak ketemu.

Gambar ini lebih detail lagi, step by step seperti detektif nyari barang hilang! πŸ•΅οΈβ€β™‚οΈ

Implementasi di Python 🐍

Kita buat fungsi sederhana bernama linear_search.

def linear_search(arr, target):
    for i in range(len(arr)):  # Loop dari 0 sampai panjang list - 1
        if arr[i] == target:   # Kalau elemen ke-i sama dengan target
            return i           # Kembalikan index-nya
    return -1                  # Kalau loop selesai berarti nggak ketemu
Enter fullscreen mode Exit fullscreen mode

Gampang banget kan? Pakai loop for dan index i.

Contoh 1: Cari Angka di List Bilangan Bulat πŸ‘

daftar_angka = [15, 7, 23, 42, 9, 31]
target = 23

hasil = linear_search(daftar_angka, target)
if hasil != -1:
    print(f"Ketemu! {target} ada di index {hasil}")
else:
    print(f"{target} nggak ada di list 😒")
Enter fullscreen mode Exit fullscreen mode

Output: Ketemu! 23 ada di index 2

Coba jalankan di Python kamu sendiri!

Contoh 2: Cari Huruf di List String (Nama Buah)

Bayangkan kamu punya daftar buah dan nyari "Mangga".

daftar_buah = ["Apel", "Pisang", "Jeruk", "Mangga", "Durian"]
target = "Mangga"

hasil = linear_search(daftar_buah, target)
if hasil != -1:
    print(f"Yummy! {target} ada di urutan ke-{hasil + 1} (index {hasil})")
else:
    print("Buahnya habis stok 😭")
Enter fullscreen mode Exit fullscreen mode

Output: Yummy! Mangga ada di urutan ke-4 (index 3)

Seru kan? Bisa dipakai buat nyari apa aja!

Contoh 3: Nggak Ketemu (Return -1)

daftar_hewan = ["Kucing", "Anjing", "Kelinci", "Burung"]
target = "Singa"

hasil = linear_search(daftar_hewan, target)
if hasil != -1:
    print(f"Ketemu hewan {target}!")
else:
    print(f"{target} nggak ada di kebun binatang ini 🦁")
Enter fullscreen mode Exit fullscreen mode

Output: Singa nggak ada di kebun binatang ini 🦁

Contoh 4: List Kosong atau Target di Awal/Akhir

# Target di awal
list1 = [100, 200, 300]
print(linear_search(list1, 100))  # Output: 0

# Target di akhir
print(linear_search(list1, 300))  # Output: 2

# List kosong
list_kosong = []
print(linear_search(list_kosong, 5))  # Output: -1
Enter fullscreen mode Exit fullscreen mode

Bonus: Bandingkan dengan Binary Search πŸ”

Linear search cocok buat list kecil atau nggak urut. Kalau list sudah urut, lebih cepat pakai binary search (seperti buka kamus di tengah-tengah).

Gambar ini nunjukin perbedaan: Linear cek semua, binary potong setengah-setengah. Keren ya!

Latihan Buat Kamu! πŸ’ͺ

  1. Modifikasi kode biar fungsi mengembalikan berapa kali target muncul (kalau ada duplikat).
  2. Buat linear search untuk list nama temanmu, terus cari nama sendiri.
  3. Coba timing: Pakai list besar (1000 elemen) dan ukur waktu pakai time module.

Selamat praktikum! Kalau sudah paham linear search, kamu sudah selangkah lebih dekat jadi programmer handal. Kalau ada yang bingung, tanya aja atau coba-coba sendiri. Have fun coding! πŸŽ‰πŸ

Top comments (0)