[new] makalah text mining

27
MAKALAH PENGANTAR DATA MINING WORD CLOUD OF CORRUPTION ERADICATION COMMISSION (Studi kasus : Akun twitter Komisi Pemberantasan Korupsi @KPK_RI) Disusun Oleh: Arkhamsiagustinah 11611083 UNIVERSITAS ISLAM INDONESIA JURUSAN STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM YOGYAKARTA

Upload: arkhaamsiia-gusstiinaa

Post on 20-Dec-2015

98 views

Category:

Documents


18 download

DESCRIPTION

Makalah Text Mining

TRANSCRIPT

Page 1: [New] Makalah Text Mining

MAKALAH PENGANTAR DATA MINING

WORD CLOUD OF CORRUPTION ERADICATION COMMISSION (Studi kasus : Akun twitter Komisi Pemberantasan Korupsi @KPK_RI)

Disusun Oleh:

Arkhamsiagustinah 11611083

UNIVERSITAS ISLAM INDONESIA

JURUSAN STATISTIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

YOGYAKARTA

2015

Page 2: [New] Makalah Text Mining

WORD CLOUD OF CORRUPTION ERADICATION COMMISSION

1Arkhamsiagustinah (11611083)

1Jurusan Statistika, Universitas Islam Indonesia

[email protected]

ABSTRAK

Word cloud merupakan visualisasi kata yang pada umumnya merupakan keyword dari sebuah website, akun, dll. Word cloud dapat digunakan untuk mengetahui kata apa yang paling sering muncul pada suatu akun twitter. Prinsip dari word cloud ini adalah memvisualisasikan kata berdasarkan kata dengan intensitas penggunaan tertinggi hingga terendah. Penerapan metode data mining word cloud pada akun twitter resmi KPK ini bertujuan untuk menggali dan mengetahui pola kata-kata yang paling umum di gunakan oleh akun twitter resmi KPK. Berdasarkan uraian tersebut, penulis ingin membuat word cloud akun twitter resmi KPK untuk mengetahui kata apa yang paling sering muncul atau digunakan pada akun twitter resmi KPK tersebut. Oleh karena itu, dalam penelitian ini digunakan qplot, gplot, assosiasi, dan wordcloud untuk melihat pola-pola kata yang terbentuk berdasarkan akun twitter tersebut. Hasil penelitian ini adalah sebuah word cloud dari akun twitter resmi KPK dengan mayoritas kata yang paling sering muncul adalah korupsi, antikorupsi, savekpk, gratifikasi, dan kanalkpk.

Kata kunci : data mining, word cloud, analisis jaringan sosial , twitter, KPK

PENDAHULUAN

Latar Belakang

Media sosial merupakan sebuah media online dimana para penggunanya dapat dengan mudah berpartisipasi, berbagi, dan menciptakan isi meliputi blog, jejaring sosial, wiki, forum dan dunia virtual. Media sosial adalah penggunaan teknologi berbasis web dan mobile untuk mengubah komunikasi menjadi dialog interaktif. Andreas Kaplan dan Michael Haenlein mendefinisikan media sosial sebagai "sebuah kelompok aplikasi berbasis internet yang membangun di atas dasar ideologi dan teknologi Web 2.0 , dan yang memungkinkan penciptaan dan pertukaran konten yang dibuat pengguna" (Kaplan, Andreas M.; Michael Haenlein [2010] "Users of the world, unite! The challenges and opportunities of Social Media". Business Horizons 53(1): 59–68).

Jejaring sosial merupakan salah satu bagian dari media sosial yang digunakan Pada saat ini situs microblogging telah menjadi alat komunikasi yang sangat populer di kalangan pengguna internet. Dimana jutaan pesan yang muncul setiap hari di situs web populer yang menyediakan layanan microblogging seperti Twitter, Tumblr, dan Facebook (Alexa, 2013). Salah satu situs microblogging yang populer di Indonesia saat ini adalah Twitter. Twitter sebagai salah satu situs microblogging dengan pengguna lebih dari 500 juta dan 400 juta tweet perhari (Farber, 2012), memungkinkan pengguna untuk berbagi pesan menggunakan teks pendek disebut Tweet (Twitter, 2013). Twitter pada awalnya hanya digunakan secara personal. Namun seiring dengan berjalannya waktu, twitter telah digunakan untuk berbagai kepentingan yang salah satunya adalah sebagai media untuk melakukan update informasi dari berbagai instansi.

Saat ini twitter pengguna twitter berasal dari berbagai kalangan. Mulai dari remaja, orang dewasa, perusahaan, bahkan instansi pemerintahan. Terdapat beberapa instansi yang menggunakan media sosial twitter sebagai media untuk memperbaharui informasi terkait kegiatan ataupun kebijakan yang dikeluarkan oleh instansi tersebut, salah satunya adalah Komisi Pemberantasan Korupsi.

Komisi Pemberantasan Korupsi merupakan lembaga negara yang dibentuk dengan tujuan meningkatkan daya guna dan hasil guna terhadap upaya pemberantasan tindak pidana korupsi. KPK bersifat independen dan bebas dari pengaruh kekuasaan manapun dalam melaksanakan tugas dan wewenangnya. Komisi ini didirikan berdasarkan kepada Undang-Undang Republik Indonesia Nomor 30 Tahun 2002 mengenai Komisi Pemberantasan Tindak Pidana Korupsi. 

Page 3: [New] Makalah Text Mining

KPK menjadi salah satu lembaga yang sangat produktif sejak awal terbentuk. Banyak kasus-kasus korupsi yang berhasil diungkap melalui KPK, mulai dari korupsi dengan lingkup kecil hingga korupsi yang melibatkan pejabat-pejabat tinggi di Indonesia. Koordinator Bidang Hukum dan Peradilan ICW, Emerson Juntho mengatakan, keberadaan lembaga antikorupsi KPK telah memberikan warna tersendiri bagi upaya pemberantasan korupsi di Indonesia. Setidaknya telah ada 11 prestasi besar yang telah dilakukan oleh KPK menurut ICW.

