Berikut ini adalah pertanyaan dari nzwaaasda pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban dan Penjelasan:
Seperti halnya Binary Search (pencarian biner), Jump Search (pencarian lompat) adalah algoritma pencarian dengan masukan berupa data/list (array) yang sudah terurut, dengan “melompati” beberapa elemen data sampai menemukan tepat sama dengan atau lebih dari elemen data yang dicari. Banyak elemen data yang dilompati tetap (konstan). Jika pada lompatan tertentu, pencarian tiba pada elemen data yang bernilai lebih dari yang dicari, maka mundur sebanyak 1 lompatan, dan kemudian mencari data satu per satu dengan pencarian linier.
Misalkan:
- data disimpan dalam array berukuran yaitu,
- elemen yang dicari adalah , dan
- banyak elemen yang dilompati adalah ,
dengan 0 < m < n.
Dalam hal ini, diasumsikan indeks awal array adalah 0 (seperti pada bahasa pemrograman C, C++, Python, Java, dsb.).
Langkah 1:
- Indeks saat ini: .
Langkah 2:
- Jika , maka pencarian selesai. Hasil pencarian adalah nilai .
- Jika , maka update nilai dengan (atau ), dan ulangi langkah 2.
- Jika , maka update nilai dengan (atau ), dan lanjutkan ke langkah 3.
Langkah 3: Persiapan pencarian linier
Langkah 4: Pencarian linier
- Jika dan, maka inkrementasi (atau ), dan ulangi langkah 4.
- Jika , maka , dan keluar dari langkah 4.
Langkah 5: Penentuan hasil akhir pencarian
- Jika , maka hasil pencarian adalah nilai (yaitu nilai yang terakhir dari langkah 4).
- Jika , maka tidak ditemukan dalam array data.
______________
Untuk memperjelas, kita gunakan ilustrasi.
Diberikan array data terurut:
- data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
⇒ n = 9 - Elemen yang dicari: 5
⇒ x = 5 - Banyak lompatan elemen data: 3
⇒ m = 3
Langkah-langkah Jump Search
Langkah 1
Langkah 2
Langkah 3
Langkah 4: Pencarian linier
Langkah 5: Penentuan hasil akhir pencarian.
Karena j < m, maka hasil pencarian adalah nilai i, yaitu 4. Elemen data 5 ditemukan pada data[4] (elemen data dengan indeks 4, ingat indeks awal = 0 bukan 1).
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: Thu, 27 Oct 22