Analisis Klasterisasi Sosial Ekonomi Kabupaten/Kota di Kalimantan Selatan Menggunakan Metode K-Means

Kajian ini bertujuan untuk mengelompokkan kabupaten/kota di Provinsi Kalimantan Selatan berdasarkan indikator sosial ekonomi yang mencakup tingkat kemiskinan, tingkat pengangguran terbuka, dan Indeks Pembangunan Manusia (IPM). Data yang digunakan bersumber dari data Badan Pusat Statistik (BPS) tahun 2024. Metode analisis yang digunakan adalah K-Means Clustering yang diawali dengan proses standardisasi data, penentuan jumlah cluster optimal menggunakan metode silhouette, dan interpretasi karakteristik setiap cluster berdasarkan nilai centroid. Hasil analisis menunjukkan bahwa jumlah cluster optimal adalah empat (k = 4). Cluster pertama mencerminkan wilayah dengan pengangguran tinggi namun IPM cukup baik, menandakan daerah yang memiliki kualitas hidup relatif tinggi tetapi masih menghadapi tantangan di sektor ketenagakerjaan. Cluster kedua menggambarkan wilayah perkotaan dengan IPM sangat tinggi dan pengangguran di atas rata-rata, merepresentasikan pusat aktivitas ekonomi dan pembangunan manusia di provinsi. Cluster ketiga menandai daerah dengan kemiskinan cukup tinggi. Sedangkan cluster keempat mencerminkan wilayah dengan kondisi sosial ekonomi yang ditandai oleh kemiskinan dan pengangguran rendah serta IPM tinggi.


Penyiapan Data


Data yang digunakan dalam penelitian ini berasal dari data Badan Pusat Statistik (BPS) Provinsi Kalimantan Selatan yang mencakup tiga variabel utama, yaitu: (1) Tingkat Kemiskinan (%), (2) Tingkat Pengangguran Terbuka (%), dan (3) Indeks Pembangunan Manusia (IPM). Seluruh data bersifat sekunder dan menggambarkan kondisi sosial ekonomi pada Tahun 2024 dari 13 kabupaten/kota di Kalimantan Selatan. Setelah dilakukan perekapan dilakukan pada file excel (xlsx) selanjutnya dilakukan pemanggilan data (Input Data) pada RStudio.

Input Data

library(openxlsx)
df1 = read.xlsx("C:/Users/dhita/Downloads/Analisis Pengelompokan Tingkat Kemiskinan di Provinsi Kalimantan Selatan/data.xlsx")
#kable(df1, caption = "Tabel Data")

Kode di atas bertujuan untuk membaca dan menyiapkan data yang akan digunakan dalam analisis K-Means Clustering. Data diimpor dari file Excel menggunakan fungsi read.xlsx().

df1$kabupaten_kota = as.factor(df1$kabupaten_kota)
df1$kemiskinan = as.numeric(df1$kemiskinan)
df1$pengangguran = as.numeric(df1$pengangguran)
df1$ipm = as.numeric(df1$ipm)

Kode di atas bertujuan untuk melakukan penyesuaian tipe variabel agar setiap variabel memiliki fungsi yang sesuai dalam analisis:

  1. kabupaten_kota diubah menjadi factor, karena berisi kategori (nama wilayah).

  2. kemiskinan, pengangguran, dan ipm dikonversi menjadi numeric, karena akan digunakan dalam perhitungan matematis untuk proses clustering.

str(df1)
## 'data.frame':    13 obs. of  4 variables:
##  $ kabupaten_kota: Factor w/ 13 levels "Balangan","Banjar",..: 12 9 2 3 13 4 5 6 10 11 ...
##  $ kemiskinan    : num  3.74 4.45 2.36 4.36 3.33 3.38 5.81 5.75 5.64 3.41 ...
##  $ pengangguran  : num  3.43 6.05 2.71 3.41 3.86 2.11 3.2 3.73 3.44 6.37 ...
##  $ ipm           : num  73.4 72.4 74.4 71.4 74.1 ...

Output di atas menunjukkan bahwa df1 merupakan sebuah objek bertipe data.frame yang terdiri atas:

13 observasi (rows/baris) → masing-masing merepresentasikan satu kabupaten/kota di Provinsi Kalimantan Selatan.

