Pencarian biner

Metode pencarian biner (biner method searching) merupakan salah satu metode yang banyak digunakan untuk mencari suatu data dalam suatu himpunan data. Pencarian biner dilakukan pada data yang telah terurut.

Misalkan terdapat data nilai 10 siswa yang telah terurut secara menaik (ascending) seperti di bawah ini:

5 6 7 7.5 7.9 8 8.2 8.5 8.7 9

Pencarian biner dimulai dengan cara:
0. Mulai
1. Tentukan bilangan yang dicari, mis DataCari
2. Tentukan nilai ketemu=false
3. Tentukan nilai IndexBawah=1
4. Tentukan nilai IndexAtas=10
5. Ulangi Selama IndexBawah<=IndexAtas Dan Not (Ketemu)
6. Menentukan posisi tengah dari data
IndexTengah=(IndexBawah + IndexAtas) Div 2
IndexTengah=0+9 Div 2
IndexTengah=9 Div 2
IndexTengah=4
7. Uji,
Jika DataCari = Data(IndexTengah) maka
Ketemu=True
Jika DataCariData<(IndexTengah) maka
Atas=IndexTengah-1
Jika DataCariData>(IndexTengah) maka
Bawah=IndexTengah+1
8. Ulangi ke langkah
9. Jika Ketemu maka
cetak DataCari Ditemukan
Jika Tidak Ketemu maka
cetak DataCari Tidak Ditemukan
10. Selesai

Implementasi Program
1. Rancangan antar muka
antarmuka

2. Kode Program


Private Sub cmdCari_Click()
   Dim DataCari As Single
   Dim IndexBawah, IndexAtas, IndexTengah As Byte
   Dim Ketemu As Boolean

   ‘Pindahkan txtDatacari ke DataCari
   DataCari = Val(txtDataCari.Text)

   ‘Tentukan indexBawah dan IndexAtas
   IndexBawah = 1
   IndexAtas = lstNilai.ListCount

   Ketemu = False

   While (IndexBawah <= IndexAtas) And (Not (Ketemu))
    IndexTengah = (IndexBawah + IndexAtas) \ 2
    'Print IndexBawah, IndexAtas, IndexTengah
    If (DataCari = Val(lstNilai.List(IndexTengah – 1))) Then
     Ketemu = True
    ElseIf (DataCari < Val(lstNilai.List(IndexTengah – 1))) Then
     IndexAtas = IndexTengah – 1
    Else
     IndexBawah = IndexTengah + 1
    End If
    Wend
    If (Ketemu) Then
     MsgBox (txtDataCari + " Ada di List Nilai")
    Else
     MsgBox (txtDataCari + " Tidak Ada di List Nilai")
     End If
End Sub

Private Sub cmdTutup_Click()
Unload Me
End Sub

Private Sub Form_Load()
   ‘isi data nilai ke lstNilai
   lstNilai.AddItem ("5")
   lstNilai.AddItem ("6")
   lstNilai.AddItem ("7")
   lstNilai.AddItem ("7.5")
   lstNilai.AddItem ("7.9")
   lstNilai.AddItem ("8")
   lstNilai.AddItem ("8.2")
   lstNilai.AddItem ("8.5")
   lstNilai.AddItem ("8.7")
   lstNilai.AddItem ("9")

   'kosongkan txtDataCar
   txtDataCari.Text = ""
End Sub

3. Eksekusi Program
eksekusi

ketemunilai

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: