Berikut ini adalah pertanyaan dari dewadedek13 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban:
Penjelasan:
# mengimport module 'time' untuk mengukur waktu eksekusi program
import time
# fungsi binary_search untuk melakukan pencarian dengan metode binary search
def binary_search(list_data, item):
# menentukan indeks awal dan akhir dari list_data
low = 0
high = len(list_data) - 1
# looping sampai indeks low tidak lebih kecil dari indeks high
while low <= high:
# menghitung indeks tengah dari list_data
mid = (low + high) // 2
# mencari nilai tengah dari list_data
mid_value = list_data[mid]
# jika nilai tengah sama dengan item, maka item ditemukan
# dan mengembalikan indeksnya
if mid_value == item:
return mid
# jika nilai tengah lebih besar dari item, maka item berada
# di sebelah kiri (indeks terkecil sampai indeks tengah - 1)
# sehingga mengubah nilai indeks high menjadi mid - 1
elif mid_value > item:
high = mid - 1
# jika nilai tengah lebih kecil dari item, maka item berada
# di sebelah kanan (indeks tengah + 1 sampai indeks terbesar)
# sehingga mengubah nilai indeks low menjadi mid + 1
else:
low = mid + 1
# jika item tidak ditemukan, maka mengembalikan nilai -1
return -1
# list data yang akan dicari
data = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
# mencari item yang berada pada indeks ke-3 (nilainya 5)
item = 5
# mengukur waktu sebelum melakukan pencarian dengan binary search
start_time = time.time()
# melakukan pencarian dengan binary search
result = binary_search(data, item)
# mengukur waktu setelah pencarian selesai
end_time = time.time()
# menampilkan hasil pencarian dan waktu yang dibutuhkan
print(f"Hasil pencarian: {result}")
print(f"Waktu yang dibutuhkan: {end_time - start_time} detik")
Semoga dengan pertanyaan yang sudah terjawab oleh dodosan dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Tue, 28 Mar 23