Implementasi Metode Support Vector machine Dan Metode Maximum Marginal Relevance Untuk Menghasilkan Rangkuman Dari Kumpulan Dokumen Berita Dengan Topik Sejenis
1
Informasi yang ada pada saat ini tidak hanya bersumber dari satu dokumen saja, melainkan dari beberapa dokumen. Selain itu beberapa informasi dapat mempunyai pandangan yang berbeda tentang suatu topik yang sama. Salah satu informasi yang terdapat dalam dokumen adalah berita. Dokumen berita bisa bersumber dari beberapa media. Saat ini banyak sekali media yang memuat berita serta dipublikasikan memiliki pembahasan yang sama dalam satu topik sejenis, tetapi hanya ditulis dengan tata bahasa dan cara penyampaiannya yang berbeda. Untuk dapat menyerap informasi penting dari kumpulan dokumen berita dengan satu topik yang sama, setidaknya pembaca harus membaca satu-persatu dokumen berita. Ketersediaan informasi berita yang semakin banyak tersebut menjadikan ringkasan sebagai kebutuhan untuk mendapatkan isi berita secara ringkas[1]. Ringkasan merupakan teks singkat dan padat yang dapat dianggap pengganti dari keseluruhan dokumen, karena tetap mempertahankan kandungan informasi penting yang dimiliki dari sumber dokumennya. Ringkasan dapat membantu menghasilkan rangkuman singkat yang diambil dari sebuah dokumen berita, tetapi bagaimana cara membangun suatu sistem yang dapat menghasilkan sebuah rangkuman dari kumpulan dokumen berita dengan satu topik sejenis.
Berdasarkan penelitian[1] sebelumnya, ringkasan dapat dihasilkan dari ekstraksi kalimat dengan menggunakan metode Maximum Marginal Relevance
(MMR). Metode MMR merupakan salah satu metode ekstraksi ringkasan yang dapat digunakan untuk meringkas single-dokumen maupun multi-dokumen. Hasil dari penelitian[1] menyimpulkan bahwa, metode MMR dapat digunakan untuk meringkas single-dokumen secara otomatis dangan rata-rata recall 60%, precision
77% dan f-measure 66% dalam kasus peringkasan teks otomatis berita berbahasa Indonesia menggunakan metode MMR. Untuk menghasilkan ringkasan yang relevan, sebelumnya dapat dilakukan pemilihan kandidat kalimat ringkasan[2]. Pemilihan kandidat kalimat ringkasan dapat dilakukan dengan mengklasifikasikan
(2)
kalimat kedalam kelas positif dan negatif, sehingga kalimat positif yang dihasilkan dijadikan kandidat dalam ringkasan berupa rangkuman singkat. Salah satu metode klasifikasi yang akan digunakan untuk mengklasifikasikan kalimat pada penelitian ini adalah metode Support Vector Machine (SVM).
Metode SVM merupakan salah satu metode machine learning yang memaksimumkan akurasi prediksi dengan mencari bidang pembatas terbaik dari dua kelas dalam ruang fitur. Metode SVM bekerja dengan mengambil himpunan data masukan, kemudian memprediksi untuk setiap masukan yang diberikan ke dalam salah satu kelas dari dua kelas yang ada yaitu kelas positif dan negatif[3]. Berdasarkan penelitian[4] metode SVM memberikan unjuk kerja yang lebih baik dari pada metode Naïve Bayes Classifier (NBC) dalam kasus mengklasifikasikan opini berbahasa Inggris dan opini berbahasa Indonesia dengan rata-rata akurasi hasil penelitian metode NBC menghasilkan 78.38% dan 74.39% sedangkan metode SVM menghasilkan 88.51 % dan 75.06%. Penjelasan mengenai metode SVM dan MMR di atas, menimbulkan permasalahan baru yaitu bagaimana cara mengimplementasikan metode SVM dan MMR untuk menghasilkan sebuah rangkuman yang relevan. Permasalahan tersebut dapat diselesaikan dengan mengetahui nilai performansi recall, precision dan f-measure sejauh mana rangkuman yang dihasilkan benar-benar relevan
Berdasarkan uraian di atas, maka diimplementasikanlah metode SVM dan MMR untuk menghasilkan sebuah rangkuman yang relevan dari kumpulan dokumen berita dengan satu topik sejenis.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah yang telah disampaikan, dapat dirumuskan masalah yang timbul diantaranya:
1. Bagaimana cara membangun suatu sistem yang dapat menghasilkan sebuah rangkuman dari kumpulan dokumen berita dengan satu topik sejenis.
2. Bagaimana cara mengimplementasikan metode SVM dan MMR untuk menghasilkan sebuah rangkuman yang relevan.
(3)
1.3 Maksud dan Tujuan
Maksud dari penelitian yang dilakukan adalah mengimplementasikan metode
Support Vector Machine dan Maximum Marginal Relevance dari kumpulan dokumen berita dengan topik sejenis.
Sedangkan tujuan yang akan dicapai diantaranya:
1. Menghasilkan suatu sistem yang dapat menampilkan sebuah rangkuman dari kumpulan dokumen berita dengan satu topik sejenis.
2. Mengetahui nilai performansi recall, precision dan f-measure sejauh mana rangkuman yang dihasilkan benar-benar relevan.
1.4 Batasan Masalah
Pembatasan masalah dimaksudkan agar dapat memberikan pemahaman yang terarah dan pembahasan tidak menyimpang dari pokok perumusan masalah yang ada, sehingga mencapai sasaran yang ditentukan sesuai dengan apa yang diharapkan.
Adapun batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Peringkasan yang dilakukan untuk menghasilkan rangkuman adalah peringkasan terhadap kumpulan dokumen berita bahasa Indonesia.
2. Data dokumen berita yang digunakan diambil dari media online pemuat berita bahasa Indonesia dan dipilih berdasarkan satu topik sejenis. Kemudian disimpan dengan format file .doc dengan jumlah sampel 4 dokumen berita. 3. Proses stemming menggunakan algoritma Porter Stemmer bahasa Indonesia. 4. Kalimat kelas positif menjadi kandidat kalimat dalam rangkuman.
5. Model ringkasan yang digunakan berbasis ekstraktif.
6. Evaluasi ringkasan yang dilakukan berbasis evaluasi intrinstik.
7. Output yang dihasilkan adalah sebuah rangkuman dan nilai performansi
recall, precision serta f-measure.
8. Pendekatan pembangunan perangkat lunak yang digunakan adalah pendekatan berorientasi objek.
(4)
1.5 Metodologi Penelitian
Metodologi penelitian penyelesaian masalah yang dilakukan dalam penelitian ini dapat dilihat dengan langkah-langkah penelitian pada Gambar 1.1 berikut:
Studi Literatur
Perancangan Sistem
Pengujian dan Evaluasi
Hasil Analisis
Masalah
Analisis Proses Peringkasan
Kebutuhan Data
Kebutuhan Non Fungsional
Kebutuhan Fungsional Analisis dan Definisi Kebutuhan
Prepocessing Pembobotan TF-IDF
Perhitungan Cosine Similarity
Klasifikasi Kalimat
Pembentukan Ringkasan Pemodelan dan Pembangunan Sistem
Gambar 1.1 Langkah-Langkah Penelitian Berikut penjelasan lengkap dari Gambar 1.1:
1. Studi Literatur
Merupakan teknik pengumpulan data dengan cara membaca dan mempelajari serta mengumpulkan literatur. Sumber-sumber yang didapatkan berupa jurnal, buku, paper dan beberapa informasi yang relevan dengan penelitian.
2. Analisis dan Definisi Kebutuhan meliputi: a. Analisis Masalah
Analisis masalah dilakukan untuk memahami masalah yang timbul dan mencari solusi untuk memecahkan masalah dalam menghasilkan sebuah rangkuman dari kumpulan dokumen berita bahasa Indonesia dengan satu topik sejenis.
(5)
b. Analisis Proses Peringkasan
Analisis proses peringkasan meliputi 5 proses tahap utama tahap
Preprocessing, tahap Pembobotan TF-IDF, tahap Perhitungan Cosine
Similarity (query relevance dan similarity kalimat), tahap klasifikasi
kalimat dengan metode Support Vector Machine dan tahap pembentukan ringkasandengan metode Maximum Marginal Relevance.
c. Kebutuhan Data
Data yang dibutuhkan berupa dokumen berita berbahasa Indonesia yang diambil dari media online pemuat berita dan dipilih berdasarkan satu topik sejenis. Kemudian disimpan dengan format file .doc.
d. Kebutuhan Non Fungsional
Kebutuhan non fungsional menjelaskan kebutuhan hardware, software
dan brainware dalam pembangunan aplikasi ini.
e. Kebutuhan Fungsional
Kebutuhan fungsional dengan pendekatan berorientasi objek menggunakan pemodelan UML terdiri dari use case diagram, use case
scenario, activity diagram, class diagram dan sequence diagram.
3. Perancangan Sistem
Perancangan sistem dilakukan untuk mengetahui rancangan dari basis data dan antarmuka dari pembangunan aplikasi ini.
4. Pemodelan dan Pembangunan Sistem
Pemodelan sistem disini merupakan model sistem proses peringkasan dari 5 proses tahap utama yang telah dilakukan analisis sebelumnya untuk menghasilkan rangkuman, dan mengimplementasikannya ke dalam bahasa pemrograman untuk mulai dalam pembangunan aplikasi.
5. Pengujian dan Evaluasi Hasil
Pengujian dilakukan pada aplikasi yang dibangun, serta mengevaluasi hasil rangkuman yang dihasilkan dengan melihat nilai performansi recall,
precision dan f-measure untuk mengetahui sejauh mana rangkuman yang
(6)
1.6 Sistematika Penulisan
Sistematika penulisan penelitian ini disusun untuk memberikan gambaran umum mengenai penelitian yang dilakukan sebagai berikut:
BAB 1 PENDAHULUAN
Bab ini berisi tentang gambaran umum mengenai isi laporan skripsi yang berisi penjelasan meliputi latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metodologi penelitian dan sistematika penulisan dalam penelitian tentang implementasi metode Support Vector Machine (SVM) dan
Maximum Marginal Relevance (MMR) untuk menghasilkan rangkuman dari
kumpulan dokumen berita dengan topik sejenis. BAB 2 TINJAUAN PUSTAKA
Bab ini menjelaskan tentang berbagai konsep dan teori-teori para ahli dari literatur pendukung untuk menghasilkan rangkuman yang relevan dari kumpulan dokumen berita dengan topik sejenis dengan mengimplementasikan metode SVM dan MMR. Adapun teori-teori yang digunakan seperti definisi dan bentuk ringkasan, tahap Preprocessing, pembobotan TF-IDF, perhitungan cosine
similarity, metode SVM, metode MMR, perhitungan nilai performansi (recall,
precision, f-measure). Teori perancangan aplikasi yang akan dibangun
menggunakan pemodelan UML seperti use case diagram, use case scenario,
activity diagram, class diagram, sequence diagram serta teori-teori tentang tools
atau software pendukung yang digunakan dalam pembangunan aplikasi ini. BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi penjelasan mengenai analisis masalah dari objek penelitian yang dilakukan untuk mengetahui masalah apa yang timbul dan mencoba memecahkan masalah tersebut, analisis sistem, analisis kebutuhan data masukan, analisis tahap Preprocessing, analisis pembobotan TF-IDF, analisis perhitungan
cosine similarity, analisi klasifikasi kalimat dengan metode SVM, analisis pembentukan ringkasan menggunakan metode MMR dan evaluasi ringkasan yang dihasilkan dengan nilai performansi (recall, precision dan f-measure). Selain itu dijelaskan juga mengenai analisis kebutuhan perancangan sistem dan perancangan antarmuka dari aplikasi yang akan dibangun.
(7)
BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisi tentang implementasi dari analisis dan perancangan yang telah dilakukan pada bab sebelumnya. Implementasi yang dilakukan terdiri dari implementasi sistem berupa implementasi perangkat keras, implementasi perangkat lunak, implementasi basis data dan implementasi antarmuka. Selain itu dilakukan pengujian sistem terhadap aplikasi yang dibangun melalui rencana pengujian, skenario pengujian, serta mengevaluasi hasil rangkuman yang dihasilkan melalui nilai performansi (recall, precision dan f-measure). Untuk menghasilkan kesimpulan dari hasil pengujian sistem. Informasi yang ditampilkan dari implementasi dan pengujian sistem yang dilakukan berupa sebuah rangkuman beserta dan nilai performansi.
BAB 5 KESIMPULAN DAN SARAN
Bab ini berisi penjelasan mengenai kesimpulan yang didapatkan dari pembahasan pada bab-bab sebelumnya, serta saran yang dapat diberikan oleh peneliti untuk penelitian atau pengembangan selanjutnya. Pada bagian kesimpulan berisi tentang apakah dengan penerapan metode SVM dan MMR rangkuman yang dihasilkan benar-benar relevan dilihat dari nilai performansi (recall, precision dan
f-measure). Sedangkan pada bagian saran berisi tentang hal-hal yang belum bisa terselesaikan pada penelitian yang telah dilakukan, serta hal-hal yang bisa dilakukan untuk pengembangan selanjutnya.
(8)
(9)
9
Ringkasan (summarization) adalah proses pengambilan teks dari sebuah dokumen dan membuat sebuah rangkuman yang mempunyai informasi penting di dalamnya. Dihasilkan dari satu atau lebih teks yang berisi bagian informasi yang signifikan dan yang tidak lebih dari setengah teks aslinya. Secara umum terdapat 2 peringkasan yang banyak dikenali yaitu single-document summarization dan multi-document summarization. Ringkasan multi-document merupakan proses penyaringan informasi penting dari beberapa dokumen untuk menghasilkan ringkasan yang singkat untuk pengguna dan aplikasi. Ringkasan multi-document
dapat dilihat sebagai perpanjangan dari ringkasan single-document. Faktor yang membuat multi-document summarization lebih rumit antara lain[5]:
1. Setiap artikel yang di gunakan ditulis oleh penulis yang berbeda yang
mempunyai perbedaan gaya menulis dan struktur dokumen.
2. Beberapa artikel mungkin mempunyai pandangan yang berbeda tentang
suatu topik yang sama.
3. Fakta dan sudut pandang dapat berubah kapanpun setiap dokumen dibuat
sehingga dapat menimbulkan konflik dalam penyediaan informasi.
Ringkasan biasanya dihasilkan menggunakan dua teknik yang biasa disebut dengan ekstraktif dan abstraktif. Model berbasis ekstraktif mengambil kalimat yang dinilai penting dan sudah ada di dalam dokumen, kemudian menggabungkannya untuk membentuk sebuah ringkasan, sehingga memungkinkan ringkasan untuk meningkatkan informasi secara keseluruhan tanpa menambah panjang ringkasan. Model berbasis abstraktif menciptakan ringkasan dengan cara sintesis dan menulis ulang kalimat berdasarkan pemahaman kontekstual dan linguistik, serta sangat tergantung pada analisis yang mendalam, ringkasan berbasis abstraktif dapat diwakilkan sebagai suatu substitusi atau pengganti terhadap dokumen asli[5].
(10)
Secara umum ringkasan multi-document summarization digambarkan pada Gambar 2.1 berikut:
Dokumen-1 Dokumen-2 Dokumen-3 Dokumen-n
Preprocessing Preprocessing Preprocessing Preprocessing
Ekstraksi Fitur
Ekstraksi Fitur
Ekstraksi Fitur
Ekstraksi Fitur
R1
…………..
R2 R3 ………….. Rn
Ringkasan Kumpulan Dokumen F1 F2 F3 F4
X
Ringkasan-1
F1 F2 F3 F4
X
Ringkasan-2
F1 F2 F3 F4
X
Ringkasan-3
F1 F2 F3 F4
X
Ringkasan-n
Gambar 2.1 Gambaran Umum Multi-Document Summarization
Adapun penjelasan singkat dari Gambar 2.1 yaitu kumpulan dokumen dengan topik sejenis yang masing-masingnya dilakukan proses preprocessing. Kemudian dilakukan ekstraksi fitur untuk memberi nilai bobot dari setiap kata dalam kalimat. Sedemikian sehingga setiap kalimat memiliki nilai masing-masing yang berbeda. Selanjutnya kalimat-kalimat tersebut dipilih dan dibentuk dalam sebuah ringkasan, yang dihasilkan dari masing-masing dokumen tersebut. Dari hasil ringkasan-ringkasan tersebut dilakukan pembobotan kembali dengan dokumen sebagai frekuensinya, untuk menghilangkan kesamaan kalimat dan memilih kalimat relevan, sehingga menghasilkan sebuah ringkasan yang menghasilkan rangkuman relevan dari kumpulan dokumen dengan satu topik sejenis.
(11)
2.2 Proses Preprocessing
Preprocessing adalah tahapan untuk mempersiapkan teks menjadi data yang akan diolah di tahapan berikutnya. Input-an awal pada proses ini adalah berupa dokumen. Preprocessing pada penelitian ini terdiri dari beberapa tahapan, yaitu: proses pemisahan kalimat, proses case folding, proses filtering, proses tokenizing, proses stopword removal dan proses stemming. Berikut gambaran tahap
preprocessing dapat dilihat pada Gambar 2.2 berikut:
Pemisahan
Kalimat Filtering Tokenizing
Stopword Removal Case
Folding Stemming
Gambar 2.2 Tahap Proses Preprocessing 2.2.1 Pemisahan Kalimat
Pemisahan kalimat adalah proses memecah teks pada dokumen menjadi kumpulan kalimat-kalimat yang merupakan langkah awal tahapan text preprocessing. Teknik yang digunakan dalam pemisahan kalimat adalah memisahkan kalimat dengan tanda titik (.), tanda tanya (?), dan tanda seru (!) sebagai pemisah (delimiter). Menghilangkan delimeter tersebut dokumen akan terpotong menjadi kalimat[6].
2.2.2 Case Folding
Case folding adalah tahapan pemrosesan teks dimana semua teks diubah ke dalam case yang sama. Pada penelitian ini semua huruf dalam teks dokumen diubah representasinya menjadi huruf kecil semua[6].
2.2.3 Filtering
Data teks dalam dokumen yang sebelumnya sudah diubah ke dalam huruf kecil semua. Selanjutnya dilakukan proses filtering teks. Filtering adalah tahapan
pemrosesan teks dimana semua teks selain karakter “a” sampai “z” akan
dihilangkan dan hanya menerima spasi[6]. 2.2.4 Tokenizing
Proses Tokenizing adalah proses pemotongan string text berdasarkan tiap kata yang menyusunnya. Pemecahan kalimat menjadi kata-kata tunggal dilakukan
(12)
dengan men-scan kalimat dan setiap kata terindentifikasi atau terpisahkan dengan kata yang lain oleh delimiter spasi [7].
2.2.5 Stopword Removal
Proses stopword removal merupakan proses penghilangan stopword.
Stopword adalah kata-kata yang sering kali muncul berupa kata sambung, kata depan, kata ganti, kata penghubung, dll. Namun artinya tidak deskriptif dan tidak memiliki keterkaitan dengan topik tertentu[6]. Untuk mendeteksi apakah suatu kata merupakan suatu stopword atau bukan adalah menggunakan kamus stopword yang sudah ditentukan. Kamus stopword yang digunakan diambil dari website Budi Susanto, seorang praktisi IT yang sebelumnya sudah memelihara database kamus
stopword bahasa Indonesia. Contoh kamus stopword dalam bahasa Indonesia seperti: yang, juga, dari, dia, kami, kamu, aku, saya, ini, itu, atau, dan, tersebut, pada, dengan, sekitar, adalah, yaitu, ke, tak, di, pada, jika, maka, ada, pun, lain, saja, hanya, namun, seperti, kemudian, karena, untuk, dll.
Setiap kata akan diperiksa apakah masuk dalam daftar stopword, jika sebuah kata masuk di dalam daftar stopword maka kata tersebut tidak akan diproses lebih lanjut dan kata tersebut akan dihilangkan. Sebaliknya apabila sebuah kata tidak termasuk di dalam daftar stopword maka kata tersebut akan masuk keproses berikutnya[7].
2.2.6 Stemming
Proses Stemming merupakan proses pencarian akar kata (root word) dari tiap kata yaitu dengan mengembalikan suatu kata berimbuhan ke bentuk dasarnya (stem). Untuk pemrosesan pada bahasa Indonesia, proses stemming dilakukan dengan menghilangkan imbuhan yang mengawali dan mengakhiri kata sehingga diperoleh bentuk dasar dari kata tersebut[7]. Sebagai contoh, kata bersama, kebersamaan, menyamai, akan di-stem ke root word-nya yaitu “sama”. Algoritma
yang digunakan pada proses ini adalah algoritma Porter Stemmer bahasa Indonesia. Algoritma inidikembangkan oleh Fadillah Z. Tala pada tahun 2003.Berupa algoritma stemmer untuk bahasa. Algoritma ini mengadopsi dari algoritma English Porter Stemmer yang dikembangkan oleh Frakes pada tahun 1992. Dipilihnya algoritma Porter Stemmer untuk dikembangkan sebagai algoritma stemmer untuk
(13)
bahasa Indonesia, karena pemikiran dasar dari algoritma Porter Stemmer cocok dengan struktur morfologi kata-kata di dalam bahasa Indonesia[8]. Perbedaan algoritma ini dengan algoritma yang telah dikembangkan oleh Nazief & Adriani yaitu tidak adanya dictionary sehingga algoritma ini dapat dikatakan murni berbasis rule[8]. Berdasarkan hasil penelitian[9] menyimpulkan bahwa proses stemming
dokumen teks berbahasa Indonesia menggunakan algoritma Porter Stemmer membutuhkan waktu yang lebih singkat dibandingkan stemming dengan menggunakan algoritma Nazief & Adriani. Adapun gambar desain dari algoritma Porter Stemmer bahasa Indonesia dapat dilihat pada Gambar 2.3 berikut[10]:
Kata
Menghapus Partikel
Menghapus Kata Ganti
Menghapus Awalan Pertama
Menghapus Awalan Kedua Menghapus Akhiran
Menghapus Akhiran Menghapus Awalan Kedua
Kata Dasar
ditemukan tidak ditemukan
ditemukan
tidak ditemukan
Gambar 2.3 Desain Algoritma Porter Stemmer Bahasa Indonesia Berikut penjelasan dari Gambar 2.3:
1. Menghapus partikel (particle) dengan aturan sesuai Tabel 2.1.
(14)
3. Menghapus awalan pertama (first order prefix) dengan aturan sesuai Tabel 2.3.
Jika ditemukan maka lanjutkan ke langkah 4a, jika tidak ditemukan maka lanjutkan ke langkah 4b.
4. a. Menghapus awalan kedua (second order prefix) dengan aturan sesuai Tabel
2.4, kemudian lanjutkan ke langkah 5a.
b. Menghapus akhiran (suffix) dengan aturan sesuai Tabel 2.5, jika ditemukan maka lanjutkan ke langkah 5b, jika tidak ditemukan maka kata tersebut diasumsikan sebagai kata dasar.
5. a. Menghapus akhiran (suffix) dengan aturan sesuai Tabel 2.5, dan kata akhir
diasumsikan sebagai kata dasar.
b. Menghapus awalan kedua (second order prefix) dengan aturan sesuai Tabel
2.4, dan kata akhir diasumsikan sebagai kata dasar.
Berdasarkan uraian diatas, menurut aturan yang ada pada algoritma Porter Stemmer bahasa Indonesia terdapat 5 kelompok aturan yang dapat dilihat pada Tabel 2.1 sampai Tabel 2.5 berikut[8]:
Tabel 2.1 Kelompok Aturan Pertama : Pembentukan Partikel
Akhiran Pengganti Kondisi Ukuran Kondisi
Tambahan Contoh
-kah NULL 2 NULL bukukah → buku
-lah NULL 2 NULL pergilah → pergi
-pun NULL 2 NULL bukupun → buku
-tah NULL 2 NULL apatah → apa
Tabel 2.2 Kelompok Aturan Kedua : Pembentukan Kata Ganti
Akhiran Pengganti Kondisi Ukuran Kondisi
Tambahan Contoh
-ku NULL 2 NULL bukuku → buku
-mu NULL 2 NULL bukumu → buku
(15)
Tabel 2.3 Kelompok Aturan Ketiga : Pembentukan Awalan Pertama
Awalan
Pertama Pengganti Kondisi Ukuran
Kondisi
Tambahan Contoh
meng- NULL 2 NULL mengukur → ukur
meny- s 2 V… menyapu → sapu
men- NULL 2 NULL menduga → duga
men- t 2 V… menuduh → tuduh
mem- p 2 V… memilah → pilah
mem- NULL 2 NULL membaca → baca
me- NULL 2 NULL merusak → rusak
peng- NULL 2 NULL pengukur → ukur
peny- s 2 V… penyapu → sapu
pen- NULL 2 NULL penduga → duga
pen- t 2 V… penari → tari
pem- p 2 V… pemilah → pilah
pem- NULL 2 NULL pembaca → baca
di- NULL 2 NULL diukur → ukur
ter- NULL 2 NULL tersapu → sapu
ke- NULL 2 NULL kekasih → kasih
Tabel 2.4 Kelompok Aturan Keempat : Pembentukan Awalan Kedua
Awalan Kedua Pengganti Kondisi Ukuran Kondisi
Tambahan Contoh
ber- NULL 2 NULL berlari → lari
bel- NULL 2 Ajar belajar → ajar
be- NULL 2 Kerja bekerja → kerja
per- NULL 2 NULL perjelas → jelas
pel- NULL 2 Ajar pelajar → ajar
pe- NULL 2 NULL pekerja → kerja
Tabel 2.5 Kelompok Aturan Kelima : Pembentukan Akhiran
Akhiran Pengganti Kondisi
Ukuran Kondisi Tambahan Contoh
(16)
Akhiran Pengganti Kondisi
Ukuran Kondisi Tambahan Contoh
-an NULL 2 Awalan bukan anggota {di, meng, ter} perjanjian → janji
-i NULL 2 Awalan bukan anggota
{ber, ke, peng} mendapati → dapat
Kondisi ukuran adalah jumlah minimum suku kata dalam sebuah kata, karena dalam bahasa Indonesia kata dasar setidaknya mempunyai 2 suku kata. Maka kondisi ukuran dalam proses stemming bahasa Indonesia adalah dua. Kondisi tambahan V dimaksudkan kata setelah awalan berupa huruf vokal.
Namun demikian, terdapat masalah dalam porter stemmer bahasa Indonesia yaitu struktur morfologi dalam bahasa Indonesia memiliki tingkat kerumitan yang lebih tinggi dari pada bahasa Inggris. Seperti misalnya, kesulitan dalam membedakan suatu kata yang mengandung imbuhan baik prefix maupun sufiks dengan suatu kata dasar yang salah satu suku katanya merupakan bagian dari imbuhan[10], contoh:
duduklah → duduk (dilakukan proses stemming)
sekolah → seko (dilakukan proses stemming, seharusnya tidak)
Untuk menangani masalah pada Porter Stemmer bahasa Indonesia perlu ditambahkan beberapa aturan dalam algoritma agar memberikan hasil yang lebih maksimal dan untuk mempermudah proses stem maka dibuatlah beberapa kamus kecil, antara lain sebagai berikut[10]:
a. Kamus kata dasar yang dilekati partikel, untuk menyimpan kata dasar yang
memiliki suku kata terakhir (partikel infleksional) serta kata tersebut tidak mendapat imbuhan apapun.
Seperti: masalah
b. Kamus kata dasar yang dilekati partikel berprefiks untuk menyimpan kata
dasar yang memiliki suku kata terakhir (partikel infleksional) dan mempunyai prefiks.
(17)
c. Kamus kata dasar yang dilekati kata ganti milik, untuk menyimpan kata dasar
yang memiliki suku kata terakhir (kata ganti infleksional) serta kata dasar tersebut tidak mendapatkan imbuhan apapun.
Seperti: bangku.
d. Kamus kata dasar yang dilekati kata ganti milik berprefiks, untuk menyimpan
kata dasar yangmemiliki suku kata terakhir (kata ganti infleksional) dan mempunyai prefiks.
Seperti: bersuku.
e. Kamus kata dasar yang dilekati prefiks pertama, untuk menyimpan kata dasar
yang memiliki suku kata pertama (prefiks derivasional pertama) serta kata dasar tersebut tidak mendapatkan imbuhan apapun.
Seperti: median.
f. Kamus kata dasar yang dilekati prefiks pertama bersufiks, untuk menyimpan
kata dasar yang memiliki suku kata pertama (prefiks derivasional pertama) dan mempunyai sufiks derivasional.
Seperti: terapan.
g. Kamus kata dasar yang dilekati prefiks kedua, untuk menyimpan kata dasar
yang memiliki suku kata pertama (prefiks derivasional kedua) serta kata dasar tersebut tidak mendapatkan imbuhan apapun.
Seperti: percaya
h. Kamus kata dasar yang dilekati prefiks kedua bersufiks, untuk menyimpan kata
dasar yang memiliki suku kata pertama (prefiks derivasional) dan mempunyai sufiks derivasional.
Seperti: perasaan.
i. Kamus kata dasar yang dilekati sufiks, untuk menyimpan kata dasar yang
memiliki suku kata terakhir (sufiks derivasional). Seperti: pantai
Hasil proses stemming tersebut digunakan dalam melakukan pembobotan tf-idf dan perhitungan cosine similarity untuk similarity kalimat. Similarity kalimat merupakan bobot hasil perbandingan kemiripan antar kalimat.
(18)
2.3 Pembobotan TF-IDF
Term Frequency – Inverse Document Frequency digunakan untuk menentukan nilai frekuensi sebuah kata di dalam banyaknya dokumen. Perhitungan statistik numerik yang dimaksudkan untuk mencerminkan betapa pentingnya dan seberapa relevannya sebuah kata di dalam sebuah dokumen. Prosedur dalam implementasi TF-IDF terdapat perbedaan kecil di dalam semua aplikasinya seperti pada banyaknya kalimat atau banyaknya dokumen, tetapi pendekatannya kurang lebih sama[11].
Pembobotan diperoleh dari frekuensi jumlah kemunculan sebuah kata yang terdapat di dalam sebuah dokumen, term frequency (tf). Sebuah kata atau jumlah kemunculan term di dalam koleksi dokumen, inverse document frequency (idf). Variasi dari skema pembobotan TF-IDF sering digunakan oleh mesin pencari sebagai alat eksekusi. TF-IDF dapat berhasil digunakan dalam penyaringan di berbagai bidang, termasuk text summarization dan klasifikasi[11].
Nilai idf sebuah term (kata) dapat dihitung menggunakan persamaan (2.1) berikut:
��� = log /� (2.1)
Untuk menghitung bobot (W) masing-masing dokumen terhadap setiap term (kata) dapat menggunakan persamaan (2.2) berikut:
� = � ∗ ��� (2.2)
Dimana:
W = bobot dokumen ke-d terhadap kata ke-t d = dokumen ke-d
t = kata ke-t
tf = banyaknya kata yang dicari pada sebuah dokumen N = total dokumen
df = banyak dokumen yang mengandung tiap kata
Metode ini mampu menghitung bobot setiap kata dalam kalimat dan menghasilkan sebuah ringkasan. Namun dalam metode ini tidak ada solusi untuk mengatasi resiko adanya redudansi (kemiripan) kalimat yang dihasilkan dalam ringkasan. Sedemikian sehingga pada tahap selanjutnya dilakukan perhitungan
(19)
Hasil dari pembobotan tf-idf tersebut digunakan sebagai langkah dalam melakukan perhitungan cosine similarity untuk bobot query relevance. Query relevance merupakan bobot hasil perbandingan kemiripan (similaritas) antara vektor query terhadap setiap kalimat.
2.4 Perhitungan Cosine Similarity
Cosine Similarity digunakan untuk menghitung pendekatan relevansi query
terhadap dokumen. Pada penelitian ini query tidak diinput oleh user, tetapi term
dari semua kalimat dalam setiap dokumen dianggap sebagai vektor query. Semakin banyak term yang muncul dalam dokumen, maka term tersebut dipandang sebagai vektor query. Cosine similarity digunakan dalam ruang positif, dimana hasilnya dibatasi dengan nilai 0 sampai 1[11]. Cosine similarity kemudian memberikan tolak ukur seberapa mirip dua dokumen[11]. Hasil dari perhitungan query relevance ini digunakan sebagai acuan untuk memberi label dalam klasifikasi kalimat menggunakan metode SVM pada perhitungan SVM Training dan perhitungan pembobotan MMR awal.
Perhitungan cosine similarity untuk query relevance ditunjukkan pada persamaan (2.3) berikut:
CS d , d = ∑��= �,� �,�
√∑��= �,� √∑��= �,� (2.3)
Dimana:
t = term dalam kalimat
�, = bobot term t dalam dot product1 (� , = , . . , � �, = bobot term t dalam dot product2 (��� , = , . . , �
Perhitungan bobot matriks similarity kalimat merupakan bobot hasil perbandingan kemiripan antar kalimat. Perhitungan ini dilakukan untuk mengatasi resiko redudansi (kemiripan) kalimat yang dihasilkan dalam ringkasan. Hasil dari perhitungan matriks similarity kalimat ini digunakan dalam perhitungan iterasi max pembobotan mmr untuk menghasilkan rangkuman. Untuk mendapatkan bobot
(20)
CS , = ∩
| | ∗| | (2.4)
Dimana:
∩ = jumlah term yang ada di kalimat X dan yang ada di kalimat Y |X| = jumlah term yang ada di kalimat X , = , . . , �
|Y| = jumlah term yang ada di kalimat Y , = , . . , �
Perhitungan cosine similarity akan menghasilkan nilai kemiripan pada setiap kalimat dalam banyaknya dokumen, dengan melihat kesamaan vektor query
dengan vektor dokumen. Nilai hasil bobot query relevance akan digunakan sebagai acuan untuk memberi label dalam klasifikasi kalimat menggunakan metode SVM pada perhitungan SVM Training dan perhitungan pembobotan MMR awal, sedangkan nilai hasil dari perhitungan matriks similarity kalimat ini digunakan dalam perhitungan iterasi max pembobotan mmr untuk menghasilkan rangkuman. 2.5 Metode Support Vector Machine
Metode Support Vector Machine (SVM) merupakan salah satu metode
machine learning yang memaksimumkan akurasi prediksi dengan mencari bidang pembatas (hyperplane) terbaik dari dua kelas dalam ruang fitur. Metode SVM membutuhkan training set positif dan negatif. Training set positif dan negatif ini dibutuhkan SVM untuk membuat keputusan terbaik dalam memisahkan data positif dengan data negatif di ruang n-dimensi atau pembatas (hyperplane). Metode ini lebih dikenal dengan metode klasifikasi supervised learning untuk mencari garis pemisah hyperplane dengan mengoptimalkan hyperplane, dan memaksimalkan
margin antara dua kelas. Data yang paling dekat dengan bidang pembatas disebut
support vector[3].
Metode SVM dalam mengklasifikasikan kalimat ke dalam kelas positif dan negatif, digunakan untuk memilih kandidat kalimat yang akan dimasukkan ke dalam suatu ringkasan berupa rangkuman. Kalimat dengan nilai bobot query relevance > 0 diberi label positif, sedangkan kalimat dengan bobot query relevance
= 0 diberi label negatif, hal ini dikarenakan kalimat tersebut tidak memiliki kerelevanan dengan query. Untuk kelas positif berlabel +1 yang artinya kalimat tersebut berpengaruh besar terhadap hasil ringkasan, sedangkan untuk kelas negatif
(21)
berlabel -1 yang artinya kalimat tersebut tidak berpengaruh besar terhadap hasil ringkasan. Klasifikasi kalimat dengan metode ini dilihat dari data uji dengan vektor kalimat, jika nilai vektor melebihi nilai hyperplane maka kalimat tersebut masuk ke dalam kelas positif dan jika tidak maka kalimat tersebut masuk ke dalam kelas negatif.
Data pada ruang input (input space) berdimensi d dinotasikan dengan =
∈ ℜ sedangkan label kelas dinotasikan dengan ∈ {− , + }untuk i = 1, 2,…,n.
Dimana n adalah banyaknya data. Diasumsikan kedua kelas -1 dan +1 dapat terpisah secara linear bidang pembatas[3], maka persamaan bidang pembatasnya didefinisikan pada persamaan (2.5) berikut:
∗ + = (2.5)
Data yang terbagi ke dalam dua kelas, yang termasuk kelas -1 (sampel negatif) didefinisikan sebagai vektor yang memenuhi pertidaksamaan (2.6) berikut:
∗ + < untuk = − (2.6)
Sedangkan yang termasuk kelas +1 (sampel positif) memenuhi pertidaksamaan (2.7) berikut:
∗ + > untuk = + (2.7)
Dimana:
= data input
= label yang diberikan w = nilai dari bidang normal
b = posisi bidang relatif terhadap pusat koordinat
Parameter w dan b adalah parameter yang akan dicari nilainya. Bila label data = -1, maka pembatas menjadi persamaan (2.8) berikut:
∗ + − (2.8)
Bila label data = +1, maka pembatas menjadi persamaan (2.9) berikut:
∗ + + (2.9)
Margin terbesar dapat dicari dengan cara memaksimalkan jarak antar bidang pembatas kedua kelas dan titik terdekatnya, yaitu 2/|w|. Hal ini dirumuskan sebagai permasalahan quadratic programming (QP) problem yaitu mencari titik minimal persamaan (2.10) dengan memperhatikan persamaan (2.11) berikut:
(22)
� � = || || (2.10)
∗ + −
,
= , . . , � (2.11)Permasalahan ini ini dapat dipecahkan dengan berbagi teknik komputasi. Lebih mudah diselesaikan dengan mengubah persamaan (2.10) ke dalam fungsi
Lagrangian pada persamaan (2.12), dan menyederhanakannya menjadi persamaan (2.13) berikut:
, , = || || − ∑= ( + − ) (2.12)
, , = || || − ∑= + + ∑= (2.13)
Dimana adalah lagrange multiplier yang bernilai nol atau positif ( ≥ 0). Nilai optimal dari persamaan (2.13) dapat dihitung dengan meminimalkan L terhadap , dan . Dapat dilihat pada persamaan (2.14) sampai (2.16) berikut:
��
��= − ∑= = (2.14)
��
� = ∑= = (2.15)
��
� = ∑= + − ∑ = = (2.16)
Maka masalah Lagrange untuk klasifikasi dapat dinyatakan pada persamaan (2.17) berikut:
� , , = || || − ∑= + − ∑= (2.17)
Dengan memperhatikan persamaan (2.18) dan (2.19) berikut:
− ∑ = = (2.18)
∑= = (2.19)
Model persamaan (2.17) diatas merupakan model primal Lagrange.
Sedangkan dengan memaksimalkan L terhadap , persamannya menjadi persamaan (2.20) berikut:
∑= − ∑= , = (2.20)
Dengan memperhatikan persamaan (2.21) berikut:
(23)
Untuk mencari nilai dan dapat dilakukan ketika sudah didapatkan nilai tiap kata (term) dari pembobotan tf-idf dan perhitungan cosine similarity. Hasil dari pembobotan tf-id diubah ke dalam bentuk format data svm, sedangkan hasil perhitungan cosine similarity menjadi label data svm.
Untuk mendapatkan nilai , langkah pertama adalah mengubah setiap kalimat menjadi nilai vektor (support vector) = . Kemudian nilai vektor dari setiap kalimat dimasukkan ke persamaan (2.22) kernel trick phi berikut:
= � [ ] = [√ + − + −
√ + − + − ] (2.22)
Nilai x didapatkan dari persamaan (2.23) kernel linear untuk x berikut:
∑= , = , , = , . . , � (2.23)
Nilai y didapatkan dari persamaan (2.24) kernel linear untuk y berikut:
∑= , = , , = , . . , � (2.24)
Untuk mendapatkan jarak tegak lurus yang optimal dengan mempertimbangkan vektor positif, maka hasil perhitungan dari substitusi nilai x dan nilai y ke persamaan (2.22) diberi nilai bias = 1 [3]. Kemudian cari parameter , dengan terlebih dahulu mencari nilai fungsi setiap kalimat menggunakan persamaan (2.25), lalu mencari nilai pada persamaan linear menggunakan persamaan (2.26) dengan memperhatikan , = , . . , � berikut:
∑= , = (2.25)
∑= , = = (2.26)
Setelah parameter didapatkan, kemudian masukkan ke persamaan (2.27) berikut:
�̃ = ∑= (2.27)
Hasil yang didapatkan menggunakan persamaan (2.27), selanjutnya digunakan persamaan (2.28) untuk mendapatkan nilai w dan b:
= + (2.28)
Sedemikian sehingga didapatkanlah nilai w dan nilai b atau nilai hyperplane
untuk mengklasifikasikan kedua kelas. Hasil dari klasifikasi kalimat menggunakan metode SVM akan digunakan untuk memilih kandidat kalimat ringkasan. Kalimat yang masuk ke dalam kelas positiflah yang selanjutnya akan diproses.
(24)
2.6 Metode Maximum Marginal Relevance
Metode Maximum Marginal Relevance (MMR) merupakan salah satu metode
extractive summary yang dapat digunakan untuk meringkas dokumen tunggal maupun multi-dokumen dengan menghitung kesamaan antar bagian teks[1]. MMR digunakan untuk memilih kalimat dengan mempertimbangkan aspek kerelevanan kalimat. Pada peringkasan dokumen dengan metode MMR dilakukan proses segmentasi dokumen menjadi kalimat. Cara kerja MMR juga mengkombinasikan nilai bobot query relevance dan matrik similarity kalimat untuk merangking kalimat[11]. Peringkasan kalimat dengan model ekstraktif dalam MMR dihitung dengan persamaan (2.29) berikut:
= � [� ∗ ( , ) − − � ∗ ( , )] (2.29)
Dimana:
� = koefisiensi nilai penekan kalimat relevan
= similarity
kalimat ,terhadap vektor query=
matrik similarity kalimat , terhadap setiap kalimat, = kalimat dalam dokumen dimana = , . . , �
Q = nilai queryrelevance
S = kalimat yang telah dipilih atau diekstrak
Parameter
�
memiliki range nilai mulai dari 0 sampai dengan 1 artinya ketika�
= 1 maka nilai MMR yang diperoleh cenderung relevan terhadap dokumen asal. Sedangkan jika�
= 0 maka nilai MMR cenderung relevan terhadap dokumen yang sudah diekstrak sebelumnya. Nilai�
yang digunakan untuk peringkasan dokumen yang paling efektif menggunakan nilai parameter�
= 0.7 untuk fokus pada dokumen yang paling relevan dan menghasilkan ringkasan yang baik[1][11].Hasil dari nilai pembobotan mmr dengan nilai > 0 akan dipilih dan masuk ke dalam sebuah ringkasan. Nilai hasil iterasi pembobotan mmr yang dilakukan akan diurutkan berdasarkan nilai maximum. Sedemikian sehingga kalimat dengan nilai maximum akan berada pada posisi pertama dalam sebuah ringkasan, selanjutnya
(25)
diikuti kalimat dengan nilai tertinggi setelah kalimat pertama sampai semua kalimat masuk kedalam ringkasan.
2.7 Evaluasi Ringkasan
Metode untuk mengevaluasi hasil ringkasan merupakan topik yang cukup sulit, baik evaluasi terhadap ringkasan yang dihasilkan dari mesin peringkas otomatis ataupun ringkasan yang manual dibuat oleh abstractor yang profesional, dikarenakan tidak terdapat definisi ringkasan ideal[1]. Terdapat dua klasifikasi metode evaluasi, yaitu:
1. Ekstrinsik yaitu kualitas ringkasan diukur berdasarkan bagaimana proses
dalam membantu penyelesaian tugas user.
2. Intrinstik yaitu hanya diukur dari kualitas hasil (output) ringkasan yang
dihasilkan.
Evaluasi sistem peringkas yang ada saat ini adalah intrinsik. Pengevaluasi menciptakan sebuah ringkasan yang manual, untuk menguji teks. Kemudian membandingkan hasil ringkasan sistem dengan ringkasan ideal. Evaluasi yang diukur adalah overlap dari isi, seringkali disebut dengan recall dan precision
kalimat. Pengukuran precision dan recall ini sangat dipengaruhi oleh panjang ringkasan manual dan juga panjang ringkasan yang dievaluasi. Akurasi menurun sejalan dengan bertambahnya panjang ringkasan. Sulit untuk mengambil kesimpulan terhadap performance sistem dari nilai precision dan recall. Untuk standarisasi proses evaluasi ringkasan sama sekali belum dieksplorasi. Masalah utama dari evaluasi ini sangat nyata, yaitu tidak ada satupun ringkasan yang benar[1]. Kombinasi antara nilai recall dan precision menghasilkan f-measure.
(26)
Mulai
Data hasil ringkasan
Data kalimat yang diekstrak
manusia Pilih file
ringkasan
Hitung nilai missed
Hitung nilai correct
Data nilai
correct
Data nilai
missed
Data nilai
wrong
Hitung nilai wrong
Hitung nilai recall
Hitung nilai precision
Hitung nilai fmeasure
Selesai Data hasil perhitungan
nilai recall
Selesai Data hasil perhitungan
nilai
precision
Selesai Data hasil perhitungan
nilai
fmeasure
Gambar 2.4 Flowchart Evaluasi Ringkasan
Recall, precision dan f-measure merupakan perhitungan nilai performansi yang berhubungan. Adapun pengertian beserta rumus dari perhitungan recall,
precision dan f-measure untuk kasus mengevaluasi ringkasan dengan parameter[1]:
1. Correct merupakan jumlah kalimat yang berhasil di ekstrak sistem sesuai
dengan kalimat yang diekstrak manusia.
2. Wrong merupakan jumlah kalimat yang diekstrak sistem tetapi tidak terdapat
dalam kalimat yang diekstrak manusia
3. Missed merupakan jumlah kalimat yang diekstrak manusia tetapi tidak terdapat
(27)
2.7.1 Recall
Recall (�) merupakan istilah yang digunakan untuk kalimat terpanggil yang relevan dengan pernyataan atau vektor query. Perbandingan jumlah informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi relevan yang ada dalam koleksi informasi. Recall berhubungan dengan kemampuan dalam menemukan kalimat yang relevan. Hal ini berarti recall adalah bagian dari proses evaluasi yang dapat digunakan sebagai alat ukur relevan sebuah ringkasan. Adapun rumus untuk menghitung recall dapat dilihat pada persamaan (2.30) berikut:
� = + (2.30)
2.7.2 Precision
Precision (�) biasanya menjadi salah satu ukuran yang digunakan untuk menilai evektivitas kalimat yang di hasilkan dalam sebuah rangkuman. Precision
adalah jumlah kalimat relevan dari total jumlah kalimat yang ditemukan oleh sistem. Perbandingan jumlah informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi yang terambil oleh sistem baik yang relevan maupun tidak. Adapun, pengukuran tingkat ketepatan (precision) dirumuskan pada persamaan (2.31) berikut:
� = +� � (2.31)
2.7.3 F-Measure
F-Measure (� ) merupakan salah satu perhitungan evaluasi yang mengkombinasikan recall dan precision. Hubungan antara recall dan precision
yang mempresentasikan akurasi sistem. Nilai recall dan precision pada suatu keadaan dapat memiliki bobot yang berbeda. Ukuran yang menampilkan timbal balik antara recall dan precision adalah f-measure yang merupakan bobot harmonic mean dari recall dan precision. Perhitungan f-measure dapat dirumuskan pada persamaan (2.32) berikut:
(28)
2.8 Pemrograman Berorientasi Objek
Pemrograman berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi yang diberlakukan terhadapnya[12]. Suatu cara bagaimana sistem perangkat lunak dibangun melalui pendekatan objek secara sistematis, serta didasarkan pada penerapan prinsip-prinsip pengelolaan kompleksitas yang meliputi, rangkaian aktivitas analisis berorientasi objek, perancangan berorientasi objek, pemrograman berorientasi objek, dan pengujian berorientasi objek. Konsep dasar berorientasi objek diantaranya[12]:
1. Kelas (Class) adalah kumpulan objek-objek dengan karakteristik yang sama.
Kelas merupakan definisi statik dan himpunan objek yang sama yang mungkin lahir atau diciptakan dari kelas tersebut. Sebuah kelas akan mempunyai sifat (atribut), kelakuan (operasi/metode), hubungan (relationship) dan arti. Suatu kelas dapat diturunkan dan kelas semula dapat diwariskan ke kelas yang baru.
2. Objek (Object)adalah abstraksi dan sesuatu yang mewakili dunia nyata seperti
benda, manusia, satuan organisasi, tempat, kejadian, strutur, status, atau hal-hal lain yang bersifat abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya. Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan dihancurkan.
3. Metode (Method) adalah operasi atau metode pada sebuah kelas hampir sama
dengan fungsi atau prosedur pada terstruktur. Sebuah kelas boleh memiliki lebih dari satu metode atau operasi. Metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri.
4. Atribut (Attribute) dari sebuah kelas adalah variabel global yang dimiliki
sebuah kelas. Atribut dapat berupa nilai atau elemen-elemen data yang dimiliki oleh objek dalam kelas objek. Atribut secara individual oleh sebuah objek, misalnya berat, jenis, nama, dan sebagainya.
5. Abstraksi (Abstraction) merupakan prinsip untuk merepresentasikan dunia
nyata yang kompleks menjadi satu bentuk model yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan permasalahan.
(29)
6. Enkapulasi (Encapsulation) adalah pembungkusan atribut data dan layanan
(operasi-operasi) yang dipunyai objek untuk menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara kerja.
7. Pewarisan (Inheritance) adalah mekanisme yang memungkinkan satu objek
mewarisi sebagian atau seluruh definisi dan objek lain sebagai bagian dari dirinya.
8. Antarmuka (Interface) sangat mirip dengan kelas, tetapi tanpa atribut kelas dan
tanpa memiliki metode yang dideklarasikan. Antarmuka biasanya digunakan agar kelas lain tidak langsung mengakses ke suatu kelas.
9. Reusability merupakan pemanfaatan kembali objek yang sudah didefinisikan
untuk suatu permasalahan pada permasalahan lainnya yang melibatkan objek tersebut.
10. Generalisasi dan Spesialisasi menunjukkan hubungan antara kelas dan objek
yang umum dengan kelas dan objek yang khusus. Misalnya kelas yang lebih umum (generalisasi) adalah kendaraan darat dan kelas khususnya (spesialisasi) adalah mobil dan motor.
11. Komunikasi antar objek dilakukan lewat pesan (message) yang dikirim dan
satu objek ke objek lainnya.
12. Polimorfisme (Polymorphism) adalah kemampuan suatu objek untuk
digunakan dibanyak tujuan yang berbeda dengan nama yang sama sehingga menghemat baris program.
13. Package adalah sebuah kontainer atau kemasan yang daoat digunakan untuk
mengelompokkan kelas-kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam package yang berbeda.
2.9 Unifed Modeling Language
UML singkatan dari Unifed Modeling Language yang berarti bahasa pemodelan standar. UML merupakan bahasa standar untuk merancang dan mendokumentasikan perangkat lunak dengan cara berorientasi objek. Ada beberapa diagram yang digunakan proses pembuatan perangkat lunak berorientasi objek diantaranya, use case diagram, activity diagram, class diagram dan sequence diagram[12].
(30)
2.9.1 Use Case Diagram
Use case diagram merupakan pemodelan untuk tingkah laku (behavior) pada sistem yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Use case diagram digunakan untuk mengetahui fungsi apa saja yang terdapat pada sistem. Terdapat dua hal utama yang diperlukan dalam pembentukan suatu use case diagram yaitu aktor dan
use case.
1. Aktor merupakan orang, benda maupun sistem lain yang berinteraksi dengan
sistem yang akan dibangun.
2. Use Case merupakan fungsionalitas atau layanan yang disediakan oleh sistem
sebagai unit-unit yang saling bertukar pesan antar unit atau aktor.
2.9.2 Activity Diagram
Activity diagram menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem, proses bisnis atau menu yang ada pada perangkat lunak. Setiap
use case yang telah dibentuk digambarkan aktivitasnya dalam activity diagram, mulai dari peran aktor, peran sistem, dan decision. Activity diagram juga banyak digunakan untuk mendefinisikan hal-hal berikut:
1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan
merupakan proses bisnis sistem.
2. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap
aktivitas dianggap memiliki sebuah rancangan tampilan antarmuka.
3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah
pengujian yang perlu didefinisikan kasus ujinya.
4. Rancangan menu yang ditampilkan pada perangkat lunak.
2.9.3 Class Diagram
Classs diagram menggambarkan interaksi dan relasi antar kelas yang ada di dalam suatu sistem. Kelas memiliki atribut dan metode. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. Metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas. Atribut dan metode dapat memiliki salah satu sifat sebagai berikut:
(31)
1. Private, tidak dapat dipanggil dari luar kelas yang bersangkutan.
2. Protected, hanya dapat dipanggil oleh kelas yang bersangkutan dan anak-anak
yang mewarisinya.
3. Public, dapat dipanggil oleh siapa saja.
Class diagram menggambarkan relasi atau hubungan antar kelas dari sebuah sistem. Berikut ini beberapa gambaran relasi yang ada dalam class diagram:
1. Association
Hubungan antar class yang statis. Class yang mempunyai relasi asosiasi
menggunakan class lain sebagai atribut pada dirinya.
2. Aggregation
Relasi yang membuat class yang saling terikat satu sama lain namun tidak
terlalu berkegantungan.
3. Composition
Relasi agregasi dengan mengikat satu sama lain dengan ikatan yang sangat kuat dan saling berkegantungan.
4. Dependency
Hubungan antar class dimana class yang memiliki relasi dependency
menggunakan class lain sebagai atribut pada method.
5. Realization
Hubungan antar class dimana sebuah class memiliki keharusan untuk
mengikuti aturan yang ditetapkan class lainnya.
2.9.4 Sequence Diagram
Sequence diagram menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan sequence diagram maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.
Banyaknya sequence diagram yang harus digambar adalah sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada sequence diagram sehingga semakin banyak use case yang didefinisikan maka sequence
(32)
diagram yang harus dibuat juga semakin banyak. Penomoran pesan berdasarkan urutan iteraksi pesan. Penggambaran letak pesan harus berurutan, pesan yang lebih atas dari lainnya adalah pesan yang berjalan terlebih dahulu.
2.10 Software Pendukung
Pada penelitian yang dilakukan diperlukan software pendukung yang membantu dalam pembangunan aplikasi. Adapun software pendukung, diantaranya:
2.10.1 NetBeans IDE
NetBeans IDE (Integrated Development Environment), dapat juga berupa
Integrated Design Environment dan Integrated Debugging Environment, yakni sebuah program atau alat bantu yang terdiri atas Editor, Compiler, Debugger dan
Design yang terintegrasi dalam satu aplikasi. Netbeans IDE ditujukan untuk memudahkan dalam penggunaan bahasa pemrograman Java.
Untuk memakai Netbeans IDE maka, sebelumnya harus terlebih dahulu mempunyai driver JDK yang akan mendukung pembuatan perangkat lunak dengan menggunakan Netbeans IDE, sehingga sebelum meng-install Netbeans, terlebih dahulu sebelumnya harus meng-installdriver JDK.
2.10.2 Java Development Kit
Java Development Kit atau disingkat JDK adalah software development kit
merupakan alat bantu yang digunakan untuk membuat, memanajemen dan membangun berbagai aplikasi dalam bahasa pemograman Java. Pada JDK, terdapat berbagai tools yang digunakan untuk membangun aplikasi Java.
Bahasa pemrograman Java menyediakan library-library standar yang telah di-compile dan dapat langsung digunakan dalam implementasi pembuatan sebuah aplikasi. Pada library, terdapat berbagai macam class yang dapat digunakan dan telah dikelompokkan ke dalam package.
2.10.3 MySQL
MySQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat open source. MySQL dibangun, didistribusikan, dan didukung oleh MySQL AB. MySQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MySQL.MySQL mempunyai dua macam lisensi yaitu lisensi yang
(33)
bersifat open source dengan menggunakan GNU General Public License dan lisensi kedua berupa Standard Commercial License.
Dalam konteks bahasa SQL, informasi disimpan dalam tabel-tabel yang secara logis merupakan struktur dua dimensi yang tersimpan atas baris-baris data (row atau record) yang berada dalam satu atau lebih kolom (column). Baris pada tabel disebut insance dari data sedangkan kolom sering disebut sebagai atributes
atau fieldy. 2.10.4 XAMPP
XAMPP merupakan salah satu paket installasi Apache, PHP dan MySQL instant yang dapat digunakan untuk membantu proses installasi ketiga produk tersebut. Dengan menginstall XAMPP tidak perlu melakukan instalasi dan konfigurasi web server Apache, PHP dan MySQL secara manual.
XAMPP akan menginstalasi dan mengkofigurasikannya secara otomatis. XAMPP merupakan pengembangan dari LAMP (LinuxApache, MySQL, PHP and PERL), XAMPP ini merupakan project non‐profit yang di kembangkan oleh Apache Friends yang didirikan Kai 'Oswalad' Seidler dan Kay Vogelgesang pada tahun 2002, project mereka ini bertujuan mempromosikan pengunaan Apache web server.
2.11 Pengujian Aplikasi
Pengujian bertujuan untuk mencari kesalahan. Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menentukan kesalahan. Berikut adalah penjelasan mengenai pengujian black box[13].
2.11.1 Black Box Testing
Pengujian black box disebut juga dengan pengujian perilaku, berfokus pada persyaratan fungsional perangkat lunak. Pengujian black box berupaya untuk menemukan kesalahan dalam kategori seperti berikut:
1. Fungsi yang salah atau hilang.
2. Kesalahan antarmuka.
3. Kesalahan dalam struktur data atau akses basis data eksternal.
4. Kesalahan perilaku atau kinerja.
(34)
(35)
35
Analisis masalah adalah suatu gambaran masalah yang diangkat dalam menghasilkan aplikasi yang mampu menampilkan sebuah rangkuman dari kumpulan dokumen berita dengan satu topik sejenis, serta mengimplementasikan metode Support Vector Machine (SVM) dan metode Maximum Marginal Relevance (MMR) agar rangkuman yang dihasilkan relevan. Berdasarkan informasi yang mempunyai pandangan yang berbeda-beda tentang suatu topik yang sama, serta tidak hanya bersumber dari satu dokumen saja, melainkan dari beberapa dokumen yang ditulis dengan tata bahasa dan cara penyampaiannya yang berbeda-beda oleh media pemuat berita. Hal ini dapat menyulitkan dalam menyerap informasi penting, serta tidak ada waktu untuk membaca semua dokumen berita dari setiap media tersebut. Oleh karena itu, diperlukan suatu proses dengan menerapkan metode SVM dan MMR, sehingga dapat menghasilkan sebuah ringkasan berupa rangkuman relevan yang diperoleh dari kumpulan dokumen berita berbahasa Indonesia dengan satu topik sejenis.
3.2 Analisis Sistem
Analisis sistem berupa penguraian dari sistem utama ke dalam sub-sub sistem, dimana proses dalam menghasilkan rangkuman diuraikan dan diidentifikasi menjadi beberapa tahapan dalam sistem. Adapun gambaran umum sistem dari aplikasi yang akan dibangun dapat dilihat pada Gambar 3.1 berikut:
11
12
13
14 Training
Model Fitur
2
Kumpulan
Dokumen Prepocessing
Kalimat Positif &
Negatif
Pembentukan Ringkasan
(MMR)
Hasil Ringkasan (Rangkuman)
Ekstraksi Fitur Classifier
1
TF-IDF Cosine Similarity
3 4
5
6
7 8
9 10
(36)
Berikut penjelasan lengkap dari Gambar 3.1 di atas:
1. Kumpulan dokumen diambil dari media online pemuat berita bahasa
Indonesia yang dipilih berdasarkan satu topik sejenis dengan format file .doc.
2. Kumpulan dokumen yang dipilih pada tahap 1 dilakukan proses
Preprocessing berupa (pemisahan kalimat, case folding, filtering, tokenizing, stopword removal dan stemming).
a. Pemisahan Kalimat merupakan proses memecah dokumen menjadi
perkalimat.
b. Case folding merupakan proses mengubah semua huruf dalam dokumen
menjadi huruf kecil semua.
c. Filtering merupakan proses menghilangkan text selain “a” sampai
dengan “z” dan hanya menerima spasi.
d. Tokenizing merupakan proses pemotongan string text berdasarkan tiap
kata yang menyusunnya.
e. Stopword removal merupakan proses penghilangan stopword yang
masuk dalam ke daftar stopword.
f. Stemming merupakan proses mengembalikan kata yang berimbuhan ke
dalam bentuk kata dasarnya.
3. TF-IDF merupakan proses pembobotan setiap term (kata).
4. Cosine Similarity merupakan proses perhitungan nilai kemiripan pada setiap
kalimat dalam banyaknya dokumen
5. Ekstraksi Fitur dengan mengekstraksi dokumen dengan cara mengubah
seluruh kalimat ke dalam vektor fitur.
6. Dilakukan proses SVM Training menggunakan vektor fitur untuk
mendapatkan model fitur.
7. Model fitur yang terbentuk hasil dari tahap proses SVM Training.
8. Tahap ini masuk ke dalam tahap SVM Classifier yaitu mengklasifikasikan
data uji.
9. Tahap ini merupakan tahap SVM Classifier yaitu vektor fitur yang terbentuk
diuji dan diklasifikasikan dengan menggunakan model fitur yang telah diperoleh pada proses SVM Training.
(37)
10. Data hasil SVM Classifier yang dibagi ke dalam kelas positif dan kelas
negatif.
11. Data hasil klasifikasi kalimat kelas positif dan kalimat kelas negatif.
12. Tahap dimana proses pembentukan ringkasan dengan metode MMR dengan
mengambil data kalimat kelas positif yang akan menjadi kandidat kalimat ringkasan.
13. Menampilkan hasil ringkasan berupa rangkuman singkat beserta nilai
performansi recall, precision, dan f-measure.
3.3 Analisis Data Masukan
Analisis data masukan adalah dokumen-dokumen berita yang diambil dari media online pemuat berita berbahasa Indonesia, yang dipilih berdasarkan satu topik sejenis dengan format file .doc. Adapun contoh berita yang dimuat media online pemuat berita berbahasa Indonesia dengan satu topik sejenis, tetapi hanya ditulis dengan tata bahasa dan cara penyampaiannya yang berbeda-beda. Topik
berita yang dipilih berupa “Malaysia meliburkan sekolah selama dua hari karena
udara tidak sehat”, serta dipilih 4 contoh media online yang memiliki kemiripan
dalam memuat berita dengan topik tersebut, dapat dilihat pada lampiran data masukan. Adapun flowchart pemilihan data masukan dapat dilihat pada Gambar 3.2 berikut:
Mulai
Pengecekan
file data masukan
File data masukan
sudah dipilih ?
Pilih file data masukan
belum Menampilkan
pesan file data belum dipilih
sudah
Selesai File data masukan
(38)
3.4 Analisis Proses Preprocessing
Analisis tahap Preprocessing merupakan tahap awal yang dilakukan.
Preprocessing adalah tahapan untuk mempersiapkan teks menjadi data yang akan diolah di tahapan berikutnya. Input-an awal pada proses ini adalah berupa dokumen.
Preprocessing pada penelitian ini terdiri dari beberapa tahapan, yaitu: proses pemisahan kalimat, proses case folding, proses filtering, proses tokenizing, proses
stopword removal dan proses stemming. Berikut gambaran tahap preprocessing
dapat dilihat pada Gambar 3.3 berikut: Pemisahan
Kalimat Filtering Tokenizing
Stopword Removal Case
Folding Stemming
Gambar 3.3 Proses Preprocessing 3.4.1 Pemisahan Kalimat
Pemisahan kalimat adalah proses memecah teks pada dokumen menjadi kumpulan kalimat-kalimat yang merupakan langkah awal tahapan text preprocessing. Teknik yang digunakan dalam pemisahan kalimat adalah memisahkan kalimat dengan tanda titik (.), tanda tanya (?), dan tanda seru (!) sebagai pemisah (delimiter). Menghilangkan delimeter tersebut dokumen akan terpotong menjadi kalimat[6]. Adapun flowchart dari proses preprocessing
pemisahan kalimat dapat dilihat pada Gambar 3.4 berikut: Mulai
Hapus delimeter
(.?!)
Selesai Data masukan (dokumen)
Data hasil pemisahan
kalimat Cek apakah ada delimeter
(.?!)
ada tidak ya
(39)
Adapun contoh proses preprocessing untuk pemisahan kalimat dapat dilihat pada Tabel 3.1 berikut:
Tabel 3.1 Contoh Pemisahan Kalimat
Sebuah Paragraf Hasil Pemisahan Kalimat
Malaysia memerintahkan penutupan sebagian sekolah selama 2 hari, akibat kabut asap tebal menyelimuti kawasan Asia Tenggara. Akibat kebakaran hutan di Indonesia.
No Kalimat
1
Malaysia memerintahkan penutupan sebagian sekolah selama 2 hari, akibat kabut asap tebal menyelimuti kawasan Asia Tenggara
2 Akibat kebakaran hutan di Indonesia
3.4.2 Case Folding
Proses case folding adalah tahapan pemrosesan teks dimana semua teks diubah ke dalam case yang sama. Pada penelitian ini semua huruf dalam teks dokumen diubah representasinya menjadi huruf kecil semua[6]. Adapun flowchart
dari proses preprocessingcase folding dapat dilihat pada Gambar 3.5 berikut: Mulai
Ubah menjadi huruf kecil
Selesai Data hasil pemisahan
kalimat
Data hasil case folding Cek apakah
ada huruf kapital
ada tidak ya
(40)
Adapun contoh proses preprocessing untuk case folding dapat dilihat pada Tabel 3.2 berikut:
Tabel 3.2 Contoh Case Folding
Sebelum Sesudah Case Folding
Malaysia memerintahkan penutupan sebagian sekolah selama 2 hari, akibat kabut asap tebal menyelimuti kawasan Asia Tenggara
malaysia memerintahkan penutupan sebagian sekolah selama 2 hari akibat kabut asap tebal menyelimuti kawasan asia tenggara
3.4.3 Filtering
Proses filtering adalah tahapan pemrosesan teks dimana semua teks selain
karakter “a” sampai “z” akan dihilangkan dan hanya menerima spasi[6]. Adapun
flowchart dari proses preprocessingfiltering dapat dilihat pada Gambar 3.6 berikut: Mulai
Hapus huruf
selain “a” sampai “z”
Selesai Data hasil
case folding
Data hasil filtering Cek apakah ada huruf selain
“a” sampai “z”
ada tidak ya
Gambar 3.6 Flowchart Proses PreprocessingFiltering
Adapun contoh proses preprocessing untuk filtering dapat dilihat pada Tabel 3.3 berikut:
Tabel 3.3 Contoh Filtering
Sebelum Sesudah Case Folding
malaysia memerintahkan penutupan sebagian sekolah selama 2 hari, akibat kabut asap tebal menyelimuti kawasan asia tenggara
malaysia memerintahkan penutupan sebagian sekolah selama hari akibat kabut asap tebal menyelimuti kawasan asia tenggara
(41)
3.4.4 Tokenizing
Proses Tokenizing adalah proses pemotongan string input berdasarkan tiap kata yang menyusunnya, memecahkan data kalimat dan memisahkannya menjadi setiap kata. Pemecahan kalimat menjadi kata-kata tunggal dilakukan dengan
men-scan kalimat dan setiap kata terindentifikasi atau terpisahkan dengan kata yang lain oleh pemisah spasi[7]. Adapun flowchart dari proses preprocessing tokenizing
dapat dilihat pada Gambar 3.7 berikut: Mulai
Selesai Data
kalimat-kalimat
Data hasil tokenizing
(kata) Pecah data menjadi tiap
kata
Gambar 3.7 Flowchart Proses PreprocessingTokenizing
Adapun contoh proses preprocessing untuk tokenizing dapat dilihat pada Tabel 3.4 berikut:
Tabel 3.4 Contoh Tokenizing
Sebelum Sesudah Tokenizing
malaysia memerintahkan penutupan sebagian sekolah selama hari akibat kabut asap tebal menyelimuti kawasan asia tenggara
malaysia
memerintahkan
penutupan
sebagian
sekolah
selama
hari
akibat
kabut
asap
tebal
menyelimuti
kawasan
asia
(42)
3.4.5 Stopword Removal
Proses stopword removal merupakan proses penghilangan stopword,
menghilangkan kata-kata yang masuk ke dalam daftar kamus stopword. Stopword
adalah kata-kata yang sering kali muncul berupa kata sambung, kata depan, kata ganti, kata penghubung, dll. Namun artinya tidak deskriptif dan tidak memiliki keterkaitan dengan topik tertentu[6]. Adapun flowchart dari proses preprocessing stopword removal dapat dilihat pada Gambar 3.8 berikut:
Mulai
Hapus stopword
pada data
Selesai Data hasil
tokenizing
Data hasil
stopword removal
Cek apakah terdapat kata yg
masuk dalam kamus stopword
ada tidak ya
Gambar 3.8 Flowchart Proses PreprocessingStopwordRemoval
Adapun contoh proses preprocessing untuk stopword removal dapat dilihat pada Tabel 3.5 berikut:
Tabel 3.5 Contoh Stopword Removal
Sebelum Sesudah Stopword Removal
malaysia
memerintahkan
penutupan
sebagian
sekolah
selama
hari
akibat
kabut
asap
tebal
menyelimuti
kawasan
asia
tenggara
malaysia
memerintahkan
penutupan
sekolah
hari
kabut
asap
tebal
menyelimuti
kawasan
asia
(43)
3.4.6 Stemming
Proses Stemming merupakan proses pencarian akar kata (root word) dari tiap kata yaitu dengan mengembalikan suatu kata berimbuhan atau yang memiliki imbuhan ke bentuk dasarnya (stem). Untuk pemrosesan pada bahasa Indonesia, proses stemming dilakukan dengan menghilangkan imbuhan yang mengawali dan mengakhiri kata sehingga diperoleh bentuk dasar dari kata tersebut[7]. Adapun
flowchart dari proses preprocessing stemming dapat dilihat pada Gambar 3.9 berikut: Mulai Selesai Data hasil stopword filtering Kata dasar Hapus partikel Cek kamus Hapus kata ganti Hapus awalan pertama Hapus awalan kedua Hapus akhiran tidak ada Cek kamus tidak ada Cek kamus tidak Cek kamus ada Ada awalan pertama tidak Cek kamus Ada akhiran ada tidak tidak Cek kamus ada Hapus akhiran tidak Hapus awalan kedua tidak ya ya
(44)
Adapun contoh proses preprocessing untuk stemming dapat dilihat pada Tabel 3.6 berikut:
Tabel 3.6 Contoh Stemming Algoritma Porter Stemmer Bahasa Indonesia
No Tahap Kata Keterangan
1 Menghapus partikel (particle) mempersiapkan Tidak ada di kamus dan tidak ada partikel.
2 Menghapus kata ganti (possesive pronoun)
mempersiapkan Tidak ada di kamus dan tidak ada possesive pronoun. 3 Menghapus awalan pertama (first
order prefix), jika ditemukan maka lanjutkan ke langkah 4a, jika tidak maka lanjutkan ke langkah 4b
persiapkan Tidak ada di kamus tetapi terdapat first order prefix
“mem-” dihapus. 4a Menghapus awalan kedua (second
order prefix) kemudian lanjutkan ke langkah 5a
siapkan Tidak ada di kamus tetapi terdapat second order prefix
“per-” dihapus 4b Menghapus akhiran (suffix), jika
ditemukan lanjutkan ke langkah 5b, jika tidak maka kata tersebut diasumsikan sebagai kata dasar 5a Menghapus akhiran (suffix) dan
kata akhir diasumsikan sebagai kata dasar
siap Tidak ada di kamus tetapi terdapat suffix “-kan” dihapus dan kata akhir diasumsikan sebagai kata dasar
5b Menghapus awalan kedua (second order prefix) dan kata akhir diasumsikan sebagai kata dasar
Hasil proses stemming tersebut digunakan dalam melakukan pembobotan tf-idf dan perhitungan cosine similarity untuk similarity kalimat. Similarity kalimat merupakan bobot hasil perbandingan kemiripan antar kalimat.
3.5 Analisis Pembobotan TF-IDF
Term Frequency – Inverse Document Frequency digunakan untuk menentukan nilai frekuensi sebuah kata di dalam dokumen. Perhitungan statistik numerik yang dimaksudkan untuk mencerminkan betapa pentingnya dan seberapa
(45)
relevannya sebuah kata di dalam sebuah dokumen. Prosedur dalam implementasi TF-IDF terdapat perbedaan kecil di dalam semua aplikasinya seperti pada banyaknya kalimat atau banyaknya dokumen, tetapi pendekatannya kurang lebih sama[11].
Pada penelitian ini pembobotan diperoleh dari frekuensi sebuah kata yang terdapat di dalam sebuah kalimat atau jumlah kemunculan term dalam satu dokumen term frequency (tf) dan sebuah kata di dalam kumpulan dokumen atau jumlah kemunculan term dalam koleksi dokumen inverse document frequency (idf). Nilai idf sebuah term (kata) dapat dihitung menggunakan persamaan (2.1). Untuk menghitung bobot (W) masing-masing dokumen terhadap setiap term (kata) dapat menggunakan persamaan (2.2). Adapun flowchart dari proses pembobotan tf-idf dapat dilihat pada Gambar 3.10 berikut:
Mulai
Data hasil proses
prepocessing
Hitung term frekuensi (tf) pada
tiap kalimat
Hitung dokumen frekuensi (df)
Hitung idf
Hitung tf*idf
Selesai Data hasil
pembobotan tf-idf
Gambar 3.10 Flowchart Proses Pembobotan TF-IDF
Sebagai contoh dilakukan peringkasan terhadap dokumen pertama, diasumsikan term-term sudah didapatkan dari dokumen tersebut, berikut adalah contoh pembobotan tf-idf dengan adalah kalimat seperti pada tabel Tabel 3.7:
(46)
Tabel 3.7 Term dari Kalimat pada Dokumen Pertama
Kalimat Term
S1 pemerintah malaysia libur sekolah dua hari lindung anak kabut asap asal indonesia senin
S2 indeks polusi udara wilayah negeri jiran sentuh level sangat tidak sehat S3 otoritas paksa tutup sekolah hari selasa besok
S4 shah alam selangor indeks polusi udara turun cukup tajam S5 angka indeks aman moderat tidak sehat sangat bahaya
S6 dapat area malaysia utama wilayah utara level tidak sehat buruk penang level S7 kabut asap paksa berapa bandara malaysia tutup minggu
S8 acara lari maraton kuala lumpur batal
Proses pertama lakukan perhitungan kata (term) yang ada pada setiap kalimat, hasilnya dapat dilihat pada lampiran tabel perhitungan Tabel 1 Term Frequency. Kemudian hitung df, karena perhitungan dilakukan pada sebuah dokumen dan yang dihitung term pada kalimat dalam dokumen tersebut, maka df = jumlah term yang ada pada setiap kalimat, hasilnya dapat dilihat pada lampiran tabel perhitungan Tabel 2 Nilai DF. Selanjutnya menghitung idf, maka hasil perhitungan dapat dilihat pada lampiran tabel perhitungan Tabel 3 Nilai IDF.
Kemudian hasil tf dan idf kembali dilakukan perhitungan menggunakan persamaan (2.2). Adapun hasil yang didapatkan dari perhitungan pembobotan TF-IDF dapat dilihat pada Tabel 3.8 berikut:
Tabel 3.8 Hasil Pembobotan TF-IDF
Term
Weight
Kalimat
S1 S1 S1 S1 S1 S1 S1 S1
pemerintah 0.903 0 0 0 0 0 0 0
malaysia 0.426 0 0 0 0 0.426 0.426 0
libur 0.903 0 0 0 0 0 0 0
sekolah 0.602 0 0.602 0 0 0 0 0
dua 0.903 0 0 0 0 0 0 0
hari 0.602 0 0.602 0 0 0 0 0
(47)
Term
Weight
Kalimat
S1 S1 S1 S1 S1 S1 S1 S1
anak 0.903 0 0 0 0 0 0 0
kabut 0.602 0 0 0 0 0 0.602 0
asap 0.602 0 0 0 0 0 0.602 0
asal 0.903 0 0 0 0 0 0 0
indonesia 0.903 0 0 0 0 0 0 0
senin 0.903 0 0 0 0 0 0 0
indeks 0 0.426 0 0.426 0.426 0 0 0
polusi 0 0.602 0 0.602 0 0 0 0
udara 0 0.602 0 0.602 0 0 0 0
wilayah 0 0.602 0 0 0 0.602 0 0
negeri 0 0.903 0 0 0 0 0 0
jiran 0 0.903 0 0 0 0 0 0
sentuh 0 0.903 0 0 0 0 0 0
level 0 0.426 0 0 0 0.852 0 0
sangat 0 0.602 0 0 0.602 0 0 0
tidak 0 0.426 0 0 0.426 0.426 0 0
sehat 0 0.426 0 0 0.426 0.426 0 0
otoritas 0 0 0.903 0 0 0 0 0
paksa 0 0 0.602 0 0 0 0.602 0
tutup 0 0 0.602 0 0 0 0.602 0
selasa 0 0 0.903 0 0 0 0 0
besok 0 0 0.903 0 0 0 0 0
shah 0 0 0 0.903 0 0 0 0
alam 0 0 0 0.903 0 0 0 0
selangor 0 0 0 0.903 0 0 0 0
turun 0 0 0 0.903 0 0 0 0
cukup 0 0 0 0.903 0 0 0 0
tajam 0 0 0 0.903 0 0 0 0
angka 0 0 0 0 0.903 0 0 0
aman 0 0 0 0 0.903 0 0 0
moderat 0 0 0 0 0.903 0 0 0
bahaya 0 0 0 0 0.903 0 0 0
(1)
128
[11] P. Jasman dan S. Jordy, “Implementasi Maximum Marginal Relevance dan Matriks Cosine Similarity Pada Aplikasi Peringkasan Dokumen,” dalam Prosiding Konferensi Nasional Sistem Informasi, 2015.
[12] A. S. Rosa dan M. Shalahuddin, Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek), Bandung: Modula, 2013. [13] R. S. Pressman, Rekayasa Perangkat Lunak, Yogyakarta: ANDI, 2012.
(2)
(3)
iii
KATA PENGANTAR
Bismillahhirrahmanirrahim.
Assalamu’alaikum Warahmatullahi Wabarakatuh.
Alhamdulillahi Rabbil ‘Alamin, segala puji dan syukur penulis panjatkan kehadirat Allah SWT yang atas rahmat dan karunia-Nya, tidak lupa shalawat serta salam tercurah limpahkan kepada Baginda Rasulullah SAW, sehingga penulis dapat menyelesaikan skripsi yang berjudul “IMPLEMENTASI METODE SUPPORT VECTOR MACHINE DAN METODE MAXIMUM MARGINAL RELEVANCE UNTUK MENGHASILKAN RANGKUMAN DARI KUMPULAN DOKUMEN BERITA DENGAN TOPIK SEJENIS” untuk memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia.
Dikarenakan keterbatasan yang dimiliki Penulis, penyusunan skripsi ini tidak akan terwujud tanpa mendapat banyak dukungan, bantuan dan masukan dari berbagai pihak. Untuk itu melalui kata pengantar ini, Penulis ingin menyampaikan rasa terimakasih yang sebesar-besarnya kepada:
1. Allah SWT atas segala nikmat yang telah diberikan, beserta izin-Nya lah sehingga Penulis dapat menyelesaikan skripsi ini.
2. Kedua orang tua berserta kakak yang telah memberikan kasih sayang, doa dan dukungan baik moril maupun materi, sehingga Penulis dapat menyelesaikan skripsi ini tepat pada waktunya.
3. Ibu Ednawati Rainarli, S.Si., M.Si., selaku dosen wali Penulis di kelas IF-11/2011 dan dosen pembimbing Penulis. Terimakasih karena telah banyak meluangkan waktu untuk memberikan bimbingan, saran, ilmu dan nasehatnya selama proses penyusunan skripsi ini.
4. Bapak Eko Budi Setiawan, S.Kom., M.T., selaku reviewer, karena telah memberikan saran, ilmu dan masukannya kepada Penulis.
5. Ibu Kania Evita Dewi, S.Pd., M.Si., selaku penguji tiga, karena telah memberikan saran, ilmu dan masukannya kepada Penulis.
(4)
iv
6. Bapak dan Ibu dosen serta seluruh staf pegawai Program Studi Teknik Informatika Universitas Komputer Indonesia yang telah membantu Penulis selama proses perkuliahan.
7. Teman-teman seperjuangan angkatan 2011 terutama di kelas IF-11 yang selalu memberi dukungan dan semangat kepada Penulis selama penyusunan skripsi. 8. Seluruh saudara, sahabat dan teman-teman Penulis yang selalu memberikan
dukungan, motivasi, serta telah meluangkan waktunya untuk bermain bersama. 9. Serta seluruh pihak yang tidak dapat Penulis sebutkan satu persatu, terimakasih
atas segala bentuk dukungannya untuk menyelesaikan skripsi ini.
Penulis menyadari bahwa penulisan skripsi ini masih jauh dari kata sempurna. Oleh karena itu, Penulis mengharapkan saran dan masukan yang bersifat membangun untuk perbaikan dan pengembangan skripsi ini selanjutnya. Akhir kata, semoga penulisan skripsi ini dapat bermanfaat bagi penulis khususnya dan bagi pembaca pada umumnya.
Wassalamu’alaikum wa rahmatullah wabarakatuh.
Bandung, Februari 2016
(5)
(6)