
Pengenalan algoritma Bubble Short dalam bentuk video dapat disimak di tautan ini https://youtu.be/6sUpCaXjWls. Kemudian bagaimana proses ‘ngoding’-nya dari awal sampai selesai dapat disimak di tautan ini https://youtu.be/OMCy0p6BGRo.
Hasil ‘coding’ Bubble Short dapat dilihat pada program berikut:
/* ---------------------------------------------------
* program bubble short menggunakan bahasa C++
* dibuat oleh dwi sakethi
* 9 desember 2020
* program ini digunakan untuk mengurutkan data array
* dari angka kecil ke angka besar
* proses ngodingnya dapat disimak di youtube
*
* ---------------------------------------------------
* */
// menentukan jumlah data maksimum
#define jumlah_data 7
// karena ada cout, maka perlu ini
#include <iostream>
// ini sebenarnya tidak dianjurkan
using namespace std;
// program bahasa C++ paling tidak terdiri dari
// satu fungsi, yaitu fungsi main()
int main()
{
// deklarasi variabel yang digunakan di dalam program
int baris,kanan;
int angka_kiri,angka_kanan;
float nilai_sementara;
float nilai[jumlah_data];
// data ditulis di sini, supaya tidak capai memasukkan data
// melalui keyboard
nilai[0] = 7.5;
nilai[1] = 3.2;
nilai[2] = 5.5;
nilai[3] = 9.5;
nilai[4] = 3.1;
nilai[5] = 8.0;
nilai[6] = 6.5;
/* --------------------------------------------------
* menampilkan data awal
* -------------------------------------------------- */
cout << "Sebelum di-sorting " <<endl;
for(baris=0;baris<jumlah_data;baris++)
{
cout << "Nilai : "<< nilai[baris]<<endl;
}
// proses bubble short dari kecil ke besar
for (baris=1;baris<jumlah_data;baris++)
{
kanan = jumlah_data+1-baris;
cout << baris << " - " << kanan << " : ";
for (angka_kiri=1;angka_kiri<kanan;angka_kiri++)
{
angka_kanan = angka_kiri+1;
cout << angka_kiri << " - " << angka_kanan << " ";
/* -------------------------------------------------
jika data di sebelah kiri lebih besar dari data
di sebelah kanan, maka posisinya ditukar
------------------------------------------------- */
if (nilai[angka_kiri-1]>nilai[angka_kanan-1])
{
nilai_sementara = nilai[angka_kiri-1];
nilai[angka_kiri-1] = nilai[angka_kanan-1];
nilai[angka_kanan-1] = nilai_sementara;
}
}
cout << endl;
}
cout << "Setelah di-sorting " <<endl;
for(baris=0;baris<jumlah_data;baris++)
{
cout << "Nilai : "<< nilai[baris]<<endl;
}
// akhir program
// karena int main(), jadi boleh diisi dengan 1
return 1;
}
Sedangkan alternatif lain proses pengurutan, dapat juga disimak pada ‘coding’ berikut ini:
/* -------------------------------------------------------------
contoh ini telah di-compile pada sistem operasi Linux
dengan compiler gcc. nama file buble.c
perintah compile : gcc buble.c -o buble -lm
jika tidak ada kesalahan, program dapat dijalankan dengan
memberikan perintah:
./buble
#dwi sakethi 26 agustus 2018
------------------------------------------------------------- */
// menyertakan library untuk mencetak data ke layar
#include <stdio.h>
// misalkan banyaknya data maksimal yang akan diolah ada 100 data
#define jumlah_data_maksimum 100
int main()
{
int banyak_data;
int data[jumlah_data_maksimum];
int data_ke,data_setelah,bilangan_sementara;
// menghapus layar
// system("clear");
// menanyakan banyaknya data
printf("Banyaknya data: ");
scanf("%d",&banyak_data);
// looping pemasukan data
for (data_ke=0;data_ke<banyak_data;data_ke++)
{
// memasukkan data ke-?
printf("Masukkan data ke-%d : ",data_ke+1);
scanf("%d",&data[data_ke]);
}
/* pengurutan data dengan metode buble sort */
/* -------------------------------------------------
pembandingan dilakukan dari data pertama
sampai dengan data terakhir-1
karena perbandingan terakhir adalah perbandingan
antara data terakhir-1 dengan data terakhir
0-1 0-2 0-3 0-4
1-2 1-3 1-4
2-3 2-4
3-4
terlihat bahwa nilai yang sebelah kiri,
nilai terbesarnya adalah 3 (untuk contoh 5 data)
sehingga batas loopingnya banyak_data-2
karena array dimulai dari angka 0,
maka akhir looping harus dikurangi lagi
------------------------------------------------- */
/* -------------------------------------------------
langkah pertama adalah membuat looping dengan
hasil angka seperti berikut:
0-1 0-2 0-3 0-4
1-2 1-3 1-4
2-3 2-4
3-4
------------------------------------------------- */
for (data_ke=0;data_ke<=banyak_data-2;data_ke++)
for (data_setelah=data_ke+1;
data_setelah<=banyak_data-1;data_setelah++)
/* mengurutkan data dari kecil ke besar */
if (data[data_setelah]<data[data_ke])
/* ditukar tempatnya, misal data[0] = 11 dan data[1]=6
maka ditukar sehingga menjadi data[0]=6 data[1]=11 */
{
bilangan_sementara = data[data_ke];
data[data_ke] = data[data_setelah];
data[data_setelah] = bilangan_sementara;
}
/* cetak data hasil sorting */
printf("Data hasil sorting dengan Bubble Short: \n");
for (data_ke=0;data_ke<=banyak_data-1;data_ke++)
printf(" %2d : %2d \n",data_ke+1,data[data_ke]);
// karena int main, maka harus ada return
return 0;
}