Senin, 27 Desember 2010

Pencarian Data dengan Metode Binery Search


          Metode ini digunakan jika sejumlah data telah diurutkan. Jika dibandingkan dengan metode awal tadi metode ini jauh lebih cepat. Secara garis besar metode ini bisa dijelaskan sebagai berikut. Urutkan dahulu sejumlah data. Lalu bagi dua data-data tadi dengan jumlah data yang sama pada masing-masingnya. Kemudian data dibandingkan dengan data terakhir dari subdata yang pertama. Jika data yang dicari lebih keci, pencarian dilanjutkan pada sub data pertama dengan terlebih dahulu membagi dua lagi data-data tersebut dengan jumlah yang sama. Tetapi jika data yang dicari lebih besar dari data terakhir subdata pertama, berarti data yang dicari kemungkinan terletak pada subdata yang kedua. Proses diatas dilakukan berulang sampai data ditemukan atau tidak ditemukan.
Mekanisme pengurutannya yaitu :
·         Pertama, bila data belum terurut, urutkan dulu dari kecil ke besar.
·         Andaikan jumlah elemen m, maka tetapkan indeks = m/2 sehingga larik terbagi 2, yaitu bagian kiri dengan indeks dari 1 sampai m/2 dan kanan dengan indeks dari m/2 sampai m.
·         Periksa dulu apakah x = A[indeks]. Bila ya, berarti elemen ditemukan. Bila tidak lanjutkan kelangkah selanjutnya.
·         Periksa apakah x > A[indeks]. Bila ya, maka cari di sisi kanan. Bila tidak cari di sisi kiri.
·         Teruskan pencarian pada sisi yang tepat dengan mengambil indeks tengah dari sisi tersebut, sampai elemen ditemukan atau tidak sama sekali.
Contoh:
Misalnya data yang dicari (X) adalah 17
Proses 1:
     0            1               2            3               4            5            6               7            8
3
9
11
12
15
17
23
31
35
     A                                                        B                                                           C
Data diambil dari posisi 1 sampai dengan 9. Kemudian dicari posisi tengahnya. A adalah awal, B adalah tengah, dan C adalah akhir.

Proses 2:
Karena X (17) > B (15) maka posisi A adalah posisi B + 1. Jadi seperti ini:
     0            1               2            3               4            5            6               7            8
3
9
11
12
15
17
23
31
35
                                                                              A              B                            C
Proses 3:
Karena X (17) < B (23) maka posisi C adalah posisi B - 1. Jadi seperti ini:
     0            1               2            3               4            5            6               7            8
3
9
11
12
15
17
23
31
35
                                                                          A=B=C
X (17) = B (17) data berhasil ditemukan.

Ini dia sintaks / listing / script program pencarian data dengan metode binery search 

0 comments:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best WordPress Web Hosting