Wednesday, May 7, 2014

Mengurutkan array dengan metode bubble sort

Array merupakan suatu variabel yang menampung banyak nilai, dimana nilai-nilai yang ditampungnya bisa dalam keadaan acak. Ada beberapa teknik pengurutan array, namun kali ini saya akan menjelaskan cara mengurutkan array dengan metode bubble sort.

prinsip kerja dari metode bubble sort adalah membandingka nilai elemen array bagian belakang dengan setiap elemen array bagian depan, jika nilai elemen array bagian depan lebih kecil dari nilai elemen array bagian belakang, maka nilainya akan ditukar. sehingga hasil akhirnya adalah nilai elemen array akan berurut dari yang terkecil sampai yang terbesar.


pada proses pengurutan array ini akan terjadi beberapa tahap pengurutan, dan perbandingan.
Contoh kasus :
saya memiliki array A dengan nilai seperti berikut :

Maka pada proses pengurutan tahap pertama adalah :
Membandingkan nilai elemen pertama (5) dengan setiap nilai elemen di depannya (2, 7, 6, 9) dan jika nilai elemen di depannya memiliki nilai yang lebih kecil maka akan di tukar.
pada proses pengurutan tahap pertama ini telah terjadi 4 kali perbandingan yaitu :
5:2, 5:7, 5:6, 5:9
karena nilai elemen kedua (2) lebih kecil dari elemen pertama (5) maka terjadi operasi punukaran nilai elemen array.

Proses pengurutan tahap kedua :
Membandingkan elemen ke-2 (5) dengan setiap nilai elemen di depannya (7, 6, 9) dan jika nilai elemen di depannya memiliki nilai yang lebih kecil maka akan di tukar.
pada proses pengurutan tahap pertama ini telah terjadi 3 kali perbandingan yaitu :
5:7, 5:6, 5:9
Karena nilai elemen di depannya tidak ada yang lebih kecil dengan nilai elemen kedua maka tidak terjadi operasi penukaran nilai.

Proses pengurutan tahap ketiga :
Membandingkan nilai elemen ke-3 (7) dengan setiap nilai elemen di depannya (6, 9) dan jika nilai elemen di depannya memiliki nilai yang lebih kecil maka akan di tukar.
pada proses pengurutan tahap ketiga ini telah terjadi dua kali perbandingan, yaitu :
7:6, 7:9
karena nilai elemen ke-4 (6) lebih kecil dari nilai elemen ke-3 (7) maka terjadi operasi penukaran nilai.

Proses pengurutan tahap keempat :
Membandingkan nilai elemen ke-4 (7) dengan nilai elemen terakhir (9) dan jika nilai elemen di depannya memiliki nilai yang lebih kecil maka akan di tukar.
pada proses pengurutan tahap ke-4 ini telah terjadi satu kali perbandingan, yaitu :
7:9
karena 9 tidak lebih kecil dari 7 maka tidak terjadi operasi penukaran nilai.

Dan hasil akhir dari nilai elemen array yang telah di urutkan adalah 2, 5, 6, 7, 9

Kesimpulannya adalah :
tahapan = jumlah elemen array - 1
jumlah perbandingan pada tiap tahapan = jumlah elemen - tahap

Contoh program :

#include <iostream>
#include <cstdlib>
#define n 5

using namespace std;

int main()
{
 int A[5];
 int i, j, k, temp;
 
 cout<<"Masukan nilai pada elemen array berikut : "<<endl;
 for (i=0; i<n; i++)
 {
  cout<<"A["<<i<<"] : "; cin>>A[i];
 }
 
 //Mengurutkan array
 for (j=1; j<n; j++)
 {
  for(k=j; k<n; k++)
  {
   if(A[j-1] > A[k])
   {
    temp = A[j-1];
    A[j-1] = A[k];
    A[k] = temp;
   }
  }
 }
 
 cout<<"\nNilai array setelah di urutkan : "<<endl;
 for (i=0; i<n; i++)
 {
  cout<<"A["<<i<<"] : "<<A[i]<<endl;
 }
 
 system("pause");
 return 0;
}
Hasil nya adalah sebagai berikut :