Pertama keberhasilan pada tingkat penuntutan mencapai 100 persen. Prestasi selanjutnya, KPK berhasil menjerat tiga menteri aktif di era pemerintahan SBY. Mereka yakni Andi Mallarangeng (eks Menpora), Jero Wacik (eks Menteri ESDM), dan Suryadharma Ali (eks Menteri Agama). Kemudian prestasi lainnya, KPK juga berhasil menjerat penegak hukum aktif, seperti perwira polisi alam kasus simulator SIM, Ketua MK dalam kasus dugaan suap penyelenggaraan pilkada, dan hakim adhoc Tipikor. KPK juga menjerat pimpinan partai politik aktif, yaitu Suryadharma Ali (PPP). Anas Urbaningrum (Partai Demokrat), dan Luthfi Hasan Ishaaq (PKS). Prestasi kelima, yakni dalam hal penyelamatan kerugian negara yang fantastis. Tercatat, sejak mulai beroperasi tahun 2004 hingga kini (akhir tahun 2014) KPK mengklaim telah menyelamatkan uang negara sebesar Rp249 triliun. Kemudian keenam, KPK sebagai pelopor aktif dalam operasi tangkap tangan (OTT) terhadap pelaku korupsi. Mereka yang menjadi korbannya yakni mantan Komisioner KPU, Mulyana W Kusumah, eks Ketua MK Akil Mochtar, bekas jaksa Urip Tri Gunawan, dan terakhir Annas Maamun yang menjabat sebagai Gubernur Riau. Ketujuh, KPK juga memelopori tuntutan pencabutan hak politik untuk pelaku korupsi, seperti terhadap terdakwa Luthfi Hasan Ishaaq, Ratu Atut Chosiyah, Akil Mochtar, dan Anas Urbaningrum. Kedelapan, KPK dinilai melakukan terobosan hukum menuntut pelaku korupsi dengan UU Korupsi dan UU TPPU. Sejumlah pelaku korupsi juga dijerat dengan UU TPPU, seperti Wa Ode Nurhayati, Djoko Susilo, Luthfi Hasan Ishaaq, Ade Swara, Tubagus Chaeri Wardana, dan Fuad Amin. Prestasi kesembilan KPK yakni audit keuangan KPK selalu menunjukkan opini wajar tanpa pengecualian dari Badan Pemeriksa Keuangan (BPK). Kemudian prestasi kesepuluh, KPK menasbihkan dirinya sebagai penerima penghargaan Ramon Magsasay pada tahun 2013. Pada predikat itu, KPK dianggap menjadi inspirasi pemberantasan praktik korupsi di Asia. Kesebelas, penangkapan Nazaruddin dan Anggoro Widjojo yang buronan di luar negeri. Seperti penangkapan tersangka KPK Nazaruddin yang ditangkap di Kolombia, Nunung Nurbaeti di Thailand, dan Anggoro Widjojo yang ditangkap di Tiongkok. Prestasi-prestasi tersebut telah mengisi pemberitaan-pemberitaan baik di media cetak, media elektronik, bahkan media sosial. Masyarakat sangat antusias dengan pemberitaan mengenai pejabat-pejabat besar yang berhasil di tangkap dan menjadi tersangka dalam kasus korupsi. Hal tersebut dikarenakan sebelum berdirinya lembaga antikorupsi, pejabat tinggi ataupun pengusaha besar dapat dengan mudah menghindar dari jerat hukum.

Hal yang cukup menarik perhatian belakangan ini adalah pemberian status tersangka pada Calon Kapolri yang ditunjuk oleh Presiden Jokowi, yaitu Budi Gunawan. Budi Gunawan ditetapkan KPK sebagai tersangka pada 13 Januari 2015, hanya berselang 4 hari dari ditetapkannya Budi Gunawan sebagai calon Kapolri yang diajukan kepada DPR-RI. Namun tidak lama kemudian, terjadi penangkapan wakil ketua KPK Bambang Wijayanto pada 23 Januari 2015. Berita ini menjadi salah satu topik yang menarik perhatian masyarakat, bahkan terdapat berbagai aksi yang mendukung KPK untuk tetap melakukan kegiatan antikorupsi dan menuntuk POLRI agar segera membebaskan Bambang Wijayanto. Masyarakat berpandangan bahwa ditangkapnya Bambang Wijayanto merupakan bagian dari pelemahan KPK karena telah memberikan status tersangka pada Calon Kapolri yang diajukan oleh Presiden Jokowi. Bahkan pada hari penangkapan wakil ketua KPK Bambang Wijayanto, Hashtag #SAVEKPK menjadi trending topic world wide (TTWW) pada media sosial twitter. Komisi Pemberantasan Korupsi sendiri telah menggunakan akun twitter sejak tahun 2010 dengan jumlah tweet lebih dari 8 ribu dan jumlah follower lebih dari 1 juta follower.

Oleh karena itu, dalam makalah ini penulis melakukan penelitian untuk mengetahui bagaimana mayoritas tanggapan yang diberikan oleh pihak KPK atas rasa simpatik yang ditunjukkan oleh masyarakat. Serta mengetahui topik apa yang sering di sampaikan atau diinformasikan oleh KPK melalui akun twitter @KPK_RI tersebut.

Rumusan Masalah dan Tujuan PenelitianPermasalahan pada penelitian ini adalah ingin mengetahui bagaimana cara melakukan analisis big data

yang berasal dari twitter, serta ingin mengetahui topik apa yang paling populer pada akun twitter Komisi Pemberantasan Korupsi (@KPK_RI). Sehingga dari penelitian ini, akan diketahui bagaimana cara melakukan analisis terhadap data berukuran besar yang berasal dari jejaring sosial twitter, serta topik apa yang belakangan ini paling populer dibicarakan pada akun twitter @KPK_RI.

KAJIAN PUSTAKA

Page 4: [New] Makalah Text Mining

Perangkat Lunak (software) RR adalah suatu kesatuan software yang terintegrasi dengan beberapa fasilitas untuk manipulasi,

perhitungan dan penampilan grafik yang handal. R berbasis pada bahasa pemrograman S, yang dikembangkan oleh AT&T Bell Laboratories (sekarang Lucent Technologies) pada akhir tahun ’70 an. R merupakan versi gratis dari bahasa S dari software (berbayar) yang sejenis yakni S-PLUS yang banyak digunakan para peneliti dan akademisi dalam melakukan kegiatan ilmiahnya. Pada awalnya, versi pertama R dibuat oleh Ross Ihaka and Robert Gentleman dari Universitas Auckland, namun selanjutnya R dikembangkan oleh tim yang disebut tim inti yang terdiri dari ahli statistik, ahli komputer & pemrograman, geografi, ekonomi dari institusi yang berbeda dari seluruh dunia yang mencoba membangun sebuah sistem (software) yang handal namun dengan biaya yang sangat murah.

twitteR PackagePaket twitteR merupakan paket yang dapt digunakan untuk memberikan akses ke Twitter API dalam

pemrograman R. Pengguna dapat membuat akses data Twitter dalam jumlah besar untuk data mining dan tugas-tugas lainnya. Paket ini ditujukan untuk dikombinasikan dengan paket ROAuth dikarenakan pada Maret 2013 Twitter API memerlukan penggunaan otentikasi OAuth. ROAuth merupakan bahasa R yang digunakan melalui paket twitter, dimana bahasa tersebut mampu mengekstrak informasi dari Twitter untuk tujuan Text Mining.

Media Sosial TwitterMedia sosial adalah media untuk interaksi sosial menggunakan teknik mudah dan dapat diperluas. Media

sosial menggunakan teknologi web untuk berkomunikasi melalui dialog yang interaktif. Andreas Kaplan dan Michael Haenlein (2010) juga mendefinisikan media sosial sebagai kelompok pada aplikasi internet yang dibangun dengan menggunakan fondasi teknologi web 2.0.

Twitter adalah sebuah micro-blogging atau blog mikro atau dapat dikatakan sebuah jejaring sosial seperti halnya Facebook. Twitter merupakan salah satu media sosial dengan konsep penyebaran informasi pesan secara singkat, padat dan real time di dalam kalimat kurang dari 140 karakter kepada pembacanya diseluruh dunia. Karena kandungan pesan yang singkat, Twitter dimasukkan dalam kategori microblog, yaitu sebuah media online yang memungkinkan penggunanya menuliskan informasi pesan secara singkat. Twitter didirikan oleh 3 orang yaitu Jack Dorsey, Biz Stone, dan Evan Williams di San Francisco dan go public pada Agustus 2006.

Text Mining Text Mining adalah suatu proses yang bertujuan untuk menemukan informasi atau tren terbaru yang

