Saturday, April 4, 2015

Sequential dan Binary Search Dalam Pascal



           Pada postingan kali ini saya akan membahas tentang metode searching sequential dan juga binary. Seperti yang kita tahu bahwa pencarian digunakan untuk memudahkan kita untuk mencari sebuah atau beberapa data di antara banyaknya data yang ada. Agar kita tidak susah dalam melakukan pencarian data tersebut, maka di gunakanlah metode pencarian. Langsung saja ke penjelasan tentang sqeuntial search dan binary search dibawah :



SEQUENTIAL SEARCH



    Algoritma sequential search adalah salah satu algoritma yang digunakan untuk memecahkan masalah pencarian data pada suatu data larik/array. Cara kerja dari algoritma ini adalah dengan menelusuri elemen-elemen array dari awal sampai akhir, dimana data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik(best case) dari algoritma ini adalah jika data yang dicari berada pada elemen array yang terdepan sehingga waktu yang dibutuhkan untuk pencarian data semakin singkat. Sebaliknya, akan mencapai kondisi terburuk(wors case) apabila data yang dicari berada pada elemen akhir.


Metode pencarian beruntun atau linear (sequential search) dapat dipergunakan apabila:



  1. Nilai-nilai tersebut belum berurutan.
  2. Nilai-nilai tersebut sudah berurutan, tetapi struktur data yang dipergunakan untuk menyimpan nilai-nilai tersebut adalah linked list. 

Berikut contoh implementasinya dalam bahasa Pascal : 


function sequen(xx: integer): integer;
var i: integer;
begin
        i:=1;
        while ((i<n) and (tabint[i]<>xx)) do
        i:= i+1;
                if tabint[i]= xx then
                        sequen:=i
                else
                        sequen:=0;
end;


BINARY SEARCH

        Binary search adalah algoritma pencarian untuk data yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari data tengah itu sendiri ditambah 1. Demikian seterusnya.
Metode pencarian beruntun (sequential) maupun metode pencarian biner (binary search)dapat dipergunakan, jika:
  1. Nilai-nilai tersebut sudah tersusun secara berurutan.
  2. Nilai-nilai tersebut disusun ke dalam bentuk array atau struktur data sejenis yang masing-masing nilai tersimpan dalam bagian-bagian yang mempunyai indeks yang unik dan indeksnya berurutan dari yang paling kecil hingga yang paling besar (bersifat ordinal).

Berikur contoh implementasi binary search dalam bahasa Pascal :

function binary(xx: integer):integer;
var

        ats,bwh,tngh: integer;
        ketemu:boolean;
        indeksxx: integer;
begin
        ats:= 1;
        bwh:= n;
        ketemu :=false;
        indeksxx := 0;

while ((ats <= bwh) and (not ketemu)) do
begin
        tngh:= (ats+bwh) div 2;
        if xx = tabint[tngh] then
        begin
                ketemu := true;
                indeksxx := tngh;
        end
        else
        begin
                if xx = tabint[tngh] then
                   bwh :=  tngh-1
                else
                   ats := tngh+1;
        end;
end;
binary:=indeksxx;
end;



Untuk versi lengkapnya bisa download pada link di bawah:
atau

Share this

2 Responses to "Sequential dan Binary Search Dalam Pascal"