Selasa, 04 Oktober 2016

Searching



Searching

          Halo, ketemu lagi dengan saya, setelah sebelumnya saya memposting tentang Sorting(Pengurutan). Sekarang saya akan membahas tentang algoritma Searching(Pencarian).
           
Searching(Pencarian) Merupakan proses yang snangat penting sekali dalam pengolahan data. Proses pencarian adalah proses menemukan nilai (data) tertentu dalam sekumpulan data yang bertipe sama. Misalkan kita ingin menambahkan data atau menginputkan data yang baru, maka akan dilakukan pencarian terlebih dahulu, apakah data yang dicari tersebut ditemukan? Jika ya, maka data tersebut tidak dapat kita tambahkan karena asumsikan bahwa tidak boleh ada duplikasi data, tetapi jika data tidak ditemukan, maka data tersebut bisa ditambahkan kedalamnya.
           
Disini saya akan membahas mengenai dua metode dalam algoritma searching, yaitu:

  1. Sequential Search 
  2. Binary Search




Sequential Search

            Sequential Search(Pencarian Beruntun) ini pada dasarnya adalah proses membandingkan satu per satu setiap elemen pada larik secara beruntun, mulai dari elemen pertama hingga elemen yang dicari ditemukan, atau seluruh elemen telah diperiksa.

            Ada dua versi algoritma sequential search, yaitu tidak menggunakan peubah booloean dalam proses pencarian, dan yang menggunakan peubah booloan.

Berikut ini adalah contoh algoritma sequential search yang tidak menggunakan peubah booloean pada bahasa pascal :


Procedure  SeqSearch (nama:array of string)

var

     i : integer;

     data_cari  :  string;

begin

     readln(data_cari);

     i := 1;

     while(nama(i) ≠ data_cari) and (i < maks_array) do

     Begin

           i := i + 1

     end;

     if (nama(i) = data_cari)

        then

           Writeln(data_cari,’ ditemukan pada indeks ke-’,i)

        else

            writeln(data_cari,’ tidak ditemukan’)

        end;

End;

End.





            Binary search adalah sebuah algoritma pencarian dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian untuk menemukan nilai tertentu dalam sebuah larik (array) linear. Sebuah pencarian biner mencari nilai tengah (median), melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Pencarian Biner (Binary Search) dilakukan untuk :
  • Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
  • Beban komputasi juga lebih kecil karena pencarian dilakukan dari depan, belakang, dan tengah.
  • Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).
  • Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut.

procedure binSearch;

var atas,bawah,cari,tengah:integer;

begin
read(cari);
ketemu := false;
atas   := 1;
bawah  := n;
     while (atas <> bawah) and (not ketenu) do
     begin
           tengah:=(atas + bawah) DIV 2;
           if (array[tengah] = cari) then
               ketemu:= true;
           else
           begin
              if (array[tengah] < cari) then
               Atas := tengah + 1;
              Else
               Bawah := tengah – 1;

           End;


          
     End;
If(ketenu) then
 Writeln(“data berada pada index nomor”,tengah);
Else
 Writeln(“data tidak ditemukan”);

  
End;
end.
  

Sumber :

http://blog-sharings.blogspot.co.id/2012/07/konsep-binary-search.html
stackoverflow.com/question7/32161880/binary-search-with-lo-and-hi-in-pascal


Rinaldi Munir. 2011.  Algoritma & Pemrograman Dalam Bahasa Pascal dan C. Bandung: INFORMATIKA.

Tati Harihayati. 2015. Modul Mata Kuliah Algoritma dan Pemrograman : Sorting (Power Point).

Tidak ada komentar:

Posting Komentar