Minggu, 22 Desember 2013

SEQUENTIAL


Sequential

Pengertian>>>>>
§  Merupakan teknik yang sederhana dan langsung dapat digunakan pada struktur data array.
§  Pencarian data secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data telah dicari dan tidak ditemukan
§  Dilakukan pada data yang tidak terurut

Algoritma Sequential  ......
1.       Input x (data yang dicari)
2.       Bandingkan x dengan data ke-i sampai n
3.       Jika ada data yang sama dengan x maka cetak pesan “Ada”
4.       Jika tidak ada data yang sama dengan x cetak pesan “tidak ada”

Penerapan pada binary search....
Binary Search
¡  Pencarian data dimulai dari pertengahan data yang telah terurut.
¡  Jika kunci pencarian lebih kecil daripada kunci posisi tengah, maka kurangi lingkup pencarian pada separuh data pertama.
¡  Begitu juga sebaliknya jika kunci pencarian lebih besar daripada kunci tengah, maka pencarian ke separuh data kedua.
¡  Teknik Binary Search hanya dapat digunakan pada sorted array.
Best Case and Worst Case 
Binary Search
>>>>>
¡   Best case : jika data yang dicari terletak di posisi tengah.
¡  Worst case : jika data yang dicari tidak ditemukan.
¡  Contoh :
                DATA = 5 6 9 2 8 1 7 4 3
                bestcase ketika x = 8 (T(n)=1)
                worstcase ketika x = 25 (T(n) = 5 atau n/2)
                *x = key/data yang dicari


Sedikit penerapan pada java koding J

public static void main(String[] args) {//main method

        int N = 9;//batas indeks inputan pada array
        int A[] = {2, 3, 4, 5, 6, 7, 8};// sebuah array
        int BatasAtas, BatasBawah, BatasTengah;//deklarasi variabel type integer
        BatasTengah = 0;//inisialisasi variabel bahwa dimulai dari 0
        boolean Ketemu;//tipe data
        Ketemu = false;
        int Cari = 7;//inputan yang akan dicari dalam array
        BatasAtas = 0;//batas atas
        BatasBawah = N - 1;//algoritma Batas bawah


        while ((BatasAtas <= BatasBawah) && (Ketemu == false)) {//proses looping

            BatasTengah = (BatasAtas + BatasBawah) / 2;

            if (A[BatasTengah] == Cari) {//suatu kondisi jika inputan ada pada array

                Ketemu = true;//maka ketemu
            } else if (A[BatasTengah] < Cari) {//sebaliknya jika inputan kurang pada array

                BatasAtas = BatasTengah - 1;//maka mencari inputan dari sebelah kiri

            } else {//sebaliknya
                BatasBawah = BatasTengah + 1;//cari di sebalah kana
            }

        }
        if (Ketemu) {//suatu kondisi apabila inputan ditemukan
            System.out.println("Angka " + Cari + "Berada Pada Index Array Ke- " + BatasTengah);
                    //akan menapilkan inputan pada deret array ke berapa
        } else {//sebaliknya

            System.out.println("Angka Tidak Ditemukan Pada Deret Array");
            //akan menampilkan pesan tersebut
        }
    }
}

Outpu:






Tri Hendra J
1200631012

Manajemen Informatika
UMJ