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 MEDAN 2016
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
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, Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 011
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 Muhammad TP Fazil 141421045
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. 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. 3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer 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. 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.
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. 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.
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
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.
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. Keywords: Design analysis of alghoritms, String Matching, Knuth-Morris-Pratt, Quicksort, Otomatisation of indeks ebook, Netbeans.
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 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 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 11 14 14 15 2.4.3. Fungsi Pinggiran Pada Metode KMP 17 2.4.4. Alur Dari Algoritma 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 3.4.3. Skenario Use Case 29 3.4.4. Activity Diagram 32 3.4.5. Sequence Diagram 33 3.5. Analisis Proses 34 3.5.1. 3.5.2 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 4.1.4. 4.1.5. Tampilan Halaman Hasil Tampilan Halaman Help 46 47 4.2. Pengujian 48 4.2.1. 4.2.2. Pengujian sistem Algoritma Knuth-Morris-Pratt Pengujian sistem Algoritma Quicksort BAB 5 KESIMPULAN DAN SARAN 5.1. Kesimpulan 55 5.2. Saran 55 DAFTAR PUSTAKA 48 52
DAFTAR TABEL 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 Tabel 3.9. Keterangan Bagian-bagian Rancangan Halaman Utama 36 Tabel 3.10. Keterangan Bagian-bagian Rancangan Halaman Menu 37 Tabel 3.11. Keterangan Bagian-bagian Rancangan Halaman Baca Buku 39 Tabel 3.12. Keterangan Rancangan Halaman Pencarian Kata 40 Tabel 3.13. Keterangan Rancangan Halaman Help 42 Hal.
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. Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 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 47 48 49 49 50 51 52 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Kata Didalam Database Yang Ditampilkan Di dalam Aplikasi Kata Di dalam Database Yang Telah Tersortir Kata Didalam Database Yang Telah Tersortir Kode ASCII 52 53 53 54