Mencari Nilai dari Beberapa Elemen Menggunakan Binary sort (Pada Apps NetBeans)
Oktober 21, 2019
2
Mencari Nilai dari Beberapa Elemen Menggunakan Binary sort (Pada Apps NetBeans)
Assalamualaikum wr.wb
Hy sahabat calon programmer sejati, apakabar kalian saat ini? semoga kalian semua baik baik saja ya amien. Nah kali ini calon programer kembali lagi nih setelah beberapa minggu off dan sekarang kembali lagi buat menemani kalian dalam mengerjakan tugas ataupun belajar sendiri. Kali ini calon programer akan membahas bagaimana sih cara mencari bilangan yang berada ditengah tengan banyak nya bilangan lain dengan pencarian yang lebih singkat. nah caranya dengan memggunakan binary sort adalah salahsatu cara yang calon programer rekomendasiin loh . Mari kita simak penjelasannya.
Binary sort ini adalah bentuk pencarian paling sederhana dan mudah, mungkin yang agak sulit adalah menghafal konsepnya, nah binary sort ini juga jika nilai yang akan kita cari belum berurutan maka kita harus mengurutkan nya terlebih dahulu, caranya kalalian bisa liat di artikel sebelumnya dan juga bisa menggunakan bubble sort ataupun selection sort. jika sudah kita urutkan kita tinggal masukan programnya, langsung saja kita ke contoh programnya:
Jika nilainya sudah berurutan
//fungsi
static int binary(int A[], int dicari){
int i=0;
int j=A.length-1;
int k=0;
boolean ketemu = false;
while (!ketemu && i<=j){
k=(i+j)/2;
if (A[k] == dicari){
ketemu=true;
}
else {
if (A[k] == dicari){
j=k-1;
}
else {
i=k+1;
}
}
}
if (ketemu)
return k;
else
return -1;
}
public static void main (String [] args){
int A[]={2,4,6,7,9};
for (int i=0; i<A.length; i++){
System.out.print(A[i]+",");
}
int dicari=6;
int elemen = binary(A,dicari);
System.out.println("nilai "+dicari+" ditemukan di elemen ke-"+elemen);
}
//prosedure
static void binary(int A[], int dicari){
int i=0;
int j=A.length-1;
int k=0;
boolean ketemu = false;
while (!ketemu && i<=j){
k=(i+j)/2;
if (A[k] == dicari){
ketemu=true;
}
else {
if (A[k] == dicari){
j=k-1;
}
else {
i=k+1;
}
}
}
if (ketemu)
System.out.println("nilai ditemukan di elemen ke-"+ketemu);
else
System.out.println("maaf nilai belum ada");
}
public static void main (String [] args){
int A[]={2,4,6,7,9};
for(int i=0; i<A.length; i++){
System.out.print(A[i]+",");
}
int dicari=2;
binary(A,dicari);
}
jika belum berurutan kalian harus urutkan dulu dengan bubble ataupun selection
static int binary(int A[], int dicari){
for(int i=0;i<A.length;i++){
for(int j=0;j<A.length-i-1;j++){
if (A[j]>A[j+1]){
int temp = A[j];
A[j]=A[j+1];
A[j+1] = temp;
}
}
}
for (int i=0;i<A.length;i++){
System.out.print(A[i]+",");
}
int i=0;
int j=A.length-1;
int k=0;
boolean ketemu = false;
while (!ketemu && i<=j){
k=(i+j)/2;
if (A[k] == dicari){
ketemu=true;
}
else {
if (A[k] == dicari){
j=k-1;
}
else {
i=k+1;
}
}
}
if (ketemu)
return k;
else
return -1;
}
public static void main (String [] args){
int A[]={7,9,6,2,4};
for (int i=0; i<A.length; i++){
System.out.print(A[i]+",");
}
System.out.println();
int dicari=6;
int elemen = binary(A,dicari);
System.out.println("nilai "+dicari+" ditemukan di elemen ke-"+elemen);
}
Trimakasih, jangan lupa share ya teman
Wassalamualaikum