- 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 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;
Tengah = 0;
//kondisi untuk mencari dari tengah
while ((BatasAtas < BatasBawah)
&& (!Ketemu)) {
Tengah = (BatasAtas + BatasBawah) / 2;
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