sebelumnya tidak terungkap, dengan memproses dan menganalisa data dalam jumlah besar. Dalam menganalisa sebagian atau keseluruhan unstructured text, text mining mencoba untuk mengasosiasikan satu bagian teks dengan yang lainnya berdasarkan aturan-aturan tertentu. Selain itu text mining juga diartikan sebagai kegiatan menambang data dari data yang berupa teks atau dokumen, dengan tujuan mencari kata-kata yang dapat mewakili apa yang ada dalam dokumen sehingga dapat dilakukan analisa keterhubungan antar dokumen. Langkah-langkah yang dilakukan dalam text mining adalah sebagai berikut:

Gambar 1.1 Tahapan dalam Text Mining Tokenizing

Proses ini memotong setiap kata dalam teks, dan mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf ‘a’ sampai ‘z’ yang diterima, sedangkan karakter selain huruf dihilangkan. Jadi hasil dari proses tokenizing adalah kata kata yang merupakan penyusun kalimat/string yang dimasukkan.

Page 5: [New] Makalah Text Mining

Gambar 1.2 Contoh tahap tokenizing Filtering

Pada tahap ini dilakukan proses filter atau penyaringan kata hasil dari proses tokenizing, dimana kata yang tidak relevan dibuang. Proses ini menggunakan pendekatan stoplist. Yang termasuk stoplist adalah “yang”, “di”, “dari”, dan lain-lain.

Gambar 1.3 Contoh tahap filtering

StemmingStemming adalah proses untuk menggabungkan atau memecahkan setiap varian-varian suatu kata menjadi kata dasar. Stem (akar kata) adalah bagian dari akar yang tersisa setelah dihilangkan imbuhannya (awalan dan akhiran).

Gambar 1.4 Contoh tahap stemming

TaggingTagging adalah suatu proses mencari bentuk asal dari kata bentuk lampau. Tahap ini tidak digunakan pada teks berbahasa indonesia karena kata dalam bahasa indonesia tidak mempunyai bentuk lampau.

Gambar 1.5 Contoh tahap tagging

AnalizingPada tahap ini d ilakukan proses perhitungan bobot (w) dokumen agar diketahui seberapa jauh tingkat similaritas antara keyword yang dimasukkan dengan dokumen.

Word CloudWord Cloud merupakan satu diantara beberapa bentuk dari hasil analisis menggunakan metode text

mining. Word cloud dapat menampilkan kata yang paling sering muncul atau paling sering digunakan pada suatu web ataupun teks. Kata yang paling sering muncul akan memiliki ukuran yang lebih besar dari kata yang lain. Word Cloud sering digunakan untuk menyoroti istilah populer atau tren berdasarkan frekuensi penggunaan kata (PBC, 2013). Word Cloud merupakan pendekatan yang dapat menjelaskan pertanyaan penelitian dengan

Page 6: [New] Makalah Text Mining

sangat cepat dan mudah, kita dapat menjelajahi Word Cloud secara singkat dan dapat melakukan analisis yang komprehensif (Graham, I. Milligan, & S. Weingart).

Text ClusteringMenurut Fung, (2001), clustering merupakan proses pengelompokan isi berdasarkan informasi fuzzy,

seperti kata-kata atau frase kata dalam satu set dokumen. Dengan kata lain, clustering adalah proses pengelompokan set objek fisik atau abstrak ke dalam kelas objek yang sama.

K-Means ClusteringAlgoritma K‐Means adalah algoritma clustering yang paling popular danbanyak digunakan dalam dunia

industri. Algoritma ini disusun atas dasar ide yang sederhana. Ada awalnya ditentukan berapa cluster yang akandibentuk. Sebarang obyek atau elemen pertama dalam cluster dapat dipilih untuk dijadikan sebagai titik tengah (centroid point) cluster. Algoritma K‐Means selanjutnya akan melakukan pengulangan langkah‐langkah berikut sampai terjadi kestabilan (tidak ada obyek yang dapat dipindahkan):1. menentukan koordinat titik tengah setiap cluster,2. menentukan jarak setiap obyek terhadap koordinat titik tengah,3. mengelompokkan obyek‐obyek tersebut berdasarkan pada jarak minimumnyaKelebihan dan Kelemahan algoritma K‐means Algoritma K‐means dinilai cukup efisien, yang ditunjukkan dengan kompleksitasnya O(tkn), dengan catatan n adalah banyaknya obyek data, k adalah jumlah cluster yang dibentuk, dan t banyaknya iterasi. Biasanya, nilai k dan t jauh lebih kecil daripada nilai n. Selain itu, dalam iterasinya, algoritma ini akan berhenti dalam kondisi optimum lokal. Hal yang dianggap sebagai kelemahan algoritma ini adalah adanya keharusan menetukan banyaknya cluster yang akan dibentuk, hanya dapat digunakan dalam data yang mean‐nya dapat ditentukan, dan tidak mampu menangani data yang mempunyai penyimpangan‐penyimpangan (noisy data dan outlier). Berkhin menyebutkan beberapa kelemahan algoritma K‐means adalah: (1) sangat bergantung pada pemilihan nilai awal centroid, (2) tidak jelas berapa banyak cluster k yang terbaik,(3) hanya bekerja pada atribut numerik

REFRENSI PENELITIAN France Cheong dan Christopher Cheong melakukan analisis pada twitter mengenai banjir yang terjadi di

Australia sepanjang tahun 2010-2011. Penelitian ini dilakukan untuk melihat seberapa besar peran pemerintah dalam memberikan update informasi mengenai bencana banjir tersebut. Berdasarkan hasil penelitian, masyarakat umum dan relawan-relawan banjir merupakan pihak yang cukup berperan dalam melakukan update informasi seputar banjir dan bantuan-bantuan.

Marion E. Hambriek dkk melakukan analisis terhadap akun twitter atlit untuk melihat tema apa yang paling sering dikomunikasikan antara atlit dengan penggemar mereka. Pada penelitian ini ditemukan ternyata atlit lebih sering membicarakan hal diluar bidang ke atlit annya, sedangkan hanya 15% dari tweets mereka yang membicarakan seputar olahraga profesional yang mereka lakukan.

Jordan Johnston melakukan penelitian yang berkaitan dengan isi tweets dari tim NBA dengan tim NFL. Penelitian tersebut membagi tweets menjadi enam kategori, yaitu keterlibatan, informasi, statistik tim, iklan, keterlibatan pemain, dan promosi iklan. Hasil penelitian ini menampilkan dengan jelas perbedaan strategi dari kedua tim. Tim NBA melakukan posting sebanyak dua kali mengenai dalam hal isi posting yang sama dengan tim NFL. Sehingga terlihat bahwa tim NBA sangat memanfaatkan keberadaan twitter untuk memperlihatkan eksistensinya dengan melakukan posting yang lebih sering dibandingkan tim NFL.

Desai dkk melakukan penelitian tentang konferensi tahunan yang dilakukan untuk memberikan informasi terkait penyakit ginjal kepada masyarakat. Setelah pelaksanaan konferensi tahunan pada tahun 2011, Desai dkk ingin mengetahui respon dari masyarakat melalui analisis menggunakan metode sentimen. Berdasarkan hasil analisis, tweets yang berkaitan dengan konferensi 2011 mayoritas berisi tentang tweets yang positif dan bersifat edukatif.

METODE PENELITIAN

Penelitian ini merupakan penelitian kualitatif, yang dilakukan untuk mengetahui kicauan (tweet) serta topik-topik yang sering dikicaukan oleh Komisi Pemberantasan Korupsi dari akun twitternya (@KPK_RI). Pengolahan data penelitian menggunakan bantuan software open source R dengan tambahan paket “tm”, “twitteR” dan “wordcloud”.

