Anda di halaman 1dari 9

KATA PENGANTAR

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

1. PENGERTIAN BUBBLE SORT


Bubble Sort Algoritma Bubble Sort merupakan proses pengurutan yang secara
berangsur-angsur memindahkan data ke posisi yang tepat. Karena itulah, algoritma ini
dinamakan “bubble” atau yang jika diterjemahkan ke dalam Bahasa Indonesia,artinya
untuk mengurutkan data dari yang terkecil ke yang terbesar (ascending) atau sebaliknya
(descending). Metode pengurutan gelembung (Bubble Sort) ini terinspirasi oleh
gelembung sabun yang berada di permukaan air. Karena berat jenis gelembung sabun
yang lebih ringan ketimbang berat jenis air, maka gelembung sabun akan selalu terapung
ke atas permukaan. Prinsip inilah yang dipakai pada algoritma pengurutan gelembung.
Secara sederhana, bisa didefinisikan bahwa algoritma Bubble Sort adalah pengurutan
dengan cara pertukaran data dengan data di sebelahnya secara terus menerus sampai pada
satu iterasi tertentu dimana tidak ada lagi perubahan yang signifikan.

Sebelum kita masuk untuk membuat program, berikut ini adalah syarat dan langkah-
langkah yang harus diperhatikan pada metode Bubble Sort:

1. Jumlah iterasi sama dengan banyaknya bilangan dikurang


2. Di setiap iterasi, jumlah pertukaran bilangannyadengan jumlah banyaknya bilangan.
3. Dalam algoritma Bubble Sort, meskipun deretan bilangan tersebut sudah terurut,
proses sorting akan tetap dilakukan.
4. Tidak ada perbedaan cara yang berarti untuk teknik algoritma Bubble Sort Ascending
dan Descending. Dalam algoritma Bubble Sort ini, perlu dipahami cara yang
digunakan untuk mengurutkandata.

2. LANGKAH – LANGKAH SORTING DALAM BUBBLE SORT


Langkah-langkah sorting dalam Bubble Sort Algoritma Bubble Sort menyelesaikan
masalah pengurutan data dengan cara membandingkan setiap pasangan data dimulai dari data
pertama dan data kedua sampai pasangan data yang terakhir. Untuk pengurutan data dari nilai
kecil ke besar, jika data pertama lebih besar dari data kedua maka dilakukan pertukaran
tempat. Untuk pengurutan data dari nilai besar ke kecil, jika data pertama lebih kecil dari data
kedua maka dilakukan pertukaran tempat. Algoritma bubble sort adalah salah satu algoritma
pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari
algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan
menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang
hingga tidak perlu dilakukan penukaran lagi. Contoh: “4 2 5 3 9”. Proses yang akan terjadi
apabila digunakan algoritma bubble sort adalah sebagai berikut.
pertama (4 2 5 3 9) menjadi (2 4 5 3 9) (2 4 5 3 9) menjadi (2 4 5 3 9) (2 4 5 3 9) menjadi (2 4
3 5 9) (2 4 3 5 9) menjadi (2 4 3 5 9)kedua (2 4 3 5 9) menjadi (2 4 3 5 9) (2 4 3 5 9) menjadi
(2 3 4 5 9) (2 3 4 5 9) menjadi (2 3 4 5 9) (2 3 4 5 9) menjadi (2 3 4 5 9)
ketiga (2 3 4 5 9) menjadi (2 3 4 5 9) (2 3 4 5 9) menjadi (2 3 4 5 9) (2 3 4 5 9) menjadi (2 3 4
5 9) (2 3 4 5 9) menjadi (2 3 4 5 9)

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.

4. APA PENGERTIAN QUICK SORT ?


