Sorting Bubble Sort Pada C++

Halo teman Rumah Coding,

kali ini kita akan membahas program bubble sort dengan C++. Mungkin ketika kalian belajar algoritma atau struktur data, teknik pengurutan bubble sort ini akan kalian pelajari. Selain bubble sort masih terdapat banyak jenis pengurutan yang lain seperti insertion sort, selection sort,merge sort dan lainnya. Namun kali ini kita akan bahas tentang bubble sort, jadi simak terus ya.

Pengertian Pengurutan (Sorting)

Pengurutan atau sorting adalah suatu proses penyusunan data yang akan disusun menurut pola/aturan tertentu. Terdapat 2 bentuk pengurutan yang dilakukan yaitu:

  • Pengurutan naik (ascending) mengurutkan data dari nilai yang terkecil atau yang terendah ke nilai yang lebih besar/tinggi.
  • Pengurutan turun (descending) adalah kebalikan dari pengurutan ascending dimana data akan diurutkan dari yang terbesar ke yang terkecil.

Bubble Sort

Metode Bubble sort adalah salah satu jenis algoritma pengurutan yang paling sederhana dan mudah, baik dalam konsep dan penerapannya didalam program. Bubble sort terinspirasi dari namanya ‘gelembung’ dimana berat jenis gelembung lebih kecil dari berat air sehingga akan mengapung diatas permukaan.

Lewat ilustrasi inilah metode bubble sort bekerja.

Algoritma Bubble Sort

Algoritma bubble sort bekerja dengan cara membandingkan data dari elemen data yang pertama dibandingkan tepat pada elemen berikutnya hingga elemen ke-n (n adalah banyaknya jumlah data).

Bila saat dibandingkan terdapat nilai yang lebih kecil dari elemen pertama maka posisinya akan ditukar. Nilai tersebut akan terus dibandingkan hingga sampai pada elemen ke-n, ini menjadi iterasi/tahap pertama pada proses pengurutannya.

Hasil pengurutan pada tahap pertama akan menjadi acuan pada iterasi tahap berikutnya dimana nilai pada elemen pertama tidak akan dibandingkan lagi dengan elemen yang lain. Pada tahap/iterasi kedua ini nilai pada elemen ke-2 akan dibandingkan dengan cara yang sama pada iterasi yang pertama. Iterasi akan terus dilakukan hingga nilai pada setiap elemen terurut sesuai aturan (dalam hal ini menggunakan aturan ascending).

contoh :

data[1]=3;
data[2]=7;
data[3]=4;
data[4]=2;
data[5]=1;

Diatas kita mempunyai 5 elemen data yang tersimpan pada variabel array data, kita akan coba urutkan dengan teknik bubble sort secara ascending lewat langkah-langkah berikut:

  1. Data[5] akan dibandingkan dengan data[4], jika nilai dari data[5] lebih kecil dari data[4] maka posisinya akan ditukar.
  2. data[5] selanjutnya akan terus dibandingkan dengan data[3],data[2] dan data[1]. Apabila nilai dari data[5] lebih kecil maka posisinya akan terus ditukar.
  3. Ketika data[5] telah selesai membandingkan dengan semua data yang ada, kini varabel data[] mempunyai urutan nilai yang sudah berubah
  4. selanjutnya data akan dibandikan lagi dengan seperti tahap 1 sampai dengan 3 namun untuk data[1] tidak kan dibandingkan karena sudah memiliki nilai paling kecil.
  5. Proses pembandingan data akan terus berjalan sebanyak jumlah data

Penerapan Pada Program

Buat file sorting_bubble.cpp tulis syntax berikut

#include <iostream>

int data[10];
int n;

void tampil()
{
    for (int i = 0; i < n; i++)
    {
        std::cout << "[" << data[i] << "] ";
    }
    std::cout << std::endl;
}

int main()
{
    std::cout << "ALGORITMA BUBBLE SORT" << std::endl;
    std::cout << "----------------------" << std::endl;

    // Menentukan banyaknya jumlah data
    std::cout << "Masukan Jumlah Data = ";
    std::cin >> n;

    std::cout << std::endl;

    // Input data
    for (int i = 0; i < n; i++)
    {
        std::cout << "Masukan Data Ke-" << i + 1 << " = ";
        std::cin >> data[i];
    }

    std::cout << std::endl;
    std::cout << "Proses Bubble Sort" << std::endl;

    tampil();

    // Proses sorting bubble
    
    // Perulangan pertama 1 s/d n(jumlah data), 
    //sebagai batas urutan data terkecil saat melakukan perbandingan data
    for (int i = 1; i < n; i++)
    {
        // perulangan kedua (n - 1) s/d nilai i yang sedang berjalan pada perulangan pertama,
        // berguna membandingkan nilai dari urutan data terbesar ke urutan data terkecil.
        for (int j = n - 1; j >= i; j--)
        {
            if (data[j] < data[j - 1])
            {
                // Tukar posisi data
                int t;
                t = data[j - 1];
                data[j - 1] = data[j];
                data[j] = t;
            }
        }
        tampil();
    }
    std::cout << std::endl;
    return 0;
}

Jalankan Program

Dari hasil output diatas pada tahap pertama data[5] dibandingkan dengan data lainnya dengan cara dibandingkan secara berurutan dari bawah ke atas, apabila data[5] lebih kecil maka posisinya akan ditukar, sehingga variabel data[] mendapati urutan nilai baru.

Pada tahap selanjutnya dengan variabel data[] memiliki urutan nilai baru, tahap perbandingan dimulai ulang dari data[5] ke data paling atas, namun untuk data[1] tidak akan dibandingkan karena sudah memiliki nilai paling kecil. sehingga variabel data[] mendapati urutan nilai baru lagi.

proses perbandingan dilakukan sebanyak jumlah data dikurangi satu

[3] [7] [4] [2] [1] => nilai awal
[1] [3] [7] [4] [2] => urutan nilai baru, tahap perbandingan pertama.
[1] [2] [3] [7] [4] => urutan nilai baru, tahap perbandingan kedua.
[1] [2] [3] [4] [7] => urutan nilai baru, tahap perbandingan ketiga.
[1] [2] [3] [4] [7] => urutan nilai baru, tahap perbandingan keempat.


Demikian pembahasan kali ini mengenai Sorting Bubble Sort Pada C++. kita sudah mempelajari konsep dasar cara kerja algoritma yang cukup sederhana ini. semoga mudah untuk dipahami, terus berlatih

sampai bertemu di artikel selanjutnya

Scroll to Top