Otomatisasi Indeks Ebook Algorithms Dengan Menggunakan Algoritma Knuth-Morris- Pratt Dan Algoritma Quicksort

OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN
MENGGUNAKAN ALGORITMA KNUTH-MORRISPRATT DAN ALGORITMA QUICKSORT

SKRIPSI

MUHAMMAD TP FAZIL
141421045

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016

Universitas Sumatera Utara

OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN MENGGUNAKAN
ALGORITMA KNUTH-MORRIS-PRATT DAN
ALGORITMA QUICKSORT

SKRIPSI


Diajukan untuk melengkapi tugas akhir dan memenuhi syarat memperoleh ijazah
Sarjana Ilmu Komputer

Oleh :
MUHAMMAD TP FAZIL
141421045

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2016

Universitas Sumatera Utara

PERSETUJUAN

Judul


: OTOMATISASI

INDEKS

EBOOK

ALGORITHMS

DENGAN MENGGUNAKAN ALGORITMA KNUTHMORRIS-PRATT DAN ALGORITMA QUICKSORT
Kategori

: SKRIPSI

Nama

: MUHAMMAD TP FAZIL

Nomor Induk Mahasiswa : 141421045
Program Studi


: EKSTENSI S1 ILMU KOMPUTER

Fakultas

: ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA

Diluluskan di
Medan, September 2016

Komisi Pembimbing :
Pembimbing 2

Pembimbing 1

Handrizal, S.Si, M.Comp, Sc
-

Dr. Poltak Sihombing, M.Kom NIP.
NIP. 19620317 199103 1 011


Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer
Ketua,

Dr. Poltak Sihombing, M.Kom
NIP. 19620317 199103 1 011

Universitas Sumatera Utara

PERNYATAAN

OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN MENGGUNAKAN
ALGORITMA KNUTH-MORRISPRATT DAN ALGORITMA QUICKSORT

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.


Medan,

September 2016

Muhammad TP Fazil
141421045

Universitas Sumatera Utara

PENGHARGAAN

Alhamdulillah segala puji dan syukur atas nikmat yang luas kepada Allah SWT sehingga
penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh
gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih dari penulis sampaikan kepada semua pihak yang telah
membantu penulis dalam menyelesaikan skripsi ini, dimulai dari yang paling teristimewa
adalah kedua orangtua penulis yang telah memberikan dukungan dengan penuh melalui
doa dan juga yang sangat mengasihi dan menyayani penulis. Dan selain itu juga, penulis
tidak lupa mengucapkan terimakasih 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 Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3.

Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara dan sebagai Dosen Pembimbing I yang
telah banyak memberikan ilmu pengetahuan dimulai dari pelajaran tentang
komputer, moral sampai dengan sikap yang mengajarkan untuk saling
menghargai satu sama lain, dan juga bimbingan dan saran kepada penulis dalam
menyelesaikan skripsi ini.

4.


Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu
Komputer Universitas Sumatera Utara.

5.

Bapak Handrizal, S.Si, M.Comp, Sc selaku Dosen Pembimbing II yang telah
memberikan banyak sekali masukan kepada penulis, baik itu saran, solusi,
pemecahan masalah sampai dengan bagaimana mengembangkan skripsi ini agar
dapat berguna untuk masyarakat umum.

Universitas Sumatera Utara

6.

Bapak Dr. Syahril Efendi, S.Si, M. IT selaku Dosen Pembanding I yang telah
banyak memberikan kritik dan masukan yang sangat baik kepada penulis
tentang kekurangan dan bagaimana caranya agar skripsi ini bagus dan dapat
digunakan oleh masyarakat pada umumnya.


7.

Bapak Drs. Marihat Situmorang, M.Kom selaku Dosen Pembanding II yang
telah memberikan kritik dan saran dalam menanggapi skripsi penulis dengan
sangat baik, dan sangat berguna dalam penyelesaian skripsi ini.

