Focused Web Crawler Dengan Sistem Terdistribusi

(1)

DAFTAR PUSTAKA

Achsan, H. T. Y. & Wibowo, W. C., 2013 . A Fast Distributed Focused-Web Crawling.

24th DAAAM International Symposium on Intelligent Manufacturing and Automation,

p. 492 – 499.

Apache Ignite, 2016. Apache Ignite. [Online] Available at: https://ignite.apache.org

[Diakses 16 September 2016].

APJII, 2015. Profil Pengguna Internet Indonesia 2014. Jakarta: Asosiasi Penyelenggara Jasa Internet Indonesia.

Avraam, I. & Anagnostopoulos, I., 2011. A Comparison over Focused Web Crawling Strategies. 15th Panhellenic Conference On Informatics (PCI), p. 245 – 249.

Baeza-Yates, R., Marin, M., Castillo, C. & Rodriguez, A., 2005. Crawling a Country: Better Strategies than Breadth-First for Web Page Ordering.

Chakrabarti, S., Berg, M. v. d. & Dom, B., 1999. Focused Crawling: A New Approach to Topic-Specific Web Resource Discovery. Computer Networks, pp. 1623-1640. Coulouris, G. F., Dollimore, J. & Kindberg, T., 2012. Distributed Systems: Concepts and Design. 5 penyunt. Boston: Addison Wesley.

Ikatan Dokter Anak Indonesia, 2015. IDAI - Public Articles. [Online] Available at: http://www.idai.or.id/artikel

[Diakses 11 Juli 2016].

Janbandhu, R., Dahiwale, P. & Raghuwanshi, . M., 2014. Analysis of Web Crawling Algorithms. International Journal on Recent and Innovation Trends in Computing and Communication, p. 488 – 492 .

Kateglo, 2016. Kateglo ~ Kamus, tesaurus, dan glosarium bahasa Indonesia. [Online] Available at: http://www.kateglo.com/

[Diakses 1 Agustus 2016].

Kementerian Kesehatan Republik Indonesia, 2013. Kementerian Kesehatan Republik Indonesia - Kamus. [Online]

Available at: http://www.depkes.go.id/folder/view/full-content/structure-kamus.html [Diakses 21 Juli 2016].

Khodra, L. M. & Wibisono, Y., 2005. Clustering Berita Berbahasa Indonesia. Jurnal FPMIPA UPI dan KK Informatika ITB.

Kohlschütter, C., 2016. Boilerpipe. [Online] Available at: https://boilerpipe-web.appspot.com/ [Diakses 15 September 2016].


(2)

Kohlschütter, C., Fankhauser, P. & Nejdl, W., 2010. Boilerplate Detection using Shallow Text Features. The third ACM international conference on Web search and data mining, pp. 441-450.

Kritikopoulos, A., Sideri, M. & Stroggilos, K., 2004. CrawlWave: A Distributed Crawler. 3rd Hellenic Conference on Artificial Intelligence.

Loo, B. T., Cooper, O. & Krishnamurthy, S., 2001. Distributed Web Crawling over DHTs.

McCallum, A. & Nigam, K., 1998. A Comparison of Event Models for Naive Bayes Text Classification. AAAI/ICML-98 Workshop on Learning for Text Categorization, pp. 41-48.

Nasri, M., Shariati, S. & Sharifi, M., 2008. Availability and Accuracy of Distributed Web Crawlers: A Model-Based Evaluation. Second UKSIM European Symposium on Computer Modeling and Simulation, pp. 453-458.

Rajaraman, A. & Ullman, J. D., 2011. Mining of Massive Datasets. United Kingdom: Cambridge University Press.

Salton, M., 1983. Introduction to Modern Information Retrieval. New York: McGraw Hill.

Seeger, M., 2010. Building Blocks of A Scalable Web Crawler. Tesis. Stuttgart Media University.

Sharma, S. & Gupta, P., 2015. The Anatomy of Web Crawlers. International Conference on Computing, Communication and Automation (ICCCA2015), pp. 849-853.

Tala, F. Z., 2003. A Study of Stemming Effects on Information Retrieval in Bahasa Indonesia. Skripsi. Universiteit van Amsterdam.

Treselle System, 2014. Boilerpipe – Web Content Extraction without Boilerplates.

[Online]

Available at: http://www.treselle.com/blog/boilerpipe-web-content-extraction-without-boiler-plates/

[Diakses 6 Agustus 2016].

Triawati, C., 2009. Metode Pembobotan Statistical Concept Based untuk Klastering dan Kategorisasi Dokumen Berbahasa Indonesia. s.l.:s.n.

Tsai, C. H., Ku, T., Yang, P. Y. & Chen, M. J., 2014. A Distributed Multi-Tasking Job Scheduling Mechanism for Web Crawlers. International Conference of Soft Computing and Pattern Recognition, pp. 243-248.

Wang, W. et al., 2010. A Focused Crawler Based on Naive Bayes Classifier. Third International Symposium on Intelligent Information Technology and Security Informatics, pp. 517-521.


(3)

Weiss, S., Indurkhya, N., Zhang, T. & Damerau, F., 2005. Text Mining: Predictive Methods fo Analyzing Unstructered Information. New York: Springer.

Wikipedia, 2010. Multithreading (computer architecture). [Online] Available at: https://en.wikipedia.org/wiki/Multithreading_(computer_architecture) [Diakses 15 September 2016].

Wikipedia, 2016. Web crawler. [Online]

Available at: https://en.wikipedia.org/wiki/Web_crawler [Diakses 15 September 2016].

Zhou, B., Xiao, B., Lin, Z. & Zhang, C., 2010. A Distributed Vertical Crawler Using Crawling-Period Based Strategy. 2nd International Conference on Future Computer and Communication, pp. 306-311.


(4)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Bab ini menjelaskan tentang analisis dan perancangan sistem yang bangun untuk

focused crawler dengan sistem terdistribusi. Adapun dua tahapan yang dibahas pada bab ini yaitu tahap analisis dan tahap perancangan sistem. Pada analisis sistem meliputi kebutuhan perangkat lunak dan perangkat keras dan pada perancangan sistem meliputi tahapan untuk perancangan sistem terdistribusi dan juga tahapan percobaan yang dilakukan.

3.1. Analisis Sistem

Focused crawler dengan sistem terdistribusi dalam penelitian kali ini dirancang dengan syarat sebagai berikut:

 Sistem yang terdistribusi yang dibangun menggunakan 1 buah PC (Personal Computer) master dan 4 buah PC slaves.

 PC master bertugas untuk mengkoordinasikan tugas kepada komputer slaves

dan juga memberikan daftar seeds URL yang akan di-crawl pada masing-masing slaves

 PC slaves bertugas untuk crawling dan juga klasifikasi konten  PC master yang digunakan dengan spesifikasi:

1) Processor Intel Core i5-3450 3.10 GHz 2) RAM 4 GB

3) Windows 7 Ultimate 64 bit 4) HDD 250 GB

5) Java 1.8.0_74


(5)

 PC slaves sebanyak 4 buah komputer PC yang memiliki spesifikasi hardware

yang sama yaitu:

1) Processor Inter Core i3-4150 3.50 GHz 2) RAM 2 GB

3) Windows 7 Enterprise 64 bit 4) HDD 250 GB

5) Java 1.8.0_74

 Komunikasi data antara master dan slaves menggunakan jaringan LAN (Local Area Network)

3.2. Perancangan Sistem

Perancangan sistem dilakukan berdasarkan arsitektur berikut ini :


(6)

3.2.1. Tahapan Perancangan Sistem

Perancangan sistem meliputi perancangan crawler master dan crawler slaves. Kedua jenis crawler ini memiliki perbedaan tugas sehingga memiliki tahapan perancangan yang berbeda.

3.2.1.1. Perancangan Crawler Master

Berikut ini adalah beberapa tugas dari crawler master sebagai berikut: 1) Memanajemen seeds URL

Pada penelitian ini seeds URL yang digunakan dapat dilihat pada tabel 3.1.

Tabel 3.1 Daftar seeds URL

No. URL

1 http://anakkitasehat.com/

2 http://artikelkesehatananak.com/ 3 http://artikeltentangkesehatan.com/ 4 http://bebeclub.co.id/article/ 5 http://bidanku.com/

6 http://dechacare.com/

7 http://dikes.badungkab.go.id/index.php/arsip-artikel 8 http://doktersehat.com/

9 http://duniaanak.org/ 10 http://family.fimela.com/ 11 http://health.detik.com/ 12 http://ibuhamil.com/ 13 http://webkesehatan.com/

14 http://www.4life-4transferfactor.com/ 15 http://www.alodokter.com/

16 http://www.anakdanbalita.net/ 17 http://www.beritahu.me/ 18 http://www.caramedis.com/ 19 http://www.depkes.go.id/ 20 http://www.doktergratis.org/ 21 http://www.infoanak.com/ 22 http://www.infoibu.com/

23 http://www.informasikesehatan.my.id/ 24 http://www.kesehatan-ibuanak.net/ 25 http://www.posyandu.org/

26 http://www.vemale.com/tags/kesehatan-anak/ 27 https://anakbayibalita.wordpress.com/


(7)

29 https://www.ibudanbalita.com/ 30 https://www.klikdokter.com/

31 https://www.progoldparentingclub.co.id/ 32 https://www.tanyadok.com/

URL ini dipilih karena menurut penulis berisi konten-konten artikel yang berhubungan dengan topik yang dipilih (dalam hal ini ‘kesehatan’) 2) Membagikan seeds URL untuk setiap crawler slaves

Crawler master membagikan seeds URL yang ada ke semua crawler slaves yang ada, pseudocode yang diimplimentasikan dalam penelitan.

Gambar 3.2. Pseudocode pembagian seeds URL

Setiap job memiliki tugas untuk meng-crawl seeds URL yang telah ditetapkan. Setiap pembuatan job, apache ignite dalam fitur computer grid akan otomatis membagikan job pada setiap node yang ada, dimana ilustrasinya dapat dilihat pada gambar 3.3.

Gambar 3.3. Ilustrasi pembagian job pada Apache Ignite

3) Site ordering

Pada penelitian ini penulis membuat dua model site ordering yaitu dengan algoritma Larger Sites First dan tanpa Larger Sites First.

