Anda di halaman 1dari 21

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

WORD CLOUD OF CORRUPTION ERADICATION COMMISSION


1

Arkhamsiagustinah (11611083)

Jurusan Statistika, Universitas Islam Indonesia


arkhamsiagustinah@gmail.com
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): 5968).
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.
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 Penelitian
Permasalahan 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
Perangkat Lunak (software) R
R 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 Package
Paket 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 tugastugas 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 Twitter
Media 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.

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

Stemming
Stemming 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

Tagging
Tagging 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

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

Word Cloud
Word 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 sangat

cepat dan mudah, kita dapat menjelajahi Word Cloud secara singkat dan dapat melakukan analisis yang
komprehensif (Graham, I. Milligan, & S. Weingart).
Text Clustering
Menurut 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 Clustering
Algoritma KMeans 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 KMeans selanjutnya akan melakukan pengulangan langkahlangkah
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 obyekobyek tersebut berdasarkan pada jarak minimumnya
Kelebihan dan Kelemahan algoritma Kmeans Algoritma Kmeans 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 meannya dapat ditentukan, dan tidak mampu menangani data yang mempunyai
penyimpanganpenyimpangan (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
Populasi dari penelitian ini adalah kicauan-kicauan (tweets) dari akun resmi Komisi Pemberantasan

Korupsi (@KPK_RI).
Sampel dan Teknik Pengambilan Sampel Penelitian
Tweets yang diambil berasal dari akun Komisi Pemberantasan Korupsi (@KPK_RI), yaitu sebanyak
500 kicauan (tweet) teratas sampai dengan 25 Januari 2015.
Data Penelitian
Data 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 Penelitian
Adapun metode pengumpulan data adalah sebagai berikut :
Mengambil data kicauan (tweets) yang berasal dari akun resmi (Official user Timeline) @KPK_RI.
TAHAPAN ANALISIS DATA
Secara umum, tahapan melakukan analisis text mining adalah sebagai berikut :
1. Mengambil Teks dari Twitter
Tweets 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 Teks
Teks 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)
> # 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","teru
lang","tentang","download","sendiri","kantor","siaran","mengikuti","silaka
n","ada","tehadap","berlangsung","ala","sejak","lalu","jgn","atas","toppin
g","gdkkpk","laporkan","oleh","gelar","adalah","dengan","semua","satunya",
"cari","selama","sesuai","banyak","haki","bisa","eps","waket","brsm","pend
apatmu","sebelum","adik","didik","bagi","sampai","dimiliki","melakukan","d
isini","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","sec
ara","bagaimana","mudah","sama","dihadiri","sdh","aku","cara","lain","sore
","dari","ini","kepada","siang","masuk","des","umur","karena","dua","baran
g","lebih","gratis","desember","masih","berlaku","terupdate","lagu","bila"
,"games","dijamin","teater","siswa","memiliki","lakukan","saja","sbg","tan
gis","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","resolusi
mu","langsung","email","bahas","untuk","sebagai","bentuk","kita","streamin
g","seminar","ikut","akhir","tata","dukung","bag","agen","timeline","tetap
","terkait","rangka","baik","beberapa","para","ibu","sekarang","tema","men
urut","pelangi","rapat","telp","nanti","pasal","salah","bersih","ikuti","d
an","starjogja","ugm","jogja","tahun","yang","kita","dalam","datang","org"
,"mrpkn","tlpn","unduh","diterima","beberapa","langsung","pandanganmu","ha
rga","streaming","hingga","apa","namun","siap","agen","hashtag","tersebut"
,"dalam","gropyokankorupsi","rangkamenjelang","rangka","menjelang","inform
asi","fasilitas","kpk","berikut","info","tahunkpk","sistem","salam","lihat
","sangat","lanjutan","wajib","pihak","tidak","perjalanan","wib","bahwa","
kembali","orang","anggota","tidak","lomba","festiv","berita","lomba","stre
am","pkl","pernah","made","memberikan","workshop","besok","pandu","gspugmp
ublik","gspugum","beraktivita","dilindungi","memberikan","demi","sms","mus
ik","selalu","nonton","media","renaksi","masyarakattelp","mengudara","sebe
sar","narasumb","seputar","booth","gerakan","jumlah","nurani","kanal","sbh
a","itu","peran","calon","kws","narasumber","pintu","saksikan","kegiatan",
"dimulai","beraktivitas","lawan","kanal","share","menarik","umarisumay","g
edung","sudah","daerah","kerahasiaan","terhadap","pukul","talkshow","uang"
,"jujurbarengan","jujur","barengan","lawan","kanal","daerah","sertakan","d
isampaikan","sesi","resmi","biaya","kws","capaian","yogyakarta","perempuan
","beraksi","acara","tpk","tki","riau","jika","mau","podcast","tdk","festi
valantikorupsi","semakin","video","akses","stand","seorang","antara","hasi
l","menarik","mading","adl","dulu","maka","festival","lupa","dalam","diatu
r","menjadi","yaitu","terimakasih","peringatan","keras","aksi","identitas"
,"seumur","menjadi","sekitar","atau","ini","itu","akan","bahwa","di","krid
osono","kajian","pembangunan","adlh","simak","agenda","diri","tahu","kasus
","pengaduanat","dilakukan","matanajwa","thd","bbrp","gspugm","berhasil","
dprd","menolak","streamingnya","massal","peringati","dlm","via","telah","p
enyelenggara","kreatif","diri","perkara","dgn","dilakukan","rangkaian","ko
rsup","publik","negeri")
> # menghapus kata sesuai stopword
>myCorpus <- tm_map(myCorpus, removeWords, myStopwords)

