Jumat, 08 Mei 2009

Algoritma Searching

BINARY SEARCH :
• Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
• Adalah teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pencarian.
• Prinsip pencarian biner adalah:
Data diambil dari posisi 1 sampai posisi akhir N
Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
Jika data sama, berarti ketemu.

while (first < upto) {
int mid = (first + upto) / 2; // Compute mid point.
if (key < sorted[mid]) {
upto = mid; // repeat search in bottom half.
}
else if (key > sorted[mid]) {
first = mid + 1; // Repeat search in top half.
}
else { return mid; // Found it.
return position } } return -(first + 1); // Failed to find key }


Contoh binary Search dalam array (implementasi dalam Java) :

• public static void main(String[] args){
• String[] op = new String[3];
• op[0] ="Indosat";
• op[1] = "Telkomsel";
• op[2] = "Exelcomindo";
• int dapet = Arrays.binarySearch(op, "Indosat");
• if (dapet > -1)
• System.out.println("data ditemukan pada :" +dapet);
• else
• System.out.println("data tidak ditemukan"); }
Artinya dalam array op ada 3 data operator telephone yaitu : Indosat, Tekomsel, dan Exelcomindo.
Lalu akan dilakukan pencarian “Indosat ada di data nomer berapa dengan perintah searching dalam java : Arrays.binarySearch. Maka data akan dibaca dari urutan ke 0 artinya var “Indosat” ada dalam matriks 0 (urutan 1).

Tidak ada komentar: