10
BAB II STUDI PUSTAKA
2.1
Tinjauan Pustaka
2.1.1
State of The Art Berikut ini adalah hasil penelitian sebelumnya digunakan untuk dapat dijadikan bahan pertimbangan dan diharapkan dapat membantu dalam pembuatan sistem yang baru. Menurut Neni Septiani W dengan judul penelitian “Pengelompokan Dokumen Berita Berbahasa Indonesia Menggunakan Fuzzy C-Means”. Pertukaran informasi berbasis web yang berkembang saat ini menyebabkan beberapa lembaga media banyak yang mendistribusikan beritanya secara online, sehingga mengakibatkan meluasnya isi dari berita dalam membahas suatu topik tertentu. Hal inilah yang kemudian menyebabkan pencari berita kesulitan dalam mencari informasi yang sesuai. Penelitian ini mengimplementasikan Fuzzy C-Means Clustering untuk mengelompokan dokumen berita berbahasa Indonesia dengan melihat kesamaan isi kata dari sebuah dokumen. Metode Fuzzy C-Means Clustering mengelompokan data ke dalam cluster berdasarkan nilai derajat keanggotaan sehingga memungkinkan data dapat memasuki lebih dari satu cluster. Prinsip pengelompokan ini adalah meminimalisasi nilai dari fungsi objektif terhadap penentuan nilai nilai derajat keanggotaan awal. Semakin besar nilai derajat keanggotaan data dalam suatu cluster maka semakin besar pula data tersebut menjadi anggota cluster tersebut. Hasil ujicoba terhadap 270 dataset yang diambil dari media online menunjukan bahwa dokumen
10
11
cenderung untuk memasuki 5 kelompok dengan nilai akurasi f-measure tertinggi yaitu 0,638. Nilai akurasi yang didapatkan pada saat ujicoba menunjukan hasil yang didapat sangat tergantung pada jumlah dari variasi kata yang digunakan dalam pembobotan. Menurut Bayu Wiradarma dengan judul penelitian “Implementasi Algoritma Fuzzy C-Means Untuk Pengelompokkan Tingkat Penyakit Anemia”. Penelitian ini membahas penerapan algoritma Fuzzy C-Means (FCM) dalam pengelompokkan tingkat penyakit anemia. Anemia merupakan keadaan dimana jumlah sel darah merah atau jumlah hemoglobin (protein pembawa oksigen), lekosit, trombosit dan eritrosit dibawah normal atau kekurangan sel darah merah, sehingga darah tidak dapat mengangkut oksigen dalam jumlah sesuai yang diperlukan tubuh. Fuzzy CMeans merupakan (FCM) merupakan teknik pengklusteran dimana tiap-tiap data ditentukan oleh derajat keanggotaannya. Semakin besar nilai derajat keanggotaan data dalam suatu cluster maka semakin besar pula data tersebut menjadi anggota cluster tersebut. Hasil clustering kemudian diproses atau dievaluasi menggunakan nilai Fmeasure dimana sebelumnya harus diketahui nilai precission dan nilai recall terlebih dahulu. Menurut Briant Saputro dengan judul penelitian “Clustering Penggunaan Energi Listrik Pelanggan Pln Menggunakan Algoritma Fuzzy C-Means” Pelayanan pelanggan pada suatu perusahaan merupakan hal yang paling penting untuk membuat suatu perusahaan itu berkembang. Untuk mnjamin kepuasaan pelanggan dan kesetiaan pelanggan, menjamin pertumbuhan perusahaan yang berkesinambungan merupakan visi dan misi suatu perusahaan dalam mengembangkan perusahaan tersebut. PLN merupakan sebuah perusahaan listrik Negara yang berorientasi kepada
12
pelanggan. Manajemen PLN sendiri telah mengembangkan system pengelolaan pelanggan. Namun, pelayanan dari sistem tersebut masih bersifat teknik, belum melakukan analisa terhadap penggunaan energi listrik oleh pelanggan. Costumer Relationship Management (CRM) adalah salah satu cara untuk menyelesaikan permasalaahan analisa terhadap perilaku pelanggan berdasarkan data historis. Salah satu
metode
riset
dalam
CRM
adalah
melakukan
clustering
Pengelompokkan pelanggan bias menolong perusahaan dalam
pelanggan. menemukan
karakteristik dan perilaku pelanggan yang berbeda dalam setiap kelompok. Menurut Diah Pudi Langgeni dengan judul penelitian “Clustering Artikel Berita Berbahasa Indonesia Menggunakan Unsupervised Feature Selection” Meningkatnya penggunaan internet telah memicu pertumbuhan dan pertukaran informasi menjadi jauh lebih pesat dibandingkan era sebelumnya. Volume berita elektronik berbahasa Indonesia semakin bertambah besar dan menyimpan informasi yang berharga di dalamnya. Pengelompokkan berita berbahasa Indonesia merupakan salah satu solusi yang dapat digunakan untuk mempermudah mencerna informasi penting yang ada di dalamnya. Clustering dapat digunakan untuk membantu menganalisis berita dengan mengelompokkan secara otomatis berita yang memiliki kesamaan. Pada text clustering terdapat suatu permasalahan yaitu adanya fitur – fitur yang berdimensi tinggi. Diperlukan metode Feature selection untuk mengurangi dimensi fitur ini. Feature selection memiliki kemampuan mengurangi dimensionalitas suatu data sehingga dapat meningkatkan performansi clustering. Ada beberapa pendekatan sebagai teknik dari implementasi feature selection, salah satunya adalah filter based feature selection.
13
Menurut Ely Ratna Sayekti dengan judul penelitian “Implementasi Algoritma Fuzzy C-Means Untuk Pembangkitan Aturan Fuzzy Pada Pengelompokan Tingkat Risiko Penyakit Kanker Payudara”. Kanker payudara menduduki posisi pertama sebagai penyebab kematian tertinggi pada wanita akibat kanker di Indonesia. Sebagian besar kanker payudara baru didiagnosis setelah melihat hasil mammogram. Tim dokter menggunakan computer-aided-diagnosis untuk mendiagnosa tingkat keganasan kanker payudara guna membantu melakukan keputusan operasi dengan melakukan interpretasi suatu gambar medis. Dari hasil interpretasi tersebut akan diperoleh hasil yang menyatakan apakah kanker yang diderita pasien termasuk jinak atau ganas. Dalam interpretasi sebuah mamografi terkadang dokter mengalami kesalahan dalam menentukan keparahan (jinak dan ganas) sehingga dapat menyebabkan sekitar 70% biopsi yang tidak perlu dilakukan karena kanker itu bersifat jinak. Oleh karena itu diperlukan aturan yang dapat digunakan untuk pengelompokan tingkat risiko kanker payudara. Salah satu teknik yang dapat diterapkan untuk pembangkitan aturan secara otomatis adalah fuzzy c-means clustering. Menurut Izmi Dewi Aisha dengan judul penelitian “Pengelompokkan Opini Pada Twitter Menggunakan Algoritma K-Nearest Neighbor Dan K-Means Clustering ”. penelitian ini mengolah data dari Twitter mengenai teknik informatika UIN Bandung dengan menggunakan algoritma K-nearest neighbor dan K-Means. Sehingga, dalam penelitian ini akan terlebih dahulu meng-cluster data tweet tersebut menjadi tiga cluster dengan menggunakan algoritma k-means. Setiap cluster akan diberikan keterangan yang dapat disebut sebagai topik dari tiap cluster tersebut.
14
Selanjutnya, setelah dilakukan proses clustering langkah selanjutnya adalah proses klasifikasi. Proses klasifikasi yang dilakukan menggunakan algoritma k-nearest neighbor. Dimana dalam hal ini akan membagi tweet menjadi tiga kelompok sentiment. Yang pertama sentiment positif, negatif dan netral. Sehingga, setiap cluster tersebut akan memiliki sentiment positif, negatif maupun netral. Penggunakan dua algoritma ini karena K-NN sering digunakan pada pemilihan klasifikasi dan K-means banyak digunakan pada pemilihan clustering. Oleh karena itu, dalam penelitian ini akan menerapkan Algoritma K-nearest neighbor dan K-means terhadap pengelompokkan opini mengenai teknik informatika UIN Bandung secara tematik melalui Twitter. Untuk lebih jelas, tentang perbedaan penelitian dengan sebelumnya dapat dilihat pada Tabel 2.1. Untuk lebih jelasnya disajikan pada Tabel 2.1, sebagai berikut: Tabel 2. 1 State Of The Art No.
Peneliti
Metode
Data
Layanan/Fitur Aplikasi
ini
dapat
mengelompokkan berita Neni Septiani Metode 1.
W,
dkk
Fuzzy
pada
web
penyedia
Data Berita C-Means
layanan
berita
online
(2015) sehingga
memudahkan
pembacanya.
15
Aplikasi
ini
dapat
mengelompokkan Bayu
Data tingkat tingkatan Metode
2
penyakit
Fuzzy
Wiradarma
penyakit
anemia menggunakan 6
anemia
parameter
C-Means (2013)
anemia
penyakit yaitu
jenis
kelamin, umur,
Tabel 2.2 lanjutan State Of The Art No.
Peneliti
Metode
Data
Layanan/Fitur trombosit dan eritrosit, denganmengkasifikasikan 3 kategori yaitu normal, ringan dan berat.
3
Aplikasi
ini
Data
memberikan
penggunaan
dalam
dapat informasi
Briant Saputro, dkk Metode
pengelompokkan
Fuzzy energy listrik penggunaan energy listrik
(2013)
C-Means pelanggan PLN
pelanggan PLN
16
4
Aplikasi
ini
dapat
Metode Diah
Pudi
melakukan Unsupervised
Data Artikel
Langgeni
pengelompokkan artikel Feature
Berita
(2010)
berita
berbahasa
Selection Indonesia. 5
Aplikasi ini di gunakan Data penyakit Ely
Ratna Metode
Fuzzy
untuk mengelompokkan kanker
Sayekti, dkk
C-Means
tingkat resiko penyakit payudara kanker payudara.
6.
Izmi
Dewi K-Nearest
Aisha (2014)
Tweet
Hipotesis
awal
bahwa
Neighbor dan K- tentang
KNN dan K-Means akan
Means
teknik
lebih
informatika
digunakan
efektif
untuk dalam
UIN Bandung pemilihan klasifikasi dan pada Twitter 2.2
Landasan Teori
2.2.1
Text Mining
clustering tersebut
2.2.1.1 Pengertian Text Mining Text Mining merupakan penerapan konsep teknik data mining untuk mencari pola dalam teks. Pemilihan penganalisaan teks guna mencarikan informasi yang bermanfaat untuk tujuan tertentu. Pemilihan data mining untuk data dokumen atau teks memerlukan lebih banyak tahapan, mengingat data teks memiliki karakteristik yang
17
lebih kompleks daripada data biasa. Menurut Loretta Auvil dan Duane Searsmith dari University of Illinois karakteristik dokumen teks yaitu database teks yang berukuran besar, memiliki dimensi yang tinggi yakni satu kata merupakan satu dimensi, mengandung kumpulan kata yang saling terkait (frase) dan antara kumpulan kata satu dengan lain dapat memiliki arti yang berbeda, banyak mengandung kata ataupun arti yang bias (ambiguity) [4]. Text mining ini berusaha untuk mengekstrak informasi yang berguna dari sumber data melalui identifikasi dan eksplorasi pola yang menarik. Teks mining berasal dari banyaknya inspirasi dari penelitian tentang data mining. Oleh karena itu, tidak mengherankan untuk menemukan bahwa text mining dan data mining memperlihatkan arsitektur yang sama. Misalnya, kedua jenis sistem bergantung pada rutinitas preprocessing, pola algoritma dan sebagainya [5]. Pada text mining operasi preprocessing lebih berpusat pada identifikasi dan ekstraksi fitur representatif untuk dokumen. Tahap preprocessing ini lebih bertanggung jawab untuk mengubah data terstruktur yang tersimpan dalam koleksi dokumen ke dalam format menengah yang lebih eksplisit terstruktur yang merupakan perhatian yang tidak relevan untuk sebagian besar pada sistem data mining. Selain itu, text mining juga mengacu pada kemajuan yang dibuat dalam disiplin ilmu komputer lain yang terkait dengan penanganan natural language. Mungkin yang paling utama, adalah mengeksploitasi text mining teknik dan metodologi dari bidang pencarian informasi, informasi ekstraksi berbasis komputasi linguistik [5]. Jenis masukan untuk teks mining disebut data terstruktur dan merupakan pembeda utama dengan data mining yang menggunakan data terstruktur atau basis data
18
sebagai masukan. Teks mining dapat dianggap sebagai pemilihan dua tahap yang diawali dengan penerapan struktur terhadap sumber data teks dan dilanjutkan dengan ekstraksi informasi dan pengetahuan yang relevan dari data teks terstruktur ini dengan menggunakan teknik dan alat yang sama dengan data mining. Pemilihan yang umum dilakukan oleh teks mining diantaranya adalah perangkuman otomatis, kategori dokumen, penggugusan teks dan lain-lain. Tujuan dari text mining adalah untuk mendapatkan informasi yang berguna dari sekumpulan dokumen. Jadi, sumber data yang digunakan pada text mining adalah kumpulan teks yang memiliki format yang tidak terstruktur atau minimal semi terstruktur. Adapun tugas khusus dari text mining antara lain yaitu untuk pengkategorian teks (text categorization) dan pengelompokkan teks (text clustering) [6].
2.2.1.2 Text Preprocessing Teks yang akan dilakukan dalam pemilihan text mining, pada umumnya memiliki beberapa karakteristik diantaranya adalah memiliki dimensi yang tinggi, terdapat noise pada data, dan terdapat struktur teks yang tidak baik. Cara yang digunakan dalam mempelajari suatu data teks adalah dengan terlebih dahulu menentukan fitur-fitur yang mewakili setiap kata untuk setiap fitur yang ada pada dokumen. Sebelum menentukan fitur-fitur yang mewakili, diperlukan tahap preprocessing yang dilakukan secara umum dalam text mining pada dokumen atau suatu teks tertentu yaitu sebagai berikut [8]: a)
Analisa Leksikal (Lexical Analysis)
19
Membaca karakter input dan menghasilkan output berupa token (kata/term) dan membuang komentar, spasi, tab, newline, dan karakter-karakter lain yang tidak berguna; membuang angka karena biasanya kurang bermakna dan jarang di-indeks; menghilangkan tanda baca; mengubah huruf besar dan kecil (case folding) b) Penghilangan stopwords Stopword adalah kata-kata yang sering muncul dalam teks tetapi tidak begitu bermakna. Contoh ini, itu, dan, pun, dan lain-lain. Daftar stopword dapat ditentukan dengan mengekstrak kata-kata dalam corpus dan menghitung frekuensi kemunculan kata tersebut dalam teks. Pada umumnya, kata-kata yang tergolong stopword memiliki frekuensi yang tinggi, penghilangan stopword dapat memperkecil ukuran indeks lebih kurang 20-30%. c)
Stemming Stemming adalah proses menghilangkan imbuhan sehingga dapat diambil kata dasarnya. Atau proses mengembalikkan kata-kata menjadi dalam bentuk kata dasar. Contoh berlari -> lari. Stemming dapat memperkecil ukuran indeks dan kamus (thesaurus) sampai dengan 40-50%. Algoritma untuk stemming dapat dibangun menggunakan aturan (rule-based) dengan memperhatikan pola dalam awalan sisipan dan akhiran. Berikut tahapan dalam melakukan text preprocessing yaitu terlihat pada Gambar 2.1
20
Gambar 2. 1 Tahapan Text Preprocessing
Sesuai dengan Gambar 2.1 langkah pertama yang dilakukan adalah case folding adalah mengubah semua huruf dalam dokumen menjadi huruf kecil. hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter selain huruf dihilangkan dan dianggap delimiter. Tahap Tokenizing/parsing adalah tahap pemotongan string input berdasarkan tiap kata yang menyimpannya [7]. Tahap tokenizing adalah tahap pemotongan string input berdasarkan tiap kata yang menyusunnya. Tokenizing secara garis besar memecah sekumpulan karakter dalam suatu teks ke dalam satuan kata. Bagaimana membedakan karakter-karakter tertentu yang dapat diperlakukan sebagai pemisah kata atau bukan, sebagai contoh karakter whitespace, seperti enter, tabulasi, spasi dianggap sebagai pemisah kata. Namun untuk karakter petik tunggal (‘), titik (.), semicolon (;), titik dua (: ) atau lainnya dapat memiliki peran yang cukup banyak sebagai pemisah kata. Dalam memperlakukan karakter-karakter dalam teks sangat tergantung sekali pada kontek aplikasi yang dikembangkan. Pekerjaan tokenisasi ini akan semakin rumit jika juga harus memperhatikan struktur bahasa (grammatikal) [7]. Contohnya sebagai berikut:
21
Gambar 2. 2 Contoh Tokenizing
Pada Gambar 2.2 merupakan tahap tokenizing. Sehingga, jika ada sebuah kalimat maka pada tahap ini akan di pisahkan menjadi perkata dengan menggunakan pemisah tanda spasi. Sehingga, setiap kata yang dipisahkan spasi akan dipisah dari kalimat tersebut. Tahap filtering adalah tahap mengambil kata-kata penting dari hasil token. Bisa menggunakan stoplist (membuang kata yang kurang penting) atau wordlist (menyimpan kata penting). Stoplist/stopword adalah kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words. Contoh stopwords adalah ‘yang’,’dan’,’di’,’dari’ dan seterusnya [7]. Contoh dari tahapan ini adalah sebagai berikut:
22
Gambar 2. 3 Contoh Filtering
Pada Gambar 2.3 yang merupakan bagian dari proses filtering. Pada tahap ini yang akan membuang kata yang kurang penting atau tidak mempunyai makna oleh karena itu, berdasarkan kasus pada Gambar 2.3 kata yang akan dibuang adalah kata ‘Adalah’,’sebuah’,’Di’. Hal ini dikarenakan karena kata-kata tersebut dapat dikatakan kata penghubung dan sering digunakan pada sebuah kalimat tetapi, jika dipisahkan menjadi kata maka kata-kata tersebut tidak mempunyai makna. Oleh karena itu, pada tahap ini kata tersebut dihilangkan. Tahap stemming adalah tahap mencari root kata dari tiap kata hasil filtering. Pada tahap ini dilakukan proses pengembalian berbagai bentukan kata ke dalam suatu representasi yang sama. Tahap ini kebanyakan dipakai untuk teks berbahasa inggris dan lebih sulit diterapkan pada teks berbahasa indonesia. Hal ini dikarenakan bahasa indonesia tidak memiliki rumus baku yang permanen [7]. Contoh dari tahapan ini pada teks berbahasa inggris adalah sebagai berikut:
23
Gambar 2. 4 Contoh Stemming
Pada Gambar 2.4 ini merupakan bagian tahap text preprocessing terakhir oleh karena itu pada tahap ini akan membuang imbuhan yang ada sehingga nantinya didapatkan sebuah kata dasar tersebut. Hal ini digunakan karena meskipun kata dasarnya sama tetapi imbuhannya berbeda maka kata tersebut tidak akan tergabung dengan kata sebelumnya yang pada akhirnya memiliki makna yang sama. Oleh karena itu, dibutuhkan sebuah penghilangan imbuhan agar kata tersebut sama. Berdasarkan pada Gambar 2.4 stemming digunakan untuk kata bahasa inggris dimana kata learning,using,mining memiliki imbuhan verb-ing oleh karena itu akan dibuang imbuhan tersebut yang hasilnya merupakan kata dasarnya.
2.2.2
Berita Berita adalah informasi yang penting dan menarik perhatian orang banyak. Penyajian berita pun harus mempertimbangkan aspek waktu. Setiap berita terikat dengan waktu dan karenanya, kecepatan penyajian berita patut menjadi perhatian. Kita mengenal istilah “tiada hari tanpa berita”. Hal ini mengindikasikan adanya kebutuhan masyarakat untuk memperoleh pasokan berita dalam aktivitas keseharian[9]. Di sisi
24
lain, media massa dan wartawan pun berkepentingan untuk mengelola pemberitaan secara optimal, tidak hanya sebatas menyajikan berita. Atas dasar itu,penyajian berita jurnalistik harus memperhatikan sifat-sifat berita, seperti actual, objektif, akurat, menarik perhatian, dan bertanggung jawab[10]. Jika ditinjau dari segi isi berita, sumber berita dapat digolongkan ke dalam 4 jenis sumber berita berikut ini. 1. Sumber berita : bahan yang tertulis /tercetak (paper trail). Bentuknya dapat berupa berita pers, makalah atau dokumen lain. 2. Sumber berita : perangkat elektronik (electronic trail). Bentuknya bias diperoleh dari internet, email, maupun televise/radio. 3. Sumber berita : orang (people trail). Orang yang dimaksud adalah orang yang menjadi narasumber utama 4. Sumber berita : kantor berita ( news office trail). Kantor berita biasanya dimiliki pemerintah yang menjadi pusat dokumentasi berita yang dipublikasikan secara nasional. Sumber berita dari kantor berita sangat bermanfaat bagi media massa local atau daerah[10].
2.2.3
Fuzzy
2.2.3.1 Definisi Fuzzy Dalam kamus Oxford, istilah fuzzy didefinisikan sebagai blurred (kabur atau remang-remang), indistinct (tidak jelas), imprecisely defined (didefinisikan secara tidak presisi), confused (membingungkan), vague (tidak jelas). Penggunaan istilah “sistem fuzzy” tidak dimaksudkan untuk mengacu pada sebuah sistem yang tidak
25
jelas/kabur/remang-remang definisinya, cara kerjanya, atau deskripsinya. Sebaliknya, yang dimaksud dengan sistem fuzzy adalah sistem yang dibangun dengan definisi, cara kerja, dan deskripsi yang jelas berdasar pada logika fuzzy. Secara umum, logika fuzzy adalah sebuah metodologi “berhitung” dengan variabel kata-kata (linguistic variabel), sebagai pengganti berhitung dengan bilangan. Kata-kata yang digunakan dalam logika fuzzy memang tidak sepresisi bilangan, namun kata-kata jauh lebih dekat dengan instuisi manusia. Manusia dapat langsung “merasakan” nilai dari variabel kata-kata yang sudah dipakainya sehari-hari[11]. Logika fuzzy merupakan salah satu komponen pembentuk soft computing. Dalam banyak hal, logika fuzzy digunakan sebagai suatu cara untuk memetakan permasalahan dari input menuju output yang diharapkan. Logika fuzzy dapat dianggap sebagai black box yang menghubungkan antara ruang input menuju ruang output [11] Menurut Cox (1994), ada beberapa alasan mengapa orang menggunakan logika fuzzy, antara lain: a. Konsep logika fuzzy mudah dimengerti. Karena logika fuzzy menggunakan dasar teori himpunan, maka konsep matematis yang mendasari penalaran fuzzy tersebut cukup mudah untuk dimengerti. b. Logika fuzzy sangat fleksibel, artinya mampu beradaptasi dengan perubahanperubahan, dan ketidakpastian yang menyertai permasalahan. c. Logika fuzzy memiliki toleransi terhadap data yang tidak tepat. Apabila diberikan sekelompok data yang cukup homogen, dan kemudian ada beberapa data yang “eksklusif”, maka logika fuzzy memiliki kemampuan untuk menangani data eksklusif tersebut.
26
d. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks. e. Logika fuzzy dapat membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara langsung tanpa harus melalui proses pelatihan. Dalam hal ini, sering dikenal dengan nama Fuzzy Expert Systems menjadi bagian terpenting. f. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional. g. Logika fuzzy didasarkan pada bahasa alami. Logika fuzzy menggunakan bahasa seharihari sehingga mudah dimengerti. Logika fuzzy diperkenalkan oleh Prof. Lotfi A. Zadeh pada tahun 1965. Dasar logika fuzzy adalah teori himpunan fuzzy. Pada teori himpunan fuzzy, peranan derajat keanggotaan sebagai penentu keberadaan elemen dalam suatu himpunan sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau membership function menjadi ciri utama dari penalaran dengan logika fuzzy tersebut. Pada himpunan tegas (crisp), nilai kenggotaan suatu item x dalam suatu himpunan A, yaitu sering ditulis dengan µA(x), memiliki dua kemungkinan, yaitu: a. Satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau b. Nol (0), yang berarti bahwa suatu item tidakn menjadi anggota dalan suatu himpunan. Bila pada himpunan crisp, nilai keanggotaan hanya ada 2 kemungkinan, yaitu 0 dan 1, pada himpunan fuzzy nilai keanggotaan terletak pada rentang 0 sampai 1. Apabila x memiliki nilai keanggotaan fuzzy µ A(x)=0 berarti x tidak menjadi anggota himpunan A, demikian pula apabila x memiliki nilai keanggotaan fuzzy µ A(x)=1 berarti x menjadi anggota penuh pada himpunan A. Terkadang kemiripan antara keanggotaan fuzzy dengan probabilitas menimbulkan kerancuan. Keduanya memiliki nilai pada interval [0,1], namun
27
interpretasi nilainya sangat berbeda antara kedua kasus tersebut. Keanggotaan fuzzy memberikan suatu ukuran terhadap pendapat atau keputusan, sedangkan probabilitas mengindikasikan proporsi terhadap keseringan suatu hasil bernilai benar dalam jangka panjang. Himpunan fuzzy memiliki 2 atribut, yaitu: a. Linguistik, yaitu penamaan suatu grup yang mewakii suatu keadaan atau kondisi tertentu dengan menggunakan bahasa alami. b. Numeris, yaitu suatu nilai (angka) yang menunjukan ukuran dari suatu variable.
2.2.3.2 Fuzzy Clustering Fuzzy clustering adalah salah satu teknik untuk menentukan cluster optimal dalam suatu ruang vector yang didasarkan pada bentuk normal Euclidian untuk jarak antar vector. Fuzzy clustering sangat berguna bagi pemodelan fuzzy terutama dalam mengidentifikasi aturan-aturan fuzzy. Kemunculan fuzzy clustering dilatarbelakangi adanya masalah curse of dimensionality, yaitu jumlah rule yang begitu cepat membesar dengan bertambahnya jumlah variable input FIS (Fuzzy Inference System). Dengan fuzzy clustering, suatu data input-output akan dikelompokkan dalam beberapa grup atau cluster. Teori himpunan fuzzy akan memberikan jawaban terhadap suatu masalah yang mengandung ketidakpastian. Pada beberapa kasus, seperti nilai keanggotaan yang kemudian yang akan menjadi 0 atau 1, teori dasar tersebut akan identic dengan teori himpunan biasa, dan himpunan fuzzy akan menjadi himpunan crisp tradisional [11].
28
2.2.3.3 Fuzzy C-Means Ada beberapa algoritma clustering data, salah satu diantaranya adalah Fuzzy CMeans (FCM) [17]. Fuzzy C-Means (FCM) adalah suatu teknik pengclusteran data yang mana keberadaan tiap-tiap titik data dalam suatu cluster ditentukan oleh derajat keanggotaan. Teknik ini pertama kali diperkenalkan oleh Jim Bezdek pada tahun 1981. Konsep dasar FCM, pertama kali adalah menentukan pusat cluster, yang akan menandai lokasi rata-rata untuk tiap-tiap cluster. Pada kondisi awal, pusat cluster ini masih belum akurat. Tiap-tiap titik data memiliki derajat keanggotaan untuk yiap-tiap cluster. Dengan cara memperbaiki pusat cluster dan derajat keanggotaan tiap-tiap titik data secara berulang, maka akan dapat dilihat bahwa pusat cluster akan bergerak menuju lokasi yang tepat. Perulangan ini didasarkan pada minimalisasi fungsi objektif yang menggambarkan jarak dari titik data yang diberikan ke pusat cluster yang terbobot oleh derajat keanggotaan titik data tersebut. Output dari FCM bukan merupakan fuzzy interference system (FIS), namun merupakan deretan pusat cluster dan beberapa derajat keanggotaan umum tiap-tiap titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy interfence system [17]. 2.2.3.4 Algoritma FCM Algoritma Fuzzy C-Means (FCM) adalah sebagai berikut [17]: a. Input data yang akan dicluster X, berupa matriks berukuran n x m (n=jumlah sampel data, m=atribut setiap data). Xij=data sampel ke-i (i= 1,2,..,n), atribut ke-j (j=1,2,…,m). b. Tentukan:
Jumlah cluster
: c;
29
Pangkat
: w;
Maksimum iterasi
: MaxIter;
Error terkecil yang diharapkan
: ξ.
Fungsi objektif awal
: P0 = 0;
Iterasi awal
: t = 1;
c. Bangkitkan bilangan random µik, i=1,2,…,n; k=1,2,…,c; sebagai elemen-elemen matriks partisi awal U. Hitung jumlah setiap kolom: 𝑄𝑖 = ∑𝑐𝑘=1 µ𝑖𝑘
................................................................. (1)
Dengan j=1,2,…,n. Hitung: µ𝑖𝑘 =
µ𝑖𝑘 𝑄𝑖
d. Hitung pusat cluster ke-k: Vkj, dengan k=1,2,…c; dan j=1,2,…,m (Yan, 1994)
𝑉𝑘𝑗 =
∑𝑛 𝑖=1((µ𝑖𝑘 )𝑤∗ 𝑋𝑖𝑗 ) 𝑤 ∑𝑛 𝑖=1(µ𝑖𝑘 )
.................................................................. (2)
e. Hitung fungsi objektif pada iterasi ke-t, Pt (Yan, 1994): 2
𝑤 𝑃𝑡 = ∑𝑛𝑖 = 1 ∑𝑐𝑘 = 1 ([∑𝑚 𝑗 = 1 (𝑋𝑖𝑗 − 𝑉𝑘𝑗 ) ] (µ𝑖𝑘 ) )
f. Hitung perubahan matriks partisi (Yan, 1994). −1 2 𝑤−1
µ𝑖𝑘 =
[∑𝑚 𝑗=1(𝑋𝑖𝑗 −𝑉𝑘𝑗 ) ]
−1 2 𝑤−1 𝑐 𝑚 ∑𝑘=1[∑𝑗=1(𝑋𝑖𝑗 −𝑉𝑘𝑗 ) ]
Dengan: i=1,2,…,n; dan k=1,2,…,c.
.................. (3)
30
g. Cek kondisi berhenti:
2.2.4
Jika : (|Pt-Pt-1|<ξ)atau(t>MaxIter) maka berhenti;
Jika tidak: t= t+1, ulangi langkah ke-4.
Twitter Twitter adalah layanan jejaring sosial yang memungkinkan para pengguna untuk berbagi informasi dalam bentuk pesan teks singkat sejumlah 140 karakter. Dengan Twitter seoarang pengguna dapat bermicroblog tentang berbagai macam topik [2]. Elemenelemen yang dimiliki oleh Twitter mirip dengan karakter yang dimiliki email, IM, texting, blogging, RSS dan lain-lain[20]. Beberapa faktor yang menyebabkan Twitter berbeda dan memiliki keunikan adalah : 1. Pesan yang dikirim dan diterima pada Twitter tidak lebih dari 140 karakter atau setara dengan panjang dari kepala berita. 2. Pesan yang ada pada Twitter bersifat publik, seperti tulisan yang ada pada sebuah blog dimana tidak ada batasan siapa saja yang akan membaca tulisan yang ada di dalamnya. 3. Pesan yang ada pada timeline Twitter akan berbeda antara pengguna satu dengan pengguna yang lainnya, hal ini karena seorang pengguna dapat memilih pengguna mana yang hendak diikuti pesan yang ditulis. Twitter memberi istilah untuk hal tersebut dengan sebutan following.
31
4. Pesan singkat pada Twitter dapat dikirim dan diterima melalui banyak media dan juga mekanisme, seperti menggunakan perangkat mobile, komputer (PC), aplikasi web dan desktop[14].
2.2.5
Bahasa Pemrograman dan Tools
2.2.5.1 PHP PHP adalah sebuah bahasa pemograman yang berjalan dalam sebuah webserver (server side). PHP diciptakan oleh programmer unix dan Perl yang bernama Rasmus Lerdoft pada bulan Agustus-September 1994. Pada awalnya, Rasmus mencoba menciptakan sebuah script dalam wesite pribadinya dengan tujuan untuk memonitor siapa saja yang pernah mengunjungi website-nya[21]. Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs personal). Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI pada sekitar tahun 1995, dan diperkenalkan kepada beberapa programmer pemula dengan alasan bahasa yang digunakan oleh PHP cukup sederhana dan mudah dipahami. Selanjutnya Rasmus menulis ulang PHP dengan bahsa C untuk meningkatkan kecepatan aksesnya. Mulai bulan September sampai Oktober 1995, kode PHP ditulis ulang dan digabungkan menjadi PHP/F1. Baru di akhir tahun 1995 dirilis bagi umum secara gratis. Mengapa Rasmus membagikan ke publik secara gratis, Rasmus berangapan apabila kode PHP ini berguna bagi dirinya, tentu juga akan bermanfaat untuk orang lain.
32
Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini, interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan.
2.2.6.2 Mysql Basis data adalah mekanisme yang digunakan untuk menyimpan informasi atau data [22]. Dengan basis data, pengguna dapat menyimpan data secara terorganisasi. Setelah data tersimpan, informasi dapat mudah diambil. Kriteria dapat digunakan untuk mengambil informasi. Cara data disimpan dalam basis data menentukan seberapa mudah mencari informasi berdasarkan banyak kriteria. Data pun harus mudah ditambahkan ke dalam basis data, dimodifikasi, dan dihapus. Kemudian silberchatz, dkk, (2002) mendefinisikan basis data sebagai kumpulan data berisi informasi yang sesuai untuk sebuah perusahaan. Sistem Manajemen Basis Data (DBMS) adalah kumpulan data yang saling berhubungan dan kumpulan program untuk mengakses data. Tujuan utama sistem manajemen basis data adalah menyediakan cara menyimpan dan mengambil informasi basisdata secara mudah dan efisien. MySQL adalah suatu perangkat lunak database relasi (Relational Database Management Systems atau RDBMS), seperti halnya Oracle, prtgresql, MS SQL, dan sebagainya. MySQL berbeda dengan SQL. SQL (singkatan dari Structured Query Language) sendiri adalah suatu sintaks perintah-perintah tertentu atau bahasa (pemrograman) yang digunakan untuk mengelola suatu database. Jadi MySQL dan
33
SQL adalah hal yang berbeda. Mudahnya, MySQL adalah Software, dan SQL adalah bahasa perintahnya [14]. Berikut ini beberapa query yang digunakan dalam mysql [22] 1) Melihat tabel-tabel Untuk menampilkan tabel-tabel pada sebuah database yang diaktifkan digunakan query: SHOW TABLES; 2) Membuat tabel Untuk membuat sebuah tabel digunakan query: CREATE TABLE nama_table ( nama field1 type_data [primary key][auto_increment],Nama_field2 type_data,...); 3) Menampilkan data dari field Pada dasarnya untuk menampilkan data dari tabel menggunakan query: SELECT * FROM nama_table; Tetapi, query tersebut dapat dikembangkan sesuai kebutuhan. 4) Menghapus data pada tabel Untuk menghapus record atau data pada sebuah tabel digunakan query: DELETE FROM nama_tabel WHERE nama_field=’nilai’; 5) Meng-update data pada tabel Untuk meng-update sebuah record pada sebuah tabel digunakan query: UPDATE nama_tabel SET nama_field1 =’nilai_baru’, Nama_field2=’nilai_baru’,..., WHERE nama_field = ‘nilai’;
2.2.5.3 Web Framework Framework adalah kerangka kerja. Framework juga dapat diartikan sebagai kumpulan
script
(terutama
class
dan
function)
yang
dapat
membantu
34
developer/programmer
dalam
menangani
berbagai
masalah-masalah
dalam
pemrograman seperti koneksi ke database, pemanggilan variabel, file, dan lain-lain sehingga developer lebih fokus dan lebih cepat membangun aplikasi. Bisa juga dikatakan framework adalah komponen pemrorgaman yang siap re-use kapan saja, sehingga programmer tidak harus membuat skrip yang sama untuk tugas yang sama[23]. Framework menggunakan konsep yangsama dalam membangun suatu aplikasi, yaitu konsep MVC (Model View Controller). Konsep MVC adalah konsep pemisahan antara logic dengan tampilan dan database. Manfaat konsep ini adalah, membuat coding logic lebih simple, karena sudah di pisah dengan code untuk tampilan dan membuat programmer dapat bekerja secara terpisah dengan designer. Programmer mengerjakan logic, sedangkan designer berkutat dengan design dan tampilan. Berikut adalah penjelasan mengenai konsep MVC, a. Model, merupakan code struktur data. Model berisi fungsi di dalam pengolahan database Script Sql masuk di sini. b. View, merupakan code untuk menampilkan tampilan suta program. Tampilan dapat berupa web page, header, footer dan apa saja yang berjenis tampilan. c. Controller , merupakan code untuk logic, algoritma dan sebagai penghubung antara model, view, dan sumber lain yang di perlukan untuk mengolah HTTP request dan generate web page. CodeIgniter menerapkan pola MVC yang flexible, karena model dapat tidak digunakan. Kita dapat menggunakan Controller dan View saja dalam menggunakan CodeIgniter tanpa Model. Jika anda tidak memerlukan pemisahan di dalam struktur
35
data dan database atau menganggap penggunaan model hanya menambah kompleks aplikasi dengan keuntungan yang kurang sebanding, maka anda dapat tidak menggunakan model. CodeIgniter merupakan aplikasi sumber terbuka yang berupa framework PHP dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat mudah dibandingkan dengan membuatnya dari awal. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir adalah versi 2.2.0. Kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain, adalah sebagai berikut: a.
Performa sangat cepat : salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP from the scracth, tapi Codeigniter sangat cepat bahkan mungkin bisa dibilang codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
b.
Konfigurasi yang sangat minim (nearly zero configuration)
: tentu saja untuk
menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan setting standard, anda hanya perlu mengubah sedikit saja file pada folder config. c.
Banyak komunitas: dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
36
d.
Dokumentasi yang sangat lengkap : Setiap paket instalasi codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
2.2.5.4 Metode RUP Rational Unified Process (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan berbagai best practises yang terdapat dalam industri pengembangan perangkat lunak. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perankat lunak. Gambar dibawah menunjukkan secara keseluruhan arsitektur yang dimiliki RUP. [3] RUP menggunakan konsep object oriented, dengan aktifitas yang berfokus pada pengembangan model dengan menggunakan Unified Model Language (UML). Melalui gambar dibawah dapat dilihat bahwa RUP memiliki [13], yaitu: 1. Dimensi pertama digambarkan secara horizontal. Dimensi ini mewakili aspek-aspek dinamis dari pengembangan perangkat lunak. Aspek ini dijabarkan dalam tahapan pengembangan atau fase. Setiap fase akan memiliki suatu major milestone yang menandakan akhir dari awal dari phase selanjutnya. Setiap phase dapat berdiri dari satu beberapa iterasi. Dimensi ini terdiri atas Inception, Elaboration, Construction, dan Transition. 2. Dimensi kedua digambarkan secara vertikal. Dimensi ini mewakili aspek-aspek statis dari proses pengembangan perangkat lunak yang dikelompokkan ke dalam beberapa disiplin. Proses pengembangan perangkat lunak yang dijelaskan kedalam beberapa disiplin terdiri dari empat elemen penting, yakni who is doing, what, how dan when.
37
Dimensi ini terdiri atas: Business Modeling, Requirement, Analysis and Design, Implementation, Test, Deployment, Configuration dan Change Manegement, Project Management, Environtment.
Gambar 2.5 Arsitektur Rational Unified Process [13] Pada penggunaan kedua standard tersebut diatas yang berorientasi obyek memiliki manfaat [13], yakni: 1.
Improve productivity
2.
Standard ini dapat memanfaatkan kembali komponen-komponen yang telah tersedia/dibuat sehingga dapat meningkatkan produktifitas
3.
Deliver high quality system
4.
Kualitas sistem informasi dapat ditingkatkan sebagai sistem yang dibuat pada komponen-komponen yang telah teruji (well-tested dan well-proven) sehingga dapat mempercepat delivery sistem informasi yang dibuat dengan kualitas yang tinggi.
38
5.
Lower maintenance cost
6.
Standard ini dapat membantu untuk menyakinkan dampak perubahan yang terlokalisasi dan masalah dapat dengan mudah terdeteksi sehingga hasilnya biaya pemeliharaan dapat dioptimalkan atau lebih rendah dengan pengembangan informasi tanpa standard yang jelas.
7.
Facilitate reuse
8.
Standard ini memiliki kemampuan yang mengembangkan komponen-komponen yang dapat digunakan kembali untuk pengembangan aplikasi yang lainnya.
9.
Manage complexity
10.
Standard ini mudah untuk mengatur dan memonitor semua proses dari semua tahapan yang ada sehingga suatu pengembangan sistem informasi yang amat kompleks dapat dilakukan dengan aman dan sesuai dengan harapan semua manajer proyek IT/IS yakni deliver good quality software within cost and schedule time and the users accepted. Fase RUP yaitu:
1. Inception a. Menentukan Ruang lingkup proyek. b. Membuat ‘Business Case’. c. Menjawab pertanyaan “apakah yang dikerjakan dapat menciptakan ‘good business sense’ sehingga proyek dapat dilanjutkan”. 2. Elaboration a. Menganalisa berbagai persyaratan dan resiko. b. Menetapkan ‘base line’. c. Merencanakan fase berikutnya yaitu construction.
39
3. Construction a. Melakukan sederetan iterasi. b. Pada setiap iterasi akan melibatkan proses berikut: analisa desain, implementasi dan testing. 4. Transition a. Membuat apa yang sudah dimodelkan menjadi suatu produk jadi. b. Dalam fase ini dilakukan, beta dan performance testing, membuat dokumentasi tambahan seperti; training, user guides dan sales kit, membuat rencana peluncuran produk ke komunitas pengguna.
2.2.6
UML Unified Modeling Language (UML) adalah sebuah bahasa yang berdasarkan grafik atau gambar untuk menvisualisasikan, menspesifikasikan, membangun dan mendokumentasian dari sebuah sistem pengembangan perangkat lunak berbasis Objek (OOP) (Object Oriented Programming) [13]. Secara khusus, Unified Modeling Language (UML) menspesifikasikan langkah-langkah penting dalam pengambilan keputusan analisis, perancangan serta implementasi dalam sistem yang sangat bernuansa perangkat lunak. Diagram-diagram yang ada pada UML salah satunya sebagai berikut:
2.2.6.1 Use Case Diagram Use case adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan
40
sistemnya sendiri melalui sebuah cerita bagaimana sebuah system dipakai [13]. Berikut ini adalah beberapa simbol penggunaan use case diagram seperti pada Tabel 2.3: Tabel 2. 3 Simbol-simbol Use case diagram No 1.
Simbol
Nama
Deskripsi
Aktor
Orang atau sistem lain yang berinteraksi
dengan
sistem
informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri 2.
Usecase
Fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit atau aktor
3.
Asosiasi
Komunikasi antara aktor dan usecase yang berpartisipasi pada usecase atau usecase memiliki interaksi dengan aktor
4.
Include
Relasi usecase dimana choose bersangkutan akan dilanjutkan ke choose yang dituju
41
2.2.6.2 Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain [13]. Class memiliki tiga area pokok yaitu nama, atribut, dan metoda. Atribut dan metoda dapat memiliki salah satu sifat berikut: a)
Private, tidak dapat dipanggil dari luar class yang bersangkutan
b) Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya c)
Public, dapat dipanggil oleh siapa saja Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class [19]. Hubungan antara class terdiri dari sebagai berikut:
a)
Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain.
b) Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas”). c)
Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas
42
baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. d) Hubungan dinamis, yaitu rangkaian pesan ( message ) yang di-passing dari satu class kepada class lain.
Berikut ini beberapa simbol dalam class diagram seperti pada Tabel 2.4: Tabel 2. 4 Simbol-simbol Class Diagram No
Simbol
Nama
Deskripsi
1.
Kelas
Kelas pada struktur sistem
2.
Asosiasi Relasi antar kelas dengan makna umum, asosiasi
biasaya
disertai
dengan
multiplicity
2.2.6.3 Sequence Diagram Diagram sequence merupakan salah satu diagram Interaction yang menjelaskan bagaimana suatu operasi itu dilakukan, message (pesan) apa yang dikirim dan kapan pelaksanaannya [13]. Diagram ini diatur berdasarkan waktu. Objek-objek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan
43
berdasarkan waktu terjadinya dalam pesan yang terurut. Berikut ini simbol pada sequence diagram seperti pada Tabel 2.5 Tabel 2. 5 Simbol-simbol Sequence Diagram No
Simbol
1.
Nama
Deskripsi
aktor
Orang, atau sistem lain yang berinteraksi
dengan
sistem
informasi dan mendapat manfaat dari sistem, ditempatkan di bagian atas diagram 2.
Objek
Sebuah
objek
berpartisipasi
secara
berurutan
dengan
mengirimkan/menerima pesan 3.
Garis
Menandakan kehidupan objek
hidup
selama urutan, diakhiri tanda X
objek
pada titik di mana kelas tidak lagi berinteraksi
Tabel 2.6 Simbol-simbol Sequence Diagram (Lanjutan) No. 4. n
Simbol
Nama
Deksripsi
Objek sedang Fokus kontrol: aktif
Menandakan ketika suatu objek
berinteraksi
mengirim atau menerima pesan
44
5.
Pesan
Objek mengirim satu pesan ke objek lainnya
2.2.6.4 Activity Diagram Pada dasarnya diagram Activity sering digunakan oleh flowchart. Diagram ini berhubungan dengan diagram Statechart. Diagram Statechart berfokus pada objek dalam suatu proses (atau menjadi suatu objek), diagram Activity berfokus pada aktifitas-aktifitas yang terjadi yang terkait dalam suatu proses tunggal [13]. Jadi dengan kata lain, diagram ini menunjukkan bagaimana aktifitas-aktifitas tersebut bergantung satu sama lain. Proses berawal dari lingkaran start hitam pada bagian atas dan berakhir di pusat lingkaran stop hitam/putih pada bagian bawah. Aktivitas digambarkan dalam bentuk kotak persegi. Berikut ini simbol activity diagram pada tabel 2.7. Tabel 2.7 Simbol-simbol Activity Diagram No 1.
Simbol
Nama
Deskripsi
Status Awal
Status awal aktivitas sistem, sebuah
diagram
aktivitas
memiliki sebuah status awal 2.
Aktivitas
Aktivitas sistem,
yang
dilakukan
aktivitas
biasanya
diawali dengan kata kerja 3.
Status Akhir
Status akhir yang dilakukan sistem,
sebuah
diagram
45
aktivitas memiliki sebuah status akhir
Tabel 2.8 Simbol-simbol Activity Diagram (lanjutan) No.
Simbol
4.
Nama
Dekripsi
Swimlame
Memisahkan organisasi bisnis yang
bertanggung
jawab
terhadap aktivitas yang terjadi
2.2.6.5 Statechart Diagram State adalah sebuah kondisi selama kehidupan sebuah object ketika object memenuhi beberapa kondisi, melakukan beberapa action, atau menunggu sebuah event . State dari sebuah object dapat dikarakteristikkan oleh nilai dari satu atau lebih atribbut-tribut dari class. State-state dari sebuah object ditemukan dengan pengujian atau pemeriksaan atribut-atribut dan hubungan-hubungan dari object. State Transition merepresentasikan sebuah perubahan dari state awal ke sebuah state berikutnya (yang mungkin dapat sama dengan state awal). Sebuah action dapat menyertai sebuah state transition. Ada dua state khusus yang ditambahkan di state transition diagram. Pertama adalah start state. Masing-masing diagram harus mempunyai satu dan hanya satu start state ketika object mulai dibuat. State khusus berikutnya adalah stop state [13]. Sebuah
46
object boleh mempunyai banyak top state. Berikut ini simbol pada statechart diagram seperti pada tabel 2.12 Tabel 2.9 Simbol-simbol Statechart Diagram No
Simbol
1.
Nama
Deskripsi
Initial Pseudo State
Bagaimana objek dibentuk atau diawali
2.
State
Nilai atribut dan nilai link pada suatu
waktu
tertentu
yang
dimiliki oleh suatu objek. 3.
Transition
Sebuah kejadian yang memicu sebuah state objek dengan cara memperbaharui satu atau lebih nilai atributnya
Tabel 2. 10 Simbol-simbol Statechart Diagram (Lanjutan)
No.
Simbol
4.
Nama
Deksripsi
Final State
Bagaimana objek dibentuk dan dihancurkan
2.2.7
Pengujian Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan
47
pengkodean. Meningkatnya visibilitas perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencaan yang baik melalui pengujian yang teliti. Pengujian mengharuskan pengembangan membuang pemikiran-pemikiran sebelumnya mengenai kebenaran perangkat lunak yang baru saja dikembangkan dan mengatasi konflik minat yang terjadi pada saat kesalahan ditemukan. Dalam buku klasiknya mengenai pengujian perangkat lunak, Glen Myers [MYE79] menyatakan sejumlah aturan yang berfungsi sebagai sasaran pengujian [13]: 1) Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan 2) Test Case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya. 3) Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya.
2.2.7.1 Pengujian Black Box Pengujian yang digunakan adalah pengujian black-box. Pengujian black box berfokus pada persyaratan fungsional perangkat lunak [13]. Dengan demikian, pengujian black box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black box bukan merupakan alternative dari teknik white box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan dari pada metode white box.
48
Pengujian black box menemukan kesalahan dalam kategori sebagai berikut: (1) fungsi-fungsi yang tidak benar atau hilang, (2) kesalahan interface (3) kesalahan dalam struktur data atau akses database eksternal, (4) kesalahan kinerja, (5) inisialisasi dan kesalahan terminasi [13]. Tidak seperti pengujian white box yang dilakukan pada saat awal proses pengujian, pengujian black box cenderung diaplikasikan selama tahap akhir pengujian. Karena pengujian black box memperhatikan struktur control, maka perhatian berfokus pada domain informasi. Pengujian di desain untuk menjawab pertanyaan-pertanyaan berikut [13]: a) Bagaimana validitas fungsional diuji? b) Kelas input apa yang akan membuat test case menjadi baik? c) Apakah sistem sangat sensitif terhadap harga input tertentu? d) Bagaimana batasan dari suatu data diisolasi? e) Kecepatan data apa dan volume data apa yang dapat ditolelir oleh sistem? f) Apa pengaruh kombinasi tertentu dari data terhadap operasi sistem? Dengan mengaplikasikan teknik black box, maka ditarik kesimpulan serangkaian test case yang memenuhi kriteria berikut ini: test case yang mengurangi, dengan harga lebih dari satu, jumlah test case tambahan yang harus didesain untuk mencapai pengujian yang dapat dipertanggungjawabkan, dan test case yang memberi tahu sesuatu mengenai kehadiran atau ketidakhadiran kelas kesalahan, dari pada memberi tahu kesalahan yang berhubungan hanya dengan pengujian spesifik yang ada [13].
49
2.2.7.2 Pengujian Akurasi Dalam proses klasifikasi untuk melakukan keakuratan dapat dilakukan dengan melakukan pengukuran jumlah data yang diklasifikasikan benar oleh sistem dibagi dengan keseluruhan data klasifikasi manual dikalikan 100% seperti pada persamaan 2.6 𝑎𝑘𝑢𝑟𝑎𝑠𝑖 =
𝑗𝑢𝑚𝑙𝑎ℎ 𝑘𝑒𝑐𝑜𝑐𝑜𝑘𝑎𝑛 𝑑𝑜𝑘𝑢𝑚𝑒𝑛 𝑏𝑒𝑛𝑎𝑟 𝑗𝑢𝑚𝑙𝑎ℎ 𝑘𝑒𝑠𝑒𝑙𝑢𝑟𝑢ℎ𝑎𝑛 𝑑𝑜𝑘𝑢𝑚𝑒𝑛
× 100%..........................................(2.6)
Selain metode itu dua parameter yang dapat digunakan untuk mengukur keefektifan sebuah proses klasifikasi adalah precision dan recall. Precision adalah rasio jumlah dokumen relevan yang ditemukan dengan total jumlah dokumen relevan yang ditemukan oleh sistem sedangkan recall adalah rasio jumlah dokumen relevan yang ditemukan kembali dengan total jumlah dokumen dalam kumpulan dokumen yang dianggap relevan [23].