4 variabel (columns/kolom) → yang berisi informasi variabel.

Summary Data

summary(df1)
##              kabupaten_kota   kemiskinan     pengangguran        ipm       
##  Balangan           :1      Min.   :2.360   Min.   :2.110   Min.   :71.40  
##  Banjar             :1      1st Qu.:3.410   1st Qu.:3.200   1st Qu.:73.33  
##  Barito Kuala       :1      Median :4.360   Median :3.440   Median :73.95  
##  Hulu Sungai Selatan:1      Mean   :4.267   Mean   :4.038   Mean   :74.71  
##  Hulu Sungai Tengah :1      3rd Qu.:4.870   3rd Qu.:4.930   3rd Qu.:74.50  
##  Hulu Sungai Utara  :1      Max.   :5.810   Max.   :6.560   Max.   :81.65  
##  (Other)            :7

Fungsi summary() digunakan untuk menampilkan statistik deskriptif dasar dari setiap variabel di dalam dataset df1. Dari hasil tersebut, diperoleh ringkasan data sosial ekonomi dari 13 kabupaten/kota di Provinsi Kalimantan Selatan yang terdiri dari tiga variabel utama: kemiskinan, pengangguran, dan Indeks Pembangunan Manusia (IPM). Berdasarkan output tersebut dapat diketahui bahwa:

  1. Tingkat kemiskinan di Kalimantan Selatan bervariasi antara 2,36% hingga 5,81%. Sebagian besar daerah memiliki tingkat kemiskinan di sekitar 4%, yang terlihat dari median (4.36) dan mean (4.27) yang hampir sama — menunjukkan distribusi data relatif simetris dan tidak terlalu condong ke satu sisi.

  2. Tingkat pengangguran terbuka berkisar antara 2,11% hingga 6,56%. Distribusi pengangguran sedikit condong ke kanan (positively skewed), terlihat dari selisih antara mean (4.04) dan median (3.44).

  3. Nilai IPM di Kalimantan Selatan menunjukkan rentang 71,40 hingga 81,65, dengan rata-rata sekitar 74,75. Hal ini menunjukkan bahwa sebagian besar daerah memiliki tingkat pembangunan manusia yang masuk ke dalam kategori “tinggi” dan sisanya masuk ke dalam kategori “sangat tinggi”.


Eksplorasi Data


unique(df1$kabupaten_kota)
##  [1] Tanah Laut          Kota Baru           Banjar             
##  [4] Barito Kuala        Tapin               Hulu Sungai Selatan
##  [7] Hulu Sungai Tengah  Hulu Sungai Utara   Tabalong           
## [10] Tanah Bumbu         Balangan            Kota Banjarmasin   
## [13] Kota Banjarbaru    
## 13 Levels: Balangan Banjar Barito Kuala ... Tapin

Berdasarkan output diatas dapat diketahui bahwa dataset sudah mencakup seluruh 13 kabupaten/kota di Kalimantan Selatan tanpa ada data yang hilang atau terduplikasi.

Eksplorasi dengan Box Plot

# Layout 1 baris 3 kolom
par(mfrow = c(1, 3))

# 1️⃣ Boxplot Kemiskinan
b1 <- boxplot(df1$kemiskinan, main = "Kemiskinan", xlab = "Persentase Rumah Tangga Miskin", col = "lightblue")
out1 <- df1$kabupaten_kota[df1$kemiskinan %in% b1$out]
if (length(out1) > 0) {
  text(rep(1, length(out1)), b1$out, labels = out1, pos = 3, cex = 0.8, col = "red")
}

# 2️⃣ Boxplot Pengangguran
b2 <- boxplot(df1$pengangguran, main = "Pengangguran", xlab = "Persentase Pengangguran", col = "lightgreen")
out2 <- df1$kabupaten_kota[df1$pengangguran %in% b2$out]
if (length(out2) > 0) {
  text(rep(1, length(out2)), b2$out, labels = out2, pos = 3, cex = 0.8, col = "red")
}

# 3️⃣ Boxplot IPM
b3 <- boxplot(df1$ipm, main = "Indeks Pembangunan Manusia (IPM)", xlab = "Nilai IPM", col = "lightpink")
out3 <- df1$kabupaten_kota[df1$ipm %in% b3$out]
if (length(out3) > 0) {
  text(rep(1, length(out3)), b3$out, labels = out3, pos = 3, cex = 0.8, col = "red")
}

