Pengurutan 
Bubble 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Pendahuluan 
Sesuai dengan namanya, bubble sort membuat elemen 
yang dibandingkan berlaku seperti gelembung atau 
dinaikkan. 
Metode sorting mengiterasi dan mebandingkan 2 elemen 
setiap iterasi dan mengubah posisi elemen yang 
dibandingkan dimana elemen yang lebih besar akan 
ditukar posisinya ke indeks yang lebih akhir.
Proses 
→ awal 
→ bandingkan 
→ tukar, maju 1 elemen 
→ sudah benar, lanjut 
→ bandingkan 
→ tukar, maju 1 elemen 
5 2 7 1 6 8 4 3 
5 2 7 1 6 8 4 3 
2 5 7 1 6 8 4 3 
2 5 7 1 6 8 4 3 
2 5 7 1 6 8 4 3 
2 5 1 7 6 8 4 3
Proses - 2 
→ bandingkan 
→ tukar, maju 1 elemen 
→ sudah benar, maju 
→ tukar 
→ hasil iterasi pertama 
2 5 1 7 6 8 4 3 
2 5 1 6 7 8 4 3 
2 5 1 6 7 8 4 3 
2 5 1 6 7 8 4 3 
2 5 1 6 7 4 8 3 
2 5 1 6 7 4 3 8
Proses - 3 
2 5 1 6 7 4 3 8 → Mulai lagi dari awal 
→ Perhatikan bahwa 
kotak yang tebal sudah 
terurut 
→ lakukan sampai semua 
terurut 
2 1 5 6 4 3 7 8 
1 2 3 4 5 6 7 8
Pseudocode 
procedure bubbleSort( Input/Output A : list of sortable items ) 
n = length(A) 
repeat 
swapped = false 
for (i = 0 to n-1) do /* elemen pertama memiliki indeks 0 */ 
begin 
/* jika pasangan tidak sesuai */ 
if A[i-1] > A[i] then 
begin 
/* tukar posisinya dan nilai swap diingat menjadi true */ 
swap( A[i-1], A[i] ) 
swapped = true 
end 
end 
until not swapped /* lakukan sampai tidak ada yang ingin ditukar */
Contoh Kode C++ 
void bubbleSort(int arr[], int size) { 
bool not_sorted = true; 
int j=1,tmp; 
while (not_sorted) { 
not_sorted = false; 
j++; 
for (int i = 0; i < size - j; i++) { 
if (arr[i] > arr[i + 1]) { 
tmp = arr[i]; 
arr[i] = arr[i + 1]; 
arr[i + 1] = tmp; 
not_sorted = true; 
} // selesai proses tukar 
print_array(arr,5); // cetak array 
} 
} 
}
Contoh Kode C++ - lanjut 
#include <iostream> 
#include <array> 
using namespace std; 
void print_array(int array[], int size) { 
cout << "langkah bubble sort: "; 
int j; 
for (j=0; j<size;j++) 
cout <<" "<< array[j]; 
cout << endl; 
} //end of print_array
Contoh Kode C++ - lanjut 2 
int main() { 
int arrBil[5] = {3,5,2,1,4}; 
bubbleSort(arrBil, 5); // akan menanmpilkan hasil bubble sort 
// dengan print array tiap langkah 
return 0; 
}
Kompleksitas 
Worst Case O(n²) 
Best Case O(n) 
Average Case O(n²)

Algoritma dan Struktur Data - Bubble Sort

  • 1.
    Pengurutan Bubble Algoritmadan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2.
    Pendahuluan Sesuai dengannamanya, bubble sort membuat elemen yang dibandingkan berlaku seperti gelembung atau dinaikkan. Metode sorting mengiterasi dan mebandingkan 2 elemen setiap iterasi dan mengubah posisi elemen yang dibandingkan dimana elemen yang lebih besar akan ditukar posisinya ke indeks yang lebih akhir.
  • 3.
    Proses → awal → bandingkan → tukar, maju 1 elemen → sudah benar, lanjut → bandingkan → tukar, maju 1 elemen 5 2 7 1 6 8 4 3 5 2 7 1 6 8 4 3 2 5 7 1 6 8 4 3 2 5 7 1 6 8 4 3 2 5 7 1 6 8 4 3 2 5 1 7 6 8 4 3
  • 4.
    Proses - 2 → bandingkan → tukar, maju 1 elemen → sudah benar, maju → tukar → hasil iterasi pertama 2 5 1 7 6 8 4 3 2 5 1 6 7 8 4 3 2 5 1 6 7 8 4 3 2 5 1 6 7 8 4 3 2 5 1 6 7 4 8 3 2 5 1 6 7 4 3 8
  • 5.
    Proses - 3 2 5 1 6 7 4 3 8 → Mulai lagi dari awal → Perhatikan bahwa kotak yang tebal sudah terurut → lakukan sampai semua terurut 2 1 5 6 4 3 7 8 1 2 3 4 5 6 7 8
  • 6.
    Pseudocode procedure bubbleSort(Input/Output A : list of sortable items ) n = length(A) repeat swapped = false for (i = 0 to n-1) do /* elemen pertama memiliki indeks 0 */ begin /* jika pasangan tidak sesuai */ if A[i-1] > A[i] then begin /* tukar posisinya dan nilai swap diingat menjadi true */ swap( A[i-1], A[i] ) swapped = true end end until not swapped /* lakukan sampai tidak ada yang ingin ditukar */
  • 7.
    Contoh Kode C++ void bubbleSort(int arr[], int size) { bool not_sorted = true; int j=1,tmp; while (not_sorted) { not_sorted = false; j++; for (int i = 0; i < size - j; i++) { if (arr[i] > arr[i + 1]) { tmp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = tmp; not_sorted = true; } // selesai proses tukar print_array(arr,5); // cetak array } } }
  • 8.
    Contoh Kode C++- lanjut #include <iostream> #include <array> using namespace std; void print_array(int array[], int size) { cout << "langkah bubble sort: "; int j; for (j=0; j<size;j++) cout <<" "<< array[j]; cout << endl; } //end of print_array
  • 9.
    Contoh Kode C++- lanjut 2 int main() { int arrBil[5] = {3,5,2,1,4}; bubbleSort(arrBil, 5); // akan menanmpilkan hasil bubble sort // dengan print array tiap langkah return 0; }
  • 10.
    Kompleksitas Worst CaseO(n²) Best Case O(n) Average Case O(n²)