IMPLEMENTASI SEARCH
Searching adalah proses pencarian data yang ada pada suatu deret data dengan cara menelusuri data-data tersebut. Kunci (key) digunakan untuk melakukan pencarian record yang diinginkan didalam suatu list.
Tahapan paling penting pada searching: memeriksa jika data yang dicari sama dengan data yang ada pada deret data.
JENIS SEARCHING
1. Single Match
Pencarian yang menghasilkan satu data
Contoh : mencari mahasiswa dengan nim “120651234”
2. Multiple Match
Pencarian yang memungkinkan menghasilkan beberapa data
Contoh : mencari mahasiswa dengan ipk >= 3.5
ALGORITMA SEARCHING
1. Sequential Search
Merupakan teknik yang sederhana dan langsung dapat digunakan pada struktur data array.
Pencarian data secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data telah dicari dan tidak ditemukan dan dilakukan pada data yang tidak terurut.
Contoh Implementasi Squential Search sebagai berikut :
package TUGAS5_IISDAHLIA;
Searching adalah proses pencarian data yang ada pada suatu deret data dengan cara menelusuri data-data tersebut. Kunci (key) digunakan untuk melakukan pencarian record yang diinginkan didalam suatu list.
Tahapan paling penting pada searching: memeriksa jika data yang dicari sama dengan data yang ada pada deret data.
JENIS SEARCHING
1. Single Match
Pencarian yang menghasilkan satu data
Contoh : mencari mahasiswa dengan nim “120651234”
2. Multiple Match
Pencarian yang memungkinkan menghasilkan beberapa data
Contoh : mencari mahasiswa dengan ipk >= 3.5
ALGORITMA SEARCHING
1. Sequential Search
Merupakan teknik yang sederhana dan langsung dapat digunakan pada struktur data array.
Pencarian data secara urut mulai dari data pertama sampai kunci yang dicari ditemukan atau sampai seluruh data telah dicari dan tidak ditemukan dan dilakukan pada data yang tidak terurut.
Contoh Implementasi Squential Search sebagai berikut :
package TUGAS5_IISDAHLIA;
import java.util.Scanner;
import javax.swing.JOptionPane;
/**
*
* @author IisDahlia
*/
public class SequentialBinary {
public static void main(String[] args) {
int nilai []= {2, 5, 8, 12, 15, 25, 37, 57};//tipe data array
String kunci=JOptionPane.showInputDialog("Data yang dicari : ");
int key=Integer.parseInt(kunci);//menyesuaikan tipe data array dengan
//mengganti tipe data string ke int
boolean ketemu = false;//tipe data boolean yang menyatakan ada & tidaknya data
int i= 0;//integer perulangan
int indeks = -1;//menyatakan indeks yang bernilai -1 terdapat didalam variable
while(!ketemu && i<nilai.length ){//akan terjadi perulangan variable yang
//tidak ditemukan jika kurang dari panjang array
indeks = i;//indeks menjadi varible perulangan
if(key == nilai[i]){//indeks yang bernilai sama dengan data kunci dan
//berada saat perulangan maka data yang ditemukan bernilai true
ketemu=true;
}
i++;//increment i=i+1
}
String Pesan = ketemu?"data ditemukan pada indeks ke :"
+ indeks :"data yang anda cari tidak ditemukan ";
JOptionPane.showInputDialog(Pesan);//print out dari hasil pencarian
}
}
Untuk lebih jelasnya dan supaya lebih mudah dipahami bisa melihat gambar dibawah ini:
import javax.swing.JOptionPane;
/**
*
* @author IisDahlia
*/
public class SequentialBinary {
public static void main(String[] args) {
int nilai []= {2, 5, 8, 12, 15, 25, 37, 57};//tipe data array
String kunci=JOptionPane.showInputDialog("Data yang dicari : ");
int key=Integer.parseInt(kunci);//menyesuaikan tipe data array dengan
//mengganti tipe data string ke int
boolean ketemu = false;//tipe data boolean yang menyatakan ada & tidaknya data
int i= 0;//integer perulangan
int indeks = -1;//menyatakan indeks yang bernilai -1 terdapat didalam variable
while(!ketemu && i<nilai.length ){//akan terjadi perulangan variable yang
//tidak ditemukan jika kurang dari panjang array
indeks = i;//indeks menjadi varible perulangan
if(key == nilai[i]){//indeks yang bernilai sama dengan data kunci dan
//berada saat perulangan maka data yang ditemukan bernilai true
ketemu=true;
}
i++;//increment i=i+1
}
String Pesan = ketemu?"data ditemukan pada indeks ke :"
+ indeks :"data yang anda cari tidak ditemukan ";
JOptionPane.showInputDialog(Pesan);//print out dari hasil pencarian
}
}
Untuk lebih jelasnya dan supaya lebih mudah dipahami bisa melihat gambar dibawah ini:
2. Binary Search
Pencarian data dimulai dari pertengahan data yang telah terurut.
Jika kunci pencarian lebih kecil daripada kunci posisi tengah, maka kurangi lingkup pencarian pada separuh data pertama. Begitu juga sebaliknya jika kunci pencarian lebih besar daripada kunci tengah, maka pencarian ke separuh data kedua. Teknik Binary Search hanya dapat digunakan pada sorted array.
Contoh Implementasi BinarySearch sebagai berikut :
package TUGAS5_IISDAHLIA;
import java.util.Scanner;
import javax.swing.JOptionPane;
/**
*
* @author IisDahlia
*/
public class BinarySearch_IisDahlia {
public static void main(String[] args) {
int A[] = {3, 7, 9, 10, 21, 24, 33, 63};
Scanner input = new Scanner(System.in);//memasukkan inputan berupa kunci
System.out.println("Data yang dicari : ");
int keyint =input.nextInt();//menyesuaikan tipe data array dengan
//mengganti tipe data string ke int
boolean ketemu = false;//data boolean yang menyatakan ada & tidaknya data
int indeksAtas = 0;//integer perulangan pada indeks kiri
int indeksBawah = A.length - 1;//integer perulangan pada indeks kanan
int indekstengah = -1;//integer perulangan pada indeks tengah
while ( !ketemu&& indeksAtas <= indeksBawah ) {
//akan terjadi perulangan variable yang tidak ditemukan
//jika indeks sebelah kiri kurang dari sama dengan indeks kanan
indekstengah = (indeksAtas + indeksBawah) / 2;
//memisahkan array menjadi bagian kanan dan kiri dengan indeks tengah
if (A[indekstengah] == keyint) {
//nilai indeks tengah sama dengan kunci yang dicari dengan status
//true atau false
ketemu = true;
}else if (keyint < A[indekstengah] ){
//menjelaskan nilai kunci lebih besar dari indeks
indeksBawah=indekstengah -1;
}else{//mencari bagian kiri
indeksAtas=indekstengah +1;
}
}if(ketemu){///perulangan jika nilai yang dicari ditemukan
System.out.println("data ditemukkan pada index :"+indekstengah);
}else{//nilai yang dicari tidak ditemukkan
System.out.println("data tidak ditemukan :");
}
}
}
Untuk lebih jelasnya dan supaya lebih mudah dipahami bisa melihat gambar dibawah ini:
IIS DAHLIA
1200631047
MI A
Tidak ada komentar:
Posting Komentar