1 Pendahuluan

1.1 Latar Belakang Kasus

Ketersediaan sarana kesehatan merupakan salah satu indikator utama dalam menilai kualitas pelayanan kesehatan di suatu wilayah. Setiap provinsi di Indonesia memiliki tingkat pemerataan fasilitas kesehatan yang berbeda-beda, seperti rumah sakit, puskesmas, poliklinik, klinik bersalin, hingga apotek. Ketimpangan distribusi sarana kesehatan dapat menyebabkan perbedaan akses masyarakat terhadap layanan kesehatan dasar maupun lanjutan, sehingga berdampak pada kualitas hidup dan pencapaian standar pelayanan minimal bidang kesehatan.

Untuk memahami pola kemiripan dan perbedaan antarprovinsi berdasarkan keberadaan sarana kesehatan, diperlukan analisis pengelompokan (clustering). Melalui metode clustering, provinsi-provinsi dapat dikelompokkan ke dalam beberapa cluster yang memiliki karakteristik fasilitas kesehatan yang serupa. Informasi ini dapat digunakan untuk melihat tingkat pemerataan sarana kesehatan, mengidentifikasi kelompok provinsi yang relatif tertinggal atau unggul, serta membantu pengambil kebijakan dalam merumuskan strategi peningkatan pemerataan infrastruktur kesehatan di tingkat nasional.

Data yang digunakan pada penelitian ini merupakan data jumlah desa/kelurahan yang memiliki sarana kesehatan menurut provinsi pada tahun 2018 yang bersumber dari Badan Pusat Statistik (BPS). Variabel yang tersedia mencakup beberapa jenis sarana kesehatan seperti Rumah Sakit, Rumah Sakit Bersalin, Poliklinik, Puskesmas, Puskesmas Pembantu, dan Apotek.

Data ini disajikan pada tingkat provinsi sehingga setiap baris mewakili satu provinsi beserta jumlah desa/kelurahan di provinsi tersebut yang memiliki masing-masing jenis sarana kesehatan. Berikut ditampilkan cuplikan sebagian data untuk memberikan gambaran mengenai struktur dan format data yang digunakan dalam analisis.

library(readxl)
library(knitr)

data_mentah <- read_excel("DATA_SARANA_KESEHATAN.xlsx", sheet = 1)
kable(head(data_mentah), caption = "Cuplikan Data Sarana Kesehatan")
Cuplikan Data Sarana Kesehatan
Provinsi Rumah Sakit Rumah Sakit Bersalin Poliklinik Puskesmas Puskesmas Pembantu Apotek
ACEH 64 225 258 395 971 346
SUMATERA UTARA 199 441 800 661 1887 740
SUMATERA BARAT 54 139 127 294 721 257
RIAU 55 207 329 272 1033 351
JAMBI 36 151 103 231 654 211
SUMATERA SELATAN 65 248 195 403 935 244

Sumber data: https://shorturl.at/jI2n0

1.2 Latar Belakang Metode

Analisis klaster hierarki merupakan metode pengelompokan yang menyusun objek berdasarkan tingkat kemiripan secara bertingkat, menghasilkan struktur dendrogram sebagai representasi proses penggabungan (Suraya & Wijayanto, 2022). Pengukuran kemiripan antar-objek dilakukan melalui ukuran jarak, di mana Euclidean sering digunakan untuk data kontinu, Manhattan lebih tahan terhadap pencilan, dan Mahalanobis mempertimbangkan korelasi antar variabel sehingga sesuai untuk data multivariat yang saling berhubungan (Yahya dkk., 2023). Pemilihan ukuran jarak sangat menentukan struktur klaster yang terbentuk karena menjadi dasar dalam menghitung kedekatan antar objek.

Selain jarak, metode penggabungan atau linkage juga berpengaruh terhadap hasil klaster. Single linkage menggabungkan klaster berdasarkan jarak terdekat, complete linkage berdasarkan jarak terjauh, average linkage menggunakan rata-rata seluruh pasangan jarak, centroid linkage menggunakan jarak antar pusat klaster, sedangkan Ward’s method menggabungkan klaster dengan meminimalkan kenaikan variansi dalam klaster sehingga sering menghasilkan klaster yang lebih kompak (Pratiwi, 2020). Dalam penerapannya, analisis klaster hierarki memerlukan kondisi tertentu, seperti sampel yang representatif agar pola dalam populasi tidak terdistorsi, serta tidak adanya multikolinearitas tinggi, karena korelasi antar variabel yang sangat kuat dapat memengaruhi perhitungan jarak dan menyebabkan struktur klaster menjadi bias (Yahya dkk., 2023).

