Sabtu, 14 Juni 2014

pencarian bagi dua

PENCARIAN BAGI DUA

Dalam matematika, metode bagi-dua adalah algoritma pencarian akar yang membagi dua selang, lalu memilih bagian selang yang berisi akar seharusnya berada untuk diproses lebih lanjut. Metode ini sangat sederhana dan tangguh, tapi juga sangat lambat. namun dalam java, Pencarian Bagi Dua atau yang lebih di kenal dengan Binary Search adalah algoritma pencarian dengan membagi dua sebuah larik (array) dan mencari data di salah satu bagiannya saja. Di mana mekanisme pencarian ini dilakukan dengan cara membagi data menjadi dua dengan titik median data sebagai acuan.
mekanisme ini mensyaratkan dua titik awal a dan b sedemikian sehingga f(a) dan f(b) memiliki tanda berlainan. Ini dinamakan kurung dari sebuah akar.

algoritma dalam pencarian bagi dua Dalam mencari data antara lain :
  • larik dibagi menjadi dua, dan pada larik yang terurut menurun,
  • jika data yang dicari lebih kecil dari data tengah, maka pencarian dilanjutkan ke arah kiri, dan sebaliknya. 
  • Data yang disimpan dalam larik harus sudah terurut. 
  • Dalam proses pencarian, kita memerlukan 2 buah indeks larik, yaitu indeks terkecil dan terbesar.
 
sebagai pemahaman lebih lanjut, berikut contoh program yang menggunakan binary search.

package tugas_lagi;

import java.util.Scanner;

public class coba2 {
  
    private String[] data;
  
    public coba2(int n){
        this.data = new String[n];
    }
  
    public String baca(){
        Scanner i = new Scanner(System.in);
        return i.nextLine();
    }
  
    public void setData(int index, String value){
        if (index >= 0 && index < this.data.length){
            this.data[index] = value;
        }
    }
  
    public int cari(String x){
        for (int a=0; a<this.data.length; a++){
            if (this.data[a].equals(x)) {
                return a;
            }
        }
        return -1;
    }

    public static void main (String [] anisa){

        Scanner ica = new Scanner (System.in);
       
        System.out.print("Jumlah data = ");
        int n = ica.nextInt();
        coba2 ss1 = new coba2(n);
       
        for (int a=0; a<n; a++){
            System.out.print("Data ke-" +(a)+ " = ");
            String d= ss1.baca();
            ss1.setData(a, d);
        }
       
        System.out.print("Nilai yang akan dicari adalah ");
        String y = ss1.baca();
        System.out.print ("Data yang anda cari ada di Index ke-(" +ss1.cari(y)+ ")");
}}

dengan hasil output 










Selamat mencoba ^^



Tidak ada komentar :

Posting Komentar