Analisis Perbandingan Algoritma QuickSort, 3 Way QuickSort, dan RadixSort

ANALISIS PERBANDINGAN ALGORITMA QUICKSORT,
3 WAY QUICKSORT, DAN RADIXSORT

SKRIPSI

PLOREN PERONICA PASARIBU
131421038

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016

Universitas Sumatera Utara

ANALISIS PERBANDINGAN ALGORITMA QUICKSORT,
3 WAY QUICKSORT, DAN RADIXSORT

SKRIPSI


Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer

PLOREN PERONICA PASARIBU
131421038

`

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016

Universitas Sumatera Utara

PERSETUJUAN

: ANALISIS PERBANDINGAN ALGORITMA


Judul

QUICKSORT, 3 WAY QUICKSORT, DAN
RADIXSORT
Kategori

: SKRIPSI

Nama

: PLOREN PERONICA PASARIBU

Nomor Induk Mahasiswa

: 131421038

Program Studi

: SARJANA (S1) ILMU KOMPUTER


Fakultas

: ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI

(FASILKOM-TI)

UNIVERSITAS

SUMATERA UTARA

Diluluskan di
Medan,

Agustus 2016

Komisi Pembimbing
Dosen Pembimbing II

Amer Sharif, S.Si, M.Kom

NIP. -

Dosen Pembimbing I

Drs. James Piter Marbun, M.Kom
NIP. 1958061119860310002

Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom
NIP. 196203171991031011

Universitas Sumatera Utara

PERNYATAAN
ANALISIS PERBANDINGAN ALGORITMA QUICKSORT,
3 WAY QUICKSORT, DAN RADIXSORT


SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan,

Agustus 2016

PLOREN PERONICA PASARIBU
131421038

Universitas Sumatera Utara

PENGHARGAAN

Segala puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa, karena
atas limpahan berkat dan karunia-Nya penulis mampu menyelesaikan skripsi ini
sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu
Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera

Utara.

Pada pengerjaan skripsi dengan judul Analisis Perbandingan Algoritma
QuickSort, 3 Way QuickSort, dan RadixSort, penulis menyampaikan terima kasih dan
penghargaan yang sebesar-besarnya kepada semua pihak yang telah memberikan
bimbingan dan dukungan, baik secara materil dan moril, terutama kepada:

1. Bapak Prof. Dr. Runtung Sitepu S.H, M.Hum, selaku Rektor Universitas
Sumatera Utara.
2. Bapak Prof. Dr. Opim Salim Sitompul, M.Si., selaku Dekan Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi Ilmu
Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumetera Utara, dan juga sebagai dosen penguji yang telah memberikan saran
dan kritikan yang sangat berguna bagi penulis.
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc selaku Sekretaris Program Studi S1 Ilmu
Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas
Sumatera Utara.
5. Bapak James Piter Marbun, M.Kom dan Bapak Amer Sharif, S.Si, M.Kom
selaku pembimbing yang telah banyak meluangkan waktunya dalam

memberikan masukan-masukan, baik kritik dan saran kepada penulis selama
pembuatan sampai penyelesaian skripsi ini.
6. Bapak Drs. Marihat Situmorang, M.Kom dan Bapak Jos Timanta Tarigan,
S.Kom, M.Sc sebagai dosen penguji yang telah memberikan saran dan kritikan
yang sangat berguna bagi penulis.

Universitas Sumatera Utara

7. Bapak M. Andri Budiman, ST, M.Comp.Sc, M.E.M selaku dosen mata kuliah
Desain dan Analisis Algoritma yang telah meluangkan waktu dan memberikan
banyak masukan serta dukungan kepada penulis selama di bangku perkuliahan
sampai penyelesaian skripsi ini.
8. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer Departemen
Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi,
Universitas Sumatera Utara.
9. Teristimewa kepada kedua orang tua penulis yang tercinta Ayahanda (S.
Pasaribu), Ibunda (R. Hutabarat), serta adik-adik penulis (Stephani dan Holly)
yang senantiasa memberikan kasih sayang, doa, dukungan dan motivasi yang
tak terhingga dan tak ternilai harganya.
10. Seluruh teman mahasiswa Ekstensi S1 Ilmu Komputer Stambuk 2013

khususnya KOM B’2013 yang selama ini telah menjadi keluarga dan sahabat
penulis, teristimewa kepada Kak Winda, Adik Felix, Chitra, Kak Rofika,
Farid, Bang Rony, Winda Samosir, Lulu, dan Asrul.

Dalam skripsi ini, penulis menyadari masih terdapat kekurangan dan masih jauh
dari sempurna. Oleh karena itu, dengan segala kerendahan hati penulis
mengharapkan kritik dan saran yang bersifat membangun demi perbaikan dan
penyempurnaan skripsi ini. Akhir kata, semoga skripsi ini bermanfaat bagi semua
pihak yang membacanya.

Medan,

Agustus 2016

Ploren Peronica Pasaribu

Universitas Sumatera Utara

ABSTRAK


Pengurutan merupakan proses menyusun kembali data yang sebelumnya disusun
dengan suatu pola tertentu sehingga tersusun secara teratur menurut aturan tertentu.
Dengan adanya metode pengurutan ini, data yang disajikan secara acak dapat disusun
dengan teratur. Algoritma pengurutan yang digunakan dalam penelitian ini adalah:
QuickSort, 3 Way QuickSort, dan RadixSort. Algoritma QuickSort dan 3 Way
QuickSort merupakan algoritma pengurutan data yang menggunakan pemecahan data
menjadi partisi-partisi. Perbedaannya, algoritma QuickSort memiliki 1 pivot,
sedangkan algoritma 3 Way QuickSort memiliki 3 pivot. Algoritma RadixSort
merupakan salah satu algoritma pengurutan tanpa perbandingan yang dilakukan
dengan

cara

mengelompokkan

data

dari

digit


terkanan

dan

kemudian

mengkonkatenasikannya. Algoritma RadixSort jauh lebih efisien daripada dua
algoritma lain karena kompleksitas waktu (Tn) RadixSort adalah n.c, sedangkan
QuickSort dan 3 Way QuickSort adalah n log n. Pengurutan data membutuhkan waktu
sehingga dibutuhkan analisis kompleksitas waktu. Kompleksitas waktu dapat dihitung
melalui tahapan pengurutan yang dihitung berdasarkan langkah-langkah algoritma
tersebut dalam memecahkan masalah dan running time algoritma yang dihitung
berdasarkan platform yang digunakan. Oleh karena itu, analisis kompleksitas waktu
mampu menentukan efisiensi waktu suatu algoritma.

Kata Kunci : Pengurutan, QuickSort, 3 Way QuickSort, RadixSort, kompleksitas
waktu, running time.

Universitas Sumatera Utara


ANALYSIS COMPARISON QUICKSORT, 3 WAY QUICKSORT, AND
RADIXSORT ALGORITHM

ABSTRACT

Sorting is the process of rearrange the data had arranged with the pattern specific so
that arranged by regularly as the rule specific. By this sorting method, the data served
randomly can be arranged by regular. Sorting algorithm used in this research, i.e:
QuickSort, 3 Way QuickSort, and RadixSort. QuickSort algorithm and 3 Way
QuickSort is data sorting algorithm that uses splitting data into partitions. The
different is QuickSort algorithm have 1 pivot, and 3 Way QuickSort algorithm have 3
pivots. RadixSort algorithm is one of non comparison sorting algorithm that is done by
classifying the data from the most significant digit and then do concatenation.
RadixSort algorithm more efficient than two algorithms other, caused by time
complexity(Tn) of RadixSort algorithm is n.c whereas QuickSort algorithm and 3
Way QuickSort algorithm are n log n. Sorting of data takes time so it take the time
complexity analysis. The time complexity can be calculated by the stages of sorting
based on the steps of the algorithm in solving problems and running time algorithm
based on the platform being used. Therefore, the analysis of time complexity is able
to determine the efficiency of an algorithm.

Keywords

: Sorting, QuickSort, 3 Way QuickSort, RadixSort, time complexity,
running time .

Universitas Sumatera Utara

DAFTAR ISI

Halaman
Halaman Judul
Halaman Persetujuan
Halaman Pernyataan
Halaman Penghargaan
Halaman Abstrak
Halaman Abstract
Halaman Daftar Isi
Halaman Daftar Gambar
Halaman Daftar Tabel

i
ii
iii
iv
vi
vii
viii
x
xi

BAB 1 PENDAHULUAN
1.1 Latar Belakang
1.2 Rumusan Masalah
1.3 Batasan Masalah
1.4 Tujuan Penelitian
1.5 Manfaat Penelitian
1.6 Metodologi Penelitian
1.7 Sistematika Penulisan

1
2
2
3
3
3
4

BAB 2 LANDASAN TEORI
2.1 Algoritma
2.2 Kompleksitas Algoritma
2.2.1 Kompleksitas Waktu
2.2.2 Kompleksitas Waktu Asimptotik
2.2.3 Kompleksitas Ruang
2.3 Running Time
2.4 Pengurutan
2.5 Klasifikasi Algoritma Pengurutan
2.6 Algoritma QuickSort
2.6.1 Langkah-langkah Melakukan Pengurutan Algoritma QuickSort
2.6.2 Pseudocode Algoritma QuickSort
2.6.3 Kompleksitas Waktu Asimptotik Algoritma QuickSort
2.7 Algoritma 3 Way QuickSort
2.7.1 Langkah-langkah Melakukan Pengurutan Algoritma
3 Way QuickSort
2.7.2 Pseudocode Algoritma 3 Way QuickSort
2.7.3 Kompleksitas Waktu Asimptotik Algoritma 3 Way QuickSort
2.8 Algoritma RadixSort
2.8.1 Langkah-langkah Melakukan Pengurutan Algoritma RadixSort
2.8.2 Pseudocode Algoritma RadixSort
2.8.3 Kompleksitas Waktu Asimptotik Algoritma RadixSort

5
6
6
7
8
9
9
9
10
11
14
16
16
16
17
19
19
20
22
23

Universitas Sumatera Utara

ix

BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Masalah
3.2 Analisis Kebutuhan Sistem
3.2.1 Kebutuhan Fungsional
3.2.2 Kebutuhan Non-Fungsional
3.3 Analisis Proses
3.4 Pemodelan Sistem
3.4.1 Use Case Diagram
3.4.2 Activity Diagram
3.4.3 Sequence Diagram
3.5 Flowchart Sistem
3.5.1 Flowchart Algoritma Quicksort
3.5.2 Flowchart Algoritma 3 Way Quicksort
3.5.3 Flowchart Algoritma Radixsort
BAB 4 IMPLEMENTASI SISTEM
4.1 Implementasi Sistem
4.2 Generated Data
4.3 Algoritma Quicksort
4.3.1 Analisis Algoritma QuickSort
4.3.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan
Algoritma QuickSort
4.4 Algoritma 3 Way Quicksort
4.4.1 Analisis Algoritma 3 Way QuickSort
4.4.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan
Algoritma 3 Way QuickSort
4.5 Algoritma Radixsort
4.5.1 Analisis Algoritma RadixSort
4.5.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan
Algoritma RadixSort
4.6 Kesimpulan Analisis Keseluruhan Algoritma
BAB 5 PENUTUP
5.1 Kesimpulan
5.2 Saran

24
25
25
25
26
28
28
29
31
31
32
33
34

35
35
37
39
47
49
51
54
56
58
63
64

71
72

DAFTAR PUSTAKA

LISTING PROGRAM

Universitas Sumatera Utara

DAFTAR GAMBAR

Halaman
Gambar 2.1
Gambar 3.1
Gambar 3.2
Gambar 3.3
Gambar 3.4
Gambar 3.5
Gambar 3.6
Gambar 3.7
Gambar 3.8
Gambar 3.9
Gambar 4.1
Gambar 4.2
Gambar 4.3
Gambar 4.4
Gambar 4.5
Gambar 4.6
Gambar 4.7
Gambar 4.8
Gambar 4.9
Gambar 4.10
Gambar 4.11
Gambar 4.12
Gambar 4.13
Gambar 4.14
Gambar 4.15
Gambar 4.16
Gambar 4.17

Grafik Perbandingan Pengelompokan Algoritma
Berdasarkan Notasi O-Besar
Diagram Ishikawa
Data Acak
Tabel ASCII
Use Case Diagram Sistem
Activity Diagram Sistem
Sequence Diagram Sistem
Flowchart Algoritma QuickSort
Flowchart Algoritma 3 Way QuickSort
Flowchart Algoritma RadixSort
Tampilan Compile Generated Data
Tampilan Hasil Generated Data
Tampilan Compile Algoritma QuickSort
Tampilan Hasil Algoritma QuickSort
Hasil Pengurutan Algoritma QuickSort
Grafik Running Time Perbandingan Algoritma QuickSort
Tampilan Compile Algoritma 3 Way QuickSort
Tampilan Hasil Algoritma 3 Way QuickSort
Hasil Pengurutan Algoritma 3 Way QuickSort
Grafik Running Time Perbandingan Algoritma
3 Way QuickSort
Tampilan Compile Algoritma RadixSort
Tampilan Hasil Algoritma RadixSort
Hasil Pengurutan Algoritma RadixSort
Grafik Running Time Perbandingan Algoritma RadixSort
Grafik Running Time Seluruh Algoritma pada Intel Core I5
2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB
Grafik Running Time Seluruh Algoritma pada Intel Pentium
P6300, RAM 3GB, HDD 320 GB
Hasil Proses Pengurutan Data

9
24
26
27
28
29
31
32
33
34
35
36
37
38
46
49
49
50
53
56
56
57
62
64
66
66
70

Universitas Sumatera Utara

DAFTAR TABEL

Halaman
Tabel 2.1
Tabel 3.1
Tabel 4.1
Tabel 4.2
Tabel 4.3
Tabel 4.4
Tabel 4.5

Pengelompokan algoritma berdasarkan notasi O-Besar
Activity Diagram Sistem
Running Time Perbandingan Algoritma QuickSort
Running Time Perbandingan Algoritma 3 Way QuickSort
Running Time Perbandingan Algoritma RadixSort
Running Time Seluruh Algoritma pada Intel Core I5
2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB
Running Time Seluruh Algoritma pada Intel Pentium P6300,
RAM 3GB, HDD 320 GB.

7
30
48
55
63
67
68

Universitas Sumatera Utara