Monthly Archives: January 2016
Program Sorting Buble Sort dengan bahasa Program C++

Pengertian Sorting

Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun). Pengurutan (Sorting) adalah proses pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara teratur menurut aturan tertentu.

Contoh  data acak :

5 6 8 1 3 25 10

Ascending : 1 3 5 6 8 10 25

Descending : 25 10 8 6 5 3 1

Deklarasi Array Sorting

Mendeklarasikan array secara global:

int data[100];

int n; //untuk jumlah data

Fungsi Tukar 2 Buah Data:

void tukar(int a,int b)

{

int tmp;

tmp = data[a];

data[a] = data[b];

data[b] = tmp;

}

Sorting merupakan suatu proses untuk menyusun kembali himpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen.

Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:

  1. Urut naik (ascending) Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar.
  2. Urut turun (descending) Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Mengapa harus melakukan sorting data?

Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan penggabungan data.

Dalam metode pengurutan yang di bahas dalam artikel ini adalah buble sort.

Buble sort

Bubble Sort merupakan cara pengurutan yang sederhana. Konsep dari ide dasarnya adalah seperti “gelembung air” untuk elemen struktur data yang semestinya berada pada posisi awal.

Cara kerjanya adalah dengan berulang-ulang melakukan traversal(proses looping) terhadap elemen-elemen struktur data yang belum diurutkan. Di dalam traversal tersebut,nilai dari dua elemen struktur data dibandingkan. Jika ternyata urutannya tidak sesuai dengan “pesanan”,maka dilakukan pertukaran (swap). Algoritma sorting ini disebut juga dengan comparison sort dikarenakan hanya mengandalkan perbandingan nilai elemen untuk mengoperasikan elemennya. Algoritma Bubble Sort Algoritma bubble sort dapat diringkas sebagai berikut, jika N adalah panjang elemen struktur data, dengan elemen-elemennya adalah T1, T2, T3, …, TN-1,TN, maka:

1.) Lakukan traversal untuk membandingkan dua elemen berdekatan. Traversal ini dilakukan dari belakang.

2.) Jika elemen pada TN-1 > TN , maka lakukan pertukaran (swap). Jika tidak, lanjutkan ke proses traversal berikutnya sampai bertemu dengan bagian struktur data yang telah diurutkan.

3.) Ulangi langkah di atas untuk struktur data yang tersisa.

Sebagai contoh

Mari mengurutkan data berikut “5 1 4 2 8”, mengurutkan array dari angka terendah ke nomor terbesar menggunakan bubble sort. Dalam setiap langkah, unsur-unsur yang ditulis dalam huruf tebal sedang dibandingkan.

Pertama :
(5 1 4 2 8)\untuk (1 5 4 2 8), Di sini, algoritma membandingkan dua elemen pertama, dan swap karena 5> 1.
(1 5 4 2 8)\untuk (1 4 5 2 8), Swap Karena 5> 4
(1 4 5 2 8)\untuk (1 4 2 5 8), Swap Karena 5> 2
(1 4 2 5 8)\untuk(1 4 2 5 8), Sekarang, elemen ini sudah dalam urutan (8> 5), algoritma tidak swap.

Kedua :
(1 4 2 5 8)\untuk (1 4 2 5 8)
(1 4 2 5 8)\untuk (1 2 4 5 8), Swap Karena 4> 2
(1 2 4 5 8)\untuk (1 2 4 5 8)
(1 2 4 5 8)\untuk (1 2 4 5 8)
Sekarang, array sudah diurutkan, tapi algoritma tidak tahu apakah sudah selesai. Algoritma memeriksa satu-satu secara seluruh tanpa swap.

Ketiga :

(1 2 4 5 8)\untuk (1 2 4 5 8)
(1 2 4 5 8)\untuk (1 2 4 5 8)
(1 2 4 5 8)\untuk (1 2 4 5 8)
(1 2 4 5 8)\untuk (1 2 4 5 8)

Semua data sudah terurut.

Implementasi Bubble Sort dalam Bahasa C++

// Kelompok 5
// Oleh  :Aditia Nugraha                  (15102043)
//          :Muhammad adam hawari  (15102067)
//          :Zaenury Dhany Wibowo    (15102080)

#include <iostream>
#include <conio.h>
using namespace std;
int data[10],data2[10];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void Input()
{
cout<<“Masukkan jumlah data = “;
cin>>n;
cout<<“———————–“<<endl;
for(int i=0;i<n;i++)
{
cout<<“Masukkan data ke-“<<(i+1)<<” = “;
cin>>data[i]; data2[i] = data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}
void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–){
if(data[j]<data[j-1]) tukar(j,j-1);
}
Tampil();
}
cout<<endl;
}
main()
{
cout<<“* Kelompok 5 *”<<endl;
cout<<“==15102043==”<<endl;
cout<<“==15102067==”<<endl;
cout<<“==15102080==”<<endl;
cout<<“*Fungsi Bubble Sort *”<<endl;
cout<<“*————————————-*”<<endl;
Input();
cout<<“Proses Bubble Sort,,,,,,,”<<endl;
cout<<“————————————-“<<endl;
Tampil();
bubble_sort();
cout<<“————————————-“<<endl;
cout<<” TERIMA KASIH “<<endl;
cout<<“————————————-“<<endl;
getch();
}

hasil output

2016-01-02 08_15_04-Add New Post ‹ zaenury punya — WordPressUntuk lebih jelas metode buble sort, lihat video ini.