Untuk menilai kualitas hasil pengelompokan, diperlukan indeks validasi internal. Indeks Connectivity menilai apakah objek-objek yang seharusnya berdekatan ditempatkan dalam klaster yang sama; indeks Silhouette mengukur keseimbangan antara kekompakan dalam klaster dan pemisahan antar klaster, dengan nilai mendekati 1 menandakan klaster yang baik; sedangkan indeks Dunn menilai rasio antara jarak minimum antar klaster dan diameter maksimum klaster sehingga semakin besar nilainya, semakin jelas struktur klaster yang terbentuk (Ramadhan dkk., 2025). Kombinasi pemilihan jarak, linkage, pemenuhan asumsi, dan validasi klaster inilah yang memastikan analisis klaster hierarki memberikan hasil yang stabil dan dapat diinterpretasikan secara akurat.

1.3 Tinjauan Pustaka

Penjelasan lebih lanjut mengenai metode yang digunakan pada penelitian ini.

1.3.1 Analisis Klaster Hirarki

Analisis klaster hirarki merupakan metode pengelompokan yang menyusun objek berdasarkan tingkat kemiripan secara bertahap, menghasilkan struktur bertingkat yang divisualisasikan melalui dendrogram. Proses klastering dilakukan melalui dua pendekatan, yaitu agglomerative (penggabungan dari objek menjadi klaster besar) dan divisive (pemecahan dari satu klaster besar menjadi klaster lebih kecil). Metode yang paling umum digunakan adalah agglomerative hierarchical clustering.

1.3.2 Ukuran Jarak pada Klaster

Ukuran jarak menentukan seberapa mirip atau tidak mirip dua objek dalam dataset. Tiga ukuran yang umum digunakan adalah:

  • Jarah Euclidean

Jarak Euclidean merupakan jarak lurus antara dua objek dalam ruang berdimensi \(p\). Rumusnya adalah:

\[ d_E(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^{p} (x_i - y_i)^2} \]

  • Jarak Manhattan

Jarak Manhattan menghitung jumlah selisih absolut antar-variabel:

\[ d_M(\mathbf{x}, \mathbf{y}) = \sum_{i=1}^{p} |x_i - y_i| \]

  • Jarak Mahalanobis

Jarak Mahalanobis mempertimbangkan kovarian antar-variabel:

\[ d_{Mah}(\mathbf{x}, \mathbf{y}) = \sqrt{ (\mathbf{x} - \mathbf{y})^\top \mathbf{S}^{-1} (\mathbf{x} - \mathbf{y}) } \]

1.3.3 Metode Penggabungan (Linkage Methods)

Metode linkage digunakan untuk menentukan bagaimana jarak antar klaster dihitung pada analisis klaster hierarki. Berbagai metode linkage menghasilkan bentuk klaster yang berbeda tergantung pada cara jarak antar kelompok ditentukan.

  • Single Linkage

Single linkage menghitung jarak minimum antara dua klaster. Rumusnya:

\[ D_{\text{single}}(A, B) = \min_{i \in A,\, j \in B} d(i,j) \]

  • Complete Linkage

Complete linkage menggunakan jarak maksimum antara dua klaster:

\[ D_{\text{complete}}(A, B) = \max_{i \in A,\, j \in B} d(i,j) \]

  • Average Linkage

Average linkage menghitung rata-rata seluruh jarak antar objek pada dua klaster:

\[ D_{\text{average}}(A, B) = \frac{1}{|A|\,|B|} \sum_{i \in A} \sum_{j \in B} d(i,j) \]

  • Centroid Linkage

Centroid linkage menggunakan jarak antara titik pusat (centroid) dua klaster:

\[ D_{\text{centroid}} = \left\| \mathbf{c}_A - \mathbf{c}_B \right\| \]

dengan \(\mathbf{c}_A\) dan \(\mathbf{c}_B\) adalah centroid klaster A dan B.

  • Ward’s Method

Metode Ward menggabungkan dua klaster yang menghasilkan peningkatan terkecil pada jumlah kuadrat dalam-klaster (within-cluster sum of squares). Rumus perubahan variansnya:

