Kabupaten Lamongan memiliki berbagai kecamatan dengan karakteristik wilayah yang berbeda-beda, baik dari segi luas wilayah, jumlah desa, jumlah penduduk, maupun tingkat perkembangan desa. Perbedaan karakteristik tersebut dapat memberikan gambaran mengenai kondisi dan potensi wilayah yang dimiliki oleh masing-masing kecamatan. Oleh karena itu, diperlukan suatu metode analisis yang dapat mengelompokkan kecamatan berdasarkan kemiripan karakteristik wilayahnya.
Dalam penelitian ini digunakan metode K-Means Clustering, yaitu salah satu metode analisis klaster yang cukup populer dan sering digunakan dalam pengelompokan data numerik. Metode ini bekerja dengan membagi data ke dalam sejumlah cluster tertentu berdasarkan jarak antara objek data dengan pusat cluster (centroid).
Melalui metode K-Means Clustering, diharapkan dapat diperoleh pengelompokan kecamatan di Kabupaten Lamongan berdasarkan karakteristik wilayah, sehingga dapat memberikan gambaran mengenai kesamaan karakteristik antar kecamatan.
Pada analisis ini dilakukan pengelompokan kecamatan berdasarkan beberapa Variabel yaitu:
Data yang digunakan dalam analisis ini merupakan data karakteristik wilayah kecamatan di Kabupaten Lamongan tahun 2024 yang meliputi luas wilayah, jumlah desa/kelurahan, jumlah penduduk, serta jumlah desa maju. Data ini akan digunakan untuk melakukan pengelompokan wilayah menggunakan metode K-Means Clustering.
library(readxl)
data <- read_excel("D:/RSTUDIOo/komjut/Data Karakteristik wilayah lamongan.xlsx")
# merapikan nama kolom
colnames(data) <- c(
"Kecamatan",
"Luas_Wilayah",
"Jumlah_Desa",
"Jumlah_Penduduk",
"Desa_Maju"
)
summary(data)## Kecamatan Luas_Wilayah Jumlah_Desa Jumlah_Penduduk
## Length:27 Min. : 30.15 Min. : 9.00 Min. : 42675
## Class :character 1st Qu.: 47.64 1st Qu.:16.00 1st Qu.: 83251
## Mode :character Median : 52.99 Median :18.00 Median : 97811
## Mean : 67.14 Mean :17.56 Mean :101221
## 3rd Qu.: 81.11 3rd Qu.:20.50 3rd Qu.:113792
## Max. :195.44 Max. :29.00 Max. :198496
## Desa_Maju
## Min. : 0.000
## 1st Qu.: 4.500
## Median : 7.000
## Mean : 8.259
## 3rd Qu.:13.000
## Max. :19.000
Jumlah kecamatan dalam data adalah 27 kecamatan.
Rata-rata luas wilayah adalah 67.14 km².
Rata-rata jumlah penduduk adalah 1.0122093^{5} jiwa.
Uji multikolinieritas dilakukan untuk mengetahui apakah terdapat hubungan yang kuat antar variabel yang digunakan dalam analisis. Pengujian dilakukan menggunakan Variance Inflation Factor (VIF).
Kriteria pengujian: - VIF < 5 → tidak terjadi multikolinieritas - VIF 5 – 10 → multikolinieritas sedang - VIF > 10 → terjadi multikolinieritas tinggi
## Loading required package: carData
library(knitr)
# memilih variabel numerik
data_vif <- data[,2:5]
# fungsi untuk menghitung VIF semua variabel
vif_values <- sapply(names(data_vif), function(x){
form <- as.formula(paste(x, "~ ."))
vif(lm(form, data=data_vif))[[1]]
})
# membuat tabel hasil
vif_result <- data.frame(
Variabel = names(data_vif),
VIF = round(vif_values,3)
)
kable(vif_result,
caption = "Hasil Uji Multikolinieritas Menggunakan VIF")| Variabel | VIF | |
|---|---|---|
| Luas_Wilayah | Luas_Wilayah | 1.866 |
| Jumlah_Desa | Jumlah_Desa | 1.173 |
| Jumlah_Penduduk | Jumlah_Penduduk | 1.130 |
| Desa_Maju | Desa_Maju | 1.028 |
Berdasarkan hasil perhitungan Variance Inflation Factor (VIF) pada tabel di atas, apabila seluruh variabel memiliki nilai VIF kurang dari 10, maka dapat disimpulkan bahwa tidak terdapat masalah multikolinieritas antar variabel yang digunakan dalam analisis. Dengan demikian variabel luas wilayah, jumlah desa, jumlah penduduk, dan jumlah desa maju dapat digunakan bersama dalam proses analisis K-Means Clustering.
library(knitr)
# menghitung jarak Mahalanobis
mahal_dist <- mahalanobis(data_scaled,
colMeans(data_scaled),
cov(data_scaled))
cutoff <- qchisq(0.975, df = ncol(data_scaled))
outlier_result <- data.frame(
Kecamatan = data$Kecamatan,
Mahalanobis_Distance = mahal_dist,
Cutoff = cutoff,
Outlier = mahal_dist > cutoff
)
kable(outlier_result,
caption = "Hasil Deteksi Outlier Menggunakan Jarak Mahalanobis")| Kecamatan | Mahalanobis_Distance | Cutoff | Outlier |
|---|---|---|---|
| Lamongan | 2.3381823 | 11.14329 | FALSE |
| Turi | 1.4900203 | 11.14329 | FALSE |
| Deket | 0.3968808 | 11.14329 | FALSE |
| Tikung | 1.4222716 | 11.14329 | FALSE |
| Kembangbahu | 2.0794043 | 11.14329 | FALSE |
| Mantup | 5.5496872 | 11.14329 | FALSE |
| Sambeng | 15.1679885 | 11.14329 | TRUE |
| Ngimbang | 2.1820025 | 11.14329 | FALSE |
| Bluluk | 4.8506236 | 11.14329 | FALSE |
| Sukorame | 4.7196612 | 11.14329 | FALSE |
| Modo | 0.5161536 | 11.14329 | FALSE |
| Babat | 5.3544119 | 11.14329 | FALSE |
| Kedungpring | 1.4770998 | 11.14329 | FALSE |
| Sugio | 5.8395293 | 11.14329 | FALSE |
| Sukodadi | 0.6660854 | 11.14329 | FALSE |
| Pucuk | 1.5071353 | 11.14329 | FALSE |
| Sekaran | 2.1916199 | 11.14329 | FALSE |
| Maduran | 2.2092179 | 11.14329 | FALSE |
| Laren | 1.1052695 | 11.14329 | FALSE |
| Brondong | 6.6524296 | 11.14329 | FALSE |
| Paciran | 9.0075255 | 11.14329 | FALSE |
| Solokuro | 4.7554388 | 11.14329 | FALSE |
| Karanggeneng | 2.5166285 | 11.14329 | FALSE |
| Kalitengah | 2.5154214 | 11.14329 | FALSE |
| Karangbinangun | 4.3777089 | 11.14329 | FALSE |
| Glagah | 8.6126590 | 11.14329 | FALSE |
| Sarirejo | 4.4989435 | 11.14329 | FALSE |
Berdasarkan hasil deteksi outlier menggunakan jarak Mahalanobis, terdapat satu observasi yang memiliki nilai jarak lebih besar dari nilai batas (cutoff) distribusi Chi-Square sehingga dapat dikategorikan sebagai outlier, yaitu Kecamatan Sambeng. Hal ini menunjukkan bahwa Kecamatan Sambeng memiliki karakteristik yang cukup berbeda dibandingkan dengan kecamatan lainnya berdasarkan variabel yang digunakan dalam analisis, yaitu luas wilayah, jumlah desa, jumlah penduduk, dan jumlah desa maju.
Meskipun demikian, data yang teridentifikasi sebagai outlier tersebut tetap digunakan dalam proses analisis. Hal ini disebabkan karena tujuan penelitian ini adalah untuk melakukan pengelompokan kecamatan berdasarkan karakteristik wilayah sehingga keberadaan data yang memiliki perbedaan cukup besar justru dapat memberikan informasi penting mengenai kecamatan yang memiliki karakteristik khusus dibandingkan dengan wilayah lainnya.
Dengan demikian, keberadaan Kecamatan Sambeng sebagai outlier tidak dihapus dari dataset, tetapi tetap dipertahankan agar hasil analisis K-Means Clustering dapat menggambarkan kondisi karakteristik wilayah kecamatan di Kabupaten Lamongan secara lebih nyata dan komprehensif. # Menentukan Jumlah Cluster
Metode yang digunakan untuk menentukan jumlah cluster adalah Elbow Method.
set.seed(123)
wss <- numeric(10)
for(i in 1:10){
wss[i] <- kmeans(data_scaled, centers = i)$tot.withinss
}
plot(1:10, wss,
type="b",
pch=19,
xlab="Jumlah Cluster",
ylab="Total Within Sum of Squares",
main="Metode Elbow")Jumlah cluster optimal dipilih berdasarkan titik siku (elbow) pada grafik.
Berdasarkan grafik metode Elbow di atas, terlihat bahwa penurunan nilai Within Sum of Squares (WSS) mulai melambat setelah jumlah cluster tertentu. Titik perubahan tersebut menunjukkan jumlah cluster yang paling optimal untuk digunakan dalam analisis. Oleh karena itu, jumlah cluster yang dipilih dalam penelitian ini adalah 3 cluster, karena pada titik tersebut terjadi perubahan kemiringan grafik yang cukup jelas.
Jumlah cluster optimal dipilih berdasarkan titik siku (elbow) pada grafik.
## K-means clustering with 3 clusters of sizes 18, 8, 1
##
## Cluster means:
## Luas_Wilayah Jumlah_Desa Jumlah_Penduduk Desa_Maju
## 1 -0.3261051 -0.4266205 -0.1205050 -0.5636141
## 2 0.2568799 0.8476276 0.2608918 1.0501456
## 3 3.8148520 0.8981484 0.0819565 1.7438883
##
## Clustering vector:
## [1] 1 1 1 1 2 1 3 2 1 1 1 2 2 2 1 1 1 1 2 1 1 1 1 1 2 2 1
##
## Within cluster sum of squares by cluster:
## [1] 44.47746 14.30270 0.00000
## (between_SS / total_SS = 43.5 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Cluster yang terbentuk sebanyak 3 kelompok.
library(DT)
data$Cluster <- model$cluster
datatable(data,
caption = "Hasil Pengelompokan Kecamatan Berdasarkan K-Means Clustering",
options = list(pageLength = 10, scrollX = TRUE))Jumlah anggota setiap cluster adalah:
##
## 1 2 3
## 18 8 1
## Luas_Wilayah Jumlah_Desa Jumlah_Penduduk Desa_Maju
## 1 -0.3261051 -0.4266205 -0.1205050 -0.5636141
## 2 0.2568799 0.8476276 0.2608918 1.0501456
## 3 3.8148520 0.8981484 0.0819565 1.7438883
Nilai centroid menunjukkan karakteristik rata-rata setiap cluster.
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
Visualisasi K-Means Clustering
Berdasarkan hasil visualisasi K-Means Clustering, terlihat bahwa terdapat satu objek yang berada cukup jauh dari kelompok data lainnya. Kondisi ini menunjukkan adanya pencilan (outlier) dalam hasil pengelompokan.
Keberadaan pencilan tersebut mengindikasikan bahwa kecamatan tersebut memiliki karakteristik yang cukup berbeda dibandingkan dengan kecamatan lainnya berdasarkan variabel yang digunakan, yaitu luas wilayah, jumlah desa, jumlah penduduk, dan jumlah desa maju. Perbedaan karakteristik tersebut menyebabkan kecamatan tersebut cenderung membentuk cluster tersendiri atau berada pada posisi yang jauh dari pusat cluster lainnya.hasil pengelompokan ini dapat membantu mengidentifikasi kecamatan yang memiliki karakteristik wilayah yang unik sehingga dapat menjadi pertimbangan dalam perencanaan dan pengambilan kebijakan pembangunan daerah.