Selasa, 04 Oktober 2016

Searching

      Searching adalah sebuah proses pencarian data dengan cara menelusuri satu persatu data hingga data yang dicari ketemu. Algoritma searching (pencarian) adalah sebuah algoritma yang menerima sebuah kata kunci dan dengan sebuah langkah akan mencari data yang sesuai dengan kata kunci tersebut. Berikut ini adalah beberapa macam algoritma searching (pencarian):

1. Sequential search (pencarian linear)

Sequential search adalah sebuah proses pencarian data yang akan menelusuri semua elemen - elemen pada data tersebut dari awal sampai elemen yg kita cari ketemu, elemen yang akan kita cari tidak perlu diurutkan  terlebih dahulu.

Squential search terbagi atas 2 jenis:
1. Squential search tanpa boolean:
    a.  Tanpa sentinel
    b.  Memakai sentinel

2. Squential search memakai boolean

Sebelum kta masuk pada bagian 1, skrng saya akan menjelaskan apa itu boolean. Boolean adalah sebuah tipe data yg memiliki dua buah nilai, nilai tersebut adalah true atau false (benar atau salah), dalam beberapa bahasa pemograman true atau false biasanya diganti dengan angka 1 untuk true dan angka 0 untuk false.

1. Sequential search tanpa boolean

   a. Squential search tanpa sentinel

Misalkan ada sebuah data sebagai berikut:


Ada sebuah perintah untuk mencari angka 12.

Langkah 1:

Dimulai dari kiri, apakah urutan angka ke-1 adalah angka 12? Jika tidak maka lanjut ke array berikutnya.

Langkah 2:

Apakah urutan angka ke-2 adalah angka 12? Jika tidak maka lanjut ke array berikutnya.

Langkah 3:

Apakah urutan angka ke-3 adalah angka 12? Jika tidak maka lanjut ke array berkutnya.

Langkah 4:


Apakah urutan angka ke-4 adalah angka 12? Jika iya maka array telah ditemukan
Angka 12 telah ditemukan pada indeks ke-4

  b. Sequential search memakai sentinel

Sequentian search memakai sentinel adalah sebuah proses pencarian yg memiliki elemen fiktif pada elemen terakhir data.

Misalkan ada sebuah data sebagai berikut:


Ada sebuah perintah untuk mencari angka 6.

Langkah 1:

Tempatkan data yg akan dicari pada sentinel

Langkah 2:

Telusuri array seperti sequential search tanpa tanpa sentinel yang ada diatas, jika data yang ditemukan berada pada sentinel, maka data yang kita cari tidak ditemukan dan jika daya yang kita cari ditemukan bukan dalam sentinel, maka data yang kita cari ditemukan.

2. Sequential search memakai boolean

Sequential search memakai boolean adalah sebuah proses pencarian data yang akan menelusuri semua elemen - elemen pada data tersebut dari awal sampai elemen yg kita cari ketemu memakai variabel bertipe boolean (true or false).
Misalkan ada sebuah data sebagai berikut:

Langkah:

Penelusuran arraynya sama seperti sequential search yang lain, hanya saja pada penelurusan ini memakai variabel bertipe boolean (true or false).

2. Interpolation Search

Interpolatiaon search adalah sebuah metode pencarian dengan cara menelusuri posisi data yang dibutuhkan user. Untuk pencarian ini data harus terurut secara ascending. Metode pencarian ini mempunyai rumus relatif pencarian sebagai berikut.


Jika posisi data sekarang > data yang dicari = posisi – 1
Jika posisi data sekarang < data yang dicari = posisi + 1

3. Binary Search

Binary search ato biasa disebut dengan pencarian biner adalah sebuah pencarian data yg telah terurut dengan melakukan pembagian 2 larik dan melakukan pembandingan nilai tengah dengan data yg dicari, apabila tidak sama maka pencarian akan dilanjutkan ke larik bagian kiri atau bagian kanan.
Fungsi binary search (pencarian biner) adalah untuk memperkecil kemungkinan perbandingan data yang harus dilakukan antara data yang dicari dengan data yang ada pada tabel.

Misalkan ada sebuah data sebagai berikut:

Ada sebuah perintah untuk mencari angka 27.

Langkah 1:

Membagi larik menjadi 2 bagian dengan cara:
Tengah = (indeks kanan + indeks kiri) div 2

Nilai tengahnya berada pada indeks ke-3, proses ini bertujuan untuk menentukan nilai tengah.

Langkah 2:
Membandingkan nilai tengah dengan data yang dicari, apakah 16 = 27? Jika tidak maka kta lanjutkan ke bagian berikutnya. Untuk menentukan bagian mana yang harus kita cari berikutnya cukup dengan membandingkan kembali larik tengan dengan angka yang dicari, perbandingan 16 < 27, ternyata nilai tengah lebih kecil dari angka yang dicari, jadi pencarian dilanjutkan ke bagian kanan, karena lebih kecil.

Langkah 3:

Hitung kembali nilai tengahnya dan hasilnya adalah nilai tengah berada pada indeks ke-4, lalu lakukan pencarian seperti langkah ke-2, angka 27 ditemukan pada indeks ke-5
Angka 27 terletak pada indeks ke-5 looping ke-3.

Sumber :

Modul Struktur Data Ibu Tati Harihayati
Wikipedia


Bagikan

Jangan lewatkan

Searching
4/ 5
Oleh

Subscribe via email

Suka dengan artikel di atas? Tambahkan email Anda untuk berlangganan.