\[ \Delta(A, B) = \frac{|A||B|}{|A| + |B|} \left\| \mathbf{c}_A - \mathbf{c}_B \right\|^2 \]

Metode ini biasanya menghasilkan klaster yang paling seimbang dan kompak.

1.3.4 Asumsi dalam Analisis Klaster

  • Uji Representativitas Sampel

Uji representativitas digunakan untuk menilai apakah data sampel cukup mewakili populasi sehingga hasil klaster dapat digeneralisasikan. Salah satu pendekatan yang digunakan adalah dengan melihat sampling adequacy melalui nilai Kaiser-Meyer-Olkin (KMO). Nilai KMO berada pada rentang 0 hingga 1, di mana nilai di atas 0.5 menunjukkan bahwa sampel cukup layak untuk dianalisis lebih lanjut.

Rumus KMO adalah:

\[ \text{KMO} = \frac{\sum\sum r_{ij}^2} {\sum\sum r_{ij}^2 + \sum\sum q_{ij}^2} \]

dengan \(r_{ij}\) adalah korelasi antar variabel dan \(q_{ij}\) adalah korelasi parsialnya.

Hipotesis Uji KMO
- \(H_0\): Sampel tidak representatif (KMO < 0.5)
- \(H_1\): Sampel representatif (KMO ≥ 0.5)

Jika nilai KMO ≥ 0.5 maka data dianggap memadai untuk dilakukan pengelompokan.

  • Uji Non-Multikolinearitas

Multikolinearitas antarkolom dapat mempengaruhi perhitungan jarak pada analisis klaster, terutama pada metode yang sensitif terhadap korelasi, seperti Mahalanobis. Uji non-multikolinearitas dilakukan dengan melihat nilai Variance Inflation Factor (VIF) untuk setiap variabel.

Rumus VIF adalah:

\[ \text{VIF}_j = \frac{1}{1 - R_j^2} \]

dengan \(R_j^2\) adalah koefisien determinasi hasil regresi variabel ke-\(j\) terhadap variabel lain.

Hipotesis Uji VIF
- \(H_0\): Tidak terdapat multikolinearitas (VIF ≤ 10)
- \(H_1\): Terdapat multikolinearitas (VIF > 10)

Jika semua variabel memiliki VIF ≤ 10, maka data dianggap tidak memiliki multikolinearitas yang mengganggu dan layak digunakan dalam analisis klaster.

1.3.5 Indeks Validasi Klaster

Indeks validasi klaster digunakan untuk mengevaluasi kualitas hasil pengelompokan dan menentukan apakah struktur klaster yang terbentuk sudah optimal. Validasi penting dilakukan karena analisis klaster bersifat eksploratif dan tidak memiliki variabel dependen. Beberapa indeks yang umum digunakan adalah Indeks Connectivity, Indeks Silhouette, dan Indeks Dunn.

  • Indeks Connectivity

Indeks Connectivity menilai seberapa dekat suatu objek dengan tetangga terdekatnya dalam klaster yang sama. Indeks ini dihitung berdasarkan jarak objek terhadap k tetangga terdekatnya. Nilai indeks berkisar dari 0 hingga ∞, dan semakin kecil nilai Connectivity maka semakin baik kualitas klaster.

Rumus indeks Connectivity adalah:

\[ \text{Conn} = \sum_{i=1}^{n} \sum_{j=1}^{k} \frac{1}{j} \cdot I(i, n_j(i)) \]

dengan:
- \(n_j(i)\) adalah tetangga ke-\(j\) dari objek \(i\),
- \(I(i, n_j(i)) = 0\) jika keduanya berada dalam klaster yang sama, dan 1 jika berbeda.

  • Indeks Silhouette

Indeks Silhouette mengukur seberapa tepat objek ditempatkan dalam klaster tertentu dibandingkan dengan klaster lain. Indeks ini memiliki nilai antara −1 hingga 1. Nilai mendekati 1 menunjukkan pemisahan klaster yang baik, nilai mendekati 0 menunjukkan klaster yang tumpang tindih, dan nilai negatif menunjukkan pengelompokan yang salah.

Rumus untuk nilai Silhouette pada objek ke-\(i\):

\[ s(i) = \frac{b(i) - a(i)}{\max(a(i), b(i))} \]

dengan:
- \(a(i)\): rata-rata jarak objek \(i\) ke semua objek dalam klaster yang sama
- \(b(i)\): jarak minimum objek \(i\) ke klaster lain (klaster tetangga terdekat)

  • Indeks Dunn

