Anda di halaman 1dari 28

MAKALAH

KLUSTERING PADA TWITTER MENGGUNAKAN BAHASA


PEMROGRAMAN R

Disusun Oleh :

Listyani Praptining Putri (15.01.53.0013)

Dhika Bagas Whisnu Aji (15.01.53.0044)

Miftachul Anwar (15.01.53.0075)

UNIVERSITAS STIKUBANK SEMARANG (UNISBANK)

FALKUTAS TEKNOLOGI INFORMASI

SISTEM INFORMASI

2017
BAB I

PENDAHULUAN

1.1 Deskripsi Permasalahan

Clustering adalah metode penganalisaan data, yang sering dimasukkan


sebagai salah satu metode Data Mining, yang tujuannya adalah untuk
mengelompokkan data dengan karakteristik yang sama ke suatu wilayah yang
sama dan data dengan karakteristik yang berbeda ke wilayah yang lain. Ada
beberapa pendekatan yang digunakan dalam mengembangkan metode
clustering. Dua pendekatan utama adalah clustering dengan pendekatan partisi
dan clustering dengan pendekatan hirarki. Clustering dengan pendekatan
partisi atau sering disebut dengan partition-based clustering mengelompokkan
data dengan memilah-milah data yang dianalisa ke dalam cluster-cluster yang
ada. Clustering dengan pendekatan hirarki atau sering disebut
dengan hierarchical clustering mengelompokkan data dengan membuat suatu
hirarki berupa dendogram dimana data yang mirip akan ditempatkan pada
hirarki yang berdekatan dan yang tidak pada hirarki yang berjauhan. Di
samping kedua pendekatan tersebut, ada juga clustering dengan
pendekatan automatic mapping (Self-Organising Map/SOM).

Twitter adalah layanan jejaring sosial dan mikroblog daring yang


memungkinkan penggunanya untuk mengirim dan membaca pesan berbasis
teks hingga 140 karakter, yang dikenal dengan sebutan kicauan (tweet). Twitter
didirikan pada bulan Maret 2006 oleh Jack Dorsey, dan situs jejaring sosialnya
diluncurkan pada bulan Juli. Sejak diluncurkan, Twitter telah menjadi salah
satu dari sepuluh situs yang paling sering dikunjungi di Internet, dan dijuluki
dengan "pesan singkat dari Internet." Di Twitter, pengguna tak terdaftar hanya
bisa membaca kicauan, sedangkan pengguna terdaftar bisa menulis kicauan
melalui antarmuka situs web, pesan singkat (SMS), atau melalui
berbagai aplikasi untuk perangkat seluler.
Twitter mengalami pertumbuhan yang pesat dan dengan cepat meraih
popularitas di seluruh dunia. Hingga bulan Januari 2013, terdapat lebih dari
500 juta pengguna terdaftar di Twitter, 200 juta di antaranya adalah pengguna
aktif. Lonjakan penggunaan Twitter umumnya berlangsung saat terjadinya
peristiwa-peristiwa populer. Pada awal 2013, pengguna Twitter mengirimkan
lebih dari 340 juta kicauan per hari, dan Twitter menangani lebih dari
1,6 miliar permintaan pencarian per hari. Hal ini menyebabkan posisi Twitter
naik ke peringkat kedua sebagai situs jejaring sosial yang paling sering
dikunjungi di dunia, dari yang sebelumnya menempati peringkat dua puluh
dua.

Tingginya popularitas Twitter menyebabkan layanan ini telah


dimanfaatkan untuk berbagai keperluan dalam berbagai aspek, misalnya
sebagai sarana protes, kampanye politik, sarana pembelajaran, dan
sebagai media komunikasi darurat. Twitter juga dihadapkan pada berbagai
masalah dan kontroversi seperti masalah keamanan dan privasi pengguna,
gugatan hukum, dan penyensoran. Twitter dimiliki dan dioperasikan oleh
Twitter, Inc., yang berbasis di San Francisco, dengan kantor dan peladen
tambahan terdapat di New York City, Boston, dan San Antonio. Hingga Mei
2015, Twitter telah memiliki lebih dari 500 juta pengguna, 302 juta di
antaranya adalah pengguna aktif.

1.2 Rumusan Masalah


Berdasarkan latar belakang di atas maka rumusan masalahnya adalah
bagaimana penjelasan mengenai Klustering K-means, PAM(Partitioning
Around Medoids),Hirarki Agglomerative dan implementasinya menggunakan
bahasa R.
1.3 Tujuan Penulisan
Adapun tujuan dari penulisan ini adalah untuk mengklasifikasikan
Klustering K-means, PAM(Partitioning Around Medoids),Hirarki
Agglomerative pada sebuah twitter menggunakan bahasa R.
BAB II
TINJAUAN PUSTAKA
2.1 Kajian Deduktif
Data Clustering merupakan salah satu metode Data Mining yang bersifat tanpa arahan
(unsupervised). Ada dua jenis data clustering yang sering dipergunakan dalam proses
pengelompokan data yaitu hierarchical (hirarki) data clustering dan non-hierarchical
(non hirarki) data clustering. K-Means merupakan salah satu metode data clustering
non hirarki yang berusaha mempartisi data yang ada ke dalam bentuk satu atau lebih
cluster/kelompok. Metode ini mempartisi data ke dalam cluster/kelompok sehingga
data yang memiliki karakteristik yang sama dikelompokkan ke dalam satu cluster
yang sama dan data yang mempunyai karakteristik yang berbeda dikelompokkan ke
dalam kelompok yang lain. Adapun tujuan dari data clustering ini adalah untuk
meminimalisasikan objective function yang diset dalam proses clustering, yang
pada umumnya berusaha meminimalisasikan variasi di dalam suatu cluster dan
memaksimalisasikan variasi antar cluster.
A. Algoritma K-means

K-means merupakan salah satu algoritma clustering .Tujuan algoritma ini yaitu
untuk membagi data menjadi beberapa kelompok. Algoritma ini menerima masukan
berupa data tanpa label kelas. Hal ini berbeda dengan supervised learning yang
menerima masukan berupa vektor (x1 , y1) , (x2 , y2) , , (xi , yi), di mana xi
merupakan data dari suatu data pelatihan dan yi merupakan label kelas untuk xi.
Pada algoritma pembelajaran ini, komputer mengelompokkan sendiri data-data
yang menjadi masukannya tanpa mengetahui terlebih dulu target kelasnya.
Pembelajaran ini termasuk dalam unsupervised learning. Masukan yang diterima
adalah data atau objek dan k buah kelompok (cluster) yang diinginkan. Algoritma ini
akan mengelompokkan data atau objek ke dalam k buah kelompok tersebut. Pada
setiap cluster terdapat titik pusat (centroid) yang merepresentasikan cluster tersebut.

Data clustering menggunakan metode K-Means ini secara umum dilakukan dengan
algoritma dasar sebagai berikut (Yudi Agusta, 2007) :
1. Tentukan jumlah cluster
2. Alokasikan data ke dalam cluster secara random
3. Hitung centroid/ rata-rata dari data yang ada di masing-masing cluster
4. Alokasikan masing-masing data ke centroid/ rata-rata terdekat
5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila
perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau
apabila perubahan nilai pada objective function yang digunakan di atas nilai
threshold yang ditentukan.
Distance Space Untuk Menghitung Jarak Antara Data dan Centroid:
Beberapa distance space telah diimplementasikan dalam menghitung jarak (distance)
antara data dan centroid termasuk di antaranya
L1 (Manhattan/City Block) distance space,
L2 (Euclidean) distance space, dan
Lp (Minkowski) distance space.
Jarak antara dua titik x1 dan x2 pada Manhattan/City Block distance space dihitung
dengan menggunakan rumus sebagai berikut:

dimana:
p : Dimensi data
Lp (Minkowski) distance space yang merupakan generalisasi dari beberapa distance
space yang ada seperti L1 (Manhattan/City Block) dan L2 (Euclidean), juga telah
diimplementasikan[9]. Tetapi secara umum distance space yang sering digunakan
adalah Manhattan dan Euclidean. Euclidean sering digunakan karena penghitungan
jarak dalam distance space ini merupakan jarak terpendek yang bisa didapatkan antara
dua titik yang diperhitungkan, sedangkan Manhattan sering digunakan karena
kemampuannya dalam mendeteksi keadaan khusus seperti keberadaaan outliers
dengan lebih baik.

Pembaharuan suatu titik centroid dapat dilakukan dengan rumus berikut:

Di mana:
k = titik centroid dari cluster ke-K
Nk = banyaknya data pada cluster ke-K
xq = data ke-q pada cluster ke-K

Kelebihan dan Kekurangan K-Means


Ada beberapa kelebihan pada algoritma k-means, yaitu:
a. Mudah untuk diimplementasikan dan dijalankan.
b. Waktu yang dibutuhkan untuk menjalankan pembelajaran ini relatif cepat.
c. Mudah untuk diadaptasi.
d. Umum digunakan.
Algoritma k-means memiliki beberapa kelebihan, namun ada kekurangannya juga.
Kekurangan dari algoritma tersebut yaitu :
a. Sebelum algoritma dijalankan, k buah titik diinisialisasi secara random sehingga
pengelompokkan data yang dihasilkan dapat berbeda-beda. Jika nilai random
untuk inisialisasi kurang baik, maka pengelompokkan yang dihasilkan pun
menjadi kurang optimal.
b. Dapat terjebak dalam masalah yang disebut curse of dimensionality. Hal ini dapat
terjadi jika data pelatihan memiliki dimensi yang sangat tinggi (Contoh jika data
pelatihan terdiri dari 2 atribut maka dimensinya adalah 2 dimensi. Namun jika ada
20 atribut, maka akan ada 20 dimensi). Salah satu cara kerja algoritma ini adalah
mencari jarak terdekat antara k buah titik dengan titik lainnya. Jika mencari jarak
antar titik pada 2 dimensi, masih mudah dilakukan. Namun bagaimana mencari
jarak antar titik jika terdapat 20 dimensi. Hal ini akan menjadi sulit.
c. Jika hanya terdapat beberapa titik sampel data, maka cukup mudah untuk
menghitung dan mencari titik terdekat dengan k titik yang diinisialisasi secara
random. Namun jika terdapat banyak sekali titik data (misalnya satu milyar buah
data), maka perhitungan dan pencarian titik terdekat akan membutuhkan waktu
yang lama. Proses tersebut dapat dipercepat, namun dibutuhkan struktur data yang
lebih rumit seperti kD-Tree atau hashing.

B. Algoritma K-medoids/ PAM(Partitioning Around Medoids)


Algoritma Partitioning Around Medoids (PAM) atau dikenal juga dengan
K-Medoids adalah algoritma pengelompokan yang berkaitan dengan algoritma K-
means dan algoritma medoidshift. Algoritma K-Medoids ini diusulkan pada tahun
1987.
Algorima Partitioning Around Medoids (PAM) dikembangkan oleh Leonard
Kaufman dan Peter J. Reusseeuw. Algoritma ini sangat mirip dengan algoritma K-
Means, terutama karena kedua algoritma ini partitional. Dengan kata lain, kedua
algoritma ini memecah dataset menjadi kelompok-kelompok dan kedua algoritma
ini berusaha untuk meminimalkan keslahan. Tetapi algoritma Algorima
Partitioning Around Medoids (PAM) bekerja dengan menggunakan Medoids,
yang merupakan entitas dari dataset yang mewakili kelompok dimana ia
dimasukkan.
Algorima Partitioning Around Medoids (PAM) menggunakan metode
partisi clustering untuk mengelompokkan sekumpulan n objek menjadi sejumlah
cluster. Algoritma ini menggunakan objek pada kumpulan objek untuk mewakili
sebuah cluster. Objek yang terpilih untuk mewakili sebuah cluster disebut dengan
medoid. Cluster dibangun dengan menghitung kedekatan yang dimiliki antara
medoids dengan objek non-medoids.
Algoritma dari Algorima Partitioning Around Medoids (PAM) atau K-
Medoids adalah sebagai berikut (Han & Kamber, 2006) :
1. Secara acak pilih k objek pada sekumpulan n objek sebagi medoid.
2. Ulangi langkah 3 hingga langkah 6.
3. Tempatkan objek non-medoid ke dalam cluster yang paling dekat
dengan medoid.
4. Secara acak pilih Orandom sebuah objek non-medoid.

5. Hitung total biaya, S, dari pertukaran medoid o, dengan Orandom.


6. Jika S<0 maka tukar o, dengan Orandom untuk membentuk
sekumpulan k objek baru sebagai medoid.
7. Hingga tidak ada perubahan.
Nilai total biaya/cost dinyatakan dengan persamaan :
Total cost =
Dimana :
Dist = merujuk pada rumus -
Nilai S dinyatakan dengan persamaan :
S = Total cost baru total cost lama
Dimana :
Total cost baru = jumlah biaya / cost non medoid
Total cost lama = jumlah biaya / cost medoid
K-Medoid sangat mirip dengan K-Means, perbedaan utama diantara dua
algoritma tersebut adalah jika pada K-Means cluster diwakili dengan pusat dari
cluster, sedangkan pada K-Medoid cluster diwakili objek terdekat dari pusat
cluster.

C. Hirarki Agglomerative

Hierarchical Agglomerative Clustering (HAC) adalah suatu metode


clustering yang bersifat bottom-up yaitu menggabungkan sebuah cluster menjadi
satu cluster tunggal. Metode ini dimulai dengan meletakkan setiap obyek data
sebagai sebuah cluster tersendiri dan selanjutnya menggabungkan cluster-cluster
tersebut menjadi cluster yang lebih besar dan lebih besar lagi sampai akhirnya
semua objek data menyatu dalam sebuah cluster tunggal. Secara logika semua
obyek pada akhirnya hanya akan membentuk sebuah cluster . Metode ini dimulai
membentuk cluster pada setiap obyek. Kemudian dua obyek dengan memiliki
jarak terdekat digabungkan. Selanjutnya obyek ketiga digabung dengan obyek
lain memiliki jarak terdekat dan membentuk cluster baru. Proses akan berlanjut
hingga akhirnya terbentuk satu cluster yang terdiri dari keseluruhan obyek.

Hierarchical clustering merupakan salah satu algoritma clustering yang


fungsinya dapat digunakan untuk mengcluster dokumen (dokumen clustering).
Dari teknik Hierarchical clustering, dapat dihasilkan suatu kumpulan partisi yang
berurutan, dimana dalam kumpulan tersebut terdapat cluster-cluster yang
mempunyai poin-poin individu, cluster-cluster ini berada di level yang paling
bawah. Selain itu ada juga cluster yang didalamnya terdapat poin-poin yang
dipunyai semua cluster didalamnya, cluster ini disebut single cluster, terletak di
level yang paling atas.
Dalam algoritma Hierarchical clustering, cluster yang berada dilevel lebih
atas (intermediate level) dari cluster yang lain, dapat, diperoleh dengan cara
mengkombinasikan dua buah cluster yang berada pada level dibawahnya
(Steinbach, Karypis, & Kumar, 2000). Hasil keseluruhan dari algoritma
Hierarchical clustering secara grafik dapat digambarkan sebagai pohon, yang
disebut dengan dendogram. Pohon ini secara grafik menggambarkan proses
penggabungan dari cluster-cluster yang ada, sehingga menghasilkan cluster
dengan level yang lebih tinggi (intermodiate level).

Ada dua metode yang sering diterapkan yaitu agglomerative hierarchical


clustering dan divisive hierarchical clustering. Pada agglomerative hierarchical,
proses hierarchical clustering dimulai dari cluster-cluster yang mempunyai poin-
poin individu yang berada di level paling bawah. Pada setiap langkahnya
dilakukan penggabungan sebuah cluster dengan cluster lainnya, dimana cluster-
cluster yang digabungkan berada saling berdekatan atau mempunyai tingkat / sifat
kesamaan yang paling tinggi (Steinbach, Karypis, & Kumar, 2000).
Agglomerative hierarchical clustering bekerja dengan sederetan dari
penggabungan yang berurutan atau sederetan dari pembagian yang berurutan dan
berawal dari objek-objek yang individual. Jadi, pada awalnya banyaknya cluster
sama dengan banyaknya objek. Objek-objek yang paling mirip dikelompokkan,
dan kelompok-kelompok awal ini digabungkan sesuai dengan kemiripannya.
Sewaktu kemiripan berkurang, semua sub kelompok digabungkan menjadi satu
cluster tunggal. Hasil-hasil dari clustering dapat disajikan secara grafik dalam
bentuk dendogram. Cabang-cabang dalam pohon menyajikan cluster dan
bergabung pada node yang posisinya sepanjang sumbu jarak (similaritas)
menyatakan tingkat dimana penggabungan terjadi.
Langkah-langkah dalam algoritma clustering hirarki agglomerative untuk
mengelompokkan N objek (item/variabel) :
1. Mulai dengan N cluster, setiap cluster mengandung entiti tunggal dan
sebuah matriks simetrik dari jarak (similarities) D = {dix} dengan tipe
NxN.
2. Cari matrix jarak untuk pasangan cluster yang terdekat (paling mirip).
Misalkan jarak antara cluster U dan V yang paling mirip adalah duv.

