Sorting (pengurutan) dan searching (pecarian) merupakan konsep/algoritma yang sering digunakan. Jika berhubungan dengan jumlah data yang besar, data akan mudah dikelola jika sudah terurut. Algoritma pengurutan pencarian memuat banyak konsep-konsep dasar pemrograman, yaitu :
- Runtuhan/Sequence. Kaidah pemrograman yang menyatakan bahwa perintah-perintah dalam program komputer akan dieksekusi menurut urutannya dari atas ke bawah
- Seleksi/Selection. Perintah-perintah dalam program komputer akan dieksekusi berdasarkan nilai kebenaran boolean tertentu.
- Perulangan/loop. Sejumlah perintah dalam program komputer yang akan dieksekusi beberapa kali berdasarkan nilai kebenaran boolean-nya.
Sorting dapat dilakukan dengan du metode, yaitu ascending dan Descending. Ascending akan melakukan pengurutan dari data yang terkecil ke data yang lebih besar.
Contoh: 1,2,3,.....10.
Descending akan melakukan pengurutan dari data yang terbesar ke data yang lebih kecil.
Contoh : 10,9,8,....1.
A. Pencarian Linear (Linear Search)
Pencarian Linear adalah metode pencarian yang membandingkan data kunci(data yang dicari) dengan seluruh data, mulai dari data pertama.
B. Pencarian Biner (Binary Search)
Pencarian Biner adalah pencarian terhadap data yang sudah terurut. Data kunci dengan data tengah(data pivot), jika sama berarti pencarian ditemukan. Jika data kunci lebih besar dari data tengah maka pencarian akan dilakukan disebelah kanan data tengah (data diurutkan secara ascending). Jika belum ditemukan maka data pada sisi pencarian akan dibagi dua kembali, dibandingkan lagi, demikian seterusnya sampai data ditemukan/tidak ditemukan.
C. Bubble Sort
Algoritma Bubble Sort akan membandingkan elemen yang saat ini dibaca dengan elemen yang berikutnya. Jika elemen yang saat ini dibaca lebih besar dari elemen berikutnya, maka tukarkan.
D. Insertion Sort
Pada metode ini pengurutan dilakukan dengan cara membandingkan data ke-i (dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.
E. Selection Sort
Metode ini akan membandingkan elemen yang sekarang dengan elemen berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen yang lebih kecil dari elemen sekarang, maka dicatat posisinya dan kemudian ditukarkan.
F. Quick Sort
Metode Quick Sort adalah membandingkan suatu elemen pivot dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen tersebut terletak disebelah kirinya dan elemen-elemen yang lebih besar daripada pivot terletak disebelah kanan.
Berikut COntoh BubbleSort/Script BubbleSort:
import java.util.Scanner;
public class BubbleSort{
public void bubblesSort (float larik2[]){
for (int i=0; i<larik2.length; i++){
for (int elemen=0;elemen<larik2.length-1;elemen++){
if (larik2[elemen]>larik2[elemen+1])
tukar(larik2, elemen,elemen+1);
}
}
}
public void tukar(float larik3[], int satu, int dua){
float temp;
temp = larik3[satu];
larik3[satu] = larik3[dua];
larik3[dua] = temp;
}
public static void main(String[]args){
Scanner masuk = new Scanner (System.in);
BubbleSort lrk = new BubbleSort ();
float nilai[] = new float [5];
System.out.println ("Masukkan 5 buat data nilai");
for (int i = 0; i < 5; i++)
{
System.out.print ((i + 1)+" : ");
nilai[i]=masuk.nextFloat();
}
System.out.println("Data nilai yang dimasukkan");
for (int i = 0; i < 5; i++)
System.out.print(nilai[i]);
System.out.println("Data hasil pengurutan ");
lrk.bubbleSort(nilai);
for (int i = 0; i < 5; i++)
System.out.println(nilai[i]);
}
}
Outputnya:
Berikut Contoh QuickSort/Script QuickSort:
import java.util.Scanner;
public class QuickSort{
public void quickSort(float A[], int L, int R)
{
int i,j;
float p;
p=A[(L+R)/2];
i=L;
j=R;
{
while (A[i]<p) i++;
while (A[j]>p) j--;
if (i<=j)
{
tukar(A,i,j);
i++;
j--;
}
}
if (L<j) quickSort(A,L,j);
if (i<R) quickSort(A,i,R);
}
public void tukar(float larik3[], int satu, int dua)
{
float temp;
temp = larik3[satu];
larik3[satu] = larik3[dua];
larik3[dua] = temp;
}
public static void main(String args[]){
Scanner masuk = new Scanner(System.in);
QuickSort lrk = new QuickSort();
float nilai[]=new float[5];
System.out.println("Masukkan 5 buat data nilai");
for (int i = 0; i<5; i++)
{
System.out.print((i + 1)+" : ");
nilai[i]=masuk.nextFloat();
}
System.out.println("Data yang dimasukkan");
for (int i = 0; i < 5; i++)
System.out.println(nilai[i]);
System.out.println("Data hasil pengurutan ");
lrk.quickSort(nilai, 0, nilai.length-1);
for (int i = 0; i < 5; i++)
System.out.println(nilai[i]);
}
}
Outputnya :
Berikutnya Script BinerSearch :
import java.util.Scanner;
public class BinerSearch{
public int pencarianBiner(int b[], int kunciPencarian, int low, int high){
int i, middle;
while (low<=high){
middle = (low+high)/2;
if (kunciPencarian==b[middle]) return middle;
else if (kunciPencarian<b[middle]) high = middle-1;
else low = middle+1;
}
return -1;
}
public static void main(String args[]){
Scanner input = new Scanner(System.in);
BinerSearch biner = new BinerSearch();
int i, x, hasil;
boolean ketemu;
int data[] = {9, 13, 14, 26, 34};
System.out.print("Masukkan Data yang dicari = ");
x = input.nextInt();
hasil = biner.pencarianBiner(data, x, 0, data.length-1);
if (hasil>=0)
System.out.println("Data tersebut ada pada posisi ke-" +(hasil+1));
else
System.out.println("Data tidak ketemu !");
}
}
<p style="text-align: justify; text-indent: 0.5in;"></p>
Outputnya :
jika ada kesalahan ataupun keluhan komen aja dibawah yaa, InsyaAllah dibales kalo ga sibuk. wkwkwk
</p>





0 Komentar untuk "Sorting Dan Searching"