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:
- Sequential Search
- 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