Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
NIM : 203010503008
KELAS : A
A. TUJUAN
1. Mahasiswa dapat memahami Algoritma pencarian Beruntun dan Binary.
2. Mahasiswa dapat mengimplementasikan algoritma pencarian untuk
menyelesaikan permasalahan.
B. DASAR TEORI
Searching merupakan proses untuk menemukan suatu data atau informasi
dari sekumpulan data/informasi yang ada. Algoritma pencarian/searching
algorithm merupakan algoritma yang menerima suatu kata kunci sebagai
kriteria pencarian, dan dengan langkah-langkah tertentu akan mencari rekaman
yang sesuai dengan kata kunci tersebut. Di dalam modul ini akandiperken alkan
2 teknik pencarian data yaitu pencarian beruntun/sequential searching dan
pencarian biner/binary search
A. Pencarian Beruntun/Sequential Search
Sequential Search adalah teknik pencarian data dimana data dicari
secara urut dari depan ke belakang atau dari awal sampai akhir. 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. Pertama, jika data
yang dicari terletak dibelakang atau paling akhir, maka akan
membutuhkan waktu yang lama dalam proses pencariannya. Kedua, beban
komputer akan semakin bertambah jika jumlah data dalam array sangat
banyak.
Teknik pencarian data dari array yang paling mudah adalah dengan
cara sequential search, dimana data dalam array dibaca 1 demi satu,
diurutkan dari index terkecil ke index terbesar, maupun sebaliknya.
Contoh :
Array :
int a[5] = {0,3,6,10,1} (index array pada bahasa C dimulai dari index ke
0) jika kita ingin mencari bilangan 6 dalam array tersebut, maka proses
yang terjadi kita mencari
1. dari array index ke-0, yaitu 0, dicocokan dengan bilangan yang akan
dicari, jika tidak sama, maka mencari ke index berikutnya
2. pada array index ke-1, juga bukan bilangan yang dicari, maka kita
mencari lagi pada index berikutnya
3. pada array index ke-2, ternyata bilangan yang kita cari ada ditemukan,
maka kita keluar dari looping pencarian.
B. Binary Search
Metode pencarian yang kedua adalah binary search, pada metode
pencarian ini, bila data belum terurut maka data harus diurutkan terlebih
dahulu. Pencarian Biner (Binary Search) dilakukan untuk :
1. Memperkecil jumlah operasi pembandingan yang harus dilakukan
antara data yang dicari dengan data yang ada khususnya untuk jumlah
data yang sangat besar ukurannya.
2. Prinsip dasarnya adalah melakukan proses pembagian ruang
pencarian secara berulang-ulang sampai data ditemukan atau sampai
ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data
tidak ditemukan).
3. Syarat utama untuk pencarian biner adalah data harus sudah terurut,
misalkan terurut menaik.
Contoh :
Diketahui Data sebagai berikut, dan data yang dicari adalah 15
Loop pertama :
Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4 A
[Tengah] = A [4] = 12 < cari = 15,
berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua :
Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 8 ) div 2=6 A
[Tengah] = A [6] = 25 > cari = 15,
berarti BatasBawah = Tengah – 1 = 6 – 1 = 5
Loop ketiga :
Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 5 ) div 2=5 A
[Tengah] = A [5] = 15,
berarti setelah loop ketiga, data ditemukan
C. Langkah Kerja
a. Sequential Search
public class Sequential {
public static void main(String[] args) {
int[] data = {99,20,17,8,27,5,21,10,41,11};
int cari=8;
int i;
boolean ditemukan = false;
for(i=0; i < data.length; i++){
if (data[i] == cari){
ditemukan=true;
break;
}
}
if (ditemukan) {
System.out.println("Data : " + cari + " Ditemukan Pada Index
:"+ i +".");
}
else{
System.out.println("Data Tidak di temukan");
}}
}
b. Binary Search
public class Binary {
BatasAtas = 0;
BatasBawah = N - 1;
Tengah = 0;
boolean ketemu;
ketemu = false;
Gambar 1
Gambar 2
Gambar 3
Gambar 4
Gambar 5
Gambar 6
Gambar 7
Gambar 8