Inisialisasi seeds URL yang tersedia FOR setiap URL yang tersedia

Buat job


(8)

Perancangan untuk algoritma ini adalah user dapat memilih apakah akan menggunakan Larger Site First atau tidak.

Algoritma ini mengurutkan dari website terbesar sampai yang terkecil, yang dapat diketahui dengan menghitung jumlah link yang dimilikinya. Semakin banyak link yang dimiliki maka semakin besar website tersebut.

4) Training

Hal pertama yang dilakukan pada tahap ini adalah mengumpulkan

dataset mengenai topik (dataset kesehatan). Dalam penelitian ini terdapat 2 dataset yaitu dataset kesehatan dan bukan kesehatan. Penulis menjadikan kata-kata kunci bidang kesehatan menjadi dataset kesehatan yang akan diinginkan untuk proses training. Penulis memperoleh kata kunci kesehatan dari http://www.idai.or.id/, http://www.depkes.go.id/ dan http://www.kateglo.com/.

Untuk dari situs http://www.idai.or.id/ penulis mengambil 284 artikel yang terdapat pada situs tersebut dan menghitung nilai TF-IDF dari artikel-artikel tersebut dan mengambil 1000 nilai TF-IDF paling besar lalu menyaring kembali secara manual dan akhirnya didapatkan sebanyak 367 kata.

Untuk dari situs http://www.depkes.go.id/ penulis mengambil kata kunci

kesehatan dari halaman kamus

(http://www.depkes.go.id/folder/view/full-content/structure-kamus.html) dan hanya mengambil kata yang bukan merupakan singkatan dan hanya memiliki satu katadan didapatkan sebanyak 697 kata.

Untuk dari situs http://www.kateglo.com/ penulis mengambil kata-kata

dari halaman glosarium

(http://www.kateglo.com/?phrase=&mod=glossary) pada bidang kedokteran dan farmasi dan hanya memiliki satu kata, sehingga didapatkan sebanyak 5435 kata untuk bidang kedokteran dan 2493 kata untuk bidang farmasi.


(9)

Penulis juga mengambil kata-kata untuk bidang selain kesehatan dari situs http://www.kateglo.com/ yaitu bidang ekonomi, keuangan, olahraga, otomotif, politik dan teknologi informasi. Untuk lebih lengkapnya dapat dilihat pada tabel 3.2 dan 3.3.

Tabel 3.2 Kata kunci bidang kesehatan

Sumber Jumlah Kata

http://www.idai.or.id/ 367

http://www.depkes.go.id/ 697

http://www.kateglo.com/ (Kedokteran) 5435 http://www.kateglo.com/ (Farmasi) 2493

Jumlah 8992

Tabel 3.3 Kata kunci bidang bukan kesehatan

Sumber Jumlah Kata

http://www.kateglo.com/ (Ekonomi) 264 http://www.kateglo.com/ (Keuangan) 257 http://www.kateglo.com/ (Olahraga) 15 http://www.kateglo.com/ (Otomotif) 140 http://www.kateglo.com/ (Politik) 683 http://www.kateglo.com/ (Teknologi

Informasi) 366

Jumlah 1461

3.2.1.2. Perancangan Crawler Slaves

Setelah mendapatkan daftar seeds URL yang akan di-crawl dari master, slaves

akan melakukan tugasnya sebagai berikut:

1) Crawling

a. Fetch

Mengambil konten dari halaman web dari URL yang sedang


(10)

b. Parse

Mem-parse HTML untuk mendapatkan tag maupun atribute

HTML untuk mendapatkan konten yang diinginkan dari halaman tersebut dan mengambil link yang ada di halaman tersebut yang akan dimasukkan kedalam URL Queue untuk di-crawl

selanjutnya.

c. Filter

Menyaring konten halaman agar mendapatkan konten artikel dengan cara menghilangkan konten-konten seperti boilerpate

ataupun template yang dipakai pada halaman tersebut dan mengambil konten utamanya.

2) Content Extraction

a. Tokenizing

Tokenizing atau tokenisasi adalah proses awal dimana artikel tersebut akan dihapus beberapa tanda baca yang tidak perlu seperti tanda seru (!), koma (,) dan lain – lain dan dijadikan berupa token.

b. Case Folding

Proses ini adalah proses penyamaan case dalam sebuah dokumen. Hal ini disebabkan karena tidak semua dokumen teks konsisten dalam penggunaan huruf kapital. Oleh karena itu dilakukan case folding untuk mengkonversi semua teks kedalam suatu bentuk standar (lowercase).

c. Filtering

Proses ini merupakan proses pembuangan kata-kata umum pada artikel tersebut sehingga hanya akan tersisa kata-kata yang khusus. Daftar kata-kata yang dibuang adalah menggunakan

Stop-Word list bahasa Indonesia (Tala, 2003).

3) Classification

Artikel yang telah melewati tahap content extraction selanjutnya akan di-testing dengan dataset yang telah di-training. Lalu dengan menggunakan Naive Bayes, dihitung probabilitas mana yang lebih besar


(11)

antara topik kesehatan atau tidak. Jika hasil yang didapatkan lebih condong ke topik kesehatan maka artikel tersebut akan disimpan. 3.2.2. Tahapan Percobaan Sistem

Tahapan ini bertujuan untuk menghitung tingkat akurasi algoritma Naive Bayes Classifier dengan menggunakan dataset yang telah didapatkan, mencari jumlah

thread yang optimal dan pengaruh penggunaan algoritma larger sites first pada

page ordering.

Untuk jumlah thread yang optimal percobaan dilakukan dengan mengobservasi penggunaan memory dan cpu setiap thread nya. Percobaan dilakukan dengan metode page ordering Larger Sites First dan tanpa Larger Sites First. Percobaan juga dilakukan untuk jumlah bandwidth yang berbeda. Tabel 3.4 menunjukkan percobaan yang dilakukan.

Tabel 3.4 Rancangan percobaaan thread dan bandwith No. Jumlah

Thread Bandwidth With LSF Without LSF

Lama Crawling

1. 100 2 Mbps   60 menit

2 200 2 Mbps   60 menit

3 500 2 Mbps   60 menit

4 1000 2 Mbps   60 menit

5 2000 2 Mbps   60 menit

6 100 3 Mbps   60 menit

7 200 3 Mbps   60 menit

8 500 3 Mbps   60 menit

9 1000 3 Mbps   60 menit

10 2000 3 Mbps   60 menit

11 100 5 Mbps   60 menit

12 200 5 Mbps   60 menit

13 500 5 Mbps   60 menit

14 1000 5 Mbps   60 menit

15 2000 5 Mbps   60 menit

3.2.3. Perancangan Sistem Bagian Depan (Front End)

Perancangan sistem bagian depan (front-end) pada penelitian ini menggunakan Graphical User Interface (GUI). Sistem front-end dirancang untuk membantu pengguna dalam mengkonfigurasi crawler yang akan dilakukan. GUI dirancang


(12)

1) Crawler Master

Crawler master dapat mengkonfigurasi database yang akan dipakai, mulai dari nama host, username, password, nama database dan dapat meng-export SQL (Structured Query Language) yang telah disediakan kedalam database pengguna. Gambaran rancangan tampilan konfigurasi

database dapat dilihat pada gambar 3.4.

Gambar 3.4. Konfigurasi database (Crawler master)

Crawler master juga dapat mengkonfigurasi distributed mode seperti menambahkan ip address crawler slaves yang rancangannya dapat dilihat pada gambar 3.5.


(13)

Crawler master dapat mengkonfigurasi crawler yang akan digunakan seperti direktori penyimpanan (storage folder), kedalaman URL (depth) yang dihitung dari URL root yang ilustrasinya dapat dilihat pada gambar 3.6, crawler dapat di resume (URL yang telah dikunjungi akan disimpan dan dapat dilanjutkan dilain waktu), menggunakan proxy, mengecek robots.txt pada setiap website, menggunakan algoritma larger site first, jumlah thread yang akan digunakan, menentukan topik focused crawler, mem-filter URL, konten dan minimum term(kata) yang dikunjungi dan menentukan lama durasi crawler yang dapat dilihat pada gambar 3.7.

Gambar 3.6. Ilustrasi crawler depth


(14)

Crawler master dapat meng-edit seeds URL yang akan di-crawl pada tab seeds yang rancangannya dapat dilihat pada gambar 3.8.

Gambar 3.8. Konfigurasi Seeds (Crawler master)

Selain itu pengguna juga dapat menyunting VM argument yang akan dipakai pada tombol “Edit VM Argument” dan melihat info dari aplikasi

crawler pada tab ‘Info’.

2) Crawler Slaves

Pada mode terdistribusi crawler slaves dapat mengkonfigurasi setiap ip address yang ingin dipakai serta melihat info aplikasi. Gambaran rancangan tampilan crawler slaves dapat dilihat pada gambar 3.9.


(15)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

Pada bab ini membahas tentang hasil site ordering mengunakan Larger Site First Algorithm, hasil dari proses crawling dan hasil dari proses content extraction yang diperoleh dari implementasi Larger Site First Algorithm dan Naive Bayes Classifier

dalam Focused Crawler terdistribusi yang sesuai dengan analisis dan perancangan yang telah dibahas pada Bab 3.

4.1. Hasil Site Ordering

Bagian ini dijabarkan hasil yang diperoleh dari site ordering menggunakan algoritma larger site first dilakukan crawler master dengan menghitung jumlah link yang ada pada halaman tersebut dan mengurutkannya mulai dari yang terbesar sampai yang terkecil, jika terdapat URL yang tidak dapat dikunjungi atau URL yang melebihi batas waktu (request timeout) maka URL tersebut dinyatakan tidak memiliki link (link=0) yang mengakibatkan URL tersebut berada di urutan terbawah. Pseudocode dapat dilihat pada gambar 4.1. Untuk hasil pengurutannya dapat dilihat pada tabel 4.1

Tabel 4.1 Hasil Site Ordering menggunakan Larger Site First Algorithm

Sebelum Sesudah

http://anakkitasehat.com/ http://health.detik.com/

http://artikelkesehatananak.com/ http://www.vemale.com/tags/kesehata n-anak/

http://artikeltentangkesehatan.com/ http://bidanku.com/ http://bebeclub.co.id/article/ http://www.depkes.go.id/ http://bidanku.com/ https://www.klikdokter.com/ http://dechacare.com/ http://dechacare.com/

