Dengan menyebut nama Allah SWT yang Maha Pengasih lagi Maha Penyayang, Kami
ucapkan puja dan puji syukur atas kehadirat-Nya, yang telah melimpahkan rahmat, hidayah, dan
inayah-Nya kepada kami, sehingga kami dapat menyelesaikan makalah tentang Bubble sort &
Quick sort.
Makalah ini telah kami susun dengan maksimal dan mendapatkan bantuan dari berbagai
pihak sehingga dapat memperlancar pembuatan makalah ini. Untuk itu kami menyampaikan
banyak terima kasih kepada semua pihak yang telah berkontribusi dalam pembuatan makalah ini.
Terlepas dari semua itu, Kami menyadari sepenuhnya bahwa masih ada kekurangan baik
dari segi susunan kalimat maupun tata bahasanya. Oleh karena itu dengan tangan terbuka kami
menerima segala saran dan kritik dari pembaca agar kami dapat memperbaiki makalah ilmiah ini.
Akhir kata kami berharap semoga makalah ini dapat dipahami bagi siapapun yang
membacanya. Sekiranya, makalah yang telah disusun dapat bermanfaat untuk menambah ilmu
dan wawasan untuk kami dan orang pembacanya. Sebelumnya kami mohon maaf apabila
terdapat kesalahan kata-kata yang kurang berkenan dan kami memohon kritik dan saran yang
membangun demi perbaikan dimasa depan.
1
DAFTAR ISI
Halaman
KATA PENGANTAR.................................................................................1
DAFTAR ISI................................................................................................2
BAB I PENDAHULUAN
A. Latar Belakang ....................................................................................3
B. Rumusan Masalah...............................................................................3
C. Tujuan penulisan.................................................................................3
BAB II PEMBAHASAN
A. PENGERTIAN BUBBLE SHORT...................................................4
B. LANGKAH – LANGKAH SORTING DALAM BUBBLE SORT...4
C. MENGAPA BUBBLE SHORT TIDAK EFISISIEN........................5
D. APA PENGERTIAN QUICK SHORT..............................................5
E. BAGAIMANA CARA KERJA QUICK SHORT..............................5
BAB III PENUTUP
A. KESIMPULAN
2
BAB 1
PENDAHULUAN
A. Latar belakang
Algoritma adalah kumpulan langkah sistematis untuk memperoleh hasil yang diinginkan.
Sebelum sebuah algoritma dijalankan, biasanya ada suatu kondisi awal (initial state) yang harus
dipenuhi. Kemudian, langkah-langkah ini diproses hingga mencapai suatu kondisi akhir (final
state).Dalam aplikasinya, setiap algoritma memiliki dua buah ciri khas yang dapat digunakan
sebagai parameter pembanding, yaitu jumlah proses yang dilakukandan jumlah memori yang
digunakan untuk melakukan proses. Jumlah proses inidikenal sebagai kompleksitas waktu yang
disimbolkan dengan T(n), sedangkan jumlah memori ini dikenal sebagai kompleksitas ruang
yang disimbolkan dengan S(n). Kompleksitas waktu diukur berdasarkan jumlah proses khas
suatu algoritma, bukan berdasarkan runtime, secara nyata ketika aplikasi dilakukan. Hal ini
disebabkan oleh arsitektur komputer dan kompiler yang berbeda-beda, sehingga suatu algoritma
yang sama akan menghasilkan waktu eksekusi yang berbeda, pada komputer dan kompiler yang
berbeda.Pengurutan data (sort) adalah algoritma yang meletakkan elemen pada sebuah list atau
tabel dengan urutan tertentu. Algoritma pengurutan data saat ini telah demikian banyaknya,
mulai dari yang sederhana sampai yang kompleks. Sorting didefinisikan sebagai pengurutan
sejumlah data berdasarkan nilai kunci tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke
nilai terbesar (ascending) atau sebaliknya (descending).Algoritma Sorting termasuk salah satu
contoh yang kaya akan solusi
Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu.
Urutan objek tersebut dapat menaik (ascending) atau menurun (descending). Adanya kebutuhan
terhadap proses pengurutan memunculkan bermacam-macam metode pengurutan. Tidak ada
metode yang terbaik untuk pengurutan. Kebanyakan metode pengurutan sederhana hanya bagus
untuk volume data yang kecil tetapi lambat untuk ukuran data yang besar. Metode pengurutan
yang lebih cepat pun (seperti quick sort dan merge sort) memang bagus untuk mengurutkan data
yang banyak, tetapi tidak bagus untuk ukuran data yang sedikit karena memerlukan beban
tambahan (overhead) yang boros waktu dan memori.Di antara banyak algoritma pengurutan
terdapat Comparison Sort atau pengurutan dengan pembandingan merupakan proses pengurutan
dengan melakukan pembandingan antardata, yang kemudian diikuti dengan pertukaran data bila
tidak sesuai dengan syarat keterurutan tertentu.
B. RUMUSAN MASALAH
1. Apa pengertian Bubble sort ?
2. Bagaimana langkah – langkah sorting dalam Bubble sort ?
3. Mengapa Bubble sort tidak efisien ?
4. Apa pengertian Quick sort ?
5. Bagaimana cara kerja Quick sort ?
C. TUJUAAN PENULISAN
1. Untuk mengetahui tentang pengertian Quick sort
2. Untuk mengetahui langkah-langkah sorting dalam Bubble sort
3. Untuk mengetahui bagaimana implementasi algoritma menggunakan bahasa
pemrograman java
3
BAB 2
PEMBAHASAN
Sebelum kita masuk untuk membuat program, berikut ini adalah syarat dan langkah-
langkah yang harus diperhatikan pada metode Bubble Sort:
4
3. MENGAPA BUBBLE SORT TIDAK EFISIEN
Algoritma Bubble Sort ini mempunyai kelebihan dan kekurangan, untuk kelebihannya
metode ini merupakan metode paling sederhana untuk mengurutkan data. Selain
sederhana, algoritma Bubble Sort mudah dipahami. Sementara itu, kekurangannya
terletak pada efisiensi.
Bubble Sort ini merupakan metode pengurutan yang tidak efisien karena ketika
mengurutkan data yang sangat besar akan sangat lambat prosesnya. Selain itu, jumlah
pengulangan akan tetap sama jumlahnya meskipun data sudah cukup terurut.
5
1. PENGERTIAN QUICK SORT
Quick Sort adalah algoritma pengurutan yang sangat cepat dengan tipe penyelesaian
Divide and Conquer sehingga cocok untuk mengurutkan data dalam jumlah besar.
Algoritma Quick Sort merupakan algoritma sorting yang diperkenalkan pertama kali oleh
C.A.R. Hoare pada tahun 1960. Pada keadaan rata – rata membuat pengurutan O( n log n)
untuk mengurutkan n item. Pada kasus terburuknya, algoritma ini membuat pengurutan
O(n2).
Pada dasarnya konsep utama dari pengurutan adalah memanipulasi index dari list array
array, dengan cara menukar isi array dengan array lainnya.
Pengurutan merupakan proses dasar yang ada dalam algoritma dan stuktur data.
Terdapat banyak algoritma pengurutan yang sering digunakan, namun pada tulisan kali
ini akan dibahas mengenai dasar algoritma Bubble Sort. Algortima ini merupakan
algortima pengurutan sederhana dan biasanya dipelajari sebagai pokok bahasan seputar
pengurutan.
Algoritma Bubble Sort ini merupakan proses pengurutan yang secara berangsur-angsur
berpindah ke posisi yang tepat karena itulah dinamakan Bubble yang artinya gelembung.
Algoritma ini akan mengurutkan data dari yang terbesar ke yang terkecil (ascending)
atau sebaliknya (descending).
Secara sederhana, bisa didefenisikan algoritma Bubble Sort adalah pengurutan dengan
cara pertukaran data dengan data disebelahnya secara terus menerus sampai dalam satu
iterasi tertentu tidak ada lagi perubahan.
6
Untuk belajar algoritma Bubble Sort ini kita hanya perlu memahami cara yang
digunakan untuk mengurutkan data, sederhananya algoritma ini menggunakan
perbandingan dalam operasi antar elemennya. https://teknojurnal.com/pengertian-
algoritma-bubble-sort/
Di bawah ini merupakan gambaran dari algoritma Bubble Sort dengan array “1,3,7,6,5”.
Proses pertama
(1, 3, 7, 6, 5) menjadi (1, 3, 7, 6, 5)
(1, 3, 7, 6, 5) menjadi (1, 3, 7, 6, 5)
(1, 3, 7, 6, 5) menjadi (1, 3, 6, 7, 5)
(1, 3, 6, 7, 5) menjadi (1, 3, 6, 5, 7)
Proses kedua
(1, 3, 6, 5, 7) menjadi (1, 3, 6, 5, 7)
(1, 3, 6, 5, 7) menjadi (1, 3, 6, 5, 7)
(1, 3, 6, 5, 7) menjadi (1, 3, 5, 6, 7)
(1, 3, 5, 6, 7) menjadi (1, 3, 5, 6
package Sorting;
7
public static void main(String[] args) {
int A [] = {39,99,19,9,12,10,33};
System.out.print("Array A = ");
for (int z = 0; z < A.length; z++) {
System.out.print(A[z]+" ");
}
System.out.println();
QuickSort(A, 0, A.length-1);
System.out.println("\nSetelah diurutkan : ");
for (int z = 0; z < A.length; z++) {
System.out.print(A[z]+" ");
}
System.out.println();
}
public static void QuickSort(int []A, int lo,int hi){
if (lo < hi){
p = partition(A,lo,hi);
QuickSort(A, lo, p-1);
QuickSort(A, p+1, hi);
}
}
BAB III
PENUTUP
8
A. Kesimpulan:
Quick sort adalah algoritma sorting yang berdasarkan pembandingan dengan metode divide-
and-conqueror. Algoritma quick sort mengurutkan dengan sangat cepat, namun algoritma ini
sangat komplex dan diproses secara rekursif.
Algoritma quick sort dibedakan menjadi rekursif dan non rekursif.
Dalam algoritma quick sort, pemilihan pivot adalah hal yang menentukan apakah algoritma
quick sort tersebut akan memberikan performa terbaik atau terburuk.
Kebutuhan waktu dari quicksort bergantung pada pembuatan partisi, seimbang atau tidak,
yang bergantung juga pada elemen yang digunakan sebagai pivot. Terdapat 3 jenis
kompleksitas waktu dari quicksort kasus terburuk (worst case) Tn=O(n2), kasus terbaik (best
case) Tn= O(n log n), kasus rata-rata (average case).