Berikut ini adalah pertanyaan dari siapaya3101200743 pada mata pelajaran TI untuk jenjang Sekolah Dasar
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban dan Penjelasan:
Binary Search
Pertama-tama, perlu diperhatikan bahwa Binary Search mencari elemen data dari data yang sudah terurut. Jadi, data input harus diurutkan terlebih dahulu.
Karena pertanyaan ini fokusnya pada langkah-langkah Binary Search, maka langkah pengurutan tidak perlu diulas.
[92 88 78 65 45 40 36 29 5] diurutkan menjadi:
[5 29 36 40 45 65 78 88 92]
Data terurut ini menjadi masukan/parameter bagi Binary Search. Parameter lainnya adalah data yang dicari, yaitu 36.
Kita gunakan variabel:
- data: larik/array data,
- low: indeks awal,
- high: indeks akhir,
- mid: indeks tengah.
Tahap Iterasi Ke-1
- data = [5 29 36 40 45 65 78 88 92]
- low = 1
- high = 9
- mid = (low+high) div 2 = (1+9) div 2 = 5
⇒ menggunakan pembagian bilangan bulat (div), yang selalu menghasilkan pembulatan ke bawah jika hasilnya pecahan. - data[mid] = data[5] = 45
- 36 < 45, maka high = mid–1 = 5–1 = 4.
Tahap Iterasi Ke-2
- data = [5 29 36 40 45 65 78 88 92]
⇒ data tetap, hanya seolah-olah dibagi 2 menjadi kiri dan kanan dibatasi elemen data paling tengah. - low = 1
- high = 4
- bagian data yang dievaluasi = [5 29 36 40]
- mid = (low+high) div 2 = (1+4) div 2 = 2
- data[mid] = data[2] = 29
- 36 > 29, maka low = mid+1 = 2+1= 3.
Tahap Iterasi Ke-3
- data = [5 29 36 40 45 65 78 88 92]
⇒ ingat bahwa data tetap - low = 3
- high = 4
- bagian data yang dievaluasi = [36 40]
- mid = (low+high) div 2 = (3+4) div 2 = 3
- data[mid] = data[3] = 36
- 36 = 36, maka data ditemukan, dan kembalikan indeks/urutannya, yaitu 3.
Proses binary search selesai.
Elemen data 36 ditemukan, pada urutan/indeks ke-3 dari data yang sudah terurut.
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto 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: Wed, 30 Nov 22