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
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
PERSETUJUAN
Judul
:
ANALISIS PERBANDINGAN ALGORITMAQUICKSORT, 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 Dosen Pembimbing I
Amer Sharif, S.Si, M.Kom Drs. James Piter Marbun, M.Kom NIP. - NIP. 1958061119860310002
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
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
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.
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
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 QuickSortmerupakan 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 QuickSortdan3 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.
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 QuickSortalgorithm have 1 pivot, and 3 Way QuickSortalgorithm have 3 pivots.RadixSortalgorithm 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.
DAFTAR ISI
2.2.2 Kompleksitas Waktu Asimptotik 7
2.2.3 Kompleksitas Ruang 8
2.3 Running Time 9
2.4 Pengurutan 9
2.5 Klasifikasi Algoritma Pengurutan 9
2.6 AlgoritmaQuickSort 10
2.6.1 Langkah-langkah Melakukan Pengurutan AlgoritmaQuickSort 11 2.6.2 PseudocodeAlgoritmaQuickSort 14 2.6.3 Kompleksitas Waktu Asimptotik AlgoritmaQuickSort 16
2.7 Algoritma3 Way QuickSort 16
2.7.1 Langkah-langkah Melakukan Pengurutan Algoritma 16 3 Way QuickSort
2.7.2 PseudocodeAlgoritma3 Way QuickSort 17 2.7.3 Kompleksitas Waktu Asimptotik Algoritma3 Way QuickSort 19
2.8 AlgoritmaRadixSort 19
ix
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Masalah 24
3.2 Analisis Kebutuhan Sistem 25
3.2.1 Kebutuhan Fungsional 25
3.2.2 Kebutuhan Non-Fungsional 25
3.3 Analisis Proses 26
3.4 Pemodelan Sistem 28
3.4.1 Use Case Diagram 28
3.4.2 Activity Diagram 29
3.4.3 Sequence Diagram 31
3.5 FlowchartSistem 31
3.5.1 FlowchartAlgoritmaQuicksort 32 3.5.2 FlowchartAlgoritma3 Way Quicksort 33 3.5.3 FlowchartAlgoritmaRadixsort 34
BAB 4 IMPLEMENTASI SISTEM
4.1 Implementasi Sistem 35
4.2 GeneratedData 35
4.3 AlgoritmaQuicksort 37
4.3.1 Analisis AlgoritmaQuickSort 39 4.3.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan 47
AlgoritmaQuickSort
4.4 Algoritma3 Way Quicksort 49
4.4.1 Analisis Algoritma3 Way QuickSort 51 4.4.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan 54
Algoritma3 Way QuickSort
4.5 AlgoritmaRadixsort 56
4.5.1 Analisis AlgoritmaRadixSort 58 4.5.2 Analisis Kompleksitas Waktu (Tn) dan Grafik Perbandingan 63
AlgoritmaRadixSort
4.6 Kesimpulan Analisis Keseluruhan Algoritma 64
BAB 5 PENUTUP
5.1 Kesimpulan 71
5.2 Saran 72
DAFTAR PUSTAKA
DAFTAR GAMBAR
Halaman
Gambar 2.1 Grafik Perbandingan Pengelompokan Algoritma 9 Berdasarkan Notasi O-Besar
Gambar 3.1 DiagramIshikawa 24
Gambar 3.2 Data Acak 26
Gambar 3.3 TabelASCII 27
Gambar 3.4 Use Case DiagramSistem 28 Gambar 3.5 Activity DiagramSistem 29 Gambar 3.6 Sequence DiagramSistem 31 Gambar 3.7 FlowchartAlgoritmaQuickSort 32 Gambar 3.8 FlowchartAlgoritma3 Way QuickSort 33 Gambar 3.9 FlowchartAlgoritmaRadixSort 34 Gambar 4.1 TampilanCompile GeneratedData 35 Gambar 4.2 Tampilan Hasil Generated Data 36 Gambar 4.3 TampilanCompileAlgoritmaQuickSort 37 Gambar 4.4 Tampilan Hasil AlgoritmaQuickSort 38 Gambar 4.5 Hasil Pengurutan AlgoritmaQuickSort 46 Gambar 4.6 GrafikRunning TimePerbandingan AlgoritmaQuickSort 49 Gambar 4.7 TampilanCompileAlgoritma3 Way QuickSort 49 Gambar 4.8 Tampilan Hasil Algoritma3 Way QuickSort 50 Gambar 4.9 Hasil Pengurutan Algoritma3 Way QuickSort 53 Gambar 4.10 GrafikRunning TimePerbandingan Algoritma 56
3 Way QuickSort
Gambar 4.11 TampilanCompileAlgoritmaRadixSort 56 Gambar 4.12 Tampilan Hasil AlgoritmaRadixSort 57 Gambar 4.13 Hasil Pengurutan AlgoritmaRadixSort 62 Gambar 4.14 GrafikRunning TimePerbandingan AlgoritmaRadixSort 64 Gambar 4.15 GrafikRunning TimeSeluruh Algoritma pada Intel Core I5 66
2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB
Gambar 4.16 GrafikRunning TimeSeluruh Algoritma pada Intel Pentium 66 P6300, RAM 3GB, HDD 320 GB
DAFTAR TABEL
Halaman
Tabel 2.1 Pengelompokan algoritma berdasarkan notasi O-Besar 7 Tabel 3.1 Activity DiagramSistem 30 Tabel 4.1 Running TimePerbandingan AlgoritmaQuickSort 48 Tabel 4.2 Running TimePerbandingan Algoritma3 Way QuickSort 55 Tabel 4.3 Running TimePerbandingan AlgoritmaRadixSort 63 Tabel 4.4 Running TimeSeluruh Algoritma pada Intel Core I5 67
2520m 2,50 GHz 3MB Cache, RAM 2 GB, HDD 500 GB