Program Bubble Sort Dengan Menggunakan Java
Tutorial sorting data pada pemrograman java kali ini akan membahas tentang algoritma Bubble Sort.
Pada algoritma Bubble Sort, kita akan mempelajari apa yang dimaksud dengan algoritma Bubble Sort kemudian dilanjutkan dengan sistem kerjanya dan juga akan dicontohkan implementasi dengan menggunakan pemrograman Java.
Dengan menggunakan algoritma Bubble sort, tentunya kita dapat mengurutkan sebuah bilangan dari terkecil sampai terbesar (Ascending) maupun bilangan dari terbesar sampai dengan terkecil (Descending).
Mungkin penjelasan dalam kalimat-kalimat sedikit membuat kita bingung, untuk itu perhatikan contoh penerapan algoritma bubble sort berikut ini dari sebuah bilangan yang belum terurut : {5, 1, 12, -5, 16}. Kita akan mengurutkannya secara Ascending seperti yang ditunjukkan oleh Gambar.1 dibawah ini :
Dalam program ini, kita menerima jumlah inputan bilangan yang akan dimasukkan oleh user ketika program dijalankan. Kemudian kita memasukkan bilangan satu persatu, setelah itu akan diurutkan dari yang terkecil sampai dengan terbesar (Ascending).
Jika ingin mengurutkan data dari terbesar sampai dengan terkecil (Descending), cukup dirubah tanda lebih besar ">" menjadi lebih kecil "<" , sehingga menjadi :
Pada algoritma Bubble Sort, kita akan mempelajari apa yang dimaksud dengan algoritma Bubble Sort kemudian dilanjutkan dengan sistem kerjanya dan juga akan dicontohkan implementasi dengan menggunakan pemrograman Java.
Apa itu Bubble Sort ?
Bubble sort adalah salah satu algoritma pengurutan data dengan cara membandingkan sebuah data dengan sebelahnya, kemudian dilakukan pertukaran data jika berada dalam urutan yang salah. Jika tidak ada pertukaran data lagi, berarti data-data tersebut sudah terurut.Dengan menggunakan algoritma Bubble sort, tentunya kita dapat mengurutkan sebuah bilangan dari terkecil sampai terbesar (Ascending) maupun bilangan dari terbesar sampai dengan terkecil (Descending).
Algoritma Bubble Sort
Berikut ini adalah sistem kerja dari algoritma Bubble Sort dari sebuah n elemen data yang belum terurut (unsorted data):- Bandingkan data ke-i dengan data ke-(i+1) . Jika tidak sesuai lakukan pertukaran data untuk menempati urutan yang benar dimana : data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i. Urutannya bergantung apakah data tersebut mau diurutkan secara ascending (A-Z) maupun secara descending (Z-A).
- Lalu bandingkan data berikutnya : data ke-(i+1) dengan data ke-(i+2). Jika tidak sesuai urutannya, tukar lagi data tersebut. Proses perbandingan data dilanjutkan sampai data terakhir.
- Lakukan sampai beberapa kali iterasi, sampai didapat kondisi tidak terjadinya pertukaran data dalam satu iterasi. Artinya kita sudah mendapatkan data yang terurut.
Mungkin penjelasan dalam kalimat-kalimat sedikit membuat kita bingung, untuk itu perhatikan contoh penerapan algoritma bubble sort berikut ini dari sebuah bilangan yang belum terurut : {5, 1, 12, -5, 16}. Kita akan mengurutkannya secara Ascending seperti yang ditunjukkan oleh Gambar.1 dibawah ini :
Gambar.1 Bubble Short Ascending (Photo Credit :Algolis.net) |
Program Java Bubble Sort
Setelah kita memahami prinsip sorting data dengan algoritma Bubble Sort, sekarang kita akan mengimplementasikan Bubble Sort dalam program Java.Dalam program ini, kita menerima jumlah inputan bilangan yang akan dimasukkan oleh user ketika program dijalankan. Kemudian kita memasukkan bilangan satu persatu, setelah itu akan diurutkan dari yang terkecil sampai dengan terbesar (Ascending).
import java.util.Scanner;
public class BublleSort
{
public static void main(String[]args)
{
int jumlah,i,j, swap;
Scanner scan = new Scanner(System.in);
System.out.print("Masukkan Jumlah Bilangan Yang Mau DiInputkan :");
jumlah = scan.nextInt();
int array[] = new int[jumlah];
System.out.println("\nMasukkan " + jumlah+" Buah Bilangan Integer");
System.out.println("===========================================");
for(i=0; i<jumlah;i++)
{
System.out.print("Bilangan Ke- " + (i+1)+" =");
array[i]=scan.nextInt();
}
System.out.println("\nBilangan Belum Terurutnya");
for(int a=0;a<jumlah;a++)
{
System.out.print(array[a] +" ");
}
for(i=0; i<(jumlah-1);i++)
{
for(j=0;j<jumlah-i-1;j++)
{
if (array[j] > array[j+1])
{
swap = array[j];
array[j] = array[j+1];
array[j+1]=swap;
}
}
}
System.out.println("\n\nBilangan Terurutnya adalah :");
for(i=0;i<jumlah; i++)
System.out.print(array[i] +" ");
}
}
Outputnya ditunjukkan oleh Gambar.2 dibawah ini :Gambar.2 |
Jika ingin mengurutkan data dari terbesar sampai dengan terkecil (Descending), cukup dirubah tanda lebih besar ">" menjadi lebih kecil "<" , sehingga menjadi :
if (array[j] < array[j+1])
{
swap = array[j];
array[j] = array[j+1];
array[j+1]=swap;
}