Populasi Penelitian

Page 7: [New] Makalah Text Mining

Populasi dari penelitian ini adalah kicauan-kicauan (tweets) dari akun resmi Komisi Pemberantasan Korupsi (@KPK_RI).

Sampel dan Teknik Pengambilan Sampel PenelitianTweets yang diambil berasal dari akun Komisi Pemberantasan Korupsi (@KPK_RI), yaitu sebanyak

500 kicauan (tweet) teratas sampai dengan 25 Januari 2015.

Data PenelitianData yang digunakan adalah data primer yang dikumpulkan dari tweets @KPK_RI. Data diambil

menggunakan sofware R dengan perintah sebagai berikut :userTimeline("KPK_RI", n=500,cainfo="cacert.pem")Banyaknya jumlah tweet yang diambil adalah sebanyak 500 tweet teratas.

Metode Pengumpulan Data PenelitianAdapun metode pengumpulan data adalah sebagai berikut :Mengambil data kicauan (tweets) yang berasal dari akun resmi (Official user Timeline) @KPK_RI.

TAHAPAN ANALISIS DATASecara umum, tahapan melakukan analisis text mining adalah sebagai berikut :1. Mengambil Teks dari TwitterTweets dapat diambil dari twitter dengan peritah userTimeline(), atau searchTwitter() dalam paket twitteR (Gentry, 2012). Penelitian ini menggunakan perintah userTimeline() karena yang ingin diteliti adalah timeline dari akun twitter @KPK_RI.> library(twitteR)> load("twitteR_credentials")> registerTwitterOAuth(twitCred)> # mengambil 500 tweets teratas milik akun resmi KPK> rdmTweets <- userTimeline("KPK_RI", n=500,cainfo="cacert.pem")

2. Transformasi TeksTeks yang telah diperoleh dari akun twitter, diubah menjadi data frame untuk membentuk korpus yang

merupakan kumpulan dari dokumen teks. Kemudian korpus dapat diproses dengan fungsi yang disediakan pada paket tm (Feinerer, 2012)# Melakukan convert kicauan (tweets) ke data frame

>df <- do.call("rbind", lapply(rdmTweets, as.data.frame))

>dim(df)

>library(tm)

># # Melakukan convert kicauan (tweets) ke data frame

>df <- do.call("rbind", lapply(rdmTweets, as.data.frame))

>dim(df)

>library(tm)

># membangun sebuah corpus, dan menspesifikasikannya kedalam bentuk vektor karakter

>myCorpus <- Corpus(VectorSource(df$text))

Setelah melakukan spesifikasi kata kedalam bentuk vektor, langkah selanjutnya mengubah kata menjadi kata turunan, menghilangkan tanda baca, menghapus angka, URL, menghilangkan beberapa kata yang dianggap tidak penting menggunakan perintah stopword.> # konversi menjadi kata turunan (inggris)> myCorpus <- tm_map(myCorpus, tolower)> # menghapus tanda baca> myCorpus <- tm_map(myCorpus, removePunctuation)

Page 8: [New] Makalah Text Mining

> # menghapus angka> myCorpus <- tm_map(myCorpus, removeNumbers)> # menhgapus URL> removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)> myCorpus <- tm_map(myCorpus, removeURL)> # menambahkan satu stopword : " KPK "> myStopwords <- c(stopwords('english'), "KPK")>myStopwords<- c(stopwords('english'),"teman","kamu","lagi","event","kpd", "jangan","ala","sesuai","konser","lengkapnya","sandiwararadiokpk","bagi",

"gsp","grha","melalui","faks","atas","per","terus","anak","setiap","soal",

"sedikit","serta","adl","topeng","ismylagu","sejak","akun","dinding","terulang","tentang","download","sendiri","kantor","siaran","mengikuti","silakan","ada","tehadap","berlangsung","ala","sejak","lalu","jgn","atas","topping","gdkkpk","laporkan","oleh","gelar","adalah","dengan","semua","satunya","cari","selama","sesuai","banyak","haki","bisa","eps","waket","brsm","pendapatmu","sebelum","adik","didik","bagi","sampai","dimiliki","melakukan","disini","tanpa","paling","ttg","disini","akan","yuk","didownload","lengkap","menutup","pada","mari","dapat","ide","klik","jam","hari","juga","saya","kerja","grati","bagaimana","film","masy","jam","bukan","anda","lewat","secara","bagaimana","mudah","sama","dihadiri","sdh","aku","cara","lain","sore","dari","ini","kepada","siang","masuk","des","umur","karena","dua","barang","lebih","gratis","desember","masih","berlaku","terupdate","lagu","bila","games","dijamin","teater","siswa","memiliki","lakukan","saja","sbg","tangis","lakukan","ayo","kami","buat","buku","benar","bareng","luar","pagi","rencana","utk","live","unduh","satu","lelang","jadwal","lanjut","dikenakan","bersama","tahun","saat","selamat","gandrik","duma","tetapkan","resolusimu","langsung","email","bahas","untuk","sebagai","bentuk","kita","streaming","seminar","ikut","akhir","tata","dukung","bag","agen","timeline","tetap","terkait","rangka","baik","beberapa","para","ibu","sekarang","tema","menurut","pelangi","rapat","telp","nanti","pasal","salah","bersih","ikuti","dan","starjogja","ugm","jogja","tahun","yang","kita","dalam","datang","org","mrpkn","tlpn","unduh","diterima","beberapa","langsung","pandanganmu","harga","streaming","hingga","apa","namun","siap","agen","hashtag","tersebut","dalam","gropyokankorupsi","rangkamenjelang","rangka","menjelang","informasi","fasilitas","kpk","berikut","info","tahunkpk","sistem","salam","lihat","sangat","lanjutan","wajib","pihak","tidak","perjalanan","wib","bahwa","kembali","orang","anggota","tidak","lomba","festiv","berita","lomba","stream","pkl","pernah","made","memberikan","workshop","besok","pandu","gspugmpublik","gspugum","beraktivita","dilindungi","memberikan","demi","sms","musik","selalu","nonton","media","renaksi","masyarakattelp","mengudara","sebesar","narasumb","seputar","booth","gerakan","jumlah","nurani","kanal","sbha","itu","peran","calon","kws","narasumber","pintu","saksikan","kegiatan","dimulai","beraktivitas","lawan","kanal","share","menarik","umarisumay","gedung","sudah","daerah","kerahasiaan","terhadap","pukul","talkshow","uang","jujurbarengan","jujur","barengan","lawan","kanal","daerah","sertakan","disampaikan","sesi","resmi","biaya","kws","capaian","yogyakarta","perempuan","beraksi","acara","tpk","tki","riau","jika","mau","podcast","tdk","festivalantikorupsi","semakin","video","akses","stand","seorang","antara","hasil","menarik","mading","adl","dulu","maka","festival","lupa","dalam","diatur","menjadi","yaitu","terimakasih","peringatan","keras","aksi","identitas","seumur","menjadi","sekitar","atau","ini","itu","akan","bahwa","di","kridosono","kajian","pembangunan","adlh","simak","agenda","diri","tahu","kasus","pengaduanat","dilakukan","matanajwa","thd","bbrp","gspugm","berhasil","dprd","menolak","streamingnya","massal","peringati","dlm","via","telah","penyelenggara","kreatif","diri","perkara","dgn","dilakukan","rangkaian","korsup","publik","negeri")

