Social Network Analysis Menggunakan R

Muhammad Wildan Al Azkia
3 min readJan 6, 2019

--

Assalamualaikum teman..

Social media saat ini telah banyak dimanfaatkan sebagai media untuk komunikasi, sosialisasi, bahkan untuk keperluan kampanye politik, iklan/marketing, e-commerce, distribusi berita, kontrol sosial serta sebagai media interaksi antar penggemar dengan para public figure. Hal itu tentu saja dapat memberikan dampak positif maupun negatif pada masyarakat.

Gambar oleh :https://twitter.com/nephilaxmus

Gambar di atas merupakan contoh Social Network Analysis berdasarkan social media twitter, namun di tulisan saya kali ini berdasarkan ilmu yang saya miliki hanya ingin mengenalkan dan membuka wawasan para pembaca semua jadi saya hanya menuliskan terkait pengenalan Social Network Analysis Saja.

Postingan kali ini sebenarnya masih berkaitan dengan tulisan saya beberapa waktu lalu yang membahas mengenai mengambil data di Twitter , pada tulisan kali ini saya masih menggunakan data tersebut untuk membuat Social network analysis menggunakan software R studio.

Install dan load package seperti pada script berikut

library(networkD3)
library(igraph)
library(stringr)
library(twitteR)
library(plyr)
#read data dari sebelummnya
d = twListToDF(readRDS('tweet-mentah10k.rds'))
alltweets<-d[1:300,]
alltweets$text

Setelah package sukses terinstall dan sudah di load kedalam Software R Studio , kemudian kita load kembali data mentah pada tulisan saya sebelumnya ,saya hanya mengambil 300 tweet untuk membuat social networknya, namun data yang di ambil bisa saja lebih dari itu namun semakin besar data maka semakin lama juga komputer dan software untuk mengolahnya (disesuaikan dengan spesifikasi komputer masing masing).

#load data dari data sebelumnya
d = twListToDF(readRDS('tweet-mentah10k.rds'))
alltweets<-d[1:300,]
alltweets$text

setelah data sudah di load maka kita akan membuat tabel yang memperlihatkan hubungan antara Tweet dan retweet.

#split the data into two sets; one for retweet network and the other for mention network.
#create an edge-list for retweet network
sp = split(alltweets, alltweets$isRetweet)
rt = mutate(sp[['TRUE']],
sender = substr(text, 5, regexpr(':', text) - 1))
el = as.data.frame(cbind(sender = tolower(rt$sender), receiver = tolower(rt$screenName)))
el[1:10,] #show the first 5 edges in the edgelist
Output Tweet dan Retweet

Berdasarkan output tersebut dapat diperoleh siapa pengirim tweet dan penerimanya sehingga bisa di bentuk sebuah jaringan (Network).

Kemudian membuat graph nya agar bisa dilihat yang merupakan grafik retweet antar pengguna twiter pada saat mengambil tweet dengan sebuah keyword.

#
rt_graph <- graph_from_data_frame(d=el, directed=T)
glay = layout.fruchterman.reingold(rt_graph)
plot(rt_graph)

Gambar di atas merupakan hasil dari graph nya yang diperoleh.

Kemudian kita lanjutkan dengan membuat social Network nya seperti pada script berikut..

#Membuat Social Network
wc <- cluster_walktrap(rt_graph)
members <- membership(wc)
d3_rt <- igraph_to_networkD3(rt_graph, group = members)
forceNetwork(Links = d3_rt$links, Nodes = d3_rt$nodes,
fontSize = 26,
Source = 'source',
Target = 'target',
linkColour = '#123',
NodeID = 'name',
Group = 'group',
zoom=TRUE)

Demikianlah hasil output sederhananya terlihat banyak titik-titik yang berbeda, masing-masing titik ini mewakili sebuah username , titik tengah merupakan akun sentral yang biasanya di kelilingi oleh titik lainnya yang artinya akun tersebut kemudian di balas atau di retweet oleh akun lainnya.

Terlihat pada gambar kumpulan dari titik-titik ini membentuk sebuah klaster/kelompok dimana masing-masing kelompok ini membiliki bahasan yang berbeda.

selain satu kelompok titik di tengah gambar , juga ada beberapa kelompok yang tersebar dan juga memiliki titik sentral nya sendirir.

Titik atau username yang berhubungan ini adalah sebuah interaksi antara satu dengan yang lainnya.

--

--