Jumat, 05 Juni 2015

Searching

   Ketika menggunakan array untuk memecahkan suatu permasalahan di dalam program, mungkin suatu saat kita akan mencari elemen tertentu di dalam array. Hail ini sering dilakukan dengan cara menggunakan suatu kunci pencarian dan membandingkan semua elemen yang ada dalam array yang digunakan. Proses pencarian suatu elemen di dalam array disebut searching.
     Ada 2 macam pencarian yang akan dibahas dalam buku ini yaitu pencarian sekuansial (sequential searching) dan pencarian biner (binary searching). Perbedaan terletak pada keadaan suatu elemen atau data yang ada pada suatu array. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak urut. Sedangkan pencarian biner digunakan pada data yang sudah dalam keadaan urut.
  •   Sequential searching
Pencarian sekuensial atau sering disebut juga pencarian linier menggunakan prinsip sebagai berikut : data yang ada pada suatu array dibandingkan satu persatu dengan data yang dicari.
Pencarian ini dilakukan dengan melakukan suatu pengulangan dari 1 sampai semua data yang ada. Pada setiap kali pengulangan, dibandingkan data yang posisinya ke-I dengan data yang dicari atau dimaksud. Apabila sama, maka data tersebut telah ditemukan dan proses pengulangan dihentikan. Sebaliknya, kalau sampai pengulangan selesai dan data yang dicari tidak ditemukan, maka data tersebut tidak ada.





Data yang akan dicari adalah 1, misal X = 1
Pertama kita membandingkan X dengan nilai pertama 17, jika nilai yang dibandingkan dengan X tidak sama maka dilanjutkan ke nilai berikutnya yaitu 57, 2, 1 (nilai ditemukan pada indek ke 4)

o   Contoh program sequential search :


      
       Bila program diatas dijalankan, akan muncul hasil :


  •   Binary searching
Pencarian biner adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan urut.
Prinsip dari pencarian biner dapat dijelaskan sebagai berikut : mula-mula diambil posisi awal=1 dan posisi akhir=N, kemudian dicari posisi tengah dengan rumus (posisi awal+posisi akhir)/2. Kemudian data yang dicari dibandingkan dengan data tengah. Jika lebih kecil, proses dilakukan kembali tetapi dalam hal ini posisi akhir=posisi tengah-1. Jika lebih besar, proses dilakukan kembali tetapi posisi awal=posisi tengah+1.

Langkah-langkah untuk metode binary Search :
  1. Urutkan data dari indeks 0 sampai n-1 (kanan ke kiri) apakah ascending atau descending
  2. Cari posisi tengah pada data (posisi awal (indeks ke-0) + posisi akhir (indeks ke-n) / 2), misalkan jika 
  3. saat membagi mendapat hasil 9,5 maka abaikan ,5 gunakan 9
  4. Bandingkan data yang dicari dengan data ditengah  
  5. Jika lebih kecil, maka pencarian dimulai dari posisi awal adalah posisi tengah -1  
  6. Jika lebih besar, maka pencarian dimulai dari posisi awal adalah posisi tengah +1  
  7. Jika data sama berarti data ditemukan  


Misalkan ada 9 data terurut secara ascending X[9] = { 12, 17, 111, 116, 121, 125, 126, 131, 190}
carilah data X = 126



  1. Karena data sudah diurutkan maka langsung saja cari posisi tengah
    Posisi awal + posisi akhir / 2
    (0 + 8) / 2 = 4 jadi posisi tengah berada pada indeks ke 4
  2. Bandingkan data yang dicari X=126 dengan data yang ditenganh 121
    126>121 maka posisi tengah + 1 (langkah ke 5)
  3. Abaikan data yang berada di kiri, karena posisi tengah +1 maka posisi awal dimulai dari indeks ke 5 dan posisi akhir indeks ke 8

  4.  Ulangi langkah ke 2, posisi awal + posisi akhir /2
    (5 + 8) / 2 = 6,5 abaikan ,5. Jadi posisi tengan adalah indeks ke 6
  5. Bandingkan x=126 dengan data tengah 126

126 = 126 , data yang dicari sama dengan data yang berada di posisi tengah. Jadi data ada di    indeks ke 6.
 
 

o   Contoh program binary search :



                Bila program diatas dijalankan, akan muncul hasil :


Itulah penjelasan mengenai materi searching, jika ada yang perlu di tanyakan silahkan hubungi ke email saya atau bisa langsung melalui kolom komentar dibawah. Terima Kasih Telah Berkunjung.

Tidak ada komentar:

Posting Komentar