Advertisement
anakculun

dokumen tasi binary search anggin with java

Aug 29th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.Scanner;
  2.  
  3. /**
  4.  *
  5.  * @author Yudi Setiawan
  6.  *
  7.  */
  8.  
  9. public class MetodeBinarySearching
  10. {
  11.     public static int[] data = null;
  12.     public static int awal, tengah, akhir, temp, count;
  13.    
  14.     public static void main(String[] args)
  15.     {
  16.         Scanner scan = new Scanner(System.in);
  17.        
  18.         //  Input jumlah data
  19.         System.out.print("Jumlah data : ");    
  20.         int jlh = scan.nextInt();
  21.        
  22.         //  Input tiap nilai dan simpan ke array
  23.         data = new int[jlh];
  24.         for(int x = 0; x < data.length; x++)
  25.         {
  26.             System.out.print("Masukkan Data ke-"+(x+1)+" : "); 
  27.             data[x] = scan.nextInt();
  28.         }
  29.        
  30.         //  Menampilkan data sebelum di sorting
  31.         System.out.print("\nData    : ");
  32.         for(int x = 0; x < data.length; x++)
  33.             System.out.print(data[x]+" ");
  34.        
  35.         //  Proses sorting
  36.         sorting();
  37.        
  38.         //  Menampilkan Data setelah di sorting
  39.         System.out.println();
  40.         System.out.print("Sorting : ");
  41.         for(int x = 0; x < data.length; x++)
  42.             System.out.print(data[x]+" ");
  43.        
  44.         //  Input data yang dicari
  45.         System.out.print("\nData yang dicari : ");     
  46.         int cari = scan.nextInt();
  47.        
  48.         //  Proses Metode Pencarian Binary Searching
  49.         System.out.println();
  50.         boolean temu = false;
  51.         awal = 0;
  52.         akhir = data.length - 1;
  53.         temp = 0;
  54.         count = 0;
  55.         int iterasi = 0;
  56.         System.out.println("It  Aw  Ak  Te  Ni");
  57.         while(temu != true)
  58.         {                              
  59.             tengah = (awal + akhir) / 2;
  60.             iterasi++;
  61.            
  62.             //  value == cari
  63.             if(data[tengah] == cari)
  64.             {
  65.                 System.out.print(iterasi+"   ");
  66.                 System.out.print(awal+"   ");
  67.                 System.out.print(akhir+"   ");
  68.                 System.out.print(tengah+"   ");
  69.                 System.out.print(data[tengah]+"\n");
  70.                 temu = true;
  71.                     break;
  72.             }
  73.            
  74.             //  value < cari
  75.             else if(data[tengah] < cari)
  76.             {
  77.                 System.out.print(iterasi+"   ");
  78.                 System.out.print(awal+"   ");
  79.                 System.out.print(akhir+"   ");
  80.                 System.out.print(tengah+"   ");
  81.                 System.out.print(data[tengah]+"\n");
  82.                 awal = tengah + 1;
  83.                
  84.             }
  85.                
  86.             //  value > cari
  87.             else if(data[tengah] > cari)
  88.             {
  89.                 System.out.print(iterasi+"   ");
  90.                 System.out.print(awal+"   ");
  91.                 System.out.print(akhir+"   ");
  92.                 System.out.print(tengah+"   ");
  93.                 System.out.print(data[tengah]+"\n");
  94.                 akhir = tengah - 1;
  95.             }
  96.            
  97.             //  Cek Worst Case
  98.             if(temp != data[tengah])
  99.                 temp = data[tengah];
  100.             else
  101.                 count++;
  102.            
  103.             //  batasan untuk worst case
  104.             if(count == 3)
  105.                 break;
  106.         }
  107.        
  108.         //  Output
  109.         if(temu == true)
  110.             System.out.println("\nData "+cari+" ditemukan pada index ke-"+tengah+"\n"+
  111.             "dan Iterasi ke-"+iterasi);
  112.        
  113.         else
  114.             System.out.println("\nData "+cari+" tidak ditemukan");
  115.            
  116.     }
  117.    
  118.     //  Sorting Ascending
  119.     public static void sorting()
  120.     {
  121.         int temp = 0;
  122.         for(int x = 0; x < data.length; x++)
  123.         {
  124.             for(int y = 0; y < data.length; y++)
  125.             {
  126.                 if(x == y)
  127.                     continue;
  128.                
  129.                 else
  130.                 {
  131.                     if(data[x] < data[y])
  132.                     {
  133.                         temp = data[y];
  134.                         data[y] = data[x];
  135.                         data[x] = temp;
  136.                        
  137.                     }
  138.                 }
  139.             }
  140.         }
  141.     }
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement