Nah, pada kesempatan kali ini saya akan membahas
bagaimana cara pengurutan data pada Java. Terdapat beberapa cara pengurutan
data dalam Java, diantaranya Bubble Sort, Selection Sort, Insertion Sort dan
Merge Sort. Namun, saya hanya akan membahas 2 pengurutan data, yaitu Bubble
Sort dan Selection Sort.
1. Bubble
Sort
“Apa itu Bubble Sort? Mengurutkan gelembung?” Bukan
bukan. Disini kita bukan mengurutkan gelembung-gelembung, tapi mengurutkan
data-data yang dianalogikan sebagai gelembung didalam air, gelembung yang
memiliki bentuk terbesar maka akan mengapung diposisi paling atas dari
permukaan air dan gelembung terkecil akan berada di posisi paling bawah secara
berurutan. Jadi, maksudnya data yang memiliki nilai terkecil akan berada pada
index paling awal dari suatu data dan berurutan sampai ke nilai terbesar (untuk
pengurutan secara ascending, sedangkan pengurutan secara descending berlaku
sebaliknya).
Bubble sort mengurutkan data dengan cara membandingkan
elemen sekarang dengan elemen berikutnya yang dilakukan secara berulang-ulang
sampai pada elemen terakhir. Nah, apabila saat membandingkan elemen tidak
sesuai dengan urutan yang diinginkan, maka akan terjadi pertukaran (swap).
Berikut contoh sederhana dari Bubble Sort:
·
Pengurutan
yang akan dilakukan yaitu secara ascending.
·
Apabila
bernilai false maka terjadi pertukaran (swap) .
Data : 7,3,1,5,2
Proses 1 :
7 3 1 5 2 Bandingkan
elemen 1 dan 2. (7 < 3 = false).
3 7 1 5 2 Bandingkan elemen 2 dan 3. (7 < 1 =
false).
3 1 7 5 2 Bandingkan
elemen 3 dan 4. (7 < 5 = false).
3 1 5 7 2 Bandingkan elemen 4 dan 5. (7 < 2 =
false).
3 1 5 2 7
Proses 2 :
3 1 5 2 7 Bandingkan elemen 1 dan 2. (3 < 1 =
false).
1 3 5 2 7 Bandingkan elemen 2 dan 3. (3 < 5 =
true).
1 3 5 2 7 Bandingkan
elemen 3 dan 4. (5 < 2 = false).
1 3 2 5 7 Bandingkan elemen 4 dan 5. (5 < 7 =
true).
Proses 3 :
1 3 2 5 7 Bandingkan elemen 1 dan 2. (1 < 3 =
true).
1 3 2 5 7 Bandingkan elemen 2 dan 3. (3 < 2 =
false).
1 2 3 5 7 Bandingkan
elemen 3 dan 4. (3 < 5 = true).
1 2 3 5 7 Bandingkan elemen 4 dan 5. (5 < 7 =
true).
Maka hasilnya :
1 2 3 5 7
Code :
Menggunakan 2 kali perulangan, perulangan pertama untuk elemen pertama
dan perulangan kedua (nilai ditambah 1) untuk elemen berikutnya yang akan
dibandingkan.
import
java.util.Scanner;
public class BubbleSort {
Scanner
in = new Scanner(System.in);
private int[] data;
public BubbleSort(){
this.data = new int[5]; //banyak nilai yang dimasukkan
}
public void setData(){ //input data
for(int a=0; a<data.length; a++){
System.out.print("Masukkan
data ke-"+(a+1)+ " = ");
int b = in.nextInt();
data[a] = b;
}
}
public void urutData(){ //pengurutan
data
for(int i =0; i<data.length; i++){
for(int j = 0; j<data.length-1; j++){
if(data[j]>data[j+1]){
int temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
}
public void tampilData(){ //print
data
System.out.println("\nUrutan
Ascending");
for(int a = 0; a<data.length; a++){
System.out.println("data
ke-"+(a+1)+" = "+data[a]);
}
}
public static void main(String[] args) {
BubbleSort
in = new BubbleSort();
in.setData();
in.urutData();
in.tampilData();
}
}
Output data
1.
Selection
Sort
Metode pengurutan data selanjutnya adalah Selection
Sort atau pengurutan dengan metode pemilihan. Selection Sort ialah metode
pengurutan data dengan cara menyeleksi data terkecil(ascending) dan data
terbesar(descending) lalu meletakkan elemen tersebut pada indeks awal secara
berturut.
Berikut contoh sederhana dari Selection Sort:
Contoh data yang dipakai tetap seperti contoh
sebelumnya, yaitu 7,3,1,5,2.
Proses 1 :
7 3 1 5 2 Indeks 1 ditukar dengan indeks 3,
karna 7 bukan nilai terkecil.
1 3 7
5 2
Proses 2 :
1 3 7
5 2 Indeks 2 ditukar dengan indeks 5,
karna 3 bukan nilai terkecil
1 2 7
5 3
Proses 3 :
1 2 7 5 3 Indeks 3 ditukar dengan indeks 5,
karna 7 bukan nilai terkecil
1 2 3
5 7
Proses 4 :
1 2 3 5 7 Data
sudah terurut.
Code:
Menggunakan dua kali perulangan, perulangan pertama
untuk elemen awal dan perulangan kedua untuk elemen yang dibandingkan.
import
java.util.Scanner;
public class SelectionSort {
public static void main(String[] args) {
Scanner
in = new Scanner(System.in);
System.out.print("Masukkan
jumlah bilangan : ");
int bil = in.nextInt();
int[] nilai = new int[bil];
for(int i = 0; i<nilai.length; i++){
System.out.print("Masukkan
angka ke-"+(i+1)+" = ");
int angka = in.nextInt();
nilai[i] =angka;
for(int j = 0; j<nilai.length-1; j++){
int x =i;
while(x>0 &&
nilai[x]<nilai[x-1]){
int temp = nilai [x];
nilai [x] = nilai[x-1];
nilai [x-1] = temp;
x--;
}
}
}
System.out.print("Hasil
pengurutan : ");
for(int i = 0; i<nilai.length; i++){
System.out.print(nilai[i]+" ");
}
}
}
Output:
Sekian postingan dari saya, semoga bermanfaat.
source :
http://www.jagocoding.com/tutorial/764/Bubble_Sort_dan_Selection_Sort_di_Java_Console
Tidak ada komentar:
Posting Komentar