Pengertian Binary Search dan Implementasinya pada bahasa python


Pengertian Binary Search dan Implementasinya pada bahasa python

Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu. Prinsip dari binary search terhadap N elemen dapat dijelaskan seperti berikut:
    1.      Tentukan posisi awal = 0 dan posisi akhir = N-1.
    2.      Hitung posisi tengah = (posisi awal + posisi akhir)/2.
    3.      Bandingkan data yang dicari dengan elemen posisi tengah.
-                -     Jika sama maka catat posisi dan cetak kemudian berhenti.
-                -    Jika lebih besar maka akan dilakukan pencarian kembali kebagian kanan dengan posisi awal = posisi tengah +1 dan posisi akhir tetap kemudian ulangi mulai poin 2.
-                -   Jika lebih kecil maka akan di lakukan pencarian kembali ke bagian kiri dengan nilai posisi awal tetap dan nilai posisi akhir  = posisi tengah-1 kemudian ulangi mulai poin 2.


Misalkan kita mempunyai sederatan data dalam array nilai sebanyak 7 elemen dan akan dilakukan pencarian data

- data =  [10,4,5,9,2,1,7]

data diatas harus diurutkan terlebih dahulu
-> Pelajari Shorting pada python

  data = [1, 2, 4, 5, 7, 9, 10]   #Data setelah diurutkan
- tentukan nilai (a) yang mau dicari (search)
  search = a   #search = nama var , a = nilai inputan

- tentukan nilai awal dan nilai ahir
  first = 0                 #nilai awal 0 / index ke 0
  last = len(data)-1    #Panjang data -1
  found = false          #Kondisi bahwa data belum ditemukan
  
- pengkondisian dan perulangan
  selama first <= last dan variable found masih bernilai false maka 
  - mid = (first+last)//2
  - jika data[mid] == search: #jika list (data) index ke (mid) sama dengan nilai yang dicari (search)
            found = True   #maka ubah nilai variabel (found) menjadi True
  - namun bila data[mid] tidak sama dengan nilai yang dicari maka lakukan pengkondisian lagi
             if search < data[mid]:   #jika nilai variabel (search) < data indek ke [mid] maka
                last = mid-1               # Variabel last = nilai mid - 1
            else:                               #jika nilai variabel (search) > data indek ke [mid] maka
                first = mid+1             # Variabel first = mid + 1
  - cetak hasil pencarian
    if found :                         #jika ditemukan
              print('Data Ditemukan')
              print('Data anda ada di indek ke -',mid,'baris ke -'mid+1)
          else :                               #jika tidak ditemukan
              print('DAta Tidak Ditemukan')


Nah Seperti itulah penggambaran tentang binary search , langsung saja saya bagikan source codenya


def bincar(a,b):
    data = b
    search = a
    first = 0
    last = len(data)-1
    found = False
    while first <= last and not found:
        mid = (first+last)//2
        if data[mid] == search:
            found = True
        else:
            if search < data[mid]:
                last = mid-1
            else:
                first = mid+1
    if found :
        print('Data Ditemukan')
        print('Data anda ada di indek ke -',mid,'baris ke -'mid+1)
    else :
        print('DAta Tidak Ditemukan')
           

a = int(input('Masukkan Nilai yang dicari :'))
print(bincar(a,hasil))


#NOTE : 
- variable hasil berisi data nilai acak  'data =  [10,4,5,9,2,1,7]' yang telah di shorting menjadi [1, 2, 4, 5, 7, 9, 10]


Cukup sekian postingan saya kali ini semoga bermanfaat , terimakasih
Baca juga mengenai 'Pengertian Linear Search dan implementasinya pada bahasa python'



Share this

Related Posts

Previous
Next Post »