PERBANDINGAN KOMPLEKSITAS WAKTU TEORETIS DAN REAL TIME ALGORITMA STRAND SORT, SIEVE SORT, GNOME SORT SKRIPSI RUTH STEPHANY SIAHAAN 141421092 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
i PERBANDINGAN KOMPLEKSITAS WAKTU TEORETIS DAN REAL TIME ALGORITMA STRAND SORT, SIEVE SORT, GNOME SORT SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer RUTH STEPHANY SIAHAAN 141421092 PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2017
ii PERSETUJUAN Judul : PERBANDINGAN KOMPLEKSITAS WAKTU TEORETIS DAN REAL TIME ALGORITMA STRAND SORT, SIEVE SORT, GNOME SORT Kategori : SKRIPSI Nama : RUTH STEPHANY SIAHAAN Nomor Induk Mahasiswa : 141421092 Program Studi : EKSTENSI SARJANA (S1) ILMU KOMPUTER Departemen Fakultas : ILMU KOMPUTER : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 2017 Komisi Pembimbing : Pembimbing 2 Pembimbing 1 Jos Timanta Tarigan,S.Kom,M.Sc Dian Rachmawati, S.Si, M.Kom NIP. 198501262015041001 NIP. 198307232009122004 Diketahui/disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom. NIP. 196203171991031001
iii PERNYATAAN PERBANDINGAN KOMPLEKSITAS WAKTU TEORETIS DAN REAL TIME ALGORITMA STRAND SORT, SIEVE SORT, GNOME SORT SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya. Medan, Februari 2017 Ruth Stephany Siahaan 141421092
iv PENGHARGAAN Segala dan puji syukur penulis panjatkan hanya kepadatuhan Yesus Kristus oleh karena kasih-nya, penulis mampu menyelesaikan Skripsi ini.dalam pengerjaan Skripsi ini penulis banyak sekali mendapatkan dukungan, masukan, dan nasehat dari berbagai pihak. Banyak bantuan berupa motivasi,bimbingan, meluangkan waktu dan pikirannya serta memberikan ilmunya kepada penulis dalam menyelesaikan Skripsi ini. Teristimewa untuk kedua orangtua tercinta Ayahanda Donald Siahaan dan Ibunda Nany Hutabarat atas doa, dukungan, dan kasih sayang yang telah diberikan kepada penulis selama ini.oleh karena itu, penulis ingin menyampaikan ucapan terima kasih kepada pihak-pihak yang telah membantu. Ucapan terima kasih penulis sampaikan kepada: 1. Bapak Prof. Dr. Runtung Sitepu, SH., M.Hum. selaku Rektor Universitas Sumatera Utara. 2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fasilkom-TI USU. 3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S1 Ilmu Komputer yang telah memberikan bimbingan dan dukungan kepada penulis.. 4. Ibu Maya Silvi Lydia, B.Sc., M.Sc. selaku Sekretaris Program Studi S1 Ilmu Komputer yang telah memberikan bimbingan dan dukungan kepada penulis. 5. Ibu Dian Rachmawati S.Si, M.Kom. selaku Dosen Pembimbing I yang telah memberikan bimbingan dan dukungan kepada penulis. 6. Bapak Jos Timanta Tarigan, S.Kom, M.Sc. selaku Dosen Pembimbing II yang telah memberikan bimbingan dan dukungan kepada penulis. 7. Bapak Mohammad Andri Budiman S.T., M.Comp.Sc., M.E.M selaku Dosen Pembimbing,Penyemangat dan Penasihat yang telah memberikan bimbingan dan dukungan kepada penulis. 8. Seluruh tenaga pengajar dan pegawai di Fakultas Ilmu Komputer dan Teknologi Informasi USU, terkhususnya di Program Studi S1 Ilmu Komputer. 9. Kakak saya Lydia Novita Siahaan, S.E dan Esther Siahaan, S,Si yang telah berbagi motivasi dan inspirasi kepada penulis.
v 10. Sahabat-sahabat Pejuang Wisuda yang saling berbagi ilmu pengetahuan, pemikiran, motivasi, dan dukungan kepada penulis khususnya Firma Fanny Sinaga, Junita Situmorang, Lia Ritonga, Mariaty, Sayed Hafiz, Benyamin Ginting, Januar Andi Sirait, Josua Pribadi Sianipar, dan Adam Kevin. 11. Teman-teman kuliah Ekstensi Ilmu Komputer stambuk 2014, khususnya Kom B, yang telah berbagi motivasi, rasa kebersamaan, dan inspirasi kepada penulis. 12. Semua pihak yang terlibat langsung atau tidak langsung yang penulis tidak dapat tuliskan satu per satu. Semoga semua kebaikan, bantuan, perhatian, serta dukungan yang telah diberikan kepada penulis mendapatkan pahala yang melimpah dari Tuhan YME. Medan, Februari 2017 Penulis
vi ABSTRAK Pengurutan merupakan proses mengatur susunan data secara teratur dengan pola tertentu untuk memudahkan dalam proses pencarian data. Dengan adanya algoritma pengurutan, data yang awalnya acak akan menjadi terurut sesuai aturan. Ada banyak algoritma untuk pengurutan data, namun pada tugas akhir ini akan dibahas algoritma Strand Sort, Sieve Sort, dan Gnome Sort. Algoritma Strand Sort adalah algoritma pengurutan yang mencari elemen yang tepat untuk diletakkan di posisi yang telah diketahui setelah data ditemukan. Algoritma Sieve Sort adalah algoritma pengurutan seperti sebuah proses penyaringan dan setelah data disaring akan ditata kembali sesuai jumlah data yang ada. Algoritma Gnome Sort adalah algoritma pengurutan seperti sebuah proses penyisipan dengan serangkaian pertukaran (swap) dengan implementasi menggunakan bahasa pemograman C#. analisis kinerja algoritma ini bertujuan untuk mengetahui kompleksitas waktu dan running time dari ketiga algoritma tersebut. Kompleksitas waktu dapat dihitung melalui tahapan pengurutan berdasarkan langkah-langkah algoritma tersebut dalam memecahkan masalah dan Running Time yang dihitung berdasarkan platform yang digunakan. Dalam percobaan yang dilakukan didapatkan bahwa algoritma Strand Sort dan Gnome Sort lebih efisien dari algoritma Sieve Sort dengan kompleksitas waktu (Tn) Strand Sort dan Gnome Sort n 2 sedangkan algoritma Sieve Sort n 3. Kata Kunci : Pengurutan, Strand Sort, Sieve Sort, Gnome Sort, Kompleksitas Waktu dan Running Time.
vii ABSTRACT Sorting is the process of organizing the data regularly with a certain pattern to facilitate the search process data. By this sorting algorithm, the data that served randomly can be arranged by regular. Sorting algorithm use in this research are Strand Sort, Sieve Sort, and Gnome Sort. Strand Sort algorithm is data sorting algorithm of seeking elements proper to put in position that have been known after data found. Sieve Sort algorithm is data sorting algorithm a process of screening and after the filtered data will be reorganized according to the number of existing data. Gnome Sort algorithm is data sorting algorithm an insertion process with a series of exchange (swap). Programming language implementation use C#. Sorting of data takes times so it take the time complexity analysis. The time complexity can be calculated by the stages of sorting based on the step of the algorithm in solving problems and running time based on the platform being used. In experiments conducted found that the algorithm Strand Sort and Gnome Sort more efficient than the algorithm complexity Sieve Sort by time (Tn) is Strand Sort and Gnome Sort n 2 while Sieve algorithm is n 3. Keywords : Sorting, Strand Sort, Sieve Sort, Gnome Sort, Time Complexity and Running Time.
viii DAFTAR ISI Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Daftar Lampiran ii iii iv vi vii viii x xi xii Bab 1 Pendahuluan..1.1. Latar Belakang 1..1.2. Rumusan Masalah 2..1.3. Batasan Masalah 2..1.4. Tujuan Penelitian 3..1.5. Manfaat Penelitian 3..1.6. Metodologi Penelitian 3..1.7. Sistematika Penelitian 4 Bab 2 Landasan Teori 2.1. Pengertian Algoritma 5..2.2. Algoritma Pengurutan (Sorting) 6. 2.3. Klasifikasi Algoritma Pengurutan 7 2.4. Algoritma Strand Sort 8 2.4.1 Pseudocode Algoritma Strand Sort 10 2.5. Algoritma Sieve Sort 11 2.5.1 Pseudocode Algoritma Sieve Sort 13 2.6. Algoritma Gnome Sort 14 2.6.1 Pseudocode Algoritma Gnome Sort 16 2.7. Kompleksitas Algoritma 17 2.7.1 Kompleksitas Waktu 17 2.7.2 Kompleksitas Waktu Asimptotik 17 2.7.2.1. Big oh 19 2.7.2.2. Big Omega 20 2.7.2.3. Big Theta 21 2.8. Running Time 21 2.9. Struktur Data 22 Bab 3 Analisis dan Perancangan Sistem 3.1. Analisis Masalah 24 3.2. Analisis Kebutuhan Sitem 25 3.2.1. Kebutuhan fungsional 25 3.2.2 Kebutuhan non fungsional 25
ix 3.3. Pemodelan Sistem 26 3.3.1. Use Case Diagram 26 3.3.2. Activity Diagram 27 3.3.3. Sequence Diagram 28 3.4. Flowchart Sistem 29 3.4.1. Flowchart Algoritma Strand Sort 30 3.4.2. Flowchart Algoritma Sieve Sort 31 3.4.3. Flowchart Algoritma Gnome Sort 32 3.5. Rancangan User 33 3.5.1. Rancangan Halaman Home 33 3.5.2. Rancangan Halaman Pengurutan Data String 34 3.4.3. Rancangan Halaman About 36 3.5. Tabel ASCII 37 Bab 4 Implementasi dan Pengujian Sistem 4.1. Implementasi Sistem 38 4.2. Generated Data 38 4.3. Algoritma Strand Sort 39. 4.3.1. Analisis Algoritma Strand Sort 41.4.3.2. Analisis Kompleksitas Waktu (Tn) Algoritma Strand Sort 43 4.4. Algoritma Sieve Sort 45. 4.4.1. Analisis Algoritma Sieve Sort 47.4.4.2. Analisis Kompleksitas Waktu (Tn) Algoritma Sieve Sort 50 4.5. Algoritma Gnome Sort 53. 4.5.1. Analisis Algoritma Gnome Sort 55.4.5.2. Analisis Kompleksitas Waktu (Tn) Algoritma Gnome Sort 59 4.6. Kesimpulan Analisis Keseluruhan Algoritma 62 Bab 5 Penutup 5.1. Kesimpulan 66 5.2. Saran 67 Daftar Pustaka 68
DAFTAR TABEL Nomor Tabel 2.1 2.2 3.6 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 Nama Tabel Pengelompokkan Algoritma Berdasarkan Notasi O-Besar Perbedaan Array dan List Tabel ASCII Kompleksitas Waktu (Tn) Algoritma Strand Sort Running Time Algoritma Strand Sort Kompleksitas Waktu (Tn) Algoritma Sieve Sort Running Time Algoritma Sieve Sort Kompleksitas Waktu (Tn) Algoritma Gnome Sort Running Time Algoritma Gnome Sort Running Time Seluruh Algoritma pada Intel Core I3, RAM 2GB, HDD 500GB (untuk percobaan 10 100 data string) Running Time Seluruh Algoritma pada Intel Core I3, RAM 2GB, HDD 500GB (untuk percobaan 10 100 data string) Halaman 18 23 37 43 44 50 53 59 61 63 64
DAFTAR GAMBAR Nomor Gambar 2.1 2.2 2.3 2.4 2.5 2.6 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 Nama Gambar Proses Pengurutan Data Menggunakan Strand Sort Proses Pengurutan Data Menggunakan Sieve Sort Proses Pengurutan Data Menggunakan Gnome Sort Grafik Fungsi Big-Oh Grafik Fungsi Big-Omega Grafik Fungsi Big-Theta Diagram Ishikawa Use Case Diagram Sistem Activity Diagram Sequence Diagram Flowchart Sistem Flowchart Strand Sort Flowchart Sieve Sort Flowchart Gnome Sort Rancangan Halaman Home Rancangan Halaman Pengurutan Data String Rancangan Halaman About Tampilan Hasil Generated Data Tampilan Pengurutan String Dengan Algoritma Strand Sort Hasil Pengurutan String Dengan Algoritma Strand Sort Hasil Pengurutan 10 String Dengan Algoritma Strand Sort Grafik Algoritma Strand Sort Tampilan Pengurutan String Dengan Algoritma Sieve Sort Hasil Pengurutan String Dengan Algoritma Sieve Sort Hasil Pengurutan 10 String Dengan Algoritma Sieve Sort Grafik Algoritma Sieve Sort Tampilan Pengurutan String Dengan Algoritma Gnome Sort Hasil Pengurutan String Dengan Algoritma Gnome Sort Hasil Pengurutan 10 String Dengan Algoritma Gnome Sort Grafik Algoritma Gnome Sort Grafik Running Time Seluruh Algoritma Pada Intel Core I3, RAM 2GB, HDD 500GB (Untuk Percobaan 10 100 Data String) Grafik Running Time Seluruh Algoritma Pada Intel Core I3, RAM 2GB, HDD 500GB (Untuk Percobaan 100 1000 Data String) Hasil Pengurutan Dari Ketiga Algoritma Halaman 10 12 16 19 20 21 24 26 27 28 29 30 31 32 33 34 36 39 39 40 43 45 45 46 50 53 54 55 58 61 63 64 65
xii DAFTAR LAMPIRAN Halaman Lampiran 1 Listing Program A-1 Lampiran 2 Daftar Riwayat Hidup (Curriculum Vitae) B-1