Selasa, 15 Mei 2018

Linear dan Binary Search Pada Python

Sebelum kita mengupas apa sih linear dan binary search itu?? Tak lengkap rasanya jika kita mengupas terlebih dahulu apa itu search?

Search (Pencarian) adalah suatu hal yang dilakukan oleh setiap orang untuk mendapatkan atau menemukan suatu data yang diinginkan. Search yang akan kita bahas disini adalah suatu tipe pencarian data dalam suatu bahasa pemrograman python, dimana tipe pencarian (search) ini terbagi menjadi 2 (dua) macam, yaitu sebagai berikut.

1. Linear Search
2. Binary Search

Apa itu linear search?

Linear search adalah suatu sistem pencarian data, dimana suatu data yang ingin dicari oleh user menggunakan sistem pencarian secara satu persatu diantara data yang ada.

Source Code Linear Search :


banyak = int(input("Berapa banyak data yang anda inginkan :"))

data = []
temp = False

def inputdata(banyak):
    for i in range (banyak):
        i += 1
        inputan = int(input("Masukan Data ke- %d :" % i))
        data.append(inputan)
    print (data)
    return data
inputdata(banyak)

def linsearch(data):
    print (data)
    cari = int(input("Angka berapa yang anda cari :"))
    temp = False
    ulang = 0
    for i in range(len(data)):
        ulang +=1
        if data[i]== cari:
            temp = True
            print ("%d >>>> Ada, diposisi %d" %(cari,i))
            print ("jumlah perulangan",ulang)
        if data[i]>cari :
            break
    if (temp==False):
            print ("%d >>>> Mohon maaf data tidak ada" %(cari))
            print ("jumlah perulangan",ulang)
linsearch(data)

Apa itu binary search?

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.

Source Code Binary Search :

banyak = int(input("Berapa banyak data yang anda inginkan :"))
data = []
temp = False

def inputdata(banyak):
    for i in range (banyak):
        i += 1
        inputan = int(input("Masukan Data ke- %d :" % i))
        data.append(inputan)
    return data
inputdata(banyak)

print ("=".center(80,"="))
print ("Soal No. 1")

def binsearch(data,cari):
    first = 0
    last = len(data)-1
    ulang2 = 0

    while first <= last:
        ulang2+= 1
        middle = (first + last) // 2
        if cari == data[middle]:
            posisi = middle
            return [posisi, ulang2]
        elif cari<data[middle]:
            last = middle -1
        else:
            first = middle + 1
    return [-1, ulang2]

cari = int(input("Angka berapa yang anda cari :"))           

panggil = binsearch(data,cari)
if panggil[0]==-1:
    print("Angka Yang anda cari tidak ditemukan")
    print ("Jumlah perulangan :",panggil[1])
else:
    print ("angka yang anda cari ditemukan")
    print ("Posisi :",panggil[0])
    print ("Jumlah perulangan :",panggil[1])
    
Oke...
Selamat Mencoba...

Tidak ada komentar:

Posting Komentar

Sejarah, Kegiatan, dan Dokumnetasi Angkatan Teknik Informatika 2017 (INTEGER_17)

Sejarah, Kegiatan, dan Dokumentasi Angkatan Teknik Informatika 2017 (INTEGER_17) Assalamualaikum Wr. Wb. INTEGER Information Te...