Anda di halaman 1dari 29

NAMA : ZULFIKAR ALI OSMAN ALHAMID

NIM : 20170801196
TUGAS : Karya Tulis (Desain Analisa Dan Algoritma)
BAB I
PENDAHULUAN
1.1 Latar Belakang
Teknologi semakin hari semakin berkembang.Tidak bisa di pungkiri
lagi,teknologi sudah mengambil sebagian besar peran dalam kehidupan,salah
satunya peran dalam peyampaian informasi. Kemajuan teknologi juga berdampak
pada kebutuhan informasi yang semakin meningkat di masyarakat.Oleh karena
itu,dibutuhkan kecepatan dan ketepatan dalam penyampaian informasi,hal ini
menyebabkan para programmer dituntut berpikir cepat untuk mengembangkan
program-program yang mendukung kemajuan teknologi tersebut.

Salah satu contoh peran teknologi dalam penyampaian informasi adalah


dalam bidang Statistika,misalnya dalam hal pengurutan data(sorting),para
programmer membuat sebuah program yang mampu mengurutkan sejumlah data
yang besar dalam waktu cepat,tentu ini akan menghemat waktu,biaya,dan tentunya
menyebabkan informasi jauh lebih cepat diterima.
Berdasarkan hal-hal yang sudah dipaparkan diatas,maka dalam makalah ini
akan dibahas lebih detail tentang proses pengurutan data(sorting) dan perannya
dalam kehidupan sehari-hari.

1.2 Rumusan Masalah


1.2.1 Apa saja perbedaan Bubble sort, Marge sort, dan Quick sort ?
1.2.2 Apa saja metode-metode Sorting yang ada ?
1.2.3 Metode Sorting apa yang paling efektif ?
1.2.4 Apa contoh manfaat program sorting dalam kehidupan sehari-hari ?

1.3 Tujuan Penulisan


1.3.1 Untuk mengetahui perbedaan Bubble sort, Marge sort, dan Quick sort
1.3.2 Untuk mengetahui Metode-Metode Sorting yang ada.
1.3.3 Untuk mengetahui Metode apa yang paling efektif.
1.3.4 Untuk mengetahui manfaat program sorting dalam kehidupan sehari-hari
BAB II
LANDASAN TEORI
2.1 Dasar Pengurutan
Sebelum banyak metode sorting muncul seperti saat ini,pada dasarnya
metode sorting dibagi menjadi dua,yaitu Metode Ascending dan Metode
Descending.

2.1.1 Metode Ascending


Pengurutan Ascending adalah metode pengurutan data yang dimulai
dari data terkecil sampai data terbesar.
Contoh=> Sebelum diurut : 4,2,5,1,3.
Sesudah diurut: 1,2,3,4,5.
2.1.2 Metode Descending
Pengurutan Descending adalah metode pengurutan data yang dimulai
dari data terbesar sampai data terkecil
Contoh=> Sebelum diurut : 4,2,5,1,3.
Sesudah diurut: 5,4,3,2,1.

BAB III
PEMBAHASAN

Pengertian Sorting sort


Sorting Sort adalah proses pengurutan data yang sebelumnya disusun
secara acak sehingga menjadi tersusun secara teratur menurut
suatu aturan tertentu.
Pada umumnya terdapat 2 cara pengurutan data yaitu
– Ascending : Pengurutan dilakukan mulai dari nilai terkecil menuju
nilai terbesar
– Descending: Pengurutan dilakukan mulai dari nilai terbesar menuju
nilai terkecil
Ada beberapa macem metoda pengurutan data diantaranya :
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
@. Bubble Sort

pengertian bubble sort


