Rabu, 22 Juni 2016

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