SISTEM TERDISTRIBUSI
SKRIPSI
ATRAS NAJWAN
121402060
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Teknologi Informasi
ATRAS NAJWAN 121402060
PROGRAM STUDI S1 TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : FOCUSED WEB CRAWLER DENGAN SISTEM TERDISTRIBUSI
Kategori : SKRIPSI
Nama : ATRAS NAJWAN Nomor Induk Mahasiswa : 121402060
Program Studi : S1 TEKNOLOGI INFORMASI Departemen : TEKNOLOGI INFORMASI
Fakultas : FAKULTAS ILMU KOMPUTER DAN EKNOLOGI INFORMASI
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Dani Gunawan, ST., M.T Amalia, ST., M.T
NIP. 19820915 201212 1 002 NIP. 19791221 201404 2 001
Diketahui/disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
PERNYATAAN
FOCUSED WEB CRAWLER DENGAN SISTEM TERDISTRIBUSI
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, 27 Agustus 2016
UCAPAN TERIMA KASIH
Puji dan syukur penulis sampaikan ke hadirat Allah SWT yang telah memberikan rahmat serta restu-Nya sehingga penulis dapat menyelesaikan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Teknologi Informasi.
Pertama, penulis ingin mengucapkan terima kasih kepada Ibu Amalia S.T., M.T. selaku pembimbing pertama dan Bapak Dani Gunawan, S.T., M.T. selaku pembimbing kedua yang telah meluangkan waktu dan tenaganya untuk membimbing penulis dalam penelitian serta penulisan skripsi ini. Tanpa inspirasi serta motivasi yang diberikan dari kedua pembimbing, tentunya penulis tidak akan dapat menyelesaikan skripsi ini. Penulis juga mengucapkan terima kasih kepada Bapak Prof. Dr. Opim Salim Sitompul, M.Sc. sebagai dosen pembanding pertama dan Ibu Dr. Elviawaty Muisa Zamzami, S.T., M.T., M.M. sebagai dosen pembanding kedua yang telah memberikan masukan serta kritik yang bermanfaat dalam penulisan skripsi ini. Ucapan terima kasih juga ditujukan kepada semua dosen serta pegawai di lingkungan program studi Teknologi Informasi, yang telah membantu serta membimbing penulis selama proses perkuliahan.
Penulis tentunya tidak lupa berterima kasih kepada orang tua penulis, yaitu Bapak Dr. Jamaludin, M.A., Ibu Tansa Trisna SHB, S.Pd.I. dan Ibu Almh. Khairani yang telah membesarkan penulis dengan sabar dan penuh kasih sayang, serta doa dari mereka yang selalu menyertai selama ini. Terima kasih juga penulis ucapkan kepada kakak penulis Rizka Zulhaini, S.S. dan adik penulis Nabilah Alwani yang selalu memberikan dukungan kepada penulis.
ABSTRAK
Salah satu teknik untuk mengumpulkan informasi berupa artikel dari Internet adalah dengan menggunakan mesin crawler. Salah satu algoritma untuk mengumpulkan artikel hanya untuk topik tertentu pada sebuah mesin crawler dapat menggunakan Focused Crawling Algorithm dengan metode pengklasifikasian seperti naive bayes. Tahapan pengumpulan artikel meliputi algoritma ekstraksi dan pengklasifikasian artikel. Ekstraksi artikel dilakukan untuk dapat mengetahui isi kandungan artikel sehingga artikel dapat di klasifikasikan apakah termasuk artikel dengan topik tertentu atau bukan. Untuk mempercepat waktu yang dibutuhkan dalam pengumpulan informasi maka dapat dirancang dengan sistem terdistribusi dan dikombinasikan dengan metode
multithreading dan pemakaian algoritma larger site first dalam pengurutan situs yang akan di-crawl pertama kali. Penelitian dilakukan dengan menggunakan thread dan
bandwith yang berbeda. Selain menghitung hasil dari crawling, peneliti juga menghitung penggunaan heap memory dan cpu pada saat proses crawling. Hasil yang didapat adalah hasil crawling menggunakan algoritma larger site first lebih tinggi dibandingkan dengan tidak menggunakannya. Begitu juga dengan penggunaan thread
dan bandwith, semakin besar maka semakin besar juga hasilnya. Akan tetapi ada berapa faktor yang menyebabkan menurunnya performa walaupun thread yang digunakan banyak. Untuk itu thread yang efektif digunakan pada penelitian kali ini adalah dengan 500 thread.
FOCUSED WEB CRAWLER WITH DISTRIBUTED SYSTEM
ABSTRACT
One technique for collecting information in the form of articles on the Internet is to use web crawler. One of algorithm to collect articles only for particular topics on web crawler can be use Focused Crawling Algorithm with classification method such as Naive Bayes. The stages collection of articles covering the extraction content and classification. Article extraction is to determine the contents of the articles, so that the article can be classified if the articles is on a specific topic or not. To speed up the time of collecting information, then can be designed with distributed systems and combined with multithreading method and larger site first algorithm in the sequencing of the site will be crawled first. The research was conducted by using a different thread and internet bandwidth. In addition to calculating the results of the crawling, the researchers also calculated the use of heap memory and cpu while crawling process. The results obtained are the result of usage larger site algorithm is higher compared to not using it. Likewise with the use of thread and bandwidth higher then the higher the results. But many factors can be decreased performance although the thread used a lot. Therefore the effective thread used in this research is the 500 threads.
DAFTAR ISI
PERSETUJUAN iii
PERNYATAAN iv
UCAPAN TERIMA KASIH v
ABSTRAK vi
ABSTRACT Error! Bookmark not defined.
DAFTAR ISI viii
1.6. Metodologi Penelitian 4
1.7. Sistematika Penulisan 4
BAB 2 LANDASAN TEORI 7
2.1. Web Crawler 7
2.2. Multithreading 8
2.3. Boilerpipe 9
2.4. Text Prepocessing 10
2.5. Naïve Bayes Classifier 10
2.6. Sistem Terdistribusi 11
2.7. Apache Ignite 13
2.8.1. In-Memory Compute Grid 13 2.8.2. In-Memory Data Grid 14
2.8. Penelitian Terdahulu 14
3.1. Analisis Sistem 16
3.2. Perancangan Sistem 17
3.2.1. Tahapan Perancangan Sistem 18 3.2.1.1. Perancangan Crawler Master 18 3.2.1.2. Perancangan Crawler Slaves 21 3.2.2. Tahapan Percobaan Sistem 23 3.2.3. Perancangan Sistem Bagian Depan (Front End) 23 BAB 4 IMPLEMENTASI DAN PENGUJIAN 27
4.1. Hasil Site Ordering 27
4.2. Hasil Crawling 29
4.3. Hasil Content Extraction 29
4.4. Hasil Pengujian 31
4.5. Implementasi Sistem Bagian Depan (Front-End) 41
4.5.1. Tampilan Antarmuka 41
4.5.1.1. Tampilan Crawler Master 41 4.5.1.2. Tampilan Crawler Slaves 43 4.5.2. Prosedur Operasional 44 4.5.2.1. Single Mode (Non Distributed) 44 4.5.2.2. Distributed Mode 45
BAB 5 KESIMPULAN DAN SARAN 47
5.1. Kesimpulan 47
5.2. Saran 48
DAFTAR TABEL
Tabel 2.1 Jenis Boilerpipe Extraction 9
Tabel 3.1 Daftar seeds URL 18
Tabel 3.2 Kata kunci bidang kesehatan 21 Tabel 3.3 Kata kunci bidang bukan kesehatan 21 Tabel 3.4 Rancangan percobaaan thread dan bandwith 23 Tabel 4.1 Hasil Site Ordering menggunakan Larger Site First Algorithm 27 Tabel 4.2. Hasil percobaan akurasi klasifikasi 31 Tabel 4.3. Hasil Crawling dengan LSF pada bandwith 2 Mbps (jumlah file) 31 Tabel 4.4. Hasil Crawling tidak dengan LSF pada bandwith 2 Mbps (jumlah file) 32 Tabel 4.5. Hasil Crawling dengan LSF pada bandwith 2 Mbps (ukuran file (KB)) 32 Tabel 4.6. Hasil Crawling tidak dengan LSF pada bandwith 2 Mbps (ukuran file
(KB)) 32
Tabel 4.7. Hasil Crawling dengan LSF pada bandwith 3 Mbps (jumlah file) 32 Tabel 4.8. Hasil Crawling tidak dengan LSF pada bandwith 3 Mbps (jumlah file) 33 Tabel 4.9. Hasil Crawling dengan LSF pada bandwith 3 Mbps (ukuran file (KB)) 33 Tabel 4.10. Hasil Crawling tidak dengan LSF pada bandwith 3 Mbps (ukuran file
(KB)) 33
Tabel 4.11. Hasil Crawling dengan LSF pada bandwith 5 Mbps (jumlah file) 33 Tabel 4.12. Hasil Crawling tidak dengan LSF pada bandwith 5 Mbps (jumlah file) 34 Tabel 4.13. Hasil Crawling dengan LSF pada bandwith 5 Mbps (ukuran file (KB)) 34 Tabel 4.14. Hasil Crawling tidak dengan LSF pada bandwith 5 Mbps (ukuran file
DAFTAR GAMBAR
Gambar 2.1 Arsitektur Web Crawler 8 Gambar 2.2 Ilustrasi Boilerpipe 9 Gambar 2.3 Klasifikasi Naïve Bayes sebagai jaringan bayes dengan atribut prediksi
(P1, P2, …….Pk) dan kelas (C) 10
Gambar 2.4 Fitur Apache Ignite 13 Gambar 2.5 In-Memory Compute Grid 14 Gambar 2.6 In-Memory Data Grid 14
Gambar 3.1. Arsitektur Umum 17
Gambar 3.2. Pseudocode pembagian seeds URL 19 Gambar 3.3. Ilustrasi pembagian job pada Apache Ignite 19 Gambar 3.4. Konfigurasi database (Crawler master) 24 Gambar 3.5. Konfigurasi distributed mode (Crawler master) 24 Gambar 3.6. Ilustrasi crawler depth 25 Gambar 3.7. Konfigurasi Crawler (Crawler master) 25 Gambar 3.8. Konfigurasi Seeds (Crawler master) 26 Gambar 3.9. Konfigurasi pada crawler slaves 26 Gambar 4.1. Contoh hasil filter menggunakan boilerpipe 29 Gambar 4.2. Contoh hasil Tokenizing 30 Gambar 4.3. Contoh hasil Case Folding 30 Gambar 4.4. Contoh hasil Filtering 30 Gambar 4.5. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan
tidak (2 Mbps) 35
Gambar 4.6. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan
tidak (3 Mbps) 35
Gambar 4.7. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan
tidak (5 Mbps) 36
Gambar 4.8. Grafik perbandingan jumlah hasil dengan bandwith yang berbeda
menggunakan LSF 36
Gambar 4.10. Grafik perbandingan jumlah hasil (ukuran file) dengan bandwith yang
berbeda menggunakan LSF 37
Gambar 4.11. Grafik perbandingan jumlah hasil (ukuran file) dengan bandwith yang berbeda tidak menggunakan LSF 38 Gambar 4.12. Error yang didapatkan pada percobaan menggunakan 2000 thread 38 Gambar 4.13. Grafik penggunaan heap memory di komputer A menggunakan LSF 39 Gambar 4.14. Grafik penggunaan heap memory di komputer B tidak menggunakan
LSF 39
Gambar 4.15. Grafik penggunaan CPU di komputer C menggunakan LSF 40 Gambar 4.16. Grafik penggunaan CPU di komputer C tidak menggunakan LSF 40
Gambar 4.17. Tampilan ‘DB Config’ pada crawler master 42
Gambar 4.18. Tampilan ‘Distributed Mode’ pada crawler master 42
Gambar 4.19. Tampilan ‘Crawler Config’ pada crawler master 43
Gambar 4.20. Tampilan ‘Seeds’ URL pada crawler master 43
Gambar 4.21. Tampilan ‘Crawler Config’ padacrawler master 44
Gambar 4.22. Tampilan ‘Edit VM Argument’ pada crawler master 44
Gambar 4.23. Contoh tampilan menjalankan node pada crawler slaves 45 Gambar 4.24. Contoh tampilan informasi node yang aktif 45 Gambar 4.25. Contoh tampilan menjalankan crawler master pada ‘Distributed
Mode’ 46