Mengurutkan data dengan metode BubbleSort

October 27, 2009 at 8:07 am 2 comments

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

Tabel di atas mengurutkan 5 elemen. Ilustrasi tabel di atas menunjukkan bahwa untuk vector dengan N elemen akan memerlukan iterasi sebagnyak N-1 kali. Disamping itu bisa diperhatikan pula bahwa apabila nomor iterasi kita tambah dengan banyaknya langkah pada iterasi tersebut besarnya tetap, yaitu sama dengan N. Sebagai contoh, untuk iterasi ke-1 terdapat 4 langkah; iterasi ke-2 terdapat 3 langkah, dan seterusnya. Algoritnya sebagai berikut :

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 :

GELEMBUNG

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 :

GELEMBUNG1

Entry filed under: Enkripsi. Tags: .

Dekripsi pada Vigenere Cipher

2 Comments Add your own

  • 1. Dwi Irawan  |  October 29, 2009 at 3:11 am

    Baru tahu algoritma Bubble Sort. Kemarin cuma pake perintah MySQL, Sort by Ascending.

    Reply
    • 2. jingklak  |  October 29, 2009 at 6:29 am

      ya, saya sudah memperkirakan ke arah sana, karena sebelumnya mhsw mengerjakan dengan 2 cara. Ada yang horisontal dan vertikal. Yang vertikal yg mudah ya disortir. namun terbentur dengan pesan. Jika pesannya terlampau panjang ndak muat jadi error. itulah kenapa mhsw berikutnya saya minta memberi pesan jika melebihi jumlah field. Saya masih menunggu kalau ada yang jadi dengan cara horisontal.

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


October 2009
M T W T F S S
« Sep    
 1234
567891011
12131415161718
19202122232425
262728293031  

%d bloggers like this: