- 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