Perbandingan Kompleksitas Waktu Teoretis dan Real Time Algoritma Strand Sort, Sieve Sort, Gnome Sort

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

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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
: 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
NIP. 198501262015041001

Dian Rachmawati, S.Si, M.Kom
NIP. 198307232009122004

Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom.
NIP. 196203171991031001

Universitas Sumatera Utara

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

Universitas Sumatera Utara

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 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
berbagi motivasi dan inspirasi kepada penulis.


Universitas Sumatera Utara

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

Universitas Sumatera Utara

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 n2 sedangkan algoritma Sieve Sort n3.

Kata Kunci : Pengurutan, Strand Sort, Sieve Sort, Gnome Sort, Kompleksitas
Waktu dan Running Time.

Universitas Sumatera Utara

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 n2
while Sieve algorithm is n3.

Keywords : Sorting, Strand Sort, Sieve Sort, Gnome Sort, Time Complexity and
Running Time.

Universitas Sumatera Utara

viii

DAFTAR ISI

Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar
Daftar Lampiran
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 Penelitian

ii
iii
iv
vi
vii
viii
x
xi
xii

1
2
2
3
3
3
4

Bab 2 Landasan Teori
2.1. Pengertian Algoritma
..2.2. Algoritma Pengurutan (Sorting)
. 2.3. Klasifikasi Algoritma Pengurutan
2.4. Algoritma Strand Sort
2.4.1 Pseudocode Algoritma Strand Sort
2.5. Algoritma Sieve Sort
2.5.1 Pseudocode Algoritma Sieve Sort
2.6. Algoritma Gnome Sort
2.6.1 Pseudocode Algoritma Gnome Sort
2.7. Kompleksitas Algoritma
2.7.1 Kompleksitas Waktu
2.7.2 Kompleksitas Waktu Asimptotik
2.7.2.1. Big oh
2.7.2.2. Big Omega
2.7.2.3. Big Theta
2.8. Running Time
2.9. Struktur Data

5
6
7
8
10
11
13
14
16
17
17
17
19
20
21
21
22

Bab 3 Analisis dan Perancangan Sistem
3.1. Analisis Masalah
3.2. Analisis Kebutuhan Sitem
3.2.1. Kebutuhan fungsional
3.2.2 Kebutuhan non fungsional

24
25
25
25

Universitas Sumatera Utara

ix

3.3. Pemodelan Sistem
3.3.1. Use Case Diagram
3.3.2. Activity Diagram
3.3.3. Sequence Diagram
3.4. Flowchart Sistem
3.4.1. Flowchart Algoritma Strand Sort
3.4.2. Flowchart Algoritma Sieve Sort
3.4.3. Flowchart Algoritma Gnome Sort
3.5. Rancangan User
3.5.1. Rancangan Halaman Home
3.5.2. Rancangan Halaman Pengurutan Data String
3.4.3. Rancangan Halaman About
3.5. Tabel ASCII

26
26
27
28
29
30
31
32
33
33
34
36
37

Bab 4 Implementasi dan Pengujian Sistem
4.1. Implementasi Sistem
4.2. Generated Data
4.3. Algoritma Strand Sort
. 4.3.1. Analisis Algoritma Strand Sort
.4.3.2. Analisis Kompleksitas Waktu (Tn) Algoritma Strand Sort
4.4. Algoritma Sieve Sort
. 4.4.1. Analisis Algoritma Sieve Sort
.4.4.2. Analisis Kompleksitas Waktu (Tn) Algoritma Sieve Sort
4.5. Algoritma Gnome Sort
. 4.5.1. Analisis Algoritma Gnome Sort
.4.5.2. Analisis Kompleksitas Waktu (Tn) Algoritma Gnome Sort
4.6. Kesimpulan Analisis Keseluruhan Algoritma

38
38
39
41
43
45
47
50
53
55
59
62

Bab 5 Penutup
5.1. Kesimpulan
5.2. Saran

66
67

Daftar Pustaka

68

Universitas Sumatera Utara

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

Halaman

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)

18
23
37
43
44
50
53
59
61
63
64

Universitas Sumatera Utara

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

Halaman

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

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

Universitas Sumatera Utara

xii

DAFTAR LAMPIRAN

Lampiran 1
Lampiran 2

Listing Program
Daftar Riwayat Hidup (Curriculum Vitae)

Halaman
A-1
B-1

Universitas Sumatera Utara