Data Acquisition Pengumpulan data Analisis Sistem

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini akan membahas tentang implementasi metode yang digunakan untuk clustering artikel web kesehatan. Adapun dua tahapan yang dibahas pada bab ini yaitu tahap analisis dan tahap perancangan sistem. Analisis terhadap data yang digunakan dan analisis terhadap metode yang digunakan pada setiap langkah pemrosesan data akan dibahas pada tahap analisis. Perancangan tampilan antarmuka sistem akan dibahas pada tahap perancangan sistem.

3.1. Data Acquisition Pengumpulan data

Data yang digunakan untuk clustering merupakan kumpulan artikel korpus yang disimpan dalam format .txt sebanyak 533 artikel. Kumpulan artikel korpus ini merupakan hasil dari web crawler situs website berbahasa Indonesia yang didapatkan dari hasil penelitian yang dilakukan oleh Amalia Amalia et al, 2016. Sebagian besar situs website yang diambil adalah situs kesehatan. Detail dari kumpulan artikel yang didapat dari hasil web crawler dapat dilihat pada Tabel 3.1. Tabel 3.1. Detail Artikel yang Didapatkan dari Hasil Web Crawler Alamat Web Jumlah www.artikelkesehatan99.com 145 health.detik.com 286 health.kompas.com 72 www.merdeka.com 14 www.tribunnews.com 16 Universitas Sumatera Utara

3.2. Analisis Sistem

