Searching adalah proses pencarian suatu data, dalam array, pencarian data dibagi menjadi dua, yaitu Sequential dan Binary Array. Sequential Search sendiri digunakan disaat kondisi data dalam sebuah array tidak berurutan, sedangkan Binary Search digunakan jika kondisi data sebuah array sudah berurutan. Sekarang kita akan mempelajari, bagaimana cara penggunaan Sequential Search maupun Binary Search. Pertama - tama kita akan mempelajari bagaimana penggunaan Sequential Search.
1. SEQUENTIAL SEARCH
Proses penggunaan Sequential Search sendiri dilakukan dengan cara membandingkan sebuah data yang akan kita cari dengan isi sebuah array. Untuk membandingkannya, kita diharuskan memulai dari index ke - 0 sampai index - (n - 1). Dibawah adalah contoh pencarian Sequential Search :
Dari data acak diatas, seumpama kita akan mencari sebuah data yang berisi 21, nah bagaimana proses Pencarian data tersebut menggunakan Sequential Search? Mari kita bahas bersama.
Sebelum kita beranjak ke proses pencariannya, mari kita buat dulu pseudocode nya terlebih dahulu.
1. Index = 0
2. Input kriteria
3. While kriteria tidak sama dengan X[index]
4. index ++;
5. jika kriteria sama dengan X[index]
6. Output ketemu = X[index]
(Note : maksud dari X[index] sama dengan nama_array[index])
atau juga penulisan dalam code seperti berikut :
index = 0
kriteria = 21
While(kriteria = X[index];
{
index++;
}
ketemu = X[index]
Sekarang kita memasuki tahap pencarian data :
Kriteria = 21
1. Apakah kriteria = 21 tidak sama dengan X[0] (77)
ya maka index++
2. Apakah kriteria = 21 tidak sama dengan X[1] (34)
ya maka index++
3. Apakah kriteria = 21 tidak sama dengan X[2] (21)
bukan
Ketemu = X[2] (21)
Nah, seperti itu lah cara pencarian menggunakan Sequential Search, itu baru ada 6 index, bayangin saja kalau ada 1000 index :D. Sekarang mari kita melanjutkan ke Binary Search.
2. BINARY SEARCH
Binary Search sendiri merupakan cara tercepat untuk pencarian data secara beruntun (data dalam array beraturan), dimana proses pencariannya sendiri dengan membandingkan data nilai tengah dari sebuah array, tetapi Binary Search tidak bisa digunakan mencari data secara acak. Dibawah adalah contoh pencarian menggunakan Binary Search :
Dari data berurutan diatas, kita akan mencari data 72. Sebelum mencari data nya, kita akan mencari dulu, dimana letak dari data tengahnya menggunakan cara seperti berikut :
(index awal + index akhir) / 2 =
(0 + 6) / 2 = 6 / 2 = 3
Dari cara diatas ditemukan index ke - 3 merupakan index tengah dari array diatas :
Seperti biasa, kita tulis dulu pseudocodenya terlebih dahulu :
1. Tengah = (index awal + index akhir) / 2
2. Input kriteria
3. Jika kriteria > Tengah, maka nilai awal = Tengah + 1
4. Jika kriteria < Tengah, maka nilai akhir = Tengah - 1
5. Jika kriteria == Tengah, ketemu Tengah
Sekarang mari kita cari data yang diinginkan :
1. Tengah = X[3]
2. Kriteria = 72
3. 72 > 67
Awal = Tengah+1
4. Tengah = (4+6)/2 = 5
5. 72 < 113
Akhir = Tengah-1
(note = jika data yang dicari tinggal 1 data, maka data tersebut otomatis menjadi nilai tengah)
6. 72 = 72
Ketemu = X[4] (72)
Begitulah cara pencarian menggunakan binary search. Jadi bagaimana sejauh ini? apa masih ada kesulitan dalam pengerjaan Sequential Search dan Binary Search? jika masih ada kesulitan, beritahu di kolom komentar ya temen - temen :D see you next time.
Komentar
Posting Komentar