BUBBLE SORT
Nama : Amalia Indriani Dwian Pramudita 14102049
Nama : Amalia Indriani Dwian Pramudita 14102049
Avina Ulfa Aulia 14102052
Jayanti Tri Herawati 14102066
Kelas : S1 Teknik
Informatika – B
Pengertian/Konsep Buble Sort
Metode pengurutan
gelembung (Bubble Sort)
diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat
jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung
sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada
pengurutan gelembung.
Bubble sort (metode gelembung) adalah metode/algoritma
pengurutan dengan dengan cara melakukan penukaran data dengan tepat
disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi
tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah
terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan
lambat menggelembung ke posisinya yang tepat.
Kelebihan Bubble Sort
- Metode Buble Sort merupakan metode yang paling simpel
- Metode Buble Sort mudah dipahami algoritmanya
Kelemahan Bubble Sort
Meskipun simpel metode
Bubble sort merupakan metode
pengurutanyang paling tidak efisien. Kelemahan
buble sort adalah pada saat mengurutkan data yang sangat besar
akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk
cukup signifikan ketika data yang diolah jika data cukup banyak.
Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun
data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data
dibandingkan dengan setiap data yang lain untuk menentukan posisinya.
Algoritma Bubble Sort
- Membandingkan data ke-i dengan data ke-(i+1) tepat bersebelahan. Jika tidak sesuai maka tukar (data ke-i = data ke-(i+1) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritma menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (A-Z).
- Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
- Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
- Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.
Contoh:
#include
<iostream>
#include
<iomanip>
using
namespace std;
int main()
{
int data[10]={7,6,9,1,0,4,2,3,8,5};
int temp;
cout<<"Data sebelum
diurutkan \n";
for(int i=0;i<10;i++)
{
cout<<setw(4)<<data[i];
}
cout<<"\n\n";
for (int i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
if (data [j]>data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
cout << "Data setelah
diurutkan \n";
for (int i=0;i<10;i++)
{
cout<<setw(4)<<data[i];
}
}
Berikut
adalah hasil keluaran dari program diatas :
Tidak ada komentar:
Posting Komentar