Cara kerja sequential search :
·
Data
Array = { 21, 4, 94, 14, 1, 9, 2}
·
Elemen kunci
yang di cari = 14
·
Maka
elemen Data Array : 10, 8, 11, 20, 27, 99, 21, 5, 41, 17
·
Elemen
yang di cari : 99
·
Maka
elemen yang di periksa adalah : 21, 4, 94, 14 (Data 14 di temukan)
·
Index
larik yang di kembalikan : idx : 3
·
Setelah
elemen kunci yang di cari ketemu maka pencarian akan berhenti di sini tanpa
memeriksa elemen setelah elemen 14.
Berikut
contoh coding java Sequential Search :
package tugas_Searching;
import java.util.Scanner;
public class sequential {
public static void main(String[] args) {
int [] Data = {21, 4, 94, 14, 1, 9, 2};
int key = 14;
int i = 0;
boolean temukan = false;
for (i = 0; i < Data.length; i++) {
if (key == Data[i] ){
temukan = true;
break;
}
}
if (temukan){
System.out.println("Data :
" + key );
System.out.println("Ada");
}
else {
System.out.println("Tidak Ada");
}
}
}
Binary search adalah teknik pencarian
data dimulai dari pertengahan data yang telah terurut atau dengan cara membagi
dua data setiap kali proses pengurutan.
Algoritma Binary Search :
Input (cari) {meminta nilai data
yang akan dicari}
BatasAtas ← 0
{indeks array dimulai dari 0}
BatasBawah ← N –
1
Ketemu ←
False
While (BatasAtas <
BatasBawah) and (not ketemu) do
Tengah ←
(BatasAtas + BatasBawah) div 2
If A [Tengah] = cari then
Ketemu
← true
Else
If (A [Tengah] < cari) then
{cari di bagian kanan}
BatasAtas
← Tengah + 1
Else
BatasAtas ← Tengah -1 {cari di bagian kiri}
Endif
Endif
EndWhile
If (ketemu) then
Output (‘Data berada di index
nomor’, Tengah)
Else Output
(‘Data tidak dtemukan’)
Endif
Berikut contoh coding java
Binary Search :
package tugas_Searching;
public class binary {
public static void main(String[] args) {
int N = 8;
int A [] = {2, 5, 3, 8, 1, 6, 7, 9};
int BatasAtas, BatasBawah, Tengah;
int cari = 5;
BatasAtas = 0;
BatasBawah = N - 1;
Tengah = 0;
boolean ketemu;
ketemu = false;
while((BatasAtas <= BatasBawah)
&& (ketemu == false)){
Tengah = (BatasAtas + BatasBawah) /
2;
if (A[Tengah] == cari){
ketemu = true;
} else
if (A[Tengah] <= cari){
BatasAtas = Tengah + 1;
} else {
BatasBawah = Tengah - 1;
}
}
if (ketemu) {
System.out.println("Angka :
"+ cari + " Data berada di index nomor " + Tengah);
} else {
System.out.println("Angka :
"+ cari +" Data tidak ditemukan");
}
}
}
Cara kerja
Binary search :
·
Data
diambil dari posisi 1 sampai posisi N
·
Lalu
cari posisi data Tengah dengan rumus (BatasAtas + BatasBawah) / 2
· Kemudian
data yang dicari dibandingkan dengan data Tengah, apakah data itu lebih besar
atau lebih kecil.
·
Jika
lebih besar, maka (BatasAtas = Tengah + 1)
·
Jika
lebih kecil, maka (BatasBawah = Tengah – 1)
·
Jika
data yang dicari = data tengah, maka “KETEMU”
Sekian penjelasan tentang Searching
(Pencarian) pada Java , Sequential Search dan Binary Search, semoga bermanfaat.
Nama :
Nur Laily Kartiningsih
NIM :
1200631014


