Penerapan Web Content Mining Menggunakan Partitional Clustering K-Means Pada News Aggregator

(1)

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)