Indeks Dunn menilai kualitas klaster dengan melihat keseimbangan antara jarak antar klaster dan kekompakan klaster. Indeks Dunn bernilai positif, dan semakin besar nilai Dunn berarti semakin baik pemisahan antar klaster.

Rumus indeks Dunn adalah:

\[ D = \frac{\min\limits_{1 \leq i < j \leq k} \delta(C_i, C_j)} {\max\limits_{1 \leq l \leq k} \Delta(C_l)} \]

dengan:
- \(\delta(C_i, C_j)\) = jarak minimum antar klaster \(C_i\) dan \(C_j\),
- \(\Delta(C_l)\) = diameter maksimum dalam klaster \(C_l\).

1.4 Tujuan

Penelitian ini bertujuan untuk mengelompokkan provinsi-provinsi di Indonesia berdasarkan kesamaan karakteristik ketersediaan sarana kesehatan, seperti Rumah Sakit, Puskesmas, Poliklinik, Klinik Bersalin, dan Apotek. Melalui analisis klaster hierarki, penelitian ini ingin mengidentifikasi pola kemiripan antarprovinsi sehingga dapat terlihat kelompok wilayah yang memiliki tingkat ketersediaan fasilitas kesehatan yang relatif serupa, baik dalam kategori tinggi, sedang, maupun rendah. Hasil pengelompokan ini diharapkan mampu memberikan gambaran awal mengenai kondisi pemerataan sarana kesehatan antarprovinsi secara nasional.

Untuk mencapai tujuan tersebut, digunakan ukuran jarak dan metode penggabungan (linkage) yang paling sesuai dengan karakteristik data. Karena data berskala numerik dan variabel-variabelnya berpotensi saling berkorelasi (misalnya provinsi dengan banyak puskesmas cenderung juga memiliki banyak poskesdes atau fasilitas lain), maka jarak Mahalanobis lebih tepat digunakan karena mempertimbangkan korelasi antar variabel. Sementara itu, metode Ward’s linkage dipilih karena mampu menghasilkan klaster yang lebih homogen dan stabil dengan meminimalkan ragam dalam klaster.

2 Soucre Code

Beberapa soure code yang digunakan dalam penelitian antara lain:

2.1 Library

readxl Digunakan untuk membaca file Excel (.xlsx) yang berisi data fasilitas kesehatan. psych Digunakan untuk melakukan uji kecukupan sampel (KMO) dan analisis statistik lainnya pada tahap pra-pengolahan data. car Digunakan untuk menghitung nilai Variance Inflation Factor (VIF) sebagai uji multikolinearitas. cluster Digunakan untuk analisis klaster, termasuk perhitungan silhouette dan fungsi pendukung clustering. clusterCrit Digunakan untuk menghitung indeks validasi internal seperti Dunn Index. clValid Digunakan untuk menghitung indeks connectivity pada validasi klaster.

library(readxl)       
library(psych)        
library(car)          
library(cluster)      
library(clusterCrit)  
library(clValid)       

2.2 Data Fasilitas Kesehatan

Pada tahap ini dilakukan proses pembacaan data awal dari file Excel berjudul DATA_SARANA_KESEHATAN.xlsx.
Setelah itu, hanya variabel-variabel yang relevan terhadap fasilitas kesehatan dipilih untuk dianalisis, yaitu:
Rumah Sakit, Rumah Sakit Bersalin, Poliklinik, Puskesmas, Puskesmas Pembantu, dan Apotek.
Pemilihan kolom dilakukan untuk memastikan hanya data yang diperlukan yang masuk ke tahap analisis lanjutan.

# Membaca data mentah dari file Excel
data_mentah <- read_excel("DATA_SARANA_KESEHATAN.xlsx")

# Memilih variabel yang digunakan dalam penelitian
data <- data_mentah[, c(
  "Rumah Sakit",
  "Rumah Sakit Bersalin",
  "Poliklinik",
  "Puskesmas",
  "Puskesmas Pembantu",
  "Apotek"
)]

2.3 Uji Asumsi

2.3.1 Uji KMO (sampel representatif)

Dengan data yang sudah sesuai dilakukan uji KMO untuk menguji representasi sampel

# Melakukan uji KMO untuk mengevaluasi kecukupan sampel
kmo_result <- KMO(data)

