xxxvii
DAFTAR KODE SUMBER
Kode Sumber 2-1 Contoh dokumen RSS ... 9
Kode Sumber 2-2 Contoh dokumen XML ... 11
Kode Sumber 3-1 Pseudocode penguraian RSS ... 34
Kode Sumber 4-1 Fungsi untuk mengurai konten rss ... 120
Kode Sumber 4-2 Fungsi untuk menambah channel ... 122
Kode Sumber 4-3 Fungsi untuk mengunduh konten rss ... 123
Kode Sumber 4-4 Fungsi untuk menghapus channel ... 124
Kode Sumber 4-5 Fungsi untuk melakukan pelatihan data ... 125
Kode Sumber 4-6 Fungsi untuk melakukan klasifikasi ... 127
Kode Sumber 4-7 Fungsi untuk menambah kategori baru ... 128
Kode Sumber 4-8 Fungsi untuk menambah data latih baru ... 128
Kode Sumber 4-9 Fungsi untuk memanggil pengaturan ... 129
Kode Sumber 4-10 Fungsi untuk menyimpan pengaturan ... 130
Kode Sumber 4-11 Implementasi kelas objek RSSChannel... 131
Kode Sumber 4-12 Implementasi kelas objek RSSItem ... 133
Kode Sumber 4-13 Implementasi kelas objek Category ... 136
Kode Sumber 4-14 Implementasi kelas objek Comment ... 137
Kode Sumber 4-15 Implementasi kelas objek Rule ... 139
Kode Sumber 4-16 Implementasi kelas objek User ... 141
Kode Sumber 4-17 Implementasi kelas objek Download ... 142
Kode Sumber 4-18 Potongan kode sumber kelas RSSChannelDao ... 144
xxxviii
Kode Sumber 4-19 Potongan kode sumber kelas RSSItemlDao ... 146 Kode Sumber 4-20 Potongan kode sumber kelas RuleDao ... 149 Kode Sumber 4-21 Potongan kode sumber kelas CategoryDao 152 Kode Sumber 4-22 Potongan kode sumber kelas CommentDao ... 154
1
BAB 1 PENDAHULUAN
Pada bab ini akan dipaparkan mengenai garis besar Tugas Akhir (TA) yang meliputi Latar Belakang, Rumusan Masalah, Batasan Masalah, Tujuan dan Manfaat, Metodologi Pembuatan Tugas Akhir serta Sistematika Penulisan.
1.1 Latar Belakang
Berita merupakan salah satu informasi yang banyak diminati oleh sebagian orang baik berita olahraga, kesehatan, sosial, politik maupun teknologi menjadi topik yang sangat menarik untuk dibaca. Hal ini menunjukkan bahwa setiap orang membutuhkan informasi sebagai bagian dari tuntutan kehidupannya, penunjang kegiatannya, bahkan pemenuhan kebutuhannya. Hal ini pula yang melatarbelakangi semakin banyaknya media masa yang bermunculan dalam memenuhi kebutuhan para pembaca berita tersebut baik dengan menyediakan berbagai informasi yang hangat dan aktual dalam berbagai bentuk baik cetak maupun elektronik.
Sebagian besar orang lebih memilih membaca berita elektonik yang disediakan oleh beberapa situs web daripada media cetak karena lebih ekonomis dan efektif dalam memilih berita yang diinginkan. Pada umumnya setiap orang akan membuka situs berita yang berbeda untuk mendapatkan informasi-informasi terbaru seputar olahraga, kesehatan, sosial, politik, sosial maupun teknologi baik untuk melengkapi informasi atau hanya sekedar membandingkan kebenarannya. Kondisi seperti ini tentu saja kurang efektif karena setiap orang harus membuka situs berita lain atau halaman berbeda dalam satu situs berita yang sama untuk mendapatkan informasi terbaru yang diinginkan. Saat ini telah terdapat beberapa situs berita yang memberikan informasi berita dari sumber berita yang berbeda seperti Lintas Berita (http://www.lintasberita.com), Delicious
(http://www.delicious. com) dan Digg (http://www.digg.com), akan tetapi berita yang terdapat pada situs tersebut cenderung menggabungkan berita dari sumber satu dengan sumber berita yang lainnya dalam satu kolom sehingga menyulitkan untuk mendapatkan berita dari sumber berita yang diinginkan secara spesifik dan cepat.
Di lain sisi, cara untuk mendapatkan informasi berita terbaru dari suatu situs berita adalah dengan berlangganan RSS yang disediakannya. Teknologi Really Simple Syndication (RSS) ini merupakan teknologi yang memudahkan untuk mendapatkan informasi berita terbaru secara otomatis dari suatu situs tertentu.
Pada RSS, setiap kali situs web melakukan pembaruan informasi maka informasi terbaru tersebut akan diterima secara otomatis kepada pelanggan RSS dari situs penyedia RSS tersebut. Pada umumnya beberapa mesin penjelajah web telah memiliki kemampuan untuk menyimpan RSS suatu situs web namun tampilan yang dihasilkan kurang informatif karena hanya berupa judul dan tidak dapat menampilkan gambar dari berita terkait (bila tersedia), bila menginginkan RSS dari berbagai situs web maka mesin penjelajah web akan penuh.
Oleh karena itu dibutuhkan perancangan dan pembuatan aplikasi perangkat lunak berbasis web yang mampu membaca dan mengelola RSS tersebut dengan baik dan dinamis sehingga dapat menjadi sebuah website berita tersendiri yang dapat memberikan kenyamanan dan kemudahan dalam mendapatkan informasi berita terbaru secara spesifik sesuai dengan yang dibutuhkan.
1.2 Rumusan dan batasan masalah
Rumusan masalah yang diangkat dalam Tugas Akhir ini dapat dipaparkan sebagai berikut:
1. Bagaimana membaca dan mengelola RSS suatu situs berita serta memastikan kontennya selalu diperbarui.
2. Bagaimana mengimplementasikan metode Bayesian dalam mengklasifikasikan berita pada perangkat lunak pembuat berita.
3. Bagaimana merancang dan mengimplementasikan perangkat lunak pembuat berita dengan menggunakan kerangka kerja JSF.
Permasalahan yang dibahas dalam Tugas Akhir ini memiliki beberapa batasan, diantaranya sebagai berikut:
1. Aplikasi ini berbasis web.
2. Perangkat lunak yang dikembangkan hanya membaca RSS Feed.
3. Konten berita pada perangkat lunak diambil dari situs web yang menggunakan bahasa indonesia.
4. Konten berita pada perangkat lunak diklasifikasikan secara otomatis berdasarkan sumber RSS dan kategori- kategori tertentu
5. Metode klasifikasi berita yang digunakan adalah Naïve Bayes Classifier.
6. Konten berita pada perangkat lunak hanya berisi text.
7. Perangkat lunak berupa aplikasi web dengan platform Java dengan menggunakan arsitektur MVC dengan kerangka kerja Java Server Faces dan XML sebagai media penyimpanannya
1.3 Tujuan dan manfaat
Tugas Akhir ini bertujuan merancang dan membangun perangkat lunak yang dapat membaca serta mengelola RSS dari beberapa situs web secara praktis.
Manfaat yang diharapkan dari Tugas Akhir ini yaitu membuat perangkat lunak yang mempu membaca serta mengelola RSS dari beberapa situs web yang menyediakan informasi berita.
Informasi berita yang dihasilkan dapat diklasifikasikan berdasarkan sumber RSS berita atau kategori tertentu yang dapat dilakukan secara manual ataupun otomatis sehingga nantinya akan menghasilkan sebuah situs berita tersendiri yang hanya memuat berita-berita secara spesifik yang dinginkan oleh pembaca saja.
1.4 Metodologi
Langkah-langkah yang ditempuh dalam pengerjaan Tugas Akhir ini adalah:
1. Studi Literatur
Mencari dan mempelajari berbagai macam literatur yang berkaitan dengan rumusan masalah, teori-teori yang berhubungan dengan sistem yang akan dibangun, perancangan, implementasi, dan teknologi yang digunakan. Fokus studi dilakukan pada penguraian RSS dalam bahasa pemrograman Java, konsep query pada XML, konsep membangun aplikasi pembuat berita dalam ruang kerja Java Server Faces, library antarmuka pengguna Primefaces 3.0 dan metode klasifikasi Naïve Bayes Classifier.
2. Perancangan Perangkat Lunak
Dalam tahap ini akan dibagi menjadi beberapa kategori perancangan yaitu:
a. Perancangan Logika Bisnis dengan Pemodelan Data.
Pada tahap ini dilakukan pembuatan model data beserta logikanya untuk memodelkan entitas dan proses bisnis pada Newsmaker. Pemodelan Data juga dilakukan di tahap ini yaitu pada setiap domain object.
b. Perancangan Lapisan Akses Data aplikasi. Pada tahap ini dilakukan perancangan pada bagian perangkat lunak yang berhubungan dengan pengambilan atau penulisan data ke penyimpanan atau servis data. Fungsi atau proses pada Lapisan Akses Data disesuaikan dengan kebutuhan fungsional sistem.
c. Perancangan Lapisan Antarmuka Pengguna (User Interface). Perancangan antarmuka dilakukan dengan pola Model-View-Controller sehingga memisahkan antara tampilan(view) dengan logika presentasi (presentation logic).
3. Implementasi perangkat lunak
Pada tahap ini dilakukan proses implementasi dari tahap perancangan perangkat lunak. Pembuatan aplikasi dilakukan dengan menggunakan Netbeans 6.9.1.
4. Uji coba dan evaluasi
Pada tahap ini , aplikasi sudah selesai dibuat dan siap digunakan untuk diuji. Uji coba dilakukkan dengan menguji setiap fitur yang meliputi pengujian logic dengan data tertentu.
5. Penyusunan buku tugas akhir
Pada tahap ini dilakukan penyusunan buku sebagai laporan dan dokumentasi dari perangkat lunak secara keseluruhan, mulai dari tahap awal hingga tahap akhir pembuatan tugas akhir.
1.5 Sistematika Penulisan
Buku Tugas Akhir ini terdiri dari beberapa bab, yang dijelaskan sebagai berikut:
BAB I. PENDAHULUAN
Bab ini berisi latar belakang masalah, rumusan permasalahan, tujuan dan manfaat pembuatan tugas akhir, metodologi yang digunakan, dan sistematika penyusunan tugas akhir.
BAB II. KAJIAN PUSTAKA
Bab ini membahas beberapa teori penunjang yang berhubungan dengan pokok pembahasan dan mendasari pembuatan Tugas Akhir ini.
BAB III. ANALISIS DAN PERANCANGAN
Bab ini membahas tahap analisis dan desain kebutuhan bisnis dari proses bisnis yang ada pada perusahaan.
BAB IV. IMPLEMENTASI
Bab ini membahas implementasi dari desain sistem yang dilakukan pada tahap sebelumnya yaitu tahap perancangan, disertai dengan potongan source code yang penting dalam aplikasi.
BAB V. UJI COBA DAN EVALUASI
Bab ini membahas uji coba dari aplikasi yang dibuat dengan melihat hasil keluaran yang dihasilkan oleh aplikasi, dan evaluasi untuk mengetahui kemampuan aplikasi.
BAB VI. PENUTUP
Bab ini berisi kesimpulan dari hasil uji coba yang dilakukan serta saran untuk pengembangan aplikasai selanjutnya.
7
BAB 2
KAJIAN PUSTAKA
Pada bab ini akan dipaparkan beberapa teori penunjang yang berhubungan dengan pokok pembahasan dan mendasari pembuatan Tugas Akhir ini.
2.1 Really Simple Syndication (RSS)
RSS adalah teknologi internet yang merujuk pada cara men-sindikasi-kan konten sebuah situs web (web syndication).
Teknologi RSS ini memberikan layanan untuk berlangganan kepada situs web yang menyediakan layanan RSS feed[1].
RSS adalah salah satu varian dari format web feed yang digunakan untu mempublikasikan konten digital yang secara frekuentatif diperbarui seperti blog, news feed atau podcast.
Teknologi RSS merupakan contoh dari pull technology atau client pull, artinya request atau permintaan berasal dari client dan langsung direspons oleh server. Selain itu, RSS disediakan sebuah situs dapat digunakan untuk melengkapi situs lain.
Format RSS dikhususkan dalam bentuk XML (spesifikasi umum format data). RSS menyebarkan informasi melalui sebuah berkas XML yang disebut sebagai “RSS feed”, “webfeed”, “RSS stream”, atau “RSS Channel”. Program yang dikenal sebagai feed reader atau aggregators dapat melakukan pemeriksaan terhadap daftar feed berdasarkan kepentingan pengguna dan menampilkan berbagai macam informasi atau artikel terbaru pada suatu situs web. Gambar 2.1[2] menunjukkan komponen fungsional dari teknologi RSS.
Gambar 2.1 Komponen fungsional teknologi RSS
Berkas XML pada RSS terdiri dari deklarasi dari versi XML dan RSS yang digunakan. Di dalam deklarasi RSS terdapat elemen-elemen yang menunjukkan isi dari RSS tersebut. Elemen yang berisi informasi RSS tersebut dinamakan elemen channel sedangkan elemen yang berisi informasi berupa artikel atau berita dinamakan elemen item. Untuk lebih jelasnya, Kode Sumber 2-1 menunjukka contoh dari dokumen RSS.
Menurut aturan RSS Advisory Board[3], terdapat tiga elemen penting yang harus ada dalam elemen channel yaitu :
1. Title : Judul RSS
2. Link : Alamat url dari situs penyedia RSS 3. Description : Informasi singkat RSS
Sedangkan untuk elemen yang berupa opsional adalah sebagai berikut :
1. Category : Informasi kategori RSS 2. Copyright : Informasi hak cipta RSS
3. Image : Alamat url dari gambar situs RSS 4. Language : Informasi bahasa yang digunakan 5. Pubdate : Tanggal publikasi konten channel
Untuk elemen item, terdapat tiga elemen penting yang harus ada didalamnya yaitu:
1. Title : Judul item
2. Link : Alamat url item pada situs penyedia RSS 3. Description : Informasi atau konten dari item
Sedangkan untuk elemen opsional dari elemen item yang bisa ada atau tidak adalah sebagai berikut :
1. Author : Penulis item
2. Enclosure : Alamat dokumen media yang dimuat 3. Pubdate : Informasi tanggal publikasi item 4. Guid : Informasi id unik dari item
Kode Sumber 2-1 Contoh dokumen RSS
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>VIVAnews - POLITIK</title>
<link>http://rss.vivanews.com</link>
<description>RSS Service</description>
<language>en-us</language>
<pubDate>Mon, 04 Jul 2011 19:47:56 +0800</pubDate>
<image>
<title>VivaNews.co.id</title>
<link>http://rss.vivanews.com</link>
<url>http://www.vivanews.com/appaux/.... </url>
<width>213</width>
<height>30</height>
<description>Viva News Feeds</description>
</image>
<item>
<title>Pendiri Demokrat: Partai Ini Lagi Heboh</title>
<link>http://politik.vivanews.com/news/read/230909....</link>
<description>Meski begitu Demokrat tidak akan ….</description>
<pubDate>Mon, 04 Jul 2011 19:44:34 +0700</pubDate>
<guid>http://politik.vivanews.com/news/read/230909-pen....</guid>
</item>
<item>
<title>Prihatin Nazaruddin, Pendiri Demokrat Kumpul</title>
<link>http://politik.vivanews.com/news/read/....</link>
<description>Mereka menilai kondisi …..</description>
<pubDate>Mon, 04 Jul 2011 17:22:02 +0700</pubDate>
<guid>http://politik.vivanews.com/news/read/230888... </guid>
</item>
. . .
</channel>
</rss>
2.2 Extensible Markup Language (XML)
XML (Extensible Markup Language) adalah merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode- kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti baik manusia maupun mesin[4]. XML dapat digunakan sebagai media penyimpanan data, standar dari transfer data juga dapat digunakan sebagai berkas konfigurasi.
Banyak antarmuka pemrograman aplikasi (API) telah dikembangkan untuk digunakan pengembang perangkat lunak dalam membaca dan memproses data XML diantaranya adalah XML Document Object Model (XML DOM) dan XPath.
2.2.1. XML Document Object Model (DOM)
DOM merupakan sebuah standar untuk mengakses dan memanipulasi dokumen XML dan HTML. DOM dibagi menjadi 3 bagian[5] yang berbeda yaitu :
- Core DOM, model standar untuk dokumen terstruktur - HTML DOM, model standar untuk dokumen html - XML DOM, model standar untuk dokumen XML 2.2.2. XPath
Xpath digunakan untuk memilih node atau sekumpulan node dalam sebuah dokumen XML menggunakan sebuah ekspresi path. Ekspresi path tersebut terlihat sangat familiar dan mudah dimengerti karena sangat mirip dengan ekspresi yang digunakan
dalam mengakses sebuah sistem berkas dalam computer[6]. Dalam Xpath terdapat 7 macam node, yaitu : element, attribute, text, namespace, processing-instruction, comment, and document nodes. Untuk mengakses sebuah dokumen XML menggunakan XPath, langkah dan ekspresi path yang serta contoh dokumenXML pada Kode Sumber 2-1 adalah sebagai berikut:
Kode Sumber 2-2 Contoh dokumen XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<tokobuku>
<buku>
<judul lang=”eng”>XML DOM</judul>
<harga>35</harga>
</buku>
<buku>
<judul lang=”ind”>XML XPath</judul>
<harga>50</harga>
</buku>
</tokobuku>
1. Memilih Node
Untuk memilih node maka ekspresi dasar yang digunakan ditunjukkan pada Tabel 2.1.
Tabel 2.1 Ekspresi dasar dari XPath
Ekspresi Deskripsi
nodename Memilih semua anak node dari elemen dengan nama nodename
/ Memilih akar node dalam dokumen dimulai akar node (root node)
// Memilih semua node tertentu dalam dokumen dipossisi manapun
. Memilih node saat ini (current node) .. Memilih parent dari node saat ini
@ Memilih atribut
Contoh dari penggunaan ekspresi dasar pada Tabel 2.1 ditunjukkan pada Tabel 2.2.
Tabel 2.2 Contoh penggunaan ekspresi dasar dari XPath
Ekspresi path Hasil
tokobuku Memilih semua anak node dari elemen tokobuku
/tokobuku Memilih semua anak node tokobuku dalam dokumen dimulai akar node (root node)
tokobuku//buku Memilih semua node buku yang merupakan anak dari node tokobuku
//buku Memilih semua node buku dimanapun posisi node buku dalam dokumen
tokobuku//buku Memilih semua node buku yang merupakan anak dari node tokobuku dimanapun posisi node buku
//@lang Memilih semua atribut yang ditunjukkan oleh nama atribut ‘lang’
2. Predikat
Predikat digunakan untuk mendapatkan node tertentu secara spesifik. Predikat ditandai dengan menggunakan kurung siku yang berisi parameter tertentu. Tabel 2.3 menunjukkan penggunaan dari predikat yang diterapkan dalam contoh dokumen XML.
Tabel 2.3 Penggunaan ekspresi predikat pada XPath
Ekspresi Hasil
Tokobuku/buku[1] Memilih node buku pertama dari anak node tokobuku
/tokobuku/buku[last()] Memilih node buku terakhir dari anak node tokobuku
/tokobuku/buku[last()-1] Memilih node buku kedua terkahir dari anak node tokobuku
/tokobuku/buku[position<3] Memilih semua node buku diposisi kurang dari 3
/judul[@lang] Memilih semua node yang
memiliki atribut ‘lang’
/judul[@lang=’eng’] Memilih semua node yang memiliki nilai atribut ‘eng’
/tokobuku/buku[harga>35] Memilih semua node buku yang memiliki anak node bernama harga dengan nilai > 35
/tokobuku/buku[harga>35]/judul Memilih semua node judul dari node buku yang memiliki anak node dengan nilai > 35
3. Wildcard
Xpath menyedian ekspresi wildcard untuk memilih sembarang node. Tabel 2.4 dan Tabel 2.5 menunjukkan ekspresi dasar dan contoh penggunaan ekspresi wildcard XPath pada contoh dokumen XML.
Tabel 2.4 Ekspresi dasar wildcard pada Xpath
Ekspresi path Deskripsi
* Memilih semua node dalam dokumen
@* Memilih semua node yang memiliki sembarang atribut
Tabel 2.5 Contoh penggunaan ekspresi wildcard XPath
Ekspresi path Hasil
tokobuku/* Memilih semua anak node dari node tokobuku //* Memilih semua node dalam dokumen
//judul[@*] Memilih semua node yang memiliki atribut 2.3 Java Platform
Java 2 Platform, Enterprise Edition (J2EE) adalah platform independen yang telah digunakan secara luas dalam
bahasa pemrograman Java untuk mengembangkan, membangun dan menyebarkan aplikasi web berskala enterprise . J2EE mencakup banyak komponen dari Java Standard Edition (Java SE). Komponen-komponen tersebut bersifat modular yang dapat digunakan ulang dan memungkinkan setiap tier pada aplikasi melakukan aspek pemrograman secara otomatis . Platform J2EE terdiri dari satu set layanan, API, dan protokol yang menyediakan fungsionalitas untuk mengembangkan aplikasi berbasis web multitier.
Beberapa teknologi yang mendukung J2EE adalah sebagai berikut :
2.3.1. Java Server Faces
Java Server Faces (JSF) adalah teknologi Java untuk aplikasi web yang dikembangkan oleh Sun Microsystems dengan tujuan menciptakan standar kerangka kerja komponen antarmuka pengguna dalam sebuah aplikasi web. JSF membangun suatu aplikasi web yang berjalan pada sisi server kemudian menampilkan antarmuka pengguna ke klien. JSF menyediakan komponen antarmuka pengguna yang umumnya digunakan web dan memiliki standar yang sama sehingga dapat dijalankan di berbagai platform dan device[7].
Sebagaimana konsep arsitektur pemrograman berorientasi objek, JSF juga mempunyai pemisahan yang jelas antara komponen layer Model, View , dan Controller. Kerangka kerja JSF memiliki sebuah controller servlet bagian depan yaitu FacesServlet yang bertanggung jawab untuk menerima permintaan dari klien dan kemudian menjalankan action yang telah ditentukan.
2.3.2. Primefaces
Primefaces adalah komponen dalam pembangunan aplikasi web yang menggunakan framework Java Server Faces yang bersifat open source. Selain itu, primefaces juga dapat digunakan untuk membangun aplikasi mobile web.
2.4 Confix Stripping Stemmer
Confix Stripping (CS) stemmer adalah metode stemming untuk Bahasa Indonesia yang diperkenalkan oleh Jelita Asian [8]. Stemmer ini merupakan pengembangan dari metode stemming untuk Bahasa Indonesia yang diperkenalkan oleh Nazief dan Adriani (1996). Algoritma stemming Nazief dan Adriani ini dikembangkan berdasarkan pada aturan morfologi Bahasa Indenesia yang mengelompokkan dan mengenkapsulasi imbuhan- imbuhan, termasuk di dalamnya adalah awalan (prefix), sisipan (infix), akhiran (suffix) dan gabungan awalan-akhiran (confixes).
Algoritma ini menggunakan kamus kata dasar dan mendukung recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming berlebih.
Tabel 2.6 Kombinasi awalan-akhiran yang dilarang Awalan (prefix) Akhiran (suffix) yang tidak diperbolehkan
be- -i
di- -an
ke- -I, -kan
me- -an
se- -a, -kan
te- -an
Algoritma stemmer Nazief dan Adriani mengelompokkan imbuhan ke dalam beberapa kategori sebagai berikut:
1. Inflection suffixes yakni kelompok-kelompok akhiran yang tidak merubah bentuk kata dasar. Sebagai contoh, kata
“duduk” yang diberikan akhiran “-lah” akan menjadi
“duduklah”. Kelompok ini dapat dibagi menjadi dua :
• Particle (P) atau partikel, yakni termasuk di dalamnya
“-lah”, “-kah”, “-tah”, dan “-pun”.
• Possessive Pronoun (PP) atau kata ganti kepunyaan, termasuk di dalamnya adalah “-ku” , “-mu”, dan “-nya”.
2. Derivation Suffixes (DS) yakni kumpulan akhiran asli Bahasa Indonesia yang secara langsung ditambahkan pada kata dasar. Termasuk di dalamnya adalah akhiran “-i”, “-kan”, dan “-an”.
3. Derivation Prefixes (DP) yakni kumpulan awalan yang dapat langsung diberikan pada kata dasar murni, atau pada kata dasar yang sudah mendapatkan penambahan sampai dengan 2 awalan. Termasuk di dalamnya adalah awalan yang dapat bermorfologi (“me-”, “be-”, “pe-”, dan “te-”) serta awalan yang tidak bermorfologi (“di-”, “ke-” dan “se-”).
Berdasarkan pengklasifikasian imbuhan-imbuhan di atas, maka bentuk kata berimbuhan dalam Bahasa Indonesia dapat dimodelkan sebagai berikut:
[ DP + [ DP + [ DP + ] ] ] Kata Dasar [ [ + DS ][ + PP ][ + P ] ] dengan batasan sebagai berikut :
1. Tidak semua kombinasi diperbolehkan, sebagai contoh pada kata yang diberi awalan “di-”, maka penambahan akhiran “- an” tidak diperkenankan. Kombinasi-kombinasi imbuhan yang tidak diperbolehkan dapat dilihat pada Tabel 2.6 2. Penggunaan imbuhan yang sama secara berulang tidak
diperkenankan.
3. Jika suatu kata hanya terdiri dari satu atau dua huruf, maka proses stemming tidak dilakukan.
4. Penambahan suatu awalan tertentu dapat mengubah bentuk asli kata dasar, ataupun awalan yang telah diberikan sebelumnya pada kata dasar bersangkutan (bermorfologi).
Sebagai contoh, awalan “me-” dapat berubah menjadi
“meng- ”, “men-”, “meny-”, dan “mem-”. Oleh karena itu, diperlukan suatu aturan yang mampu mengatasi masalah morfologi ini.
Pada dasarnya, algoritma confix stripping stemmer dikembangkan dari algoritma stemming yang dibuat oleh Nazief dan Adriani, dengan beberapa penambahan aturan tertentu yang telah terbukti mampu meningkatkan kinerja stemmer tersebut.
Algoritma stemmer yang diperkenalkan Nazief dan Adriani didefinisikan sebagai berikut :
1. Kata yang hendak di-stemming dicari terlebih dahulu pada kamus. Jika kata ditemukan dalam kamus, berarti kata tersebut sudah berbentuk kata dasar, jika tidak maka tahap selanjutnya dilakukan.
2. Hilangkan inflectional particle P (“-lah”, “-kah”, “-tah”, “- pun”) dan kata ganti kepunyaan atau possessive pronoun PP (“-ku”, “-mu”, “-nya”).
3. Hilangkan derivation suffixes DS (“-i”, “-kan”, atau “-an”).
4. Hilangkan derivation prefixes DP {“di-”,“ke-”,“se-”,“me-
”,“be-”,“pe”, “te-”} dengan iterasi aksimum adalah 3 kali : a. Langkah 4 berhenti jika :
• Terjadi kombinasi awalan dan akhiran yang terlarang seperti pada Tabel 2.6.
• Awalan yang dideteksi saat ini sama dengan awalan yang dihilangkan sebelumnya.
• Tiga awalan telah dihilangkan.
b. Identifikasikan tipe awalan dan hilangkan. Awalan ada dua tipe:
• Standar: “di-”, “ke-”, “se-” yang dapat langsung dihilangkan dari kata.
• Kompleks: “me-”, “be-”, “pe”, “te-” adalah tipe- tipe awalan yang dapat bermorfologi sesuai kata dasar yang mengikutinya. Oleh karena itu, gunakan aturan pada Tabel 2.7 untuk mendapatkan pemenggalan yang tepat.
c. Cari kata yang telah dihilangkan awalannya ini di dalam kamus. Apabila tidak ditemukan, maka langkah 4 diulangi kembali. Apabila ditemukan, maka keseluruhan proses dihentikan.
5. Apabila setelah langkah 4 kata dasar masih belum ditemukan, maka proses recoding dilakukan dengan mengacu pada aturan pada Tabel 2.6. Recoding dilakukan dengan menambahkan karakter recoding di awal kata yang dipenggal. Pada Tabel 2.7, karakter recoding adalah huruf kecil setelah tanda hubung (‘-’) dan terkadang berada sebelum tanda kurung. Sebagai contoh, kata “menangkap”
(aturan 15), setelah dipenggal menjadi “nangkap”. Karena tidak valid, maka recoding dilakukan dan menghasilkan kata
“tangkap”
6. Jika semua langkah gagal, maka input kata yang diuji pada algoritma ini dianggap sebagai kata dasar.
Dilihat segi performa, stemmer ini mampu memberikan hasil yang lebih baik jika dibandingkan dengan algoritma stemmer untuk Bahasa Indonesia seperti yang dikembangkan oleh Arifin dan Setiono (2002) [9], Vega (2001), Ahmad (1996), dan Idris (2001). Hal ini wajar, mengingat algoritma ini merupakan algoritma yang paling kompleks. Jelita Asian kemudian mengembangkan algoritma CS stemmer, dengan menambahkan beberapa perbaikan yang bertujuan untuk meningkatkan hasil stemming yang diperoleh. Perbaikan yang ditambahkannya adalah sebagai berikut :
1. Menggunakan kamus kata dasar yang lebih lengkap.
2. Memodifikasi dan menambahkan aturan pemenggalan untuk tipe awalan yang kompleks (memodifikasi aturan pada Tabel 2.7 dan menambahkan aturan pada Tabel 2.8 ke Tabel 2.9).
3. Menambahkan aturan stemming untuk kata ulang dan bentuk jamak, semisal pada “buku-buku” yang seharusnya distemming menjadi “buku”. Caranya, adalah dengan melakukan pemisahan menjadi dua sub-kata, yang masing- masing di-stemming. Apabila stemming memberikan kata dasar yang sama, maka output kata dasarnya adalah hasil stemming tersebut. Namun apabila hasil stemming 2 sub-kata ini berbeda, maka dapat disimpulkan bahwa input adalah kata ulang semu, dan tidak memiliki bentuk kata dasar lagi.
4. Mengubah urutan stemming untuk beberapa kasus tertentu.
Algoritma stemmer Nazief dan Adriani akan menghilangkan akhiran terlebih dahulu, baru diikuti penghilangan awalan.
Menurut Jelita Asian, cara ini tidak selalu berhasil pada beberapa kata. Oleh karena itu, diberikan beberapa aturan yang akan mengubah urutan stemming, dimana penghilangan awalan dilakukan terlebih dahulu, lalu diikuti penghilangan akhiran. Aturan ini disebut rule precedence, dan berlaku jika
suatu kata memiliki pasangan awalan-akhiran “be-lah”,
“bean”, “me-i”, “di-i”, “pe-i”, atau “te-i”.
Pada Tabel 2.7, 2.8, dan 2.9, simbol C merupakan konsonan, simbol V menandakan vokal, simbol A merupakan vokal atau konsonan, dan simbol P merepresentasikan partikel atau fragmen dari suatu kata, misalnya “er”.
Tabel 2.7 Aturan pemenggalan awalan stemmer Nazief dan Adriani
Aturan Format Kata Pemenggalan 1 berV... ber-V... | be-rV...
2 berCAP... ber-CAP... dimana C!= ‘r’ & P!= ‘er’
3 berCAerV... ber-CaerV... dimana C!= ‘r’
4 belajar bel-ajar
5 beC1erC2... be-C1erC2... dimana C1!={‘r’|‘l’}
6 terV... ter-V... | te-rV...
7 terCerV... ter-CerV... dimana C!= ‘r’
8 terCP... ter-CP... dimana C!=‘r’ dan P!=‘er’
9 teC1erC2... te-C1erC2... dimana C1!=‘r’
10 me{l|r|w|y}V... me-{l|r|w|y}V...
11 mem{b|f|v}... mem-{b|f|v}...
12 mempe{r|l}... mem-pe...
13 mem{rV|V}... me-m{rV|V}... | me-p{rV|V}...
14 men{c|d|j|z}... men-{c|d|j|z}...
15 menV... me-nV... | me-tV 16 meng{g|h|q}... meng-{g|h|q}...
17 mengV... meng-V... | meng-kV...
18 menyV... meny-sV...
19 mempV... mem-pV... dimana V!=‘e’
20 pe{w|y}V... pe-{w|y}V...
21 perV... per-V... | pe-rV...
23 perCAP per-CAP... dimana C!=‘r’ dan P!=‘er’
24 perCAerV... per-CAerV... dimana C!=‘r’
25 pem{b|f|V}... pem-{b|f|V}...
26 pem{rV|V}... pe-m{rV|V}... | pe-p{rV|V}...
27 pen{c|d|j|z}... pen-{c|d|j|z}...
28 penV... pe-nV... | pe-tV...
29 peng{g|h|q}... peng-{g|h|q}...
30 pengV... peng-V... | peng-kV...
31 penyV... peny-sV...
32 pelV... pe-lV... kecuali “pelajar” yang menghasilkan
“ajar”
33 peCerV... per-erV... dimana C!={r|w|y|l|m|n}
34 peCP... pe-CP... dimana C!={r|w|y|l|m|n} dan P!=‘er’
Tabel 2.8 Modifikasi aturan pada Tabel 2.7 oleh Jelita Asian
Aturan Format Kata Pemenggalan 12 mempe... mem-pe...
16 meng{g|h|q|k}... meng-{g|h|q|k}...
Tabel 2.9 Tambahan aturan untuk Tabel 2.7 oleh Jelita Asian
Aturan Format Kata Pemenggalan
35 terC1erC2... ter-C1erC2... dimana C1!= ‘r’
36 peC1erC2... pe-C1erC2... dimana C1!={r|w|y|l|m|n}
2.5 Algoritma Naïve Bayes
Algoritma naïve bayes merupakan salah satu algoritma klasifikasi yang dapat digunakan untuk mengklasifikasikan dokumen teks. Algoritma ini memiliki bentuk yang paling sederhana diantara metode Bayesian learning lainnya namun tetap memiliki tingkat akurasi yang tinggi[10]. Model yang saling independen terhadap kelas adalah asumsi dasar naïve bayes, dimana dokumen digambarkan sebagai representasi dari himpunan kata-kata yang ada di dalamnya. Urutan kata-kata diabaikan dan jumlah kata yang terdapat pada sebuah dokumen tersebut digunakan. Setiap kata diperhitungkan sebagai event dan
dokumen adalah sekumpulan dari word event. Meskipun asumsi ini tidak ada di dunia nyata akan tetapi hasil klasifikasi yang baik dapat diperoleh dengan menggunakan algoritma ini[11].
Pada NBC setiap dokumen berita direpresentasikan dalam pasangan atribut <a1,a2…. an > di mana a1 adalah kata pertama, a2
kata kedua dan seterusnya. Sedangkan V adalah himpunan kategori berita (olahraga, ilmu teknologi dan sebagainya). Pada saat klasifikasi, pendekatan Bayes akan menghasilkan label kategori yang palingtinggi probabilitasnya (vMAP ) dengan masukan atribut <a1,a2…. an> [12].
= arg max |1, 2, 3, … )
Theorema bayes digambarkan sebagai berikut, probabilitas dokumen A untuk masuk ke dalam kelas Bi, P(Bi|A) didefinisikan dalam persamaan (2.2).
P Bi|A) =P Bi) . P A|Bi) P A)
, dimana pada persamaan (2.2) : P(A|Bi) = likelihood,
P(Bi) = prior,
P(A) = evidence, dan P(Bi|A) = posterior
Menggunakan teorema Bayes ini, persamaan (2.1) ini dapat ditulis menjadi persamaan (2.3).
= arg maxP a, a, … a |v")P v") P a, a… a )
P(, , … # | $) nilainya konstan untuk semua $ sehingga persamaan ini dapat ditulis menjadi persamaan (2.4).
= arg max P a, a … a |v") P v")
(2.2) (2.1)
(2.3)
(2.4)
Tingkat kesulitan menghitung P(, , … , # | $) menjadi tinggi karena jumlah term bisa jadi akan sangat besar. Ini disebabkan jumlah term tersebut sama dengan jumlah semua kombinasi posisi kata dikali dengan jumlah kategori.
Naïve Bayes Classifier menyederhanakan hal ini dengan mengasumsikan bahwa di dalam setiap kategori, setiap kata independen satu sama lain. Dengan kata lain :
, , … # |$) = % & | $)
&
Subtitusi persamaan (2.5) dengan persamaan (2.4) akan menghasilkan persamaan (2.6).
= arg max P'v"( % P a, v")
)
P($) dan probabilitas kata *+ untuk setiap kategori P (*+ | $) dihitung pada saat pelatihan yang ditunjukkan pada persamaan (2.7) dan (2.8).
'$( = | ,-.$ | /-0-ℎ
P (*+ | $) = #3| +456+676 |#23
, dimana | ,-.$ | adalah jumlah kata pada kategori j dan | contoh | adalah jumlah dokumen yang digunakan dalam pelatihan.
Sedangkan + adalah jumlah kemunculan kata *+ pada kategori
$, n adalah jumlah semua kata pada kategori $ dan |kosakata|
adalah jumlah kata yang unik (distinct) pada semua data latihan.
(2.5)
(2.6)
(2.7)
(2.8)
2.6 Weka
Weka adalah aplikasi penggalian data open source berbasis Java. Aplikasi ini dikembangkan pertama kali oleh Universitas Waikato di Selandia Baru sebelum menjadi bagian dari Pentaho. Weka terdiri dari koleksi algoritma machine learning yang dapat digunakan untuk melakukan generalisasi / formulasi dari sekumpulan data sampling. Weka saat ini sudah cukup banyak mendukung algoritma untuk pemodelan data atau biasa disebut classifier, diantaranya adalah J48, Linear Regression, Naïve Bayes dan lain sebagainya.[13].
Suatu perangkat lunak dapat mengimplementasikan pustaka Weka melalui Weka API (Aplication Programming Interface) dengan memberikan format-format data yang dapat dibaca atau dijadikan masukan Weka, seperti Attribute-Relation Berkas Format(ARFF) yang ditunjukkan oleh Gambar 2.2, Comma Separated Values (CSV), C4.5 dan serialisasi data biner melalui Weka sendiri.
Gambar 2.2 Contoh potongan data dengan format ARFF
2.7 Klasifikasi Dokumen
Klasifikasi dokumen adalah proses dimana sebuah dokumen teks diklasifikasikan kedalam suatu kategori yang bersesuaian dari beberapa kategori yang telah didefinisikan dengan menggunakan informasi darik dokumen-dokumen teks yang telah diberi label[15].
Manfaat dari klasifikasi dokumen adalah untuk pengorganisasian dokumen. Dengan jumlah dokumen yang sangat besar, untuk mencari sebuah dokumen akan lebih mudah apabila kumpulan dokumen yang dimiliki terorganisir dan telah dikelompokkan sesuai kategorinya masing-masing.
Sistem klasifikasi dokumen berita terdiri dari beberapa tahapan yaitu tahap praproses, tahap training, dan tahap klasifikasi.
2.7.1. Tahap Praproses
Tahap praproses adalah tahapan untuk mendapatkan dokumen dalam bentuk plain text sehingga akan didapatkan hasil yang maksimal dalam training dokumen nantinya[15]. Tahap praproses ini berupa :
1. Analisa leksikal teks, untuk menangani tanda baca, digit, dan bentuk huruf (huruf kecil atau huruf kapital) .
2. Penghapusan stopword, dengan menghapus kata-kata yang sering muncul namun tidak digunakan sebagai media index terms.
3. Penggunaan stemming, yang akan menghilangkan imbuhan- imbuhan yang melekat pada kata.
2.5.1.1 Analisa Leksikal Teks
Analisa leksikal merupakan tahap awal dari tahapan praproses, dimana langkah ini merupakan prses pengubahan dokumen teks input menjadi sekumpulan token. Hal yang dilakukan pada tahap ini antara lain adalah pengidentifikasian tanda spasi, penangan digit, nomor, tanda hubung dan tanda baca.
Tanda baca yang dihilangkan adalah sebagai berikut:
“ ”\t\n\r\f\’\”\\1234567890!@#$%^&*()_+-{}|[]:;<,>.?/`~.
Penanganan bentuk huruf (huruf kecil atau huruf kapital) juga dilakukan dalam tahap ini. Pada umumnya seluruh huruf akan dikonversi menjadi bentuk huruf kecil atau huruf capital saja.
2.5.1.2 Penghapusan Stopwords
Penghapusan stopwords merupakan proses menghilangkan kata – kata yang dianggap tidak berkontribusi banyak pada isi dokumen (Yates dan Neto, 1999). Dalam bahasa Indonesia banyak terdapat kata – kata yang sering muncul namun tidak merepresentasikan konten secara signifikan, seperti “dan”,
“dari”, “yang”, “untuk” dan sebagainya. Kata – kata tersebut disebut stopwords dan daftar yang berisi stopwords disebut stoplist. Jenis kata yang termasuk stoplist adalah:
1. Kata depan 2. Kata ganti 3. Kata hubung 4. Kata sandang
Penghilangan stopword dapat mengurangi ukuran index dan waktu pemrosesan. Selain itu, juga dapat mengurangi tingkat noise
2.5.1.3 Steemming
Stemming merupakan suatu proses yang terdapat dalam sistem information retrieval yang mentransformasi kata-kata yang terdapat dalam suatu dokumen ke kata-kata dasarnya (root word) dengan menggunakan aturan-aturan tertentu. Sebagai contoh, kata bersama, kebersamaan, menyamai, akan distem ke kata dasarnya yaitu “sama”. Proses stemming pada teks berBahasa Indonesia berbeda dengan stemming pada teks berbahasa Inggris. Pada teks berbahasa Inggris, proses yang diperlukan hanya proses menghilangkan sufiks. Sedangkan pada teks berbahasa Indonesia, selain sufiks, prefiks, dan konfiks juga dihilangkan.
Banyak algoritma untuk melakukan stemming seperti porter stemmer, confix stripping stemmer, nazief dan adriani dan sebagainya. Pada tugas akhir ini algoritma yang digunakan untuk melakukan stemming dokumen berbahasa Indonesia adalah confix stripping stemmer.
2.7.2. Tahap Training Data
Pada tahap training, model kategori untuk setiap kategori dibangun. Model ini berisi nama kategori, jumlah dokumen dan daftar keywords (kata kunci). Untuk melatih sebuah classifier untuk kategori, diperlukan sekumpulan dokumen training. Dari setiap dokumen tersebut, kata kunci diekstraksi menggunakan teknik pembobotan. Setiap dokumen training diekstraksi termsnya dan diboboti, kemudian terms tersebut ditetapkan sebagai kata kunci – kata kunci untuk setiap kategori dan disimpan beserta jumlah dokumen training tempat kata kunci tersebut muncul.
Pada
2.7.3. Tahap Klasifikasi
Pada tahap klasifikasi merupakan tahap penetapan kategori untuk dokumen uji. Proses klasifikasi meliputi empat tahap besar :
1. Ekstraksi kata kunci dokumen uji 2. Perhitungan likelihood
3. Perhitungan rata-rata dan standar deviasi 4. Seleksi kategori
Tahap klasifikasi pada tugas akhir ini menggunakan algoritma Naïve Bayes. Pada Tugas Akhir ini data akan diambil dari berita yang didapatkan melalui RSS lalu setelah terkumpul kemudian dilakukan analisis data lalu diklasifikasikan menggunakan API yang disediakan oleh pustaka perangkat lunak open source Weka .
2.8 Penelitian terkait sebelumnya
Terdapat beberapa judul Tugas Akhir yang pernah dipublikasikan di Institut Teknologi Sepuluh Nopember Surabaya yang berkenaan dengan tema klasifikasi dokumen berita berbahasa indonesia.
Salah satunya adalah "Penggunaan Algoritma Semut dan Confix Stripping Stemmer dalam Klasifikasi Dokumen Berita Berbahasa Indonesia” oleh I Putu Adhi Kerta Mahendra. Tugas akhir tersebut mengklasifikasikan dokumen berita berbahasa indonesia menggunakan metode algoritma Semut.[16]
Sedangkan pada tugas akhir ini metode yang digunakan untuk klasifikasi berita berbahasa Indonesia adalah algoritma Naïve Bayes Classifier hanya saja menggunakan metode stemming yang sama yaitu Confix Stripping Stemmer karena terbukti mampun memberikah hasil yang lebih akurat dalam proses stemming pada tugas akhir sebelumnya.
[Halaman ini sengaja dikosongkan]
29
BAB 3
ANALISIS DAN PERANCANGAN
Pada bab ini akan membahas tahap analisis dan perancangan dari perangkat lunak. Tahap analisis meliputi deskripsi umum perangkat lunak, spesifikasi kebutuhan fungsional dan non fungsional perangkat lunak, aktor dan skenario kasus penggunaan. Sedangkan pada tahap perancangan meliputi perancangan arsitektur perangkat lunak, lapisan presentasi, lapisan servis aplikasi, lapisan model data, dan lapisan akses data. Berikut penjabaran bagian-bagian tahap analisis.
3.1 Analisis
Tahap analisa merupakan proses memahami dan menspesifikasi dengan detail apa yang harus dilakukan oleh sistem atau bisa dikatakan sebagai tahapan dalam mendefinisikan masalah.
3.1.1. Deskripsi Umum Perangkat Lunak
Perangkat lunak yang akan dikembangkan pada Tugas Akhir ini adalah sebuah aplikasi berbasis web yang mampu memberikan kemudahan bagi pengguna dalam mengikuti perkembangan berita dari berbagai situs web berita yang ada.
Aplikasi web ini memanfaatkan konten berita berupa item yang didapatkan dari RSS situs web berita sebagai konten dari aplikasi.
Aplikasi web ini memanfaatkan RSS sebagai sumber kontennya karena sebagian besar situs berita yang selalu memperbarui kontennya menyediakan layanan RSS kepada para pembaca agar mereka dapat mengikuti dan mengetahui perkembangan berita terbaru yang dikeluarkan oleh situs berita tersebut. Maka dengan mengumpulkan berbagai RSS dari berbagai situs web berita yang ada berarti secara tidak langsung akan mendapatkan berbagai berita terbaru yang yang dikeluarkan oleh berbagai situs berita tersebut yang kemudian berita-berita itu akan dikelola oleh
aplikasi ini. Proses pengelolaan berita ini hanya mampu dilakukan oleh pengguna yang memiliki hak akses tertentu atau pengelola dimana nantinya pengelola mampu menentukan berita apa saja dan dari mana saja yang dapat dibaca oleh pengguna lainnya pada tampilan halaman depan dari aplikasi ini atau justru menghapus RSS yang jarang diperbarui atau berisi konten yang tidak layak, sedangkan pengguna biasa hanya mampu membaca, melihat berita serta mampu memberikan komentar pada berita tertentu sebagaimana situs web berita pada umumnya.
Berita-berita yang didapatkan dengan mengunduh RSS akan dikelompokkan berdasarkan sumber RSS-nya sehingga pengguna dapat memilah berita mana yang akan dibaca. Selain itu berita yang didapatkan melalui mengunduh RSS tadi akan diklasifikasikan berdasarkan kategori tertentu, misalnya : politik, ekonomi, sosial, kesehatan dan olahraga. Pengelola juga dapat menambahkan kategori lain yang diperlukan. Hal ini ditujukan untuk memudahkan pengguna dalam mengikuti perkembangan berita dari kategori-kategori tertentu tadi. Hal yang terpenting adalah agar aplikasi ini mampu memberikan berita yang selalu baru dan segar maka aplikasi harus berjalan secara otomatis untuk mengunduh berita melalui sekumpulan RSS yang telah didaftarkan tentunya dalam kurun waktu tertentu. Akan tetapi aplikasi web ini juga menyediakan fasilitas bagi pengembang untuk mengunduh berita sewaktu-waktu.
3.1.2. Arsitektur Perangkat Lunak
Arsitektur sistem dari aplikasi yang dibangun pada Tugas Akhir ini dapat ditunjukkan pada Gambar 3.1. Dari sisi client, terdapat dua macam klien dengan karakteristik yang berbeda yaitu pengguna dan pengelola. Pengguna yang dimaksud disini adalah pengguna umum yang hanya dapat membaca berita yang disediakan oleh aplikasi sedangkan pengelola aplikasi di sini memiliki hak akses untuk melakukan pengelolaan data pada aplikasi Tugas Akhir ini. Dari sisi server, terdapat dua buah server yaitu Application Server, tempat aplikasi ditanam, dan
Database Server, tempat penyimpanan data yang berupa dokumen XML.
Gambar 3.1 Arsitektur sistem
Arsitektur dari perangkat lunak yang dibangun dalam TA ini akan menggunakan arsitektur yang terdiri dari empat lapisan.
Pembagian lapisan tersebut ditujukan untuk mempermudah pembangunan perangkat lunak dengan memperjelas tugas masing-masing lapisan tersebut. Lapisan arsitektur pada perangkat lunak yaitu Lapisan Model Data, Lapisan Presentasi, Lapisan Servis Aplikasi, dan Lapisan Akses Data. Keempat lapisan arsitektural pada perangkat lunak ini ditunjukkan oleh Gambar 3.2.
Gambar 3.2 Arsitektur perangkat lunak
3.1.2.1 Lapisan Model Data
Model Data adalah permodelan konsep model bisnis yang diimplementasikan ke dalam kelas. Domain model berisi kelas yang mendefinisikan objek yang terdapat pada servis data yaitu berkas xml. Model data ini yang nantinya akan digunakan selama aplikasi berjalan.
3.1.2.2 Lapisan Presentasi
Lapisan ini bertanggungjawab terhadap tampilan yang yang ditampilkan ke pengguna. Lapisan Presentasi bertugas sebagai media aplikasi berinteraksi dengan pengguna. Lapisan Presentasi tidak bertanggung jawab terhadap pengolahan data.
Lapisan ini terbagi menjadi 2 komponen yaitu Antarmuka Pengguna dan Logika Presentasi. Antarmuka Pengguna berfungsi sebagai media interaksi aplikasi dengan pengguna dan Logika Presentasi adalah media interaksi anatar Antarmuka Pengguna dengan Lapisan Servis Aplikasi.
Pada Antarmuka Pengguna berisi berkas jsf berformat xhtml yang diberi tambahan komponen Primefaces. Sedangkan pada Logika Presentasi berisi kelas managed beans Java.
3.1.2.3 Lapisan Servis Aplikasi
Lapisan Servis Aplikasi adalah lapisan yang menangani permasalahan Logika Bisnis. Logika Bisnis terdiri dari sejumlah operasi yang menggunakan data. Dalam perangkat lunak ini, data dimodelkan dengan entitas bisnis.
Servis Aplikasi dapat mengakses data dari Lapisan Akses Data, dan mengolahnya agar dapat dimanfaatkan oleh perangkat lunak ini. Pada lapisan ini juga terdapat fungsi yang digunakan untuk mengunduh RSS hingga menyimpannya ke dalam penyimpanan. Proses dari fungsi ini ditunjukkan oleh Gambar3.3.
Gambar 3.3 Alur proses pengelolaan RSS
Gambar 3.3 dapat dijelaskan sebagai berikut : 1. Unduh RSS
Pada proses ini sistem mengunduh rss dari alamat url rss yang telah didaftarkan melalui jaringan internet. Oleh karena itu aplikasi ini harus selalu terhubung dengan internet.
2. Parsing RSS
Pada proses ini dilakukan penguraian atau parsing pada data RSS hasil mengunduh pada proses 1 (satu) sebelumnya. Data RSS masih berformat XML oleh karena itu agar dapat dibaca oleh sistem harus diurai menjadi objek channel dan item agar dapat langsung dibaca oleh sistem. Pseudocode dari proses penguraian RSS untuk membaca struktur RSS berdasarkan elemen- elemen RSS sebagaimana dijelaskan pada subbab 2.1 ditunjukkan pada Kode Sumber 3-1.
3. Analisis Teks
Pada proses ini, data item yang telah didapatkan dari hasil penguraian RSS dianalisis untuk didapatkan data- data penting yang digunakan dalam proses mengklasifikasikan item termasuk kategori berita politik, sosial, teknologi, olahraga atau lainnya. Data penting hasil analisis ini nanti akan disimpan dalam dokumen dengan format .arff dengan isi sebagaimana ditunjukkan pada Gambar 2.2 sebelumnya.
Kode Sumber 3-1 Pseudocode penguraian RSS
while terdapat elemen xml do
if awal elemen = TITLE simpan teks elemen title if awal elemen = LINK simpan teks elemen link if awal elemen = DESCRIPTION simpan teks elemen description if awal elemen = GUID
simpan teks elemen guid if awal elemen = PUBDATE simpan teks elemen pubdate if awal elemen = LANGUAGE simpan teks elemen language if awal elemen = COPYRIGHT simpan teks elemen copyright if awal elemen = ITEM
pembacaan data Channel berakhir simpan data Channel if akhir elemen = ITEM pembacaan data Item berkahir simpan data Item
end
4. Klasifikasi
Pada proses ini data hasil analisis item pada proses analisis diklasifikasikan ke dalam kategori tertentu menggunakan bantuan pustaka Weka. Algoritma pada pustaka Weka yang digunakan dalam klasifikasi adalah algoritma Naïve Bayes sebagaimana algoritma ini telah dijelaskan pada subbab 2.5.
5. Simpan RSS
Setelah data yang terkumpul dari rss baik channel maupun item lengkap serta telah mengalami proses klasifikasi, maka data rss ini disimpan ke dalam penyimpanan yang berupa file xml.
3.1.2.4 Lapisan Akses Data
Lapisan Akses Data adalah lapisan di dalam aplikasi sistem yang menangani mekanisme yang berhubungan dengan data dalam hal ini adalah berkas xml.
3.1.3. Spesifikasi Kebutuhan Fungsional dan Non Fungsional
Dari uraian deksripsi umum perangkat lunak maka dapat dianalisis kebutuhan fungsional dan non fungsional sistem aplikasi pada Tugas Akhir ini adalah sebagai berikut.
3.1.3.1. Kebutuhan Fungsional
Kebutuhan fungsional berisi proses-proses atau fungsi- fungsi utama yang nantinya akan dilakukan oleh sistem pada perangkat lunak. Dari deskripsi umum perangkat lunak maka kebutuhan fungsional sistem perangkat lunak ditunjukkan pada Tabel 3.1.
Tabel 3.1 Daftar kebutuhan fungsional sistem
Kebutuhan Deskripsi
Menambahkan channel
Pengelola dapat menambahkan channel baru ke dalam aplikasi
Melihat daftar channel
Pengelola/Pengguna dapat melihat daftar channel keseluruhan
Melihat berita channel
Pengelola/Pengguna dapat melihat berita berdasarkan channel tertentu
Melihat berita kategori
Pengelola/Pengguna dapat melihat berita bersarkan kategori tertentu
Menghapus channel
Pengelola dapat menghapus channel tertentu
Mengunduh berita
Pengelola dapat mengunduh berita terbaru Melakukan Pengelola dapat melakukan klasifikasi
klasifikasi berita Melakukan
pengaturan konten
Pengelola dapat mengatur channel atau kategori apa saja yang ditampilkan
Menambah kategori
Pengelola dapat menambah kategori berita baru
Menambah data latih
Pengelola dapat menambah data latih untuk keperluan klasifikasi
Melakukan pencarian
Pengelola/Pengguna dapat melakukan pencarian berita
Memberikan komentar
Pengelola/Pengguna dapat memberikan komentar
Melihat detail berita
Pengelola/Pengguna dapat melihat detail berita tertentu
Melihat histori pembaruan berita
Pengelola dapat melihat kapan saja waktu pembaruan berita dan berita apa saja yang berhasil diunduh
3.1.3.2. Kebutuhan Non-Fungsional
Kebutuhan non-fungsional menjelaskan fungsi-fungsi pendukung perangkat lunak ditunjukkan pada Tabel 3.2.
Tabel 3.2 Daftar kebutuhan non-fungsional sistem
Kebutuhan Deskripsi
Apache Tomcat Web Server
Aplikasi Newsmaker ini hanya dapat berjalan pada server Apache Tomcat Web Server.
Jaringan Internet Aplikasi Newsmakaer ini dapat berjalan jika terhubung dengan jaringan internet
3.1.4. Aktor
Pada perangkat lunak ini terdapat dua tipe aktor yaitu pengelola dan pengguna. Pengelola memiliki ruang kerja yang lebih luas disbanding pengguna. Pengelola memiliki hak akses penuh dalam melakukan manajemen konten sedangkan pengguna
hanya dapat melihat, membaca, melakukan dan memberikan komentar pada konten berita tertentu.
3.1.5. Skenario Kasus Penggunaan
Berdasarkan analisis pada tahap 3.1.2 maka fungsionalitas sistem dapat digambarkan dalam sebuah diagram kasus penggunaan yang ditunjukkan pada Gambar 3.4.
3.1.5.1. Kasus Penggunaan Melihat Daftar Channel
Adapun spesifikasi kasus penggunaan Melihat Daftar Channel dijelaskan pada Tabel 3.3.
Tabel 3.3 Spesifikasi kasus penggunaan Melihat Daftar Channel
Nama Kasus Penggunaan
Melihat Daftar Channel
Nomor KP-001
Aktor Pengelola
Deskripsi Proses ini digunakan untuk melihat daftar channel apa saja yang telah tersedia atau terdaftar dalam aplikasi
Alur Normal 1. Aktor masuk pada halaman daftar channel
2. Sistem membaca data channel
3. Sistem mengambil seluruh data channel 4. Sistem menampilkan daftar channel yang
tersedia Alur Alternatif -
Kondisi Awal - Kondisi Akhir -
Diagram aktivitas yang menggambarkan aliran fungsionalitas sistem pada kasus penggunaan Melihat Daftar Channel ditunjukkan pada Gambar 3.5.
Gambar 3.4 Diagram kasus penggunaan aplikasi
Sementara itu bentuk interaksi objek-objek yang terlibat dalam kasus penggunaan ini ditunjukkan diagram sekuensial pada Gambar 3.6.
uc Use Case Model
Sistem Newsmaker
Pengelola
Pengguna menambah channel
memperbarui channel
melihat daftar channel
menghapus channel mengatur konten
mencari item
memberi komentar
melihat daftar berita channel
melihat daftar berita kategori
melakukan klasifikasi
melihat detail berita
menambah kategori menambah data latih
kategori melihat histori
pembaruan berita
«extend»
«include»
«include»
«extend»
«include»
«include»