Home » » Pengertian Buble Sort dan Contoh Codingan

Pengertian Buble Sort dan Contoh Codingan

Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending). Di setiap mata kuliah algoritma atau struktur data, pasti ketemu sama algoritma sederhana yang satu ini. Algoritma Bubble Sort adalah algoritma sorting paling sederhana. Kelebihan dari algoritma ini adalah mudah dipahami dan yang paling simpel. Kekurangannya juga banyak sekali, salah satunya ialah proses akan berhenti jika tidak adanya pertukaran dalam satu iterasi. Sesuai dengan namanya, proses pengurutannya mirip seperti gelembung. Terdapat proses pertukaran atau istilah kerennya swapping.
 

contohnya :
Angka acak : 45,56,70,10,13, 6
"i" disini merupakan angka awal penghitungan jumlah banyaknya angka, dan "j" disini merupakan angka akhir perhitungan jumlah banyaknya angka, jelasnya seperti ini (angka ke0=45, angka ke1=56, angka ke2=70, angka ke3=10, angka ke4=13, angka ke5=6).
i=0                   0<6-1 →T
45, 56, 70, 10, 6, 13
j=5                   5>=0+1→T
If  6<13→T                 →45, 56, 70,10,6, 13
j=4                   4>=0+1→T
if  6<10→T                 →45, 56, 70,6,10, 13
j=3                   3>=0+1→T
if  6<70→T                 →45, 56, 6,70, 10, 13
j=2                   2>=0+1→T
if  6<56→T                 →45, 6, 56,70,10, 13
j=1                   1>=0+1→T
if  6<45→T                 →6, 45, 56,70,10, 13

6, 45, 56,70,10, 13
i=1                   1<6-1→T
j=5                   5>=1+1→T
if  13<10→F               →6, 45, 56, 70, 10, 13
j=4                   4>=1+1→T
if  10<→70T               →6, 45, 56, 10, 70, 13
j=3                   3>=1+1→T
if  10<56 →T              →6, 45, 10, 56, 70, 13
j=2                   2>=1+1→T
if  10<45→T               →6, 10, 45, 56, 70, 13
j=1                   1>=1+1→F

6, 10, 45, 56, 70, 13
i=2                   2<6-1→T
j=5                   5>=2+1→T
if  13<70→T               →6, 10, 45, 56,13,70
j=4                   4>=2+1→T
if  13<56→T               →6, 10, 45,13, 56,70
j=3                   3>=2+1→T
if  13<45→T               →6, 10, 13, 45,56,70
j=2                   2>=2+1→F
Maka Hasilnya : 6, 10, 13, 45,56,70
Sorce coding pada java :

import java.util.Scanner;
public class pengurutan {

    int[] angka=new int[6];
    public pengurutan()
    {
        Scanner input = new Scanner(System.in);
        for(int i=0;i<6;i++)
        {
            System.out.print("Masukkan Angka ke "+(i+1)+" : ");
            angka[i] = input.nextInt();
        }

        tampilkanAngka();
        urutkanAngka();
        tampilkanAngka();

      
    }

    void tampilkanAngka()
    {
        System.out.println("\n--------------------------------");
        for (int i=0;i<6;i++)
        {
            System.out.print(angka[i]+" ");
        }
    }

    void urutkanAngka()
    {
        int tampung;
        for (int i=0;i<angka.length;i++)
        {
            for(int j=0;j<angka.length-(i+1);j++)
            {
                if(angka[j]>angka[j+1])
                {
                    tampung=angka[j];
                    angka[j]=angka[j+1];
                    angka[j+1]=tampung;
                }

            }
          
        }

    }

    public static void main(String[] aksi)
    {
        pengurutan urut = new pengurutan();
    }
}



Dalam perancangan dan analisis pemrograman, ada beberapa metode umum yang wajib dipelajari seorang programmer dalam melatih pola pikir algoritmanya yakni, Algoritma Sorting. Pada Algoritma Sorting terdapat banyak metode. Beberapa metode yang saya ketahui ialah, Bubble Sort, Selection Sort, Insertion Sort, Merge Sort dan masih banyak lagi. Nah, pada kesempatan ini saya mau menulis tutorial tentang algoritma dari metode Bubble Sort.

Bubble Sort merupakan salah satu metode sorting yang menurut saya cukup gampang untuk dipelajari. Kenapa gampang? Karena, pada dasarnya Bubble Sort hanya melakukan pemindahan value dari kiri ke kanan untuk Ascending dan dari kanan ke kiri untuk Descending. Seperti nama metodenya yakni, "Bubble Sort" yang berarti menggelembungkan. "Apa yang digelembungkan?" value yang ingin di sorting.

Sebelum masuk ke program, berikut syarat dan langkah-langkah pada metode Bubble Sort:
Jumlah iterasi sama dengan banyaknya bilangan dikurang 1.
Setiap iterasi, jumlah pertukaran bilangannya sama dengan banyaknya bilangan.
Dalam Bubble Sort, walaupun deretan bilangan tersebut sudah ter-sorting maka, proses sorting akan tetap dilakukan.
Tidak ada perbedaan cara untuk Bubble Sort Ascending dan Descending.
Mungkin bagi Anda yang pemula masih bingung dengan kalimat - kalimat diatas, khususnya untuk kata iterasi. Baik saya jelaskan secara sederhana apa itu iterasi, sebenarnya iterasi ialah proses yang dilakukan untuk meng-sorting 1 buah bilangan atau dengan kata lain, iterasi bisa juga disebut dengan proses.
Sekarang saatnya untuk contoh kasus. Pada contoh kasus ini, saya akan menjelaskan untuk kasus Ascending dan Descending
Ascending