3. Gabungkan cluster U dan V. Label cluster yang baru dibentuk dengan


(UV). Update entries pada matrik jarak dengan cara :
a. Hapus baris dan kolom yang memberikna yang memberikan jarak-jarak
antara cluster U dan V
b. Tambahkan baris dan kolom yang meberikan jarak-jarak antara cluster
(UV) dan cluster-cluster yang tersisa.
4. Ulangi langkah 2 dan 3 sebanyak (N-1) kali. (semua objek akan berada
dalam cluster tunggal setelah algoritma berakhir). Catat identitas dari
cluster yang digabungkan dan tingkat-tingkat (jarak atau similaritas)
dimana penggabungan terjadi.
Beberapa metode hierarchical clustering yang sering digunakan
dibedakan menurut cara mereka untuk menghitung tingkat kemiripan atau
jarak antar kelompok. Ada yang menggunakan wards linnkage, centroid
linkage, single linkage, complete linkage, average linkage, median linkage, dan
lain-lainnya.

1.2 Kajian Induktif


Tinjauan Pustaka tersebut adalah hasil penelitian terdahulu tentang informasi
hasil penelitian yang telah dilakukan sebelumnya dan menghubungkan dengan
masalah yang sedang diteliti.
A. Implementasi text nining pada mesin pencarian twitter untuk menganalisis topik-
topik terkait KPK dan JOKOWI
Menurut Imam Adiyana, Fajriya Hakim (2015) dalam jurnal dengan judul
Implementasi text nining pada mesin pencarian twitter untuk menganalisis topik-topik
terkait KPK dan JOKOWI dari hasil pembahasan mengenai aplikasi teks mining
untuk penanganan data besar hasil pencarian topik-topik terkait pada search engine
twitter dengan studi kasus topik KPK dan Jokowi maka dapat ditarik kesimpulan yang
menghasilkan sebuah informasi bahwa:
1. Terdapat kesamaan topik utama yang digunakan pada tweet-tweet ketika
pengguna twitter mencari informasi seputar topik KPK dan Jokowi pada search
engine twitter yaitu topik utama KPK dan Polri.
2. Berdasarkan ukuran asosiasi kata dengan nilai korelasi tidak kurang dari 0.30,
kata-kata yang berasosiasi dengan kata KPK adalah kata Polri dan Lapor.
Sedangkan kata-kata yang berasosiasi dengan Jokowi dimana nilai korelasi tidak
kurang dari 0.30 adalah kata Widodo, Menghadiri, Izin, Pintu, Satu, Investor,
Urus, Presiden, Nilai, Aktif, Bahaya, Manuver, Menang, Mulai, Relawan, dan
Sejumlah. Hasil pengelompokan kata berdasarkan tingkat keseringan kata-kata
muncul bersamaan didapatkan 10 kelompok untuk kedua topik (KPK dan
Jokowi).
3. Terdapat kesamaan topik yang dibahas pada pengelompokan tweet untuk topik
KPK dan Jokowi yaitu tweet yang membahas mengenai topik "kpk, polri, dan
jokowi. Kesamaan-kesamaan penggunaan kata pada tweet untuk dua topik yang
berbeda menunjukan adanya hubungan dari kedua topik tersebut, dimana
ditunjukan dari hasil analisis mengenai data tweet topik KPK dan data tweet topik
Jokowi yang memiliki keseringan dan kesamaan penggunaan kata pada tweet.
Keyword : Teks Mining, Twitter, Mesin Pencarian.
BAB III
METODE PENELITIAN