# Membuat tabel MSA tiap variabel
varnames <- colnames(data)

kmo_table <- data.frame(
  Variabel = varnames,
  MSA = round(kmo_result$MSAi, 3)
)

2.3.2 Uji multikolinearitas (VIF)

Selanjutnya dilakukan uji multikolinieritas dengan VIF untuk masing-masing variabel

# Mengubah nama kolom agar valid digunakan dalam formula R
colnames(data) <- make.names(colnames(data))

# Menghitung VIF untuk masing-masing variabel dengan meregresikan setiap variabel terhadap variabel lain
vif_all <- sapply(colnames(data), function(var){
  formula <- as.formula(paste(var, "~ ."))
  model <- lm(formula, data = data)
  max(vif(model))
})

vif_table <- data.frame(
  Variabel = names(vif_all),
  VIF = round(as.numeric(vif_all), 3)
)

2.4 Jarak Mahalanobis

Menghitung jarak mahalanobis antar amatan secara manual dengan looping

# Menstandarkan data agar setiap variabel memiliki skala yang sama
data_std <- scale(data)

# Menghitung invers matriks kovarians sebagai komponen utama jarak Mahalanobis
invS <- solve(cov(data_std))

# Membuat matriks jarak awal sebagai placeholder
mahalanobis_matrix <- as.matrix(dist(data_std))

# Menghitung jarak Mahalanobis antar semua pasangan observasi
for(i in 1:nrow(data_std)){
  for(j in 1:nrow(data_std)){
    diff <- data_std[i,] - data_std[j,]
    mahalanobis_matrix[i,j] <- sqrt(t(diff) %*% invS %*% diff)
  }
}

# Mengubah matriks jarak menjadi objek bertipe 'dist' untuk analisis klaster
mahalanobis_dist <- as.dist(mahalanobis_matrix)

2.5 Klaster Hirarki Metode Ward

Membentuk klaster hirarki dengan metode ward menggunakan hclust

# Membentuk klaster hirarki menggunakan metode Ward dengan jarak Mahalanobis
hclust_ward <- hclust(mahalanobis_dist, method = "ward.D2")

2.5.1 Pemotongan Dendrogram Menjadi Beberapa Klaster

Pemotongan dendrogram dilakukan untuk melihat hasil pengelompokan pada beberapa nilai jumlah klaster (k).
Nilai k yang dicoba misalnya k = 2, 3, dan 4. Setiap dendrogram ditampilkan dan diberi kotak batas klaster.

# Pemotongan dendrogram untuk k = 2
plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - Dipotong K = 2",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 2, border = 2)

# Pemotongan dendrogram untuk k = 3
plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - Dipotong K = 3",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 3, border = 2)

# Pemotongan dendrogram untuk k = 4
plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - Dipotong K = 4",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 4, border = 2)

2.6 Validasi Cluster

Validasi klaster dilakukan untuk menentukan jumlah klaster terbaik (k). Dihitung untuk tiga indeks yaitu Silhouette, Dunn, dan Connectivity untuk setiap k, syntax berikut menghitung ketiga indeks secara iteratif dari k=1

hasil_validasi <- data.frame(
  k = integer(),
  Silhouette = numeric(),
  Dunn = numeric(),
  Connectivity = numeric()
)

mahalanobis_dist <- as.dist(as.matrix(mahalanobis_dist))

for (k_cluster in 2:6) {
  
  cluster_assign <- cutree(hclust_ward, k = k_cluster)
  
  # Silhouette 
  if (all(table(cluster_assign) > 1)) {
    sil <- silhouette(cluster_assign, mahalanobis_dist)
    sil_avg <- mean(sil[, 3])
  } else {
    sil_avg <- NA
  }
  
  # Dunn Index
  dunn_index <- tryCatch({
    val <- dunn(clusters = cluster_assign,
                Data = as.matrix(data_std))
    if (length(val) == 0) NA else val
  }, error = function(e) NA)
  
  # Connectivity (dari clValid)
  conn_index <- tryCatch({
    clValid::connectivity(
      Data = as.matrix(data_std),
      clusters = cluster_assign,
      neigh = 10
    )
  }, error = function(e) NA)
  
  hasil_validasi <- rbind(
    hasil_validasi,
    data.frame(
      k = k_cluster,
      Silhouette = round(sil_avg, 3),
      Dunn = round(dunn_index, 3),
      Connectivity = round(conn_index, 3)
    )
  )
}

