Sebelumnya saya coba memebuat program searching menggunakan algoritma binary search dengan data yang sudah terurut. Kali ini saya mencoba menggabungkan algoritma pengurutan Buble Sort dan algoritma Binary search untuk mencari bilangan acak atau belum terurut.
contoh programnya adalah sebagai berikut :
import java.util.Scanner;
import javax.swing.JOptionPane;
public class BinarySearch{
public static void main (String[] args) {
Scanner x = new Scanner(System.in);
System.out.print("Masukan jumlah data : ");
int jmlData = x.nextInt();
int[] bil = new int [jmlData];
//memasukkan data
for (int i=0; i
System.out.print("Data ke- "+(i+1)+" : ");
bil[i]=x.nextInt();
}
//menampilkan data yang diimputkan
System.out.print ("Data yang dimasukkan adalah :");
for (int j=0; j
System.out.print (bil[j]+" ");
}
//Proses pengurutan
System.out.println ("");
System.out.println ("");
for (int a=0; a
{
System.out.println ("Iterasai ke- "+(a+1)+" : ");
for (int b=bil.length-1; b>0; b--)
{
if (bil[b]
int temp = bil[b];
bil[b]=bil[b-1];
bil[b-1]=temp;
}
}
for (int c=0; c
System.out.print (bil[c]+" ");
}
System.out.println (" ");
System.out.println (" ");
}
//menampilkan data setelah diurutkan
System.out.println ("");
System.out.print ("Data Setelah Diurutkan adalah :");
for (int a=0; a
System.out.print (bil[a]+" ");
}
//proses pencarian
System.out.println (" ");
System.out.println (" ");
System.out.print ("Angka yang akan dicari : ");
int angka = x.nextInt();
int kanan = bil.length-1;
int kiri = 0;
int tengah = -1;
boolean ketemu = false;
while (!ketemu && kiri <= kanan){
tengah = (kiri+kanan)/2;
if (bil[tengah]==angka){
ketemu=!ketemu;
}
else{
if (angka < bil[tengah]){
kanan = tengah-1;
}
else{
kiri=tengah+1;
}
}
}
if (bil[tengah]==angka){
System.out.println (" ");
System.out.println ("Data ditemukan pada index ke- "+(tengah+1));
}
else
System.out.println("data tidak ada");
}
}
import javax.swing.JOptionPane;
public class BinarySearch{
public static void main (String[] args) {
Scanner x = new Scanner(System.in);
System.out.print("Masukan jumlah data : ");
int jmlData = x.nextInt();
int[] bil = new int [jmlData];
//memasukkan data
for (int i=0; i
System.out.print("Data ke- "+(i+1)+" : ");
bil[i]=x.nextInt();
}
//menampilkan data yang diimputkan
System.out.print ("Data yang dimasukkan adalah :");
for (int j=0; j
System.out.print (bil[j]+" ");
}
//Proses pengurutan
System.out.println ("");
System.out.println ("");
for (int a=0; a
{
System.out.println ("Iterasai ke- "+(a+1)+" : ");
for (int b=bil.length-1; b>0; b--)
{
if (bil[b]
int temp = bil[b];
bil[b]=bil[b-1];
bil[b-1]=temp;
}
}
for (int c=0; c
System.out.print (bil[c]+" ");
}
System.out.println (" ");
System.out.println (" ");
}
//menampilkan data setelah diurutkan
System.out.println ("");
System.out.print ("Data Setelah Diurutkan adalah :");
for (int a=0; a
System.out.print (bil[a]+" ");
}
//proses pencarian
System.out.println (" ");
System.out.println (" ");
System.out.print ("Angka yang akan dicari : ");
int angka = x.nextInt();
int kanan = bil.length-1;
int kiri = 0;
int tengah = -1;
boolean ketemu = false;
while (!ketemu && kiri <= kanan){
tengah = (kiri+kanan)/2;
if (bil[tengah]==angka){
ketemu=!ketemu;
}
else{
if (angka < bil[tengah]){
kanan = tengah-1;
}
else{
kiri=tengah+1;
}
}
}
if (bil[tengah]==angka){
System.out.println (" ");
System.out.println ("Data ditemukan pada index ke- "+(tengah+1));
}
else
System.out.println("data tidak ada");
}
}
Untuk outputnya adalah sebagai berikut :
Untuk programnya bisa di download di sini : SOURCE CODE
0 comments:
Post a Comment