Saturday, May 28, 2011

Linier Searching dan Binary Searching

Assalamu'alaikum... :)


Last Thursday kita ngomongin soal Struktur Searching. Seperti yang aku omongin kemarin, matkul Struktur Data kita semester 2 ini hampir sama dengan materi semester 1. It still lingers on my mind gimana Pak Endang ngasih ilustrasinya. :P

So, ada 2 tipe Searching yang kita bahas, Linier Searching (or Sequential Searching or Pencarian Beruntun) dan Binary Searching.

Simpelnya, Linier Searching itu pencarian data dalam array dimensi satu, yang data-datanya tidak terurut (acak). Data yang dibutuhkan dicari satu-persatu dari indeks 0 sampai indeks terakhir. You see, kalau kamu liat satu rak buku yang gak diurutin, dan kamu cuma mau nyari satu buku tertentu, kamu harus liat judulnya satu-persatu. Kalau judul buku pertama yang ada di rak adalah buku yang kamu cari, berarti “buku ada”, kalau gak, kamu liat lagi buku selanjutnya. Kalau buku selanjutnya juga bukan buku yang kamu cari, liat lagi buku yang ditaruh sesudah itu. Begitu seterusnya sampai kamu bisa menyimpulkan “buku ada” atau “buku tidak ada”.

Best case is, kalau data yang kamu cari ada di indeks terdepan. Langsung ketemu and waktu yang kamu butuhin buat pencarian jadi singkat kan.
While Worst case, kalau data yang kamu cari ada di indeks paling belakang. Waktu pencariannya jadi lama...

Binary Searching. This is the best methode for searching. Apalagi kalau datanya udah banyak banget. Pegel kan, kalau harus nyari beruntun satu-satu. Pencarian ini dilakukan dengan memenggal wilayah yang harus kita ubek-ubek (hah?). One thing, datanya harus udah berurut, gak bisa random.

I’m gonna try to give example for this one.

Ini data kita.
Data yang kita cari adalah 17, kita sebut x.
Pertama kita cari data tengahnya dulu, biar bisa dibagi jadi 2 bagian. Karena datanya ada 9, data tengahnya ada di urutan ke-5, right? Kita liat data ke-5, adalah 15. Kalau itu lebih kecil dari data yang kita cari alias x, maka kita cari ke sebelah kanan (setengah array berikutnya). 15 < 17. Buang kemungkinan data ada pada setengah array pertama.

Sekarang yang harus kita ubek-ubek cuma 4 data. Kita cari lagi data tengahnya. 4 data, data tengahnya ada di urutan ke-2, 23. Kalau itu lebih besar dari x, maka kita cari ke sebelah kiri (setengah array pertama). Buang kemungkinan data tengah and data sesudahnya.
Now we only got 1 candidate. Data tengahnya itu-itu juga, that’s 17. Kita lihat apa itu sama dengan x, data yang kita cari. Kalau ada, done, congratz, “Data ada”.
  
Next, aku pengen belajar tentang listing programnya.

And I’m here trying to learn, trying to study. Kalau kamu juga mau, then let’s do it together. Tell me what you think, and ask me if maybe you still wanna learn more. I’m happy to discuss. :)
Thank you for your time. :)

0 comments:

Post a Comment