Pada artikel kali ini kita akan membahas salah satu algoritma sorting atau penyortiran yang bernama Bubble Sort.
Kenapa algoritma ini mengambil kata gelembung atau bubble sebagai namanya?
Mari kita bahas.
Pengertian Bubble Sort
Algoritma yang satu ini mengambil sifat dari gelembung atau bubble dalam pelaksanaannya.
Sifat yang menjadi acuan adalah gelembung akan selalu bergerak ke atas.
Algortima ini adalah salah satu jenis algoritma sorting yang paling mudah untuk diterapkan.
Sederhananya, algoritma ini bekerja dengan cara membandingkan nilai dari tiap indeks satu per satu dengan nilai pada indeks lain.
Jika nilai dari indeks saat ini lebih besar daripada indeks yang ada di sebelahnya, maka kedua nilai akan saling bertukar tempat.
Namun jika tidak, maka tidak akan terjadi apa-apa.
Algoritma ini bisa dibilang tidak terlalu efektif karena ada kemungkinan perulangan masih berjalan padahal array sudah terurut.
Bubble sort memiliki kompleksitas waktu dengan kemungkinan terburuk adalah O(n2)
Cara Kerja Bubble Sort
Dalam melaksanakan bubble sort, akan terjadi dua buah perulangan.
Perulangan pertama bertugas untuk menjalankan perulangan kedua sebanyak jumlah dari ukuran array.
Sedangkan perulangan kedua bertugas untuk membandingkan nilai pada indeks dengan indeks lainnya.
Di perulangan kedua juga akan ada pertukaran nilai antar indeks apabila sebuah logika percabangan terpenuhi.
Logika percabangannya adalah pertanyaan “Apakah nilai indeks saat ini lebih besar daripada nilai berikutnya?”.
Jika iya, tukar posisinya, jika tidak, tidak terjadi apa-apa.
Untuk mendukung kalimat-kalimat di atas, kita akan mencobanya dengan satu buah soal.
Misalkan kita memiliki array dengan masing-masing nilai pada indeksnya seperti pada gambar di bawah ini.
Dan berikut ini adalah tahapan-tahapan yang terjadi dalam menyelesaikan soal tersebut.
Panah hijau sendiri memiliki arti logika percabangan tadi bernilai true dan akan terjadi pertukaran nilai antara indeks j dengan indeks j + 1.
Sedangkan panah berwarna merah berarti tidak akan terjadi apa-apa.
Terjadi dua kali pertukaran tempat pada perulangan di saat variabel i masih bernilai 0.
Perulangan selanjutnya atau di saat variabel i bernilai 1 hanya terjadi satu kali pertukaran.
Dan pada perulangan terakhir juga terjadi hanya satu kali pertukaran tempat.
Selain itu, untuk dapat belajar lebih dalam lagi tentang bubble sort, penulis juga menyediakan sebuah program sederhana.
Program ini tentu saja akan mengimplementasikan bubble sort dan ditulis menggunakan bahasa pemrograman C.
Sintaks Program
Silahkan kunjungi alamat berikut ini hanpalla/C-Bubble-Sort (github.com).
Di dalamnya sudah tersedia program dengan bahasa pemrograman C yang menggunakan konsep algoritma gelembung ini.
Kalian juga bisa membuat fitur input angka oleh pengguna untuk ukuran array ebih dinamis atau sesuai dengan keinginan pengguna.
Setelah itu, cobalah untuk menjalankannya.
Rangkuman
Jadi itu tentang bubble sort, sebuah algoritma pengurutan data yang mengurutkan data dengan metode “apung”.
Yang diapungkan adalah data dengan nilai terbesar atau nilai tertinggi.
Mengapung di sini maksudnya adalah berpindah posisi dengan data yang berada di indeks atau posisi paling akhir.
Sebenarnya bubble sort memiliki kemiripan dengan algoritma selection sort.
Karena selection hanya melakukan kebalikan yang dilakukan oleh bubble sort.
Dan kita akan bahas selection sort pada artikel yang berbeda.
Mungkin itu saja untuk artikel kali ini, mohon maaf jika ada kekeliruan khususnya pada bagian program.
Terima kasih untuk kunjungannya.