Klaster R-Support

Penulis: Zulfikar D. W. Putra (PhD Candidate, Centre for Advanced Spatial Analysis, UCL)

 

Dalam berbagai sisi kehidupan, berbagai entitas melakukan interaksi dan berhubungan satu dengan yang lain – seseorang berkomunikasi dengan orang lain, manusia bermain dengan kucing, lebah mengambil sari bunga, hingga gaya gravitasi antara planet dan bintang – semuanya itu saling berinteraksi untuk mencapai sebuah keterhubungan dan keseimbangan. Namun demikian, terdapat perbedaan tingkatan interaksi yang dilakukan antar entitas yang kemudian dapat memengaruhi seberapa besar tingkat saling memengaruhi di antara mereka. Salah satu interaksi yang paling menarik untuk  ditelusuri lebih lanjut adalah interaksi antar manusia. Seperti yang dikatakan filsuf Yunani Kuno, Aristoteles, “Man is by nature a social animal”, yang mana manusia pada dasarnya memerlukan interaksi dengan orang lain untuk bertahan hidup. Dengan populasi penduduk dunia hampir mencapai 8 miliar orang, interaksi tersebut makin kompleks dan tidak dapat diukur hanya dengan melihat secara langsung. Apalagi saat ini, interaksi tersebut tidak hanya dilakukan secara luring tetapi juga daring. Dengan memahami tingkat interaksi dan keterhubungan antara seseorang dengan orang lain, kita dapat lebih mudah untuk mengukur kesamaan preferensi (seperti, aliran musik), kualitas kehidupan sosial (seperti, solidaritas), segregasi sosial (seperti, polaritas kesukuan dan agama), dan aliran informasi dari satu orang ke orang lain (seperti, gosip). Pemahaman terhadap hal-hal tersebut dapat memudahkan pengambil keputusan dalam menentukan key person, perantara, maupun lingkaran sosial yang perlu dipengaruhi untuk mencapai sebuah tujuan.

Social Network Analysis (SNA) kemudian diperkenalkan sebagai salah satu alternatif metode untuk mengukur interaksi tersebut secara kuantitatif dan visual.

Dalam SNA, terdapat dua elemen yang paling penting, yakni node dan edge. Node merupakan representasi dari individu, misalnya seseorang atau organisasi. Edge merupakan garis yang menghubungkan antar node. Dalam Bahasa pemrograman R, SNA dapat dieksekusi dengan menggunakan package “igraph” dengan memanipulasi dan mengukur node (dalam package “igraph” disebut dengan “vertex”) dan edge. Dalam artikel ini, saya akan berbagi pengetahuan tentang eksekusi SNA dalam R dengan menggunakan dummy data untuk mengukur tiga tingkatan sentralitas (degree, betweneess, dan closeness centrality) serta derajat interaksi antar node. Analisis tersebut hanya berfokus pada interaksi antar node saja dengan tidak memperhitungkan arah interaksinya. Misalnya, pada sebuah interaksi, A memberi sebuah informasi ke B, dalam analisis ini, arah pemberian informasi tersebut “A à B” tidak diperhitungkan, sehingga analisis yang dilakukan hanya sebatas “A ­– B”. Analisis ini juga tidak menggunakan data dari sosial media, melainkan menggunakan data interaksi luring.

Bagian 1 Persiapan Data

Tipikal data yang perlu disiapkan adalah “nodes.csv” dan “edges.csv.” Dalam “nodes.csv”, tiap individu perlu diberi label “id” untuk merepresentasikan kategori mereka dalam jejaring sosial. Dalam “edges.csv”, tiap id nodes menjadi sumber entitas yang memiliki interaksi dengan target tertentu serta memiliki tingkat interaksi tertentu (weight). Keseluruhan data dapat diambil melalui wawancara, kuesioner, maupun digital (seperti, media sosial).

Tabel 1. Format data dalam nodes.csv dan edges.csv (dummy data)

Masing-masing data kemudian dimasukkan ke dalam aplikasi R menggunakan fungsi “read.csv”.

Setelah itu, kita dapat secara langsung membuat network dengan data nodes dan edges tersebut menggunakan fungsi “graph_from_data_frame” lalu memvisualkannya. Namun demikian, hal ini belum cukup karena kita belum bisa mengukur sentralitas jejaring tersebut dan visualisasi jejaring masih sangat kacau dan tidak menarik.

