Organizational Network Analysis sebagai SOCIAL CAPITAL

Menurut Greg Newman, Organizational Network Analysis (ONA) merupakan data dinamis dalam suatu organisasi yang dikenal dengan SOCIAL CAPITAL dan menjadi pelengkap bagi informasi mengenai HUMAN CAPITAL yang telah ada, namun data-data HUMAN CAPITAL lebih statis. Social Capital termasuk networks dan relationships antar karyawan akan membantu mereka mengerjakan tugasnya menjadi lebih optimal, dan memberikan pengaruh yang besar pada performance.

source: https://www.linkedin.com/pulse/retain-release-data-you-need-react-correctly-when-employee-newman

Saat ini Organizational Network Analysis telah menjadi trend yang banyak digunakan dalam HR Analytics.

Organizational Network Analysis (ONA) menunjukkan koneksi dalam organisasi yang tidak dapat diidentifikasi dari struktur hierarki. Hal ini juga merupakan kekuatan terbesar menggunakan metode ONA. Setiap organisasi memiliki individu-individu yang berfungsi sebagai sebuah simpul (node). Individu-individu tersebut merupakan faktor penting dalam pertukaran ide atau informasi. Koneksi antar individu berupa ide atau informasi yang saling berinteraksi merupakan hal yang sangat penting dalam organisasi.

Terminologi ONA telah dijelaskan pada artikel sebelumnya, bisa dilihat disini.

Pertama kali, mari kita membuat stuktur organisasi yang bersifat hirarki

Membuat pola hirarki report

(edgelist <- emps |> 
    dplyr::inner_join(
      emps, 
      by = c("EmployeeId" = "ReportsTo")
    ) |> 
    dplyr::select(from = FirstName.x, to = FirstName.y))
##             from          to
## 1 Eddy, Director  Beni, Mrkt
## 2 Eddy, Director  Indah, Fin
## 3 Eddy, Director Galuh, Prod
## 4     Beni, Mrkt   Ani, Mrkt
## 5     Beni, Mrkt  Coki, Mrkt
## 6     Indah, Fin  Julia, Fin
## 7     Indah, Fin   Dodi, Fin
## 8    Galuh, Prod Fatur, Prod
## 9    Galuh, Prod Hanny, Prod

Membuat obyek Grafik

## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
## IGRAPH 7a9459d DN-- 10 9 -- 
## + attr: name (v/c)
## + edges from 7a9459d (vertex names):
## [1] Eddy, Director->Beni, Mrkt  Eddy, Director->Indah, Fin 
## [3] Eddy, Director->Galuh, Prod Beni, Mrkt    ->Ani, Mrkt  
## [5] Beni, Mrkt    ->Coki, Mrkt  Indah, Fin    ->Julia, Fin 
## [7] Indah, Fin    ->Dodi, Fin   Galuh, Prod   ->Fatur, Prod
## [9] Galuh, Prod   ->Hanny, Prod

Tampilkan grafik dendogramnya

## Loading required package: ggplot2

Dari gambar struktur organisasi diatas, apakah Anda bisa menjawab pertanyaan berikut:

  • SIAPAKAH PEMIMPIN SESUNGGUHNYA?

  • SIAPA SAJA ORANG-ORANG YANG “DEKAT” DENGAN DIREKTUR?

Pertanyaan-pertanyaan tersebut akan sulit untuk dijawab, karena ada informasi yang belum lengkap. Informasi yang diperlukan adalah dinamika koneksi informasi pada seluruh karyawan dalam berinteraksi. Salah satu metode yang bisa digunakan untuk menangkap interaksi konektivitas informasi adalah melalui metode Organizational Network Analysis (ONA). Caranya dengan menanyakan secara langsung kepada seluruh karyawan organisasi tersebut untuk memilih, diantara seluruh karyawan yang ada, “Siapa yang menurut Anda paling layak untuk memimpin organisasi ini?”.

Saya akan jelaskan caranya adalah seperti ini:

Bersihkan dulu memori pada komputer Anda

rm(list=ls())

setwd("D:/R/social_network/Rmd")

Panggil library yang akan digunakan

library(igraph)
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble  3.1.8     v dplyr   1.0.9
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## v purrr   0.3.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::as_data_frame() masks tibble::as_data_frame(), igraph::as_data_frame()
## x purrr::compose()       masks igraph::compose()
## x tidyr::crossing()      masks igraph::crossing()
## x dplyr::filter()        masks stats::filter()
## x dplyr::groups()        masks igraph::groups()
## x dplyr::lag()           masks stats::lag()
## x purrr::simplify()      masks igraph::simplify()

