Jumat, 30 Maret 2012

Searching Java_coding


PENCARIAN (SEARCHING)
        

Operasi pencarian adalah operasi untuk menemukan sebuah nilai (data) di dalam sekumpulan nilai yang bertipe sama. Untuk menemukan nilai yang kita cari, instruksi yang paling penting yang harus dilakukan adalah memeriksa jika nilai yang kita cari sama dengan salah satu nilai dalam kumpulan nilai yang dimaksud. Metode pencarian yang bisa kita pergunakan tergantung dari:
  1. Bagaimana urutan nilai-nilai di dalam kumpulan nilai.
  2. Bagaimana struktur data yang dipergunakan untuk menyusun nilai-nilai tersebut.
Kita dapat mempergunakan baik metode pencarian beruntun (sequential) maupun metode pencarian biner (binary search), jika:
  1. Nilai-nilai tersebut sudah tersusun secara berurutan, dan
  2. Nilai-nilai tersebut disusun ke dalam bentuk larik (array) atau struktur data sejenis yang masing-masing nilai tersimpan dalam bagian-bagian yang mempunyai indeks yang unik dan indeksnya berurutan dari yang paling kecil hingga yang paling besar (bersifat ordinal).

Kita dapat mempergunakan metode pencarian beruntun atau linear (sequential search atau linear search) jika:
  1. Nilai-nilai tersebut belum berurutan.
  2. Nilai-nilai tersebut sudah berurutan, tetapi struktur data yang dipergunakan untuk menyimpan nilai-nilai tersebut adalah senarai.

Berikut ini adalah contoh-contoh implementasi searching pada program Java yang pernah saya buat untuk latihan di kuliah.








Binary Searching

import javax.swing.*;


public class binarySearching
{


    public static void main(String[] args)
    {
     
    int A[]= {10,20,30,40,50,60,70,80,90};
    
    int i=0, n=0, r, x,mid=0;
    boolean ketemu = false;
    
       
       
    x = Integer.parseInt(JOptionPane.showInputDialog( "CARI:"));
      System.out.println("Data yang dicari:  "+ x);
     
    i = 0;
    n = A.length;
    r = n-1;
    


        while (i<=r)
    {
    mid =(i+r)*1/2;
    if (A[mid]== x) 
    {
    ketemu = true;
    break;
    }
    else if(A[mid]>x)
    {
    r = mid-1;
    }
    else
    i = mid+1;
    }
    if (ketemu ==true)
    {
    System.out.println("KETEMU");
    }
    else 
    {
    System.out.println("dak ADOOO...!");
    }
    }
   
   
}








Sequential Searching


import javax.swing.*;
public class seq_Searching 
{
    public static void main(String [] args) 
    {
  int  A[]={30,20,50,70,60,10,90,80,40};

String x_cari;
    int x, ketemu=0;
    x_cari = JOptionPane.showInputDialog ("Cari Data:" );
  x = Integer.parseInt(x_cari);
 
  System.out.println("Cari Data (x):"+ x);
    
    
  for (int i=0;i<9; i++)
  {
  if (A[i]==x)
  {
  ketemu = 1;
break;
  }
  }
      if (ketemu==1)
    {
    System.out.println("KETEMU di INDEX ke-" + i);
  }
  else
  {
  System.out.println("TIDAK KETEMU");
    }
   
  }
    
    
}







Sentinel Searching



import javax.swing.*;
public class sentinel_searching 
{


    public static void main(String [] args) 
    {
 
  String x_cari;
    int x=0, j=0;
     
int  A[]={100,200,500,800,400,300,600,1000,900,x };

        x_cari = JOptionPane.showInputDialog ("Cari Data:" );
  x = Integer.parseInt(x_cari);
  A[9] = x;
  System.out.println("Cari Data (x):"+ x);
  System.out.println("  ");
      
      while (A[j]!=x)
  {
  if (A[j]==x)
    {
      break;
    }
  else
    {
      j = j+1;
    }
 
  }
      
   if (j<9)
   {
   System.out.println("KETEMU DI INDEX KE-" + j);
   JOptionPane.showMessageDialog (null,"PENCARIAN DATA :"+x+"KETEMU DI INDEX KE-" + j);
   }
   else
   {
   System.out.println(" KETEMU di SENTINEL");
   JOptionPane.showMessageDialog (null,"PENCARIAN DATA :"+x+"TIDAK KETEMU(data sentinel)" );
   }
 }
    
    
}



AKU DENGAR BISIKAN SUARAMU

AKU DENGAR BISIKAN SUARAMU   Aku dengar bisikan suaraMu Menggema lembut di dalam batinku Sungguh engkau sahabatKu Jikalau eng...