http://dikes.badungkab.go.id/index.php/ars

ip-artikel http://www.posyandu.org/


(16)

http://duniaanak.org/ http://www.informasikesehatan.my.id/ http://family.fimela.com/ https://anakbayibalita.wordpress.com/ http://health.detik.com/ http://family.fimela.com/

http://ibuhamil.com/ http://bebeclub.co.id/article/

http://webkesehatan.com/ http://artikeltentangkesehatan.com/ http://www.4life-4transferfactor.com/ http://artikelkesehatananak.com/ http://www.alodokter.com/ http://www.infoibu.com/

http://www.anakdanbalita.net/ https://www.progoldparentingclub.co.id/ http://www.beritahu.me/ http://www.infoanak.com/

http://www.caramedis.com/ http://www.caramedis.com/ http://www.depkes.go.id/ https://www.ibudanbalita.com/ http://www.doktergratis.org/ http://webkesehatan.com/ http://www.infoanak.com/ http://www.beritahu.me/

http://www.infoibu.com/ http://dikes.badungkab.go.id/index.php/ars ip-artikel

http://www.informasikesehatan.my.id/ https://www.tanyadok.com/ http://www.kesehatan-ibuanak.net/ http://www.anakdanbalita.net/ http://www.posyandu.org/ http://ibuhamil.com/

http://www.vemale.com/tags/kesehata

n-anak/ http://www.4life-4transferfactor.com/

https://anakbayibalita.wordpress.com/ https://www.dancow.co.id/ https://www.dancow.co.id/ http://www.doktergratis.org/ https://www.ibudanbalita.com/ http://www.alodokter.com/

https://www.klikdokter.com/ http://www.kesehatan-ibuanak.net/ https://www.progoldparentingclub.co.

id/ http://anakkitasehat.com/

https://www.tanyadok.com/ http://doktersehat.com/

Gambar 4.1. Pseudocode site ordering Inisialisasi seeds URL yang tersedia

FOR setiap URL

IF tidak ada respon Link = 0 ELSE

Link = jumlah link yang ada Urut URL berdasarkan link yang terbanyak


(17)

4.2. Hasil Crawling

Pada bagian ini dijabarkan hasil pada proses crawling yaitu berupa hasil pada proses

filter konten untuk mendapatkan konten artikel menggunakan boilerpipe, dengan cara menghilangkan template, boilerplate, header, sidebar maupun footer. Misalkan artikel pada link

http://health.detik.com/read/2016/09/25/170008/3306373/763/kata-dokter-soal-pantangan-makan-jeruk-bali-bagi-pasien-cml?l992203755

akan menghasilkan artikel seperti pada gambar 4.2.

Gambar 4.2. Contoh hasil filter menggunakan boilerpipe

4.3. Hasil Content Extraction

Pada bagian ini dijabarkan hasil dari proses content extraction sebelum artikel diklasifikasikan. Tahap pertama adalah proses tokenizing yang hasilnya dapat dilihat pada gambar 4.3 yang merupakan proses dari artikel pada gambar 4.2. Setelah itu artikel

Kata Dokter Soal Pantangan Makan Jeruk Bali bagi Pasien CML Radian Nyi Sukmasari - detikHealth

Ilustrasi pasien dan dokter (Foto: Thinkstock) Berita Lainnya

Puluhan Calon Profesional Kesehatan dari Indonesia dan Luar Negeri Ikuti Pelatihan di Kulonprogo

Jakarta, Pada pasien Chronic Myeloid Leukemia (CML) atau yang dalam bahasa Indonesia disebut dengan Leukemia Granulositik Kronik (LGK), ada satu asupan yang mesti dihindari yakni jeruk bali. Mengapa begitu?

Diungkapkan dr Nadia Ayu Mulansari SpPD, KHOM dari RS Cipto Mangunkusumo, asupan yang memiliki interaksi dengan imatinib mesylate yang dikonsumsi pasien CML yaitu grapefruit atau grapefruit juice. Nah, jeruk bali dikatakan dr Nadia termasuk kelompok grapefruit.

"Beberapa ada yang bilang delima juga (termasuk kelompok grapefruit), tapi nggak sih. Dari penelitian, disebutkan ada komponennya di situ (grapefruit) yang berinteraksi dengan obatnya," kata dr Nadia dalam diskusi bersama Himpunan Masyarakat Peduli Elgeka di Bakmi GM, Jl Sunda, Jakarta Pusat, Sabtu (24/9/2016).

Ia menambahkan, grapefruit memang bisa berinteraksi dengan beberapa jenis obat kanker, dan obat CML termasuk salah satunya. Beberapa waktu lalu ahli hematologi onkologi medik RS Kanker Dharmais, dr Hilman Tadjoedin SpPD, KHOM mengatakan selain jeruk bali, tidak ada pantangan makanan atau minuman bagi pasien CML.

Justru, kata dr Hilman dalam pengobatan kemoterapi konsumsi makanan tidak dibatasi namun tetap, bukan berarti pasien bisa makan sesukanya atau tidak terkontrol.

Baca juga: Benarkah Lemon Lebih Hebat dari Kemoterapi dalam Membunuh Sel Kanker?

"Saat dikemo, kan perut bisa mual, badan nggak enak. Jadinya malah nggak nafsu makan. Tapi tetap harus makan kan. Mau makan daging merah boleh tapi konsumsi makanan yang lain juga, konsumsi makanan bergizi, termasuk buah dan sayur," tutur dr Hilman.

Dikutip dari leukaemia.org.au, pasien CML tidak dibolehkan mengonsumsi grapefruit atau minum grapefruit juice. Pasalnya, grapefruit termasuk buah yang dapat menghambat kerja tyrosine kinase inhibitor (TKI), dalam hal ini imatinib, yang menghambat proses terbentuknya protein abnormal Bcr-Abl pada pasien CML.


(18)

tersebut akan melakukan proses case folding yang bisa dilihat pada gambar 4.4. Dan tahap yang terakhir adalah proses filtering yang bisa dilihat pada gambar 4.5.

Gambar 4.3. Contoh hasil Tokenizing

Gambar 4.4. Contoh hasil Case Folding

Gambar 4.5. Contoh hasil Filtering

Kata Dokter Soal Pantangan Makan Jeruk Bali bagi Pasien CML Radian Nyi Sukmasari detikHealth Ilustrasi pasien dan dokter Foto Thinkstock Berita Lainnya Puluhan Calon Profesional Kesehatan dari Indonesia dan Luar Negeri Ikuti Pelatihan di Kulonprogo Jakarta Pada pasien Chronic Myeloid Leukemia CML atau yang dalam bahasa Indonesia disebut dengan Leukemia Granulositik Kronik LGK ada satu asupan yang mesti dihindari yakni jeruk bali Mengapa begitu Diungkapkan dr Nadia Ayu Mulansari SpPD KHOM dari RS Cipto Mangunkusumo asupan yang memiliki interaksi dengan imatinib mesylate yang dikonsumsi pasien CML yaitu grapefruit atau grapefruit juice Nah jeruk bali dikatakan dr Nadia termasuk kelompok grapefruit Beberapa ada yang bilang delima juga termasuk kelompok grapefruit tapi nggak sih Dari penelitian disebutkan ada komponennya di situ grapefruit yang berinteraksi dengan obatnya kata dr Nadia dalam diskusi bersama Himpunan Masyarakat Peduli Elgeka di Bakmi GM Jl Sunda Jakarta Pusat Sabtu Ia menambahkan grapefruit memang bisa berinteraksi dengan beberapa jenis obat kanker dan obat CML termasuk salah satunya Beberapa waktu lalu ahli hematologi onkologi medik RS Kanker Dharmais dr Hilman Tadjoedin SpPD KHOM mengatakan selain jeruk bali tidak ada pantangan makanan atau minuman bagi pasien CML Justru kata dr Hilman dalam pengobatan kemoterapi konsumsi makanan tidak dibatasi namun tetap bukan berarti pasien bisa makan sesukanya atau tidak terkontrol Baca juga Benarkah Lemon Lebih Hebat dari Kemoterapi dalam Membunuh Sel Kanker Saat dikemo kan perut bisa mual badan nggak enak Jadinya malah nggak nafsu makan Tapi tetap harus makan kan Mau makan daging merah boleh tapi konsumsi makanan yang lain juga konsumsi makanan bergizi termasuk buah dan sayur tutur dr Hilman Dikutip dari leukaemia org au pasien CML tidak dibolehkan mengonsumsi grapefruit atau minum grapefruit juice Pasalnya grapefruit termasuk buah yang dapat menghambat kerja tyrosine kinase inhibitor TKI dalam hal ini imatinib yang menghambat proses terbentuknya protein abnormal Bcr Abl pada pasien CML Pada dasarnya grapefruit dapat menginduksi lapisan lambung untuk menghasilkan sitokrom yang dapat memetabolisme obat sebelum mencapai sistem darah

kata dokter soal pantangan makan jeruk bali bagi pasien cmlradian nyi sukmasari detikhealth ilustrasi pasien dan dokter foto thinkstock berita lainnya puluhan calon profesional kesehatan dari indonesia dan luar negeri ikuti pelatihan di kulonprogo jakarta pada pasien chronic myeloid leukemia cml atau yang dalam bahasa indonesia disebut dengan leukemia granulositik kronik lgk ada satu asupan yang mesti dihindari yakni jeruk bali mengapa begitu diungkapkan dr nadia ayu mulansari sppd khom dari rs cipto mangunkusumo asupan yang memiliki interaksi dengan imatinib mesylate yang dikonsumsi pasien cml yaitu grapefruit atau grapefruit juice nah jeruk bali dikatakan dr nadia termasuk kelompok grapefruit beberapa ada yang bilang delima juga termasuk kelompok grapefruit tapi nggak sih dari penelitian disebutkan ada komponennya di situ grapefruit yang berinteraksi dengan obatnya kata dr nadia dalam diskusi bersama himpunan masyarakat peduli elgeka di bakmi gm jl sunda jakarta pusat sabtu ia menambahkan grapefruit memang bisa berinteraksi dengan beberapa jenis obat kanker dan obat cml termasuk salah satunya beberapa waktu lalu ahli hematologi onkologi medik rs kanker dharmais dr hilman tadjoedin sppd khom mengatakan selain jeruk bali tidak ada pantangan makanan atau minuman bagi pasien cml justru kata dr hilman dalam pengobatan kemoterapi konsumsi makanan tidak dibatasi namun tetap bukan berarti pasien bisa makan sesukanya atau tidak terkontrol baca juga benarkah lemon lebih hebat dari kemoterapi dalam membunuh sel kanker saat dikemo kan perut bisa mual badan nggak enak jadinya malah nggak nafsu makan tapi tetap harus makan kan mau makan daging merah boleh tapi konsumsi makanan yang lain juga konsumsi makanan bergizi termasuk buah dan sayur tutur dr hilman dikutip dari leukaemia org au pasien cml tidak dibolehkan mengonsumsi grapefruit atau minum grapefruit juice pasalnya grapefruit termasuk buah yang dapat menghambat kerja tyrosine kinase inhibitor tki dalam hal ini imatinib yang menghambat proses terbentuknya protein abnormal bcr abl pada pasien cml pada dasarnya grapefruit dapat menginduksi lapisan lambung untuk menghasilkan sitokrom yang dapat memetabolisme obat sebelum mencapai sistem darah