8.

Semua Dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas
Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

9.

Keluarga besar penulis, Orang tua Andrizal Y dan Alam M yang selalu
memberikan dukungan penuh kepada penulis baik itu berupa doa dan materi
untuk memenuhi kebutuhan penulis dalam menyelesaikan skripsi ini. Dan juga
kepada kakak dan abang dari penulis yaitu kakak saya Henny Andriyani S.H .
M.Kn, Evi Noviyanti S.Farm. Apt, dan abang saya Wahyuni Afriadi Amd yang
tidak pernah bosan dalam memberikan saran yang bagus kepada penulis
bagaimana caranya agar skripsi saya ini dapat segera selesai.


10. Teman sekaligus abang saya yaitu M. Iqbal Pradipta yang telah banyak
memberikan refrensi yang baik kepada saya tentang bagaimana cara
menyelesaikan permasalahan dalam algoritma.

11. Terima kasih kepada Putri Rizky Ayunita selaku sebagai teman saya yang telah
banyak mendukung saya dari belakang baik sampai pada akhirnya skripsi ini
selesai pada akhirnya.
12. Teman teman seperjuangan di ILKOM yaitu, Nur Rizki Handayani, Radja,
Zulfikar, Fanny Ramadhani dan banyak teman-teman yang lainnya yang telah
berkerja bersama sama dalam memberikan informasi yang berguna untuk
menjadikan skripsi ini berjalan dengan lancar.

Universitas Sumatera Utara

13. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak
dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi
ini.

Penulis sangat menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh

karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat
membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita
semuanya.
Medan, Oktober 2016
Penulis,

Muhammad TP Fazil

Universitas Sumatera Utara

OTOMATISASI INDEKS EBOOK ALGHORITMS DENGAN MENGGUNAKAN
ALGORITMA KNUTH-MORRIS-PRATT DAN ALGORITMA QUICKSORT

ABSTRAK

String matching adalah susunan dari karakter-karakter (angka, alfabet atau karakter yang
lain) dan biasanya direpresentasikan sebagai struktur dan array. String dapat berupa
kata, frase, atau kalimat. Pencocokan string (string matching) merupakan bagian penting
dari sebuah proses pencarian string (string searching) dalam sebuah dokumen. Hasil dari
sebuah pencarian string dalam dokumen tergantung dari teknik dan cara pencocokan

string yang digunakan. Desain analisis algoritma adalah prosedur komputasi yang
mengambil beberapa nilai atau set nilai-nilai sebagai output. Ini adalah tahap-tahap
komputasi yang akan mengubah input menjadi output. Dan merupakan alat untuk untuk
memecahkan berbagai permasalahan di dalam komputer. Netbeans adalah suatu proyek
open source yaitu platform untuk pengembangan aplikasi desktop java dan sebuah
Netbeans IDE (Integrated Development Environment). Pada penelitian ini, penulis akan
mengembangkan sebuah sistem analisis perancangan atau bisa juga disebut otomatisasi
indeks ebook yang berbasis bahasa pemrograman Java untuk mencari kata-kata yang
diinputkan oleh user kemudian menginformasikannya berupa letak dari kata tersebut
berupa indeks. Proses pencocokan string yang diinputkan oleh user kepada ebook
tersebut menggunakan algoritma KMP, setelah kata yang ditemukan sesuai maka sistem
akan menampilkan hasilnya di dalam sistem beserta waktu pencariannya dalam
microsecond, setelah itu informasi kata yang diperoleh disimpan ke dalam database
kemudian data tersebut disortir kembali berdasarkan abjad yang paling kecil sampai
dengan yang paling besar dengan menggunakan algoritma Quicksort, kemudian setelah
semua tersortir maka sistem akan menampilkan di dalam interface desktop hasil dari
pensortiran kata tersebut dan juga berserta waktu pencariannya.
Kata-kata Kunci : Desain analisis algoritma, String Matching, Knuth-Morris-Pratt,
Quicksort, Otomatisasi indeks ebook, Netbeans.