Bubble sort adalah sederhana algoritma sorting. It works by repeatedly
stepping through the list to be sorted, comparing two items at a
time and swapping them if they are in the wrong order. Bekerja
dengan berulang kali melakukan melalui daftar akan di sortir,
membandingkan dua item sekaligus dan swapping mereka jika
mereka berada di salah pesanan. The pass through the list is
repeated until no swaps are needed, which indicates that the list
is sorted. Yang melewati daftar diulang sampai swap tidak
diperlukan, yang menunjukkan bahwa daftar disaring. The
algorithm gets its name from the way smaller elements "bubble"
to the top of the list. Algoritma yang mendapatkan namanya
dari jalan kecil elemen "gelembung" ke bagian atas daftar.
Because it only uses comparisons to operate on elements, it is a
comparison sort . Karena hanya menggunakan perbandingan
untuk beroperasi pada elemen, ia adalah perbandingan
menyortir.

Bubble sort-kasus yang terburuk dan rata-rata kompleksitas kedua О


(n ²), dimana n adalah jumlah item yang disortir. There exist
many sorting algorithms with the substantially better worst-case
or average complexity of O ( n log n ). Di sana ada banyak
algoritma sorting dengan lebih baik substansial terburuk-kasus
atau rata-rata kompleksitas O (n log n). Therefore bubble sort is
not a practical sorting algorithm when n is large, except in rare
specific applications where the array is known to be very close
to being already sorted initially. Oleh karena itu gelembung
menyortir tidak praktis algoritma sorting ketika n adalah besar,
kecuali di langka di mana aplikasi spesifik deret diketahui
sangat dekat dengan yang telah disortir awalnya.

Langkah-langkah oleh-contoh

Let us take the array of numbers "5 1 4 2 8", and sort the array from
lowest number to greatest number using bubble sort algorithm.
Mari kita nomor yang deret "5 1 4 2 8", dan menyusun deret
dari terendah ke nomor terbesar nomor menggunakan
gelembung sort Algoritma. In each step, elements written in
bold are being compared. Dalam setiap langkah, unsur-unsur
yang ditulis dalam huruf tebal sedang dibandingkan.

First Pass: Pertama Pass:


