Monday, July 22, 2019

Penjelasan lengkap Bubble Sort

Penjelasan lengkap Bubble Sort

Penjelasan lengkap Bubble Sort
Monday, July 22, 2019
Pernahkah anda mengurutkan bilangan acak? Bagaimana cara yang anda gunakan untuk mengurutkan bilangan acak tersebut? Jika anda membandingkan dua bilangan dan menukarkan bagian kiri dengan bilangan yang lebih kecil, anda tanpa sadar sudah melakukan algoritma yang biasa disebut dengan bubble sort.

Bubble sort adalah algoritma / cara mengurutkan bilangan acak menjadi bilangan yang terurut dengan membandingkan kedua bilangan bersebelahan. Dengan cara membandingkan kedua bilangan bersebelahan sebanyak n2 anda akan mendapatkan bilangan yang terurut.

Algoritma bubble sort memiliki kompleksitas O(n2) sama seperti dengan algoritma sorting selection sort dan insertion sort. Namun worst case atau kejadian terburuknya jika selalu menukarkannya. Sedangkan best case atau kejadian terbaiknya jika sudah terurut. Bilangan yang sudah terurut akan memiliki kompleksitas n.

Baca juga : Penjelasan lengkap Selection Sort

Algoritma Bubble Sort


Untuk lebih paham dan mengerti mengenai cara kerja bubble sort lakukan langkah-langkah pengurutan sebagai berikut:

  1. Bandingkan dua bilangan dari kiri,
  2. Jika bilangan kedua lebih besar dari bilangan pertama, tukar posisi kedua bilangan tersbut,
  3. Jika tidak lebih besar dari bilangan kedua, lakukan langkah 1 kembali sampai bilangan menjadi terurut.

Contoh dari sorting bubble sort lihat gambar diatas. Menurut saya bubble sort lebih baik dari selection sort karena data yang sudah terurut hanya melakukan perbendingan sebanyak n kali. Sedangkan algoritma selection sort tetap melakukan perbandingan sebanyak n2 .

Cara menukar nilai dua variabel


Untuk memahami bagaimana bubble sort bekerja, terlebih dahulu anda harus bisa melakukan penukaran dua variabel yang berbeda. Cara yang digunakan untuk melakukan penukaran sama dengan cara yang digunakan jika kita menggunakan variabel biasa. Lihatlah cara menukar kedua nilai dibawah ini.

temp = bil[i];
bil[i] = bil[j];
bil[j] = temp;

Dengan menggunakan variabel temp sebagai variabel sementara untuk menyimpan nilai, kita dapat dengan mudah melakukan penukaran menjadi bilangan yang kita inginkan.

Sebenarnya terdapat cara lain untuk menukarkan variabel, cara yang lain ini menggunakan konsep matematika penjumlahan dan pengurangan. Cara menukarkan dua variabel yang biasa digunakan adalah cara seperti diatas dengan menggunakan variabel temp sebagai variabel sementara.

Source code bubble sort bahasa C++


Sebelum melihat source code dibawah ini, ada baiknya anda mencoba membuatnya sendiri terlebih dahulu. Kita tidak akan pernah bisa jika kita enggan untuk mencoba dan melakukan kesalahan. Kesalahan dalam membuat program pasti sering dialami programmer, sekalipun itu programmer yang sudah pro.

#include <iostream>
using namespace std;

int main() {
int bil[] = {98, 21, 43, 34, 23, 65, 86, 21, 43, 1};
int n = sizeof bil / sizeof(int);
int temp;
for(int i = 0; i < n; i++){
for(int j = 0; j < n-1; j++){
if(bil[j] > bil[j+1]){
temp = bil[j];
bil[j] = bil[j+1];
bil[j+1] = temp;
}
}
}
for(int i = 0; i < n; i++)
cout << bil[i] << " ";
}

 Program diatas adalah program yang biasa digunakan dalam pembelajaran sorting. Untuk membuat aplikasi web, aplikasi PC, dan aplikasi mobile algoritma bubble sort jarang digunakan karena kompleksitas algoritma tersebut adalah n2 .

Algoritma yang biasa digunakan untuk membuat program adalah algoritma yang memiliki kompleksitas O(n log(n)), seperti algoritma merge sort, quick sort, heap sort dan lain sebagainya.

Bubble sort diatas bisa disempurnakan apabila sudah terurut dapat berhenti. Silakan untuk mencoba membuatnya.


Itulah algoritma untuk melakukan sorting menggunakan algoritma bubble sort. Apabila ada kesalahan silakan tinggalkan komentar dibawah ini atau dengan kontak saya melalui email yang terdapat pada halaman about.

Berkomentarlah secara bijak.
EmoticonEmoticon