Quicksort merupakan Algoritma Sorting yang dikembangkan oleh Tony Hoare yang,
secara kasus rata-rata, membuat pengurutan O(n log n) untuk mengurutkan n item.
Algoritma ini juga dikenal sebagai Partition-Exchange Sort atau disebut sebagai Sorting
Pergantian Pembagi. Pada kasus terburuknya, algoritma ini membuat perbandingan
O(n2), malaupun kejadian seperti ini sangat langka. Quicksort sering lebih cepat dalam
praktiknya dari pada algoritma O(n log n) yang lainnya. Dan juga, urutan dan referensi
lokalisasi memori quicksort bekerja lebih baik dengan menggunakan cache CPU, jadi
keseluruhan sorting dapat dilakukan hanya dengan ruang tambahan O(log n).
5. BAGAIMANA CARA KERJA QUICK SORT ?
Cara kerja quick sort adalah dengan membandingkan suatu elemen (disebutjuga pivot)
dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga
elemen‐elemen lainnya yang lebih kecildaripada pivot tersebut terletak disebelahkirinya
dan elemen‐elemen lain yang lebih besardaripada pivot terletak disebelahkanannya.
Dengan demikian telah terbentuk dua sublist, yang terletak di sebelah kiridan kanan dari
pivot. Lalu pada sublist kiri dan sublist kanan anggap sebuah list barudan kerjakan proses
yang sama seperti sebelumnya. Demikian seterusnya sampaitidak terdapat sublist lagi.
Sehingga didalamnya terjadi sebuah proses rekursif.
Ide dari algoritma ini adalah sebagai berikut:

1. Pilih satu elemen secara acak sebagai pivot.


2. Pindahka semua elemen yang lebih kecil ke sebelah kiri pivot dan semua elemen
yanglebih besar ke sebelah kanan pivot. Elemen yang nilainya sama bisa disimpan di
salahsatunya.
3. Lakukan sort secara rekursif terhadap sub-array sebelah kiri dan kanan pivot.
Kasus dasar dari rekusrif ialah list dari besaran nol atau satu, yang tidak perlu untuk di
sorting.

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).

2. LANGKAH-LANGKAH SORTING DALAM BUBBLE SORT


Dibawah ini saya punya codingan sederhana implementasi dari bubble sort
dengan bahasa C++. Dan semoga dengan pendekatan cara ini dapat lebih memudahkan
kita dalam memahami konsep fundamental bubble sort, karena satu-satunya power dari
seorang programmer ditengah-tengah cepatnya perkembangan teknologi digital adalah
“kemampuan fundamental algoritma dan struktur data”.

Pada dasarnya konsep utama dari pengurutan adalah memanipulasi index dari list array
array, dengan cara menukar isi array dengan array lainnya.

Mehami Konsep Bubble Sort

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

void main { clrscr(); int i,j,x,n,a[50]; cout<<”Masukkan batas index array”<<endl;


cin>>n; cout<<”Masukkan elemen array”<<endl; for(i=0;i<n;i++){ cin>>a[i];
for(j=0;j<n;j++){ for(i=0;i<n-1;i++){ if(a[i]>a[i+1]){ x=a[i+1]; a[i+1]=a[i]; a[i]=x; } } }
cout<<”Hasil :”<<endl; for(i=0;i<n;i++){ cout<<a[i]; cout<<endl; } }

Penjelesan Koding Bubble Sort secara Step by Step

IMPLEMENTASI ALGORITMA MENGGUNAKAN BAHASA


PEMROGRAMAN JAVA
Implementasi algoritma Quick Sort pada java :

package Sorting;

public class QuickSort {


public static int i,p,pivot;

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);

}
}

public static int partition(int [] A, int lo, int hi){


pivot = A[hi];
i = lo;
int j;
for (j = lo; j <= hi-1; j++){
if (A[j] <= pivot){
int temp = A[i];
A[i] = A[j];
A[j] = temp;
i = i+1;
}
}
int tp = A[i];
A[i] = A[hi];
A[hi] = tp;
return i;
}
}

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).

Anda mungkin juga menyukai