Disusun Oleh:
Pengurutan data dalam struktur data sangat penting terutama untuk data yang
beripe data numerik ataupun karakter. Pengurutan (Sorting) adalah proses
pengurutan data yang sebelumnya disusun secara acak sehingga tersusun secara
teratur menurut aturan tertentu. Sorting juga memiliki arti yaitu suatu proses
untuk menyusun kembali himpunan obyek menggunakan aturan tertentu.
Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan
elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam
tiap-tiap elemen.
Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses
sorting:
1. Urut naik (ascending), yaitu mengurutkan dari data yang mempunyai nilai
paling kecil sampai paling besar.
2. Urut turun (descending), yaitu mengurutkan dari data yang mempunyai nilai
paling besar sampai paling kecil.
Contoh:
Data Acak :
5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1.
Alasan mengapa harus melakukan adanya sorting data yaitu data yang terurut
mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika
terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus
jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan
mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun
melakukan penggabungan data.
B. Metode Sorting
2
1. Bubble Sort (Metode Gelembung)
Bubble Sort merupakan cara pengurutan yang sederhana. Konsep dari ide
dasarnya adalah seperti“gelembung air” untuk elemen struktur data yang
semestinya berada pada posisi awal.
Narasi:
3
Flowchart:
Cara kerja insertion sort yaitu dilakukan proses 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.
4
Berikut adalah algoritma insertion sort:
Narasi:
5
Flowchart:
Algoritma sorting sederhana yang lain adalah selection sort. Ide dasarnya
adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen
struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di
antara elemen-elemen yang belum urut disimpan indeksnya, kemudian
dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut
dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting
descending (menurun), elemen yang paling besar yang disimpan indeksnya
kemudian ditukar.
6
Berikut adalah algoritma selection sort:
Narasi:
7
8
Flowchart:
4. Merge Sort
9
Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer.
Berikut menjelaskan langkah kerja dari Merge sort.
1. Divide
Memilah elemen – elemen dari rangkaian data menjadi dua bagian.
2. Conquer
Conquer setiap bagian dengan memanggil prosedur merge sort
secara rekursif
3. Kombinasi
Mengkombinasikan dua bagian tersebut secara rekursif untuk
mendapatkan rangkaian data berurutan.
Berikut adalah algoritma merge sort:
Narasi:
10
Flowchart:
void mergeSort(int
*array, int low, int high)
int mid;
5. Quick Sort
Algoritma Quick Sort ditemukan oleh E. Hoare. Algoritma ini
menggunakan metode rekursi sampai habis. Prinsipnya membagi data
menjadi dua bagian yang sama (kiri dan kanan). Dimana data tengah menjadi
pivot (pusat operasi). Kemudian kita akan mengumpukan data dengan nilai
lebih kecil dari pivot disebelah kiri pivot, dan di kanan untuk yang lebih besar.
Karena dimungkinkan bagian kiri dan kanan pivot tidak sama besarnya. maka
dari itu tiap bagian di bagi menjadi dua lagi sehingga mempunyai pivot yang
baru.
Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge
sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut :
1. Divide
11
Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan
A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama
dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau
sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot.
Perhitungan pada elemen q merupakan salah satu bagian dari prosedur
pemisahan.
2. Conquer
Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada
algoritma quick sort, langkah ”kombinasi” tidak di lakukan karena telah
terjadi pengurutan elemen – elemen pada sub-array.
Berikut adalah algoritma quick sort:
Narasi:
12
Flowchart:
void quick_sort(int
arr[], int left, int
right)
int pivot =
arr[(left+right)/2];
i<j
Yes
i++; j--;
No
i<=j
13
1. Bubble Sort
Program:
14
Hasil Running:
Running I
Running II
Running III
15
Running IV
Running V
16
Running VI
Running VII
17
Running VIII
Running IX
18
Running X
2. Insertion Sort
19
Program:
Hasil Running:
20
Running I
Running II
Running III
21
Running IV
Running V
22
Running VI
Running VII
23
Running VIII
Running IX
24
Running X
3. Selection Sort
25
Program:
Hasil Running:
26
Running I
Running II
Running III
27
Running IV
Running V
28
Running VI
Running VII
29
Running VIII
Running IX
30
Running X
4. Merge Sort
31
Program:
32
33
Hasil Running:
Running I
Running II
34
Running III
Running IV
35
Running V
Running VI
36
Running VII
Running VIII
37
Running IX
Running X
38
5. Quick Sort
Program:
39
40
Hasil Running:
Running I
Running II
41
Running III
Running IV
42
Running V
Running VI
43
Running VII
Running VIII
44
Running IX
Running X
45
D. Hasil Percobaan
Chart Title
60000 1.000
0.900
50000 0.800
40000 0.700
0.600
30000 0.500
0.400
20000 0.300
10000 0.200
0.100
0 0.000
46
E. Kesimpulan
47
DAFTAR PUSTAKA
http://www.academia.edu/6136390/laporan_sorting_script_di_dalamnya_juga_sea
rching_kok_
https://lunarphue.wordpress.com/information-technology/asd/macam-macam-
sorting/
http://suputradwipratama274.blogspot.com/2015/06/penjelasan-sorting-contoh-
program-nya.html
48