dokter pantangan makan jeruk bali pasien cmlradian nyi sukmasari detikhealth ilustrasi pasien dokter foto thinkstock berita lainnya puluhan calon profesional kesehatan indonesia negeri ikuti pelatihan kulonprogo jakarta pasien chronic myeloid leukemia cml bahasa indonesia leukemia granulositik kronik lgk asupan mesti dihindari jeruk bali dr nadia ayu mulansari sppd khom rs cipto mangunkusumo asupan memiliki interaksi imatinib mesylate dikonsumsi pasien cml grapefruit grapefruit juice jeruk bali dr nadia kelompok grapefruit bilang delima kelompok grapefruit nggak sih penelitian komponennya situ grapefruit berinteraksi obatnya dr nadia diskusi himpunan masyarakat peduli elgeka bakmi gm jl sunda jakarta pusat sabtu grapefruit berinteraksi jenis obat kanker obat cml salah satunya ahli hematologi onkologi medik rs kanker dharmais dr hilman tadjoedin sppd khom jeruk bali pantangan makanan minuman pasien cml dr hilman pengobatan kemoterapi konsumsi makanan dibatasi pasien makan sesukanya terkontrol baca lemon hebat kemoterapi membunuh sel kanker dikemo perut mual badan nggak enak nggak nafsu makan makan makan daging merah konsumsi makanan konsumsi makanan bergizi buah sayur dr hilman dikutip leukaemia org au pasien cml dibolehkan mengonsumsi grapefruit minum grapefruit juice pasalnya grapefruit buah menghambat kerja tyrosine kinase inhibitor tki imatinib menghambat proses terbentuknya protein abnormal bcr abl pasien cml dasarnya grapefruit menginduksi lapisan lambung menghasilkan sitokrom memetabolisme obat mencapai sistem darah


(19)

4.4. Hasil Pengujian

Pada bagian ini dijabarkan hasil percobaan akurasi algoritma Naive Bayes Classifier

dengan menggunakan dataset yang telah didapatkan dengan cara mencoba dengan 50 artikel yang bertopik kesehatan, 50 artikel yang tidak bertopik kesehatan dan 50 artikel yang memiliki kata kesehatan tetapi isi dari artikel tersebut bukan merupakan topik kesehatan (semi kesehatan). Maka dari itu didapatkan hasil yang tertera pada tabel 4.2.

Tabel 4.2. Hasil percobaan akurasi klasifikasi Jenis

Artikel Terklasifikasi kesehatan

Terklasifikasi bukan

kesehatan Jumlah

Kesehatan 45 90.00% 5 10.00% 50

Semi

Kesehatan 28 56.00% 22 44.00% 50

Bukan

Kesehatan 4 8.00% 46 92.00% 50

Lalu dilakukan pengujian dengan menggunakan jumlah thread yang berbeda dan menggunakan bandwith yang berbeda seperti pada tabel 3.4. dimana untuk setiap percobaannya dihitung jumlah file/artikel yang ter-download, total ukuran file, penggunaan heap memory dan penggunaan cpu untuk setiap penggunaannya untuk setiap penggunaan Larger Site First (LSF) dan tidak menggunakan LSF yang dilihat hasilnya per menit. Untuk perhitungan heap memory dan penggunaan cpu dengan perumpamaan A = Komputer 1, B = Komputer 2, C = Komputer 3 dan D = Komputer 4. Yang dapat dilihat pada tabel 4.3 sampai tabel 4.22

Tabel 4.3. Hasil Crawling dengan LSF pada bandwith 2 Mbps (jumlah file)

Thread Kom Total

A B C D

100 5592 7594 7568 5995 26749 200 7454 5592 6006 7719 26771 500 7373 6963 7403 5459 27198 1000 3158 7138 4105 7607 22008 2000 4531 3016 3028 3000 13575


(20)

Tabel 4.4. Hasil Crawling tidak dengan LSF pada bandwith 2 Mbps (jumlah file)

Thread Kom Total

A B C D

100 3344 10451 8702 2695 25192 200 8629 10852 4498 2907 26886 500 8242 4400 3353 11293 27288 1000 2219 10205 7384 2927 22735 2000 2104 5446 3245 2625 13420

Tabel 4.5. Hasil Crawling dengan LSF pada bandwith 2 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 69577725 28904271 21708161 17909664 138099821 200 28240542 69363015 16990193 22133799 136727549 500 21737395 21052132 27264842 67375033 137429402 1000 11419831 21140539 11169824 70258637 113988831 2000 57665947 8669302 10601608 9494330 86431187

Tabel 4.6. Hasil Crawling tidak dengan LSF pada bandwith 2 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 14718288 89496311 24427857 7904326 136546782 200 25044483 91823031 11781590 9574337 138223441 500 67823083 350922098 81962878 32384743 533092802 1000 5941639 85488993 21988304 9288824 122707760 2000 6547383 17507643 10360783 7500809 41916618

Tabel 4.7. Hasil Crawling dengan LSF pada bandwith 3 Mbps (jumlah file)

Thread Kom Total

A B C D

100 5470 6406 6973 10035 28884 200 9745 3637 9363 6423 29168 500 4624 8083 5638 11167 29512 1000 6627 4880 10316 5144 26967 2000 2690 2947 2583 1963 10183


(21)

Tabel 4.8. Hasil Crawling tidak dengan LSF pada bandwith 3 Mbps (jumlah file)

Thread Kom Total

A B C D

100 1580 4419 10712 10741 27452 200 4894 10031 10744 1791 27460 500 9555 3017 4612 11250 28434 1000 4673 9798 9050 2753 26274 2000 1117 3462 2499 1206 8284

Tabel 4.9. Hasil Crawling dengan LSF pada bandwith 3 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 14930791 24675201 26849071 77356101 143811164 200 79393592 13159151 28111764 22526793 143191300 500 15507508 20164305 19650188 91818267 147140268 1000 20570748 11616420 81307259 18364192 131858619 2000 9066175 9715376 8560876 26880628 54223055

Tabel 4.10. Hasil Crawling tidak dengan LSF pada bandwith 3 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 5499864 11544501 31959601 88003350 137007316 200 12658901 33030603 90312660 6564870 142567034 500 27654417 9868587 12234356 91667497 141424857 1000 12394699 28218157 78866222 8396623 127875701 2000 16237303 8748434 8110208 4158332 37254277

Tabel 4.11. Hasil Crawling dengan LSF pada bandwith 5 Mbps (jumlah file)

Thread Kom Total

A B C D

100 3665 8919 12146 3684 28414 200 3945 9300 12387 3816 29448 500 9690 5397 9879 4989 29955 1000 2183 11366 7659 3455 24663 2000 1622 2626 1968 2337 8553


(22)

Tabel 4.12. Hasil Crawling tidak dengan LSF pada bandwith 5 Mbps (jumlah file)

Thread Kom Total

A B C D

100 4415 10580 10710 2156 27861 200 11131 2202 10634 4778 28745 500 10596 4783 2185 11328 28892 1000 2283 9874 4440 2715 19312 2000 655 3292 604 1857 6408

Tabel 4.13. Hasil Crawling dengan LSF pada bandwith 5 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 11786681 26607674 91382004 12488697 142265056 200 13581048 29354225 92855846 12495532 148286651 500 29452814 18572552 79056376 20216666 147298408 1000 6440600 87225347 23189401 11615549 128470897 2000 5389701 8673330 9265317 7543570 30871918

Tabel 4.14. Hasil Crawling tidak dengan LSF pada bandwith 5 Mbps (ukuran file (KB))

Thread Kom Total

A B C D

100 12196295 89421099 32282044 6115772 140015210 200 93513614 6261529 32133699 13097025 145005867 500 31295701 13099098 6484052 92576902 143455753 1000 7303126 85691176 12004445 8088835 113087582 2000 1406993 8412054 2384958 23342528 35546533

Jika dilihat dari tabel 4.3, 4.4, 4.7, 4.8, 4.11, 4.12 maka dapat diketahui bahwa sebagian besar crawling menggunakan algoritma Larger Site First (LSF) memiliki jumlah hasil yang lebih tinggi dibandingkan dengan tidak menggunakan LSF dengan perbandingan 12:3 (2:3 untuk bandwith 2 Mbps, 5:0 untuk bandwith 3 Mbps dan 5:0 untuk bandwith 5 Mbps), yang untuk lebih jelasnya dapat dilihat pada gambar 4.6, 4.7 dan 4.8.


(23)

Gambar 4.6. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan tidak (2 Mbps)

Gambar 4.7. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan tidak (3 Mbps)

100 200 500 1000 2000

LSF 26749 26771 27198 22008 13575

No LSF 25192 26886 27288 22735 13420

0 5000 10000 15000 20000 25000 30000 Am o u n t o f Fi le s Threads

LSF vs No LSF (2 Mbps)

100 200 500 1000 2000

LSF 28884 29168 29512 26967 10183

NO LSF 27452 27460 28434 26274 8284

0 5000 10000 15000 20000 25000 30000 35000 Am o u n t o f Fi le s Threads

LSF vs No LSF (3 Mbps)


(24)