Berdasarkan boxplot di atas dapat diketahui beberapa hal sebagai berikut:

  1. Variabel Kemiskinan

Hasil boxplot menunjukkan bahwa tidak terdapat outlier pada variabel kemiskinan. Hal ini menandakan bahwa seluruh kabupaten/kota di Provinsi Kalimantan Selatan memiliki tingkat kemiskinan yang relatif homogen, tanpa adanya daerah dengan nilai ekstrem yang jauh lebih tinggi maupun lebih rendah dibandingkan wilayah lainnya.

Rentang nilai pada boxplot tampak cukup sempit, yang mengindikasikan variasi tingkat kemiskinan antarwilayah tergolong kecil. Dengan demikian, kondisi ini menggambarkan bahwa disparitas ekonomi antar kabupaten/kota di Kalimantan Selatan dalam hal jumlah penduduk miskin tidak terlalu mencolok. Secara umum, persebaran tingkat kemiskinan di provinsi ini dapat dikategorikan sebagai merata.

  1. Variabel Pengangguran

Visualisasi boxplot untuk variabel pengangguran juga menunjukkan bahwa tidak ditemukan adanya outlier. Hal ini mengindikasikan bahwa tingkat pengangguran terbuka di seluruh wilayah provinsi relatif berada pada kisaran yang sama, tanpa ada daerah yang menunjukkan nilai ekstrem, baik tinggi maupun rendah.

Posisi median yang berada di tengah kotak boxplot menunjukkan bahwa distribusi data cenderung seimbang, dengan persebaran yang tidak terlalu lebar. Oleh karena itu, dapat disimpulkan bahwa kondisi ketenagakerjaan antar kabupaten/kota di Kalimantan Selatan tergolong merata, dan tidak ada wilayah yang menunjukkan perbedaan signifikan terhadap rata-rata provinsi.

  1. Variabel IPM (Indeks Pembangunan Manusia)

Berbeda dengan dua variabel sebelumnya, hasil boxplot untuk IPM memperlihatkan adanya tiga outlier. Daerah tersebut meliputi:

  • Barito Kuala, yang berada di bawah batas bawah (lower whisker) boxplot,
  • Kota Banjarmasin dan Kota Banjarbaru, keduanya berada di atas batas atas (upper whisker) boxplot.”

Kondisi ini menunjukkan adanya ketimpangan pembangunan manusia antarwilayah di Kalimantan Selatan. Meskipun demikian, secara keseluruhan nilai IPM kabupaten/kota di Kalimantan Selatan telah berada dalam kategori tinggi dan sangat tinggi, sehingga perbedaan ini lebih merefleksikan kesenjangan tingkat pembangunan antarwilayah, bukan rendahnya capaian pembangunan secara umum.

Memilih Variabel

mydata = df1[,c(2:4)]
head(mydata)
##   kemiskinan pengangguran   ipm
## 1       3.74         3.43 73.42
## 2       4.45         6.05 72.42
## 3       2.36         2.71 74.41
## 4       4.36         3.41 71.40
## 5       3.33         3.86 74.06
## 6       3.38         2.11 73.95

Kode di atas digunakan untuk memilih variabel numerik dari data utama (df1), yaitu kolom ke-2 sampai kolom ke-4. Dengan demikian, variabel yang diambil adalah: kemiskinan, pengangguran, dan IPM.

Standardisasi Data

Sebelum dilakukan analisis gerombol (clustering), seluruh variabel distandardisasi menggunakan fungsi scale() sehingga memiliki rata-rata 0 dan simpangan baku 1. Hal ini memastikan bahwa setiap indikator memiliki pengaruh yang sama besar terhadap proses pembentukan cluster.

