Popular Posts

Sunday, 22 December 2013

Posted by Unknown on 05:17 | No comments




public class Search_Binary {
    public static void main(String[] args) {
        int A[] = {2, 5, 8, 12, 15, 25, 37, 57};
        Scanner input=new Scanner(System.in);//mengambil input berupa kunci yg akan dicari
        System.out.println("Data yang dicari : ");
        int keyint =input.nextInt();//mengkonversikan tipe data String dari hasil input ke tipe data int agar sesuai dg tipe data array
        boolean ketemu = false;//penandaan untuk pencarian ,apakah ketemu atau tidak ketemu
        int idxAtas = 0;//varibel untuk index kiri
        int idxBawah = A.length - 1;//variabel untuk index kanan
        int idxtengah = -1;//variabel untuk index tengah

        while ( !ketemu && idxAtas <= idxBawah   ) {//perulangan ketika tidak ketemu dan idx kiri kurang dari atau sama dengan idx kanan
            idxtengah = (idxAtas + idxBawah) / 2;//membagi array menjadi dua bagian array kiri dan kanan dg idx tengah sbg pemisah
            if (A[idxtengah] == keyint) {//data pada idx tengah sama dengan kunci yg dicari maka status ketemu adalah no false atau true
                ketemu = !ketemu;
            }else if (keyint < A[idxtengah] ){//jika kunci lebih besar dari data pd idx tengah maka set idx kiri menjadi idx tengah +1
                //dan pencarian beralih ke array kanan
                idxBawah=idxtengah -1;
        }else{//mencari bagian kiri
                idxAtas=idxtengah +1;
            }          
    }if(ketemu){///perulangan jika nilai yang dicari ditemukan
            System.out.println("data ditemukkan pada index :"+A[idxtengah]);      
    }else{//nilai yang dicari tidak ditemukkan
        System.out.println("data tidak ditemukan :"+A[idxtengah]);
    }
}
}
output:


jika data tidak ada didalam variabel array:





0 comments:

Post a Comment

Search Our Site

Bookmark Us

Delicious Digg Facebook Favorites More Stumbleupon Twitter