searching (pencarian data) - R. Denny Ari Wibowo`s Blog

advertisement
SEARCHING
(PENCARIAN DATA)
R. Denny Ari Wibowo, S.Kom
STMIK BINA NUSANTARA JAYA LUBUKLINGGAU
PENJELASAN
Pencarian (searching) adalah proses untuk
menemukan dan mendapatkan suatu nilai
berdasarkan satu kunci (key) atau acuan
data dengan menelusuri data-data yang
ada.
Kegunaan beberapa struktur data dalam
hubungannya untuk menyimpan data
sehingga memudahkan proses pencarian
kembali tergantung pada :
1. Media tempat penyimpanan data
(memori atau disk).
2. Jumlah data yand akan disimpan dan
keperluan untuk akses data secepatcepatnya.
Ada dua metode proses pencarian data :
1. Linear Search
Merupakan pencarian data dari data
pertama sampai data terakhir
2. Binary Search
Merupakan pencarian data dengan
membagi data menjadi beberapa bagian.
Syarat pencarian ini adalah data harus
dalam keadaan terurut secara
ascending.
LINEAR SEARCH (1)
Procedure Linear;
var i, k, l : byte;
Begin
k := 0;
For i := 1 to n Do
Begin
if Data[i] = cari then
Begin
inc(k);
Writeln ('Data berada di indeks ke-',i);
End;
End;
If k > 0 Then
Writeln ('Ditemukan ada ',k, ' data')
Else
Writeln ('Data tidak ketemu ');
End;
LINEAR SEARCH (2)
Procedure Linear_Search (cari : char; x : DataArray);
var i : byte;
Begin
i := 1;
While (i<n) and (x[i] <> cari) do
inc (i);
If x[i] = cari Then
Writeln ('Data berada di indeks ke-',i)
Else
Writeln ('Data tidak ketemu ');
End;
BINARY SEARCH
Procedure Binary (cari : char; X : DataArray);
var Bawah, Atas, Tengah : byte; Ketemu : Boolean;
Begin
i := 1; Bawah := 1; Atas := n; Ketemu := False;
While (Bawah < Atas+1) and (Not(Ketemu)) do
Begin
Tengah := (Bawah+Atas) div 2;
If X[Tengah] = Cari Then
Ketemu := True
Else
Begin
IF X[Tengah] < Cari Then
Bawah := Tengah + 1 {cari di bagian kanan}
Else
Atas := Tengah - 1; {cari di bagian kiri}
End;
End;
If Ketemu Then
Writeln ('Data berada di indeks ke-',Tengah)
Else
Writeln ('Data tidak ketemu ');
End;
Download