( 5 1 4 2 8 ) (5 1 4 2 8) \ untuk ( 1 5 4 2 8 ) Here, algorithm compares
the first two elements, and swaps them. (1 5 4 2 8) Di sini,
Algoritma membandingkan dua elemen pertama, dan mereka
swap.
( 1 5 4 2 8 ) (1 5 4 2 8) \ untuk ( 1 4 5 2 8 ) (1 4 5 2 8)
( 1 4 5 2 8 ) (1 4 5 2 8) \ untuk ( 1 4 2 5 8 ) (1 4 2 5 8)
( 1 4 2 5 8 ) (1 4 2 5 8) \ untuk ( 1 4 2 5 8 ) Now, since these elements
are already in order, algorithm does not swap them. (1 4 2 5 8)
Sekarang, sejak elemen ini sudah dalam rangka, algoritma tidak
swap mereka.
Second Pass: Kedua Pass:
( 1 4 2 5 8 ) (1 4 2 5 8) \ untuk ( 1 4 2 5 8 ) (1 4 2 5 8)
( 1 4 2 5 8 ) (1 4 2 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
Now, the array is already sorted, but our algorithm does not know if it
is completed. Kini, deret sudah disortir, tetapi kami tidak
Algoritma tahu jika sudah selesai. Algorithm needs one whole
pass without any swap to know it is sorted. Algoritma satu
kebutuhan seluruh lulus tanpa swap untuk mengetahui itu
disortir.
Third Pass: Ketiga Pass:
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
( 1 2 4 5 8 ) (1 2 4 5 8) \ untuk ( 1 2 4 5 8 ) (1 2 4 5 8)
Finally, the array is sorted, and the algorithm can terminate. Akhirnya,
deret disaring, dan algoritma dapat menghentikan.

[ edit ] Pseudocode implementation [Sunting] Pseudocode


pelaksanaan

A simple way to express bubble sort in pseudocode is as follows: Cara


mudah untuk menyortir ekspres gelembung di pseudocode
adalah sebagai berikut:

procedure bubbleSort( A : list of sortable items ) defined as: do


swapped := false for each i in 0 to length( A ) - 1 do: if A[ i ] >
A[ i + 1 ] then swap( A[ i ], A[ i + 1 ] ) swapped := true end if
end for while swapped end procedure

The algorithm can also be expressed as: Algoritma yang juga dapat
dinyatakan sebagai:

procedure bubbleSort( A : list of sortable items ) defined as: for each i


in 1 to length(A) do: for each j in length(A) downto i + 1 do: if
A[ j - 1 ] > A[ j ] then swap( A[ j - 1], A[ j ] ) end if end for end
for end procedure
The difference between this and the first pseudocode implementation
is discussed later in the article . Perbedaan antara ini dan
pertama pelaksanaan pseudocode dibahas dalam artikel nanti.

[ edit ] Alternative implementations [Sunting] Alternatif implementasi

One way to optimize bubblesort is to note that, after each pass, the
largest element will always move down to the end. Salah satu
cara untuk mengoptimalkan bubblesort adalah untuk dicatat
bahwa, masing-masing setelah lulus, terbesar elemen akan
selalu berpindah ke akhir. During each comparison, it is clear
that the largest element will move downwards. Selama setiap
perbandingan, jelas bahwa unsur terbesar akan berpindah ke
bawah. Given a list of size n , the n th element will be
guaranteed to be in its proper place. Mengingat daftar ukuran n,
n th elemen yang akan dijamin untuk berada di tempat yang
tepat. Thus it suffices to sort the remaining n - 1 elements. Oleh
karena itu cukup untuk memilah sisa n - 1 elemen. Again, after
this pass, the n - 1 th element will be in its final place. Sekali
lagi, setelah lulus ini, yang n - 1 th elemen akan di tempat yang
terakhir.

Metode Bubble Sort


Perhatikan bahwa jumlah pertukaran dan perbandingan data tidaklah
tetap, perbedaan tergantung pada keadaan awal data setelah
diacak. Tabel berikut memperlihatkan tabulasi hasil visualisasi
menggunakan metode bubble sort.
Pengacakan Jumlah Total
Pertukaran Data Perbandingan Data
1 155 279
2 127 272
3 137 245
4 142 297
5 151 294
6 138 285
7 178 300
8 165 272
9 156 285
10 175 300
Rata-rata 152 283
Jumlah rata-rata pertukaran untuk 10 kali pengacakan adalah 152 kali,
sedangkan rata-rata jumlah perbandingan adalah sebanyak 283
kali. Tetapi bila data pada awalnya terurut, maka untuk 25
jumlah data, jumlah pertukaran data sebanyak 0 kali dengan
jumlah perbandingan sebanyak 24 kali.

contoh program
#include
#define MAX_LINE 1024

void discardnewline(char s[])


{
int i;
for(i = 0; s[i] != ”; i++)
{
if(s[i] == ‘\n’)
s[i] = ”;
}
}

int reverse(char s[])


{
char ch;
int i, j;

for(j = 0; s[j] != ”; j++)


{
}

–j;

for(i = 0; i 0)
{
discardnewline(line);
reverse(line);
printf(”%s\n”, line);
}
return 0;
}

@. Selection Sort

Pengertian tentang selection sort adalah Algoritma insertion sort pada


dasarnya memilah data yang akan diurutkan menjadi dua
bagian, yang belum diurutkan (meja pertama), dan yang telah
diurutkan (meja kedua). Elemen pertama yang diambil dari
bagian array yang belum diurutkan dan kemudian diletakkan
pada posisinya sesuai dengan bagian lain dari array yang telah
diurutkan. langkah ini dilakukan secara berulang hingga tidak
ada lagi elemen yang tersisa pada bagian array yang belum
diurutkan.

SOURCE CODE
void insertsort (int x[], int n)
{
int i, k, y
for (k=1, ky=x [k];
for (i=k-1;i>=0&&y
x[i+1]=y;
}
}

@. Insertion Sort

Pengertian Insertion Sort adalah Algoritma insertion sort pada


dasarnya memilah data yang akan diurutkan menjadi dua
bagian, yang belum diurutkan (meja pertama), dan yang telah
diurutkan (meja kedua). Elemen pertama yang diambil dari
bagian array yang belum diurutkan dan kemudian diletakkan
pada posisinya sesuai dengan bagian lain dari array yang telah
diurutkan. langkah ini dilakukan secara berulang hingga tidak
ada lagi elemen yang tersisa pada bagian array yang belum
diurutkan.
SOURCE CODE
void insertsort (int x[], int n)
{
int i, k, y
for (k=1, k
y=x [k];
for (i=k-1;i>=0&&y
x[i+1]=y;
}
}

@. Merge Sort
Pengertian Merge Sort adalah algoritma yang dijalankan sebagai
akibat dari terlalu banyaknya daftar yang diurutkan, dengan
menghasilkan lebih banyak daftar yang diurutkan sebagai
output. Algoritma merge ini disesuaikan untuk mesin drive tape.
Penggunaannya dalam akses memori acak besar yang terkait
telah menurun, karena banyak aplikasi algoritma merge yang
mempunyai alternatif lebih cepat ketika kamu memiliki akses
memori acak yang menjaga semua data. Hal ini disebabkan
algoritma ini membutuhkan setidaknya ruang atau memori dua
kali lebih besar karena dilakukan secara rekursif dan memakai
dua tabel.
Algoritma merge sort membagi tabel menjadi dua tabel yang sama
besar. Masing-masing tabel diurutkan secara rekursif, dan
kemudian digabungkan kembali untuk membentuk tabel yang
terurut. Implementasi dasar dari algoritma merge sort memakai
tiga buah tabel, dua untuk menyimpan elemen dari tabel yang
telah di bagi dua dan satu untuk menyimpan elemen yang telah
terurut. Namun algoritma ini dapat juga dilakukan langsung
pada dua tabel, sehingga menghemat ruang atau memori yang
dibutuhkan.
Algoritma Merge umumnya memiliki satu set pointer p0..n yang
menunjuk suatu posisi di dalam satu set daftar L0..n . Pada
awalnya mereka menunjuk item yang pertama pada setiap
daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti
pada akhirnya:
1.Melakukan sesuatu dengan data item yang menunjuk daftar mereka
masing-masing.
2.Menemukan pointers points untuk item dengan kunci yang paling
rendah; membantu salah satu pointer untuk item yang
berikutnya dalam daftar.

Pada umumnya algoritma merge berjalan dalam waktu proposional


untuk penjumlahan pada panjangnya daftar; Algoritma merge
beroperasi pada bilangan besar dalam daftar yang akan segera
mengalikan penjumlahan panjangnya daftar pada saat itu untuk
keluaran gambar pointers points yang mana menunjuk pada
item yang paling rendah, yang dapat terpengaruhi dengan suatu
heap(tumpukan) yang didasarkan prioritas antrian dalam O(lg
n) waktu, untuk O(m lg n) waktu (dimana n adalah bilangan
pada daftar yang digabungkan, m adalah penjumlahan
panjangnya daftar, dan lg adalah log basis 2). Ketika
menggabungkan panjang m dua daftar, terdapat suatu
perbandingan lompatan yang lebih rendah 2m-1 yang ada dalam
kasus terburuk.
Keluaran data item Merge klasik (satu yang digunakan dalam merge
sort) dengan kunci yang paling rendah pada langkah masing-
masing, memberikan beberapa daftar yang diurutkan, hasil
daftar yang diurutkan berisi semua unsur-unsur di dalam daftar
input manapun, dan hal itu dilakukan agar waktunya
proporsioal untuk input penjumlahan panjangnya daftar.
B.Contoh Algoritma Merge Sort
Ide algoritma ini hampir mirip dengan QuickSort, yaitu melakukan
partisi. Kecuali bahwa algoritma ini melakukan partisi tanpa
kriteria. Jadi, data set (X[l] ... X[r]) di partisi langsung ke dua
sub data set dengan jumlah data yang sama (X[l] ... X[(l+r)/2],
dan X[(l+r)/2+1] ... X[r]).
Lalu secara rekursif melakukan Merge Sort untuk masing-masing data
set. Karena kedua data set itu bisa overlapping (tidak seperti
pada Quick Sort) maka setelah kedua sub data set terurut masih
memerlukan proses penggabungan (Merging). Merging ini
memerlukan ruang tambahan yaitu suatu array yang sama
panjangnya dengan panjang kedua sub set untuk menyimpan
hasilnya.
Untuk Merge Sort dalam beberapa bahasa pemrograman yang ada
pada saat ini untuk listing programnya hampir sama. Berikut ini
merupakan salah satu contoh Listing Program yang biasa
digunakan.

Contoh:
void MergeSort(int l,int r) {
if (l <>
MergeSort(l,(l+r)/2);
MergeSort((l+r)/2,r);
Merging();
}
}
@. Quick Sort
Pengerian Quick Sort adalah algoritma yang dijalankan sebagai akibat
dari terlalu banyaknya daftar yang diurutkan, dengan
menghasilkan lebih banyak daftar yang diurutkan sebagai
output. Algoritma merge ini disesuaikan untuk mesin drive tape.
Penggunaannya dalam akses memori acak besar yang terkait
telah menurun, karena banyak aplikasi algoritma merge yang
mempunyai alternatif lebih cepat ketika kamu memiliki akses
memori acak yang menjaga semua data. Hal ini disebabkan
algoritma ini membutuhkan setidaknya ruang atau memori dua
kali lebih besar karena dilakukan secara rekursif dan memakai
dua tabel.
Algoritma merge sort membagi tabel menjadi dua tabel yang sama
besar. Masing-masing tabel diurutkan secara rekursif, dan
kemudian digabungkan kembali untuk membentuk tabel yang
terurut. Implementasi dasar dari algoritma merge sort memakai
tiga buah tabel, dua untuk menyimpan elemen dari tabel yang
telah di bagi dua dan satu untuk menyimpan elemen yang telah
terurut. Namun algoritma ini dapat juga dilakukan langsung
pada dua tabel, sehingga menghemat ruang atau memori yang
dibutuhkan.
Algoritma Merge umumnya memiliki satu set pointer p0..n yang
menunjuk suatu posisi di dalam satu set daftar L0..n . Pada
awalnya mereka menunjuk item yang pertama pada setiap
daftar. Algoritmanya sebagai berikut:
Selama p0..n masih menunjuk data yang di dalam sebagai pengganti
pada akhirnya:
1.Melakukan sesuatu dengan data item yang menunjuk daftar mereka
masing-masing.
2.Menemukan pointers points untuk item dengan kunci yang paling
rendah; membantu salah satu pointer untuk item yang
berikutnya dalam daftar.

Pada umumnya algoritma merge berjalan dalam waktu proposional


untuk penjumlahan pada panjangnya daftar; Algoritma merge
beroperasi pada bilangan besar dalam daftar yang akan segera
mengalikan penjumlahan panjangnya daftar pada saat itu untuk
keluaran gambar pointers points yang mana menunjuk pada
item yang paling rendah, yang dapat terpengaruhi dengan suatu
heap(tumpukan) yang didasarkan prioritas antrian dalam O(lg
n) waktu, untuk O(m lg n) waktu (dimana n adalah bilangan
pada daftar yang digabungkan, m adalah penjumlahan
panjangnya daftar, dan lg adalah log basis 2). Ketika
menggabungkan panjang m dua daftar, terdapat suatu
perbandingan lompatan yang lebih rendah 2m-1 yang ada dalam
kasus terburuk.
Keluaran data item Merge klasik (satu yang digunakan dalam merge
sort) dengan kunci yang paling rendah pada langkah masing-
masing, memberikan beberapa daftar yang diurutkan, hasil
daftar yang diurutkan berisi semua unsur-unsur di dalam daftar
input manapun, dan hal itu dilakukan agar waktunya
proporsioal untuk input penjumlahan panjangnya daftar.

B.Contoh Algoritma Merge Sort


Ide algoritma ini hampir mirip dengan QuickSort, yaitu melakukan
partisi. Kecuali bahwa algoritma ini melakukan partisi tanpa
kriteria. Jadi, data set (X[l] ... X[r]) di partisi langsung ke dua
sub data set dengan jumlah data yang sama (X[l] ... X[(l+r)/2],
dan X[(l+r)/2+1] ... X[r]).
Lalu secara rekursif melakukan Merge Sort untuk masing-masing data
set. Karena kedua data set itu bisa overlapping (tidak seperti
pada Quick Sort) maka setelah kedua sub data set terurut masih
memerlukan proses penggabungan (Merging). Merging ini
memerlukan ruang tambahan yaitu suatu array yang sama
panjangnya dengan panjang kedua sub set untuk menyimpan
hasilnya.
Untuk Merge Sort dalam beberapa bahasa pemrograman yang ada
pada saat ini untuk listing programnya hampir sama. Berikut ini
merupakan salah satu contoh Listing Program yang biasa
digunakan.
3.1 Metode-Metode Sorting
Berdasarkan metode dasar dari pengurutan(ascending dan descending),maka
dikembangkan berbagai macam metode-metode pengurutan lain yang bisa dipakai
untuk mengurutkan data,baik data skala kecil maupun skala besar,diantaranya
adalah metode buble sort,selection sort,insertion sort,quick sort,dan merge sort.

3.1.1 Bubble Sort


Bubble sort merupakan metode pengurutan yang paling sederhana,konsep
dari bubble sort adalah membandingkan dua buah elemen dalam suatu data yang
saling berdekatan secara terus-menerus hingga semua elemen dalam data
tersebut terurut.
Contoh :
Diberikan sebuah data yang mempunyai 10 elemen(T1-T10),maka dengan
menggunakan metode bubble sort,elemen T-n akan dibandingkan dengan
elemen T-(n+1) dengan menggunakan suatu kondisi,lalu elemen akan ditukar
tergantung dengan kondisi dari dua buah elemen itu.perbandingan elemen ini
akan terus dilakukan sebanyak (n-1) dikali n.

*Algoritma metode bubble sort


yang dibuat dalam Bahasa C++

3.1.2 Selection Sort


Selecetion sort merupakan metode sorting yang konsep dasarnya adalah
menjadikan satu elemen dalam data sebagai elemen pos yang kemudian elemen
tersebut dibandingkan dengan elemen-elemen setelahnya,setelah itu terjadi
pergantian elemen pos menjadi indeks dari pos sebelumnya ditambah 1,begitu
seterusnya sampai semua indeks elemen pernah menjadi pos.Kompleksitas
algoritma selection sort adalah fakrorial dari banyaknya elemen yang ada.
Berikut adalah Algoritma dari Selecion sort :
*Algoritma Dari metode selection
sort(Ascending) menggunakan
Bahasa C++

3.1.3 Insertion sort


Konsep dari metode ini adalah dengan cara menyisipkan elemen pada
posisi yang tepat. Cara kerja insertion sort, Pertama-tama, dilakukan iterasi,
dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian
menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya
dilakukan. Dari proses iterasi, seperti biasa, terbentuklah bagian yang telah di-
sorting dan bagian yang belum di-sorting.
Berikut adalah algoritma dari insertion sort :

*Algoritma dari insertion sort yang


ditulis dengan Bahasa C++

3.1.4 Merge Sort


MergeSort adalah Sorting yang berdasarkan strategi divide-and-conquer.
Algoritma ini tediri dari dua bagian utama, yaitu bagian pembagian list menjadi
sublist-sublist yang lebih kecil dan bagian sort (pengurutan) dan merge
(penggabungan) pada sublist-sublist tersebut.

1) Divide: membagi masalah menjadi beberapa submasalah yang memiliki


kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya
berukuran hampir sama),
2) Conquer: memecahkan (menyelesaikan) masing-masing submasalah
(secara rekursif), dan