Universitas Sumatera Utara

AUTOMATION INDEX EBOOK OF ALGORITHMS USING KNUTH-MORRISPRATT AND QUICKSORT ALGHORITM

ABSTRACT

String matching is the array of characters (numbers, alphabets and other characters),
and is usually represented as structures and arrays. String can be a word, phrase, or
sentence. Matching string (string matching) is an important part of a process of the
search string (string searching) in a document. The results of a search string in a
document depends on the technique and the way the string matching used.Design
analysis algorithm is a computational procedure that takes some value or set of values
as an output. These are the stages computing will transform inputs into outputs. And a
tool for to solve various problems in the computer. NetBeans is an open source project
that is a platform for the development of java desktop application and a Netbeans IDE
(Integrated Development Environment). In this study, the authors will develop a system
design analysis, or it could be called an ebook index-based automation Java
programming language to search words entered by the user and then inform the form
layout of the word in the form of an index. The process of matching the string entered by
the user to the ebook using the KMP algorithm, once the word is found appropriate, the
system will display the result in the system along with a search in microseconds, after
the word information obtained is stored into the database then the data is sorted back
alphabetically the smallest to the greatest using Quicksort algorithm, then after all
sorted then the system will display in the desktop interface results of sorting the words
and also along time search.

Keywords: Design analysis of alghoritms, String Matching, Knuth-Morris-Pratt,
Quicksort, Otomatisation of indeks ebook, Netbeans.

Universitas Sumatera Utara

DAFTAR ISI

Halaman
Persetujuan
Pernyataan
Penghargaan
Abstrak
Abstract
Daftar Isi
Daftar Tabel
Daftar Gambar

ii
iii
iv
vii
viii
ix
xi
xii

BAB 1 PENDAHULUAN
1.1. Latar Belakang
1.2. Rumusan Masalah
1.3. Batasan Penelitian
1.4. Tujuan Penelitian
1.5. Manfaat Penelitian
1.6. Metodologi Penelitian
1.7. Sistematika Penulisan

1
2
3
3
4
4
5

BAB 2 LANDASAN TEORI
2.1. Desain Analisis Algoritma
2.2. Jenis-jenis Algoritma
2.2.1. Divide and Conquer
2.2.2. Dynamic Programming
2.2.3. Greedy Algorithm
2.3 Algoritma Quicksort
2.3.1. Metode Rekursif Dalam Algoritma Quicksort
2.3.2. Implementasi Quicksort
2.3.3. Kasus Terburuk Running Time Quicksort
2.3.4. Analisis Kasus Terburuk Running Time Pada Quicksort
2.3.5. Kasus Terbaik Analisis Running Time
2.4. Algoritma Knuth-Morris-Pratt (KMP)
2.4.1. Kelebihan Algoritma Knuth-Morris-Pratt (KMP)
2.4.2. Kekurangan Algoritma Knuth-Morris-Pratt (KMP)

6
8
8
8
8
9
10
11
14
14
15
15
17
17

2.4.3.

Fungsi Pinggiran Pada Metode KMP

17

2.4.4.

Alur Dari Algoritma KMP

17
Universitas Sumatera Utara

2.5. Netbeans
2.6. Flowchart

18
19

BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
3.2. Analisis Permasalahan
3.3. Analisis Kebutuhan Sistem
3.3.1. Kebutuhan fungsional
3.3.2. Kebutuhan non fungsional
3.4. Perancangan Sistem
3.4.1. Perancangan Flowchart
3.4.2. Use Case Diagram
3.4.3. Skenario Use Case
3.4.4. Activity Diagram
3.4.5. Sequence Diagram
3.5. Analisis Proses
3.5.1. Analisis Proses Algoritma Knuth-Morris-Pratt
3.5.2
Analisis Algoritma Quicksort
3.6. Perancangan Antar Muka Sistem (Interface)
3.6.1. Halaman Login
3.6.2. Rancangan Menu
3.6.3
Rancangan Halaman Baca Buku
3.6.4. Rancangan Halaman Pencarian Kata
3.6.5. Rancangan Halaman Help

