BAB II. LANDASAN TEORI 2.1. Text Mining Text Mining, yang juga disebut text data mining(TDM) atau knowledge discoveryin the text. Menurut Berry & Kogan (2010) Text mining merupakan teknik yang digunakan untuk menangani masalah klasifikasi, pengelompokan, ekstraksi informasi, dan pencarian informasi. Untuk data twitter text mining dilakukan pada unstructure text untuk mengekstraksi teks yang tidak tersetruktur menjadi sebuah informasi yang berguna. Text mining, mengacu pada proses mengambil informasi berkualitas tinggi dari teks. Informasi berkualitas tinggi biasanya diperoleh melalui peramalan poladan kecenderungan melalui sarana seperti pembelajaran pola statistik. Text miningbiasanya melibatkan proses penataan teks input (biasanya parsing, bersamadengan penambahan beberapa fitur linguistik turunan dan penghilangan beberapadiantaranya, dan penyisipan subsequent ke dalam database), menentukan poladalam data terstruktur, dan akhirnya mengevaluasi dan menginterpretasi output.'Berkualitas tinggi' di bidang text mining biasanya mengacu ke beberapakombinasi relevansi, kebaruan, dan interestingness. Proses text mining yang khasmeliputi kategorisasi teks, text clustering, ekstraksi konsep/entitas, produksitaksonomi granular, sentiment analysis, penyimpulan dokumen, dan pemodelanrelasi entitas. 7 Klasifikasi / kategorisasi dokumen adalah masalah dalam ilmu informasi.Tugas kita adalah untuk menetapkan data masuk dalam satu ataulebih kategori, berdasarkan isinya. Tugas klasifikasi dokumen dapat dibagimenjadi dua macam yaitu klasifikasi dokumen terawasi di mana beberapamekanisme eksternal (seperti feedback manusia) memberikan informasi mengenaiklasifikasi yang tepat untuk dokumen, dan klasifikasi dokumen tak terawasi,dimana klasifikasi harus dilakukan sepenuhnya tanpa merujuk ke informasieksternal. Pendekatan manual text mining secara intensif dalam laboratoriumpertama muncul pada pertengahan 1980-an, namun kemajuan teknologi telahmemungkinkan ranah tersebut untuk berkembang selama dekade terakhir. Textmining adalah bidang interdisipliner yang mengacu pada pencarian informasi,pertambangan data, pembelajaran mesin, statistik, dan komputasi linguistik. Saat ini , text mining telah mendapat perhatian dalam berbagai bidang : 1. Aplikasi biomedis. Berbagai aplikasi text mining dalam literatur biomedis telah disusun.Salah satu contohnya adalah PubGene yang mengkombinasikan text miningbiomedis dengan visualisasi jaringan sebagai sebuah layanan Internet. Contoh laintext mining adalah GoPubMed.org. Kesamaan semantik juga telah digunakan olehsistem text mining, yaitu, GOAnnotator. 2. Perangkat Lunak dan Aplikasi Departemen riset dan pengembangan perusahaan besar, termasuk IBM danMicrosoft, sedang meneliti teknik text mining dan mengembangkan programuntuk lebih mengotomatisasi proses pertambangan dan analisis. 8 Perangkat lunaktext mining juga sedang diteliti oleh perusahaan yang berbeda yang bekerja dibidang pencarian dan pengindeksan secara umum sebagai cara untukmeningkatkan performansinya. 3. Aplikasi Media Online Text mining sedang digunakan oleh perusahaan media besar, sepertiperusahaan Tribune, untuk menghilangkan ambigu informasi dan untukmemberikan pembaca dengan pengalaman pencarian yang lebih baik, yangmeningkatkan loyalitas pada site dan pendapatan. Selain itu, editor diuntungkandengan mampu berbagi, mengasosiasi dan properti paket berita, secara signifikanmeningkatkan peluang untuk menguangkan konten. 4. Aplikasi Pemasaran Text mining juga mulai digunakan dalam pemasaran dengan caramenerapkannya untuk meningkatkan model analisis prediksi untuk churn pelanggan (pengurangan pelanggan). Hal ini terutama berlaku dalam ilmu sains, di mana informasi yang sangat spesifiksering terkandung dalam teks tertulis. Oleh karena itu, inisiatif telah diambilseperti Nature’s proposal untuk Open Text Mining Interface (OTMI) dan Health’scommon Journal Publishing untuk Document Type Definition (DTD) yang akanmemberikan isyarat semantik pada mesin untuk menjawab pertanyaan spesifik yang terkandung dalam teks tanpa menghilangkan barrier penerbit untuk akses publik. Sebelumnya, website paling sering menggunakan pencarian berbasis teks, 9 Sekarang dengan textmining dapat menemukan konten dan menggali kata-kata menjadi informasi yang lebih berguna. Text mining juga digunakan dalam beberapa filter email spam sebagai cara untuk menentukan karakteristik pesan yang mungkin berupa iklan atau materiyang tidak diinginkan lainnya. 2.1.1Text Preprocessing Tahap-tahap text mining secara umum adalah text preprocessing dan feature selection menurut Feldman & Sanger (2007). Pada tahap ini mencakup seluruh rutinitas, dan mempersiapkan data yang akan dilakukan analisa. Semakin banyak informasi yang dikenali sistem, maka semakin akuratlah sebuah text mining itu. Dalam text preprocessing adalah mengubah semua karakter menjadi huruf kecil dan menguraikan kalimat menjadi kata dan menghilangkan karakter spesial seperti titik (.), koma(,) , spasi, dan karakter yang tidak diperlukan. Menurut Govindarajan (2013, hal 141) data pre-processing mengurangi dokumen teks input secara signifikan.Menurut Berry & Kogan (2010) pada tahap ini dilakukan stopword removal dan stemming. - Penghilangan Stopword Menurut Imambi(2011, hal. 15) stop word sering ditemukan pada kata secara umumnya seperti contoh kata dan, kamu,dll. Selain itu perlu distandarisasi emoticon untuk menangkap informasi tambahan - Standarisasi emoticon Emoticon biasanya berisi emosional seseorang yang dituangkan dalam sebuah lambang yang terdapat pada kata. Menurut Dayalani(2014 hal 438), emosi 10 sering diungkapkan oleh emoticon tertentu, umumnya mungkin menyarankan sentimen atau subjektivitas seluruh teks pada tweet. - Standarisasi bahasa prokem Prokem adalah bahasa bahasa gaul yang sering dipakai oleh masyarakat Indonesia. Peneliti menambahkan fitur ini karena pada sosial media itu hampir semua kata itu berisi kata – kata gaul. Jika tidak dilakukan standarisasi kata slang maka banyak makna kata yang bisa hilang. - Stemming Stemming akan dilakukan pada tahap ini. Stemming dilakukan untuk menghilangkan imbuhan sehingga siap untuk di analisa. Proses Stemming adalah teknik yang digunakan untuk mengurangi kata-kata untuk bentuk kata dasar dengan menghapus derivasi dan afiks menurut Wahiba Ben(2013, hal. 143). Stemming adalah suatu proses atau cara dalam menemukan dasar dari suatu kata. Dengan kata lain Stemming itu menghapus imbuhan pada suatu kata sehingga kata tersebut hanya menjadi kata dasar. Alasan dilakukan Stemming adalah untuk membuat data menjadi mudah untuk dianalisa. Untuk melakukan Information Retrieval diperlukan salah satu proses yaitu Stemming. Untuk menerapkan Stemming pada bahasa Indonesia sangatlah sulit dikarenakan banyaknya kata dasar yang ambigu mirip dengan kata lainnya. Bahasa Indonesia terdiri dari awalan (Prefix), sisipan (Infixs), akhiran(Suffix). Imbuhan tersebut harus dihilangkan untuk mengubah bentuk katanya menjadi kata dasar. Stemmingakan meningkatkan kesensitivan retrieval dan meningkatkan kemampuan untuk menemukan dokumen yang 11 relevan, sehingga semua teks dapat dianalisa. Pada penelitian ini akan digunakan algoritma Porter dalam melakukan Stemming. Terdapat dua kesalahan yang biasa terjadi saat melakukan proses stemming yaitu over stemming dan under stemming. Over Stemming itu terjadi ketika dua kata yang berbeda dengan kata dasar sama. Under stemming terjadi ketika dua kata yang ditemukan kata dasar sama tetapi seharusnya berbeda menurut Ganesh(2011, hal. 1930). - Algoritma Porter Algoritma Stemming Porter adalah proses untuk menghilankan imbuhan pada suatu kata. Algoritma Porter biasanya digunakan untuk bahasa Inggris. Akan tetapi pada penelitian ini, algoritma Porter akan digunakan untuk bahasa Indonesia. Fungsi utamanya adalah untuk menormalisasikan suatu kata. Implementasi algoritma Porter yang ada di Indonesia berdasarkan English Porter Stemmer yang di kembangkan oleh W.B. Frakes pada tahun 1992. Pada penelitian ini Stemming menggunakan algoritma Porter dimodifikasi sedikit untuk mendukung keakuratan dalam proses Stemming. Peneliti sebelum menghapus imbuhan akan mengecek pada kata dasar pada kamus bahasa Indonesia. Kata dasar yang diambil yaitu dari http://stopwords-list-bahasa-indonesia.blogspot.co.id/2012/09/daftar-kata-dasarbahasa-indonesia.html. 12 Gambar 2.1. Alur Skema dari Algoritma Porter Berikut adalah pengelompokan rule – rule imbuhan pada morfologi bahasa indonesia. Pengelompokan imbuan dibagi menjadi 5 kelompok imbuhan. Berikut adalah 5 rule dalam algoritma porter: 1. Rule pertama : Inflectional particles. Terdiri dari akhiran –kah, -lah, -pun. 2. Rule kedua : Inflectional possesive pronouns. Terdiri dari akhiran –ku, -mu, -nya. 3. Rule ketiga : first order of derivational prefixes. Terdiri dari awalan meng-, meny-, men-, mem-, me-, peng-, peny-, pen-, pem-, di-, ter-, ke-. 4. Rule keempat :second order of derivational prefixes. Terdiri dari awalan ber-, bel-, be-, per-, pel-, pe-. 5. Rule kelima : derivational suffixes. Terdiri dari akhiran –kan, -an, 13 Permasalahan yang sering terjadi pada algoritma Porter adalah pemotongan kalimat tanpa memperhatikan kata dasar sehingga sering salah memotong imbuhan. Contoh sekolah, pada algoritma proter secara umumnya akan langsung dihilahkan imbuhan –lah, padahal sekolah itu ada;ah kata dasar yang mengandung unsur akhiran –lah. Karena sekolah adalah kata dasar. Oleh karena kekurangan tersebut, peniliti melakukan modifikasi pada algoritma ini. Dan lebih mendalam dalam mencocokan kata dasar dengan kata berimbuhan. Untuk beberapa rule peneliti menggunakan match stirng Naive bayes. 2.1.2 Feature Selection Feature selection adalah suatu kegiatan yang umumnya bisa dilakukan secara berdampingan dengan text preprocessing. Tujuan dari feature selection adalah mengambil fitur yang berpengaruh dan membuang fitur yang tidak berpengaruh dalam penganalisaan data. Ada banyak potensi manfaat variabel dan fitur pilihan : memfasilitasi visualisasi data dan data pemahaman, mengurangi pengukuran dan storage, mengurangi proses pelatihan data untuk meningkatkan prediksi menurut Ari, Dharma & Agung(2013, hal. 3) 2.2. Sentiment Analysis Menurut Lina L & Girish(2014) sentiment analysis atau opinion mining mengacu pada bidang yang luas dari pengolahan bahasa alami, komputasi linguistik dan text mining yang bertujuan menganlisa pendapat, sentimen, evaluasi, sikap, penilaian dan emosi seseorang. 14 Bahasa adalah alat yang ampuh untuk berkomunikasi dan menyampaikan informasi. Ini juga merupakan sarana untuk mengekspresikan emosi dan sentimen. Analisa sentimen adalah bidang studi yang menganalisa pendapat, sentimen, evaluasi masyarakat, sikap, dan emosi terhadap produk, jasa, organisasi, individu, masalah, peristiwa, film, dan topik menurut Lina & Girish (2014, hal 313). Tugas dasar dalam analisis sentimen adalah mengelompokkan teks yang ada dalam sebuah kalimat atau dokumen kemudia menentukan pendapat yang dikemukakan dalam kaliamat atau dokumen tersebut apakah bersifat positif, negatif atau netral menurut Dehaff (2010). Sentiment analysis juga dapat menyatakan perasaan emosional sedih, gembira, atau marah. Kita dapat mencari pendapat tentang produk-produk, merek atau orangorang dan menentukan apakah mereka dilihat positif atau negatif. Hal ini memungkinkan kita untuk mencari informasi tentang: a. Deteksi Flame (rants buruk) b. Persepsi produk baru. c. Persepsi Merek. d. Manajemen reputasi. Ekspresi atau sentiment mengacu pada fokus topik tertentu, pernyataan pada satu topik mungkin akan berbeda makna dengan pernyataan yang sama pada subject yang berbeda. Oleh karena itu pada beberapa penelitian, terutama pada review produk, pekerjaan didahului dengan menentukan elemen dari sebuah produk yang sedang dibicarakan sebelum memulai proses opinion mining (Barber, 2010). 15 2.3. Naive Bayes Classifier Naive bayes merupakan algoritma klasifikasi yang sederhana dimana setiap artribut bersifat idependent dan memungkinkan berkontribusi terhadap keputusan akhir menurut Xhemali (2009).Naive Bayes juga merupakan metode belajar probabilistik yang mengasumsikan hal terjadi secara independen menurut Govidarajan & Romina(2013, hal. 12).Metode untuk sentiment analysis adalah menggunakan klasifikasi dan probabilistik oleh Thomas Bayes. Metode Naive Bayes merupakan dari metode machine learning berdasarkan teorema Naive Bayes secara teorema idependent menurut Rupilele, Danny, & Herry(2013, hal 157). Jika ada 2 even, e1 dan e2 maka probabilitas bersyarat terjadinya even e1 adalah ketika e2 telah terjadi yang dihitung dengan rumus matematika berikut. Algoritma ini ditujukan untuk menghasilkan positif atau negatif, maka probabilitas sentimen menjadi: Dan probabilitas dari kata akan menjadi: Algoritma S1 : Inisialisasi P(Positif)←num - popozitii(positif)/ Num_total_propozitii. S2 : Inisialisasi P(negatif)←num - popozitii(negatif)/ Num_total_propozitii. 16 S3 : Convert kalimat dalam kata-kata Algoritma tersebut dapat dipresentasikan menjadi 2 figur : Klasifikasi Kalimat negatif Training set Klasifikasi Kalimat positif Review kalimat Klasifikasi Tweet Review Gambar 2.2 : Proses Klasifikasi dengan algoritma Naïve Bayes. Dengan menggunakan algoritma bayes lebih akurat dan Relevan. Menggunakan tabel contigency dapat menghitung beberapa langkah Tabel 2.1 Tabel Contigency Precision = Accuracy = 17 Maka akan menghasilkan positif dan negatif dari postingan sosial media. Kemudian data ini dapat dibuat reporting. Berikut adalah contoh hasil dari opinion mining. Tabel 2.2 : Contoh Hasil Analisa Sentimen Sentimen Jumlah % Total 14,04 100.0% Positif 10,43 73.5% Negatif 3,769 11.1% Dari Tabel tersebut ditarik kesimpulan tempatnya baik dan bagus karena respon orang positif. Dengan hasil tersebut kita mendapkan nilai suatu tempat berdasarkan komentar/posting di media social. Dengan teorema Naive Bayes merupakan metode yang dikembangkan sebagai pendekatan dalam estimasi kelas untuk suatu dokumen. Teorema naive bayes juga menganggap suatu dokumen sebagai kumpulan fitur yang membentuknya. Dengan pemikiran seperti ini, proses klasifikasinya akan membutuhkan data training yang cukup banyak agar hasilnya akurat. Keuntungan lainnya dengan Naive Bayes efiesien dalam proses komputasi dan mudah untuk ditafsirkan menurut Kumar & Husain (2014, hal 14). Fase pembelajaran tahap dimana dokumen dilakukan ketika Hasil Processing melalui proses pembelajaran. Dari tahap ini digunakan untuk cari nilai probalistik untuk dapat data training menurut Lestari, Dharma, dan Agung (2013, hal.1 ). 18 2.4. JAVA Java adalah suatu teknologi di dunia software yang merupakan suatubahasa pemrograman, dan sekaligus suatu platform. Sebagai bahasa pemrograman,Java dikenal sebagai bahasa pemrograman tingkat tinggi. Java mudah dipelajari,terutama bagi programmer yang telah mengenal C/C++. Java merupakan bahasapemrograman berorientasi objek yang merupakan pemrograman masadepan. Sebagai bahasa pemrograman Java dirancang menjadi handal dan aman. Javajuga dirancang agar dapat dijalankan di semua platform, dan juga dirancang untukmenghasilkan aplikasi-aplikasi dengan performansi yang terbaik, seperti aplikasidatabase Oracle 8i/9i yang core-nya dibangun menggunakan bahasa pemrogramanJava. Sedangkan Java bersifat neutral architecture, karena Java Compiler yangdigunakan untuk mengkompilasi kode program Java dirancang untuk menghasilkankode yang netral terhadap semua arsitektur perangkat keras.Sebagai sebuah platform, Java terdiri atas dua bagian utama, yaitu: 1. Java Virtual Machine (JVM) 2. Java Application Programming Interface (Java API) Sun membagi arsitektur Java membagi tiga bagian, yaitu: 1. J2EE (Java 2 Enterprise Edition) 2. J2SE (Java 2 Second Edition) 3. J2ME (Java 2 Micro Edition) 19 2.4.1 Java J2EE(Java 2 Enterprise Edition) J2EE adalah kelompok dari beberapa API (Application Programming Interface) dari Java dan teknologi selain Java. J2EE dirancang untuk membuat aplikasi yang rumit. J2EE sering dianggap sebagai middle-ware atau teknologi yang berjalan di server, namun sebenarnya J2EE tidak hanya terbatas untuk itu. Faktanya J2EE juga mencakup teknologi yang dapat digunakan disemua lapisan dari sebuah 20ymbol informasi. Implementasi J2EE menyediakan kelas dasar dan API dari Java yang mendukung pengembangan dan rutin standard untuk aplikasi client maupun server, termasuk aplikasi yang berjalan di web browser. Untuk aplikasi berbasis web, aplikasi 20ymbol tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi. 2.4.2 Java J2SE(Java 2 Standard Edition) Aplikasi yang dibuat dan dikembangkan penulis dalam penulisan ini menggunakan bahasa pemrograman berbasis Java 2 Standard Edition (lebih dikenal dengan J2SE). Pada bagian ini, penulis akan menjelaskan dasar-dasar J2SE, meliputi pengenalan J2SE dan komponen pada J2SE. J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object-oriented programming.. Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian dari JRE, yaitu: d Plug-in, yang memungkinkan menjalankan applet di browser dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet dan aplikasi. 2. Java Development Kit (JDK) Java Development Kit 20 (JDK) merupakan perangkat lunak yang digunakan untuk menajemen dan membangun berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala sesuatu yang ada di JRE ditambahkan compiler dan debugger yang diperlukan untuk mengembangkan applet dan aplikasi 2.4.3 Java J2ME(Java 2 Micro Edition) J2ME adalah lingkungan pengembangan yang dirancang untuk meletakan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik pada sebuah perangkat, maka belum tentu juga berfungsi baik pada perangkat yang lainnya. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi desktop yang biasanya lebih kecil dibandingkan perangkat 21ymbol21n desktop. J2ME biasa digunakan pada telepon selular, pager, personal digital assistants (PDA) dan sejenisnya. J2ME adalah bagian dari J2SE, karena itu tidak semua librabry yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus 2.5. Flowchart Adalah Bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Flowchart merupakan cara penyajian dari suatu algoritma . Tujuan Utama dari penggunaan Flowchart adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhanna. 21 Dalam menggambarkan program Flowchartl.Berikut ini adalah gambar dari simbol standar yang digunakan pada program Flowchart Berikut adalah symbol dalam Flowchart: Table 2.3 Tabel Symbol pada Flowchart Symbol Arti Proses Input Output Keterangan Pengujian Pemberian Nilai Awal Awal/Akhir Program Konektor pada satu halaman Konektor pada halaman lain Pengolahan yang tidak dilakukan oleh komputer 22 Arah 23