> # menghapus kata sesuai stopword >myCorpus <- tm_map(myCorpus, removeWords, myStopwords)

Page 9: [New] Makalah Text Mining

3. Stemming wordStemming merupakan proses yang dilakukan untuk mengubah sebuah kata turunan menjadi kata dasarnya

dengan menggunakan aturan-aturan tertentu. Contohnya kata “ditunjuk” menjadi kata “menunjuk”, kemudian kata “menunjuk” akan di-stem menjadi kata dasarnya yaitu “tunjuk”.> # menyimpan salinan korpus untuk digunakan sebagai kamus kata untuk stem completion> myCorpusCopy <- myCorpus> # stem words> myCorpus <- tm_map(myCorpus, stemDocument)

Setelah itu, menggunakan stemCompletion () untuk menyelesaikan stem dengan korpus yang belum di-stem, myCorpusCopy sebagai kamus. Dengan pengaturan default, dibutuhkan kecocokan yang paling sering dalam kamus sebagai completion. ># stem completion-->perubhn kata dasar

>myCorpus <- tm_map(myCorpus, stemCompletion, dictionary=myCorpusCopy)

4. Building Terms-Document Matrix (TDM) Frequent Terms and Associations

Perintah yang digunakan untuk melihat kata populer (terbanyak) dan asosiasi antar kata adalah findFreqTerms()> # melihat frekuensi terms dengan frekuensi minimal 10 dari TDM > findFreqTerms(myTdm, lowfreq=10)

Untuk menampilkan kata-kata yang paling populer dari akun resmi @KPK_RI, dapat dibentuk sebuah barplot dari TDM. Berdasarkan terms matriks dokumen (TDM) dapat diperoleh frekuensi terms dengan rowSums(). Kemudian dapat dipilih memunculkan beberapa dokumen dan menampilkannya dalam bentuk barplot menggunakan paket ggplot2 (Wickham, 2009).> termFrequency <- rowSums(as.matrix(myTdm))> termFrequency <- subset(termFrequency, termFrequency>=10)> library(ggplot2)> qplot(names(termFrequency), termFrequency, geom="bar", xlab="Terms")+ coord_flip()> barplot(termFrequency, las=2)

5. Membuat WordCloudSetelah membuat Tdm, dapat juga menampilkan kata-kata penting dengan menggunakan wordcloud.

Wordcloud dapat dengan mudah dibentuk dengan menggunakan paket wordcloud (Fellows, 2012).> library(wordcloud)> m <- as.matrix(myTdm)> # menghitung frekuensi kata dan mengurutkannya berdasarkan frekuensi terbanyak> wordFreq <- sort(rowSums(m), decreasing=TRUE)> # word cloud> set.seed(375) # to make it reproducible> grayLevels <- gray( (wordFreq+10) / (max(wordFreq)+10) )> wordcloud(words=names(wordFreq), freq=wordFreq, min.freq=3, random.order=F,+ colors=grayLevels)

6. Membuat Assosiasi KataMencari assosiasi tertinggi antar kata dapat dilakukan dengan menggunakan fungsi findAssocs().

Berikut contoh untuk mencari kata yang berasosiasi dengan “korupsi”, “antikorupsi”, “gratifikasi”, “savekpk”, dan “kanalkpk”.># Kata apa yang berasosiasi dengan "korupsi" "antikorupsi" "gratifikasi" "savekpk" "kanalkpk"?

>findAssocs(myTdm, 'korupsi', 0.20)

>findAssocs(myTdm, 'antikorupsi', 0.20)

>findAssocs(myTdm, 'gratifikasi', 0.20)

Page 10: [New] Makalah Text Mining

>findAssocs(myTdm, 'savekpk', 0.05)

>findAssocs(myTdm, 'kanalkpk', 0.19)

Pada sintaks diatas, tweet “savekpk” mencari kata terkait dengan korelasi kecil dikarenakan mayoritas tweet dengan kata “savekpk” berdiri sendiri tanpa ada kata lanjutan. Sehingga korelasinya lebih kecil bila dibandingkan dengan kata yang lainnya.

7. Melakukan Klastering KataKlastering pada penelitian ini menggunakan hierarchical clustering. Karena pada langkah sebelumnya

kata-kata yang jarang digunakan telah dihapus maka, pada plot clustering tidak terdapat banyak kata. Jarak antar kata dihitung dengan perintah dist(). Kemudian, kata yang telah diklaster dengan hclust() dan dendogram dibuat menjadi beberapa klaster. > # menghapus kata yang jarang digunakan> myTdm2 <- removeSparseTerms(myTdm, sparse=0.95)> m2 <- as.matrix(myTdm2)> # cluster terms> distMatrix <- dist(scale(m2))> fit <- hclust(distMatrix, method="ward")> plot(fit)> # dibuat menjadi 3 klaster> rect.hclust(fit, k=3)> (groups <- cutree(fit, k=3))

8. Melakukan Klastering Tweets Dengan Algoritma K-Means> # transpose the matrix to cluster documents (tweets)> m3 <- t(m2)> # set a fixed random seed> set.seed(122)> # k-means clustering of tweets> k <- 2> kmeansResult <- kmeans(m3, k)> # cluster centers> round(kmeansResult$centers, digits=3)> # See top Three word in each cluster> for (i in 1:k) {> cat(paste("cluster ", i, ": ", sep=""))> s <- sort(kmeansResult$centers[i,], decreasing=T)> cat(names(s)[1:3], "\n")> # print the tweets of every cluster> # print(rdmTweets[which(kmeansResult$cluster==i)])}

HASIL DAN PEMBAHASAN

Berikut merupakan histogram dari kata yang terdapat pada akun twitter @KPK_RI :

Page 11: [New] Makalah Text Mining

Gambar 2.1 Kata populer pada akun twitter @KPK_RIHistogram diatas memperlihatkan bahwa peringkat kata yang paling sering digunakan adalah, “korupsi”, “antikorupsi”, “gratifikasi”, “savekpk”, ”kanalkpk”, “pemberantasan”, dst.

Word cloud akun twitter @KPK_RI di bawah ini menggunakan kata dengan minimal frequency (minimal banyaknya kata yang akan muncul di wordcloud) sebanyak sepuluh.

Gambar 2.1 WordCloud @KPK_RI

Dari word cloud @KPK_RI di atas, dapat dilihat bahwa topik atau kata yang paling sering dikicaukan oleh akun twitter resmi milik KPK adalah kata korupsi, antikorupsi, gratifikasi, kanalkpk, dan savekpk.

Gambar 2.2 Asosiasi kata “korupsi”

Page 12: [New] Makalah Text Mining

Dengan korelasi lebih dari 0,19 (minimal 0,20), dapat Dilihat bahwa kata “korupsi” paling kuat berasosiasi dengan kata pemberantasan (0,42), berantas (0,32), cegah (0,29), pencegahan (0,23) dst. Dari asosiasi tersebut, dapat tergambarkan bahwa KPK saat ini sedang dalam masa menggalakkan atau fokus untuk pemberantasan, pencegahan, penindakan korupsi dengan berbagai strategi.

Gambar 2.3 Asosiasi kata “antikorupsi”

