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
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
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 : ILMU KOMPUTER
Fakultas : 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,
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
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 Universitas Sumatera Utara yang telah memberikan bimbingan dan
dukungan kepada penulis..
4. Ibu Maya Silvi Lydia, B.Sc., M.Sc. selaku Sekretaris Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara 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
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
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 n2 sedangkan algoritma Sieve Sort n3.
Kata Kunci : Pengurutan, Strand Sort, Sieve Sort, Gnome Sort, Kompleksitas
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 n2
while Sieve algorithm is n3.
Keywords : Sorting, Strand Sort, Sieve Sort, Gnome Sort, Time Complexity and
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran 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
Bab 3 Analisis dan Perancangan Sistem
3.1. Analisis Masalah 24
3.2. Analisis Kebutuhan Sitem 25
3.2.1. Kebutuhan fungsional 25
3.3. Pemodelan Sistem 26
3.3.1. Use Case Diagra m 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 TABEL
Nomor
Tabel Nama Tabel Halaman
2.1
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
DAFTAR GAMBAR
Nomor
Gambar Nama Gambar Halaman
2.1
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
DAFTAR LAMPIRAN
Halaman
Lampiran 1 Listing Program A-1