print(hasil_validasi, row.names = FALSE)
##  k Silhouette  Dunn Connectivity
##  2      0.500 0.650        4.454
##  3      0.469 0.244       11.145
##  4         NA 0.244       14.645
##  5         NA 0.244       15.645
##  6         NA 0.047       44.721

3 Hasil dan Pembahasan

Berikut cuplikan data dari varibel yang dipilih:

kable(head(data), caption = "Cuplikan Data Variabel yang Digunakan")
Cuplikan Data Variabel yang Digunakan
Rumah.Sakit Rumah.Sakit.Bersalin Poliklinik Puskesmas Puskesmas.Pembantu Apotek
64 225 258 395 971 346
199 441 800 661 1887 740
54 139 127 294 721 257
55 207 329 272 1033 351
36 151 103 231 654 211
65 248 195 403 935 244

Tabel di atas menampilkan enam baris pertama dari data penelitian yang berisi enam variabel kuantitatif mengenai jumlah fasilitas kesehatan di tiap wilayah, yaitu Rumah Sakit, Rumah Sakit Bersalin, Poliklinik, Puskesmas, Puskesmas Pembantu, dan Apotek. Seluruh variabel tersebut memiliki skala rasio karena berupa hitungan jumlah fasilitas yang nilainya dimulai dari nol dan memiliki makna perbandingan.

Sebelum melakukan analisis klaster lebih lanjut, dilakukan serangkaian uji asumsi untuk memastikan bahwa data layak digunakan dalam proses pengelompokan. Uji yang pertama adalah uji representativitas sampel menggunakan Kaiser-Meyer-Olkin (KMO) untuk menilai apakah variabel-variabel memiliki korelasi yang cukup sehingga sesuai digunakan dalam analisis berbasis jarak. Selanjutnya dilakukan uji non-multikolinearitas melalui perhitungan Variance Inflation Factor (VIF) untuk memastikan bahwa antar variabel tidak memiliki hubungan linear yang sangat kuat, sehingga setiap variabel tetap memberikan informasi yang unik dalam proses klastering.

kable(kmo_table, caption = "Hasil Uji KMO untuk Setiap Variabel")
Hasil Uji KMO untuk Setiap Variabel
Variabel MSA
Rumah Sakit Rumah Sakit 0.937
Rumah Sakit Bersalin Rumah Sakit Bersalin 0.912
Poliklinik Poliklinik 0.920
Puskesmas Puskesmas 0.858
Puskesmas Pembantu Puskesmas Pembantu 0.836
Apotek Apotek 0.936

Hipotesis Uji KMO
- \(H_0\): Sampel tidak representatif (KMO < 0.5)
- \(H_1\): Sampel representatif (KMO ≥ 0.5)

Berdasarkan hasil perhitungan nilai KMO, seluruh variabel memiliki nilai KMO ≥ 0.5. Dengan demikian, dapat disimpulkan bahwa sampel pada setiap variabel telah memenuhi kriteria kelayakan dan bersifat representatif untuk digunakan dalam analisis lebih lanjut. Selanjutnya dilakukan uji Non-Mulkolinieritas.

kable(vif_table, caption = "Hasil Perhitungan VIF untuk Setiap Variabel")
Hasil Perhitungan VIF untuk Setiap Variabel
Variabel VIF
Rumah.Sakit 23.823
Rumah.Sakit.Bersalin 20.150
Poliklinik 19.984
Puskesmas 23.836
Puskesmas.Pembantu 24.587
Apotek 22.815

Hipotesis Uji VIF
- \(H_0\): Tidak terdapat multikolinearitas (VIF ≤ 10)
- \(H_1\): Terdapat multikolinearitas (VIF > 10)

Tabel di atas menunjukkan bahwa nilai VIF untuk tiap variabel VIF > 10, sehingga terdapat multikoliniearitas atau terdapat korelasi tinggi antar variabel. Namun demikian, kondisi ini tidak menjadi masalah serius dalam analisis klaster, karena metode klastering terutama klaster hirarki dengan jarak Mahalanobis tidak mensyaratkan asumsi bebas multikolinearitas seperti pada regresi. Multikolinearitas hanya perlu diperhatikan apabila variabel dianggap redundan, namun pada konteks penelitian ini setiap variabel mewakili jenis fasilitas kesehatan yang berbeda sehingga tetap dipertahankan.