scaledmydata <-round(scale(mydata),3)
scaledmydata
##    kemiskinan pengangguran    ipm
## 1      -0.497       -0.414 -0.418
## 2       0.173        1.370 -0.742
## 3      -1.797       -0.904 -0.097
## 4       0.088       -0.427 -1.073
## 5      -0.883       -0.121 -0.210
## 6      -0.836       -1.312 -0.246
## 7       1.454       -0.570 -0.447
## 8       1.398       -0.209 -0.963
## 9       1.294       -0.407  0.409
## 10     -0.808        1.588 -0.068
## 11      0.568       -0.918 -0.285
## 12      0.295        1.717  1.888
## 13     -0.449        0.607  2.251
## attr(,"scaled:center")
##   kemiskinan pengangguran          ipm 
##     4.266923     4.037692    74.708462 
## attr(,"scaled:scale")
##   kemiskinan pengangguran          ipm 
##     1.061056     1.468867     3.083853
rownames(scaledmydata) <- as.character(df1$kabupaten_kota)

Eksplorasi Matriks Jarak pada Data Standardisasi

  1. Tujuan Analisis

Kode berikut digunakan untuk menghitung dan memvisualisasikan jarak antarwilayah berdasarkan tiga variabel yang telah distandardisasi, yaitu: Kemiskinan (%), Pengangguran (%), dan Indeks Pembangunan Manusia (IPM).

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
jarak <- get_dist(scaledmydata)
fviz_dist(jarak, gradient = list(low="#BF00FF",
                                 mid="white", high="#FFC0CB"))

Fungsi get_dist() menghitung jarak Euclidean antar kabupaten/kota berdasarkan kemiripan karakteristik sosial-ekonomi mereka. Sementara fungsi fviz_dist() digunakan untuk menampilkan hasilnya dalam bentuk peta jarak berwarna (heatmap).

  1. Makna Warna dalam Heatmap
  • Warna ungu gelap menunjukkan jarak yang kecil, artinya dua wilayah memiliki karakteristik yang mirip atau hampir sama berdasarkan ketiga indikator (kemiskinan, pengangguran, dan IPM).

  • Warna putih menunjukkan jarak sedang.

  • Warna merah muda terang menunjukkan jarak yang besar, artinya kedua wilayah memiliki perbedaan karakteristik sosial-ekonomi yang lebih signifikan.

Dengan kata lain, semakin gelap warnanya, semakin mirip kondisi antarwilayah.

  1. Pola Hubungan Antar Wilayah

Dari hasil visualisasi terlihat beberapa pola penting:

  • Beberapa wilayah seperti (antara Kota Banjarbaru dan Kota Banjarmasin), dan (antara Kotabaru dan Tanah Bumbu) memiliki warna ungu gelap di antara satu sama lain, yang berarti memiliki kemiripan tinggi dalam kondisi sosial-ekonomi (kemiskinan, pengangguran, IPM yang mirip).

  • Pola diagonal berwarna ungu tegas dari kiri atas ke kanan bawah menunjukkan jarak nol (0) — artinya setiap wilayah dibandingkan dengan dirinya sendiri.

Dengan demikian, semakin rendah jarak antar dua wilayah, semakin besar peluang keduanya akan tergabung dalam cluster yang sama pada analisis K-Means selanjutnya.


Clustering dengan Metode K-Means


Optimum Cluster (Penentuan (k) optimal)

library("factoextra")
fviz_nbclust(scaledmydata,FUNcluster = kmeans,method = "silhouette")

Melalui visualisasi grafik Silhouette Method menggunakan fungsi fviz_nbclust(), terlihat bahwa nilai average silhouette width tertinggi terjadi pada k = 4. Hal ini menunjukkan bahwa model dengan empat cluster (k = 4) merupakan jumlah cluster yang paling optimal.

Nilai silhouette width yang tinggi mengindikasikan bahwa objek dalam suatu cluster memiliki kemiripan yang kuat dengan anggota cluster sendiri dan perbedaan yang cukup jauh dengan anggota cluster lain. Oleh karena itu, pemilihan empat cluster dianggap paling efisien dalam menggambarkan struktur alami data tanpa kehilangan makna pembeda antar kelompok.

Penentuan kelompok/cluster masing-masing kabupaten/kota

