Minggu, 22 Desember 2013

SEQUENTIAL & BINARY SEARCHING

Kali ini saya akan membahas tentang searching , silahkan menyimak :



  • Searching adalah proses pencarian data yang ada pada suatu deret data dengan cara menelusuri data-data tersebut.
  • Tahapan paling penting pada searching: memeriksa jika data yang dicari sama dengan data yang ada pada deret data.

Sequential search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir, berdasarkan key yang dicari kelebihan dari proses pencarian secara sequential ini.
 ·          Jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangan.
 ·          Jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya.
 ·          Beban komputer akan semakin bertambah jika jumlah data dalam array sangat banyak.
Binary search merupakan teknik pencarian data dalam dengan cara membagi dua bagian setiap kali terjadi proses pengurutan. Data yang dicari harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan kunci pencarian.
 ·          Data yang dicari sama dengan elemen terakhir pada bagian pertama dalam larik. Jika kondisi ini terpenuhi, data yang dicari berarti ditemukan. Data dicari dari posisi satu sampai posisi akhir N. Jika tidak diketemukan maka data akan terus mencari sampai menemukan data yang sama.


berikut saya berikan coding sequential search :

package Tugas;
import java.util.Scanner;
public class SequentialSearch {

    public static void main(String[] args) {
        System.out.println("==================== AJI DWI KUSMAN ====================" + "\n");
  

        int A[] = {2, 5, 8, 7, 9, 1, 3, 4, 6};//data array yang tersedia

        Scanner input = new Scanner(System.in);//untuk membuat inputan
        int N = 8;//merupakan sebuah batasan array
       
        //menampilkan data yang ada pada array
        System.out.print("Data array yang akan dicari: {2, 5, 8, 7, 9, 1, 3, 4, 6}");
        System.out.println("");//untuk pindah baris
       
        //menampilkan text data yang akan dicari
        System.out.print("Masukkan data yang dicari: ");
        int cari = input.nextInt();//tempat inputan scanner
       
        //sebuah perulangan untuk mencari data berada pada index ke berapa
        for (int i = 0; i <= N; i++) {
            if (cari == A[i]) {
                System.out.print("Data yang dicari berada pada index ke - " + i);
                break;
            }
        }
        System.out.println("\n");//untuk pindah baris
        System.out.println("====================  Terima Kasih  ====================");
    }
}


outputya :



selanjutnya coding binary search :

package Tugas;
public class BinarySearch {
    public static void main(String[] args) {
        System.out.println("========== AJI DWI KUSMAN ==========" + "\n");
        int N = 8;//variabel N sebagai batas array
        int A[] = {23,34,44,56,66,70,72,78};//variabel array yang digunakan
        int cari, BatasAtas, BatasBawah, Tengah;
        boolean Ketemu;//variabel boolean
       
        //initialisasi variabel
        cari = 56; //merupakan inputan angka yang akan dicari
        BatasAtas = 0;
        BatasBawah = N-1;
        Ketemu = false;
        Tengah = 0;
       
       
        //kondisi untuk mencari dari tengah
        while ((BatasAtas < BatasBawah) && (!Ketemu)) {
        Tengah = (BatasAtas + BatasBawah) / 2;
            if (A[Tengah] == cari) {
                Ketemu = true;
            } else {
                if (A[Tengah] < cari) {
                    BatasAtas = Tengah + 1;
                } else {
                    BatasBawah = Tengah - 1;
                }
            }
        }     
        //kondisi untuk menampilkan hasil
        if (Ketemu) {
            System.out.println("Data berada di index nomor: " + Tengah + "\n");
        } else {
            System.out.println("Data tidak di temukan");
        }  
        System.out.println("==========  Terima Kasih  ==========");

    }
}

outputnya :


terimakasih : (1200631034)
 

Tidak ada komentar:

Posting Komentar