Secara keseluruhan, hasil uji asumsi menunjukkan bahwa data memiliki representativitas sampel yang sangat baik dan tetap layak digunakan sebagai dasar pembentukan klaster, meskipun terdapat korelasi tinggi antar variabel.

Selanjutnya dilakukan perhitungan jarak Mahalanobis untuk setiap amatan sebagai dasar pengukuran kedekatan antar objek dalam ruang multivariat. Jarak Mahalanobis dipilih karena mampu mempertimbangkan variasi antar variabel serta korelasi yang terjadi di antara variabel-variabel tersebut, sehingga memberikan ukuran jarak yang lebih akurat dibandingkan jarak Euclidean biasa.

Berdasarkan matriks jarak tersebut, kemudian dibentuk dendogram menggunakan metode hierarchical clustering untuk memperoleh visualisasi struktur pengelompokan data. Kemudian dilakukan pemotongan dendogram (cutting) pada beberapa jumlah klaster, yaitu k = 2, k = 3, dan k = 4, untuk mengidentifikasi pembagian klaster yang mungkin dan menilai konsistensi pola pengelompokan. Hasil pemotongan ini memberikan informasi mengenai anggota setiap klaster pada masing-masing jumlah klaster, sehingga dapat diamati perubahan struktur klaster ketika jumlah klaster ditambah.

plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - K = 2",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 2, border = 2)

Gambar menunjukkan 2 klaster yang mengklasifikasikan 3 Provinsi yaitu Jawa Timur, Jawa Tengah, dan Jawa Barat di klaster pertama, dan provinsi lainnya di klaster kedua.

plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - K = 3",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 3, border = 2)

Pada k = 3 mengklasifikasikan 3 Provinsi yaitu Jawa Timur, Jawa Tengah, dan Jawa Barat di klaster pertama, 2 provinsi yaitu Sumatra Utara dan DKI Jakarta di klaster kedua, dan provinsi lainnya di klaster ketiga.

plot(hclust_ward,
     main = "Dendrogram Klaster Hirarki (Mahalanobis) - K = 4",
     xlab = "Indeks Observasi",
     ylab = "Jarak Mahalanobis")
rect.hclust(hclust_ward, k = 4, border = 2)

Pada k = 4 mengklasifikasikan 1 Provinsi yaitu Jawa Timur di klaster pertama, 2 provinsi yaitu Jawa Tengah dan Jawa Barat di klaster kedua, 2 provinsi yaitu Sumatra Utara dan DKI Jakarta di klaster ketiga, dan provinsi lainnya di klaster keempat.

Kemudian kita hitung indeks validasi setiap klaster untuk mengetahui klaster terbaik.

library(knitr)
library(kableExtra)

kable(
  hasil_validasi,
  caption = "Hasil Validasi Klaster Berdasarkan Indeks Silhouette, Dunn, dan Connectivity",
  align = "c"
) %>%
  kable_styling(full_width = FALSE, position = "center")
Hasil Validasi Klaster Berdasarkan Indeks Silhouette, Dunn, dan Connectivity
k Silhouette Dunn Connectivity
2 0.500 0.650 4.454
3 0.469 0.244 11.145
4 NA 0.244 14.645
5 NA 0.244 15.645
6 NA 0.047 44.721

Berdasarkan hasil validasi klaster menggunakan tiga indeks, yaitu Silhouette, Dunn, dan Connectivity, diperoleh bahwa jumlah klaster yang paling optimal adalah k = 2. Nilai Silhouette tertinggi terdapat pada k = 2, yaitu sebesar 0.500, yang menunjukkan bahwa struktur klaster cukup baik dan objek-objek cenderung berada pada klaster yang sesuai. Tidak dapat dihitungnya nilai Silhouette pada k = 4, 5, dan 6 disebabkan oleh adanya klaster yang hanya memiliki satu anggota, sehingga indeks Silhouette tidak dapat ditentukan. Indeks Dunn juga menunjukkan nilai tertinggi pada k = 2 sebesar 0.650, mengindikasikan bahwa pada k = 2, klaster memiliki pemisahan yang paling jelas serta tingkat kekompakan yang lebih baik dibandingkan jumlah klaster lainnya. Selain itu, nilai Connectivity terendah juga terjadi pada k = 2, yaitu 4.454, yang berarti struktur klaster lebih stabil dan lebih konsisten dibandingkan hasil klaster pada k lainnya, karena nilai konektivitas yang lebih kecil menunjukkan kualitas pengelompokan yang lebih baik. Secara keseluruhan, ketiga indeks ini secara konsisten menunjukkan bahwa k = 2 merupakan jumlah klaster yang paling layak digunakan untuk data ini.