set.seed(101)
kmeans_df2 <- kmeans(scaledmydata, centers = 4, nstart =25)
df1$cluster <- as.factor(kmeans_df2$cluster)
kable(df1, caption = 'Tabel Cluster Tiap Kabupaten/Kota')
Tabel Cluster Tiap Kabupaten/Kota
kabupaten_kota kemiskinan pengangguran ipm cluster
Tanah Laut 3.74 3.43 73.42 4
Kota Baru 4.45 6.05 72.42 1
Banjar 2.36 2.71 74.41 4
Barito Kuala 4.36 3.41 71.40 3
Tapin 3.33 3.86 74.06 4
Hulu Sungai Selatan 3.38 2.11 73.95 4
Hulu Sungai Tengah 5.81 3.20 73.33 3
Hulu Sungai Utara 5.75 3.73 71.74 3
Tabalong 5.64 3.44 75.97 3
Tanah Bumbu 3.41 6.37 74.50 1
Balangan 4.87 2.69 73.83 3
Kota Banjarmasin 4.58 6.56 80.53 2
Kota Banjarbaru 3.79 4.93 81.65 2
k1 = df1$kabupaten_kota[kmeans_df2$cluster == 1]
k2 = df1$kabupaten_kota[kmeans_df2$cluster == 2]
k3 = df1$kabupaten_kota[kmeans_df2$cluster == 3]
k4 = df1$kabupaten_kota[kmeans_df2$cluster == 4]
k1 = paste(k1, collapse = ', ')
k2 = paste(k2, collapse = ', ')
k3 = paste(k3, collapse = ', ')
k4 = paste(k4, collapse = ', ')
klaster = data.frame(
  Klaster = c('Klaster 1','Klaster 2','Klaster 3','Klaster 4'),
  Anggota = c(k1,k2,k3,k4)
)
kable(klaster, caption = 'Anggota hasil clustering')
Anggota hasil clustering
Klaster Anggota
Klaster 1 Kota Baru, Tanah Bumbu
Klaster 2 Kota Banjarmasin, Kota Banjarbaru
Klaster 3 Barito Kuala, Hulu Sungai Tengah, Hulu Sungai Utara, Tabalong, Balangan
Klaster 4 Tanah Laut, Banjar, Tapin, Hulu Sungai Selatan

Interpretasi Hasil Klasterisasi Kabupaten/Kota (K = 4)

Berdasarkan hasil analisis K-Means Clustering dengan jumlah cluster optimal sebanyak 4 kelompok, kabupaten/kota di Provinsi Kalimantan Selatan terbagi ke dalam empat cluster yang mencerminkan perbedaan kondisi sosial ekonomi berdasarkan tingkat kemiskinan, pengangguran, dan Indeks Pembangunan Manusia (IPM).

Cluster 1 → (Kota Baru, Tanah Bumbu) Ditandai dengan tingkat pengangguran tinggi dan IPM relatif tinggi. Wilayah ini tergolong memiliki kualitas hidup baik, namun masih menghadapi tantangan ketenagakerjaan.

Cluster 2 → (Kota Banjarmasin, Kota Banjarbaru) Mewakili wilayah perkotaan dengan IPM sangat tinggi, disertai tingkat pengangguran lebih tinggi dari rata-rata provinsi. Kedua kota ini menjadi pusat ekonomi dan pembangunan manusia di Kalimantan Selatan.

Cluster 3 → (Barito Kuala, Hulu Sungai Tengah, Hulu Sungai Utara, Tabalong, Balangan) Memiliki kemiskinan yang cukup tinggi.

Cluster 4 → (Tanah Laut, Banjar, Tapin, Hulu Sungai Selatan) Menunjukkan kemiskinan dan pengangguran rendah serta IPM cukup tinggi.


Visualisasi Hasil Clustering


Visualisasi Cluster Plot

fviz_cluster(kmeans_df2,data=scaledmydata,  palette = c("#3D5300", "#AF1740","#0A3981", "#FFA500"))

Interpretasi Hasil Visualisasi Cluster Plot (K-Means, K = 4)

Plot di atas merupakan hasil visualisasi dari analisis K-Means Clustering yang mengelompokkan 13 kabupaten/kota di Provinsi Kalimantan Selatan menjadi 4 cluster. Sumbu Dim1 (48,1%) dan Dim2 (33,4%) menjelaskan sebagian besar variasi data, sehingga posisi dan jarak antar titik menggambarkan tingkat kemiripan atau perbedaan karakteristik antar wilayah.

  1. Cluster 1 (Hijau – Kota Baru dan Tanah Bumbu)

  2. Cluster 2 (Merah – Kota Banjarmasin dan Kota Banjarbaru)

  3. Cluster 3 (Biru – Barito Kuala, Balangan, Tabalong, Hulu Sungai Tengah, dan Hulu Sungai Utara)

  4. Cluster 4 (Kuning – Tanah Laut, Tapin, Hulu Sungai Selatan, dan Banjar)

