Searching - Linier Search & Binary Search Python

Kelompok:
Sitti Suwaibah (170411100009)
Wijanarko Putra Rajeb (170411100061)

 Assalamualaikum Wr. Wb.
Kali ini kita akan membagikan Materi dan beberapa script python tentang linier search dan binary search. Berikut scriptnya:

### Mencari Keberadaan Suatu Angka di Dalam List Data ###

Materi 1 - Linier Search & Binary Search Python

A. Metode 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. karena di linear search mengunjungi setiap elemen data yang ada.

  1. Biasa

###
myList = [1,5,10,15,20,25,30,2,6,8,9] # Example List
cari = int(input("Masukkan Angka Yang Anda Cari : ")) # angka yang ingin dicari
counter = 0
while counter != len(myList):
    if myList[counter] == cari:
        print("Found The Search Number.",counter)
    counter += 1
if cari not in myList:
    print("Number Not Found !!!");


  2. Fungsi

###
myList = [1,5,10,15,20,25,30,2,6,8,9] # Example List
cari = int(input("Masukkan Angka Yang Anda Cari : ")) # angka yang ingin dicari

#fungsi
def searchNumber(List,search):
    counter = 0
    while counter != len(myList):
        if myList[counter] == search:
            result = counter
        counter += 1
    return result

#pemangilan Fungsi
hasil = searchNumber(myList,cari)
if cari not in myList:
    print("Number Not Found !!!")
else:
    print('Number %s in index %s'% (cari,hasil))

B. Metode Binary Search


Binary search yaitu sistem pencarian yang relatif cepat dan efisien walaupun ada banyak data sekalipun. Karena data dicari dari depan, tengah dan belakang. Tetapi sintaks dan algoritmanya sedikit lebih rumit. berikut algoritma Binary Search :
1. Membaca data yang ada di array, jika data belum terurut, maka lakukan pengurutan data.
2. Menentukan data yang akan dicari di dalam array.
3. Menentukan nilai elemen tengah array, jika nilai elemen tengah array sama dengan data yang dicari, maka pencarian akan    dihentikan, jika elemen tengah tidak sama dengan data yang dicari, maka:
   > Jika nilai tengah lebih besar dari nilai yang dicari, maka pencarian hanya dilakukan pada setengah array pertama.
   > Jika nilai tengah lebih kecil dari nilai yang dicari, maka pencarian hanya dilakukan pada setengah array sisa.
   > Nilai tengah dindapatkan dari penjymlahan index ke-0 sampai index akhir dibagi 2
   > untuk mendapatkan index akhir dari len(data) - 1

  1. Biasa

###
yourList = [2,4,9,8,1,3,5,6,3] # Example List
yourNumber = int(input('Insert Number to search ? ')) # angka yang ingin dicari
firstIndex = 0  #index pertama
lastIndex = len(yourList)-1 #index terakhir
foundNumber = False     #Untuk memberikan kondisi adanya angka
yourList.sort() # binary search harus diurutkan
while firstIndex <= lastIndex and not foundNumber:
    middleIndex = (firstIndex + lastIndex) // 2     #mancari index tengah
    if yourList[middleIndex] == yourNumber:
        foundNumber = True
    else:
        if yourNumber < yourList[middleIndex]:
            lastIndex = middleIndex - 1
        else:
            firstIndex = middleIndex + 1
if foundNumber:
    print('Number %s is Found in List'% yourNumber)
else:
    print('Number %s not Found in List' % yourNumber)
    

  2. Fungsi dengan Parameter

###
yourList = [2,4,9,8,1,3,5,6,3] # Example List
yourNumber = int(input('Insert Number to search ? ')) # angka yang ingin dicari

#Fungsi
def searchNumber(Number,List):
    found = False     #Untuk memberikan kondisi adanya angka
    List.sort() # binary search harus diurutkan
    firstIndex = 0  #index pertama
    lastIndex = len(List)-1 #index terakhir
    while firstIndex <= lastIndex and not found:
        middleIndex = (firstIndex + lastIndex) // 2     #mancari index tengah
        if List[middleIndex] == Number:
            found = True
        else:
            if Number < List[middleIndex]:
                lastIndex = middleIndex - 1
            else:
                firstIndex = middleIndex + 1
    return found
    
#Pemanggilam Fungsi ditandai dengan pemanggilan nama fungsi
result = searchNumber(yourNumber,yourList)
if result:
    print('Number %s is Found in List'% yourNumber)
else:
    print('Number %s not Found in List' % yourNumber)

Link Video untuk Belajar

Terima kasih telah mengunjungi blog kami semoga bermanfaat.
Wassalamualaikum Wr. Wb.

Comments

Post a Comment

Popular posts from this blog

Sorting Data 1 - Bubble Sort dan Selection Sort

Materi Hashing - Struktur Data