ALGORTIMA BUBBLE SORT & QUICK SORT
A. Pengertian
Bubble sort
1.
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. Metode Buble Sort merupakan metode yang paling simpelMetode
Buble Sort mudah dipahami algoritmanyaKelemahan 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.
2.
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 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).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.
3.
Contoh Kasus Bubble Sort
Misalkan kita punya data seperti ini:
6, 4, 3, 2 dan kita ingin mengurutkan data ini (ascending) dengan menggunakan
bubble sort. Berikut ini adalah proses yang terjadi:
a. Iterasi
ke-1: 4, 6, 3, 2 :: 4, 3, 6, 2 :: 4, 3, 2, 6 (ada 3 pertukaran)
b. Iterasi
ke-2: 3, 4, 2, 6 :: 3, 2, 4, 6 :: 3, 2, 4, 6 (ada 2 pertukaran)
c. Iterasi
ke-3: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 1 pertukaran)
d. Iterasi
ke-4: 2, 3, 4, 6 :: 2, 3, 4, 6 :: 2, 3, 4, 6 (ada 0 pertukaran) -> proses
selesai
B. Pengertian
Quick Sort
Quick Sort merupakan suatu algoritma
pengurutan data yang menggunakan teknik pemecahan data menjadi partisi-partisi,
sehingga metode ini disebut juga dengan nama partition exchange sort. Untuk
memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data, kemudian elemen-elemen data akan diurutkan
diatur sedemikian rupa.
Algoritma ini mengambil salah satu
elemen secara acak (biasanya dari tengah) yang disebut dengan pivot lalu
menyimpan semua elemen yang lebih kecil di sebelah kiri pivot dan semua elemen
yang lebih besar di sebelah kanan pivot. Hal ini dilakukan secara rekursif
terhadap elemen di sebelah kiri dan kanannya sampai semua elemen sudah terurut.
1. Keunggulan
Quick sort:
Secara umum memiliki kompleksitas O(n
log n), Algoritmanya sederhana dan mudah diterapkan pada berbagai bahasa
pemrograman dan arsitektur mesin secara efisien.
Dalam prakteknya adalah yang tercepat
dari berbagai algoritma pengurutan dengan perbandingan, seperti mergesort dan
heapsort.
2. Kelemahan
Quick sort
Sedikit kesalahan dalam penulisan
program membuatnya bekerja tidak beraturan (hasilnya tidak benar atau tidak
pernah selesai). Memiliki ketergantungan terhadap data yang dimasukkan, yang
dalam kasus terburuk memiliki kompleksitas O(n2). Secara umum bersifat tidak
stable, yaitu mengubah urutan input dalam hasil akhirnya (dalam hal inputnya
bernilai sama).
3. Contoh
kasus Quick sort
Data = 9 4 2 7 10 1 5
a. langkah
pertama adalah tentukan pivotnya. dalam hal ini adalah saya memilih angka 7.
L1 : 9 4 2 7 10 1 5
b. kemudian
buatpartisi buat masing2 angka sebelah kanan dan kiri
L2 : 9 4 2 7 10 1 5
c. kemudian
gunakan algoritma quicksort yang ada diatas. jika angka lebih kecil dari pivot
maka akan diletakan sebelah kiri dan jika lebih besar maka letakan disebelah
kanan. langkah pertama adalah bandingkan angka 9 dengan pivot apakah lebih
kecil atau lebih besar
L3 : 9 4 2 7 10 1 5
d.
karena angka 9 lebih besar
maka letakan angka 9 setelah pivot.
L4 : 7 4
2 9 10 1 5
e. lanjut
ke angka 4. bandingkan angka 4 dengan pivot.
L5 : 7
4 2 9
10 1 5
f.
lanjut ke angka 2. cek apakah angka 2
lebih kecil atau lebih besar dari pivot.
Data : 7 4
2 9 10
1 5
C.
Contoh pemrogramaan Quick sort C++
Hasil
running :
D.
Contoh Program bubble sort C++
Hasil
running:
note : untuk Program C++ nya, nanti saya update lagi.
Terimakasih
Terimakasih
Daftar
Pustaka
http://www.faqih.org/algoritma-bubble-sort-quick-sort/
http://onophp.blogspot.com/2018/11/quick-sort-pengertian-agoritma-dan.html
http://onophp.blogspot.com/2018/11/quick-sort-pengertian-agoritma-dan.html
Ridho
Ramadhan
1801301095
2c