Anda di halaman 1dari 48

LAPORAN PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN II


SORTING

Disusun Oleh:

AGUNG LAKSANA 1801301076


MARYANA 1801301031
MUHAMMAD NORYA’BANA 1801301044
RISKA HUSNA ELFINA 1801301062

PROGRAM STUDI TEKNIK INFORMATIKA


POLITEKNIK NEGERI TANAH LAUT
PELAIHARI
2019
A. Pengertian Sorting

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

Metode-metode sorting meliputi:

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.

Cara kerjanya adalah dengan berulang-ulang melakukan traversal (proses


looping) terhadap elemen-elemen struktur data yang belum diurutkan. Di
dalam traversal tersebut, nilai dari dua elemen struktur data dibandingkan.
Jika ternyata urutannya tidak sesuai dengan “pesanan”, maka dilakukan
pertukaran (swap). Algoritma sorting ini disebut juga dengan comparison
sort dikarenakan hanya mengandalkan perbandingan nilai elemen untuk
mengoperasikan elemennya.

Berikut adalah algoritma bubble sort:

Narasi:

3
Flowchart:

2. Insertion Sort (Metode Penyisipan)

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:

3. Selection Sort (Metode Seleksi)

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

Merge Sort merupakan algoritma pengurutan dalam ilmu komputer yang


dirancang untuk memenuhi kebutuhan pengurutan atas suatu rangkaian data
yang tidak memungkinkan untuk ditampung dalam memori komputer karena
jumlahnya yang terlalu besar. Algoritma ini ditemukan oleh John von
Neumann pada tahun 1945.
Dengan kata lain merge sort merupakan metode yang membutuhkan
fungsi rekursi untuk penyelesaiannya dan proses rekursif berhenti jika
mencapai elemen dasar, hal ini terjadi ketika bagian yang akan diurutkan
menyisakan tepat satu elemen. Sisa pegurutan elemen tersebut menandakan
bahwa bagian tersebut telah terurut sesuai rangkaian.

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;

low < high

mid = (low + high) / 2;


mergeSort(array, low, mid);
mergeSort(array, mid + 1, high);
merge(array, low, mid, high);

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

arr[i] < pivot arr[j] > pivot

Yes

i++; j--;

No

i<=j

left < j i < right


tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;

quick_sort(arr, left, quick_sort(arr, i,


j); right);

C. Program dan Hasil Running

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

1. Tabel Hasil Percobaan

No Test Bubble Selection insert Merge Quick


1 I 49.492 26.551 0,234 0,916 0,125
2 II 44.569 26.910 0,344 0,916 0,047
3 III 43.288 26.098 0,266 0,875 0,063
4 IV 43.316 27.098 0,281 0,906 0,047
5 V 44.444 26.504 0,297 0,797 0,156
6 VI 43.048 26.770 0,250 0,922 0,047
7 VII 44.491 26.270 0,234 0,797 0,063
8 VIII 43.678 26.426 0,219 0,797 0,047
9 IX 44.772 26.254 0,234 0,860 0,063
10 X 43.507 25.613 0,234 0,828 0,047
Rata-Rata 44.461 26.449 0,259 0,861 0,071

2. Grafik 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

Test Bubble Selection insert Merge Quick

46
E. Kesimpulan

Dari percobaan kelima program sorting sebelumnya, dapat disimpulkan bahwa


metode quick sort lebih cepat daripada program yang lainnya dengan rata-rata
0,071. Dan yang paling lambat adalah bubble sort yaitu 44,461.

47
DAFTAR PUSTAKA

Referensi dari Buku : ALGORITMA DAN PEMROGRAMAN DENGAN C++


(edisi II) Oleh : Andri Kristanto,S.Kom

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

Anda mungkin juga menyukai