Metode yang diajukan penulis untuk clustering artikel web kesehatan terdiri dari beberapa proses. Proses-proses yang akan dilakukan adalah sebagai berikut: kumpulan artikel memasuki proses text pre-processing dan menghasilkan file baru file teks format .txt hasil dari proses text pre-processing; automatic keyphrase extraction dengan metode TF-IDF; proses clustering dengan algoritma SOM tahap pertama dilakukan untuk mengelompokan artikel menjadi dua kelompok yaitu artikel kesehatan yang berhubungan dengan anak dan kesehatan lainnya; kemudian tiap cluster yang terbentuk dilakukan clustering kembali berdasarkan topik yang ada pada setiap artikel. Arsitektur umum yang mendeskripsikan setiap metodologi pada penelitian ini ditunjukkan pada Gambar 3.1. Gambar 3.1. Arsitektur Umum Universitas Sumatera Utara 3.2.1. Text Pre-Processing Tahapan text pre-processing adalah tahapan awal dalam melakukan clustering. Tahap ini bertujuan untuk memproses artikel mentah menjadi artikel yang siap untuk diproses lebih lanjut. Terdapat beberapa tahapan dalam text pre-processing yaitu tokenizing, case-folding, filtering, phrase detection, dan stemming. a. Tokenizing Proses tokenizing yaitu proses memecah input teks menjadi bagian terkecil yaitu kata term. Pada tahap ini setiap term akan dipisahkan dengan spasi dan karakter seperti newline baris baru akan dihilangkan. b. Case Folding Proses case-folding adalah proses penyamaan case kedalam bentuk lowercase sehingga akan mempermudah proses filtering. c. Filtering Proses filtering adalah proses yang dilakukan untuk menghapus kata-kata yang dianggap tidak berkontribusi dalam makna sebuah artikel sehingga kata ini dapat dihapus. Kumpulan kata ini disebut dengan stop-word. Pada penelitian ini penulis digunakan stop-word yang diperoleh dari penelitian Tala. Namun dalam penelitian ini proses filtering tidak dilakukan terhadap kata “besar” dan “kecil” walaupun kata ini termasuk dalam daftar stop-word. Hal ini dis ebabkan kata “besar” dan “kecil” berkontribusi terhadap makna untuk artikel kesehatan seperti buang air kecil, buang air besar, usus besar, dll. Pada proses filtering ini stop-word tidak secara langsung dihapus melainkan dirubah menjadi tanda baca titik .. Hal ini juga berlaku dengan tanda baca diubah menjadi tanca baca titik .. d. Phrase Detection Phrase Detection adalah tahapan untuk pengecekan adanya kata majemuk yang terdapat dalam suatu artikel. Kata majemuk adalah gabungan dua kata atau lebih yang membentuk sebuah kata dengan makna yang baru. Berdasarkan survey awal yang penulis lakukan, banyak terdapat kata majemuk pada istilah di bidang Universitas Sumatera Utara kesehatan seperti demam berdarah, demam kuning, kanker paru, dll. Tentu saja kaya majemuk ini tidak dapat diabaikan terutama untuk proses ekstraksi kata kunci pada tahap selanjutnya. Proses phrase detection pada penelitian ini menggunakan metode Multiword Expression Candidate. Metode ini merupakan metode yang dikembangkan oleh penulis dan juga pembimbing untuk mendapatkan kandidat dari kata majemuk pada bahasa Indonesia. Untuk metode ini dibuatlah suatu kamus kata pada bidang kesehatan sebagai pembanding. Pada proses phrase detection ini, metode multiword expression candidate yang digunakan sudah dimodifikasi dengan tujuan untuk menghasilkan suatu artikel hasil text pre-processing. Setiap gabungan kata yang dianggap sebagai kata majemuk di bidang kesehatan akan langsung dibandingkan dengan kamus kata yang ada, jika ya maka kata majemuk tersebut akan langsung disimpan sebagai satu kesatuan term yang setiap katanya dipisahkan oleh tanda baca garis bawah “_”. Flowchart dari proses yang dilakukan pada tahap phrase detection ini dapat dilihat pada Gambar 3.2. Gambar 3.2. Flowchart Proses Phrase Detection Universitas Sumatera Utara  Kamus Kata Kesehatan Sepengetahuan penulis, belum ada suatu kamus kata pada bidang kesehatan yang mampu mengkoordinir semua kata pada bidang kesehatan dalam bahasa Indonesia. Pada penelitian ini penulis membangun kamus kata bidang kesehatan dengan cara mengambil kata kunci kesehatan yang terdapat dari 284 artikel kesehatan dari http:www.idai.or.id, kemudian ditambahkan daftar kata yang didapat dari http:www.depkes.go.id, dan http:www.alodokter.com. Setelah daftar kata tersebut dikumpulkan kemudian kata tersebut diverifikasi dengan kamus kata yang terdapat pada situs http:www.kateglo.com.  Metode Multiwords Expression Candidate Metode yang dikembangkan oleh penulis dan pembimbing ini bertujuan untuk mendapatkan kandidat kata majemuk yang terdapat dalam artikel yang diproses. Pada penelitian ini, metode ini digunakan untuk kata majemuk yang terdiri dari maksimal tiga kata. Flowchart dari metode Multiwords Expressions Candidate dapat dilihat pada Gambar 3.3. Gambar 3.3. Flowchart Metode Multiwords Expression Candidate Universitas Sumatera Utara Pada metode ini, w adalah kata term yang terdapat dalam artikel dengan i sebagai indeks kata term tersebut dalam artikel. Metode ini dapat digunakan untuk kata majemuk dengan jumlah berapapun, untuk melakukannya hanya cukup menambahkan panjang w yang akan dibandingkan. Hasil dari metode ini adalah berupa kombinasi dari setiap kata yang dianggap sebagai kandidat dari kata majemuk. e. Stemming Stemming adalah proses pengubahan suatu kata menjadi morfem atau kata dasar yang membangunnya. Algoritma ini digabung di dalam proses phrase detection untuk kata yang bukan merupakan kata majemuk multiword expression. Algoritma stemming yang digunakan adalah algoritma stemming Nazief Andriani yang telah dijelaskan pada bagian 2.3. 3.2.2. Term Weighting Term weighting adalah proses pemberian nilai terhadap setiap term yang ada pada setiap artikel yang sudah melewati proses pre-processing. Pemberian nilai atau bobot terhadap term ini menggunakan metode TF-IDF. Metode ini adalah metode yang paling umum digunakan dalam pemberian bobot pada suatu term. Pembobotan ini bertujuan untuk memberikan nilai kepada suatu term yang dimana nilai dari term tersebut akan dijadikan sebagai input pada proses clustering. Detail dari metode TF-IDF ini dapat dilihat pada bagian 2.5. Contoh artikel untuk penghitungan TF-IDF dapat dilihat pada Tabel 3.2. Tabel 3.2. Contoh Artikel Untuk Perhitungan TF-IDF Dok Term 1 Term 2 Term 3 Term 4 Term 5 Jumlah Term D1 kanker Paru kanker_paru protein batuk 25 D2 kanker kanker_payudara susu 10 D3 hamil medis kanker_ovarium kanker protein 20 Tahap-tahap pembobotan term menggunakan metode TF-IDF adalah sebagai berikut: Universitas Sumatera Utara a. Menghitung TF Setiap term yang ada pada suatu artikel dihitung nilai kemunculannya. Kemudian nilainya dibagi dengan banyaknya term yang ada pada artikel tersebut. Pada penelitian ini suatu term akan dianggap muncul pada suatu artikel jika kemunculannya pada artikel tersebut diatas 2. Hal ini dikarenakan artikel hasil dari crawl belum sepenuhnya bersih dari kata- kata yang tidak bersangkutan dengan isi dari artikelnya, oleh karena itu dibuatlah suatu peraturan untuk mencegah kata-kata yang tidak bersangkutan dengan isi artikel yang ada masuk kedalam perhitungan TF-IDF. Contoh dari perhitungan TF dapat dilihat pada Tabel 3.3. Tabel 3.3. Hasil dari Penghitungan TF Term D1 D2 D3 TFD1 TFD2 TFD3 kanker 5 2 4 0.2 0.2 kanker_paru 5 0.2 protein 2 1 batuk 4 0.16 kanker_payudara 4 0.4 susu 3 0.3 hamil 3 0.15 medis 2 kanker_ovarium 4 0.2 b. Menghitung DF DF Document Frequency adalah nilai dari banyakanya suatu term muncul pada artikel-artikel yang ada pada korpus. Sama halnya dengan penghitungan TF, pada penghitungan DF juga dilakukan suatu syarat yaitu apabila suatu term tidak memiliki kemunculan lebih dari 2 maka kemunculannya dianggap tidak ada. Contoh dari penghitungan DF dapat dilihat pada Tabel 3.4. Universitas Sumatera Utara Tabel 3.4. Contoh Penghitungan DF Term D1 D2 D3 DF kanker 5 2 4 2 kanker_paru 5 1 protein 2 1 batuk 4 1 kanker_payudara 4 1 susu 3 1 hamil 3 1 medis 2 kanker_ovarium 4 1 c. Menghitung IDF Nilai DF setiap term akan dihitung menjadi nilai IDF. Untuk penghitungan IDF ini DF dengan nilai 0 tidak ikut dihitung. Contoh dari penghitungan nilai IDF dapat dilihat pada Tabel 3.5. Tabel 3.5. Contoh Penghitungan IDF Term DF IDF kanker 3 Log 32 = 0.17 kanker_paru 1 Log 31 = 0.47 batuk 1 Log 31 = 0.47 kanker_payudara 1 Log 31 = 0.47 susu 1 Log 31 = 0.47 hamil 1 Log 31 = 0.47 kanker_ovarium 1 Log 31 = 0.47 d. Menghitung TF-IDF Nilai TF-IDF suatu term n pada suatu artikel y dihitung dari nilai TF term n pada artikel y dikali dengan nilai IDF term n. Contoh dari penghitungan TF-IDF setiap artikel dapat dilihat pada Tabel 3.6. Universitas Sumatera Utara Tabel 3.6. Contoh Penghitungan TF-IDF pada Setiap Artikel Term IDF TFIDF D1 TFIDF D2 TFIDF D3 kanker 0.17 0.2x0.17=0.034 0.2x0.17=0.034 kanker_paru 0.47 0.2x0.47=0.094 protein batuk 0.47 0.16x0.47=0.0752 kanker_payudara 0.47 0.4x0.47=0.188 susu 0.47 0.3x0.47=0.141 hamil 0.47 0.15x0.47=0.0705 medis kanker_ovarium 0.47 0.2x0.47=0.094 3.2.3. Keyphrase Extraction Keyphrase Extraction adalah proses pemberian kata kunci kepada setiap artikel pada korpus dikarenakan setiap artikel yang didapat dari hasil crawl belum memiliki data kata kunci dalam artikel tersebut. Terdapat hubungan yang nyata bahwa semakin banyak suatu term muncul di suatu artikel, maka term tersebut memiliki makna penting dan dapat dijadikan sebagai kata kunci pada artikel tersebut. Namun karena terdapat perbedaan jumlah term untuk setiap artikelnya maka kemunculan term juga dipengaruhi oleh jumlah term yang terdapat pada artikel tersebut. Proses pemberian kata kunci ini menggunakan nilai TF-IDF setiap term sebagai acuannya. Pada penelitian ini ditetapkan sebanyak 5 buah term dengan nilai TF-IDF terbesar pada setiap artikel sebagai kata kunci untuk artikel tersebut. Term yang dipilih sebagai kata kunci tersebut kemudian disimpan kedalam sebuah database sesuai dengan artikelnya. 3.2.4. Clustering dengan Algoritma Self Organizing Maps Clustering yang dilakukan dengan implementasi algoritma SOM dilakukan dengan menggunakan bobot dari setiap term yang dipilih terhadap artikel-artikel yang ada dalam korpus. Nilai bobot yang digunakan adalah nilai IDF dari term yang dipilih untuk dijadikan sebagai parameter dalam proses clustering. Term yang dipilih didapatkan dari kata kunci setiap artikel yang ada di dalam korpus. Universitas Sumatera Utara Kemudian tiap artikel diubah menjadi vektor yang dimana nilai-nilai vektornya didapatkan berdasarkan nilai IDF term-term yang telah dipilih untuk clustering tahap pertama ini. Apabila suatu term memiliki kemunculan lebih dari 2 kali pada suatu artikel maka nilai vektornya adalah nilai IDF term tersebut tapi apabila nilai kemunculannya kurang atau sama dengan 2 kali maka nilai vektornya adalah nol 0. Contoh perhitungan nilai vektor untuk setiap artikel dapat dilihat pada Tabel 3.7. Tabel 3.7. Contoh Perhitungan Nilai Vektor Untuk Setiap Artikel Term IDF N term D1 N term D2 N term D3 Vektor D1 Vektor D2 Vektor D3 kanker 0.17 5 2 4 0.17 0.17 kanker_paru 0.47 5 0.47 batuk 0.47 2 1 kanker_payudara 0.47 4 0.47 susu 0.47 4 0.47 hamil 0.47 3 0.47 kanker_ovarium 0.47 4 0.47 Dari contoh perhitungan nilai vektor pada Tabel 3.7, maka nilai vektor untuk masing-masing artikel adalah sebagai berikut: D1 = {0.17,0.47,0,0.47,0,0,0} D2 = {0,0,0,0,0.47,0.47,0} D3 = {0.17,0,0,0,0,0,0.47} Nilai vektor tersebut lah yang akan menjadi input data yang akan dihitung pada algoritma Self Organizing Maps. Berikut ini merupakan contoh penghitungan clustering menggunakan algoritma SOM. Langkah pertama yaitu menginisialisasi jumlah cluster = 2, learning rate = 0.1, dan iterasi = 3. Setelah itu menginisialisasi bobot dengan menetapkan bobot pada setiap neuron sebesar 0.5 pada matrik 2x7. w = 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 Universitas Sumatera Utara Kemudian memilih salah satu vektor input dan disajikan kejaringan. Vektor input yang dipilih yaitu D1. Setelah itu menghitung jarak antara vektor input dengan perhitungan sebagai berikut  D1 = 0.5-0.17 2 + 0.5-0.47 2 + 0.5-0 2 + 0.5-0.47 2 + 0.5-0. 2 + 0.5-0 2 + 0.5-0 2 = 0.1089 + 0.0009 + 0.25 + 0.0009 + 0.25 + 0.25 + 0.25 = 1.1107  D2 = 0.5-0.17 2 + 0.5-0.47 2 + 0.5-0 2 + 0.5-0.47 2 + 0.5-0. 2 + 0.5-0 2 + 0.5-0 2 = 0.1089 + 0.0009 + 0.25 + 0.0009 + 0.25 + 0.25 + 0.25 = 1.1107 Perhitungan pada vektor input pertama ini menghasilkan jarak yang sama dikarenakan bobot awal yang sama ketika diinisialisasi pertama kali. Setelah itu dipilih salah satu neuron untuk dijadikan neuron pemenang dengan nilai jarak terkecil, namun karena nilai jaraknya sama maka neuron pemenang dipilih secara acak. Kemudian memperbaharui setiap bobot pada setiap neuron. Pada contoh ini neuron 1 akan dipilih sebagai neuron pemenang. Bobot neuron yang berada disekitarnya kemudian akan disesuaikan sehingga neuron-neuron tersebut akan lebih mirip dengan vektor input. Semakin dekat neuron tersebut dengan neuron pemenang, maka bobot neuron tersebut akan mengalami perubahan yang lebih besar. Sebelum memperbaharui bobot, akan dihitung nilai L t dan Θ t . L t = L − λ = 0.1 x -15 = 0.081873  Perbaharui bobot pada neuron 1 t = 1 Θ t = 1 w 11 = 0.5 + 1 x 0.081873 0.17 – 0.5 = 0.5 + -0.02701809 = 0.47298191 w 12 = 0.5 + 1 x 0.081873 0.47 – 0.5 = 0.5 + -0.00245619 = 0.49754381 Universitas Sumatera Utara w 13 = 0.5 + 1 x 0.081873 0 – 0.5 = 0.5 + -0.0409365 = 0.4590635 w 14 = 0.5 + 1 x 0.081873 0.47 – 0.5 = 0.5 + -0.00245619 = 0.49754381 w 15 = 0.5 + 1 x 0.081873 0 – 0.5 = 0.5 + -0.0409365 = 0.4590635 w 16 = 0.5 + 1 x 0.081873 0 – 0.5 = 0.5 + -0.0409365 = 0.4590635 w 17 = 0.5 + 1 x 0.081873 0 – 0.5 = 0.5 + -0.0409365 = 0.4590635  Perbaharui bobot neuron 2 t = 1 Θ t = 0.606531 w 21 = 0.5 + 0.606531 x 0.081873 0.17 – 0.5 = 0.5 + -0.0016387 = 0.4983612 w 22 = 0.5 + 0.606531 x 0.081873 0.47 – 0.5 = 0.5 + -0.0014897 = 0.4985102 w 23 = 0.5 + 0.606531 x 0.081873 0 – 0.5 = 0.5 + -0.0248292 = 0.4751707 w 24 = 0.5 + 0.606531 x 0.081873 0.47 – 0.5 = 0.5 + -0.0014897 = 0.4985102 w 25 = 0.5 + 0.606531 x 0.081873 0 – 0.5 = 0.5 + -0.0248292 = 0.4751707 Universitas Sumatera Utara w 26 = 0.5 + 0.606531 x 0.081873 0 – 0.5 = 0.5 + -0.0248292 = 0.4751707 w 27 = 0.5 + 0.606531 x 0.081873 0 – 0.5 = 0.5 + -0.0248292 = 0.4751707 Maka akan menghasilkan bobot baru sebagai berikut. w = 0.4729 0.4975 0.4590 0.4975 0.4590 0.4590 0.4590 0.4983 0.4985 0.4751 0.4985 0.4751 0.4751 0.4751 Kemudian ulangi lagi proses tersebut sampai semua vektor disajikan kedalam jaringan dengan perhitungan yang sama sampai iterasi yang telah ditentukan t = 3. Proses clustering dengan algoritma SOM pada penelitian ini dibagi menjadi 2 proses yaitu: a. Pengelompokkan berdasarkan kesehatan yang berhubungan dengan anak Pada proses awal dilakukan pengelompokkan yang bertujuan untuk memisahkan artikel kesehatan yang ada dalam korpus awal menjadi dua korpus baru yaitu korpus artikel kesehatan yang berhubungan dengan anak dan korpus artikel kesehatan umum. Pengelompokkan ini menggunakan algoritma SOM. Term yang dipilih untuk dijadikan sebagai parameter pada tahap ini yaitu anak, bayi, dan balita. Term tersebut dipilih karena sebagian besar artikel kesehatan yang berhubungan dengan anak mengandung kata-kata tersebut di dalamnya. Algoritma SOM yang digunakan pada tahap ini ditetapkan untuk menghasilkan dua buah cluster dengan iterasi sebanyak 100 dan learning rate 0.6. Untuk bobot awal pada setiap neuron ditetapkan sebesar 0.5. b. Clustering berdasarkan topik Pada proses akhir dari clustering dengan algoritma SOM ini, artikel kesehatan yang terdapat pada dua korpus baru yang dihasilkan pada proses awal akan dikelompokkan lagi berdasarkan topiknya. Term-term yang dipakai untuk dijadikan parameter penghitungan dipilih berdasarkan kata kunci dari artikel yang Universitas Sumatera Utara ada pada setiap korpus. Term-term dengan nilai DF Document Frequency dibawah 3 akan diabaikan kemudian dipilih term yang diinginkan untuk jadi parameter topik-topik dari cluster yang akan terbentuk. Algoritma SOM yang digunakan pada tahap ini ditetapkan untuk menghasilkan maksimal m 2 cluster dengan m adalah jumlah term yang dipilih untuk dijadikan topik-topik cluster, iterasi sebanyak 100, dan learning rate 0.6. Untuk bobot awal pada setiap neuron ditetapkan sebesar 0.5.

3.3 Perancangan Sistem