30
Nov
09

Bubble Sort Algorithm, hmmm…..

Heum… dapet TP alpro tapi belum dikerjain, eh, TP sisop muncul dan harus dikumpulin lebih awal…

Sabar ya para praktikan-praktikan yang budiman…:mrgreen: Kuliah tu nggak seru kalo nggak gini.

Well, kali ini aku mau posting mengenai bubble sort dan kebetulan juga aku nemu video ilustrasinya.

Bubble sort adalah:
a simple sorting algorithm. It works by repeatedly stepping through the list to be sorted, comparing two items at a time and swapping them if they are in the wrong order. The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted. The algorithm gets its name from the way smaller elements “bubble” to the top of the list. Because it only uses comparisons to operate on elements, it is a comparison sort.
–copy paste dari wiki– hehehe
Intinya sih bubble sort itu salah satu metode yang simpel untuk sorting. Dikatakan simpel karena emang simpel, maksudnya g ruwet, mudah dipahami, gampang dicerna, dan tidak semena-mena.:D.

Wew, terlihat begitu banyak pesona yang dimiliki oleh bubble sort ini, tapi jangan keburu-buru jatuh cinta pada pandangan pertama, cz ternyata bubble sort ini memiliki kekurangan juga. Emang sih dia simpel, tapi dia itu makan buanyak memori dan lama pengerjaannya jika yang disorting itu bilangannya banyak (banyak dalam konteks ini tu diatas 50000 angka). Tuh kan…! makanya jangan suka jatuh cinta cuma gara-gara kesan pertama, ati-ati dikadalin… Anyway, daripada semakin nggak nyambung, yuks kita liat grafiknya yang aku dapet dari sini. Here you are…

bubble

Tuh kan, diliat dari grafiknya aja, udah kliatan bahwa si bubble sort itu nggak baik untuk sorting yang jumlah angkanya banyak. Grafiknya yang menjulang dari bawah ke atas seperti gambar talinya balon yang sedang dipegang anak kecil (inget, gambar tali, jadi anak kecil dan balonnya tidak kelihatan). Oleh karena itulah, seorang ilmuwan asal Kota Kediri, Sir Alex Issac Alessandro Rizal Volta Avif Khan menyimpulkan bahwa nama bubble sort diambil dari bentuknya yang mirip tali balon. Tapi, karena cara dia menyimpulkan hal tersebut terlalu picik, ngawur, dan tidak bisa dipertanggungjawaban, maka pernyataan aneh tersebut dia tarik kembali:mrgreen: .

Seperti apa ilustrasinya? udah aku cariin, tapi pastikan kamu udah nginstall flashplayer😉

Bubble itu mengecek satu per satu angka yang ada di array, lalu dibandingin. Jika kondisinya tepat, maka terjadi proses swapping. Ini pseudocodenya. Tapi inget, ini pseudocode. Biasanya indeks suatu array dari psudocode itu dimulai dari 1, bukan 0 yang seperti pada java.
BUBBLESORT(A)
1 for i - 1 to length[A]
2    do  for j - length[A] downto i + 1
3          do  if A[j] < A[j-1]
4                 then swap ( A[j] , A[j-1] )

Jadi, jelas terlihat bahwa bubble sort adalah suatu algoritma yang simpel abis, secara, cuman 4 baris doank gituuu…

Yang perlu diinget, pseudocode dari bubble sort nggak cuma yang aku tulis di atas, ada bermacam-macam. Ada yang ngeceknya dari depan, ada yang dari belakang.

Video yang ada di atas adalah ilustrasi dari bubble sort yang pengecekannya dari belakang. Jadi, coba cermati deh, mana orang yang bener2 swap dan mana yang cuma ngecek tingginya doank. Cz keduanya mirip. Pseudocode di atas juga ngecek dari belakang, cuma bedanya dengan video itu adalah, setiap iterasi sorting di video tersebut dicek mpe depan, sedangkan pada pseudocode tidak sampe depan, cz emang lebih efisien.

