Welcome to myblog mr-fahmi.blogspot.com

PENERAPAN METODE SEARCHING DALAM JAVA

Minggu, 22 Desember 20130 komentar

Assalamualaikum ,
Kali ini saya akan mencoba membahas tentang metode pencarian (searching) dalam java , berikut penjelasannya :

Metode Searching
Searching merupakan suatu proses pencarian data dari sejumlah data yang
ada. Pencarian data dapat dilakukan pada sejumlah data yang sudah terurut atau
juga pada data yang belum terurut. 



Kali ini saya akan menggunakan 2 metode pencarian , yaitu :
a)     Sequential Searching (Pencarian Berurutan)
b)     Binary Seacrh (Pencarian Biner)

Sequential Searching (Pencarian Berurutan)
Metode ini merupakan metode paling sederhana, metodenya adalah data yang dicari dibandingkan satu per satu sampai data tersebut ditemukan atau tidak ditemukan dalam deret array (isi data). Pada saat data yang dicari sudah ditemukan, maka proses pencarian langsung dihentikan. Tetapi jika belum ditemukan, maka pencarian diteruskan sampai seluruh data dibandingkan.

berikut contoh source codenya :
package SEARCHING;

public class SEQUENTIAL_SEARCH {

    public static void main(String[] args) {
        System.out.println("***** SEQUENTIAL SEARCH *****"+"\n" );
       
   
        int data[] = {12, 22, 34, 78, 98 , 45 }; //isi array
        int key = 98; //nilai yang dicari
        int N = 6; //batas array
       
       
        //menampilkan data Array
        System.out.print("isi data adalah: ");
        for (int i = 0; i < data.length; i++) {
           
            System.out.print(data[i] + " ");
        }
        System.out.println("");
   

        for (int i = 0; i <= N; i++) {
            if (key == data[i]) { //nilai data yang dicari sama dengan data yang dicari
                System.out.print("Data "+key+" berada pada index ke - " + i);
                break; //stop perulangan
            }
        }
        System.out.println("\n");
        System.out.println();
        System.out.println(" ***** Terima Kasih ***** ");
    }
   
}

Berikut outputnya :













Binary Seacrh (Pencarian Biner)
Metode ini digunakan jika sejumlah data telah diurutkan. Jika dibandingkan
dengan metode awal tadi metode ini jauh lebih cepat. Secara garis besar metode ini bisa dijelaskan sebagai berikut. Urutkan dahulusejumlah data. Lalu bagi dua data-data tadi dengan jumlah data yang sama pada masing-masingnya. Kemudian data dibandingkan dengan data terakhir dari subdata yang pertama. Jika data yang
dicari lebih keci, pencarian dilanjutkan pada sub data pertama dengan terlebih dahulu membagi dua lagi data-data tersebut dengan jumlah yang sama. Tetapi jika  data yang dicari lebih besar dari data terakhir sub data pertama, berarti data yang  dicari kemungkinan terletak pada subdata yang kedua Proses diatas dilakukan  berulang sampai data ditemukan atau tidak ditemukan

contoh source codenya :
package SEARCHING;
public class BINARY_SEARCH {
    public static void main(String[] args) {
System.out.println("***** BINARY SEARCH *****"+"\n" );
        //pendeklarasian variabel
        int A[] = {12, 22, 24, 34, 54};
        int cari = 12;
        int N = 5;
        int batasbawah = N - 1;
        int batasatas = 0;
        boolean ketemu = false;
        int tengah = 0;

        //menampilkan data dalam array
        System.out.print("isi data adalah ");
        for (int i = 0; i < A.length; i++) {

            System.out.print(A[i] + " ");
        }
        System.out.println("");


while ((batasatas < batasbawah) && (!ketemu)) { //perulangan dua kondisi dimana batasatas < batas bawah dan nilai boolean tidak ketemu
tengah = (batasatas + batasbawah) / 2; //mencari nilai tengah denga cara batasatas+batasbawah dibagi 2

            if (A[tengah] == cari) { //koondisi nilai tengah sama dengan data yang dicari
                ketemu = true; //maka kondisi ketemu adaah true

            } else {
                if (A[tengah] < cari) { //sebaliknya jika nilai tengah <dari yng dicari
                    batasatas = tengah++; //maka batas atas = nilai tenga + 1
                } else {                //kondisi sebaliknya maka nilai atas = nilai tengah - 1
                    batasatas = tengah--;
                }
            }
        }

        //mencetak hasil dari pencarian :
        if (ketemu) {
            System.out.println("Data " + cari + " Telah ditemukan pada index ke " +(tengah + " beris ke " + (tengah + 1)));
        } else {
            System.out.println("Data " + cari + " Tidak ditemukan");
        }
System.out.println("\n");
         System.out.println(" ***** Terima Kasih ***** ");
    }
}

Berikut outputnya :














Sekian , semoga bermanfaat  (1200631023)
Share this article :
 
Support : Cara Gampang | Creating Website | FAHMI | FA | Pusat Promosi
Copyright © 2011. FROM FAHMI - All Rights Reserved
Template Created by FROM FAHMI Modify by FROM FAHMI
Proudly powered by Blogger