3.

Stemming word
Stemming 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 WordCloud
Setelah 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 Kata


Mencari 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)

>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 Kata


Klastering 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 :

Gambar 2.1 Kata populer pada akun twitter @KPK_RI


Histogram 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


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.

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 emodul 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.

KESIMPULAN DAN SARAN


Kesimpulan
Data 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.
Saran
Adapun 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
Owners
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].

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-diangkatpresiden-jokowi-sebagai-calon-kapolri/. [Accesed: January 26, 2015].
News Okezone. [Online] Available from: http://news.okezone.com/read/2014/12/29/337/1085140/11-prestasikpk-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-200902-MC%20Bab2001.pdf. [Accesed: January 26, 2015].
_. Wordcloud in R (2011) [Online] Available from: http://onertipaday.blogspot.jp/2011/07/word-cloud-inr.html. [Accesed: January 27, 2015].
Thearling,
Kurt
(2012).
An
Introduction
to
Data
Mining.
http://www.thearling.com/text/dmwhite/dmwhite.htm. [Accesed: January 27, 2015].

Available

from:

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/050809maths3346clusters2x2.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-fortwitter. [Accesed: January 27, 2015].

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)

twitCred
<OAuthFactory$new(consumerKey=consumerKey,consumerSecret=consumerSecret,requ
estURL=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)

# menghapus kata sesuai stopword


myStopwords<-c(stopwords
('english'),"teman","kamu","lagi","event","kpd","jangan","ala","sesuai","ko
nser","lengkapnya","sandiwararadiokpk","bagi","gsp","grha","melalui","faks"
,"atas","per","terus","anak","setiap","soal","sedikit","serta","adl","topen
g","ismylagu","sejak","akun","dinding","terulang","tentang","download","sen
diri","kantor","siaran","mengikuti","silakan","ada","tehadap","berlangsung"
,"ala","sejak","lalu","jgn","atas","topping","gdkkpk","laporkan","oleh","ge
lar","adalah","dengan","semua","satunya","cari","selama","sesuai","banyak",
"haki","bisa","eps","waket","brsm","pendapatmu","sebelum","adik","didik","b
agi","sampai","dimiliki","melakukan","disini","tanpa","paling","ttg","disin
i","akan","yuk","didownload","lengkap","menutup","pada","mari","dapat","ide
","klik","jam","hari","juga","saya","kerja","grati","bagaimana","film","mas
y","jam","bukan","anda","lewat","secara","bagaimana","mudah","sama","dihadi
ri","sdh","aku","cara","lain","sore","dari","ini","kepada","siang","masuk",
"des","umur","karena","dua","barang","lebih","gratis","desember","masih","b
erlaku","terupdate","lagu","bila","games","dijamin","teater","siswa","memil
iki","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","sebaga
i","bentuk","kita","streaming","seminar","ikut","akhir","tata","dukung","ba
g","agen","timeline","tetap","terkait","rangka","baik","beberapa","para","i
bu","sekarang","tema","menurut","pelangi","rapat","telp","nanti","pasal","s
alah","bersih","ikuti","dan","starjogja","ugm","jogja","tahun","yang","kita
","dalam","datang","org","mrpkn","tlpn","unduh","diterima","beberapa","lang
sung","pandanganmu","harga","streaming","hingga","apa","namun","siap","agen
","hashtag","tersebut","dalam","gropyokankorupsi","rangkamenjelang","rangka
","menjelang","informasi","fasilitas","kpk","berikut","info","tahunkpk","si
stem","salam","lihat","sangat","lanjutan","wajib","pihak","tidak","perjalan
an","wib","bahwa","kembali","orang","anggota","tidak","lomba","festiv","ber
ita","lomba","stream","pkl","pernah","made","memberikan","workshop","besok"
,"pandu","gspugmpublik","gspugum","beraktivita","dilindungi","memberikan","
demi","sms","musik","selalu","nonton","media","renaksi","masyarakattelp","m
engudara","sebesar","narasumb","seputar","booth","gerakan","jumlah","nurani
","kanal","sbha","itu","peran","calon","kws","narasumber","pintu","saksikan
","kegiatan","dimulai","beraktivitas","lawan","kanal","share","menarik","um
arisumay","gedung","sudah","daerah","kerahasiaan","terhadap","pukul","talks
how","uang","jujurbarengan","jujur","barengan","lawan","kanal","daerah","se
rtakan","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","ident
itas","seumur","menjadi","sekitar","atau","ini","itu","akan","bahwa","di","
kridosono","kajian","pembangunan","adlh","simak","agenda","diri","tahu","ka
sus","pengaduanat","dilakukan","matanajwa","thd","bbrp","gspugm","berhasil"
,"dprd","menolak","streamingnya","massal","peringati","dlm","via","telah","
penyelenggara","kreatif","diri","perkara","dgn","dilakukan","rangkaian","ko
rsup","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

# 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,
xlab="Terms",stat="identity") + coord_flip()

geom="bar",

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,colo
rs=brewer.pal(8, "Dark2"))

#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")

# 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

Anda mungkin juga menyukai