Gambar 4.8. Grafik perbandingan hasil jumlah crawling menggunakan LSF dan tidak (5 Mbps)

Sedangkan untuk perbandingan hasil menggunakan bandwith yang berbeda maka sebagian data menunjukkan kenaikan performa ketika bandwith semakin besar, akan tetapi jika melihat perbedaan antara jumlah hasil pada bandwith 3 Mbps dan 5 Mbps maka sebagian mengalami kenaikan dan sebagian lagi tidak dengan perbandingan 5:5 jika dibandingan dengan bandwith 3 Mbps dan 2 Mbps sebagian mengalami kenaikan dengan perbandingan 8:2. Yang dapat dilihat pada gambar 4.9 dan 4.10.

Gambar 4.9. Grafik perbandingan jumlah hasil dengan bandwith yang berbeda menggunakan LSF

100 200 500 1000 2000

LSF 28884 29168 29512 26967 10183

NO LSF 27452 27460 28434 26274 8284

0 5000 10000 15000 20000 25000 30000 35000 Am o u n t o f Fi le s Threads

LSF vs No LSF (5 Mbps)

100 200 500 1000 2000

2 Mbps 26749 26771 27198 22008 13575

3 Mbps 28884 29168 29512 26967 10183

5 Mbps 28414 29448 29955 24663 8553

0 5000 10000 15000 20000 25000 30000 35000 Am o u n t o f Fi le s Threads


(25)

Gambar 4.10. Grafik perbandingan jumlah hasil dengan bandwith yang berbeda tidak menggunakan LSF

Sedangkan untuk ukuran file dengan jumlah file tidak selalu berbanding lurus yang artinya jika semakin banyak file maka jumlah ukuran file tidak selalu bertambah besar yang dapat dilihat pada gambar 4.11, 4.12

Gambar 4.11. Grafik perbandingan jumlah hasil (ukuran file) dengan bandwith yang berbeda menggunakan LSF

100 200 500 1000 2000

2 Mbps 25192 26886 27288 22735 13420

3 Mbps 27452 27460 28434 26274 8284

5 Mbps 27861 28745 28892 19312 6408

0 5000 10000 15000 20000 25000 30000 35000 Am o u n t o f Fi le s Threads

Without Larger Site First Algorithm

100 200 500 1000 2000

2 Mbps 138099821 136727549 137429402 113988831 86431187 3 Mbps 143811164 143191300 147140268 131858619 54223055 5 Mbps 142265056 148286651 147298408 128470897 30871918

0 20000000 40000000 60000000 80000000 100000000 120000000 140000000 160000000 Am o u n t o f Fi le s Threads


(26)

Gambar 4.12. Grafik perbandingan jumlah hasil (ukuran file) dengan bandwith yang berbeda tidak menggunakan LSF

Ketika percobaan dilakukan terjadi error pada saat pengujian menggunakan 2000

thread dimana terdapat masalah pada heap memory seperti pada gambar 4.13.

Gambar 4.13. Error yang didapatkan pada percobaan menggunakan 2000 thread

Maka dari itu penguji mengubah initial java heap size dan maximum java heap size

yang semula adalah 512 MB menjadi 768 MB. Dan semenjak dilakukan perubahan tersebut tidak dijumpai lagi error seperti pada gambar 4.13.

Maka untuk hasil penggunaan heap memory tidak terlalu berpengaruh dengan perubahan jumlah thread, pemakaian LSF, ataupun bandwith yang dipakai melainkan dipengaruhi berapa banyak jumlah heap memory yang pengguna definisikan untuk menjalankan program tersebut seperti contoh pada gambar 4.14 dan 4.15.

1 2 3 4 5

2 Mbps 136546782 138223441 140621984 122707760 41916618 3 Mbps 137007316 142567034 141424857 127875701 37254277 5 Mbps 140015210 145005867 143455753 113087582 35546533

0 20000000 40000000 60000000 80000000 100000000 120000000 140000000 160000000

Am

o

u

n

t

o

f Fi

le

s

Threads


(27)

Gambar 4.14. Grafik penggunaan heap memory di komputer A menggunakan LSF

Gambar 4.15. Grafik penggunaan heap memory di komputer B tidak menggunakan LSF

Sedangkan untuk penggunaan cpu akan semakin besar jika thread semakin besar, pada percobaan ini terkecuali pada pemakaian thread 2000 dikarenakan heap memory yang dinaikkan sehingga beban program sebagian dialihkan ke penggunaan heap memory. Untuk lebih jelasnya dapat dilihat pada gambar 4.16. dan 4.17.

0 200 400 600 800

1 3 5 7 9 11131517192123252729313335373941434547495153555759

Me m o ry U sage (MB ) Minutes

Rata-rata Penggunaan Heap Memory pada

Komputer A Menggunakan LSF (2 Mbps)

100 Thread 200 Thread 500 Thread 1000 Thread 2000 Thread

0 200 400 600 800

1 3 5 7 9 11131517192123252729313335373941434547495153555759

Me m o ry U sage (MB ) Minutes

Rata-rata Penggunaan Heap Memory pada

Komputer A Tidak Menggunakan LSF (3 Mbps)

100 Thread 200 Thread 500 Thread 1000 Thread 2000 Thread


(28)

Gambar 4.16. Grafik penggunaan CPU di komputer C menggunakan LSF

Gambar 4.17. Grafik penggunaan CPU di komputer C tidak menggunakan LSF

Dari hasil pengujian yang didapatkan bahwa pada penggunaan 1000 dan 2000 thread

terjadi penurunan performa dikarenakan CPU mempunyai batas dalam memproses

thread, jadi tidak serta merta semakin banyak thread maka semakin tinggi performa yang didapatkan. Justru apabila terlalu banyak thread yang akan diproses maka terdapat thread yang sedang menunggu untuk diproses dan mengakibatkan terganggunya kinerja thread yang sedang dijalankan dan pada akhirnya menurunkan kinerja secara keseluruhan.

0 20 40 60 80 100

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59

Penggu n an CPU (% ) Minutes

Penggunaan CPU Pada Komputer C

Menggunakan LSF (2 Mbps)

100 Thread 200 Thread 500 Thread 1000 Thread 2000 Thread

0 20 40 60 80

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59

Penggu n aa n CPU (% ) Minutes

Penggunaan CPU Pada Komputer C Tidak

Menggunakan LSF (3 Mbps)

100 Thread 200 Thread 500 Thread 1000 Thread 2000 Thread


(29)

Secara umum klasifikasi menggunakan naive bayes classifier pada focused crawler

mempunyai tingkat akurasi sebesar 90%, yang keakuratannya dapat berkurang apabila terdapat kata kunci kesehatan pada artikel bukan kesehatan dikarenakan pada naive

bayes classifier menghitung frekuensi kemunculan kata dan tidak melihat

keterkaitannya dengan kata yang lain. Untuk performa crawling menggunakan algoritma larger site first lebih besar dibandingkan dengan yang tidak menggunakannya. Apabila semakin banyak thread maka semakin banyak pula hasil

crawling yang didapatkan yang dibatasi oleh kemampuan komputer. Jika melebihi batas kemampuan maka justru akan menurunkan performa. Dan dapat disimpulkan bahwa penggunaan jumlah thread yang efektif pada penelitian kali ini adalah menggunakan 500 thread. Pada pemakaian bandwith apabila semakin besar bandwith maka semakin tinggi hasil yang didapatkan. Untuk jumlah ukuran file tidak selalu berbanding lurus dengan jumlah file yang didapatkan. Apabila semakin banyak thread yang dipakai maka tidak mempengaruhi penggunaan heap memory, melainkan dipengaruhi oleh inisialisasi oleh pengguna. Dan apabila semakin banyak thread yang dipakai maka semakin banyak

cpu usage yang dibutuhkan, yang dapat diminimalisir oleh penambahan jumlah heap memory yang dipakai.

4.5. Implementasi Sistem Bagian Depan (Front-End)

Pada bagian ini dijabarkan tampilan serta prosedur operasional dari antarmuka front end

yang telah dibangun yang hanya bisa diakses untuk OS Windows dan Linux yang berbasis GUI.

4.5.1. Tampilan Antarmuka

Antarmuka front-end dalam penelitian ini dibangun atas dua macam yaitu untuk

Crawler Master dan Crawler Slaves.

4.5.1.1.Tampilan Crawler Master

Antarmuka front-end crawler master dalam penelitian ini dibangun berdasarkan rancangan yang telah dijabarkan pada Bab 3 yaitu:

1) Konfigurasi Database

Pada bagian ini pengguna dapat meng-export SQL yang telah disediakan dan mengkonfigurasi pengaturan database yang akan


(30)

digunakan pada saat crawling. Tampilannya dapat dilihat pada gambar 4.18.

Gambar 4.18. Tampilan ‘DB Config’ pada crawler master

2) Konfigurasi penggunaan mode terdistribusi

Pada bagian ini pengguna dapat memilih dapat menggunakan mode terdistribusi apa tidak dan mengkonfigurasi IP Address yang digunakan slaves node. Tampilannya dapat dilihat pada gambar 4.19.

Gambar 4.19. Tampilan ‘Distributed Mode’ pada crawler master 3) Konfigurasi Crawler

Pada bagian ini pengguna dapat mengkonfigurasi crawler yang akan digunakan seperti storage, depth, thread dll dan sebagian fitur


(31)

tersebut tidak dapat digunakan pada mode terdistribusi. Tampilannya dapat dilihat pada gambar 4.20.

Gambar 4.20. Tampilan ‘Crawler Config’ pada crawler master

4) Daftar seeds URL

Pada bagian ini pengguna dapat menynting seeds URL yang akan digunakan. Tampilannya dapat dilihat pada gambar 4.21.

Gambar 4.21. Tampilan ‘Seeds’ URL pada crawler master

4.5.1.2.Tampilan Crawler Slaves

Crawler slaves digunakan hanya jika pengguna ingin menggunakan mode terdistribusi. Pengguna dapat mengkonfigurasi IP Address yang digunakan slaves node. Dan satu komputer dapat memiliki lebih dari satu node.


(32)

Gambar 4.22. Tampilan ‘Crawler Config’ pada crawler master 4.5.2. Prosedur Operasional

4.5.2.1.Single Mode (Non Distributed)

