Pengertian Linear Search dan Implementasinya pada Bahasa Python

Apa itu Linier Search ?

Linear search merupakan program search yang mudah dipahami, linear search memiliki kelebihan apabila data yang di cari letaknya pada data – data awal sehingga prosesnya berjalan cepat, namun apabila data yang di cari letaknya pada data terakhir maka pencarian lebih memakan waktu yang cukup lama pula.

contohnya disini kita punya data
[1,4,3,2,6,9,8,7,15,12,16]

dimisalkan data yang kita cari adalah angka 1 , maka waktu pencariannya akan cepat , kita ibaratkan saja 1 detik ketemu , tapi bila kita mencari angka 7 maka kita butuh waktu missal 7/8 detik untuk menemukan angka tersebut .
karena pada linear search kita akan mencari dari awal sampai data kita ditemukan atau sampai linear search sudah membaca semua data tapi tidak menemukan data yang kita cari

untuk implementasinya pada Bahasa python

 def lincar(a,b):
    mylist = b                                 #variable list/data
    print(mylist)                               #menampilkan list
    search = a                                #variable nilai yang dicari
    position = 0                                #posisi awal / first
    last = len(mylist)-1                   #panjang data - 1
    found = False                              #nilai variable found
    while position <= last and not found:  #selama posisi <= last dan fount = false (loop)
        if mylist[position] == search :         #jika data pada list indek ke posisi = pencarian
            found = True                              #ubah nilai variable found
        else:
            position = position+1
    if found:                                    #kondisi bila data ditemukan / tidak
        print("Data ditemukan")
        print('Data Anda ada di indek ke -',position,'baris ke -',position+1) #print posisi data
    else:
        print("Data tidak ditemukan")
 data = [10,4,5,9,2,1,7]
a = int(input('Masukkan Nilai yang dicari :'))         #masukkan nilai yang akan dicari
print(lincar(a,data))                                                 # print hasil cari


Nah Cukup sekian posting saya kali ini tentang linear search jangan lupa baca juga 'Pengertian Binary Search dan implementasi dalam python'



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'