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;