3) Combine: mengabungkan solusi masing-masing submasalah sehingga


membentuk solusi masalah semula.

3.1.5 Quick Sort


Quick Sort adalah algoritma sorting yang terkenal yang dirancang
oleh C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan
manufaktur komputer saintifik kecil, Elliott Brothers. Algoritma ini
rekursif, dan termasuk paradigma algoritma divide and conquer.
Algoritma ini terdiri dari 4 langkah utama:
1. Jika struktur data terdiri dari 1 atau 0 elemen yang harus diurutkan,
kembalikan struktur data itu apa adanya.
2. Ambil sebuah elemen yang akan digunakansebagai pivot point (poin
poros). (Biasanya elemen yang paling kiri.)
3. Bagi struktur data menjadi dua bagian – satu dengan elemen-elemen yang
lebih besar daripada pivot point, dan yang lainnya dengan elemen-elemen
yang lebih kecil dari pada pivot point.
4. Ulangi algoritma secara rekursif terhadap kedua paruh struktur data.

Berikut adalah Algoritma dari Quick Sort

*Algoritma ini menggunakan


Bahasa C++.

3.2 Metode Sorting Paling Efektif


Berdasarkan penjelasan tentang metode-metode sorting yang sudah
dipaparkan diatas,maka dilakukan sebuah tes untuk menguji metode mana yang
lebih efektif digunakan jika dilihat dari kompleksitas waktu yang dibutuhkan.