Dengan korelasi diatas 0,20, kata “antikorupsi” berasosiasi dengan beberapa kata seperti kata bogorkampanye, digelar, dimanapun, dipadati, indernasional, dst. Asosiasi tersebut menggambarkan bahwa banyak masyarakat yang mendukung gerakan antikorupsi dengan mengadakan kampanye-kampanye dibeberapa daerah. Selain itu gerakan antikorupsi yang dilakukan oleh KPK juga telah menarik perhatian kalangan internasional, dimana menurut isi kicauan (tweet) KPK, salah satu negara yang tertarik dengan kegiatan KPK adalah negara Australia.

Gambar 2.4 Asosiasi kata “kanalkpk”

Kanalkpk merupakan salah satu bentuk sarana yang disediakan oleh KPK sebagai salah satu cara agar masyarakat dapat belajar mengenai antikorupsi dengan cara yang lebih seru. Didalam kanalkpk terdapat Radio dan TV streaming KPK sebagai media informasi & edukasi antikorupsi yang berisi bincang-bincang menarik serta live streaming sidang tipikor. Berdasarkan korelasi diatas 0,19 kata “kanalkpk” berasosiasi dengan beberapa kata. Diantaranya adalah kata sidang, terdakwa, kanalnusantarapagi, saksi, pembacaan, pemeriksaan, dst. Kata-kata tersebut menggambarkan bahwa akun @KPK_RI cukup sering melakukan retweet terkait dengan “kanalkpk” sehingga kata “kanalkpk” menjadi salah satu kata yang populer pada akun twitter @KPK_RI. Dimana pada “kanalkpk” terdapat informasi seputar bincang-bincang antikorupsi, live streaming sidang dipikor, dll sebagai bentuk transparansi kegiatan yang dilakukan KPK.

Page 13: [New] Makalah Text Mining

Gambar 2.5 Asosiasi kata “gratifikasi”

Dengan korelasi lebih dari sama dengan 0.20, kata-kata yang berasosiasi dengan kata “gratifikasi” adalah kata aplikasi, emodul, lambat, mengalami, peristiwa, dst. Kata-kata yang berasosiasi dengan kata “gratifikasi” diatas merupakan bagian dari program e-learning gratifikasi yang dilakukan KPK. KPK melakukan peluncuran e-modul Gratifikasi sebagai bentok sosialisasi mengenai berbagai bentuk gratifikasi yang ada dimasyarakat.

Gambar 2.6 Asosiasi kata “savekpk”

Berdasarkan korelasi diatas 0,05 diperoleh beberapakata yang berasosiasi dengn kata “savekpk”. Terdapt sedikit kata yang berasosiasi bahkan dengan korelasi dibawah 0,1. Hal ini dikarenakan kata “savekpk” pada kicauan akun @KPK_RI mayoritas hanya berdiri sendiri, dan berbunyi #savekpk. Hanya beberapa kicauan saja yang melibatkan beberapa kata seperti “putarkan”, “sesaat”, ”kasih”, ”malam”, ”penahanan”, “pendukung”, ”widjojanto”, dan ”konferensi”. Kata-kata tersebut berkaitan erat dengan penangkapan wakil ketua KPK Bambang Widjojanto pada tanggal 23 Jenuari 2015.

Gambar 2.7 Clustering @KPK_RI

Dari output di atas, dapat dilihat bahwa terbentu 3 klaster. Klaster pertama terdiri dari topik “korupsi”, klaster kedua terdiri dari topik “antikorupsi”, dan klaster ketiga terdiri dari topik “gratifikasi”, “kanalkpk”, “pemberantasan”, dan “savekpk”.

Page 14: [New] Makalah Text Mining

KESIMPULAN DAN SARAN

KesimpulanData yang berasal dari jejaring sosial twitter dapat dianalisis dengan menggunakan metode data mining,

salah satunya adalah text mining. Penggunaan metode text mining pada data twitter dapat dianalisis dengan menggunakan perangkat lunak (software) yang berbasis open source, salah satunya dengan menggunakan software R. Terdapat beberapa paket yang digunakan dalam analisis menggunakan software R, antara lain paket twitteR, tm, wordcloud.

Berdasarkan hasil analisis, diketahui bahwa KPK merupakan salah satu lembaga yang cukup aktif dalam penggunaan jejaring sosial twitter. Hal ini terlihat dari rutinnya KPK dalam melakukan update informasi. Selain itu KPK juga memanfaatkan jejaring sosial twitter sebagai media edukasi antikorupsi dan transparansi informasi bahkan sidang TIPIKOR disediakan dalam bentuk tayangan streaming.

Berdasarkan kata-kata yang populer atau sering di sampaikan melalui twitter @KPK_RI, terlihat bahwa kata “korupsi” , “antikorupsi”, “gratifikasi” merupakan kata yang paling sering ditampilkan. KPK dalam akun twitter @KPK_RI juga mengajak masyarakat untuk menyadari bahwa korupsi perlu menjadi perhatian bersama. Karena pengawasan terhadap korupsi tidak cukup hanya dilakukan oleh KPK saja, namun juga diperlukan perhatian dan pengawasan dari masyarakat. Hal ini tergambarkan dengan kata “savekpk” yang juga menjadi salah satu kata populer di akun @KPK_RI.

SaranAdapun saran untuk tulisan ini adalah sebagai berikut :1. Ketika melakukan stopword atau penghapusan kata yang tidak penting, akan lebih baik jika menyimak isi

tweets (jika yang diteliti adalah akun twitter) agar penghapusan kata lebih mendasar. Karena dikhawatirkan kata yang dihapus merupakan kata yang memiliki arti atau maksud penting.

2. Saran untuk penelitian selanjutnya, agar dapat lebih spesifik dalam analisis akun twitter. Contohnya dengan membedakan antara kata hasil tweets langsung dari akun, kata hasil Retweet oleh admin akun, serta kata yang merupakan bagian dari replay oleh admin akun.

REFERENSI

D.P Noviah and W.Edi (2014) “Analisis Sentimen Twitter untuk Teks Berbahasa Indonesia dengan Maximum Entropy dan Support Vector Machine”. [Online] Available from: http://jurnal.ugm.ac.id/ijccs/article/view/3499/3025. [Accesed: January 23, 2015]

Datla, et al. (2014) “Application of Text Mining in Tweets Using SAS and R, and Analysis of Change in Sentiments toward Xbox One One Using SAS Sentiment Analysis Studio”. http://support.sas.com/resources/papers/proceedings14/1775-2014.pdf. [Accesed: January 23, 2015].

Mosley, Roosevelt C. (2012) “Social Media Analytics:

Data Mining Applied to Insurance Twitter Posts”. http://www.casact.org/pubs/forum/12wforumpt2/mosley.pdf. [Accesed: January 23, 2015].

Diplo (2014) “Text-mining of the IGF2014 Opening Session:An Overview”. [Online] Available from: http://www.diplomacy.edu/sites/default/files/IGF2014%20Opening%20Session%20Analysis.pdf. [Accesed: January 23, 2015].

Mafrur, et al. (2014) “Twitter Mining: The Case of 2014 Indonesian Legislative Elections”. [Online] Available from: http://www.sersc.org/journals/IJSEIA/vol8_no10_2014/17.pdf. [Accesed: January 23, 2015].

Ghazizadeh, et al. (2012) “Consumer Complaints and Traffic Fatalities: Insights from the NHTSA Vehicle Owner’s Complaint Database”. [Online] Available from: http://csl.engr.wisc.edu/Ghazizadeh%202012%20Consumer%20Complaints%20and%20Traffic%20Fatalities.pdf. [Accesed: January 23, 2015].

