Simple Sorting: Teori dan Praktik Bubble Sort Pada Java

Table of Contents
Sorting adalah kajian penting dari struktur data. Berbagai bidang teknologi informasi yang menyangkut penggunaan data seperti basis data dan data mining hampir tidak dapat dilepaskan dari penggunaan sorting. Sorting adalah cara efektif untuk menertibkan data dari ketidakberaturan, dan kerapian data adalah prasyarat untuk meningkatkan optimasi dalam mekanisme searching. 

Secara garis besar, sorting terbagi menjadi dua kelompok besar, yaitu Simple Sorting dan Advance Sorting. Dua kelompok besar sorting ini dipilah berdasarkan tingkat kerumitan sorting dan tingkat optimasi dalam prosesnya, baik alokasi time maupun data size. 

Kali ini, coba kita bahas mengenai simple sort, karena menguasai simple sort adalah kunci untuk menguasai advance sort. Pembahasan simple sort kita mulai dari bubble sort. Bubble sort adalah jenis sorting data yang memiliki alur algoritma paling mudah dan sederhana. Bubble sort adalah tipe sorting yang cocok untuk permulaan pembelajaran simple sorting.

Bagaimana bubble sort berproses? Biar lebih mudah dicerna, misalkan saja kita memiliki 10 data yang masih tidak terurut, 10 data tersebut saya rupakan dalam bentuk pemain baseball yang memiliki tinggi badan beragam. Tugas kita adalah bagaimana agar pemain baseball kita bisa berbaris rapi berdasarkan tinggi badan terendah hingga tertinggi. 
Data tak terurut, diibaratkan seperti pemain baseball yang tak berbaris rapi berdasarkan ketinggian
Baiklah, kita urutkan menggunakan metode bubble sort. Langkah pertama adalah membandingkan dua pemain paling kiri, jika pemain pertama lebih tinggi dari pemain kedua, maka posisi pemain akan ditukar. Sehingga, posisi sekarang adalah urutan pertama lebih rendah dari pemain urutan kedua. 
Dari kiri : pemain pertama berpindah posisi jika pemain pertama lebih tinggi dari pemain kedua
Berikutnya, proses tetap berlanjut. pemain pertama dan kedua telah terurut. Langkah berikutnya adalah membandingkan pemain kedua dengan pemain ketiga. Begitu seterusnya, perbandingan berjalan hingga pemain yang terakhir. 

Pemain kedua dibandingkan dengan pemain ketiga
Membandingkan Pemain ketiga dengan pemain keempat
Membandingkan pemain keempat dengan pemain kelima

Setelah seluruh pemain dibandingkan hingga pemain terakhir, maka didapatkanlah hasil sorting sementara dari bubble sort tahap I.

Hasil Bubble Sort tahap I
Hasil bubble sort tahap I belum mendapatkan hasil sorting sempurna, karena ada beberapa pemain yang tidak terurut sempurna. Maka bubble sort dilanjutkan dengan sorting tahap II, yaitu proses pengurutan yang sama dengan proses pengurutan tahap I. Lagi-lagi dengan membandingkan satu per satu hingga pemain terahir. Jika tahap II belum berhasil sempurna maka dilanjutkan dengan bubble sort tahap III, seterusnya hingga menemui hasil sorting sempurna walaupun harus melalui berkali-kali tahapan. 
Hasil Bubble Sort sempurna setelah melalui beberapa tahapan bubble sort
Untuk menghasilkan bubble sort yang sempurna tentulah harus melalui beberapa kali tahapan / perulangan seperti langkah diatas. Jika menggunakan data dalam jumlah kecil, maka proses pengurutan dengan metode bubble sort akan berjalan mulus tanpa hambatan. Selain prosesnya mudah, juga kode programnya pun sederhana. Namun, bubble sort akan menuai masalah jika data yang diurutkan adalah data yang berjumlah besar. Masalah yang timbul adalah lamanya waktu sorting dan alokasi memori yang besar. Sehingga metode bubble sort sangat tidak dianjurkan untuk digunakan dalam pengurutan data besar. 

Setelah mempelajari teori singkat bubble sort diatas, mari saya ajak melihat implementasi bubble sort dalam pemrograman java. Seperti berikut : 
public class bubble {
    private long[] a ; 
    private int elemen ; 
    
    public bubble(int max)
    {
        a = new long[max] ;
        elemen = 0 ; 
    }
    
    public void insert(long nilai)
    {
        a[elemen] = nilai ;
        elemen++ ;
    }
    
    public void display()
    {
        for(int j = 0 ; j1 ; out--)
        {
            for(in=0 ; in a[in+1])
                {
                    swap(in,in+1) ;
                }
            }
        }
    }
    
    private void swap(int satu, int dua)
    {
        long temp = a[satu] ;
        a[satu] = a[dua] ;
        a[dua] = temp ;
     }
}

class bubbleApp
{
    public static void main(String[] args) {
        
        int ukuran = 10 ; 
        bubble arr ; 
        
        arr = new bubble(ukuran) ;
        
        arr.insert(12);
        arr.insert(14);
        arr.insert(87);
        arr.insert(43);
        arr.insert(65);
        arr.insert(71);
        arr.insert(11);
        arr.insert(9);
        arr.insert(98) ;
        arr.insert(32);
        System.out.println("Sebelum Diurutkan");
        arr.display();
        System.out.println("Setelah Diurutkan");
        arr.bubbleSort();
        arr.display();
    }
}

Hasil source code ketika di run adalah seperti ini :

























Sekian apa yang dapat saya jabarkan tentang materi teori dan praktik bubble sort pada java, andai ada materi yang kurang jelas dapat teman-teman tanyankan.... (^_^), semoga bermanfaat ya.....


Salam Hangat


Post a Comment