Penelitian ini menggunakan data-data teks pada media sosial twitter yang
berkaitan dengan kata kunci banjir. Tujuan akhir penelitian ini adalah dapat
mendeskripsikan topik utama dan kata - kata yang melekat pada banjir, serta
mengelompokkan topik - topik lain yang saling berkaitan. Populasi dari penelitian ini
adalah berita/dokumen (teks) pada sosial media twitter yang termasuk dalam kategori
microblogging tentangbanjir. Tweet-tweet pengguna pada twitter dapat dijadikan
sebagai topik-topik pada media online. Sampel dan Teknik Pengambilan Sampel
Sampel yang diambil adalah data teks dari twitter yang diambil dengan permintaan
kepada sistem sebanyak 250 tweet pada periode waktu tertentu.
Sumber Data dan Metode Pengumpulan Data Data yang digunakan adalah data
primer yang dikumpulkan dari media sosial twitter. Data diambil dengan cara
mendownload dan mengumpulkan data tweet mengenai banjir dari hasil pencarian
search engine twitter (mesin pencarian twitter) dan menyimpannya menggunakan
suatu program dengan software R. Tahapan Analisis Data Secara umum, tahapan
melakukan analisis text mining dapat digambarkan dalam diagram alir berikut :

Gambar 3.1 Diagram alir


BAB IV
HASIL DAN PEMBAHASAN

Contoh scriptnya :

install.packages("twitteR")
install.packages("ROAuth")
install.packages("tm")
install.packages("ggplot2")
install.packages("wordcloud")
install.packages("plyr")
install.packages("RTextTools")
install.packages("devtools")
install.packages("e1071")
install.packages("fpc")
install.packages("cluster")
install.packages("datasets")

require(devtools)
library(e1071)
library(twitteR)
library(ROAuth)
library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(fpc)
library(cluster)
library(datasets)