jadi, pseudocode di atas tidak identik dengan ilustrasi videonya, tapi memiliki cara yang nyaris sama dan cukup menjelaskan apa bubble sort itu.

Kalo yang pengen pseudocode dari bubble sort yang ngeceknya dari depan, check this out

procedure bubbleSort( A : list of sortable items ) defined as:
  do
    swapped := false
    for each i in 0 to length(A) - 2 inclusive do:
      if A[ i ] > A[ i + 1 ] then
        swap( A[ i ], A[ i + 1 ] )
        swapped := true
      end if
    end for
  while swapped
end procedure

5 Responses to “Bubble Sort Algorithm, hmmm…..”


  1. December 20, 2009 at 11:11 am

    Kalo pengen yang data nya banyak, paling enak pake sorting yang mana Mas????

  2. 3 Arief
    January 24, 2010 at 10:19 am

    Assalamualaikum wr.wb
    Mas, saya ada tugas menggabungkan program. bisa bantu saya gak mas
    ini lho programnya mas.

    1.Alogaritma Pemilihan
    Program Sorting_Pemilihan;
    Type ARR = Array[1..5] of Integer;
    Const D : ARR = (516,419,127,69,381);
    Var I : Integer;
    Procedure Pilih_Data_Terkecil(X:ARR; A,B:Integer; Var C : Integer);
    Var Min,I : Integer;
    Begin
    Min := Maxint;
    For I := A to B do
    If X[I] < Min then
    Begin
    Min := X[I]; C := I;
    End
    End;

    Procedure Tukar(Var X,Y:Integer);
    Var Z : Integer;
    Begin
    Z := X; X := Y; Y := Z;
    End;

    Procedure Pemilihan(Var A:ARR; N:Integer);
    Var I,J,Min : Integer;
    Begin
    For I := 1 to N-1 do
    Begin
    Pilih_Data_Terkecil(A, I,N,Min);
    Tukar(A[I],A[Min]);
    End;
    End;
    Begin
    For I := 1 to 5 do write(D[I],' '); Writeln;
    Pemilihan(D,5);
    For I := 1 to 5 do write(D[I],' '); Writeln;
    End.

    2.Alogaritma Pertukaran
    Procedure Bubble_Flag(Var A:ARR; N:Integer);
    Var I,J : Integer;
    Urut : Boolean;
    Begin
    Urut := False; I := 2
    While (I A[J] then
    Begin
    Tukar(A[J-1],A[J]);
    Urut := False;
    End;
    I := I + 1;
    End;
    End;

    3.Program Sorting_Penyisipan;
    Type ARR = Array[1..5] of Integer;
    Const D : ARR = (516,419,127,69,381);
    Var I : Integer;
    Procedure Geser(Var A:ARR; B,C:integer);
    Var I : Integer;
    Begin
    For I := C downto B do A[I+1] := A[I];
    End;
    Procedure Cari_Posisi(A:ARR; B:Integer; Var C:Integer);
    Var I : Integer;
    Begin
    C := B;
    Repeat I := I + 1 Until A[B] <= A[I];
    C := I;
    End;

    Procedure Penyisipan(Var A:ARR; N:Integer);
    Var I,J,K : Integer;
    Begin
    For I := 2 to N do
    Begin
    K := A[I];
    Cari_Posisi(A,I,J);
    Geser (A,J,I);
    A[J] := K;
    End;
    End;
    Begin
    For I := 1 to 5 do write(D[I],' ');
    Writeln;
    Penyisipan(D,5);
    For I := 1 to 5 do write(D[I],' ');
    Writeln;
    End.

    makasih mas sebelum dan sesudahnya.
    wassalamualaikum wr.wb

  3. 5 SYS
    May 5, 2013 at 10:03 am

    Pagi bang , mau tanya . ane buat program bubble sort . cuma data kadang bisa keurut , kadang engga. itu salah dimana yah. ?


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


my nationality

writer


struggling for whole happiness "Muhamad Rizal Avif Khan"
Share |