Metode Searching dan Implementasinya dalam Pemrograman JAVA

Metode searching dalam suatu program yang berorientasi dengan database merupakan suatu hal yang tidak bisa dianggap remeh. Karena untuk mencari suatu data dalam database, membutuhkan waktu yang cukup lama apalagi jika databasenya besar. Sehingga, diperlukan suatu metode untuk mempermudah dalam pencarian data, daripada pencarian secara manual . Sebenarnya, terdapat banyak algoritma searching yang ada, namun yang paling umum digunakan bagi programmer pemula adalah 2 sequensial dan binary.

Dalam metode sequensial , proses pencarian dilakukan dengan cara membandingkan data satu persatu. sehingga, waktu yang dibutuhkan cukup lama. Apalagi, kalau data yang dicari ada di urutan paling belakang dan jumlahnya banyak. Keunggulan dari metode ini, yaitu data yang dicari tidak perlu diurutkan terlebih dahulu.

Berikut sourcecode sample dalam bahasa Java

//operasi searching SEQUENCE SEARCH menggunakan konsep OOP
//simpan dengan nama sequence.java
import java.util.Scanner;
import javax.swing.JOptionPane;
abstract class input{
public Scanner dataIn=new Scanner(System.in);
	public int [] data=new int[10000];
	public int [] salin=new int[10000];
	public int setData(){
		String input=JOptionPane.showInputDialog(null,"masukkan nila total data ","input",JOptionPane.QUESTION_MESSAGE);
		int total=Integer.parseInt(input);
		return total;
	}

	public void getData(int total){
		int b=0;
		for(int a=0;a<total;a++){
		b++;
			System.out.print("masukkan nilai INDEX ke "+b+"=");data[a]=dataIn.nextInt();
		}
	}
}

class proses extends input{

	public int find(int total){
		String input=JOptionPane.showInputDialog(null,"masukkan data yang akan dicari","cari",JOptionPane.QUESTION_MESSAGE);
		int cari=Integer.parseInt(input);
		int a=0,flag=0;
		while(a<=total && flag==0){
			if(cari==data[a]){
				flag=1;
			}
			else{
				a++;
			}
		}
	return flag;
	}

	public void show(int total){
		for(int a=0;a<total;a++){
			System.out.println(data[a]);
		}
		System.out.println();
	}
}

class sequence{
	public static void main(String [] args){
		proses cari=new proses();
		int x=cari.setData();
		cari.getData(x);
		cari.show(x);
		int ketemu=cari.find(x);
			if(ketemu==1)
				System.out.println("data ditemukan");
			else
				System.out.println("data tidak ditemukan");
	}
}

Sebaliknya, dalam metode binary, data yang akan dicari harus diurutkan terlebih dahulu. karena, data dicari dengan cara membagi dua. Misal data didalam array berelemen 10, maka data dibagi menjadi 5. Jika data ditemukan ditengah, maka program akan memberikan indikator bahwa data telah ditemukan. Keunggulan dari program ini, adalah kecepatan yang jauh melebihi metode sequensial.

Berikut sourcecode binary search menggunakan java

//operasi searching BINARY SEARCH menggunakan konsep OOP
//simpan dengan nama binary.java
import java.util.Scanner;
import javax.swing.JOptionPane;
abstract class input{
public Scanner dataIn=new Scanner(System.in);
 public int [] data=new int[10000];
 public int setData(){
 String input=JOptionPane.showInputDialog(null,"masukkan nila total data ","input",JOptionPane.QUESTION_MESSAGE);
 int total=Integer.parseInt(input);
 return total;
 }

 public void getData(int total){
 int b=0;
 for(int a=0;a<total;a++){
 b++;
 System.out.print("masukkan nilai INDEX ke "+b+"=");data[a]=dataIn.nextInt();
 }
 }
}

class proses extends input{

 public int find(int total){
 String input=JOptionPane.showInputDialog(null,"masukkan data yang akan dicari","cari",JOptionPane.QUESTION_MESSAGE);
 int cari=Integer.parseInt(input);
 int left=0,flag=0;

 while(left<total && flag==0){
 int mid=(left+total)/2;
 if(data[mid]==cari){
 flag=1;}
 else{
 if(data[mid]<cari)
 left=mid+1;
 else
 total=mid-1;
 }
 }
 return flag;
 }

 public void show(int total){
 for(int a=0;a<total;a++){
 System.out.println(data[a]);
 }
 System.out.println();
 }
}

class binary{
 public static void main(String [] args){
 proses cari=new proses();
 int x=cari.setData();
 cari.getData(x);
 cari.show(x);
 int ketemu=cari.find(x);
 System.out.println("ketemu = "+ketemu);
 if(ketemu==1)
 System.out.println("data ditemukan");
 else
 System.out.println("data tidak ditemukan");
 }
} 

One thought on “Metode Searching dan Implementasinya dalam Pemrograman JAVA

  1. wira 06/12/2011 at 12:57 am Reply

    gan,, klo nyari kata2ny k file .txt yg kita buat sendiri tuh gmn gan??
    misalny kita mw nyari per kata2 atau per kalimat yg ada d file .txt misalny,, tuh gmn y??
    mohon wejanganny agan fauzi..😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: