Skip to content Skip to sidebar Skip to footer

Implementasi Algoritma Sorting Bubble Sort dalam Bahasa Pemrograman Java

Sorting Algorithm (Algoritma Pengurutan)



Proses Algoritma Bubble Sort Bekerja

Bagaimana apabila dalam suatu program kita memiliki kumpulan data atau array dengan nilai seperti berikut

int kumpulan[] = {3, 5, 2, 1, 4};

lalu kita ditantang untuk mengurutkan nilai-nilai dari kumpulan data tersebut menjadi seperti berikut

{1, 2, 3, 4, 5}

Namun dalam kasus ini, kita tidak diperbolehkan mengimport library untuk mengurutkan nilai-nilai tersebut. Kasus tersebut dapat kita selesaikan dengan Sorting Algorithm atau algoritma untuk mengurutkan nilai. Ada beberapa sorting algorithm misalnya selection sort algorithm, insertion sort algorithm, quick sort algorithm dll., tetapi kali ini kita akan membahas salah satu sorting algoritma sederhana bernama Bubble Sort Algorithm dan bagaimana menerapkan algoritma ini kedalam bahasa pemrograman java. Ayo kita mulai.

Menerapkan Algoritma Bubble Sort Pada Java
Sederhananya, cara kerja algoritma bubble sort adalah dengan menukar elemen array yang berdekatan secara berulang. Apabila nilai pada indeks saat ini lebih besar daripada indeks selanjutnya, maka kita tukar posisi atau urutan angkanya. Baik ayo kita terapkan kedalam kode. Pertama-tama marilah kita buat sebuah array sebagai berikut

//index               :  0  1  2  3  4           
  int kumpulanAngka[] = {5, 2, 1, 4, 3}

Berikut adalah kode awalnya :

package com.informatikakoding;

import java.util.Arrays;

public class BubbleSort {
public static void main(String args[]){
int kumpulanAngka[] = {5, 2, 1, 4, 3};
System.out.println("Nilai kumpulanAngka sebelum diurutkan : ");
System.out.println(Arrays.toString(kumpulanAngka));
}
}

Saat kode diatas dijalankan, maka akan menampilkan output sebagai berikut

Nilai kumpulanAngka sebelum diurutkan :
[5, 2, 1, 4, 3]

Lalu kita terapkan algoritma bubble sort kedalam kode

package com.informatikakoding;

import java.util.Arrays;

public class BubbleSort {
public static void main(String args[]){
int kumpulanAngka[] = {5, 2, 1, 4, 3};
System.out.println("Nilai kumpulanAngka sebelum diurutkan : ");
System.out.println(Arrays.toString(kumpulanAngka));

// Bubble Sort Algorithm
for(int i = 0; i < kumpulanAngka.length; i++){
for(int j = 0; j < kumpulanAngka.length - i - 1; j++){
if (kumpulanAngka[j] > kumpulanAngka[j+1]) {
int temp = kumpulanAngka[j];
kumpulanAngka[j] = kumpulanAngka[j+1];
kumpulanAngka[j+1] = temp;
}
}
}

System.out.println("Nilai kumpulanAngka setelah diurutkan : ");
System.out.println(Arrays.toString(kumpulanAngka));
}
}

Apabila kita menjalakankan kode diatas, maka akan menampilkan output sebagai berikut

Nilai kumpulanAngka sebelum diurutkan : 
[5, 2, 1, 4, 3]
Nilai kumpulanAngka setelah diurutkan : 
[1, 2, 3, 4, 5]

Dapat kita lihat output diatas bahwa nilai-nilai yang terdapat pada array kumpulanAngka sudah terurut mulai dari yang terkecil ke yang terbesar. Dengan sebuah perulangan bersarang dan sebuah percabangan kita sudah menerapkan algoritma bubble sort kedalam kode. Lalu bagaimana proses algoritma bubble sort diatas bekerja?

Proses Algoritma Bubble Sort Bekerja

Perulangan Pertama :
5 2 1 4 3 ) –>  ( 2 5 1 4 3 ), Tukar posisi karena 5 > 2
( 2 5 1 4 3 ) –>  ( 2 1 5 4 3 ), Tukar posisi karena 5 > 1
( 2 1 5 4 3 ) –>  ( 2 1 4 5 3 ), Tukar posisi karena 5 > 4
( 2 1 4 5 3 ) –>  ( 2 1 4 3 5 ), Tukar posisi karena 5 > 3

Perulangan Kedua :
( 2 1 4 3 5 ) –> ( 1 2 4 3 5 ), Tukar posisi karena 2 > 1
( 1 2 4 3 5 ) –> ( 1 2 4 3 5 )
( 1 2 4 3 5 ) –> ( 1 2 3 4 5 ),  Tukar posisi karena 4 > 3
( 1 2 3 4 5 ) –>  ( 1 2 3 4 5 )
Saat semua elemen sudah terurut maka proses yang terakhir akan melakukan pengecekan saja tanpa ada proses pertukaran posisi pada elemen array

Perulangan Ketiga :

1 2 3 4 5 ) –> ( 1 2 3 4 5 )
( 1 2 3 5 6 ) –> ( 1 2 3 4 5 )
( 1 2 3 4 5 ) –> ( 1 2 3 4 5 )
( 1 2 3 4 5 ) –> ( 1 2 3 4 5 )


Bonus :
Apabila ingin mengurutkan nilai-nilai pada array dari yang terbesar ke yang terkecil cukup merubah tanda > pada if menjadi <



1 comment for "Implementasi Algoritma Sorting Bubble Sort dalam Bahasa Pemrograman Java"