Pengguna hanya perlu menjalankan crawler master mengkonfigurasi pada tab DB Config, Crawler Config, Seeds dan pada tab “Distributed Mode” uncheck “Use Distributed Mode”. Lalu pengguna dapat menyunting VM Argument pada tombol “Edit VM Argument” yang

tampilannya seperti pada gambar 4.23.

Gambar 4.23. Tampilan ‘Edit VM Argument’ pada crawler master Apabila pengguna menggunakan OS non GUI maka dapat menjalankan file run.bat/run.sh dan mengedit file crawler.cfg didalam folder resources.


(33)

4.5.2.2.Distributed Mode

Pertama sekali yang dilakukan adalah menjalankan slaves node pada setiap komputer yang ingin dijadikan slaves node dengan cara menjalankan crawler slaves dan mengkonfigurasi setiap IP address yang akan digunakan lalu tekan tombol “START” seperti pada gambar 4.24. Apabila pengguna menggunakan OS non GUI maka dapat menjalankan file run.bat/run.sh dan mengedit file ip.cfg didalam direktori “resources”.

Gambar 4.24. Contoh tampilan menjalankan node pada crawler slaves

Apabila berhasil maka akan muncul informasi jumlah node yang aktif seperti pada gambar 4.25.

Gambar 4.25. Contoh tampilan informasi node yang aktif Selanjutnya pengguna menjalankan program crawler master dan mengkonfigurasi pada tab “DB Config”, “Crawler Config”, “Seeds” dan pada tab “Distributed Mode: pastikan check “Use Distributed Mode” dan isi IP addressslaves yang digunakan lalu tekan tombol “START” seperti

pada gambar 4.26. Apabila pengguna menggunakan OS non GUI maka dapat menjalankan file run.bat/run.sh dan mengedit file crawler.cfg dan ip.cfg didalam direktori “resources”.


(34)

Gambar 4.26. Contoh tampilan menjalankan crawler master pada ‘Distributed Mode’

Lalu apabila sukses maka slaves node akan mulai meng-crawling

halaman web seperti pada gambar 4.27.


(35)

BAB 5

KESIMPULAN DAN SARAN

Bab ini membahas tentang kesimpulan dari penerapan metode yang diajukan untuk perancangan Focused Web Crawler dengan sistem terdistribusi dan saran untuk pengembangan yang dapat dilakukan pada penelitian selanjutnya

5.1. Kesimpulan

Berdasarkan penerapan metode dari arsitektur umum yang dirancang Focused Web Crawler dengan sistem terdistribusi, didapatkan beberapa kesimpulan yakni:

1. Klasifikasi pada focused crawler menggunakan naive bayes yang mempunyai tingkat akurasi sebesar 90%.

2. Keakuratan klasifikasi dapat berkurang apabila terdapat kata kunci kesehatan pada artikel bukan kesehatan dikarenakan pada naive bayes classifier

menghitung frekuensi kemunculan kata dan tidak melihat keterkaitannya dengan kata yang lain.

3. Kecepatan pengambilan data dari web crawler dapat ditingkatkan dengan menggunakan sistem terdistribusi.

4. Kecepatan web crawler yang menggunakan algoritma larger site first lebih tinggi dibandingkan dengan yang tidak menggunakannya.

5. Semakin banyak thread maka semakin banyak pula hasil crawling yang didapatkan, yang dibatasi oleh kemampuan komputer. Jika melebihi batas kemampuan maka justru akan menurunkan kecepatannya.

6. Penggunaan jumlah thread yang efektif pada penelitian kali ini adalah menggunakan 500 thread.

7. Semakin banyak thread yang dipakai maka tidak mempengaruhi penggunaan


(36)

8. Semakin banyak thread yang dipakai maka semakin banyak cpu usage yang dibutuhkan, yang dapat diminimalisir oleh penambahan jumlah heap memory

yang dipakai 5.2. Saran

Saran yang dapat penulis berikan untuk pengembangan selanjutnya adalah sebagai berikut:

1. Menggunakan algoritma site ordering yang mempunyai performa yang lebih tinggi.

2. Menggunakan algoritma klasifikasi yang mempunyai keakuratan yang lebih tinggi sehingga dapat mengakuratkan hasil pada artikel semi kesehatan.

3. Mengatasi jika meng-crawling halaman yang menggunakan javascript yang menyebabkan URL tidak berubah tetapi memiliki konten yang berbeda, dikarenakan crawling masih menggunakan URL sebagai acuannya.


(37)

BAB 2

LANDASAN TEORI

2.1. Web Crawler

Web Crawler adalah meng-crawl (merayapi) seluruh informasi suatu website yang biasanya digunakan untuk meng-index suatu website, pemeliharaan website, atau digunakan untuk memperoleh data khusus contohnya email. Dan hal ini juga dapat digunakan untuk memvalidasi hyperlink dan kode HTML.

Web Crawler dimulai dengan me-list daftar URL yang akan dikunjungi, yang disebut dengan seed. Web crawler akan mengunjungi URL yang ada di daftar dan mengidentifikasi semua hyperlink di halaman tersebut serta menambahkannya kedalam daftar URL yang akan dikunjungi yang disebut crawl frontier. URL yang telah ada dikunjungi dan diambil informasi yang ada sesuai yang dibutuhkan.

Dengan banyaknya jumlah URL yang mungkin di-crawl oleh crawler server yang membuatnya sulit untuk menghindari pengambilan konten yang sama. Misalkan protokol HTTP GET membuat kombinasi URL yang sangat banyakdan sedikit dari URL tersebut menghasilkan konten yang berbeda dan selebihnya menghasilkan konten yang sama untuk URL yang berbeda, inilah yang menimbulkan masalah bagi crawler


(38)

Gambar 2.1 Arsitektur Web Crawler(Wikipedia, 2016)

Salah satu jenis dari web crawler adalah focused crawler yang merupakan web crawler

yang mengambil data dengan spesifikasi tertentu, misalkan dengan topik ‘kesehatan’, maka crawler hanya akan mengambil halaman web yang hanya berhubungan dengan topik kesehatan. Algoritma ini mencari kesamaan dari halaman yang sedang di-crawl

dengan query yang diberikan. Pada pendekatan ini, web crawler akan men-download

halaman web yang mirip dengan halaman yang lainnya, yang dapat dibantu dengan menggunakan Naive Bayes Classifier untuk mengklasifikasikan apakah halaman yang sedang dikunjungi mempunyai kemiripan dengan query yang diberikan. (Janbandhu, et al., 2014)

2.2. Multithreading

Multithreading adalah kemampuan CPU single-core ataupun multi-core dalam menjalankan beberapa proses secara bersamaan. Berbeda dengan multiprocessing, dimana thread membagi sumber daya seperti unit komputer, CPU caches, maupun

Translation Lookaside Buffer (TLB).

Jika thread melewatkan cache. Thread yang lain dapat memakai sumber daya yang tidak terpakai, yang dapat mempercepat eksekusi secara keseluruhan. Jika sebuah

thread tidak dapat memakai semua sumber daya yang ada, dengan menjalankan thread

yang lain dapat mencegah sumber daya lain menjadi ‘idle’. Jika beberapa thread bekerja pada data yang sama, mereka dapat membagi tugas mereka masing-masing yang meningkatkan penggunaan cache (Wikipedia, 2010).


(39)

2.3. Boilerpipe

Boilerpipe merupakan salah satu algoritma ekstraksi konten pada halawan HTML yang menyediakan algoritma untuk mendeteksi dan menghapus konten-konten selain main content seperti boilerplate ataupun template. Boilerplate merupakan web template yang sering digunakan untuk membangun proyek web baru. Dimana hal ini dapat mempermudah web developer untuk membangun website. Salah satu cara yang digunakan adalah dengan menghitung jumlah kata pada setiap blok halaman web. Apabila blok tersebut mempunyai jumlah kata terbanyak, maka dapat dikatakan blok tersebut merupakan konten utama. Sedangkan blok yang mempunyai sedikit kata, maka dapat dikatakan bahawa blok tersebut merupakan boilerplate (Kohlschütter, et al., 2010).

Terdapat beberapa teknik extraction yang dapat digunakan sesuai dengan jenis halaman yang akan di-extract yaitu:

Tabel 2.1 Jenis Boilerpipe Extraction

Teknik Extraction Deskripsi

ArticleExtractor Meng-extract konten artikel berita.

DefaultExtractor Meng-extract konten web biasa.

LargestContentExtractor

Mirip dengan DefaultExtractor, tetapi tetap mengambil konten yang paling besar. Cocok

digunakan untuk web yang bukan artikel.

KeepEverythingExtractor Mengambil semua dalam web sebagai konten.

Format output yang dapat digunakan adalah html, htmlFragment, text, json dan debug. (Kohlschütter, 2016)

Gambar 2.2 Ilustrasi Boilerpipe (Treselle System, 2014) Header

Content Side Bar

Footer


(40)

Pada penelitian ini jenis ekstraksi yang dipakai adalah ArticleExtractor, dikarenakan sumber data yang diambil bersumber dari artikel.

2.4. Text Prepocessing

Text Preprocessing merupakan tahapan awal dari text mining yang bertujuan mempersiapkan teks menjadi data yang akan mengalami pengolahan pada tahap selanjutnya. Pada text mining, data mentah yang berisi informasi memiliki struktur yang sembarang, sehingga diperlukan proses pengubahan bentuk menjadi data yang terstruktur sesuai kebutuhan, yaitu biasanya akan mejadi nilai-nilai numerik. Proses ini disebut Text Preprocessing (Triawati, 2009).

Pada tahap ini, tindakan yang dilakukan adalah tokenizing yaitu proses penguraian deskripsi yang semula berupa kalimat mejadi kata-kata kemudian menghilangkan

delimiter-delimiter seperti tanda koma (,), tanda titik (.), spasi dan karakter angka yang terdapat pada kata tersebut, Case Folding yaitu penyamaan case dalam sebuah dokumen dan filtering yaitu proses pembuangan kata-kata umum sehingga hanya akan tersisa kata-kata yang khusus (Weiss, et al., 2005).

2.5. Naïve Bayes Classifier

Klasifikasi Bayes adalah klasifikasi statistik yang dapat memprediksi kelas suatu anggota probabilitas. Untuk klasifikasi Bayes sederhana yang lebih dikenal sebagai Naïve Bayesian Classifier dapat diasumsikan bahwa efek dari suatu nilai atribut sebuah kelas yang diberikan adalah bebas dari atribut-atribut lain. Asumsi ini disebut class conditional independence yang dibuat untuk memudahkan perhitungan-perhitungan