Keterangan: Hasil kebun penulis pada musim panas 2022 Sumber: dokumentasi pribadi.

Bagian 2 Menganalisis dan Memvisualkan Network secara Estetis

Hal pertama yang perlu dilakukan dalam bagian ini adalah menentukan jenis-jenis warna yang akan digunakan untuk tiap kategori nodes dan edges. Jumlahnya disesuaikan dengan total kategori yang ada. Nama-nama warna dalam R dapat dilihat pada situs web berikut: https://r-charts.com/colors/.

Selanjutnya, kita lakukan analisis sentralitas dan interaksi dalam network yang telah kita miliki. Untuk analisis degree, betweenness, dan closeness centrality, coding yang digunakan sama saja. Untuk itu, saya akan menunjukan analisis degree centrality sebagai contoh. Pertama, kita perlu mengukur tingkat degree centrality dalam network  kita terlebih dahulu dengan menggunakan fungsi “degree()” serta kita juga dapat mengonversinya menjadi data frame bila dibutuhkan untuk analisis lebih lanjut. Kita juga dapat melihat distribusi nilai degree centrality melalui fungsi “hist()”.  Setelah itu, kita dapat memvisualkan network sesuai dengan besarnya nilai degree centrality tiap nodes.

Untuk mempercantik visual network tersebut, kita dapat mengatur ukuran dan warna edges. Kita juga dapat mengatur panah arah edges bila diperlukan.

Untuk analisis tingkat interaksi dalam network, kita dapat melakukannya dengan memasukkan variable weight ke dalam edges menggunakan fungsi “E()” serta memanipulasi rentang nilai tiap edges.

Bagian 3 Membuat Legenda Network

Setelah berhasil membuat network berdasarkan tingkatan sentralitas dan interaksinya, hal berikut yang perlu dilakukan adalah memberi legenda pada tiap visual network tersebut. Pertama, kita perlu membuat legenda kategori nodes dengan menggunakan fungsi “legend()”. Kemudian, kita perlu membuat keterangan pada tiap besaran nodes menggunakan beberapa fungsi, seperti:

  • jumlah kategori nodes (“n”),
  • ukuran nodes (“seq_len()”),
  • rentang nilai sentralitas (“cut()”),
  • ukuran nodes yang disesuaikan dengan rentang nilainya (“size_vec()”),
  • skala legenda,
  • posisi legenda,
  • dan simbol yang digunakan, yakni lingkaran.

Hal yang sama juga dilakukan untuk membuat legenda tingkat interaksi network. Bedanya, pada tingkat interaksi network, simbol yang digunakan adalah garis.

Di bawah ini merupakan contoh hasil akhir SNA (degree centrality dan tingkat interaksi) dengan menggunakan dummy data dengan contoh konteks jejaring sosial pada lingkungan pendidikan. Interpretasi dari visual tersebut adalah network ini memiliki dua key person, yakni P10 dan P11 yang merupakan anggota komite yang mana tiap orang dalam network ini memiliki interaksi dan hubungan dengan anggota komite tersebut. Dapat disimpulkan bahwa kedua orang tersebut merupakan pemimpin dari network ini.

Gambar 2. Contoh Hasil Akhir: Degree Centrality

Gambar 3. Contoh Hasil Akhir: Interaction Rate (dengan nilai degree centrality)

Keseluruhan data dan coding dalam artikel ini dapat diakses melalui https://github.com/zulfikardito/SocialNetworkAnalysis.git. Coding tersebut tentunya masih memerlukan berbagai perbaikan, sehingga saya sangat mengapresiasi setiap saran dan masukan untuk meningkatkan kualitas coding. Selamat mencoba menerapkan metode SNA ini dalam R secara mandiri dan menemukan berbagai konstruksi sosial!

Data dan code R: dapat diakses di https://github.com/zulfikardito/SocialNetworkAnalysis.git.

Daftar rekomendasi bacaan:

  1. Borgatti, S. P., Everett, M. G., Johnson, J. C., & Agneessens, F. (2022). Analyzing social networks using R (1st ed.). Sage, London.
  2. Borgatti, S. P., Everett, M. G., & Johnson, J. C. (2013). Analyzing social networks (1st ed.). Sage, London.

Data Tutorial:
https://study.sagepub.com/borgatti2e/student-resources/ucinet-quick-start-guide

*) Artikel ini merupakan aset pengetahuan organisasi dengan nomor registrasi DOCTRINE UK Artikel No. 2022-09-3-MS.