ANALISIS DAN PERANCANGAN
3.2. Analisis Sistem
Ekstraksi topik artikel berita online menggunakan metode Non-Negative Matrix
Factorization merupakan sistem yang berfungsi untuk mengetahui berita apa yang
utama, yaitu input, proses, dan output. Tahapan yang dilakukan pada proses input adalah artikel berita hasil crawling yang dapat dilihat pada gambar 3.1. Tahapan proses merupakan bagian pre-processing, pembuatan kamus n-gram, term frequency, serta ekstraksi tren topik menggunakan perhitungan Non-Negative Matrix Decomposition. Tahapan post processing adalah proses yang berada di luar program. Sedangkan untuk tahapan output adalah berupa tren topik-topik berdasarkan tanggal per harinya dengan kategori nasional, entertaiment, dan teknologi, yang berbentuk visualisasi grafik. Arsitektur umum yang mendeskripsikan setiap metodologi pada penelitian ini ditunjukkan pada Gambar 3.1.
Gambar 3.1. Arsitektur Umum Crawling Seeds URL Case Folding Tokenizing Artikel Berita Text Preprocessing Stopword Removal (Filtering) Pembuatan kamus n-gram Input Proses
Ekstraksi Tren Topik Output Visualisasi Tren Topik Stemming Non-Negative Matrix Factorization Term Frequency List of topic
3.2.1. Input Data
Tahapan paling awal dimulai dari input data berupa artikel-artikel berbahasa Indonesia. Gambar 3.2 berikut ini merupakan proses input data hingga menghasilkan artikel berita menggunakan teknik crawling.
Gambar 3.2. Proses Crawling
Dalam langkah pertama, sebuah web crawler mengambil URL dan mengunduh halaman (fetch) dari internet berdasarkan URL yang diberikan. Artikel yang di-input berasal dari url-url portal berita online yang ditentukan oleh penulis. Halaman yang diunduh ditempatkan di database. Selanjutnya, web crawler mem-parsing keseluruhan
webpage yang diunduh dan mengambil link-link ke halaman lain. Pada penelitian ini, web crawler selain mengambil link-link juga akan mengambil konten berita pada webpage. Setelah crawler mengambil link dari webpage, tiap link ditambahkan ke
sebuah daftar untuk di-crawl. Pada tahap ini dilakukan content extraction menggunakan
boilerpipe. Boilerpipe merupakan salah satu algoritma ekstraksi konten pada halaman
HTML yang menyediakan algoritma untuk mendeteksi dan menghapus konten-konten selain main content seperti boilerplate ataupun template. Teknik extraction yang digunakan dalam boilerpipe ini merupakan ArticleExtractor, dimana crawler hanya
Seeds URL Fetch Parse
Content Extraction
terakhir menghasilkan artikel berita dengan informasi tanggal terbit berita. Semua artikel yang dihasilkan akan masuk ke dalam database yang nantinya akan dikelompokkan berdasarkan tanggal terbit dan kategori beritanya.
3.2.2. Text pre-processing
Tahapan text-preprocessing adalah tahapan awal dalam proses text mining. Tahap ini bertujuan untuk memproses artikel mentah menjadi artikel yang siap untuk diproses lebih lanjut. Artikel yang akan diproses adalah artikel hasil crawling yang telah diproses sebelumnya dan telah dikelompokkan berdasarkan kategori dan tanggal terbit beritanya. Terdapat beberapa tahapan dalam text pre-processing, yaitu case-folding, tokenizing,
filtering, dan stemming.
a. Case folding
Proses case folding adalah proses untuk mengubah semua huruf kapital menjadi huruf biasa.
b. Tokenizing
Proses tokenizing merupakan tahap pengolahan dokumen untuk menghilangkan gambar, tanda baca, spasi, dan karakter selain huruf (non-alpha character). Tahap ini memecah dokumen menjadi struktur terkecil yang dapat diproses, yaitu kata (term). Setelah melewati proses ini, dokumen berubah menjadi barisan kata dengan huruf kecil.
c. Filtering
Proses filtering adalah proses pemilihan kata-kata yang akan digunakan untuk merepresentasikan dokumen sehingga dapat digunakan untuk:
- Mendeskripsikan isi dokumen
- Membedakan dokumen dengan dokumen lain dalam kumpulan dokumen.
Kata-kata yang mungkin tidak memiliki makna yang berarti ketika berdiri sendiri, seperti kata hubung, kata depan, dan negasi dihilangkan dari setiap dokumen
Kumpulan kata ini disebut dengan stop-word. Pada penelitian ini, penulis menggunakan stop-word yang diperoleh dari penelitian Tala.
d. Stemming
Stemming adalah proses pengubahan suatu kata menjadi morfem atau kata dasar
yang membangunnya. Algoritma stemming yang digunakan adalah algoritma stemming Nazief Adriani yang telah dijelaskan pada bagian 2.4.
3.2.3. Pembuatan kamus n-gram
Setelah dilakukan proses pre-processing, tahapan selanjutnya yang dilakukan adalah pembuatan kamus kata kandidat topik yang akan diekstraksi menggunakan konsep pembentukan kamus n-gram. N-gram merupakan rangkaian dari n huruf atau n kata. Data n-gram terdiri dari kumpulan kata-kata 1 kata, 2 kata, dan 3 kata yang memiliki nilai yang disebut dengan frekuensi.
Pada kamus 1 kata, kalimat dipisahkan per 1 kata dan dihitung frekuensi kemunculan kata tersebut pada semua data dokumen yang telah diproses pada tahap
pre-processing. Pada kamus 2 kata, kalimat dipisahkan per 2 kata dan dihitung
frekuensi kemunculan katanya pada semua artikel. Pada kamus 3 kata, kalimat dipisahkan per 3 kata dan dihitung frekuensi kemunculan katanya pada semua artikel yang tersedia.
Setelah menghitung frekuensi dari masing-masing daftar kata, maka kemudian lakukan pembuangan kata yang frekuensi kemunculannya terlalu sedikit, sehingga proses perhitungan frekuensi berikutnya hanya akan dilakukan untuk kata-kata yang frekuensinya cukup banyak.
3.2.4. Pembentukan matriks kata dokumen
Setelah mendapatkan kamus 1 kata, 2 kata, dan 3 kata hasil ekstraksi kamus n-gram, selanjutnya akan dibentuk sebuah matriks kata A, yaitu sesuai dengan frekuensi kata yang telah dihitung pada proses sebelumnya. Kolom-kolom dari matriks V
Pada proses pembentukan matriks kata dokumen, pertama dimulai dengan menghitung kemunculan semua kata-kata pada kamus kata pada suatu artikel sehingga terbentuk sebuah vektor. Berikut merupakan data yang akan dibentuk matriks kata dokumennya yang ditampilkan pada Tabel 3.1.
Tabel 3.1. Proses Penyiapan Data
No. Tokenization Filtering Term Frequency
1. Bk, dpr, aturan, senpi, di, kode, etik, anggota, dewan [dpr, aturan, senpi, anggota] { dpr : 1, aturan : 1. senpi : 1, anggota : 1 } 2. Keributan, pecah, dinihari, eleven,
salemba, beri, garis, polisi
[keributan, eleven, salemba, polisi]
{ keributan : 1, eleven : 1, salemba : 1, polisi : 1 }
3. Keributan, di, eleven,