Metode gelembung (BubbleSort) atau sering disebut dengan istilah metode penukaran (ExchangeSort) adalah metode yang mendasarkan penukaran dua buah elemen untuk mencapai keadaan urut yang diinginkan. Meskipun metode ini tidak begitu efisien namun cukup mudah untuk dipelajari. Untuk mengurutkan data dengan metode ini ada dua cara yang bisa dilakukan. Yang pertama adalah selalu meletakkan nilai terbesar pada posisi terakhir (posisi ke N). Kemudian elemen dengan nilai paling besar kedua diletakkan pada posisi ke N-1, dan seterusnya. Cara kedua adalah kebalikan cara pertama. Dalam hal ini nilai terkecil menjadi patokan.
Saya mencoba menyajikan pengurutan data dengan menggunakan cara pertama. Logikanya saya gambarkan dengan tabel berikut :
Iterasi ke | A[1] | A[2] | A[3] | A[4] | A[5] |
Awal | 24 | 23 | 56 | 45 | 12 |
I=1 | 23 | 24 | 56 | 45 | 12 |
23 | 24 | 56 | 45 | 12 | |
23 | 24 | 45 | 56 | 12 | |
23 | 24 | 45 | 12 | 56 | |
I=2 | 23 | 24 | 45 | 12 | 56 |
23 | 24 | 45 | 12 | 56 | |
23 | 24 | 12 | 45 | 56 | |
I=3 | 23 | 24 | 12 | 45 | 56 |
23 | 12 | 24 | 45 | 56 | |
I=4 | 12 | 23 | 24 | 45 | 56 |
Langkah 0 Baca vector yang akan diurutkan
Langkah 1 Kerjakan langkah 2 untuk I = 1 sampai N-1
Langkah 2 Kerjakan langkah 3 untuk J = 1 sampai N-1
Langkah 3 Test:apakah A[j] > A[j+1] ?
Jika ya, tukarkan nilai kedua elemen tersebut.
Langkah 4 Selesai
Sebagai implementasi dari logika di atas saya mencoba dengan visual basi sebagai berikut :

Textbox atas diberi nama txtkunci
Textbox bawah diberi nama txturut
Sedangkan source codenya sebagai berikut:
Private Sub cmdurut_Click()
Dim i, j As Integer
Dim A(20) As Integer
n = Len(Trim(txtkunci.Text))
For k = 1 To n
A(k) = Asc(Mid(txtkunci.Text, k, 1))
Next k
For i = 1 To n – 1
For k = 1 To n – 1
If A(k) > A(k + 1) Then
d = A(k)
A(k) = A(k + 1)
A(k + 1) = d
End If
Next k
Next i
For i = 1 To n
kar = Chr(A(i))
kalimat = kalimat + kar
txturut.Text = kalimat
Next i
End Sub
Jika di run contoh hasilnya sebagai berikut :