setup_twitter_oauth("JsZqhclFgxd0U1VG1jmeKzLfB","40l9QX8fZOscjgG1UvFmhF
OoziedKnw8HJWYO7c5sO7T7fXBcn","861413684467220480-
gGYKh6cU87FrKem09cYUvP08iBUvbTv","agaOa07UN9S5xhZUZ7B41tfGdO2qtX
l8LHhSTTGpH8ZSn")

#WORDCLOUD

tweets <- userTimeline("Banjir", n = 250)


show(tweets)
n.tweet <- length(tweets)
# convert tweets to a data frame
tweets.df <- twListToDF(tweets)

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


# convert to lower case
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
# remove URLs
removeURL <- function(x) gsub("http[^[:space:]]*", "", x)
myCorpus <- tm_map(myCorpus, content_transformer(removeURL))
# remove anything other than English letters or space
removeNumPunct <- function(x) gsub("[^[:alpha:][:space:]]*", "", x)
myCorpus <- tm_map(myCorpus, content_transformer(removeNumPunct))
# remove stopwords
myStopwords <- c(setdiff(stopwords('english'), c("r", "big")),"use", "see", "used",
"via", "amp")
myCorpus <- tm_map(myCorpus, removeWords, myStopwords)
# remove extra whitespace
myCorpus <- tm_map(myCorpus, stripWhitespace)
# keep a copy for stem completion later
myCorpusCopy <- myCorpus

tdm <- TermDocumentMatrix(myCorpus)


term.freq <- rowSums(as.matrix(tdm))

term.freq <- subset(term.freq, term.freq >= 20)


df <- data.frame(term = names(term.freq), freq = term.freq)

ggplot(df, aes(x=term, y=freq)) + geom_bar(stat="identity") +


xlab("Terms") + ylab("Count") + coord_flip() +
theme(axis.text=element_text(size=7))

m <- as.matrix(tdm)
# calculate the frequency of words and sort it by frequency
word.freq <- sort(rowSums(m), decreasing = T)
# colors
pal <- brewer.pal(9, "BuGn")[-(1:4)]

# plot word cloud

wordcloud(words = names(word.freq), freq = word.freq, min.freq = 3,


random.order = F, colors = pal)

#k-means clustering
d <- dist(term.freq, method="euclidian")
carsCluster <- kmeans(term.freq, 3)
clusplot(as.matrix(d), carsCluster$cluster, color=T, shade=T, labels=3, lines=0)
Gambar isi dari proses run script diatas :
Gambar
hasil
perhitungan
(Plots) :
Gambar hasil perhitungan K-mean twitter banjir

Gambar hasil Clusplot matrix :

Hirarki
Clustering dengan pendekatan hirarki mengelompokkan data yang mirip dalam hirarki
yang sama dan yang tidak mirip di hirarki yang agak jauh. Ada dua metode yang
sering diterapkan yaitu agglomerative hieararchical clustering dan divisive
hierarchical clustering. Agglomerative melakukan proses clustering dari N cluster
menjadi satu kesatuan cluster, dimana N adalah jumlah data, sedangkan divisive
melakukan proses clustering yang sebaliknya yaitu dari satu cluster menjadi N cluster.
Beberapa metode hierarchical clustering yang sering digunakan dibedakan menurut
cara mereka untuk menghitung tingkat kemiripan. Ada yang menggunakan Single
Linkage, Complete Linkage, Average Linkage, Average Group Linkage dan lain-
lainnya. Seperti juga halnya dengan partition-based clustering, kita juga bisa memilih
jenis jarak yang digunakan untuk menghitung tingkat kemiripan antar data.

Salah satu cara untuk mempermudah pengembangan dendogram untuk hierarchical


clustering ini adalah dengan membuat similarity matrix yang memuat tingkat
kemiripan antar data yang dikelompokkan. Tingkat kemiripan bisa dihitung dengan
berbagai macam cara seperti dengan Euclidean Distance Space. Berangkat dari
similarity matrix ini, kita bisa memilih lingkage jenis mana yang akan digunakan
untuk mengelompokkan data yang dianalisa.

Menghitung data menggunakan metode Hirarki ditwitter dengan bahasa R

Contoh scriptnya :

install.packages("twitteR")
install.packages("ROAuth")
install.packages("tm")
install.packages("ggplot2")
install.packages("wordcloud")
install.packages("plyr")
install.packages("RTextTools")
install.packages("e1071")

library(e1071)
library(twitteR)
library(ROAuth)
library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(e1071)

setup_twitter_oauth("JsZqhclFgxd0U1VG1jmeKzLfB","40l9QX8fZOscjgG1UvFmhF
OoziedKnw8HJWYO7c5sO7T7fXBcn","861413684467220480-
gGYKh6cU87FrKem09cYUvP08iBUvbTv","agaOa07UN9S5xhZUZ7B41tfGdO2qtX
l8LHhSTTGpH8ZSn")

tweets <- userTimeline("Banjir", n = 10)


n.tweet <- length(tweets)
# convert tweets to a data frame
tweets.df <- twListToDF(tweets)
myCorpus <- Corpus(VectorSource(tweets.df$text))
# convert to lower case
myCorpus <- tm_map(myCorpus, content_transformer(tolower))
# remove URLs
removeURL <- function(x) gsub("http[^[:space:]]*", "", x)
myCorpus <- tm_map(myCorpus, content_transformer(removeURL))
# remove anything other than English letters or space
removeNumPunct <- function(x) gsub("[^[:alpha:][:space:]]*", "", x)
myCorpus <- tm_map(myCorpus, content_transformer(removeNumPunct))
# remove stopwords
myStopwords <- c(setdiff(stopwords('english'), c("r", "big")),"use", "see", "used",
"via", "amp")
myCorpus <- tm_map(myCorpus, removeWords, myStopwords)
# remove extra whitespace
myCorpus <- tm_map(myCorpus, stripWhitespace)
# keep a copy for stem completion later
myCorpusCopy <- myCorpus
myCorpus
term.freq <- rowSums(as.matrix(tdm))
tdm <- TermDocumentMatrix(myCorpus)
tdmat <- as.matrix(removeSparseTerms(tdm, sparse=0.3))
# compute distances
distMatrix <- dist(scale(tdm))
fit <- hclust(distMatrix, method="ward.D2")
plot(fit)
fit <- hclust(distMatrix, method="single")
plot(fit)

Gambar isi dari proses run script diatas :


Gambar hasil cluster Dendrogram :
Berikut ini saya akan menghitung dengan menggunakan data sendiri
(PAMABSTRAK):

Contoh Script :

install.packages("RTextTools")
install.packages("e1071")
install.packages("wordcloud")
install.packages("fpc")
install.packages("cluster")

library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(e1071)
#referensi https://rstudio-pubs-
static.s3.amazonaws.com/31867_8236987cf0a8444e962ccd2aec46d9c3.html
cname <- file.path("/resources/data/teks")
cname
dir(cname)
docs <- Corpus(DirSource(cname))

summary(docs)
inspect(docs[2])
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, tolower)
docs <- tm_map(docs, removeWords, c("dapat", "yang","adalah","untuk","dan"))

dtm <- DocumentTermMatrix(docs)


dtm
tdm <- TermDocumentMatrix(docs)
tdm

freq <- colSums(as.matrix(dtm))


length(freq)

m <- as.matrix(dtm)
dim(m)
write.csv(m, file="dtm.csv")
dtms <- removeSparseTerms(dtm, 0.1) # This makes a matrix that is 10% empty
space, maximum.
inspect(dtms)
ord <- order(freq)
freq[head(ord)]
findFreqTerms(dtm, lowfreq=10)
library(ggplot2)
wf <- data.frame(word=names(freq), freq=freq)
head(wf)
p <- ggplot(subset(wf, freq>50), aes(word, freq))
p <- p + geom_bar(stat="identity")
p <- p + theme(axis.text.x=element_text(angle=45, hjust=1))
p
library(wordcloud)
set.seed(142)
wordcloud(names(freq), freq, min.freq=5)
set.seed(142)
wordcloud(names(freq), freq, min.freq=2, scale=c(5, .1), colors=brewer.pal(6,
"Dark2"))
library(cluster)
##dtmss <- removeSparseTerms(dtm, 0.00001) # This makes a matrix that is only
15% empty space, maximum.
##inspect(dtmss)

d <- dist(t(dtms), method="euclidian")


fit <- hclust(d=d, method="ward")
fit
plot(fit, hang=-1)
library(fpc)
library(cluster)
d <- dist(t(dtm), method="euclidian")
kfit <- kmeans(d, 5)
clusplot(as.matrix(d), kfit$cluster, color=T, shade=T, labels=2, lines=0)

pamCluster <- pam(d, 3)


clusplot(as.matrix(d), pamCluster$cluster, color=T, shade=T, labels=3, lines=0)
si <- silhouette(pamCluster)
plot(si) # silhouette plot

Gambar Run Program :


Berikut Gambar Plot hasil perhitungan :
BAB V
KESIMPULAN DAN REKOMENDASI

Klustering adalah mengelompokkan variabel ke dalam kelompok berdasarkan


kesamaan tertentu. Sedangkan R adalah suatu perangkat lunak yang digunakan untuk
manipulasi data, perhitungan, simulasi, penayangan grafik, dan sekaligus sebagai
bahasa pemograman yang bersifat interpreter R. Dari hasil pembahasan diatas
mengenai aplikasi teks mining untuk penanganan data besar hasil pencarian topik-
topik terkait pada search engine twitter dengan studi kasus topik banjir maka dapat
ditarik kesimpulan yang menghasilkan sebuah informasi atau pemberitaan yang
sedang hangat dibicarakan dan diberitakan oleh media mengenai banjir bahwa
terdapat topik utama yang digunakan pada tweet-tweet ketika pengguna twitter
mencari informasi seputar topik banjir pada search engine dapat diketahui kata (topik)
yang sering muncul dalam word cloud bersamaan dengan kata banjir adalah kata
yang menjadi topik utama dan sering muncul saat pengguna twitter mencari
informasi terkait banjir pada search engine twitter.
DAFTAR PUSTAKA

Adiyana Imam dan Fajriya Hakim, 2015 Implementasi text nining pada mesin
pencarian twitter untuk menganalisis topik-topik terkait KPK dan JOKOWI,
Jurnal Prosiding Pendidikan Matematika UMS

Agusta Yudi, 2007. K-Means Penerapan Permasalahan dan Metode Terkait, Jurnal
Sistem dan Informatika Vol. 3 (Pebruari 2007), 47-60.

Zhao, Yanchang 2011. R and Data Mining: Examples and Case Studies. Elsevier.
sumber: http:// http://www.rdatamining.com/examples/kmeans-clustering
(29 November 2017)

https://www.academia.edu/33311024/KMeans_PAM_Hirarki.docx

Anda mungkin juga menyukai