Dalam dunia pemrograman, mengurutkan data adalah salah satu operasi yang paling umum dan mendasar. Ada banyak algoritma pengurutan yang tersedia, masing-masing dengan kelebihan dan kekurangannya. Salah satu algoritma yang paling dikenal, terutama bagi pemula, adalah Bubble Sort. Mungkin terdengar sederhana, tetapi memahami Bubble Sort adalah langkah awal yang penting untuk menjelajahi konsep-konsep algoritma yang lebih kompleks.
Alt text: Ilustrasi batang-batang dengan tinggi berbeda yang mewakili elemen data yang belum terurut, siap untuk diurutkan oleh algoritma Bubble Sort.
Bubble Sort adalah algoritma pengurutan sederhana yang bekerja dengan berulang kali melintasi daftar, membandingkan setiap elemen berdekatan, dan menukarnya jika urutannya salah. Proses ini berlanjut hingga daftar sepenuhnya terurut. Nama "Bubble Sort" berasal dari cara elemen-elemen yang lebih kecil atau lebih besar secara bertahap "menggelembung" ke posisi yang tepat dalam daftar, seperti gelembung udara yang naik ke permukaan.
Inti dari algoritma ini adalah perbandingan elemen yang bersebelahan. Pada setiap lintasan (pass) melalui daftar, algoritma membandingkan pasangan elemen pertama dan kedua, kemudian pasangan elemen kedua dan ketiga, dan seterusnya. Jika pasangan elemen ditemukan dalam urutan yang salah (misalnya, elemen pertama lebih besar dari elemen kedua dalam pengurutan naik), maka kedua elemen tersebut ditukar.
Mari kita uraikan langkah-langkahnya secara lebih rinci:
Misalkan kita memiliki daftar angka yang belum terurut: [5, 1, 4, 2, 8]. Kita akan mengurutkannya secara naik menggunakan Bubble Sort.
[1, 5, 4, 2, 8][1, 4, 5, 2, 8][1, 4, 2, 5, 8][1, 4, 2, 5, 8]Setelah lintasan 1, angka terbesar (8) sudah berada di posisi terakhir.
[1, 4, 2, 5, 8][1, 2, 4, 5, 8][1, 2, 4, 5, 8]Kita tidak perlu membandingkan hingga akhir, karena elemen terakhir (8) sudah pasti pada tempatnya.
[1, 2, 4, 5, 8][1, 2, 4, 5, 8][1, 2, 4, 5, 8]Karena pada lintasan terakhir tidak ada penukaran yang terjadi, algoritma berhenti. Daftar sekarang terurut: [1, 2, 4, 5, 8].
fungsi bubbleSort(array) {
n = panjang(array)
ulang sebanyak n-1 kali {
swapped = false
untuk i dari 0 sampai n-2 {
jika array[i] > array[i+1] {
// Tukar array[i] dan array[i+1]
temp = array[i]
array[i] = array[i+1]
array[i+1] = temp
swapped = true
}
}
// Jika tidak ada penukaran pada lintasan ini, array sudah terurut
jika swapped == false {
berhenti
}
}
kembalikan array
}
Meskipun tidak praktis untuk aplikasi produksi yang membutuhkan kinerja tinggi, pemahaman Bubble Sort memberikan dasar yang kokoh untuk mempelajari bagaimana algoritma pengurutan bekerja.
Dalam praktiknya, Bubble Sort jarang digunakan untuk mengurutkan data dalam jumlah besar di lingkungan produksi karena inefisiensinya. Namun, ia masih relevan dalam beberapa skenario:
Bubble Sort adalah salah satu algoritma pengurutan paling dasar. Ia bekerja dengan membandingkan elemen yang berdekatan dan menukarnya jika urutannya salah, berulang kali, hingga seluruh daftar terurut. Meskipun kelemahannya dalam hal efisiensi untuk data besar menjadikannya kurang cocok untuk aplikasi dunia nyata yang performatif, kesederhanaannya membuatnya menjadi titik awal yang sangat baik untuk memahami prinsip-prinsip pengurutan dalam ilmu komputer.