PENGURUTAN BILANGAN
METODE BUBBLE SORT
PROSES PENGURUTAN
Untuk mengurutkan bilangan diperlukan variabel array untuk menampung semua bilangan yang
akan diurutkan. Proses pengurutan dilakukan dengan membandingkan semua elemen array satu
per satu. Dibawah ini terlampir contoh array berisi sederet bilangan yang belum diurutkan.
20 12 35 11 17 9 58 23
Indeks yg
menunjukkan posisi
1 2 3 4 5 6 7 8
elemen
Dimetode bubble sort, proses pengurutan dimulai dengan membandingkan elemen pertama untuk
mendapatkan angka terbesar. Lalu angka tersebut ditempatkan pada elemen terakhir.
Sebagai langkah awal, isi elemen pertama dibandingkan dengan elemen ke-2. Jika isi elemen ke-
2 lebih kecil dari elemen pertama, maka isi kedua elemen tersebut ditukar. Sehingga isi array
berubah menjadi :
12 20 35 11 17 9 58 23
1 2 3 4 5 6 7 8
Lalu elemen ke-2 dibandingkan dengan elemen ke-3. jika isi elemen ke-3 lebih besar, maka isi
kedua elemen tersebut tidak ditukar.
12 20 35 11 17 9 58 23
1 2 3 4 5 6 7 8
12 20 11 35 17 9 58 23
1 2 3 4 5 6 7 8
Proses perbandingan seperti diatas dilakukan secara berulang sampai pada elemen terakhir.
Sehingga pada akhirnya akan dihasilkan bilangan terbesar yang ditempatkan pada posisi elemen
terakhir. Dibawah ini kondisi array setelah perbandingan elemen terakhir.
12 20 11 17 9 35 23 58
1 2 3 4 5 6 7 8
Proses diatas hanya mencari bilangan terbesar pertama. Ulangi proses tersebut untuk mencari
bilangan terbesar lainnya setelah bilangan terbesar pertama tadi. Namun proses perbandingan
hanya dilakukan mulai dari elemen pertama sampai elemen ke-7.
Isi elemen pertama dibandingkan dengan elemen ke-2. Karena isi elemen ke-2 lebih besar, maka
isi kedua elemen tersebut tidak ditukar.
Kemudian elemen ke-2, dibandingkan dengan elemen ke-3. Karena elemen ke-3 lebih kecil,
maka isi kedua elemen tersebut ditukar sehingga isi array menjadi :
12 11 20 17 9 35 23 58
1 2 3 4 5 6 7 8
12 11 17 9 20 23 35 58
1 2 3 4 5 6 7 8
Kini isi elemen ke-7 dan ke-8 sudah urut berdasarkan bilangan kecil ke besar. Namun elemen
lainnya belum terurut. Untuk itu ulangi proses diatas, namun elemen yang dibandingkan hanya
sampai pada elemen ke-6 saja. Setelah itu, proses perbadingan diulangi lagi sampai elemen
terakhir yang dibandingkan yaitu elemen ke-2. Hasil akhirnya menjadi :
9 11 12 17 20 23 35 58
1 2 3 4 5 6 7 8
Seperti telah dijelaskan sebelumnya, proses pengurutan memakai variabel array untuk
menampung semua bilangan yang akan diurutkan. Oleh karena itu sebelum proses pengurutan
dilakukan, terlebih dahulu dibuat proses untuk mengisi semua bilangan ke dalam array.
Setelah array tersebut terisi, barulah proses pengurutan dilakukan untuk mengurutkan isinya.
Seperti diketahui, jika salah satu elemen array diisi dengan nilai baru, maka nilai lama akan
terhapus. Oleh sebab itu untuk mempertukarkan isi elemen array harus mengggunakan satu
variabel cadangan. Variabel ini digunakan untuk menyimpan isi array yang akan ditukar.
BILARR
9 11 12 17 20 23 35 58
1 2 3 4 5 6 7 8
Misalnya isi elemen ke-2 dari variabel BILARR akan ditukar dengan elemen ke-3. Maka isi
elemen ke-2 disimpan terlebih dahulu ke variabel cadangan ( misalnya untuk variabel ini diberi
nama TEMP). Setelah itu, isi elemen ke-3 dipindahkan ke elemen ke-2, lalu isi dari variabel
TEMP dipindahkan ke elemen ke-3. Ilustrasi dibawah ini memperlihatkan pertukaran kedua
elemen tersebut.
TEMP
11
BILARR
9 11 12 17 20 23 35 58
1 2 3 4 5 6 7 8
Dari proses yang telah dijelaskan, pengurutan bilangan dari kecil ke besar dengan metode bubble
sort dapat digambarkan melalui flowchart seperti berikut (lihat gambar 10.1)
start 1
I=0 J=J+1
J=0
N=0
2
N=N+1
Input BIL
BILARR(I) <
BILARR(I+1)
BIL = 0 1
TEMP = BILARR(I)
BILARR(I)=BILARR(I+1)
N=N+1 BILARR(I+1)=TEMP
BILARR(N) =
BIL
I=N-J 3
J=N-1 I=0
I=I+1
I=0
PRINT
3 BILARR(I)
I=N END
Berdasarkan flowchart diatas, proses pengurutan bilangan dari kecil ke besar dapat dirangkum
sebagai berikut :
1. persiapan variabel yang dipakai dalam proses, yaitu :
N : variabel untuk menyatakan jumlah elemen array. Jumlah ini diketahui
berdasarkan banyaknya bilangan yang diinputkan melalui keyboard.
I, J : variabel indeks untuk membandingkan isi array
2. prose pertama yang dilakukan adalah mengisi semua bilangan yang akan diurutkan ke
array. Pada flowchart diatas, array tersebut diberi nama BILARR. Bilangan diinput
melalui keyboard dan disimpan didalam variabel BIL.
3. periksa isi variabel BIL. Pada flowchart diatas, diasumsikan pengisian bilangan berakhir
jika operator mengetik 0 untuk bilangan yang diinput. Oleh karena itu, jika BIL = 0 maka
proses dilanjutkan ke langkah 7 untuk mulai pengurutan bilangan. Jika BIL tidak sama
dengan 0 berarti pengisian bilnagan belum berakhir, maka proses dilanjutkan ke langkah
4.
4. variabel N ditambah 1. variabel ini untuk menentukan elemen array yang akan diisi nilai
dari variabel BIL.
5. isi elemen array dengan nilai yang tersimpan di variabel BIL. Posisi elemen tersebut
ditentukan berdasarkan harga N.
6. kembali ke langkah 2 untuk menginput bilangan lainnya.