pengertian ini dianggap “naive”, dalam bahasa lebih sederhana naïve itu

mengasumsikan bahwa kemunculan suatu term kata dalam suatu kalimat tidak dipengaruhi kemungkinan kata-kata yang lain dalam kalimat padahal dalam kenyataanya bahwa kemungkinan kata dalam kalimat sangat dipengaruhi kemungkinan keberadaan kata-kata yang dalam kalimat. Dalam Naïve Bayes di asumsikan prediksi atribut adalah tidak tergantung pada kelas atau tidak dipengaruhi atribut laten

Gambar 2.3 Klasifikasi Naïve Bayes sebagai jaringan bayes dengan atribut prediksi (P1, P2, …….Pk) dan kelas (C)


(41)

C adalah anggota kelas dan X adalah variabel acak sebuah vektor sebagai atribut nilai yang diamati. c mewakili nilai label kelas dan x mewakili nilai atribut vector yang diamati. Jika diberikan sejumlah x tes untuk klasifikasi maka probablitas tiap kelas untuk atribut prediksi vektor yang diamati adalah

� � = |� = =� � = � � = |� =� � =

Model multinomial mengambil jumlah kata yang muncul pada sebuah dokumen, dalam model multinomial sebuah dokumen terdiri dari beberapa kejadian kata dan di asumsikan panjang dokumen tidak bergantung pada kelasnya. Dengan menggunakan asumsi Bayes yang sama bahwa kemungkinan tiap kejadian kata dalam sebuah dokumen adalah bebas tidak terpengaruh dengan konteks kata dan posisi kata dalam dokumen. Tiap dokumen di di gambarkan sebagai distribusi multinomial kata, Nit

dihitung dari jumlah kemunculan kata wt yang terjadi dalam dokumen di . Maka kemungkinan sebuah dokumen diberikan sebuah kelas adalah (McCallum & Nigam, 1998)

�( | ; �) = � | | | |! ∏�( | ; �)

� !

| | =1

Kemungkinan untuk tiap kata dapat ditulis � |� = �( | ; �) dimana ≤ � |� ≤ dan ∑ � |� =

Disini perkiraan untuk kemungkinan untuk kata wt dalam kelas cj adalah � |� = �( | ; � ) = + ∑ �

1=1 �( | )

|�| + ∑ ∑� �

=1 �( | ) |�|

=1

2.6. Sistem Terdistribusi

Hampir semua sistem berbasis computer yang besar saat ini merupakan sistem terdistribusi (sistem tersebar). Sitem terdistribusi adalah sistem dimana pemrosesan informasi didistribusikan pada beberapa computer dan tidak terbatas hanya pada satu mesin saja. Jelas rekayasa terdistribusi memiliki banyak kesamaan dengan rekayasa perangkat lunak lainnya tetapi ada isu-isu khusus yang harus diperhitungkan ketika merancang tipe sistem ini. Perekayasa perangkat lunak harus menyadari dan


(42)

kebanyakan sistem besar masih menggunakan sistem sentral yang berjalan pada satu

mainframe dengan terminal-terminal yang terhubung kepadanya. Sistem tersebut bayak kelemahannya dimana terminal-terminal hanya sedikit kemampuan pemrosesannya dan semua tergantung pada komputer sentral.

Sampai saai ini ada tipe sistem yang utama yaitu:

 Sistem Personal yang tidak terditribusi dan dirancang untuk satu workstation

saja.

 Sistem Embedded yang bejalan pada satu processor atau pada kelompok prosessor yang terintegrasi.

 Sistem Terdistribusi dimana perangkat lunak sistem berjalan pada kelompok

processor yang bekerja sama dan terintegrasi secara longgar, dengan dihubungkan oleh jaringan. Contohnya sistem ATM bank, sistem groupware, dll

Menurut (Coulouris, et al., 2012) mengidentifikasi enam karakteristik yang penting untuk sistem terdistribusi yaitu:

 Pemakain bersama sumber daya

 Keterbukaan. Keterbukaan sistem adalah terbuka untuk banyak sistem operasi dan banyak vendor

 Konkurensi. Sitem terdistribusi memungkinkan beberapa proses dapat beroperasi pada saat yang sama pada berbagai computer di jaringan. Proses ini dapat (tapi tidak perlu) berkomunikasi satu dengan lainnya pada saat operasi normalnya.

 Skalabilitas. Sitem terdistribusi dapat diskala dengan meng-upgrade atau menambahkan sumber daya baru untuk memenuhi kebutuhan sistem.

 Toleransi kesalahan. Sitem terdistribusi bersifat toleran terhadap beberapa kegagalan perangkat keras dan lunak dan layanan terdegradasi dapat diberikan ketika terjadi kegagalan.

 Transparansi. Sitem terdistribusi adalah bersifat terbuka bagi pengguna. Selain hal-hal tersebut ada juga kelemaham dari Sistem terdistribusi yaitu:


(43)

 Kompleksitas. Sistem terdistribusi bersigat lebih kompleks daripada sistem sentral.

 Keamanan. Sistem terdistribusi dapat diakses dari beberapa komputer dan jalur jaringan mudah disadap, sehingga keamanan jarinagan sistem terdistribusi menjadi masalah yang besar.

 Kemampuan untuk dikendalikan. Komputer yang terdapat di sistem terdistribusi bis aterdiri dari berbagai tipe yang berbeda dan mungkin dijalankan pada sistem operasi yang berbeda pula. Kesalahan pada satu mesin bisa berakibat pada yang lainnya. Sehingga harus banyak usaha untuk mengendalikannya.

 Tidak dapat diramalkan. Sistem terdistribusi tidak dpat diramalkan tanggapannya. Tanggapan tergantung beban total sistem, pengorganisasiandan beban jaringannya.

2.7. Apache Ignite

Apache Ignite In-Memory Data Fabric merupakan platform yang memungkinkan untuk melakukan komputasi dan transaksi dengan dataset yang besar secara real-time, terintegrasi dan terdistribusi yang memungkinkan memiliki kecepatan yang lebih besar dibandingkan dengan sistem penyimpanan tradisional maupun teknologi flash.

Apache Ignite In-Memory Data Fabric dirancang untuk melakukan in-memory

computing untuk mendapatkan performa komputasi yang tinggi, advance data-grid,

service grid, maupun streaming.

Gambar 2.4 Fitur Apache Ignite (Apache Ignite, 2016) 2.8.1. In-Memory Compute Grid

Komputasi terdistribusi yang dilakukan secara paralel untuk meningkatkan performa, low latencydan linear scalability. Apache Ignite menyedikan API yang memungkinkan untuk mendistribusikan komputasi dan pemrosesan data


(44)

Distributed parallel processing memiliki kemampuan untuk mengeksekusi komputasi didalam cluster dan menngembalikan hasilnya kembali.

Gambar 2.5 In-Memory Compute Grid (Apache Ignite, 2016) 2.8.2. In-Memory Data Grid

In-Memory Data Grid merupakan key-value in-memory store yang memungkinkan caching data in-memory didalam cluster terdistribusi. Ignite data grid merupakan salah satu pengimplementasian transaksional atau atomic

data dalam cluster terdistribusi.

Gambar 2.6 In-Memory Data Grid (Apache Ignite, 2016) 2.8. Penelitian Terdahulu

Penggunaan Focused Crawler didukung oleh penelitian terdahulu pada tahun 2014, oleh Rashmi Janbandhu, Prashant Dahiwaledan M.M.Raghuwanshi mereka meneliti algoritma apa yang paling efektif digunakan dalam mesin crawler. Mereka


(45)

membandingkan beberapa algoritma dalam mesin crawler seperti Breadth First Search Algorithm, Depth First Search Algorithm, Page Rank Algorithm. Penelitian ini menunjukkan bahwa Focused Crawling Algorithm mempunyai kelebihan daripada algoritma yang lainnya, dimana algoritma ini mempunyai response time yang paling kecil daripada yang lain.

Penelitian yang dilakukan Ricardo Baeza-Yates, Mauricio Marin, Carlos Castillo, Andrea Rodriguez pada tahun 2005 mereka meneliti algoritma apa yang efektif untuk dipakai dalam Page Ordering dalam web crawler. Algoritma Breadth-First

mempunyai performa yang buruk dibandingkan dengan algoritma yang lain.

Larger-Sites-First mempunyai kelebihan daripada OPIC, yaitu membutuhkan waktu

perhitungan yang sedikit dan juga tidak membutuhkan bobot yang terdapat pada link

pada halaman yang dilakukan oleh OPIC. Dengan begitu Larger-Sites-First yang mempunyai performa yang lebih baik daripada algoritma yang lainnya. Algoritma ini mengurutkan website yang akan di-crawl berdasarkan halaman yang dimiliki dari terbanyak sampai yang terkecil.

Pada tahun 2013, Harry T Yani Achsan, Wahyu Catur Wibowo mereka meneliti penggunaan multi thread web crawler pada satu komputer yang akan didistribusikan ke

public proxy server. Karena jika tidak memakai proxy server, web crawler dapat di anggap sebagai ‘cyber-attack’ dan akan di ‘ban’ oleh web server. Mereka juga meneliti bahwa multi thread web crawler harus memakai jumlah thread yang optimal untuk memaksimalkan waktu men-download, karena jika terlalu banyak thread akan mengurangi kenerja komputer, tetapi jika terlalu banyak thread akan mengurangi kecepatan dalam mengumpulkan data. Mereka menyimpulkan bahwa menggunakan multi thread web crawler yang didistribusikan ke public proxy server merupakan cara yang lebih mudah dan murah daripada menggunakan web crawler terdistribusi yang menggunakan beberapa komputer.

Pada tahun 2010, Wenxian Wang, Xingshu Chen, Yongbin Zou, Haizhou Wangdan Zongkun Dai mereka meneliti penggunaan TF-IDF (Term Frequency – Inverse Document Frequency) dalam meng-extract konten yang ada pada halaman web dan menggunakan NaiveBayes Classifier untuk menghitung pagerank dalam focused crawler. Hasilnya adalah Crawler yang mereka miliki memiliki perporma yang lebih baik daripada PageRankCrawler dan BFS (Breath First Search) Crawler.