Berikut adalah hasil kompleksitas waktu sorting yang dibutuhkan untuk


mengurutkan 100.000 data acak.
Jenis Sorting Waktu
Bubble Sort 24.781 Detik
Selection Sort 8.649 Detik
Insertion Sort 12.289 Detik
Merge Sort 0.031 Detik
Quick Sort 0.015 Detik
Berdasarkan data diatas,quick sort merupakan metode sorting dengan
kompleksitas waktu terkecil,kemudian merge sort,insertion sort,selection sort,dan
yang terakhir adalah bubble sort(kompleksitas waktu terbesar).

Beberapa faktor yang mempengaruhi kecepatan Sorting :


1. Metode Sorting yang digunakan.
2. Banyaknya data yang akan diproses.
3. Spesifikasi dari Komputer/Kecepatan komputer untuk melakukan
komputasi.
4. Bahasa Program yang digunakan.

3.3 Peran Sorting dalam Kehidupan.


1. Pengurutan nama dalam buku telepon
Salah satu peran sorting yang tidak banyak orang sadari adalah pengurutan
nama dalam buku telepon.Bisa dibayangkan apabila nama-nama yang ada di
buku telepon tersusun secara acak,maka orang-orang akan kesulitan mencari
nama yang dicari.Maka peran sorting dalam hal ini sangat membantu orang
banyak.

2.
BAB IV
PENUTUP

DAFTAR PUSTAKA :
1). Nasoetion, A.H., dan Ahmad Barizi. 2013. Metode Statistika. Jakarta: PT.
Gramedia.
2). Wibowo, Herman (Penterjermah). 2011. Analisa Teknik. Jakarta: PT. Erlangga.

Anda mungkin juga menyukai