M.RAVICHANDRAN, G.KULANTHAIVEL (2014) “Twitter Sentiment Mining (Tsm) Framework Based Learners Emotional State Classification and Visualization For E-Learning System”. [Online] Available from: http://www.jatit.org/volumes/Vol69No1/11Vol69No1.pdf. [Accesed: January 23, 2015].

Page 15: [New] Makalah Text Mining

Chung, Sang and Liu, S. (2011) “Predicting Stock Market Fluctuations from Twitter”. [Online] Available from: http://www.stat.berkeley.edu/~aldous/157/Old_Projects/Sang_Chung_Sandy_Liu.pdf. [Accesed: January 25, 2015].

Kumar, S., Morstatter, F., and Liu, H. (2013) “Twitter Data Analytics”. [Online] Available from: http://tweettracker.fulton.asu.edu/tda/TwitterDataAnalytics.pdf. [Accesed: January 25, 2015].

Indoberita. [Online] Available from: http://www.indoberita.com/2015/01/109186/budi-gunawan-diangkat-presiden-jokowi-sebagai-calon-kapolri/. [Accesed: January 26, 2015].

News Okezone. [Online] Available from: http://news.okezone.com/read/2014/12/29/337/1085140/11-prestasi-kpk-versi-icw. [Accesed: January 26, 2015].

Chandra, D. “Media Sosial”. [Online] Available from: http://library.binus.ac.id/eColls/eThesisdoc/Bab2/David%20Chandra%202.pdf. [Accesed: January 26, 2015].

_.“Media Sosial” (2011). [Online] Available from: http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2011-2-00902-MC%20Bab2001.pdf. [Accesed: January 26, 2015].

_. “Wordcloud in R” (2011) [Online] Available from: http://onertipaday.blogspot.jp/2011/07/word-cloud-in-r.html. [Accesed: January 27, 2015].

Thearling, Kurt (2012). “An Introduction to Data Mining”. Available from: http://www.thearling.com/text/dmwhite/dmwhite.htm. [Accesed: January 27, 2015].

Kaur, R., & Aggarwal, S. (2013). Techniques for Mining Text Documents. International Journal of Computer Applications (0975 – 8887) , Volume 66– No.18,.

Mooney, R. J. (2005). Text Mining with Information Extraction. Multilingualism and Electronic Language Management , 141-160.

Pal, Shankar K & Mitra, Pabitra. 2004. PatternRecognition algorithmsfor data mining. CRC Press.

William, Graham. 2005. “Data Mining Cluster”. [Online] Available from: http://datamining.anu.edu.au/student/math3346_2005/050809 ‐ maths3346 ‐ clusters ‐ 2x2.pdf . [Accesed: January 27, 2015].

Cheong, F., & Cheong, C. (2011). Social Media Data Mining: A Social Network Analysis Of Tweets During The 2010-2011 Australian Floods. PACIS 2011 , 46.

Hatta, A. e. (2012). Rancang Bangun Sistem Pengelolaan Dokumen-dokumen .

Kaur, R., & Aggarwal, S. (2013). Techniques for Mining Text Documents. International Journal of Computer Applications (0975 – 8887) , Volume 66– No.18,.

Lama, P. (2013). CLUSTERING SYSTEM BASED ON TEXT MINING USING THE K-MEANS ALGORITHM. Turku: TURKU UNIVERSITY OF APPLIED SCIENCES.

Mooney, R. J. (2005). Text Mining with Information Extraction. Multilingualism and Electronic Language Management , 141-160.

Mooney, R., & Nahm, U. Y. (2006). Text Mining. MAchine Learning Text Categorization .

Universitat Oberta de Catalunya. “R OAuth for TwitteR”. [Online] Available from: http://data-mining.business-intelligence.uoc.edu/home/data-from-twitter/r-oauth-for-twitter. [Accesed: January 27, 2015].

Page 16: [New] Makalah Text Mining

LAMPIRAN

library(twitteR)

library(RCurl)

library(wordcloud)

library(SnowballC)

reqURL <- "https://api.twitter.com/oauth/request_token"

accessURL <- "https://api.twitter.com/oauth/access_token"

authURL <- "https://api.twitter.com/oauth/authorize"

consumerKey <-"mg3b7ciGs0ZnWqxsMgYO1NoO4"

consumerSecret <- "ZOUZnWzBW2bDRDKTv7prHc4UCNH5fAL2LzZtOW2yQTDJYNPum3"

twitCred <- OAuthFactory$new(consumerKey = consumerKey,

consumerSecret = consumerSecret,

requestURL = reqURL,

accessURL = accessURL,

authURL = authURL)

Page 17: [New] Makalah Text Mining

twitCred <- OAuthFactory$new(consumerKey=consumerKey,consumerSecret=consumerSecret,requestURL=reqURL,accessURL=accessURL,authURL=authURL)

download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem")

twitCred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))

registerTwitterOAuth(twitCred)

save(list="twitCred", file="twitteR_credentials")

library(twitteR)

load("twitteR_credentials")

registerTwitterOAuth(twitCred)

library(tm)

rdmTweets <- userTimeline("KPK_RI", n=500,cainfo="cacert.pem")

rdmTweets

nDocs <- length(rdmTweets)

for (i in 11:15) {

cat(paste("[[", i, "]] ", sep=""))

writeLines(strwrap(rdmTweets[[i]]$getText(), width=73))

}

# convert tweets to a data frame

df <- do.call("rbind", lapply(rdmTweets, as.data.frame))

dim(df)

library(tm)

# build a corpus, and specify the source to be character vectors

myCorpus <- Corpus(VectorSource(df$text))

# convert to lower case

myCorpus <- tm_map(myCorpus, tolower)

# remove punctuation

myCorpus <- tm_map(myCorpus, removePunctuation)

# remove numbers

myCorpus <- tm_map(myCorpus, removeNumbers)

# remove URLs

removeURL <- function(x) gsub("http[[:alnum:]]*", "", x)

myCorpus <- tm_map(myCorpus, removeURL)

Page 18: [New] Makalah Text Mining

