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
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>>>>>
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
1200631012
Manajemen Informatika
UMJ
UMJ

Tidak ada komentar:
Posting Komentar