Rabu, 21 Maret 2018

Struktur Data - Python : Linear Serching dan Binary Searching



Hello sahabat codingers, semoga selalu dalam keadaan ceria dan penuh ide-ide cemerlang yaa 😁. Untuk postingan pertama kali ini kita akan membahas sesuai dengan judul enstri di atas, yaitu tentang  linear search dan binary search. Kira-kira apa ya Linear Serching itu? 😞 Binary Searching juga seperti apa? Yuk kita bahas bersama-sama 😊.

Linear Searching

Linear Searching atau sequential search adalah sebuah metode pencaran data dengan cara membandingkan nilai yang dicari dengan nilai dari setiap elemen list , mulai dari elemen pertama (indeks = 0) sampai nilai yang dicari ditemukan atau sampai elemen terakhir (indeks - n). Untuk lebih jelasnya perhatikan gambar animasi di bawah ini.

Misalnya kita memiliki sebuah list, anggap saja list a. Di dalam list itu terdapat beberapa elemen yang terdiri dari beberapa angka acak. Katakanlah 8,5,7,9,2. Kita ingin mencari sebuah angka dari dalam list tersebut, misalnya angka 7. Dan juga kita bisa juga sekaligus mendapatkan informasi pada indeks ke-berapa letak angka tersebut berada, berapa kali iterasinya (proses perulangan saat mencari data tersebut). Bagaimana caranya untuk mengimplementasikannya ke dalam bahasa pemrograman seperti python? Yuk kita simak baik-baik 😂.

linear search dalam python

Pada contoh di atas, mula-mula kita pastikan posisi awal pencarian berada pada posisi 0 atau pencarian dimulai dari indeks 0. Dan menentukan batas akhir pencarian tersebut dengan len(a) - 1. Metode linear search di atas akan mengembalikan nilai True jika nilai yang dicari ditemukan di dalam list dan False jika tidak ditemukan. Tambahkan pengkondisian untuk memastikan agar proses pencarian dilakukan, jika ditemukan ia akan berhenti, dan jika tidak ditemukan ia akan terus mencari hingga seluruh indeks habis diperiksa. Untuk mengetahui letak indeks angka yang kita cari dan berapa jumlah iterasi yang dilakukan tinggal tambahkan saja iterasi = 0 dan masukan iterasi +=1 di dalam proses looping dan print(posisi) untuk mengetahui letak posisi indeksnya, print(iterasi) untuk mengetahui jumlah iterasinya.


Setelah kita run maka angka 7 yang kita cari terletak pada indeks ke-2 dengan iterasi sebanyak 3 kali. Bagaimana sob? Mudah bukan 😃? Silahkan dicoba dengan mengganti elemen list sesuai dengan keinginan hati kalian atau mungkin ada juga yang penasaran bagaimana list tersebut diisikan dengan data string? Selamat mencoba sob 😂.


Binary Searching

Selanjutnya kita akan membahas binary searching. Binary Search merupakan metode pencarian data dengan membagi 2 atau pencarian dimulai dari indeks list bagian tengah, lalu membandingkannya. Jika bertemu dengan angka yang lebih kecil dari pada yang dicari, maka langsung dibuangnya, begitu seterusnya hingga nilai yang dicari (==)  cocok.  Untuk lebih jelasnya, perhatikan gambar animasi di bawah ini.



Perlu diketahui, data list pada binary search sangatlah mengharuskan urut terlebih dahulu sebelum memulai proses pencarian. Secara logaritmik pencarian binary lebih cepat dibandingkan linear search karena dapat mereduksi jumlah elemen yang dicari sehingga iterasi yang dihasilkannya lebih sedikit. Implementasinya ke dalam python :


Python Binary Search

Cara kerja algoritma pencarian bagi-dua adalah dengan membagi elemen-elemen list menjadi dua bagian secara berulang. Jika nlai yang dicari (value) lebih kecil dari elemen tengah (alist[middle]), maka proses pencarian dilakukan pada bagian list sebelah kiri. Jika lebih besar, maka pencarian dilakukan pada bagian list sebelah kanan; dengan asumsi bahwa elemen-elemen list terurut secara menaik (ascending). 

Hasil BInary

Dengan demikian, setelah kalian mengetahui dan mempraktekkan linear search dan binary search tentu sudah mengetahui kelebihan dan kekurangan dari masing - masing kedua metode tersebut. Sekian untuk materi struktur data : linear dan binary searching kali ini. kami akan kembali pada posting selanjutnya dalam waktu dekat 😊. Selamat bercoding ria sob 😃. 
Share:

6 komentar:

BTemplates.com