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