Visualisasi Cluster dengan Peta Leaflet

Peta interaktif ini bertujuan untuk menampilkan hasil pengelompokan (klasterisasi) dari 13 kabupaten/kota di Provinsi Kalimantan Selatan berdasarkan variabel kemiskinan, pengangguran, dan IPM. Setiap warna pada peta merepresentasikan cluster dengan karakteristik sosial-ekonomi yang serupa, sementara fitur pop-up memungkinkan pengguna melihat informasi detail tiap wilayah secara langsung. Dengan demikian, peta ini memudahkan analisis spasial kondisi sosial-ekonomi, membantu mengidentifikasi wilayah , serta mendukung perencanaan kebijakan pembangunan daerah.

Profil Rata-Rata Tiap Cluster

#kmeans_df2$centers
data_fiz <- subset(data_fiz, select = -c(NAMOBJ, kabupaten_kota))
mean_cluster_km <- aggregate(data_fiz, list(kmeans_df2$cluster),mean)
mean_cluster_km
##   Group.1 kemiskinan pengangguran    ipm Cluster
## 1       1     3.9300       6.2100 73.460       1
## 2       2     4.1850       5.7450 81.090       2
## 3       3     5.2860       3.2940 73.254       3
## 4       4     3.2025       3.0275 73.960       4

Pengujian Multivariate Analysis of Variance (MANOVA) untuk Mengetahui Perbedaan Pengaruh Cluster Terhadap Indikator Sosial dan Ekonomi


# Taking two dependent variable
kemiskinan <- data_fiz$kemiskinan
pengangguran <- data_fiz$pengangguran
ipm<-data_fiz$ipm

# MANOVA test
result = manova(cbind(kemiskinan, pengangguran, ipm) ~ Cluster, 
                                                data = data_fiz)
summary(result)
##           Df Pillai approx F num Df den Df   Pr(>F)   
## Cluster    1 0.7813   10.717      3      9 0.002507 **
## Residuals 11                                          
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan output di atas dapat diketahui bahwa: nilai indikator-indikator sosial ekonomi menunjukkan perbedaan yang signifikan antar Cluster pada taraf signifikansi 5 persen.


Daftar Pustaka


Abdul Yunus. K Means Cluster Analysis using R. RPubs. https://rpubs.com/abdul_yunus/Kmeans_Clustering.

Amelia, A., Nur, I. M., Rizky, M., & Milasari, S. P. (2023). Pengelompokan Tingkat Kemiskinan di Provinsi Jawa Barat dengan Metode K-Means Clustering. Journal of Data Insights, 1(2), 51–61. Universitas Muhammadiyah Semarang. https://doi.org/10.26714/jodi

Anggit Novietasari. Pengelompokan Tingkat Kemiskinan Kab/Kota di Jawa Tengah. RPubs. https://rpubs.com/anggitnoviee/k-means.

Badan Pusat Statistik (BPS). (2024). Berita Resmi Statistik No. 72/12/63/Th. XXVIII. Banjarbaru: BPS Provinsi Kalimantan Selatan.

Badan Pusat Statistik (BPS). (2025). Provinsi Kalimantan Selatan dalam Angka 2025. Banjarbaru: BPS Provinsi Kalimantan Selatan.

Diva Nifsu Mustika. Penerapan K-Means Clustering untuk Mengelompokkan Fasilitas Kesehatan pada Kabupaten/Kota Provinsi Jawa Barat 2022. RPubs. https://rpubs.com/divanm/psd-kel2p2.

Dominico Savio Winning Nugroho. Analisis K-Means: Clustering Provinsi di Indonesia Berdasarkan Indikator Sosial dan Ekonomi Tahun 2024. RPubs. https://rpubs.com/DomSav/AnalisisK-Means.

https://www.geeksforgeeks.org/r-language/manova-test-in-r-programming/

Yesan Tiara. Penerapan K-Means Clustering. RPubs. https://rpubs.com/yesantiara/k-means.