4 Penutup

4.1 Kesimpulan

Berdasarkan hasil analisis yang telah dilakukan, penelitian ini berhasil mengelompokkan provinsi-provinsi di Indonesia berdasarkan kesamaan karakteristik ketersediaan sarana kesehatan yang meliputi Rumah Sakit, Rumah Sakit Bersalin, Poliklinik, Puskesmas, Puskesmas Pembantu, dan Apotek. Melalui pendekatan klaster hierarki dengan jarak Mahalanobis dan metode pengelompokan Ward, diperoleh pemetaan struktur kesamaan antarprovinsi dalam hal ketersediaan fasilitas kesehatan.

Hasil validasi klaster melalui indeks Silhouette, Dunn, dan Connectivity menunjukkan bahwa jumlah klaster paling optimal adalah k = 2. Komposisi dua klaster tersebut memperlihatkan bahwa Jawa Timur, Jawa Tengah, dan Jawa Barat membentuk satu kelompok tersendiri, menunjukkan karakteristik ketersediaan sarana kesehatan yang relatif lebih tinggi dan seragam. Sementara itu, provinsi lainnya tergabung dalam klaster kedua, mencerminkan tingkat dan pola ketersediaan fasilitas kesehatan yang berbeda atau cenderung lebih rendah dibandingkan klaster pertama.

Temuan ini memberikan gambaran mengenai ketimpangan atau perbedaan distribusi sarana kesehatan antarprovinsi di Indonesia. Klasterisasi yang terbentuk dapat menjadi dasar awal bagi perumusan kebijakan pemerataan fasilitas kesehatan, terutama dalam menentukan daerah yang membutuhkan perhatian lebih besar. Secara keseluruhan, metode klaster hierarki terbukti efektif dalam mengungkap struktur kemiripan antarwilayah dan memberikan wawasan yang relevan untuk perencanaan pembangunan kesehatan nasional.

4.2 Saran

Berdasarkan hasil penelitian ini, terdapat beberapa saran yang dapat digunakan secara praktis dalam pengembangan proyek klastering serupa di masa mendatang. 1. Disarankan menggunakan variabel yang lebih beragam, misalnya dengan menambahkan indikator kualitas fasilitas kesehatan, jumlah tenaga medis, atau tingkat pemanfaatan layanan kesehatan. Hal ini memberikan gambaran pengelompokan yang lebih akurat dan lebih bermanfaat bagi pengambilan keputusan. 2. Analisis klaster akan lebih kuat apabila divalidasi menggunakan beberapa metode klastering yang berbeda, seperti K-Means, PAM, atau DBSCAN, kemudian dibandingkan hasilnya. Pendekatan multi-metode ini dapat membantu memastikan bahwa struktur klaster benar-benar konsisten. 3. Hasil klaster bisa diintegrasikan ke dalam sistem informasi atau dashboard interaktif berbasis web agar lebih mudah digunakan oleh pembuat kebijakan atau instansi terkait. Dengan demikian, informasi pengelompokan dapat dimanfaatkan secara real-time untuk evaluasi pemerataan sarana kesehatan dan perencanaan pembangunan di tingkat wilayah.

5 Referensi

Pratiwi, S. (2020). Analisis klaster metode Ward dan Average Linkage menggunakan indeks Dunn. Jurnal Gaussian.

Ramadhan, B. F., et al. (2025). Analisis performa clustering: K-Means dan similarity matrix dalam evaluasi Silhouette, DBI, CHI, dan Dunn Index. Jurnal Pendidikan Tambusai.

Suraya, G. R., & Wijayanto, A. W. (2022). Comparison of hierarchical clustering, K-Means, K-Medoids, and Fuzzy C-Means in grouping provinces according to stunting index. Indonesian Journal of Statistics and Its Applications, 6(2), 180–201.

Yahya, M. Z., Nurhaliza, S., Fathan, M. A., Rizal, M. E., & Harismahyanti, A. (2023). Perbandingan ukuran jarak pada analisis klaster hirarki. Leibniz: Jurnal Matematika.