MAKALAH
BUBLE SHORT
Diajukan untuk memenuhi salah satu
Tugas Mata Kuliah
Disusun Oleh :
ANGGA SETIAWAN
MUHAMMAD RIZAL FAUZY
FAHRUL RIZKY PAHREZI
UNIVERSITAS BAYANGKARA
JAKARTA RAYA
2014
KATA PENGANTAR
Segala puji bagi Allah SWT yang telah
melimpahkan rahmat dan hidayahNya, sehingga kami dapat menyelesaikan makalah
ini.
Terimakasih kami ucapkan kepada orang
tua atas doa yang selalu mengiringi kami, kepada dosen Struktur Data yang telah
memberikan judul makalah sebagai landasan kami dalam melakukan observasi, dan
tidak lupa terimakasih untuk teman-teman yang telah bekerja sama dengan baik
dalam menyelesaikan tugas makalah ini, sehingga kami bisa menyelesaikan makalah
kami yang berjudul “ BUBBLE SORT ”.
Kami
menyadari bahwa dalam menulis makalah ini masih banyak kekurangannya, oleh
sebab itu kami sangat mengharapkan kritik dan saran yang membangun. Dan semoga dengan selesainya makalah ini dapat bermanfaat
bagi pembaca dan teman-teman. Amin
Bekasi, 30 Oktober 2014
Penulis
DAFTAR
ISI
Halaman
KATA PENGANTAR ................................................................................................. i
DAFTAR ISI ....................................................................................................... ii
BAB I PENDAHULUAN .................................................................................... 1
A. Latar Belakang ............................................................................... 1
B. Tujuan ............................................................................................ 1
BAB II
PEMBAHASAN ................................................................................ 2
A. Definisi Buble Short ....................................................................... 2
B. Pengertian/ Konsep Buble Short .................................................... 2
C. Kelebihan dan Kelemahan Metode Buble Short ............................ 3
D. Algoritma dari Buble Short ............................................................ 3
E. Analisis Algoritma Buble Short ...................................................... 4
F. Implementasi dari Bentuk Flowchart ............................................ 7
G. Buble Short dalam Bahasa Program C++....................................... 9
BAB III
PENUTUP ........................................................................................ 12
A. Kesimpulan ................................................................................... 12
B. Saran ............................................................................................ 12
DAFTAR PUSTAKA ............................................................................................ 13
BAB I
PENDAHULAN
A.
Latar
Belakang
Pada tugas kali ini
yang membahas bubble Sort, antara lain:
a. Bubble
dalam bentuk algoritma adalah Proses mengurutkan, menyusun/ memindahkan posisi
elemen-elemen/ data dengan tata urut tertentu pada array.
b. Jenis
tampilan berupa Ascending/ proses menaik dan Discending/ proses menurun.
-
Ascending
Ex:
A-Z, 0-9.
-
Discending
Ex:
Z-A, 9-0.
c. Bubble
sort dalam bentuk flowchart
d. Bubble
sort ke dalam bahasa program C++
B.
Tujuan
a. Mahasiswa
dapat memahami berbagai macam algoritma pengurutan (bubble sort).
b. Mahasiswa
dapat menemukan / menentukan algoritma pengurutan dan pencarian paling cepat
dan tepat untuk suatu masalah tertentu.
BAB II
PEMBAHASAN
A.
Definisi
Bubble Sort
Teknik sort yang berkerja dengan
menggunakan prinsip gelembung (bubble) udara yang akan bergerak naik keatas
secara satu per-satu.
Prinsip kerja dari bubble sort adalah :
1. Pengecekan
mulai dari data ke satu sampai data ke-n
2. Bandingkan
data ke-n dengan data sebelumnya (n-1)
3. Jika
lebih kecil maka pindahkan bilang tersebut dengan bilang yang ada didepannya
(sebelumnya) satu persatu (n-1,n-2,n-3,….dts)
4. Jika
lebih besar maka tidak terjadi permindahan
5. Ulang
langkah 2 dan 3 s/d sort optimal.
B.
Pengertian
/ Konsep Bubble 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.
C.
Kelebihan
dan Kelemahan Metode Bubble Sort
Kelebihan :
a. Metode
Bubble Sort merupakan yang paling simple
b. Metode
Bubble Sort muda di pahami algoritmanya
Kelemahan :
Meskipun simpel metode Bubble Sort merupakan metode pengurutan yang paling tidak
efisien. Kelemahan Bubble 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.
D.
Algoritma dari Bubble Sort
a. 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 algoritme 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).
b. 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.
c. 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, dan seterusnya.
d. Proses
akan berhenti jika tidak ada pertukaran dalam satu iterasi
E.
Analisis
Algoritma Bubble Sort
Tujuan dari analisis algoritma adalah untuk mengetahui efisiensi dari algoritma. Dalam
hal ini dilakukan pembandingan antara dua atau lebih algoritma pengurutan.Tahap
analisis adalah melakukan pengecekan program untuk memastikan bahwa program
telah benar secara logika maupun sintak (tahap tracing atau debugging). Tahap
selanjutnya yaitu menjalankan program untuk mengetahui running time atau waktu
komputasi dalam hal ini termasuk jumlah langkah. Data uji yang digunakan adalah
data yang tidak terurut atau data random, terurut membesar dan terurut
mengecil.
Salah satu cara untuk
menganalisa kecepatan algoritma sorting saat running time adalah dengan
menggunakan notasi Big O. Algoritma
sorting mempunyai kompleksitas waktu terbaik, terburuk, dan
rata-rata. Dengan notasi Big O, kita
dapat mengoptimalkan penggunaan algoritma sorting. Sebagai contoh, untuk
kasus dimana jumlah masukan untuk suatu
pengurutan banyak, lebih baik digunakan algoritma sorting seperti quick sort,
merge sort, atau heap sortkarena kompleksitas waktu untuk kasuk terburuk adalah
O(n log n). Hal ini tentu akan sangat berbeda jika kita menggunakan
algoritma sorting insertion sort atau bubble sort dimana waktu yang dibutuhkan
untuk melakukan pencarian akan sangat lama. Hal ini disebabkan kompleksitas
waktu terburuk untuk algoritma sorting tersebut dengan jumlah masukan yang
banyak adalah O(n2).
Dari grafik dibawah dapat diketahui
buble sort adalah metode yang paling lambat dari yang lambat-lambat.
Contoh Proses
Pengurutan Algoritma Bubble Sort
Berikut
ini kita akan mencoba membuat sebuah
program pengurutan data atau Sorting dengan metode Bubble Sort. kita akan
memasukan 8 data yang int Data[8]={20,12,35,11,17,9,58,23}; yang tidak berurutan.
pemrogramanya, serta kita akan meghitung berapa banyak proses pertukaran posisi
data, dan berapa banyak proses perbandingan data. contoh codingnya adalah
sebagai berikut :
|
20
|
12
|
35
|
11
|
17
|
9
|
58
|
23
|
1
2 3 4
5 6 7
8
Di
metode Bubble Sort, proses pengurutan dimulai dengan membandingkan elemen
pertama untuk mendapatkan angka terbesar. Lalu angka tersebut ditempatkan pada
elemen terakhir.Sebagai langkah awal, isi elemen pertama dibandingkan dengan
elemen ke-2. Jika isi elemen ke-2 lebih kecil dari elemen pertama, maka isi
kedua elemen tersebut ditukar. Sehingga isi array berubah menjadi :
12
|
20
|
35
|
11
|
17
|
9
|
58
|
23
|
|
1
2 3 4
5 5 7
8
Lalu
elemen ke-2 dibandingkan dengan elemen ke-3. jika isi elemen ke-3 lebih besar,
maka isi kedua elemen tersebut tidak ditukar.
12
|
20
|
35
|
11
|
17
|
9
|
58
|
23
|
|
|
Perbandingan
selanjutnya dilakukan terhadap elemen ke-3 dengan ke-4. Karena elemen ke-4
lebih kecil, maka isi kedua elemen tersebut ditukar. Sehingga isi array
sebelumnya berubah menjadi :
12
|
20
|
11
|
35
|
17
|
9
|
58
|
23
|
1
2 3 4
5 6 7
8
Proses
perbandingan seperti diatas dilakukan secara berulang sampai pada elemen terakhir.
Sehingga pada akhirnya akan dihasilkan bilangan terbesar yang ditempatkan pada
posisi elemen terakhir. Dibawah ini kondisi array setelah perbandingan elemen
terakhir.
12
|
20
|
11
|
17
|
9
|
35
|
23
|
58
|
1
2 3 4
5 6 7
8
Proses
diatas hanya mencari bilangan terbesar pertama. Ulangi proses tersebut untuk
mencari bilangan terbesar lainnya setelah bilangan terbesar pertama tadi. Namun
proses perbandingan hanya dilakukan mulai dari elemen pertama sampai elemen
ke-7.
Isi
elemen pertama dibandingkan dengan elemen ke-2. Karena isi elemen ke-2 lebih
besar, maka isi kedua elemen tersebut tidak ditukar. Kemudian elemen ke-2,
dibandingkan dengan elemen ke-3. Karena elemen ke-3 lebih kecil, maka isi kedua
elemen tersebut ditukar sehingga isi array menjadi :
12
|
11
|
20
|
17
|
9
|
35
|
23
|
58
|
1
2 3 4
5 6 7
8
|
||||
Lanjutkan
proses diatas sampai pada elemen ke-7. Hasilnya isi array menjadi.
12
|
11
|
20
|
17
|
9
|
23
|
35
|
58
|
|
1
2 3 4
5 6 7
8
Kini
isi elemen ke-7 dan ke-8 sudah urut berdasarkan bilangan kecil ke besar. Namun
elemen lainnya belum terurut. Untuk itu ulangi proses diatas, namun elemen yang
dibandingkan hanya sampai pada elemen ke-6 saja. Setelah itu, proses
perbadingan diulangi lagi sampai elemen terakhir yang dibandingkan yaitu elemen
ke-2. Hasil akhirnya menjadi :
9
|
11
|
12
|
17
|
20
|
23
|
35
|
58
|
1
2
3 4 5
6 7 8
F.
Implementasi
dalam Bentuk Flowchart
Seperti telah
dijelaskan sebelumnya, proses pengurutan memakai variabel array untuk menampung
semua bilangan yang akan diurutkan. Oleh karena itu sebelum proses pengurutan
dilakukan, terlebih dahulu dibuat proses untuk mengisi semua bilangan ke dalam
array.
Setelah array tersebut
terisi, barulah proses pengurutan dilakukan untuk mengurutkan isinya. Seperti
diketahui, jika salah satu elemen array di isi dengan nilai baru, maka nilai
lama akan terhapus. Oleh sebab itu untuk mempertukarkan isi elemen array harus
mengggunakan satu variabel cadangan. Variabel ini digunakan untuk menyimpan isi
array yang akan ditukar.
9
|
11
|
12
|
17
|
20
|
23
|
35
|
58
|
|
1 2
3 4 5
6 7 8
Misalnya
isi elemen ke-2 dari variabel BILARR akan ditukar dengan elemen ke-3. Maka isi
elemen ke-2 disimpan terlebih dahulu ke variabel cadangan (misalnya untuk
variabel ini diberi nama TEMP). Setelah itu, isi elemen ke-3 dipindahkan ke
elemen ke-2, lalu isi dari variabel TEMP dipindahkan ke elemen ke-3. Ilustrasi
dibawah ini memperlihatkan pertukaran kedua elemen tersebut.
11
|
9
|
11
|
12
|
17
|
20
|
23
|
35
|
58
|
1
2 3 4
5 6 7
8
Proses tersebut dapat dituliskan sebagai
berikut :
TEMP = BILARR (2)
BILARR(2) = BILARR (3)
BILARR(3) = TEMP
Dari
proses yang telah dijelaskan, pengurutan bilangan dari kecil ke besar dengan
metode bubble sort dapat digambarkan melalui flowchart seperti berikut :
1.
G.
Bubble
Sort dalam Bahasa Program C++
#include
<iostream.h>
#include
<conio.h>
main()
{
int i,j,n,data[10],simpan,k;
cout<<"\tBUBBLE SORT
MENGGUNAKAN C++"<<endl;
cout<<"\t============================"<<endl;
cout<<"\nmasukkan banyak data=
";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"data
"<<i<<" = ";cin>>data[i];
}
cout<<"awal = ";
for(i=1;i<=n;i++)
cout<<data[i]<<" ";
cout<<endl;
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(data[j]>data[j+1])
{
simpan=data[j];
data[j]=data[j+1];
data[j+1]=simpan;
}
}
}
cout<<"hasil= ";
for(i=1;i<=n;i++)
cout<<data[i]<<" ";
getch();
}
Output Hasil program C ++
BAB III
PENUNTUP
A.
Kesimpulan
Algoritma Bubble Sort
adalah algoritma yang simpel dan mudah dipelajari, selain itu memiliki definisi
terurut yang jelas dalam algoritmanya. Algoritma ini juga memiliki ciri khas,
yaitu “kura-kura dan kelinci”. Akan tetapi, algoritma BubbleSort memiliki
kelemahan, yaitu kompleksitas algoritma pada saat mengurutkan data yang sangat
besar akan mengalami kelambatan luar biasa, sehingga menjadikan algoritma ini
tidak efektif dalam pengurutan.
B.
Saran
Apabila di dalam makalah ini terdapat
kata-kata yang salah ataupun kurang tepat, kritik dan saran dari pembaca yang
bersifat membagun sangat kami harapkan untuk kesempurnaan makalah ini. Akhir kata semoga makalah ini bermanfaat bagi
para pembaca sekalian.
DAFTAR
PUSTAKA
id.scribd.com
No comments:
Post a Comment
Official Virgozta