- Metode Skuensial
- Metode Binary Search
Sebelum lanjut kecontoh program, ada baiknya teman-teman memahami metode shorting terlebih dahulu, karena sebelum mencari data menggunakan metode binary searching, data terlebih dahulu dirutkan. Untuk pembahasan mengenai shorting teman-teman bisa cek disini.
Langsung saja ke pokok pembahasan.
langkah 1: import java Scanner. agar pencarian lebih dinamis dengan user dapat memasukkan kata yang ingin dicari.
import java.util.Scanner;
Dan jangan lupa dalam kelas buatkan object untuk kelas yang diimport.
static Scanner input = new Scanner(System.in);
langkah 2: buat fungsi untuk melakukan Shorting data string
public static void Shorting(String[] string) {
for (int i = 0; i < string.length - 1; i++) {
int min = i;
for (int elemen = i + 1; elemen < string.length; elemen++) {
if (string[elemen].compareTo(string[min]) < 0)
min = elemen;
}
String temp = string[i];
string[i] = string[min];
string[min] = temp;
}
}
langkah 3: buat fungsi untuk melakukan Searching data string(binary search) public static void BinarySearch(String[] string) {
int batasAtas = string.length - 1;
int batasBawah = 0;
System.out.print("Masukkan string yang dicari :");
String cari = input.next();
boolean notFound = true;
while (notFound) {
int posisiSekarang = (batasAtas + batasAtas) / 2;
if (string[posisiSekarang].equals(cari)) {
notFound = false;
System.out.println("ditemukan " + cari);
} else if (batasBawah > batasAtas) {
System.out.println("Tidak ditemukan " + cari);
break;
} else {
if (string[posisiSekarang].compareTo(cari) < 0)
batasBawah = posisiSekarang + 1;
else
batasAtas = posisiSekarang - 1;
}
}
}
langkah 4: buat fungsi utama kelas(kelas main) public static void main(String[] args) {
String string[];
System.out.print("Masukkan jumlah string (min.5):");
string = new String[input.nextInt()];
for (int i = 0; i < string.length; i++) {
System.out.print("Masukkan string ke :" + (i + 1) + " :");
string[i] = input.next();
}
//Shorting before searching with binary search
Shorting(string);
BinarySearch(string);
}
Full Code:import java.util.Scanner;
public class tugas {
static Scanner input = new Scanner(System.in);
public static void Shorting(String[] string) {
for (int i = 0; i < string.length - 1; i++) {
int min = i;
for (int elemen = i + 1; elemen < string.length; elemen++) {
if (string[elemen].compareTo(string[min]) < 0)
min = elemen;
}
String temp = string[i];
string[i] = string[min];
string[min] = temp;
}
}
public static void BinarySearch(String[] string) {
int batasAtas = string.length - 1;
int batasBawah = 0;
System.out.print("Masukkan string yang dicari :");
String cari = input.next();
boolean notFound = true;
while (notFound) {
int posisiSekarang = (batasAtas + batasAtas) / 2;
if (string[posisiSekarang].equals(cari)) {
notFound = false;
System.out.println("ditemukan " + cari);
} else if (batasBawah > batasAtas) {
System.out.println("Tidak ditemukan " + cari);
break;
} else {
if (string[posisiSekarang].compareTo(cari) < 0)
batasBawah = posisiSekarang + 1;
else
batasAtas = posisiSekarang - 1;
}
}
}
public static void main(String[] args) {
String string[];
System.out.print("Masukkan jumlah string :");
string = new String[input.nextInt()];
for (int i = 0; i < string.length; i++) {
System.out.print("Masukkan string ke :" + (i + 1) + " :");
string[i] = input.next();
}
//Shorting before searching with binary search
Shorting(string);
BinarySearch(string);
}
}
Output 1:Masukkan jumlah string :5 Masukkan string ke :1 :buku Masukkan string ke :2 :koran Masukkan string ke :3 :majalah Masukkan string ke :4 :kursi Masukkan string ke :5 :mouse Masukkan string yang dicari :kursi ditemukan kursiOutput 2:
Masukkan jumlah string :5 Masukkan string ke :1 :mouse Masukkan string ke :2 :laptop Masukkan string ke :3 :gelas Masukkan string ke :4 :kursi Masukkan string ke :5 :handphone Masukkan string yang dicari :piring Tidak ditemukan piring
makasih bro sangat membantu
ReplyDeleteSiap Kakak.
Deleteluar biasa
ReplyDeleteUntuk pencarian string ke string bagaimana ? seperti mentranslate jika dicari kata aku menjadi i am?
ReplyDelete