Searching Pada Java - Mari Belajar Coding -->

Kamis, 12 November 2020

Searching Pada Java

Searching Pada Java

Definisi Searching adalah pencarian data dengan menelusuri tempat pencarian data tersebut. Tempat pencarian data tersebut dapat berupa array dalam memori, bisa juga pada file pada external storage.

Sequential Search
sequential  adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).
Misal terdapat array satu dimensi sebagai berikut.

Searching Pada Java

Kemudian program akan meminta data yang akan dicari, misalnya 6. Jika ada maka akan ditampilkan tulisan "ada", sedangkan tidak ada akan menampilkan tulisan "tidak ada".

Contoh Programbuat file bernama searching_sequential.java.

import java.io.*;
public class searching_sequential {
    public static void main(String[] arg) throws IOException {
    	int data[] = {8, 10, 6, -2, 11, 7, 1, 100};
		int cari;
		int flag = 0;
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.print("Masukkan data yang ingin dicari : ");
		cari = Integer.parseInt(in.readLine());
		for (int i=0; i<8; i++){
			if (data[i] == cari){
			flag = 1;
			}
		}
		if (flag == 1)
		System.out.println("Data ada ");
		else
		System.out.println("Data tidak ada ");
    } 
}

Binary Search
Teknik searching dengan Binary Seacrh data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian. teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali terjadi proses pengurutan.

Searching Pada Java

Missal data yang dicari 17, karena 17 = 17 (data tengah), maka ketemu.


import java.io.*;
public class searching_binary {
    public static void main(String[] arg) throws IOException {
    	int[] data = new int[9];
		//int data[9] = {3, 9, 11, 12, 15, 17, 23, 31, 35}
		data[0] = 3;
		data[1] = 9;
		data[2] = 11;
		data[3] = 12;
		data[4] = 15;
		data[5] = 17;
		data[6] = 23;
		data[7] = 31;
		data[8] = 35;
		int l, r, m, n, ketemu, cari;
		n = 9;
		l = 0;
		r = n - 1;
		ketemu = 0;
		cari = 17;
		while ((l<=r) && (ketemu == 0)){
			m = (l+r)/2;
			System.out.println("data tengah :"+ m);
			if (data[m] == cari)
				ketemu = 1;
			else if (cari < data[m]){
				System.out.println("Cari di kiri ");
				r = m - 1;
			}
			else{
				l=m+1;
				System.out.println("Cari di kanan ");
			}
		}
		if (ketemu==1)
			System.out.println("data ada");
		else
			System.out.println("data tidak ada");
    }    
    
}

Related Posts

Load comments