Ketahanan pangan merupakan salah satu aspek penting dalam pembangunan daerah karena berkaitan dengan kemampuan suatu wilayah dalam menyediakan pangan bagi masyarakatnya. Setiap kabupaten/kota memiliki karakteristik sektor pertanian yang berbeda sehingga diperlukan pendekatan berbasis data untuk memahami kondisi dan potensi masing-masing wilayah. Salah satu metode yang dapat digunakan adalah analisis klaster, yaitu teknik pengelompokan yang bertujuan mengidentifikasi wilayah-wilayah yang memiliki karakteristik serupa. Melalui pendekatan ini, pola kemiripan dan perbedaan antarwilayah dapat diketahui sehingga dapat menjadi dasar dalam mendukung pembangunan ketahanan pangan yang lebih tepat sasaran.
Data yang digunakan merupakan data kabupaten/kota di Provinsi Kalimantan Barat. Variabel yang dianalisis meliputi:
library(readxl)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(cluster)
## Warning: package 'cluster' was built under R version 4.5.2
library(clusterSim)
## Warning: package 'clusterSim' was built under R version 4.5.3
## Loading required package: MASS
## Warning: package 'MASS' was built under R version 4.5.2
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
library(fpc)
## Warning: package 'fpc' was built under R version 4.5.2
library(sf)
## Warning: package 'sf' was built under R version 4.5.3
## Linking to GEOS 3.14.1, GDAL 3.12.1, PROJ 9.7.1; sf_use_s2() is TRUE
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
data <- read_excel(
"D:/Kuliah/Semester 5/Analisis Multivariat/Data Tema 3 Fadhil Final.xlsx"
)
data <- as.data.frame(data)
row.names(data) <- data$"Kabupaten/Kota"
data$"Kabupaten/Kota" <- NULL
colnames(data)
## [1] "Produksi Komoditas Unggulan (Ton)"
## [2] "Persentase Penduduk >15 yang Bekerja di Sektor Pertanian"
## [3] "Luas Panen Tanaman Padi (Ha)"
## [4] "Pendapatan Usaha Pertanian Berlebih (%)"
## [5] "Pendapatan Usaha Pertanian Kurang (%)"
## [6] "Status Pekerjaan Utama"
## [7] "Lapangan Pekerjaan Utama Pertanian"
str(data)
## 'data.frame': 14 obs. of 7 variables:
## $ Produksi Komoditas Unggulan (Ton) : num 487 543 196 1405 1875 ...
## $ Persentase Penduduk >15 yang Bekerja di Sektor Pertanian: num 54.6 51.4 70.8 33.8 56.9 ...
## $ Luas Panen Tanaman Padi (Ha) : num 64122 12032 31206 17913 25063 ...
## $ Pendapatan Usaha Pertanian Berlebih (%) : num 21.4 20.9 17.8 31.8 20.5 ...
## $ Pendapatan Usaha Pertanian Kurang (%) : num 9.25 10.85 16.06 6.7 9.95 ...
## $ Status Pekerjaan Utama : num 17875 9983 15889 6381 9550 ...
## $ Lapangan Pekerjaan Utama Pertanian : num 77349 30840 56199 21894 52605 ...
head(data)
## Produksi Komoditas Unggulan (Ton)
## Kabupaten Sambas 487.20
## Kabupaten Bengkayang 543.30
## Kabupaten Landak 196.10
## Kabupaten Mempawah 1404.70
## Kabupaten Sanggau 1875.30
## Kabupaten Ketapang 1348.09
## Persentase Penduduk >15 yang Bekerja di Sektor Pertanian
## Kabupaten Sambas 54.58
## Kabupaten Bengkayang 51.35
## Kabupaten Landak 70.77
## Kabupaten Mempawah 33.81
## Kabupaten Sanggau 56.88
## Kabupaten Ketapang 48.43
## Luas Panen Tanaman Padi (Ha)
## Kabupaten Sambas 64122.36
## Kabupaten Bengkayang 12031.85
## Kabupaten Landak 31205.62
## Kabupaten Mempawah 17913.41
## Kabupaten Sanggau 25062.52
## Kabupaten Ketapang 29236.61
## Pendapatan Usaha Pertanian Berlebih (%)
## Kabupaten Sambas 21.42
## Kabupaten Bengkayang 20.85
## Kabupaten Landak 17.77
## Kabupaten Mempawah 31.77
## Kabupaten Sanggau 20.53
## Kabupaten Ketapang 22.86
## Pendapatan Usaha Pertanian Kurang (%)
## Kabupaten Sambas 9.25
## Kabupaten Bengkayang 10.85
## Kabupaten Landak 16.06
## Kabupaten Mempawah 6.70
## Kabupaten Sanggau 9.95
## Kabupaten Ketapang 17.40
## Status Pekerjaan Utama Lapangan Pekerjaan Utama Pertanian
## Kabupaten Sambas 17875 77349
## Kabupaten Bengkayang 9983 30840
## Kabupaten Landak 15889 56199
## Kabupaten Mempawah 6381 21894
## Kabupaten Sanggau 9550 52605
## Kabupaten Ketapang 12917 31649
names(data)
## [1] "Produksi Komoditas Unggulan (Ton)"
## [2] "Persentase Penduduk >15 yang Bekerja di Sektor Pertanian"
## [3] "Luas Panen Tanaman Padi (Ha)"
## [4] "Pendapatan Usaha Pertanian Berlebih (%)"
## [5] "Pendapatan Usaha Pertanian Kurang (%)"
## [6] "Status Pekerjaan Utama"
## [7] "Lapangan Pekerjaan Utama Pertanian"
Karena setiap variabel memiliki satuan yang berbeda, dilakukan standardisasi menggunakan z-score agar seluruh variabel berada pada skala yang sama.
data_standarisasi <- scale(data)
head(data_standarisasi)
## Produksi Komoditas Unggulan (Ton)
## Kabupaten Sambas -0.6217203
## Kabupaten Bengkayang -0.5523323
## Kabupaten Landak -0.9817709
## Kabupaten Mempawah 0.5131008
## Kabupaten Sanggau 1.0951682
## Kabupaten Ketapang 0.4430821
## Persentase Penduduk >15 yang Bekerja di Sektor Pertanian
## Kabupaten Sambas 0.43077369
## Kabupaten Bengkayang 0.25608455
## Kabupaten Landak 1.30638273
## Kabupaten Mempawah -0.69253699
## Kabupaten Sanggau 0.55516534
## Kabupaten Ketapang 0.09816124
## Luas Panen Tanaman Padi (Ha)
## Kabupaten Sambas 2.79344521
## Kabupaten Bengkayang -0.33822444
## Kabupaten Landak 0.81449826
## Kabupaten Mempawah 0.01537361
## Kabupaten Sanggau 0.44517649
## Kabupaten Ketapang 0.69612183
## Pendapatan Usaha Pertanian Berlebih (%)
## Kabupaten Sambas -0.3964958
## Kabupaten Bengkayang -0.4989581
## Kabupaten Landak -1.0526142
## Kabupaten Mempawah 1.4640043
## Kabupaten Sanggau -0.5564808
## Kabupaten Ketapang -0.1376436
## Pendapatan Usaha Pertanian Kurang (%)
## Kabupaten Sambas -0.32789669
## Kabupaten Bengkayang 0.03356423
## Kabupaten Landak 1.21057136
## Kabupaten Mempawah -0.90397504
## Kabupaten Sanggau -0.16975754
## Kabupaten Ketapang 1.51329488
## Status Pekerjaan Utama Lapangan Pekerjaan Utama Pertanian
## Kabupaten Sambas 1.9272601 2.0342585
## Kabupaten Bengkayang 0.5177021 -0.1498923
## Kabupaten Landak 1.5725487 1.0410144
## Kabupaten Mempawah -0.1256365 -0.5700134
## Kabupaten Sanggau 0.4403657 0.8722333
## Kabupaten Ketapang 1.0417319 -0.1119001
Analisis klaster dilakukan menggunakan jarak Euclidean dan metode Ward.D2.
dist_mat <- dist(
data_standarisasi,
method = "euclidean"
)
clust_hc <- hclust(
dist_mat,
method = "ward.D2"
)
Visualisasi hasil pengelompokan ditampilkan dalam bentuk dendrogram.
plot(
clust_hc,
cex = 0.7,
main = "Dendrogram Kabupaten/Kota di Provinsi Kalimantan Barat",
xlab = "Kabupaten/Kota",
sub = "Metode Ward.D2 dan Jarak Euclidean"
)
Penentuan jumlah klaster dilakukan menggunakan Dunn Index.
cluster_k2 <- cutree(clust_hc, k = 2)
cluster_k3 <- cutree(clust_hc, k = 3)
cluster_k4 <- cutree(clust_hc, k = 4)
cluster_k5 <- cutree(clust_hc, k = 5)
dunn2 <- cluster.stats(dist_mat, cluster_k2)$dunn
dunn3 <- cluster.stats(dist_mat, cluster_k3)$dunn
dunn4 <- cluster.stats(dist_mat, cluster_k4)$dunn
dunn5 <- cluster.stats(dist_mat, cluster_k5)$dunn
evaluasi_cluster <- data.frame(
Jumlah_Klaster = c(2,3,4,5),
Dunn_Index = c(dunn2,dunn3,dunn4,dunn5)
)
evaluasi_cluster
## Jumlah_Klaster Dunn_Index
## 1 2 0.3562051
## 2 3 0.4091144
## 3 4 0.5506889
## 4 5 0.5506889
Hasil Dunn Index menunjukkan bahwa empat klaster memberikan kualitas pengelompokan yang baik dengan interpretasi yang lebih sederhana dibandingkan jumlah klaster yang lebih banyak. Oleh karena itu, empat klaster dipilih sebagai jumlah klaster optimal dalam penelitian ini.
plot(
clust_hc,
cex = 0.7,
main = "Dendrogram Klaster Optimal Kabupaten/Kota di Provinsi Kalimantan Barat",
xlab = "Kabupaten/Kota",
sub = "Empat Klaster"
)
rect.hclust(
clust_hc,
k = 4,
border = "red"
)
split(
rownames(data),
cluster_k4
)
## $`1`
## [1] "Kabupaten Sambas" "Kabupaten Landak"
##
## $`2`
## [1] "Kabupaten Bengkayang" "Kabupaten Sanggau" "Kabupaten Ketapang"
## [4] "Kabupaten Sintang" "Kabupaten Kapuas Hulu" "Kabupaten Sekadau"
## [7] "Kabupaten Kubu Raya"
##
## $`3`
## [1] "Kabupaten Mempawah" "Kabupaten Melawi" "Kabupaten Kayong Utara"
## [4] "Kota Singkawang"
##
## $`4`
## [1] "Kota Pontianak"
Karakteristik setiap klaster diperoleh dari rata-rata variabel pada masing-masing kelompok.
data_cluster <- data
data_cluster$Cluster <- factor(cluster_k4)
karakteristik <- aggregate(
. ~ Cluster,
data = data_cluster,
mean
)
karakteristik
## Cluster Produksi Komoditas Unggulan (Ton)
## 1 1 341.6500
## 2 2 1093.9429
## 3 3 797.6575
## 4 4 2326.5000
## Persentase Penduduk >15 yang Bekerja di Sektor Pertanian
## 1 62.67500
## 2 53.79571
## 3 36.90250
## 4 3.08000
## Luas Panen Tanaman Padi (Ha) Pendapatan Usaha Pertanian Berlebih (%)
## 1 47663.990 19.59500
## 2 16640.629 22.48286
## 3 8818.192 29.48500
## 4 122.560 16.25000
## Pendapatan Usaha Pertanian Kurang (%) Status Pekerjaan Utama
## 1 12.65500 16882.000
## 2 13.47286 7785.286
## 3 5.67750 2661.500
## 4 7.49000 275.000
## Lapangan Pekerjaan Utama Pertanian
## 1 66774.00
## 2 39389.86
## 3 16136.50
## 4 2622.00
Hasil tersebut menunjukkan bahwa masing-masing klaster memiliki karakteristik yang berbeda. Perbedaan tersebut mencerminkan variasi kondisi sektor pertanian dan kapasitas produksi pangan antarwilayah di Provinsi Kalimantan Barat.
indo_sf <- st_read(
"D:/Kuliah/Semester 6/Data Spasial/ADM/ADM_KOTAKAB_2021.shp"
)
## Reading layer `ADM_KOTAKAB_2021' from data source
## `D:\Kuliah\Semester 6\Data Spasial\ADM\ADM_KOTAKAB_2021.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 526 features and 2 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 94.97195 ymin: -11.00762 xmax: 141.02 ymax: 6.076768
## Geodetic CRS: WGS 84
kalbar_sf <- indo_sf %>%
filter(WADMPR == "Kalimantan Barat") %>%
mutate(
kabupaten = toupper(WADMKK)
)
dat_kalbar <- data.frame(
kabupaten = c(
"SAMBAS",
"BENGKAYANG",
"LANDAK",
"MEMPAWAH",
"SANGGAU",
"KETAPANG",
"SINTANG",
"KAPUAS HULU",
"SEKADAU",
"MELAWI",
"KAYONG UTARA",
"KUBU RAYA",
"KOTA PONTIANAK",
"KOTA SINGKAWANG"
),
klaster = factor(cluster_k4)
)
kalbar_sf <- kalbar_sf %>%
left_join(
dat_kalbar,
by = "kabupaten"
) %>%
filter(!is.na(kabupaten))
kalbar_lab <- kalbar_sf %>%
filter(!is.na(klaster)) %>%
mutate(
label = kabupaten
)
kalbar_cent <- st_centroid(kalbar_lab)
## Warning: st_centroid assumes attributes are constant over geometries
ggplot(
kalbar_sf %>% filter(!is.na(klaster))
) +
geom_sf(
aes(fill = factor(klaster)),
color = "black",
size = 0.3
) +
geom_sf_text(
data = kalbar_cent,
aes(label = label),
size = 2.8
) +
scale_fill_manual(
values = c(
"1" = "#4CAF50",
"2" = "#2196F3",
"3" = "#FFEB3B",
"4" = "#F44336"
),
name = "Klaster"
) +
theme_void()
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
## give correct results for longitude/latitude data
Peta tematik memperlihatkan persebaran klaster kabupaten/kota di Provinsi Kalimantan Barat. Visualisasi spasial ini membantu mengidentifikasi wilayah yang memiliki karakteristik sektor pertanian dan ketahanan pangan yang serupa sehingga dapat menjadi dasar dalam penyusunan kebijakan pembangunan yang lebih terarah.
Analisis klaster menggunakan metode Hierarchical Clustering dengan pendekatan Ward.D2 berhasil mengelompokkan kabupaten/kota di Provinsi Kalimantan Barat ke dalam empat klaster berdasarkan karakteristik sektor pertanian dan ketahanan pangan. Hasil pengelompokan menunjukkan bahwa setiap wilayah memiliki kondisi yang berbeda sehingga memerlukan pendekatan pembangunan yang disesuaikan dengan karakteristik masing-masing daerah.
Pemanfaatan data statistik melalui analisis klaster mampu memberikan gambaran yang lebih objektif mengenai pola kemiripan dan perbedaan antarwilayah. Informasi tersebut dapat digunakan untuk mengidentifikasi potensi wilayah, menentukan prioritas pembangunan, serta mendukung penyusunan kebijakan ketahanan pangan yang lebih tepat sasaran. Dengan pendekatan berbasis data, pembangunan sektor pertanian dan ketahanan pangan di Provinsi Kalimantan Barat diharapkan dapat dilakukan secara lebih efektif, terarah, dan berkelanjutan.