22
23
24
24
25
26
27
28
29
32
33
34
34
35
35
36
37
38
39
41

BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
4.1.1. Tampilan Halaman Utama
4.1.2. Tampilan Halaman Menu
4.1.3. Tampilan Halaman Baca Buku
4.1.4. Tampilan Halaman Hasil
4.1.5. Tampilan Halaman Help
4.2. Pengujian
4.2.1. Pengujian sistem Algoritma Knuth-Morris-Pratt
4.2.2. Pengujian sistem Algoritma Quicksort

43
43
44
45
46
47
48
48
52

BAB 5 KESIMPULAN DAN SARAN
5.1. Kesimpulan
5.2. Saran
DAFTAR PUSTAKA

55
55

Universitas Sumatera Utara

DAFTAR TABEL

Hal.
Tabel 2.1.
Tabel 2.2.
Tabel 2.3.
Tabel 2.4.
Tabel 3.1.
Tabel 3.2.
Tabel 3.3.
Tabel 3.4.
Tabel 3.5.
Tabel 3.6.
Tabel 3.7.
Tabel 3.8.
Tabel 3.9.
Tabel 3.10.
Tabel 3.11.
Tabel 3.12.
Tabel 3.13.

Running Time Quicksort
Fungsi Pinggiran
Flowchart Program
Flowchart System
Use Case
Scenario-01
Scenario-02
Scenario-03
Scenario-04
Scenario-05
Scenario-06
Scenario-07
Keterangan Bagian-bagian Rancangan Halaman Utama
Keterangan Bagian-bagian Rancangan Halaman Menu
Keterangan Bagian-bagian Rancangan Halaman Baca Buku
Keterangan Rancangan Halaman Pencarian Kata
Keterangan Rancangan Halaman Help

14
17
19
20
29
29
30
30
30
31
31
32
36
37
39
40
42

Universitas Sumatera Utara

DAFTAR GAMBAR

Halaman
Gambar 2.1.
Gambar 2.2.
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 3.10.
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

Keadaan Setelah Pivot Didapatkan
Pergeseran Dalam Algoritma Pencocokan String
Diagram Ishikawa Untuk Analisis Masalah
Flowchart Sistem Aplikasi
Use Case Sistem Aplikasi
Activity Diagram Sistem Aplikasi
Sequence Sistem Aplikasi
Rancangan Login
Rancangan Halaman Menu
Rancangan Halaman Baca Buku
Rancangan Halaman Pencarian Kata
Rancangan Halaman Help
Tampilan Halaman Utama
Tampilan Halaman Menu
Tampilan Halaman Pilih File Sebelum Upload File
Tampilan Halaman Baca Buku Setelah File Diupload
Tampilan Halaman Sebelum Melakukan Proses Pencarian kata
Tampilan Halaman Hasil
Tampilan Halaman Help
Isi Dalam Database Sebelum Dilakukannya Proses Penginputan
Input Kata Sebelum Proses
Input Kata Dengan Beberapa Aplikasi Terbuka
Proses Pencocokan Kata Dengan Beberapa Aplikasi Tertutup
Proses Pencocokan Kata Dengan Jumlah Huruf Lebih Banyak
Kata Yang Sudah Tersimpan di Dalam Database
Kata Didalam Database Yang Ditampilkan Di dalam Aplikasi
Kata Di dalam Database Yang Telah Tersortir
Kata Didalam Database Yang Telah Tersortir
Kode ASCII

10
11
22
27
28
33
34
36
37
39
40
42
44
44
45
45
46
46
47
48
49
49
50
51
52
52
53
53
54

Universitas Sumatera Utara