Penerapan Web Content Mining Menggunakan Partitional Clustering K-Means Pada News Aggregator
1
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Web Content Mining (WCM) merupakan salah satu bagian dari Web Mining yang digunakan untuk menemukan informasi yang berguna dari sekian banyak data yang terdapat di internet seperti gambar, suara, video, dan teks. WCM sendiri memiliki beberapa teknik atau metode yang bisa digunakan dalam memperoleh informasi-informasi tersebut. WCM biasanya menggunakan teknik
text mining karena sebagian besar data yang berada di World Wide Web (WWW) berupa teks. Berdasarkan hasil penelitian dari Insyafie Yuliansyah [1], menyebutkan bahwa WCM dapat diterapkan dalam menemukan pola kecendrungan berita dengan tingkat akurasi sebesar 90% yang dihasilkan pada uji coba ke-5 dalam 10 kali percobaan yang diuji secara fungsional keseluruhan. Penelitian tersebut menggunakan metode text preprocessing dengan regex untuk pengolahan datanya. Maka dari penelitian tersebut, metode WCM ini akan digunakan kembali ke sebuah sistem untuk mengumpulkan dan mencari informasi berita berdasarkan inputan kata kunci dari pengguna atau Information Retrieval
(IR).
Agregator berita (news aggregator) merupakan salah satu jenis sistem agregator (pengumpul) yang mengumpulkan berita dari berbagai sumber, kemudian menyajikannya kembali kepada pengguna dalam satu kesatuan. Sehingga, pengguna tidak perlu lagi menjelajah ke berbagai situs berita untuk sekedar mencari informasi. Sistem news aggregator ini dapat mengurangi waktu dan upaya yang dibutuhkan untuk mengecek situs berita dalam mencari sebuah informasi. Menurut penelitian dari Rubi Henjaya [2] dan Arie Karhendana [3] bahwa sistem news aggregator “polos” atau yang hanya mengumpulkan berita
saja memiliki kelemahan, yaitu saat menggabungkan semua berita hasil perolehannya dalam satu kumpulan besar dapat mengakibatkan efek information
(2)
overload bagi pengguna karena belum tentu pengguna tertarik dengan semua berita yang terdapat pada news aggregator.
Berdasarkan masalah tersebut, dapat disimpulkan bahwa pengguna hanya mencari berita tertentu dari beberapa situs berita yang ada. Maka dari itu, diperlukannya metode WCM dalam pengolahan sistem news aggregator ini agar dapat menampilkan informasi berita sesuai dengan yang pengguna cari dari beberapa situs berita yang ada. Pada tugas akhir ini akan memilih pendekatan
partitional clustering untuk pengelompokkan berita-berita dengan topik yang sama, yaitu dengan algoritma K-Means karena berdasarkan penelitian dari Deddy W. Suliantoro, Irya Wisnubhadra dan Ernawati [4] algoritma ini cocok digunakan untuk clustering dokumen teks dengan tingkat precision dan recall yang tinggi serta waktu kerja yang relatif singkat oleh sistem.
Berdasarkan penjelasan diatas, diharapkan dapat selesainya tugas akhir ini yang akan dikembangkan ke dalam bentuk skripsi berjudul “Penerapan Web Content Mining Menggunakan Partitional Clustering K-Means Pada News Aggregator”.
I.2 Perumusan Masalah
Berdasarkan latar belakang yang telah dijelaskan, maka dapat dirumuskan sebuah masalah yaitu bagaimana menerapkan Web Content Mining dengan menggunakan Partitional Clustering K-Means pada News Aggregator.
I.3 Maksud dan Tujuan
Maksud dari tugas akhir ini adalah untuk menerapkan Web Content Mining
dengan menggunakan Partitional Clustering K-Means pada sistem News Aggregator.
Sedangkan tujuannya untuk mengetahui apakah sistem news aggregator
akan bekerja dengan baik dalam menampilkan informasi berita yang telah dikelompokkan dari beberapa situs berita berdasarkan inputan kata kunci dari pengguna.
(3)
3
I.4 Batasan Masalah
Batasan Masalah dimaksudkan untuk membatasi ruang lingkup pekerjaan yang dilaksanakan dengan tujuan untuk memperkecil masalah yang ada. Adapun batasan masalah dalam penelitian tugas akhir ini adalah sebagai berikut:
1. Jenis data berupa teks.
2. Topik berita yang digunakan dalam penelitian ini adalah berita seputar pendidikan.
3. Berita yang digunakan adalah berita online bahasa indonesia yang diambil dari 3 situs berita, yaitu Tribun, Republika, dan Kompas. 4. Fungsional pada sistem News Aggregator ini menggunakan
pendekatan agen atau Information Retrieval dimana pengguna akan memasukkan query atau kata kunci berita yang akan dicari dari kumpulan berita.
5. Teknik yang digunakan adalah Text Mining karena sumber data yang digunakan adalah teks.
6. Algoritma untuk stemming adalah algoritma Nazief dan Andriani. 7. Informasi berita yang diambil berupa deskripsi berita atau headlines. 8. Untuk pengambilan informasi berita dari beberapa situs media online
menggunakan teknik Web Crawler dengan max depth sampai level 1.
I.5 Metodologi Penelitian
Dalam tugas akhir ini digunakan metode penelitian deskriptif yang menggambarkan fakta-fakta dan informasi secara sistematis, faktual, dan akurat. Penelitian ini memiliki dua metode penelitian, yaitu metode pengumpulan data dan metode pembangunan perangkat lunak.
I.5.1 Metode Pengumpulan Data
Metode pengumpulan data pada penelitian ini adalah dengan melakukan studi literatur yang di mana melakukan pengumpulan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.
(4)
I.5.2 Metode Pembangunan Perangkat Lunak
Untuk membangun sistem news aggregator yang akan dikembangkan ini menggunakan pendekatan prototype, yang meliputi beberapa proses didalamnya :
1. Pengumpulan Kebutuhan
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan bacaan-bacaan yang ada kaitannya dengan judul penelitian.
2. Perancangan
Perancangan dilakukan cepat dan rancangan mewakili semua aspek
software yang diketahui. Rancangan ini akan menjadi dasar pembuatan
protoype.
3. Evaluasi Prototype
Pengujian terhadap software yang dibuat dan digunakan untuk memperjelas kebutuhan software.
Gambar I.1 Model Protoype [5] I.6 Sistematika Penulisan
Sistematika penulisan penelitian tugas akhir ini disusun untuk memberikan gambaran umum tentang penelitian yang dilakukan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN Pengumpulan
Kebutuhan
Perancangan
Evaluasi
(5)
5
Bab ini menguraikan secara umum latar belakang masalah, rumusan masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas landasan teori yang digunakan dalam pembuatan tugas akhir ini, yaitu teori mengenai Web Mining, Text Mining, Clustering, K-Means,
Web Crawler, PHP, Unified Modelling Language (UML), serta teori-teori pengujian yang akan dilakukan terhadap sistem yang dibangun.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Bab ini menjelaskan analisis terhadap seluruh spesifikasi sistem yang mencakup analisis masalah, analisis data, analisis metode, analisis kebutuhan non fungsional dan fungsional, serta analisis basis data. Selain analisis sistem, bab ini terdapat juga perancangan antarmuka untuk sistem yang akan dibangun sesuai dengan hasil analisis yang telah dibuat.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini menjelaskan tentang implementasi dan pengujian dari sistem yang dibangun berdasarkan analisis dan perancangan sistem yang telah dilakukan. Hasil dari implementasi kemudian dilakukan pengujian fungsional dari sistem tersebut menggunakan metode blackbox yang terdiri dari pengujian alpha dan beta sehingga sistem yang dibangun sesuai dengan analisis dan perancangan yang telah dilakukan.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran yang sudah diperoleh dari hasil penulisan tugas akhir yang perlu diperhatikan bagi pengembangan perangkat lunak di masa yang akan datang.
(6)
(7)
7
BAB II
LANDASAN TEORI
II.1 Web Mining
Menurut B. Liu [6], Web mining adalah suatu teknik yang digunakan untuk menemukan informasi yang berguna atau pengetahuan dari web hyperlink structure, page content, dan usage data. Sedangkan menurut O. Maimon dan L. Rokach [7] web mining adalah teknik yang bertujuan menemukan dan mengekstrak informasi relavan yang tersembunyi di web yang berhubungan dengan data, khususnya pada data dokumen hypertext yang dipublikasikan ke
web.
Berdasarkan penjelasan di atas, dapat disimpulkan bahwa web mining
adalah sebuah cara atau metode yang digunakan untuk menemukan atau menggali informasi yang bermanfaat pada web. Di dalam web terdapat tiga tipe data, yaitu
data on the web (content), web log data (usage) dan web structure data. Dari tiga tipe data tersebut maka web mining dapat dikelompokkan menjadi tiga jenis yaitu
Web Content Mining, Web Structure Mining, dan Web Usage Mining. II.1.1 Web Content Mining (WCM)
Metode Web content mining (WCM) yang akan digunakan dalam tugas akhir ini merupakan metode yang berguna untuk mencari informasi yang berguna yang bersumber dari halaman web. Informasi tersebut bisa berupa teks, gambar, suara, video, metadata dan hyperlinks. Beberapa informasi tersebut didapatkan dari sumber data yang bersifat semi-terstruktur seperti dokumen HTML, atau yang lebih terstruktur seperti data pada tabel atau database yang diambil dari halaman HTML. Tetapi kebanyakan dari data tersebut berbentuk data teks yang tidak terstruktur. Ada dua strategi yang umum digunakan pada WCM, pertama langsung melakukan mining terhadap data dan kedua melakukan pencarian serta mengimprove pencarian seperti search engine atau information retrieval.
WCM dapat dibedakan menjadi dua sudut pandang, yaitu pendekatan berbasis agen dan pendekatan dengan database. Pendekatan pertama bertujuan
(8)
untuk meningkatkan pencarian dan penyaringan informasi dan bisa ditempatkan ke dalam tiga kategori:
1. Intelligent Search Agents
Search agent atau agen pencari ini untuk mencari informasi yang relavan menggunakan karakteristik domain dan profil pengguna untuk mengatur dan manafsirkan informasi yang ditemukannya.
2. Information Filtering / Categorization Agent
Agen ini menggunakan metode Information Retrieval (IR) dan karakteristik hypertext dokumen web untuk memperoleh, menyaring, dan mengelompokkannya secara otomatis.
3. Personalized Web Agents
Agen ini digunakan untuk menemukan informasi berdasarkan ketertarikan dari pengguna.
Pendekatan kedua bertujuan untuk memodelkan data pada web ke dalam bentuk terstuktur dengan menerapkan mekanisme query database dan aplikasi data mining untuk analisisnya.
Gambar II.1 Arsitektur WCM II.1.1.1 Teknik Web Content Mining
Fokus utama dari skripsi ini adalah menerapkan metode WCM. Konsep WCM melibatkan beberapa teknik untuk summarizing (meringkas), classification
(9)
9
(klasifikasi) dan clustering (mengelompokkan) dalam konten web. Berikut adalah penjelasan teknik-teknik WCM untuk tipe data teks [8]:
1. Unstructured Text Data Mining Techniques
Data web content sebagian besar merupakan data teks yang tidak terstruktur. Teknik-teknik yang digunakan untuk data teks yang tidak terstruktur yang digunakan dalam WCM dapat dilihat pada tabel berikut :
Tabel II.1 Teknik Unstructured Text Data
Teknik Input Metode Output
Topic Tracking
Database Topik filtering
dari database, Topik
re-ranking Topik-topik yang berhubungan Summariza-tion
Dokumen Metode
Extractive dan
Abstractive
Ringkasan yang
menyampaikan isi sebuah dokumen
Categoriza-tion
Dokumen Menghitung jumlah kata dari tema atau topik dokumen dan dilakukan
ranking Dokumen yang berhubungan berdasarkan ranking
Clustering Koleksi Dokumen
Mengelompok-kan dokumen ke kelompok/ klaster yang terbaik
Kelompok/ klaster yang relavan terbaik yang berisi dokumen yang diinginkan
2. Structured Text Data Mining Techniques
Data teks tersruktur biasanya merupakan data record yang diperoleh dari
database dan ditampilkan di web pages. Data record tersebut dapat ditampilkan ke dalam bentuk tabel atau form. Teknik-teknik yang digunakan untuk data teks terstruktur yang digunakan dalam WCM dapat dilihat pada tabel berikut :
(10)
Tabel II.2 Teknik Structured Text Data
Teknik Metode Digunakan Contoh
Web Crawler
Crawling atau menelusuri
hyperlink, Membuat indeks
ke database
Search Engine,
Textual Analysis,
Access Market,
Trend topik
Google, Yahoo
Wrapper
Menghubungkan ke bermacam
search engine
Meta Search Engine
Visual Web Ripper, iMacros, Screen Scrapper
II.1.2 Web Structure Mining (WSM)
WSM adalah metode yang digunakan untuk menemukan pengetahuan yang berguna dari hyperlinks yang memperlihatkan struktur dari suatu web. Kebanyakan dari tools yang digunakan untuk mencari informasi di web hanya menggunakan informasi yang berbentuk teks dan mengabaikan link dari informasi yang bisa menjadi sangat bernilai. Tujuan dari WSM adalah menghasilkan ringkasan yang terstruktur tentang website dan webpage. Secara teknik, WCM hanya menfokuskan pada struktur dari dokumen, sedangkan WSM mencoba untuk menemukan struktur link dari hyperlinks yang terdapat pada dokumen. Berdasarkan pada topologi dari hyperlinks, WSM akan mengklasifikasikan
webpages dan mengambil informasi, seperti persamaan dan hubungan antara
website yang berlainan.
II.1.3 Web Usage Mining (WUM)
Web usage mining (WUM) merupakan metode untuk menemukan informasi yang bermanfaat dari data sekunder yang di dapat dari interaksi pengguna yang melakukan browsing di web. Metode ini menfokuskan pada bagaimana mengetahui perilaku dari pengguna internet saat mereka berinteraksi dengan web. Tujuan dari metode ini antara lain untuk mengetahui perilaku pengguna terhadap suatu website, membandingkan antara harapan dan kenyataan dari pengguna suatu website dan menyesuaikan isi website berdasarkan keinginan dari pengguna.
(11)
11
II.2 Text Mining
Menurut R. Feldman dan J. Sanger [9], Text mining adalah sebagai suatu proses menggali informasi dimana seorang pengguna berinteraksi dengan sekumpulan dokumen menggunakan tools analisis. Sedangkan menurut O. Maimon dan L. Rokach [7], Text mining adalah suatu proses ekstraksi pola tertentu dari database dokumen teks yang besar yang bertujuan untuk menemukan pengetahuan.
Berdasarkan penjelasan di atas, dapat disimpulkan bahwa Text mining
adalah sebuah cara atau metode untuk menemukan atau menggali informasi dari kumpulan dokumen teks yang besar. Text mining memberikan solusi dari permasalahan seperti pemrosesan, pengorganisasian atau pengelompokkan dan menganalisa unstructured text dalam jumlah besar.
Tujuan utama dari text mining adalah untuk mendukung proses knowledge discovery pada koleksi dokumen yang besar. Sumber data yang digunakan pada
text mining adalah sekumpulan teks yang memiliki format yang tidak terstruktur atau minimal semi-terstruktur. Adapun kegiatan yang dilakukan dari text mining
antara lain pengkategorisasian teks (text categorization) dan pengelompokkan teks (text clustering). Text mining mengembangkan banyak teknik untuk beberapa bidang lain, seperti Data Mining, Information Retrieval, Statistik dan Matematika,
Machine Learning, Linguistic, Natural Languange Processing (NLP), dan
Visualization.
II.2.1 Tahap Text Mining
Dalam text mining memiliki lima tahapan dalam pemrosesan data teks tetapi pada tugas akhir ini akan hanya menggunakan 4 tahap yang antara lain :
1. Tahap Tokenizing
Merupakan tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Contoh dari tahap ini adalah sebagai berikut
(12)
Gambar II.2 Contoh Tahap Tokenizing
2. Tahap Filtering
Filtering adalah tahap mengambil kata-kata penting dari hasil token. Tahap ini biasanya juga disebut tahap stopword removal. Contoh dari tahap ini adalah sebagai berikut :
Gambar II.3 Contoh Tahap Filtering
3. Tahap Stemming
Stemming adalah tahap mentransformasi kata-kata hasil filtering ke kata-kata akarnya (root word) atau kata dasar dengan menggunakan aturan-aturan tertentu. 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.
(13)
13
Contoh penggunaan stemming pada teks berbahasa Indonesia, kata bersama, kebersamaan, menyamai, jika dkenakan proses stemming ke bentuk kata dasarnya yaitu “sama”.
4. Tahap Analyzing
Tahap ini merupakan tahap penentuan seberapa jauh keterkaitan antar kata-kata pada dokumen/inputan yang ada. Pada tahap anlyzing akan digunakan rumus TF-IDF untuk mengambil sebuah informasi dari sebuah dokumen. Kata-kata yang umum dalam sebuah dokumen cenderung memiliki nilai tinggi dalam perhitungan TF-IDF.
Sebelum melakukan tahap text mining ini¸ ada tahap parser atau tahap pemisahan tag script dari webpage berhubung datanya diambil langsung dari website.
II.3 Clustering Dokumen
Penelitian tentang clustering document telah banyak dilakukan. Tujuan
clustering dokumen adalah untuk memisahkan dokumen-dokumen yang berelavan dengan yang memiliki kemiripan satu sama lain dari pada dokumen yang tidak berelavan, sehingga dapat dikelompokkan ke dalam suatu klaster atau kelompok. Pada algoritma clustering, dokumen akan dikelompokkan menjadi klaster-klaster berdasarkan kemiripan satu data dengan yang lain. Prinsip dari clustering adalah memaksimalkan kesamaan antar anggota satu klaster dan meminimumkan kesamaan antar anggota klaster yang berbeda.
Ada banyak jenis teknik-teknik untuk clustering yang bisa digunakan untuk dokumen yang berasal dari web :
1. Text Based Clustering. 2. Partitional Clustering. 3. Hierarchical Clustering. 4. Graph Based Clustering.
5. Neural Network Base Clustering. 6. Fuzzy Clustering.
(14)
II.4 K-Means
K-Means merupakan salah satu teknik atau metode partitional clustering
yang melakukan partisi data yang ada ke dalam bentuk satu atau lebih klaster atau kelompok. Teknik ini mempartisi data ke dalam klaster sehingga data yang memiliki karakteristik yang sama akan dikelompokkan ke dalam satu klaster dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke dalam kelompok yang lain.
Dari beberapa teknik clustering yang paling sederhana dan umum dikenal adalah clustering k-means. Dalam teknik ini, akan dikelompokkan obyek ke dalam k kelompok atau klaster. Untuk melakukan clustering ini nilai k harus ditentukan dahulu. Biasanya pengguna telah mempunyai informasi awal mengenai obyek yang dipelajarinya, termasuk berapa jumlah klaster yang paling tepat. Adapun algoritma dari k-means yang dengan sebagai berikut :
1. Tentukan k sebagai jumlah cluster yang ingin dibentuk.
2. Pilih secara acak vektor dokumen yang akan dijadikan k centroid. 3. Cari centroid yang paling dekat dari setiap dokumen.
4. Hitung ulang untuk menentukan centroid baru dari dokumen-dokumen yang terletak pada centroid yang sama.
5. Lakukan langkah 3 hingga tidak ada lagi tempat yang akan ditandai sebagai cluster baru.
Berikut ini merupakan contoh implementasi dari algoritma K-Means ke dalam bentuk pseudocode [10].
(15)
15
II.5 Web Crawler
Web crawler adalah sebuah sistem yang menjelajahi struktur hyperlink
dari web, dari sebuah alamat awal atau seed dan mengunjungi alamat web di dalam webpage secara berkala. Web crawler juga dikenal dengan web robot atau
spider. Search engine yang merupakan salah satu contoh sistem besar yang menggunakan crawler untuk melintasi internet secara terus-menerus dengan tujuan menemukan dan mengambil webpage sebanyak mungkin. Selain digunakan untuk search engine, web crawler juga digunakan untuk penelusuran khusus atau tertentu, seperti penelusuran alamat email.
Banyaknya sistem untuk web crawler, pada prinsipnya secara fungsional semuanya sama. Berikut ini proses yang dilakukan web crawler [11] :
1. Mengunduh webpage.
2. Mem-parsing webpage yang diunduh dan mengambil semua link. 3. Untuk setiap link yang diambil, ulangi proses.
Input: E = {e1,e2,...,en} (set entitas menjadi cluster) k (jumlah cluster)
MaxIters (batas iterasi)
Output: C = {c1,c2,...,ck} (set centroid cluster}
L = {l(e)|e = 1,2,...,n} (set label cluster untuk setiap E)
foreach ci ϵ C do
ci ← ej ϵ E ; (random data) end
foreach ei ϵ E do
l(ei) ← argminDistance(ei,cj)j ϵ {1...k}; end
changed ← false; iter ← 0;
repeat
foreach ci ϵ C do
UpdateCluster(ci); end
foreach ei ϵ E do
minDist ← argminDistance(ei,cj)j ϵ {1...k}; if minDist ≠ l(ei) then
l(ei) ← minDist; changed ← true; end
end
iter++;
(16)
Dalam langkah pertama, sebuah web crawler mengambil URL dan mengunduh halaman dari internet berdasarkan URL yang diberikan. Biasanya halaman yang diunduh disimpan ke sebuah file atau ditempatkan di database. Dengan menyimpan webpage, maka crawler atau sistem yang lain dapat memanipulasi webpage tersebut untuk diindeks (dalam kasus search engine) atau untuk pengarsipan yang digunakan oleh pengarsip otomatis.
Pada langkah kedua, web crawler mem-parsing keseluruhan webpage
yang diunduh dan mengambil link-link ke halaman lain. Pada penelitian ini, web crawler selain mengambil link-link juga akan mengambil konten informasi pada
webpage. Tiap link dalam halaman didefinisikan dengan sebuah penanda HTML yang dapat dilihat seperti berikut :
<A HREF=http://www.detik.com/directory/file.html>Link</A>
Setelah crawler mengambil link dari webpage, tiap link ditambahkan ke sebuah daftar untuk di-crawl.
Pada langkah ketiga, web crawler akan mengulangi proses. Semua crawler
bekerja dengan rekursif atau bentuk perulangan yang dilakukan dengan menerapkan algoritma webcrawler.
II.5.1 Algoritma Web Crawler
Algoritma web crawler memiliki dua jenis yang umum digunakan, yaitu
Breadth-First dan Depth-First. Prinsip dari dua jenis algoritma web crawler
tersebut sama dengan algoritma pencarian, yaitu Breadth-First Search (BFS) dan
Depth-First Search (DFS). Konsep dari algoritma Breadth-First [11] adalah dengan mengecek setiap link dalam suatu webpage sebelum berpindah ke
webpage yang lain. Breadth-First akan menelusuri setiap link pada webpage
pertama, lalu menelusuri setiap link pada webpage dari link pertama di webpage
pertama, dan seterusnya. Penelusuran ini dilakukan sampai tidak ada lagi link baru yang dapat ditelusuri atau jika jumlah webpage yang ditelusuri sudah mencapai batas maksimal yang ditentukan. Sedangkan algoritma Depth-First kebalikan dari
(17)
17
Breadth-First, dimana Depth-First akan menelusuri semua kemungkinan jalur dari suatu link sampai mencapai suatu dasar sebelum melanjutkan ke link
berikutnya.
Berdasarkan penjelasan di atas, dapat diketahui bahwa Depth First akan bekerja dengan cara mengunjungi dari satu cabang sampai mencapai dasar dari cabang tersebut. Cara ini tidak bagus jika tujuan akhirnya berada pada cabang yang lain karena tidak ada jaminan dasar dari satu cabang tersebut yang memiliki level dasar tidak terhingga. Selain itu juga, algoritma ini menggunakan prinsip LIFO (Last In First Out) di mana dia akan mengunjungi level yang paling terakhir terlebih dulu. Sedangkan Breadth First yang menerapkan prinsip FIFO (First In First Out) akan lebih berhati-hati dengan memeriksa semua link di setiap cabang, meski membutuhkan waktu yang lama. Berdasarkan perbandingan tersebut, maka pada tugas akhir ini akan menggunakan algoritma Breadth First karena web crawler ini hanya digunakan sebagai pengambilan link dari situs berita yang bisa ditentukan berdasarkan kedalaman levelnya.
II.5.1.1 Breadth First Crawler
Seperti yang dijelaskan pada sub bab II.5.1 tentang algoritma web crawler bahwa algoritma Breadth First Crawler sama dengan Breadth First Search. Adapun langkah-langkah dari Breadth First dengan sebagai berikut:
1. Memasukkan URL yang akan dijadikan seed atau akar.
2. Untuk setiap link yang diambil dari URL seed dimasukkan ke dalam antrian atau queue.
3. Selama queue tidak kosong, hapus link pertama dari queue lalu melakukan
parsing dari link pertama yang dihapus, dan masukkan ke dalam antrian. Berikut ini merupakan prosedur dari algoritma Breadth First ke dalam bentuk pseudocode [12].
(18)
II.5.2 Robot Protocol [13]
Proses crawling secara terus-menerus dapat menyebabkan beban berlebih pada server suatu web. Beberapa halaman yang diunduh pada suatu waktu dari
webpage tidak beratus-ratus atau ribuan secara berurutan. Selain itu juga, beberapa website terdapat bagian web yang diharap tidak dimasuki ke dalam proses crawling. Untuk mengatasi masalah ini, maka dibuatlah sebuah protokol yang disebut Robot Protocol. Robot protocol ini menspesifikasikan bahwa website
membatasi area tertentu atau halaman dari crawling yang disimpan dalam sebuah
file berformat teks yang diberi nama robots.txt. Dalam file itu juga dapat dispesifikasikan web crawler apa saja yang dapat menelusuri web server tersebut.
II.6 Tools
Pada sub bab ini akan menjelaskan tools yang dibutuhkan untuk memodelkan, membangun perangkat lunak, dan pengujian perangkat lunaknya dalam penelitian ini.
II.6.1 PHP [14]
PHP atau PHP Hypertext Preprocessor merupakan suatu bahasa pemrograman yang digunakan untuk membangun suatu website yang dinamis. PHP menyatu dengan kode HTML. HTML digunakan sebagai pembangun atau pondasi dari kerangka layout web, sedangkan PHP digunakan sebagai prosesnya. PHP berjalan pada sisi server sehingga PHP disebut sebagai bahasa Server Side Scripting, yang berarti bahwa dalam setiap / untuk menjalankan PHP wajib
Breadth-First (starting_urls) { foreach link (starting_urls) {
enqueue(frontier, link); }
while (visited < MAX_PAGES) {
link := dequeue_link(frontier); page := fetch(link);
enqueue(frontier, extract_links(page)); if (frontier > MAX_BUFFER) {
dequeue_last_links(frontier); }
} }
(19)
19
adanya web server. PHP ini bersifat open source sehingga dapat digunakan oleh semua programmer dan mampu digunakan di semua platform atau sistem operasi, seperti Windows dan Linux. PHP juga dibangun sebagai modul pada web server
Apache dan sebagai binary yang dapa berjalan sebagai CGI.
II.6.1.1 Berbagai Macam Versi PHP
Saat ini PHP telah mencapai versi 6. Pada sub bab ini akan diuraikan versi PHP pertama hingga saat ini.
1. PHP/FI
PHP pertama kali diciptakan oleh Rasmus Lerdof yang sebelumnya bernama FI. PHP atau FI ini sudah digunakan untuk mengolah form web
yang kemudian versi pertama ini mulai banyak dikembangkan sejak dirilis kepada secara umum.
2. PHP Versi 2.0
Pada versi ini, PHP sudah diintegrasi dengan bahasa pemrograman lain seperti C dan dilengkapi dengan modul sehingga kualitas PHP juga sudah meningkat.
3. PHP Versi 3.0
Pada versi ini, dilakukan perubahan dengan nama PHP (PHP : Hypertext Preprocessor).
4. PHP Versi 4.0
Versi ini paling banyak digunakan pada awal abad 21 karena sudah mampu membangun web secara kompleks juga disertai dengan stabilitas kecepatan yang tinggi.
5. PHP Versi 5.0
Pada versi ini telah terjadi perubahan yang sangat besar, di mana PHP kini telah berubah menjadi sesuatu dengan pendekatan objek. Versi ini dikembangkan oleh perusahaan bernama Zend. Selain dengan perubahan tersebut, perusahaan tersebut melahirkan framework-framework PHPyang ada sekarang.
(20)
Versi ini PHP sudah mendukung Unicode, perbaikan keamanan, memiliki fitur dan konstruksi yang lebih baru.
II.6.2 Unified Modelling Language (UML) [15]
Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML juga sebagai dasar bagi perangkat desain berorientasi objek dari IBM.
UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
II.6.2.1 Diagram UML
Berikut akan dijelaskan empat macam diagram yang akan digunakan dalam penelitian skripsi ini, yaitu use case diagram, activity diagram, class
diagram dan sequence diagram. 1. Use Case Diagram
Use Case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use Case diagram terdiri atas diagram untuk use case dan actor. Actor mempresentasikan orang yang akan mengoperasikan atau orang yang berinterkasi dengan sistem aplikasi. Use Case
mempresentasikan operasi-operasi yang dilakukan oleh aktor. Use Case
digambarkan berbentuk elips dengan nama operasi dituliskan di dalamnya. Actor
yang melakukan operasi dihubungkan dengan garis lurus ke use case. 2. Activity Diagram
Activity diagram merupakan diagram yang menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses. Diagram ini memiliki struktur diagram yang mirip dengan flowchart atau data flow diagram pada perancangan
(21)
21
terstruktur. Manfaat dari diagram ini yaitu dapat membantu dalam memahami proses secara keseluruhan. Activity diagram dibuat berdasarkan sebuah atau beberapa use case pada use case diagram.
3. Class Diagram
Class diagram merupakan diagram yang selalu ada di permodelan sistem berorientasi objek. Class diagram menunjukkan hubungan antar class dalam sistem yang sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan.
4. Sequence Diagram
Sequence diagram menjelaskan secara detil urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar
class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.
II.6.3 Pengujian Validasi
Pengujian validasi digunakan untuk mengetahui apakah sistem yang dibangun sudah benar dan sesuai dengan yang dibutuhkan. Bagian-bagian yang telah dirumuskan dalam daftar kebutuhan fungsional dan hasil analisis kebutuhan akan menjadi acuan untuk melakukan pengujian validasi. Pengujian validasi menggunakan metode pengujian Black Box.
Black Box Testing atau pengujian black box [16] merupakan pendekatan pengujian dimana program sebagai suatu ‘black-box’ atau kotak hitam. Pengujian black box berfokus pada persyaratan fungsional perangkat lunak. Metode ini memungkinkan software developer untuk mendapatkan serangkaian kondisi input yang mempergunakan semua persyaratan fungsional program.
Pengujian black box berusaha menemukan kesalahan dalam beberapa kategori, diantaranya :
a. Fungsi-fungsi yang tidak benar atau hilang. b. Kesalahan interface.
c. Kesalahan dalam struktur data atau akses database eksternal. d. Kesalahan dan kinerja.
(22)
Salah satu jenis pengujian black box yang akan digunakan pada tugas akhir ini adalah Equivalence Partitioning. Equivalence Partitioning merupakan metode pengujian black box yang membagi domain input dari suatu program ke dalam kelas data dari mana test case dapat dilaksanakan. Input dan output data terdapat di class yang berbeda yang sesuai dengan class inputnya. Masing-masing class
pada equivalence partition diproses dimana program akan memproses anggota
class-class tersebut secara ekuivalen.
II.6.4 Pengujian Akurasi
Pada tugas akhir ini, untuk pengujian akurasi dari hasil pengelompokkan yang diambil dari tiga situs berita digunakan suatu standar yang disebut Confusion Matrix. Confusion matrix merupakan sebuah matrik yang memberikan gambaran mengenai tingkat kesalahan atau error rate dan kualitas prediksi sebuah model. Ukuran dimensi confusion matrix adalah L x L di mana L adalah jumlah nilai yang ingin dibandingkan [17]. Confusion matrix ini akan digunakan untuk mengetahui apakah topik informasi berita yang ditentukan sudah dalam satu
cluster atau sebaliknya yang dilakukan secara manual dan oleh sistem. Tabel II.3 pada di bawah ini merupakan contoh sebuah matriks yang menggunakan dua kelas, yaitu “cluster” dan “bukan cluster”.
Tabel II.3 Confusion Matrix
Actual Class / Predicted Class
Sistem
Cluster Bukan Cluster
Manual
Cluster a b Bukan Cluster c d
Setiap kolom dari confusion matrix mewakili contoh di kelas yang dilakukan oleh sistem, sedangkan setiap baris mewakili contoh di kelas yang dilakukan secara manual. Setelah diketahui nilai a, b, c, dan d maka selanjutnya melakukan perhitungan nilai precision dan akurasinya. Precision merupakan jumlah nilai suatu kelas yang bernilai “benar” yang berhasil diprediksi secara tepat, sedangkan akurasi merupakan jumlah nilai yang diprediksi secara tepat
(23)
23
terhadap jumlah seluruh nilai/sampel. Berikut persamaan dari precision dan akurasi.
Persamaan II-1
II.6.5 Pengujian Beta
Pengujian Beta merupakan pengujian yang dilakukan secara objektif dimana pengujian dilakukan secara langsung terhadap pengguna. Pengujian beta
ini menggunakan wawancara atau interview yang dilakukan secara langsung terhadap responden yang akan diwawancara. Wawancara merupakan teknik pengumpulan data dimana pewawancara atau peneliti mengumpulkan data dengan mengajukan pertanyaan kepada yang diwawancara atau responden [18].
(24)
(25)
25
BAB III
ANALISIS DAN PERANCANGAN SISTEM
III.1 Analisis Sistem
Analisis dilakukan dengan tujuan untuk mengetahui dan mengevaluasi seluruh komponen yang berhubungan dengan sistem yang akan dibangun. Tahap analisis merupakan tahap sangat penting karena kesalahan pada tahap ini akan menyebabkan kesalahan pada tahap selanjutnya. Tahap analisis sistem dilakukan dengan cara menguraikan suatu sistem yang utuh kedalam bagian-bagian komponennya dengan tujuan untuk mengetahui dan mengevaluasi permasalahan-permasalahan yang ada sehingga ditemukan kelemahan dan keuntungan pada sistem tersebut.
III.1.1Analisis Masalah
Metode Web Content Mining (WCM) merupakan salah satu metode yang diimplementasikan untuk menemukan informasi dari konten webpage suatu situs. Sistem news aggregator membutuhkan sebuah pengolahan data informasi dalam menampilkan informasi berita yang berelavan dari situs-situs layanan berita karena sistem news aggregator “polos” atau yang hanya mengumpulkan berita
saja memiliki kelemahan, yaitu saat menggabungkan semua berita hasil perolehannya dalam satu kumpulan besar dapat mengakibatkan efek information overload bagi pengguna karena belum tentu pengguna tertarik dengan semua berita yang terdapat pada news aggregator.
Berdasarkan masalah tersebut, diperlukannya metode WCM dengan menggunakan partitional clustering K-Means dalam pengolahan sistem news aggregator ini agar sistem dapat menampilkan kumpulan informasi berdasarkan inputan kata kunci dari pengguna.
III.1.2Analisis Data
Dalam sistem ini dibutuhkannya masukan data sebagai bahan untuk proses dalam menjalankan sistem news aggregator. Data tersebut adalah data masukkan
(26)
situs-situs berita, dan data-data tersebut berupa data teks. Data-data tersebut akan ke dalam database
Tujuan adanya data query dengan data dokumen berita dalam sistem ini adalah untuk mengetahui kemiripan atau kesesuaian antara query yang dimasukkan oleh pengguna dengan informasi berita yang diambil dari tiga situs berita online. Dari kemiripan itu, data dokumen berita dapat dipisahkan ke dalam beberapa kelompok, yaitu kelompok yang paling sesuai atau mirip dengan data
query dan kelompok yang tidak memiliki kesamaan dengan query. Data dokumen berita yang berada di kelompok yang paling sesuai, akan ditampilkan sebagai hasil pencarian ke pengguna. Topik untuk data berita dalam penelitian skripsi ini berupa seputar pendidikan.
III.1.3Analisis Metode Web Content Mining
Metode WCM merupakan sebuah metode untuk mendapatkan infomarsi yang berada di World Wide Web. Pada penelitian skripsi ini seperti yang dijelaskan pada sub bab sebelumnya bahwa data yang difokuskan adalah berupa data teks, sehingga metode WCM ini akan digunakan untuk memperoleh informasi berita dari situs-situs berita online dan disatukan ke dalam sistem news aggregator. Metode WCM sering disebut juga metode text mining karena data yang berada di World Wide Web sebagian besar berupa teks. Strategi yang digunakan dalam metode WCM ini yang akan diterapkan ke dalam sistem news aggregator adalah dengan melakukan pencarian atau dalam penerapan sistemnya berupa search engine. Oleh karena itu, di penelitian ini WCM akan menerapkan metode text mining dengan teknik web crawler untuk mendapatkan informasi beritanya.
Dalam metode ini memiliki beberapa tahap yang akan dilakukan, mulai dari penelusuran ke situs-situs, tahap preprocessing (penghapusan tag HTML,
tokenizing, filtering, stemming, analyzing) untuk data dokumen berita, dan tahap
clustering untuk mengelompokkan data berita yang sesuai dengan masukkan
(27)
27
Gambar III.1 Arsitektur Sistem dengan Metode WCM III.1.3.1Tahap Crawling
Secara umum¸ web crawler akan diberi URL awal untuk melakukan penelusuran dengan menggunakan metode Breadth-First Crawler dan akan melakukan tahap parsing. Tahap parsing digunakan untuk mengambil link yang dari link tersebut akan dilakukan proses crawling lagi, serta untuk mengambil isi berita yang dari link berisi berita tersebut yang selanjutnya dilakukan tahap
preprocessing.
Gambar III.2 Arsitektur Sistem Web Crawler
Contoh kasus :
Pada Gambar III.3 merupakan alur dari proses crawling yang dimana link
www.kompas.com sebagai seed atau akar. Sebelum melakukan crawling, akan ditentukan terlebih dahulu jumlah depth atau max level yang berguna untuk
(28)
membatasi sampai mana proses crawling akan terjadi. Berdasarkan Gambar III.3, maka jumlah depth yang ditentukan adalah 2 (level 0 sampai level 2). Level 0 (Top Level) dimulai dari seed atau akar yang telah ditentukan sebelumnya.
Crawler akan akan melakukan crawling link yang ada di level 0 dan link yang ditemukan ada 4 link. Bila pada level 0 tidak ada link yang ditelusuri lagi, maka proses crawling selanjutnya dilakukan pada level 1 atau link – link yang ditemukan dari level 0.
Saat proses crawling pada link www.kompas.com/1 ditemukan 2 link. Selanjutnya dilakukan lagi proses crawling yang masih di level 1 pada link
www.kompas.com/2 dan pada link tersebut ditemukan 1 link. Proses crawling
dilanjutkan terus hingga ke link www.kompas.com/4 atau link terakhir pada level 1, sehingga proses crawling selanjutnya dilakukan di level 2. Proses crawling
sama seperti yang di level 0 dan 1 di mana akan menelusuri link – link yang didapat dari level 1. Saat menelusuri link dari www.kompas.com/5 sampai www.kompas.com/7 dan ditemukan link baru dari link – link tersebut, proses
crawling akan berhenti pada link terakhir karena sesuai jumlah depth yang ditentukan sebelumnya.
Gambar III.3 Alur Breadth-First Crawler
Hasil crawling berupa link – link tersebut akan di parsing terlebih dahulu untuk memisahkan link yang berguna untuk proses crawling selanjutnya atau
(29)
29
melakukan crawling ulang dan untuk mengambil isi berita. Hasil parsing tersebut disimpan ke dalam database.
Gambar III.4 Hasil Proses Crawling
III.1.3.2Tahap Penghapusan tag HTML
Tahap ini menghapus semua tag markup dan format khusus dari dokumen, terutama pada dokumen yang mempunyai banyak tag dan format seperti dokumen XHTML. Untuk penghapusan tag HTML menggunakan fungsi PHP strip_tags(). Pseudocode : strip_tags(“<b>buku</b>”);. Penghapusan
tag HTML ini sebenarnya dilakukan pada saat tahap parsing. Berikut contoh penghapusan HTML yang diasumsikan bahwa konten berita telah melalui tahap
crawling dan parsing. Dokumen berita :
Setelah melakukan penghapusan tag HTML :
III.1.3.3Tahap Tokenizing
Tujuan dari tahap ini adalah memisahkan atau memecahkan deretan kata dari suatu kalimat, paragraf atau halaman data berita menjadi token atau potongan kata tunggal. Tahap ini juga menghilangkan karakter-karakter tertentu seperti
Prinsipnya, kami siap melaksanakannya penarikan <b>buku</b>. Namun,
sampai hari ini, tindak lanjut penarikan buku ini belum ada sehingga buku-buku ini masih ada di tangan siswa,'' kata Leni, Selasa (31/3/2015) siang.
Prinsipnya, kami siap melaksanakannya penarikan buku. Namun, sampai hari ini, tindak lanjut penarikan buku ini belum ada sehingga buku-buku ini masih ada di tangan siswa,'' kata Leni, Selasa (31/3/2015) siang.
(30)
tanda baca dan angka dan mengubah semua token ke bentuk huruf kecil (lowercase). Karakter tersebut didefinisikan pada tabel berikut :
Tabel III.1 Karakter - karakter yang dihilangkan No Karakter
1 %
2 $
3 ^
4 &
5 ‘
6 “
7 )
8 (
9 \
10 /
11 =
12 .
13 ,
14 :
15 -
16 *
17 ;
18 !
19 ?
20 0
21 1
22 2
23 3
24 4
25 5
26 6
(31)
31
No Karakter
28 8
29 9
Contoh kasus :
Diasumsikan ada enam berita atau dokumen dengan sebuah query yang sudah melalui tahap penghapusan tag HTML:
D1 = Ungkap Kebocoran Soal UN, Polri Kerja Sama dengan Google Untuk Menghindari Kebocoran Tersebut.
D2 = Surati UGM Karena Soal UN Bocor, Tsaqif Sempat Terima Ancaman. D3 = Tolak Bocoran Soal UN, Tiga Siswa SMAN 3 Yogyakarta Diberi Penghargaan oleh KPK.
D4 = Buku Berisi Ajaran Garis Keras Masih Dipegang Para Siswa SMA. D5 = Menteri Anies Kaget Ada Buku Agama Bermuatan Ajaran ISIS. Maka hasil tokenizing dari lima dokumen tersebut :
Tabel III.2 Hasil Tokenizing
Dokumen Tokenizing
D1 ungkap – kebocoran – soal – un – polri – kerja – sama – dengan – google – untuk – menghindari – kebocoran - tersebut D2 surati – ugm – karena – soal – un – bocor – tsaqif – sempat –
terima - ancaman
D3 tolak – bocoran - soal – un – tiga – siswa – sman – yogyakarta – diberi – penghargaan – oleh - kpk
D4 buku – berisi – ajaran – garis – keras – masih – dipegang – para – siswa – sma
D5 menteri – anies – kaget – ada – buku – agama – bermuatan – ajaran - isis
Berdasarkan output dari proses tokenizing, bisa dilihat bahwa ada karakter-karakter yang dihilangkan selama proses tokenizing.
III.1.3.4Tahap Filtering
Tahap ini untuk mengambil kata-kata penting atau yang berhubungan dengan kasus masalah dari hasil tokenizing. Tahap ini bisa disebut tahap stopword
(32)
removal karena menghilangkan kata tidak penting pada suatu teks. Jika kata dari proses tokenizing ada yang ditemukan di daftar stopwords, maka kata tersebut akan dihilangkan atau dianggap sebagai kata tidak penting. Berikut contoh sebagian daftar kata stopword :
Tabel III.3 Daftar Kata Stopword No Kata Stopword
1 ada
2 ungkap
3 antara
4 bagi
5 baik
6 sama
7 demikian 8 kembali 9 tersebut 10 secara
11 cukup
12 masih
13 sempat 14 dengan
15 para
16 yaitu
17 hanya
18 harus
19 untuk
20 diberi
21 itu
22 juga
23 tahu
24 karena
(33)
33
No Kata Stopword
26 lagi
27 mengerti 28 pilih
29 oleh
30 yang
Contoh proses filtering :
Tabel III.4 Proses Filtering / Stopword Removal
Dokumen Tokenizing Filtering / Stopword removal D1 ungkap – kebocoran – soal – un –
polri – kerja – sama – dengan – google – untuk – menghindari – kebocoran - tersebut
kebocoran – soal – un – polri – kerja – google – menghindari – kebocoran
D2 surati – ugm – karena – soal – un – bocor – tsaqif – sempat – terima - ancaman
surati – ugm – soal – un – bocor – tsaqif – terima - ancaman
D3 tolak – bocoran - soal – un – tiga – siswa – sman – yogyakarta – diberi – penghargaan – oleh - kpk
tolak – bocoran - soal – un – tiga – siswa – sman – yogyakarta – penghargaan - kpk
D4 buku – berisi – ajaran – garis – keras – masih – dipegang – para – siswa – sma
buku – berisi – ajaran – garis – keras – dipegang – siswa – sma
D5 menteri – anies – kaget – ada – buku – agama – bermuatan – ajaran - isis
menteri – anies – kaget – buku – agama – bermuatan – ajaran - isis
III.1.3.5Tahap Stemming
Tahap stemming merupakan proses pengubahan kata ke bentuk kata dasar atau penghapusan imbuhan. Stemming disini menggunakan kamus daftar kata berimbuhan yang mempunyai kata dasarnya dengan cara membandingkan kata-kata yang telah melalui tahap tokenizing dengan daftar kamus stem.
Contoh stemming yang telah melalui tahap filtering : Tabel III.5 Proses Stemming
(34)
Dokumen Filtering / Stopword removal Stemming D1 kebocoran – soal – un – polri –
kerja – google – menghindari – kebocoran
bocor – soal – un – polri – kerja – google – hindar – bocor
D2 surati – ugm – soal – un – bocor – tsaqif – terima - ancaman
surati – ugm – soal – un – bocor – tsaqif – terima - ancam
D3 tolak – bocoran - soal – un – tiga – siswa – sman – yogyakarta – penghargaan - kpk
tolak – bocor - soal – un – tiga – siswa – sman – yogyakarta – harga - kpk
D4 buku – berisi – ajaran – garis – keras – dipegang – siswa – sma
buku – isi – ajar – garis – keras – pegang – siswa – sma
D5 menteri – anies – kaget – buku – agama – bermuatan – ajaran - isis
menteri – anies – kaget – buku – agama – muat – ajar - isis
III.1.3.6Tahap Analyzing
Tahap analyzing atau weighting (pembobotan) merupakan tahap untuk menentukan tingkat similaritas antar kalimat. Tahap ini menggunakan rumus TF-IDF. Dari hasil perhitungan TF-IDF ini akan dibentuk suatu vektor antara dokumen dengan kata yang kemudian untuk kesamaan antar dokumen dengan klaster akan ditentukan oleh sebuah klaster centroid. Berikut rumus TF-IDF yang dinormalisasikan sebagai berikut [4] :
Persamaan III-1
Keterangan :
Wtd : Bobot kata/token terhadap dokumen tftd : Jumlah kemunculan term di dokumen
N : Jumlah dokumen yang ada di database
dft : Jumlah dokumen yang mengandung kata/token
Tabel III.6 Data TF dan DF
Kata/ Token
TF
DF D1 D2 D3 D4 D5
(35)
35
Kata/ Token
TF
DF D1 D2 D3 D4 D5
ajar 0.00 0.00 0.00 1.00 1.00 2 ancam 0.00 1.00 0.00 0.00 0.00 1 anies 0.00 0.00 0.00 0.00 1.00 1 bocor 2.00 1.00 1.00 0.00 0.00 3 buku 0.00 0.00 0.00 1.00 1.00 2 garis 0.00 0.00 0.00 1.00 0.00 1 google 1.00 0.00 0.00 0.00 0.00 1 harga 0.00 0.00 1.00 0.00 0.00 1 hindar 1.00 0.00 0.00 0.00 0.00 1 isi 0.00 0.00 0.00 1.00 0.00 1 isis 0.00 0.00 0.00 0.00 1.00 1 kaget 0.00 0.00 0.00 0.00 1.00 1 keras 0.00 0.00 0.00 1.00 0.00 1 kerja 1.00 0.00 0.00 0.00 0.00 1 kpk 0.00 0.00 1.00 0.00 0.00 1 menteri 0.00 0.00 0.00 0.00 1.00 1 muat 0.00 0.00 0.00 0.00 1.00 1 pegang 0.00 0.00 0.00 1.00 0.00 1 polri 1.00 0.00 0.00 0.00 0.00 1 siswa 0.00 0.00 1.00 1.00 0.00 2 sma 0.00 0.00 0.00 1.00 0.00 1 sman 0.00 0.00 1.00 0.00 0.00 1 soal 1.00 1.00 1.00 0.00 0.00 3 surati 0.00 1.00 0.00 0.00 0.00 1 terima 0.00 1.00 0.00 0.00 0.00 1 tiga 0.00 0.00 1.00 0.00 0.00 1 tolak 0.00 0.00 1.00 0.00 0.00 1 tsaqif 0.00 1.00 0.00 0.00 0.00 1 ugm 0.00 1.00 0.00 0.00 0.00 1
(36)
Kata/ Token
TF
DF D1 D2 D3 D4 D5
un 1.00 1.00 1.00 0.00 0.00 3 yogyakarta 0.00 0.00 1.00 0.00 0.00 1
Contoh menghitung TF-IDF token “bocor” pada D1 dengan rumus TF-IDF : N (jumlah dokumen) = 5, tf1 = 2, dan df1 = 4, sehingga dapat dihitung :
1.0969
Sehingga pembobotan untuk semua kata di setiap dokumennya : Tabel III.7 Hasil TF-IDF
Kata/ Token
TF
DF
TF-IDF
D1 D2 D3 D4 D5 WD1 WD2 WD3 WD4 WD5
agama 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 ajar 0.00 0.00 0.00 1.00 1.00 2 0.00 0.00 0.00 0.3536 0.3536 ancam 0.00 1.00 0.00 0.00 0.00 1 0.00 0.3536 0.00 0.00 0.00 anies 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 bocor 2.00 1.00 1.00 0.00 0.00 3 0.6325 0.3536 0.3162 0.00 0.00 buku 0.00 0.00 0.00 1.00 1.00 2 0.00 0.00 0.00 0.3536 0.3536 garis 0.00 0.00 0.00 1.00 0.00 1 0.00 0.00 0.00 0.3536 0.00 google 1.00 0.00 0.00 0.00 0.00 1 0.3162 0.00 0.00 0.00 0.00 harga 0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00 hindar 1.00 0.00 0.00 0.00 0.00 1 0.3162 0.00 0.00 0.00 0.00 isi 0.00 0.00 0.00 1.00 0.00 1 0.00 0.00 0.00 0.3536 0.00
(37)
37
Kata/ Token
TF
DF
TF-IDF
D1 D2 D3 D4 D5 WD1 WD2 WD3 WD4 WD5
isis 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 kaget 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 keras 0.00 0.00 0.00 1.00 0.00 1 0.00 0.00 0.00 0.3536 0.00 kerja 1.00 0.00 0.00 0.00 0.00 1 0.3162 0.00 0.00 0.00 0.00 kpk 0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00 menteri 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 muat 0.00 0.00 0.00 0.00 1.00 1 0.00 0.00 0.00 0.00 0.3536 pegang 0.00 0.00 0.00 1.00 0.00 1 0.00 0.00 0.00 0.3536 0.00 polri 1.00 0.00 0.00 0.00 0.00 1 0.3162 0.00 0.00 0.00 0.00 siswa 0.00 0.00 1.00 1.00 0.00 2 0.00 0.00 0.3162 0.3536 0.00 sma 0.00 0.00 0.00 1.00 0.00 1 0.00 0.00 0.00 0.3536 0.00 sman 0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00 soal 1.00 1.00 1.00 0.00 0.00 3 0.3162 0.3536 0.3162 0.00 0.00 surati 0.00 1.00 0.00 0.00 0.00 1 0.00 0.3536 0.00 0.00 0.00 terima 0.00 1.00 0.00 0.00 0.00 1 0.00 0.3536 0.00 0.00 0.00 tiga 0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00 tolak 0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00 tsaqif 0.00 1.00 0.00 0.00 0.00 1 0.00 0.3536 0.00 0.00 0.00 ugm 0.00 1.00 0.00 0.00 0.00 1 0.00 0.3536 0.00 0.00 0.00 un 1.00 1.00 1.00 0.00 0.00 3 0.3162 0.3536 0.3162 0.00 0.00 yogyakar
ta
0.00 0.00 1.00 0.00 0.00 1 0.00 0.00 0.3162 0.00 0.00
III.1.3.7Tahap Clustering
Tahap clustering ini menggunakan Algoritma K-Means. Pada tahap ini akan dicari centroid yang terdekat berdasarkan nilai euclidean distance yang dicari dari setiap dokumen. Adapun contoh beserta langkah-langkah tahap
clustering dengan menerapkan algoritma K-Means dengan sebagai berikut : 1. Menentukan jumlah cluster dan centroid awal. Banyaknya cluster harus
(38)
sebelumnya nilai k yang digunakan adalah 3 dan centroid awal yang terpilih secara random (D1, D4 dan D5). Maka centroid pertama pada
cluster C1 diinisialisasikan pada D1, centroid kedua pada cluster C2 berada pada D4 dan centroid pada cluster C3 berada pada D5.
2. Langkah selanjutnya adalah mencari centroid terdekat dari setiap dokumen. Pada penelitian ini akan menerapkan pendekatan berdasarkan
euclidean distance yang digunakan untuk mencari jarak antara masing-masing dokumen dengan centroid. Adapun rumus pengukuran euclidean distance yang didefinisikan sebagai berikut :
Persamaan III-2
Keterangan :
: jarak dokumen ke i ke dokumen ke j
: kata ke n di dokumen ke-i
: kata ke n di dokumen ke-j
Contoh perhitungan mencari nilai euclidean distance antara centroid C1 dengan dokumen D2 berdasarkan pada Tabel III.7 :
Maka dapat ditentukan euclidean distance dari masing-masing dokumen dengan centroid yang telah ditentukan dengan hasilnya diperlihatkan pada Tabel III.8 berikut.
Tabel III.8 Hasil Euclidean Distance Dokumen Centroid Jarak (d)
D2 C1 1.0515
D2 C2 1.4142
(39)
39
Dokumen Centroid Jarak (d)
D3 C1 1.0954
D3 C2 1.3328
D3 C3 1.4142
Pada tabel di atas, dapat diketahui bahwa dokumen D2 dan D3 masuk sebagai cluster C1 karena memiliki jarak paling kecil daripada jarak pada
centroid lain.
3. Langkah selanjutnya menghitung ulang untuk menentukan centroid baru dari setiap cluster. Adapun rumus untuk menentukan centroid baru :
Persamaan III-3
Keterangan :
: Nilai centroid dari suatu cluster
: Jumlah dokumen yang berada dalam satu
cluster
: Nilai vektor dari sampel dokumen ke-i
yang termasuk ke dalam cluster Ck
Dari langkah sebelumnya, telah diketahui bahwa dokumen D2 dan D3 termasuk ke dalam cluster C1 sehingga dalam cluster C1 sekarang memiliki tiga dokumen, yaitu D1, D2 dan D3, sedangkan dalam cluster C2 terdapat dokumen D4 dan di cluster C3 terdapat dokumen D5. Berdasarkan pada cluster C1 dapat ditentukan centroid baru dengan menggunakan rumus di atas.
Tabel III.9 Hasil perhitungan centroid baru pada C1
Kata/ Token
D1 D2 D3
agama 0.00 0.00 0.00 0.0000
(40)
Kata/ Token
D1 D2 D3
ancam 0.00 0.3536 0.00 0.1179
anies 0.00 0.00 0.00 0.0000
bocor 0.6325 0.3536 0.3162 0.4341
buku 0.00 0.00 0.00 0.0000
garis 0.00 0.00 0.00 0.0000
google 0.3162 0.00 0.00 0.1054
harga 0.00 0.00 0.3162 0.1054
hindar 0.3162 0.00 0.00 0.1054
isi 0.00 0.00 0.00 0.0000
isis 0.00 0.00 0.00 0.0000
kaget 0.00 0.00 0.00 0.0000
keras 0.00 0.00 0.00 0.0000
kerja 0.3162 0.00 0.00 0.1054
kpk 0.00 0.00 0.3162 0.1054
menteri 0.00 0.00 0.00 0.0000
muat 0.00 0.00 0.00 0.0000
pegang 0.00 0.00 0.00 0.0000
polri 0.3162 0.00 0.00 0.1054
siswa 0.00 0.00 0.3162 0.1054
sma 0.00 0.00 0.00 0.0000
sman 0.00 0.00 0.3162 0.1054
soal 0.3162 0.3536 0.3162 0.3287
(41)
41
Kata/ Token
D1 D2 D3
terima 0.00 0.3536 0.00 0.1179
tiga 0.00 0.00 0.3162 0.1054
tolak 0.00 0.00 0.3162 0.1054
tsaqif 0.00 0.3536 0.00 0.1179
ugm 0.00 0.3536 0.00 0.1179
un 0.3162 0.3536 0.3162 0.3287
yogyakar ta
0.00 0.00 0.3162 0.1054
4. Langkah terakhir adalah menghitung apakah centroid lama sama dengan
centroid baru. Untuk itu akan digunakan kembali rumus euclidean distance antara centroid baru dengan centroid lama. Dengan melakukan perhitungan euclidean maka dihasilkan :
Tabel III.10 Hasil Perhitungan centroid lama dengan centroid baru
Centroid
C1lama C1Baru 0.00 0.0000 0.00 0.0000 0.00 0.1179 0.00 0.0000 0.6325 0.4341 0.00 0.0000 0.00 0.0000 0.3162 0.1054 0.00 0.1054
(42)
Centroid
0.3162 0.1054 0.00 0.0000 0.00 0.0000 0.00 0.0000 0.00 0.0000 0.3162 0.1054 0.00 0.1054 0.00 0.0000 0.00 0.0000 0.00 0.0000 0.3162 0.1054 0.00 0.1054 0.00 0.0000 0.00 0.1054 0.3162 0.3287 0.00 0.1179 0.00 0.1179 0.00 0.1054 0.00 0.1054 0.00 0.1179 0.00 0.1179 0.3162 0.3287 0.00 0.1054 Jarak 0.6039
(43)
43
Dari hasil tersebut maka akan dilakukan iterasi lagi (kembali ke langkah 2) hingga semua dokumen masuk ke cluster yang ditentukan. Dari contoh kasus sebelumnya, maka didapatkan hasil cluster terhadap lima dokumen :
Tabel III.11 Cluster dokumen
Cluster C1 Cluster C2 Cluster C3
D1 D4 D5
D2 D3
III.1.3.8KeluaranSistem News Aggregator
Keluaran yang diharapkan dari sistem news aggregator dengan menerapkan metode WCM ini adalah berupa hasil pencarian berita yang telah dikelompokkan berdasarkan topik yang sama dari inputan kata kuncipengguna.
III.2 Spesifikasi Perangkat Lunak
Spesifikasi perangkat lunak yang dibangun dibagi menjadi dua kebutuhan, yaitu kebutuhan nonfungsional dan fungsional. Spesifikasi kebutuhan peraangkat lunak dapat dilihat pada Tabel III.12 untuk SKPL fungsional dan Tabel III.13 untuk SKPL nonfungsional.
Tabel III.12 Spesifikasi Kebutuhan Fungsional
Nomor Spesifikasi Kebutuhan Fungsional
SKPL-F-001 Sistem dapat menambah situs berita SKPL-F-002 Sistem dapat mengedit situs berita SKPL-F-003 Sistem dapat mengahapus situs berita SKPL-F-004 Sistem dapat crawling situs berita SKPL-F-005 Sistem dapat crawling semua situs berita SKPL-F-006 Sistem dapat menampilkan hasil proses crawling
SKPL-F-007 Sistem dapat menambah kategori SKPL-F-008 Sistem dapat mengedit kategori SKPL-F-009 Sistem dapat menghapus kategori
SKPL-F-010 Sistem dapat menampilkan semua informasi berita dari hasil crawling situs berita
SKPL-F-011 Sistem dapat menampilkan informasi berita dari hasil crawling situs berita berdasarkan kategori situs berita
SKPL-F-012 Sistem dapat mencari dan menampilkan informasi judul berita dari dari hasil crawling situs berita berdasarkan kata kunci/query
(44)
Tabel III.13 Spesifikasi Kebutuhan NonFungsional
Nomor Spesifikasi Kebutuhan NonFungsional
SKPL-NF-001 Sistem yang dibangun menggunakan database MySQL versi 5.6. SKPL-NF-002 Sistem dapat berjalan dengan baik jika ada koneksi internet. SKPL-NF-003 Tidak ada pengguna khusus untuk menggunakan sistem ini.
SKPL-NF-004 Sistem ini membutuhkan Microsoft Windows sebagai sistem operasi dan XAMPP untuk web server.
III.3 Analisis Kebutuhan Non Fungsional
Analisis kebutuhan non fungsional menggambarkan kebutuhan luar sistem yang diperlukan untuk menjalakan prototype yang dibangun. Adapun analisis kebutuhan non fungsional untuk menjalankan prototype news aggregator ini meliputi, analisis kebutuhan perangkat lunak, analisis kebutuhan perangkat keras, dan analisis kebutuhan pengguna yang untuk menjalankan sistem prototype ini. Analisis kebutuhan non fungsional bertujuan agar prototype yang dibangun dapat digunakan sesuai dengan kebutuhan.
III.3.1.1Analisis Kebutuhan Perangkat Lunak
Perangkat lunak yang dibutuhkan dalam membangun dan menjalankan sistem prototype ini antara lain :
Tabel III.14 Spesfikasi Perangkat Lunak No Perangkat Lunak Spesifikasi
1 Sistem Operasi Microsoft Windows
2 Database & Web Server
MySQL 5.6 & Xamp Server
3 Editor PHP Adobe Dreamweaver
4 Web Browser Opera III.3.1.2Analisis Kebutuhan Perangkat Keras
Untuk menjalankan sistem news aggregator ini maka dibutuhkan perangkat keras yang dapat mendukung proses kerja dari sistem news aggregator. Adapun spesifikasi agar sistem ini dapat berjalan dengan semestinya bisa dilihat pada Tabel III.15 :
(45)
45
Tabel III.15 Spesfikasi Perangkat Keras No Perangkat Keras Spesifikasi
1 Prosesor Kecepatan 1.50 GHz
2 Monitor Monitor 14”, resolusi 1366x768
3 VGA On-Board 792 MB
4 Keyboard Standard
5 Mouse Standard
6 Memori 2 GB
III.3.1.3Analisis Kebutuhan Pengguna
Pada sistem news aggregator ini tidak ada pengguna khusus untuk menjalankan sistem tersebut. Pengguna di sini hanya mengatur sistem news aggregator untuk crawling dan memanfaatkan fungsional pencarian untuk mencari berita.
III.4 Analisis Basis Data
Pemodelan analisis basis data dalam membangun sistem ini menggunakan
Entity Relationship Diagram (ERD). Berikut adalah ERD dan kardinalitasnya yang ditunjukkan pada Gambar III.5.
(46)
(47)
47
III.5 Analisis Kebutuhan Fungsional
Analisis kebutuhan fungsional ini merupakan analisis tentang hal – hal yang dilakukan sistem ketika diimplemntasikan. Analisis kebutuhan ini untuk menentukan masukan yang dibutuhkan sistem, proses yang digunakan untuk mengolah masukan menjadi keluaran, dan keluaran yang akan dihasilkan oleh sistem. Analisis sistem yang dilakukan menggunakan tools UML yang memiliki tahapan analisis sistem yang terdiri dari use case diagram, use case scenario,
activity diagram, class diagram, dan sequence diagram.
III.5.1.1Use Case Diagram
Sasaran pemodelan use case diantaranya adalah mendefinisikan gambaran umum dari sebuah sistem sehingga pengguna mengetahu mengenai sistem yang akan dibangun. Use case diagram untuk proses keseluruhan sistem news aggregator ini dapat dilihat pada Gambar III.6.
(48)
Gambar III.6 Use Case Diagram News Aggregator
Definisi use case dari pembangunan prototype ini dapat dilihat pada Tabel III.16. Tabel III.16 Definisi Use Case
No Use Case Deskripsi 1 Penyajian Tambah Situs
Berita
Proses untuk menambah situs berita. 2 Penyajian Edit Situs Berita Proses untuk mengedit situs berita. 3 Penyajian Hapus Situs
Berita
Proses untuk menghapus situs berita. 4 Penyajian Crawling Situs
Berita
Proses untuk crawling situs berita. 5 Penyajian Crawling Semua
Situs Berita
Proses untuk crawling semua situs berita. 6 Penyajian Hasil Proses
Crawling
(49)
49
No Use Case Deskripsi 7 Penyajian Tambah Kategori Proses untuk menambah kategori. 8 Penyajian Hapus Kategori Proses untuk menghapus kategori. 9 Penyajian Edit Kategori Proses untuk mengedit kategori. 10 Penyajian Informasi Semua
Berita
Proses untuk menampilkan informasi semua berita dari hasil crawling.
11 Penyajian Pencarian Informasi Berita
Proses untuk mencari dan melihat hasil pencarian informasi berita.berdasarkan kata kunci/query
12 Penyajian Informasi Berita Berdasarkan Kategori
Proses untuk menampilkan informasi berita dari hasil
crawling berdasarkan kategori.
III.5.1.2Use Case Scenario
Use case scenario mendeskripsikan urutan langkah – langkah dalam proses bisnis bisnis baik yang dilakukan aktor terhadap sistem maupun yang dilakukan oleh sistem terhadap aktor. Berdasarkan use case diagram pada Gambar III.6 maka use case scenario untuk sistem yang dibangun akan dijelaskan sebagai berikut :
Tabel III.17 Use Case Scenario Penyajian Tambah Situs Berita Use Case Name Penyajian Tambah Situs Berita
Goal In Context Pengguna dapat menambah situs berita ke sistem
Precondition -
Description Proses ini digunakan untuk menambah situs berita Related Use Case Penyajian Tambah Kategori
Successful End
Condition Sistem berhasil menambah situs berita Failed End Condition Sistem tidak berhasil menambah situs berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses tambah situs berita
Main Flow Step Action
1. Pilih Tambah Situs
2. Memasukkan URL dan judul 3. Pilih jenis kategori (optional) 4. Klik tombol Tambah
5. Sistem menyimpan data tambah situs ke database
Extension 3.1 Jika kategori belum ada, maka pilihan jenis kategori tidak muncul
Tabel III.18 Use Case Scenario Penyajian Edit Situs Berita Use Case Name Penyajian Edit Situs Berita
Goal In Context Pengguna dapat mengedit situs berita Precondition Situs berita telah ditambah
(50)
Related Use Case Penyajian Tambah Situs Berita
Successful End
Condition Sistem berhasil mengedit situs berita Failed End Condition Sistem tidak berhasil mengedit situs berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses edit situs berita
Main Flow Step Action
1. Pilih Menu Pilihan 2. Pilih Edit
3. Pengguna memasukkan data yang diedit 4. Klik tombol Update
5. Sistem meng-update data situs ke database
Tabel III.19 Use Case Scenario Penyajian Hapus Situs Berita Use Case Name Penyajian Hapus Situs Berita
Goal In Context Pengguna dapat menghapus situs berita Precondition Situs berita telah ditambah
Description Proses ini digunakan untuk menghapus situs berita Related Use Case Penyajian Tambah Situs Berita
Successful End
Condition Sistem berhasil menghapus situs berita Failed End Condition Sistem tidak berhasil menghapus situs berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses hapus situs berita
Main Flow Step Action
1. Pilih Menu Pilihan 2. Pilih Hapus
3. Sistem menampilkan pesan validasi hapus situs berita 4. Sistem menghapus situs berita dari database
Extension 3.1. Jika memilih Cancel, situs berita tidak dihapus
Tabel III.20 Use Case Scenario Penyajian Crawling Situs Berita Use Case Name Penyajian Crawling Situs Berita
Goal In Context Sistem dapat crawling situs berita Precondition Situs berita telah ditambah
Description Proses ini digunakan untuk crawling situs berita Related Use Case Penyajian Tambah Situs Berita
Successful End
Condition Sistem berhasil crawling situs berita Failed End Condition Sistem tidak berhasil crawling situs berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses crawling situs berita
Main Flow Step Action
1. Pilih Menu Pilihan 2. Pilih Crawling
(51)
51
4. Checklist / Unchecklist Reindeks (optional) 5. Klik tombol Mulai Crawling
6. Sistem menampilkan halaman proses crawling
Tabel III.21 Use Case Scenario Penyajian Crawling Semua Situs Berita
Tabel III.22 Use Case Scenario Penyajian Hasil Proses Crawling Use Case Name Penyajian Hasil Proses Crawling
Goal In Context Sistem dapat menampilkan hasil proses crawling
Precondition Situs berita telah ditambah dan telah memasukkan jumlah depth
Description Proses ini digunakan untuk menampilkan hasil proses crawling
Related Use Case Penyajian Tambah Situs Berita, Penyajian Crawling Situs Berita, Penyajian Crawling Semua Situs Berita
Successful End
Condition Sistem berhasil menampilkan proses hasil crawling Failed End Condition Sistem tidak berhasil menampilkan hasil proses crawling
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses crawling situs atau semua situs berita
Main Flow Step Action
1. Sistem menampilkan halaman proses crawling
2. Sistem melakukan indekssitus dan URL 3. Sistem melakukan indeksberita
4. Sistem melakukan indeks preprocessing dan pembobotan
5. Sistem melakukan indekskluster
Tabel III.23 Use Case Scenario Penyajian Tambah Kategori Use Case Name Penyajian Tambah Kategori
Goal In Context Pengguna dapat menambah kategori ke sistem Use Case Name Penyajian Crawling Semua Situs Berita Goal In Context Sistem dapat crawling semua situs berita
Precondition Situs berita telah ditambah minimal 1 situs atau lebih Description Proses ini digunakan untuk crawling semua situs berita Related Use Case Penyajian Tambah Situs Berita
Successful End
Condition Sistem berhasil crawling semua situs berita Failed End Condition Sistem tidak berhasil crawling semua situs berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses crawling semua situs berita
Main Flow Step Action
1. Pilih Crawling Semua
(52)
Precondition -
Description Proses ini digunakan untuk menambah kategori
Related Use Case -
Successful End
Condition Sistem berhasil menambah kategori
Failed End Condition Sistem tidak berhasil menambah kategori
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses tambah kategori
Main Flow Step Action
1. Pilih Menu Kategori 2. Klik Tambah Kategori 3. Memasukkan nama kategori 4. Klik tombol Tambah
5. Sistem menyimpan data tambah kategori ke database
Tabel III.24 Use Case Scenario Penyajian Edit Kategori Use Case Name Penyajian Edit Kategori
Goal In Context Pengguna dapat mengedit kategori Precondition Kategori telah ditambah
Description Proses ini digunakan untuk mengedit kategori Related Use Case Penyajian Tambah Kategori
Successful End
Condition Sistem berhasil mengedit kategori Failed End Condition Sistem tidak berhasil mengedit kategori
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses edit kategori
Main Flow Step Action
1. Pilih Menu Kategori 2. Pilih Edit
3. Pengguna memasukkan data yang diedit 4. Klik tombol Update
5. Sistem menyimpan data edit kategori ke database
Tabel III.25 Use Case Scenario Penyajian Hapus Kategori Use Case Name Penyajian Hapus Kategori
Goal In Context Pengguna dapat menghapus kategori Precondition Kategori telah ditambah
Description Proses ini digunakan untuk menghapus kategori Related Use Case Penyajian Tambah Kategori
Successful End
Condition Sistem berhasil menghapus kategori
Failed End Condition Sistem tidak berhasil menghapus kategori
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses hapus kategori
Main Flow Step Action
1. Pilih Menu Kategori 2. Pilih Hapus
(53)
53
3. Sistem menampilkan pesan validasi hapus kategori 4. Sistem menghapus situs berita dari database
Extension 3.1. Jika memilih Cancel, kategori tidak dihapus
Tabel III.26 Use Case Scenario Penyajian Informasi Semua Berita Use Case Name Penyajian Informasi Semua Berita
Goal In Context Sistem dapat menampilkan semua informasi berita Precondition Situs berita telah di crawling dan tersimpan dalam database
Description Proses ini digunakan untuk menampilkan informasi semua berita dari hasil crawling
Related Use Case Penyajian Hasil Proses Crawling
Successful End
Condition Sistem berhasil menampilkan semua informasi berita Failed End Condition Sistem tidak berhasil menampilkan semua informasi berita
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses menampilkan infromasi semua berita
Main Flow Step Action
1. Pilih Menu Aggregator
2. Sistem menampilkan halaman informasi semua berita
Tabel III.27 Use Case Scenario Penyajian Informasi Berita Berdasarkan Kategori
Use Case Name Penyajian Informasi Berita Berdasarkan Kategori
Goal In Context Sistem dapat menampilkan informasi berita berdasarkan kategori Precondition Situs berita telah di crawling dan tersimpan dalam database
Description Proses ini digunakan untuk menampilkan informasi semua berita dari hasil crawling berdasarkan kategori
Related Use Case Penyajian Hasil Proses Crawling
Successful End
Condition
Sistem berhasil menampilkan informasi berita berdasarkan kategori
Failed End Condition Sistem tidak berhasil menampilkan informasi berita berdasarkan kategori
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses menampilkan infromasi berita berdasarkan kategori
Main Flow Step Action
1. Pilih Menu Aggregator
2. Sistem menampilkan halaman informasi semua berita 3. Pilih salah satu kategori pada sidebar
4. Sistem menampilkan informasi berita berdasarkan kategori
Tabel III.28 Penyajian Pencarian Informasi Berita Use Case Name Penyajian Pencarian Informasi Berita
(54)
Goal In Context Pengguna dapat mencari dan melihat informasi berita dengan memasukkan kata kunci/query
Precondition Situs berita telah di crawling dan tersimpan dalam database
Description Proses ini digunakan untuk mencari dan melihat hasil pencarian informasi berita.berdasarkan kata kunci/query
Related Use Case Penyajian Hasil Proses Crawling
Successful End
Condition
Sistem berhasil menampilkan menampilkan hasil pencarian berdasarkan kata kunci/query yang dimasukkan oleh pengguna Failed End Condition Sistem tidak berhasil menampilkan menampilkan hasil pencarian
berdasarkan kata kunci/query yang dimasukkan oleh pengguna
Actors Pengguna
Trigger Pengguna meminta sistem untuk melakukan proses pencarian
Main Flow Step Action
1. Pilih Menu Aggregator
2. Sistem menampilkan halaman informasi semua berita 3. Masukkan kata kunci/query informasi berita yang
ingin dicari
4. Sistem menampilkan hasil pencarian informasi berita
III.5.1.3Activity Diagram
Activity diagram adalah teknik untuk menggambarkan logika prosedural, proses bisnis, dan jalur kerja. Berikut merupakan activity diagram dari pembangunan sistem ini berdasarkan dari use case scenario :
(55)
55
Gambar III.8 Activity Diagram Penyajian Edit Situs Berita
(56)
Gambar III.10 Activity Diagram Penyajian Crawling Situs Berita
(57)
57
Gambar III.12 Activity Diagram Penyajian Hasil Proses Crawling
(58)
Gambar III.14 Activity Diagram Penyajian Edit Kategori
(59)
59
Gambar III.16 Activity Diagram Penyajian Informasi Semua Berita
Gambar III.17 Activity Diagram Penyajian Informasi Berita Berdasarkan Kategori
(60)
Gambar III.18 Activity Diagram Penyajian Pencarian Informasi Berita III.5.1.4Class Diagram
Pada Gambar III.19 dibawah ini merupakan class diagram dari pembangunan sistem news aggregator ini.
(61)
61
Gambar III.19 Class Diagram Sistem News Aggregator
III.5.1.5Sequence Diagram
Pada bagian ini akan dipaparkan sequence diagram dari usecase yang berkaitan.
1. Penyajian Tambah Situs Berita
Sequence diagram penyajian tambah situs berita dapat dilihat pada Gambar III.20 berikut:
(1)
99
[14] A. Saputra, “Kenalan Dulu Sama PHP,” dalam Trik dan Solusi Jitu Pmerograman PHP, Jakarta, PT Elex Media Komputindo, 2011, pp. 1-6.
[15] S. Dharwiyanti dan R. S. Wahono, Pengantar Unified Modeling Language (UML), IlmuKomputer.com, 2003.
[16] R. A. Sukamto dan M. Shalahuddin, Modul Pembelajaran Rekayasa Perangkat Lunak (Terstruktur dan Berorientasi Objek), Bandung: Modula, 2011.
[17] R. Kohavi dan F. Provost, “Special Issue on Applications of Machine Learning and the Knowledge Discovery Process,” Machine Learning, vol. 30, no. 2-3, pp. 271-274, 1998.
[18] Sugiyono, “Interview (Wawancara),” dalam Metode Penelitian Kuantitatif, Kualitatif dan Kombinasi (Mixed Methods), Bandung, Alfabeta, 2013, p. 188.
(2)
iii
KATA PENGANTAR
Assalaamu‘alaikum wr. wb,
Alhamdulillahi Rabbil alamiin, segala puji dan syukur penulis panjatkan kepada Allah SWT atas rahmat dan karunia-Nya yang dilimpahkan, shalwat dan salam tidak lupa dicurahkan kepada Nabi Muhammad SAW, sehingga penulis dapat menyelesaikan skripsi ini yang berjudul “PENERAPAAN WEB
CONTENT MINING MENGGUNAKAN PARTITIONAL CLUSTERING
K-MEANS PADA NEWS AGGREGATOR”.
Adapun tujuan dari penyusunan skripsi ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika Universitas Komputer Indonesia.
Dalam penyusunan skripsi ini banyak sekali bantuan yang penulis terima. Karena itu, penulis ingin menyampaikan penghargaan dan terima kasih yang sebesar-besarnya kepada :
1. Allah SWT yang telah mencurahkan rahmat dan hidayah-Nya hingga detik ini.
2. Ibu Nelly Indriani W, S.Si., M.T. selaku dosen pembimbing yang telah banyak memberikan bimbingan dan dorongan kepada penulis selama penyusunan skripsi ini.
3. Bapak Angga Setiyadi, S.Kom. selaku dosen reviewer dan penguji I yang telah memberikan saran serta kritiknya dalam penyempurnaan skripsi ini. 4. Ibu Utami Dewi W, S.Kom., M.Kom. selaku dosen penguji III yang telah
memberikan saran serta kritiknya dalam penyempurnaan skripsi ini.
Salam ini tidak lupa juga penulis ucapkan terima kasih yang sebesar-besarnya dan penghargaan yang setinggi-tingginya kepada :
1. Kepada orang tua dan keluarga besar yang setiap saat selalu mengiringi langkah penulis dengan cinta, perhatian, arahan, kasih sayang serta do’anya yang tiada henti dan tanpa keluh kesah.
(3)
iv
2. Kepada teman-teman satu bimbingan skripsi, terutama Wulan, Budiyanto, dan Fazhal yang telah bersedia membantu penulis dalam menyelesaikan skripsi ini serta kepada Willy, Faisal, Thoyib, Miftah, Reza, Arief, dan Agung atas dukungan dan kebersamaan kita pada saat menunggu bimbingan.
3. Kepada teman-teman kelas IF-12 angkatan 2011 yang telah menemani dalam pelaksanaan seminar skripsi serta membantu penulis untuk bersedia menjadi responden wawancara.
Sebagai manusia penulis yakin bahwa apa yang kita perbuat tidak luput dari kekurangan karena kesempurnaan hanyalah milik Allah SWT. Oleh karena itu, penulis berharap semoga apa yang ditulis dalam skripsi ini dapat bermanfaat serta memberikan masukan yang berarti bagi penulis khususnya dan bagi para pembaca umumnya.
Bandung, Agustus 2015
(4)
(5)
(6)