Nodes, Ini adalah atribut yang digunakan (Nama, Gender, Bagian)

nodes <- data.frame(
  name = c("Ani","Beni","Coki","Dodi","Eddy", "Fatur","Galuh","Hanny","Indah","Julia"),
  gender = c("wanita", "pria", "pria", "pria","pria", "pria", "wanita", "wanita", "wanita","wanita"),
  bag = c("marketing", "marketing","marketing","finance","director","production","production","production","finance","finance"))

Tampilkan data atribut tersebut dalam bentuk Tabel

DT::datatable(nodes)

Edges, adalah merefleksikan hubungan antar aktor atau entitas yang terjadi dalam network

edges <- data.frame(
  from = c("Ani","Ani","Ani","Beni","Beni","Coki","Eddy","Eddy","Fatur","Fatur","Fatur","Galuh","Galuh","Galuh","Hanny","Hanny","Indah","Julia"),
  to = c("Coki","Dodi","Fatur","Ani","Dodi","Dodi","Beni","Dodi","Coki","Dodi","Galuh","Beni","Dodi","Eddy","Fatur","Galuh","Hanny","Indah")
)

Tampilkan data tersebut dalam bentuk Tabel

DT::datatable(edges)

Membuat obyek grafik

g <- graph.data.frame(edges, directed=F, vertices=nodes)

Visualisasi Grafik

layout1 <- g %>% layout_nicely() ## save layout for reuse
g %>% plot(vertex.size = 35, layout = layout1)

Gunakan warna berbeda untuk posisi marketing, finance dan production

colors = ifelse(V(g)$bag=="marketing" ,"skyblue",
          ifelse(V(g)$bag=="finance" ,"lightgreen", 
          ifelse(V(g)$bag=="production" ,"orange",
                 "grey"))) 
g %>% plot(vertex.size=30, edge.arrow.size=.5,vertex.color=colors, layout=layout1)
legend("bottomright",c("director","marketing","finance","production"),cex=.5,col=c("grey","skyblue","lightgreen","orange"),pch=c(1,1))

##             from          to
## 1 Eddy, Director  Beni, Mrkt
## 2 Eddy, Director  Indah, Fin
## 3 Eddy, Director Galuh, Prod
## 4     Beni, Mrkt   Ani, Mrkt
## 5     Beni, Mrkt  Coki, Mrkt
## 6     Indah, Fin  Julia, Fin
## 7     Indah, Fin   Dodi, Fin
## 8    Galuh, Prod Fatur, Prod
## 9    Galuh, Prod Hanny, Prod
## IGRAPH 7b2751e DN-- 10 9 -- 
## + attr: name (v/c)
## + edges from 7b2751e (vertex names):
## [1] Eddy, Director->Beni, Mrkt  Eddy, Director->Indah, Fin 
## [3] Eddy, Director->Galuh, Prod Beni, Mrkt    ->Ani, Mrkt  
## [5] Beni, Mrkt    ->Coki, Mrkt  Indah, Fin    ->Julia, Fin 
## [7] Indah, Fin    ->Dodi, Fin   Galuh, Prod   ->Fatur, Prod
## [9] Galuh, Prod   ->Hanny, Prod

Dari gambar struktur organisasi diatas, Pertanyaan yang sama:

Gunakan perhitungan Degree of Centrality

degree <- g %>% degree() %>% print()
##   Ani  Beni  Coki  Dodi  Eddy Fatur Galuh Hanny Indah Julia 
##     4     4     3     6     3     5     5     3     2     1

Jawabannya adalah DODI, meskipun ia hanya sebagai staf Finance, namun dipilih oleh karyawan lain sebagai figur yang paling layak untuk memimpin organisasi ini. Dodi adalah the Real Leader atau biasa disebut the Informal Leader.

  • SIAPA SAJA ORANG-ORANG YANG “DEKAT” DENGAN DIREKTUR?

Kita bisa mengetahui siapa saja orang-orang yang memiliki “kedekatan” dengan Direktur. Caranya adalah sebagai berikut:

friends <- ego(g,order=1,nodes="Eddy",mindist=1)[[1]] %>% print()
## + 3/10 vertices, named, from 7b10959:
## [1] Beni  Dodi  Galuh
friends
## + 3/10 vertices, named, from 7b10959:
## [1] Beni  Dodi  Galuh

Jawabannya adalah BENI, DODI dan GALUH. Dengan mengetahui informasi ini akan memudahkan HR untuk memberikan INSIGHT kepada organisasi. Sehingga organisasi akan menjadi lebih efektif dalam proses komunikasi dan penentuan kebijakan-kebijakan penting yang berkaitan dengan pengambilan keputusan.