Jawaban:
linier
# Fungsi untuk mencari elemen x dalam daftar L
def linear_search(L, x):
# Looping dari indeks 0 sampai len(L) - 1
for i in range(len(L)):
# Jika elemen pada indeks i sama dengan x
if L[i] == x:
# Kembalikan indeks i
return i
# Jika loop selesai dan tidak menemukan x
# Kembalikan -1
return -1
# Contoh penggunaan fungsi linear_search
L = [10, 20, 30, 40, 50]
x = 30
# Cari x dalam L menggunakan linear_search
result = linear_search(L, x)
# Cetak hasilnya
if result != -1:
print(f"Elemen {x} ditemukan pada indeks {result}")
else:
print(f"Elemen {x} tidak ditemukan dalam daftar")
biner
# Fungsi untuk mencari elemen x dalam daftar L yang sudah terurut
def binary_search(L, x):
# Tentukan batas bawah dan atas dari daftar
low = 0
high = len(L) - 1
# Looping selama batas bawah kurang dari atau sama dengan batas atas
while low <= high:
# Tentukan indeks tengah dari daftar
mid = (low + high) // 2
# Jika elemen pada indeks tengah sama dengan x
if L[mid] == x:
# Kembalikan indeks mid
return mid
# Jika elemen pada indeks tengah lebih besar dari x
elif L[mid] > x:
# Ubah batas atas menjadi mid - 1
high = mid - 1
# Jika elemen pada indeks tengah lebih kecil dari x
# Ubah batas bawah menjadi mid + 1
low = mid + 1
# Contoh penggunaan fungsi binary_search
# Cari x dalam L menggunakan binary_search
result = binary_search(L, x)
lompat
# Import modul math untuk menggunakan fungsi akar kuadrat (sqrt)
import math
def jump_search(L, x):
# Tentukan ukuran lompatan optimal
# Ukuran lompatan optimal adalah akar kuadrat dari panjang daftar
step = int(math.sqrt(len(L)))
# Tentukan indeks awal dan akhir dari daftar
prev = 0
curr = step
# Looping selama elemen pada indeks curr kurang dari x dan curr belum melebihi batas daftar
while L[min(curr, len(L) - 1)] < x and curr < len(L):
# Ubah prev menjadi curr
prev = curr
# Tambahkan curr dengan step
curr += step
# Looping selama prev kurang dari atau sama dengan curr dan prev belum melebihi batas daftar
while prev <= curr and prev < len(L):
# Jika elemen pada indeks prev sama dengan x
if L[prev] == x:
# Kembalikan indeks prev
return prev
# Tambahkan prev dengan 1
prev += 1
# Contoh penggunaan fungsi jump_search
# Cari x dalam L menggunakan jump_search
result = jump_search(L, x)
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2025 KUDO.TIPS - All rights reserved.
Jawaban:
linier
# Fungsi untuk mencari elemen x dalam daftar L
def linear_search(L, x):
# Looping dari indeks 0 sampai len(L) - 1
for i in range(len(L)):
# Jika elemen pada indeks i sama dengan x
if L[i] == x:
# Kembalikan indeks i
return i
# Jika loop selesai dan tidak menemukan x
# Kembalikan -1
return -1
# Contoh penggunaan fungsi linear_search
L = [10, 20, 30, 40, 50]
x = 30
# Cari x dalam L menggunakan linear_search
result = linear_search(L, x)
# Cetak hasilnya
if result != -1:
print(f"Elemen {x} ditemukan pada indeks {result}")
else:
print(f"Elemen {x} tidak ditemukan dalam daftar")
biner
# Fungsi untuk mencari elemen x dalam daftar L yang sudah terurut
def binary_search(L, x):
# Tentukan batas bawah dan atas dari daftar
low = 0
high = len(L) - 1
# Looping selama batas bawah kurang dari atau sama dengan batas atas
while low <= high:
# Tentukan indeks tengah dari daftar
mid = (low + high) // 2
# Jika elemen pada indeks tengah sama dengan x
if L[mid] == x:
# Kembalikan indeks mid
return mid
# Jika elemen pada indeks tengah lebih besar dari x
elif L[mid] > x:
# Ubah batas atas menjadi mid - 1
high = mid - 1
# Jika elemen pada indeks tengah lebih kecil dari x
else:
# Ubah batas bawah menjadi mid + 1
low = mid + 1
# Jika loop selesai dan tidak menemukan x
# Kembalikan -1
return -1
# Contoh penggunaan fungsi binary_search
L = [10, 20, 30, 40, 50]
x = 30
# Cari x dalam L menggunakan binary_search
result = binary_search(L, x)
# Cetak hasilnya
if result != -1:
print(f"Elemen {x} ditemukan pada indeks {result}")
else:
print(f"Elemen {x} tidak ditemukan dalam daftar")
lompat
# Import modul math untuk menggunakan fungsi akar kuadrat (sqrt)
import math
# Fungsi untuk mencari elemen x dalam daftar L yang sudah terurut
def jump_search(L, x):
# Tentukan ukuran lompatan optimal
# Ukuran lompatan optimal adalah akar kuadrat dari panjang daftar
step = int(math.sqrt(len(L)))
# Tentukan indeks awal dan akhir dari daftar
prev = 0
curr = step
# Looping selama elemen pada indeks curr kurang dari x dan curr belum melebihi batas daftar
while L[min(curr, len(L) - 1)] < x and curr < len(L):
# Ubah prev menjadi curr
prev = curr
# Tambahkan curr dengan step
curr += step
# Looping selama prev kurang dari atau sama dengan curr dan prev belum melebihi batas daftar
while prev <= curr and prev < len(L):
# Jika elemen pada indeks prev sama dengan x
if L[prev] == x:
# Kembalikan indeks prev
return prev
# Tambahkan prev dengan 1
prev += 1
# Jika loop selesai dan tidak menemukan x
# Kembalikan -1
return -1
# Contoh penggunaan fungsi jump_search
L = [10, 20, 30, 40, 50]
x = 30
# Cari x dalam L menggunakan jump_search
result = jump_search(L, x)
# Cetak hasilnya
if result != -1:
print(f"Elemen {x} ditemukan pada indeks {result}")
else:
print(f"Elemen {x} tidak ditemukan dalam daftar")