Proses pengurutan adalah cara membuat susunan elemen dalam sebuah struktur data (misalnya array atau list) menjadi teratur. Terdapat berbagai algoritma pengurutan yang bisa digunakan sesuai dengan kebutuhan. Dalam konteks pengurutan dengan membagi kumpulan data menjadi kelompok yang terdiri dari sepasang elemen, algoritmanya dikenal dengan istilah Bubble Sort, atau dalam bahasa Indonesia dikenal sebagai metode pengurutan gelembung.
Bubble Sort
Bubble Sort adalah algoritma pengurutan yang ditemukan oleh Robert Sedgewick. Algoritma ini bekerja dengan membandingkan sepasang elemen berurutan dan menukar posisinya jika urutannya salah. Proses ini terus dilakukan hingga seluruh elemen terurut dengan benar.
Misalnya kita memiliki array [5, 3, 8, 4, 6]:
- Pada iterasi pertama, dilakukan pengecekan dari elemen pertama hingga elemen terakhir. Jika elemen pada posisi
i
lebih besar dari elemen pada posisii+1
, maka dilakukan penukaran posisi. Pada iterasi ini, 5 (elemen pertama) lebih besar dari 3 (elemen kedua), maka posisi mereka ditukar. Begitu pula dengan 8 dan 4, serta 8 dan 6. Sehingga, hasil dari iterasi pertama menjadi: [3, 5, 4, 6, 8]. - Iterasi berikutnya, proses yang sama dilakukan, tetapi hingga elemen
n - jumlah iterasi
(pada iterasi kedua ini,n-2
). Proses ini menghasilkan: [3, 4, 5, 6, 8].
Proses ini diulangi hingga semua elemen dalam array terurut.
Kelebihan dan Kekurangan Bubble Sort
Kelebihan Bubble Sort adalah algoritmanya mudah dimengerti dan diimplementasikan. Hal ini membuat algoritma ini cocok untuk pengurutan pada kumpulan data dengan ukuran yang kecil.
Namun, kelemahan dari Bubble Sort adalah tidak efisien untuk pengurutan kumpulan data dengan ukuran yang besar. Hal ini karena kompleksitas waktu dari algoritma ini adalah O(n^2), yang berarti bahwa jika jumlah elemen dalam array dua kali lipat, maka waktu yang diperlukan untuk pengurutan akan empat kali lipat.
Meskipun demikian, Bubble Sort tetap menjadi salah satu metode pengurutan yang penting untuk dipahami, terutama bagi mereka yang sedang dalam proses pembelajaran tentang algoritma dan struktur data.