Berikut diberikan sebuah deretan bilangan seperti berikut:
5, 12, 3, 19, 1, 47
Langkah Bubble Sort:
Iterasi 1:
5, 12, 3, 19, 1, 47 --> Tidak ada pertukaran. (5 < 12 == true)
5, 3, 12, 19, 1, 47 --> Ada pertukaran. (12 < 3 == false)
5, 3, 12, 19, 1, 47 --> Tidak ada pertukaran. (12 < 19 == true)
5, 3, 12, 1, 19, 47 --> Ada pertukaran. (19 < 1 == false)
5, 3, 12, 1, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Iterasi 2:
3, 5, 12, 1, 19, 47 --> Ada petukaran. (5 < 3 == false)
3, 5, 12, 1, 19, 47 --> Tidak ada pertukaran. (5 < 12 == true)
3, 5, 1, 12, 19, 47 --> Ada pertukaran. (12 < 1 == false)
3, 5, 1, 12, 19, 47 --> Tidak ada pertukaran. (12 < 19 == true)
3, 5, 1, 12, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Iterasi 3:
3, 5, 1, 12, 19, 47 --> Tidak ada pertukaran. (3 < 5 == true)
3, 1, 5, 12, 19, 47 --> Ada pertukaran. (5 < 1 == false)
3, 1, 5, 12, 19, 47 --> Tidak ada pertukaran. (5 < 12 == true)
3, 1, 5, 12, 19, 47 --> Tidak ada pertukaran. (12 < 19 == true)
3, 1, 5, 12, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Iterasi 4:
1, 3, 5, 12, 19, 47 --> Ada pertukaran. (3 < 1 == false)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (3 < 5 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (5 < 12 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (12 < 19 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Iterasi 5:
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (1 < 3 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (3 < 5 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (5 < 12 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (12 < 19 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Iterasi 6:
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (1 < 3 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (3 < 5 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (5 < 12 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (12 < 19 == true)
1, 3, 5, 12, 19, 47 --> Tidak ada pertukaran. (19 < 47 == true)
Jadi, hasil akhir deretan bilangan diatas setelah di Bubble Sort secara Ascending ialah
1, 3, 5, 12, 19, 47

Descending

Masih menggunakan deretan bilangan yang seperti contoh diatas.
5, 12, 3, 19, 1, 47
Langkah Bubble Sort:
Iterasi 1:
12, 5, 3, 19, 1, 47 --> Ada pertukaran. (5 > 12 == false)
12, 5, 3, 19, 1, 47 --> Tidak ada pertukaran. (5 > 3 == true)
12, 5, 19, 3, 1, 47 --> Ada pertukaran. (3 > 19 == false)
12, 5, 19, 3, 1, 47 --> Tidak ada pertukaran. (3 > 1 == true)
12, 5, 19, 3, 47, 1 --> Ada pertukaran. (1 > 47 == false)
Iterasi 2:
12, 5, 19, 3, 47, 1 --> Tidak ada pertukaran. (12 > 5 == true)
12, 19, 5, 3, 47, 1 --> Ada pertukaran. (5 > 19 == false)
12, 19, 5, 3, 47, 1 --> Tidak ada pertukaran. (5 > 3 == true)
12, 19, 5, 47, 3, 1 --> Ada pertukaran. (3 > 47 == false)
12, 19, 5, 47, 3, 1 --> Tidak ada pertukaran. (3 > 1 == true)
Iterasi 3:
19, 12, 5, 47, 3, 1 --> Ada pertukaran. (12 > 19 == false)
19, 12, 5, 47, 3, 1 --> Tidak ada pertukaran. (12 > 5 == true)
19, 12, 47, 5, 3, 1 --> Ada pertukaran. (5 > 47 == false)
19, 12, 47, 5, 3, 1 --> Tidak ada pertukaran. (5 > 3 == true)
19, 12, 47, 5, 3, 1 --> Tidak ada pertukaran. (3 > 1 == true)
Iterasi 4:
19, 12, 47, 5, 3, 1 --> Tidak ada pertukaran. (19 > 12 == true)
19, 47, 12, 5, 3, 1 --> Ada pertukaran. (12 > 47 == false)
19, 47, 12, 5, 3, 1 --> Tidak ada pertukaran. (12 > 5 == true)
19, 47, 12, 5, 3, 1 --> Tidak ada pertukaran. (5 > 3 == true)
19, 47, 12, 5, 3, 1 --> Tidak ada pertukaran. (3 > 1 == true)
Iterasi 5:
47, 19, 12, 5, 3, 1 --> Ada pertukaran. (19 > 47 == false)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (19 > 12 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (12 > 5 ==true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (5 > 3 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (3 > 1 == true)
Iterasi 6:
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (47 > 19 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (19 > 12 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (12 > 5 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (5 > 3 == true)
47, 19, 12, 5, 3, 1 --> Tidak ada pertukaran. (3 > 1 == true)
Jadi, hasil akhir deretan bilangan diatas setelah di Bubble Sort secara Descending ialah
47, 19, 12, 5, 3, 1
Gimana, gampangkan belajar Bubble Sort-nya. Perhatikan tiap langkahnya dimana, agar Anda mudah memahaminya. Nah, it's time to coding.

0 komentar :