Algoritma Pemograman
Bubble
Sort
Apa
Itu Bubble Sort?
Bubble
Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya
mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending
atau Descending).
Bubble
sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara
melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai
bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika
tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung
karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang
tepat. Metode pengurutan gelembung (Bubble Sort)
diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat
jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung
sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada
pengurutan gelembung.
Algoritma
bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik
dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah
mengulang proses pembandingan antara tiap-tiap elemen array
dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan
terus diulang hingga tidak perlu dilakukan penukaran lagi. Algoritma ini
termasuk dalam golongan algoritma comparison sort, karena menggunakan
perbandingan dalam operasi antar elemennya. Berikut ini adalah gambaran dari
algoritma bubble sort. Misalkan kita mempunyai sebuah array dengan. Elemen-elemen “12 8 5 13 2 15”. Proses yang
akan terjadi apabila digunakan algoritma bubblesort adalah sebagai berikut:
Data : 12
8 5 13 2 15
Proses Bubble Sort(Ascending):
Iterasi 1 :
12 8 5 13 2 15 → (12 dibandingkan
dengan 8)
8
12 5 13
2 15 → (12 tukar dengan 8. Bandingkan 12 dengan 5)
8 5 12
13 2 15 →
(12 tukar dengan 5. Bandingkan 12 dengan 13)
8
5 12 13
2 15 → (Tidak ada pertukaran. Bandingkan 13 dengan 2)
8
5 12 2
13 15 → (13 tukar dengan 2. Bandingkan 13 dengan 15 )
8
5 12 2
13 15 → (Tidak ada pertukaran)
Iterasi 2 :
8
5 12 2
13 15 → (8 bandingkan dengan 5)
5 8 12 2 13 15 → (8 tukar dengan 5. Bandingkan 8 dengan
12)
5 8 12 2 13 15 → (Tidak terjadi pertukaran, Bandingkan
12 dengan 2)
5 8 2 12 13 15 → (tukar 12 dengan 2. Bandingkan 12
dengan 13)
5 8 2 12 13 15 → (Tidak terjadi pertukaran, Bandingkan
13 dengan 15)
5 8 2 12 13 15 → (Tidak Terjadi Pertukaran)
Iterasi 3 :
5 8 2 12 13 15 → ( 5 Bandingkan dengan 8)
5
8 2 12
13 15 → ( Tidak terjadi pertukaran. Bandingkan 8 dengan 2)
5
2 8 12
13 15 → ( 8 tukar dengan 2)
Iterasi 4 :
5
2 8 12
13 15 → ( 5 Bandingkan dengan 2)
2 5 8
12 13 15 →
( 5 tukar dengan 2)
Iterasi 5 :
2 5 8
12 13 15 →
( 2 bandingkan dengan 5)
Maka, Data diatas setelah di sorting ialah
sebagai berikut :
2 5
8 12 13 15