(46)

BAB 1 PENDAHULUAN

1.1. Latar Belakang

Perkembangan internet yang semakin pesat membuat masyarakat dapat memperoleh informasi dengan cepat. Informasi yang disajikan pun beragam jenis, seperti kesehatan, keuangan, teknologi dan lain sebagainya. Pemanfaatan informasi dari internet sangat tepat di terapkan di Indonesia, karena masyarakat indonesia yang sudah terbiasa dengan internet. Dimana menurut siaran pers yang dikemukakan oleh Asosiasi Penyelenggara Jasa Internet Indonesia (APJII), di Tahun 2014 pengguna internet di Indonesia mencapai 88,1 juta atau setara dengan 34,9% dari jumlah penduduk Indonesia (APJII, 2015).

Salah satu pemanfaatan informasi dari internet yang dapat diterapkan di Indonesia adalah sebagai salah satu sumber informasi kesehatan. Dengan jumlah artikel kesehatan di internet yang terus meningkat, maka internet dapat menjadi sumber informasi kesehatan yang cost effective atau berbiaya murah.

Mengingat beragamnya jenis informasi yang terdapat di situs-situs di internet, maka dibutuhkan suatu mekanisme mengumpulkan informasi kesehatan yang akurat dan efisien.

Pengumpulan artikel dari internet dapat dilakukan dengan menggunakan metode mesin crawler. Mesin crawler atau disebut juga dengan spider web adalah sebuah program yang melintasi struktur HTML dari web, dimulai dari sebuah alamat awal (seed) dan secara rekursif mengunjungi alamat web di dalam halaman web. Penelitian terkait dengan algoritma mesin crawler terus dilakukan oleh banyak peneliti. Pada tahun 2014, Rashmi Janbandhu, Prashant Dahiwale dan M. M. Raghuwanshi mereka mengungkapkan bahwa Focused Crawling Algorithm mempunyai kelebihan daripada algoritma yang lainnya, dimana algoritma ini mempunyai response time yang paling


(47)

kecil daripada yang lain. Focused Crawling algorithm adalah algoritma Crawler yang akan mengambil data dengan spesifikasi tertentu, misalkan dengan topik ‘kesehatan’, maka crawler hanya akan mengambil halaman web yang hanya berhubungan dengan topik kesehatan. Algoritma ini akan mencari kesamaan dari halaman yang sedang

di-crawl dengan query yang diberikan (Chakrabarti, et al., 1999). Pemilihan urutan alamat situs atau page ordering juga mempengaruhi performa dari suatu web crawler. Dimana pada penelitian yang dilakukan oleh Ricardo Baeza-Yates, Mauricio Marin, Carlos Castillo, Andrea Rodriguez pada tahun 2005 mengungkapkan metode Larger-Sites-First terbukti mempunyai performa yang lebih baik dari algoritma lainnya. Algoritma ini mengurutkan website yang akan di-crawl berdasarkan halaman yang dimiliki dari terbanyak sampai yang terkecil.

Berdasarkan hal ini, penerapan algoritma focused crawling dengan metode Larger Sites First untuk page ordering dapat diterapkan untuk pengumpulan artikel kesehatan dari internet dengan response time lebih baik. Tahapan pengumpulan artikel kesehatan dengan algoritma focused crawler juga meliputi algoritma ekstraksi dan pengklasifikasian artikel. Ekstraksi artikel dilakukan untuk dapat mengetahui isi kandungan artikel sehingga artikel dapat di klasifikasikan apakah termasuk artikel kesehatan atau bukan. Algoritma klasifikasi yang digunakan yaitu algoritma Naive Bayes Classifier.

Peningkatan performa mesin crawler juga dapat dilakukan dengan cara perancangan mesin crawler terdistribusi dan juga memanfaatkan penggunaan

multithread. Beberapa penelitian terdahulu telah membuktikan bahwa sistem terdistribusi dapat meningkatkan performa dari suatu mesin crawler dan penggunaan

thread dengan jumlah tertentu juga dapat meningkatkan efisiensi waktu pengumpulan. Berdasarkan latar belakang tersebut, pada skripsi ini penulis merancang sebuah “Focused Web Crawler dengan Sistem Terdistribusi”. Penelitian ini dilakukan untuk mendapatkan focused crawler dengan sistem terdistribusi yang memiliki performa yang tinggi dengan menggunakan Naive Bayes Classifier (NBC), algoritma Larger-Sites-First dalam page ordering dan penggunaan multithread yang optimal.


(48)

1.2. Rumusan Masalah

Adapun rumusan masalah pada penelitian ini adalah:

 Bagaimana cara mesin crawler mengumpulkan artikel khusus di bidang kesehatan?  Bagaimana cara meningkatkan kecepatan pengambilan data dari web crawler

dengan sistem terdistribusi?

1.3. Tujuan Penelitian

Tujuan utama yang ingin dicapai pada penelitian ini adalah menghasilkan focusedweb crawler terdistribusi untuk mengumpulkan artikel kesehatan.

1.4. Batasan Masalah

Dalam melakukan penelitian ini, peneliti membatasi ruang masalah yang akan diteliti. Batasan-batasan masalah yang digunakan adalah :

1. Seeds awal yang digunakan sebanyak 32 URL yang merupakan situs berbahasa Indonesia

2. Topik yang digunakan adalah kesehatan. 3. Konten yang diambil merupakan artikel.

4. Dataset kesehatan untuk klasifikasi diacu dari www.idai.or.id, www.depkes.go.id dan www.kateglo.com.

5. Crawler tidak akan meng-crawl external link dari URL seeds.

6. Jumlah node yang digunakan untuk sistem terdistribusi adalah satu master dan 4

slaves.

1.5. Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini adalah:

1. Menghasilkan suatu metode untuk pengumpulan artikel kesehatan berbahasa indonesia.

2. Mampu mengintegrasikan hasil penelitian peneliti lain untuk membangun sebuah


(49)

1.6. Metodologi Penelitian

Tahapan-tahapan yang akan dilakukan dalam pelaksanaan penelitian ini adalah sebagai berikut :

1. Studi Literatur

Tahap ini dilaksanakan untuk mengumpulkan dan mempelajari informasi-informasi yang diperoleh dari buku, jurnal dan berbagai sumber referensi lain yang berkaitan dengan penelitian seperti focused web crawler, Naive Bayyes Classifier, Sistem Terditribusi, Multi Thread, Larger Sites First.

2. Analisis Permasalahan

Pada tahap ini dilakukan analisis terhadap berbagai informasi yang telah diperoleh dari berbagai sumber yang terkait dengan penelitian agar didapatkan metode yang tepat untuk menyelesaikan masalah dalam penelitian ini.

3. Perancangan Sistem

Tahap ini dilakukan perancangan sistem untuk menyelesaikan permasalahan yang terdapat di dalam tahap analisis. Kemudian dilanjutkan dengan mengimplementasikan hasil analisis dan perancangan ke dalam sistem.

4. Implementasi dan Pengujian

Pada tahap ini dilakukan implementasi ke dalam kode sesuai dengan analisis dan perancangan yang telah dilakukan pada tahap sebelumnya. Dan dilakukan pengujian terhadap hasil yang didapatkan melalui implementasi algoritma Larger Sites First dan

Naive Bayes Classifier dalam Focused Crawler terdistribusi. 5. Analisis dan Pengambilan Kesimpulan

Pada tahap ini dilakukan analisis data yang didapatkan dari implementasi algoritma

Larger Sites First dan Naive Bayes Classifier dalam Focused Crawler terdistribusi dan menyipulkan hasil analisis tersebut.

1.7. Sistematika Penulisan

Sistematika penulisan dari skripsi ini terdiri atas lima bagian utama sebagai berikut: Bab 1: Pendahuluan


(50)

Bab ini berisi latar belakang dari penelitian yang dilaksanakan, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitian, metodologi penelitian, serta sistematika penulisan.

Bab 2: Landasan Teori

Bab ini berisi teori-teori yang diperlukan untuk memahami permasalahan yang dibahas pada penelitian ini. Teori-teori yang berhubungan dengan Web Crawler, Focused Crawling Algorithm, Larger Site-First, Multithreading, Naive Bayes Classifierdan sistem terdistribusi akan dibahas pada bab ini.

Bab 3: Analisis dan Perancangan

Bab ini menjelaskan tentang analisis dan perancangan sistem yang bangun untuk

focused crawler dengan sistem terdistribusi. Adapun dua tahapan yang dibahas pada bab ini yaitu tahap analisis dan tahap perancangan sistem. Pada analisis sistem meliputi kebutuhan perangkat lunak dan perangkat kerasdan pada perancangan sistem meliputi tahapan untuk perancangan sistem terdistribusi dan juga tahapan percobaan yang dilakukan.

Bab 4: Implementasi dan Pengujian

Bab ini berisi pembahasan tentang implementasi dari perancangan yang telah dijabarkan pada bab 3. Selain itu, hasil yang didapatkan selama proses yang terjadi pada penelitian juga dijabarkan pada bab ini.

Bab 5: Kesimpulan dan Saran

Bab ini berisi ringkasan serta kesimpulan dari rancangan yang telah dibahas pada bab 3, serta hasil penelitian yang dijabarkan pada bab 4, serta pada bagian akhir bab ini akan berisi saran-saran yang diajukan untuk pengembangan penelitian selanjutnya.


(51)

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.

Kata kunci: focused crawler, sistem terdistribusi, naive bayes, multithreading, larger site first


(1)

vii

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.

Keywords: focused crawler, distributed system, naive bayes, multithreading, larger site first


(2)

DAFTAR ISI

PERSETUJUAN iii

PERNYATAAN iv

UCAPAN TERIMA KASIH v

ABSTRAK vi

ABSTRACT Error! Bookmark not defined.

DAFTAR ISI viii

DAFTAR TABEL x

DAFTAR GAMBAR xi

BAB 1 PENDAHULUAN 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 3

1.3. Tujuan Penelitian 3

1.4. Batasan Masalah 3

1.5. Manfaat Penelitian 3

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)

ix

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


(4)

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


(5)

xi

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.9. Grafik perbandingan jumlah hasil dengan bandwith yang berbeda tidak


(6)

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’ pada crawler 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