- 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
langkah 3: buat fungsi untuk melakukan Searching data string(binary search)
- 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 4: buat fungsi utama kelas(kelas main)
- 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;
- }
- }
- }
Full Code:
- 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);
- }
Output 1:
- 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);
- }
- }
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