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