OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN
MENGGUNAKAN ALGORITMA KNUTH-MORRIS-
PRATT DAN ALGORITMA QUICKSORT
SKRIPSI
MUHAMMAD TP FAZIL
141421045
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
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
PERSETUJUAN
Judul : OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-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,
PERNYATAAN
OTOMATISASI INDEKS EBOOK ALGORITHMS DENGAN MENGGUNAKAN ALGORITMA KNUTH-MORRIS-
PRATT 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
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.
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.
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,
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,
AUTOMATION INDEX EBOOK OF ALGORITHMS USING
KNUTH-MORRIS-PRATT 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.
DAFTAR ISI
Daftar Gambar xii
BAB 1 PENDAHULUAN
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan Penelitian 3
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 4 1.6. Metodologi Penelitian 4 1.7. Sistematika Penulisan 5
BAB 2 LANDASAN TEORI
2.1. Desain Analisis Algoritma 6 2.2. Jenis-jenis Algoritma 8 2.2.1. Divide and Conquer 8 2.2.2. Dynamic Programming 8 2.2.3. Greedy Algorithm 8 2.3 Algoritma Quicksort 9 2.3.1. Metode Rekursif Dalam Algoritma Quicksort 10 2.3.2.
2.3.3. 2.3.4. 2.3.5.
Implementasi Quicksort
Kasus Terburuk Running Time Quicksort
Analisis Kasus Terburuk Running Time Pada Quicksort
Kasus Terbaik Analisis Running Time
11 14 14 15 2.4. Algoritma Knuth-Morris-Pratt (KMP) 15 2.4.1. Kelebihan Algoritma Knuth-Morris-Pratt (KMP) 17 2.4.2. Kekurangan Algoritma Knuth-Morris-Pratt (KMP) 17
2.5. Netbeans 18
2.6. Flowchart 19
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem 22
3.2. Analisis Permasalahan 23 3.3. Analisis Kebutuhan Sistem 24 3.3.1. Kebutuhan fungsional 24 3.3.2. Kebutuhan non fungsional 25 3.4. Perancangan Sistem 26 3.4.1. Perancangan Flowchart 27 3.4.2. Use Case Diagram 28
Analisis Proses Algoritma Knuth-Morris-Pratt
Analisis Algoritma Quicksort
34 35 3.6. Perancangan Antar Muka Sistem (Interface) 35 3.6.1. Halaman Login 36 3.6.2. Rancangan Menu 37 3.6.3 Rancangan Halaman Baca Buku 38 3.6.4. Rancangan Halaman Pencarian Kata 39 3.6.5. Rancangan Halaman Help 41
BAB 4 IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi 43
4.1.1. Tampilan Halaman Utama 43 4.1.2. Tampilan Halaman Menu 44 4.1.3. Tampilan Halaman Baca Buku 45
Pengujian sistem Algoritma Knuth-Morris-Pratt
Pengujian sistem Algoritma Quicksort
48 52
BAB 5 KESIMPULAN DAN SARAN
5.1. Kesimpulan 55
5.2. Saran 55
DAFTAR TABEL
Hal.
Tabel 2.1. Running Time Quicksort 14 Tabel 2.2. Fungsi Pinggiran 17 Tabel 2.3. Flowchart Program 19 Tabel 2.4. Flowchart System 20
Tabel 3.1. Use Case 29
Tabel 3.2. Scenario-01 29
Tabel 3.3. Scenario-02 30
Tabel 3.4. Scenario-03 30
Tabel 3.5. Scenario-04 30
Tabel 3.6. Tabel 3.7.
Scenario-05 Scenario-06
31 31
Tabel 3.8. Scenario-07 32
DAFTAR GAMBAR
Halaman
Gambar 2.1. Keadaan Setelah Pivot Didapatkan 10 Gambar 2.2.
Gambar 3.1
Pergeseran Dalam Algoritma Pencocokan String Diagram Ishikawa Untuk Analisis Masalah
11 22 Gambar 3.2. Flowchart Sistem Aplikasi 27 Gambar 3.3. Use Case Sistem Aplikasi 28 Gambar 3.4. Activity Diagram Sistem Aplikasi 33 Gambar 3.5. Sequence Sistem Aplikasi 34 Gambar 3.6. Rancangan Login 36 Gambar 3.7. Rancangan Halaman Menu 37 Gambar 3.8. Rancangan Halaman Baca Buku 39 Gambar 3.9. Rancangan Halaman Pencarian Kata 40 Gambar 3.10. Rancangan Halaman Help 42 Gambar 4.1. Tampilan Halaman Utama 44 Gambar 4.2. Tampilan Halaman Menu 44 Gambar 4.3. Tampilan Halaman Pilih File Sebelum Upload File 45 Gambar 4.4. Tampilan Halaman Baca Buku Setelah File Diupload 45 Gambar 4.5. Tampilan Halaman Sebelum Melakukan Proses Pencarian kata 46 Gambar 4.6. Tampilan Halaman Hasil 46 Gambar 4.7.
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
47
Kata Didalam Database Yang Ditampilkan Di dalam Aplikasi Kata Di dalam Database Yang Telah Tersortir
Kata Didalam Database Yang Telah Tersortir Kode ASCII