# menghapus kata sesuai stopword myStopwords<-c(stopwords ('english'),"teman","kamu","lagi","event","kpd","jangan","ala","sesuai","konser","lengkapnya","sandiwararadiokpk","bagi","gsp","grha","melalui","faks","atas","per","terus","anak","setiap","soal","sedikit","serta","adl","topeng","ismylagu","sejak","akun","dinding","terulang","tentang","download","sendiri","kantor","siaran","mengikuti","silakan","ada","tehadap","berlangsung","ala","sejak","lalu","jgn","atas","topping","gdkkpk","laporkan","oleh","gelar","adalah","dengan","semua","satunya","cari","selama","sesuai","banyak","haki","bisa","eps","waket","brsm","pendapatmu","sebelum","adik","didik","bagi","sampai","dimiliki","melakukan","disini","tanpa","paling","ttg","disini","akan","yuk","didownload","lengkap","menutup","pada","mari","dapat","ide","klik","jam","hari","juga","saya","kerja","grati","bagaimana","film","masy","jam","bukan","anda","lewat","secara","bagaimana","mudah","sama","dihadiri","sdh","aku","cara","lain","sore","dari","ini","kepada","siang","masuk","des","umur","karena","dua","barang","lebih","gratis","desember","masih","berlaku","terupdate","lagu","bila","games","dijamin","teater","siswa","memiliki","lakukan","saja","sbg","tangis","lakukan","ayo","kami","buat","buku","benar","bareng","luar","pagi","rencana","utk","live","unduh","satu","lelang","jadwal","lanjut","dikenakan","bersama","tahun","saat","selamat","gandrik","duma","tetapkan","resolusimu","langsung","email","bahas","untuk","sebagai","bentuk","kita","streaming","seminar","ikut","akhir","tata","dukung","bag","agen","timeline","tetap","terkait","rangka","baik","beberapa","para","ibu","sekarang","tema","menurut","pelangi","rapat","telp","nanti","pasal","salah","bersih","ikuti","dan","starjogja","ugm","jogja","tahun","yang","kita","dalam","datang","org","mrpkn","tlpn","unduh","diterima","beberapa","langsung","pandanganmu","harga","streaming","hingga","apa","namun","siap","agen","hashtag","tersebut","dalam","gropyokankorupsi","rangkamenjelang","rangka","menjelang","informasi","fasilitas","kpk","berikut","info","tahunkpk","sistem","salam","lihat","sangat","lanjutan","wajib","pihak","tidak","perjalanan","wib","bahwa","kembali","orang","anggota","tidak","lomba","festiv","berita","lomba","stream","pkl","pernah","made","memberikan","workshop","besok","pandu","gspugmpublik","gspugum","beraktivita","dilindungi","memberikan","demi","sms","musik","selalu","nonton","media","renaksi","masyarakattelp","mengudara","sebesar","narasumb","seputar","booth","gerakan","jumlah","nurani","kanal","sbha","itu","peran","calon","kws","narasumber","pintu","saksikan","kegiatan","dimulai","beraktivitas","lawan","kanal","share","menarik","umarisumay","gedung","sudah","daerah","kerahasiaan","terhadap","pukul","talkshow","uang","jujurbarengan","jujur","barengan","lawan","kanal","daerah","sertakan","disampaikan","sesi","resmi","biaya","kws","capaian","yogyakarta","perempuan","beraksi","acara","tpk","tki","riau","jika","mau","podcast","tdk","festivalantikorupsi","semakin","video","akses","stand","seorang","antara","hasil","menarik","mading","adl","dulu","maka","festival","lupa","dalam","diatur","menjadi","yaitu","terimakasih","peringatan","keras","aksi","identitas","seumur","menjadi","sekitar","atau","ini","itu","akan","bahwa","di","kridosono","kajian","pembangunan","adlh","simak","agenda","diri","tahu","kasus","pengaduanat","dilakukan","matanajwa","thd","bbrp","gspugm","berhasil","dprd","menolak","streamingnya","massal","peringati","dlm","via","telah","penyelenggara","kreatif","diri","perkara","dgn","dilakukan","rangkaian","korsup","publik","negeri")

myCorpus <- tm_map(myCorpus, removeWords, myStopwords)

# keep a copy of corpus to use later as a dictionary for stem completion

myCorpusCopy <- myCorpus

# stem words

myCorpus <- tm_map(myCorpus, stemDocument)

# inspect documents (tweets) numbered 11 to 15

Page 19: [New] Makalah Text Mining

# inspect(myCorpus[11:15])

# The code below is used for to make text fit for paper width

for (i in 11:15) {

cat(paste("[[", i, "]] ", sep=""))

writeLines(strwrap(myCorpus[[i]], width=73))}

# stem completion-->perubhn kata dasar

myCorpus <- tm_map(myCorpus, stemCompletion, dictionary=myCorpusCopy)

inspect(myCorpus[11:15])

myCorpus <- tm_map(myCorpus, tolower)

myCorpus <- tm_map(myCorpus, PlainTextDocument)

myTdm <- TermDocumentMatrix(myCorpus)

Docs(myTdm)

myTdm <- TermDocumentMatrix(myCorpus, control=list(wordLengths=c(1,Inf)))

myTdm

idx <- which(dimnames(myTdm)$Terms == "love")

inspect(myTdm[idx+(5:10),10:20])

#ggplot

myTdm <- TermDocumentMatrix(myCorpus, control=list(minWordLength=1))

# inspect frequent words--> gede

findFreqTerms(myTdm, lowfreq=10)

termFrequency <- rowSums(as.matrix(myTdm))

termFrequency <- subset(termFrequency, termFrequency>=10)

library(ggplot2)

qplot(names(termFrequency), termFrequency, geom="bar", xlab="Terms",stat="identity") + coord_flip()

barplot(termFrequency, las=2)

m <- as.matrix(myTdm)

# calculate the frequency of words and sort it descendingly by frequency

wordFreq <- sort(rowSums(m), decreasing=TRUE)

# word cloud

set.seed(375) # to make it reproducible

grayLevels <- gray( (wordFreq+10) / (max(wordFreq)+10) )

wordcloud(words=names(wordFreq),freq=wordFreq,mi.freq=1,random.order=F,colors=brewer.pal(8, "Dark2"))

Page 20: [New] Makalah Text Mining

#ASSOSIASI

# which words are associated with "korupsi" "antikorupsi" "gratifikasi" "savekpk" "kanalkpk"?---> yg brhubungan

findAssocs(myTdm, 'korupsi', 0.20)

findAssocs(myTdm, 'antikorupsi', 0.20)

findAssocs(myTdm, 'gratifikasi', 0.20)

findAssocs(myTdm, 'savekpk', 0.05)

findAssocs(myTdm, 'kanalkpk', 0.19)

# remove sparse terms

myTdm2 <- removeSparseTerms(myTdm, sparse=0.95)

m2 <- as.matrix(myTdm2)

# cluster terms

distMatrix <- dist(scale(m2))

fit <- hclust(distMatrix, method="ward")

plot(fit)

# cut tree into 3 clusters

rect.hclust(fit, k=3)

(groups <- cutree(fit, k=3))

#CLUSTER TWEETS

# transpose the matrix to cluster documents (tweets)

m3 <- t(m2)

# set a fixed random seed

set.seed(122)

# k-means clustering of tweets

k <- 2

kmeansResult <- kmeans(m3, k)

# cluster centers

round(kmeansResult$centers, digits=3)

# See top Three word in each cluster

for (i in 1:k) {

cat(paste("cluster ", i, ": ", sep=""))

s <- sort(kmeansResult$centers[i,], decreasing=T)

cat(names(s)[1:3], "\n")

Page 21: [New] Makalah Text Mining

# print the tweets of every cluster

# print(rdmTweets[which(kmeansResult$cluster==i)])}

library(fpc)

# partitioning around medoids with estimation of number of clusters

pamResult <- pamk(m3, metric="manhattan")

# number of clusters identified

(k <- pamResult$nc)

pamResult <- pamResult$pamobject

# print cluster medoids

for (i in 1:k) {

cat(paste("cluster", i, ": "))

cat(colnames(pamResult$medoids)[which(pamResult$medoids[i,]==1)], "\n")

# print tweets in cluster i

# print(rdmTweets[pamResult$clustering==i])

}

# plot clustering result

layout(matrix(c(1,2),2,1)) # set to two graphs per page

plot(pamResult, color=F, labels=4, lines=0, cex=.8, col.clus=1,

col.p=pamResult$clustering)

layout(matrix(1)) # change back to one graph per page

# plot clustering result

layout(matrix(c(1,2),2,1)) # set to two graphs per page

plot(pamResult, color=F, labels=4, lines=0, cex=.8, col.clus=1,

col.p=pamResult$clustering)

layout(matrix(1)) # change back to one graph per page