Pendahuluan

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 dan Variabel

Data yang digunakan merupakan data kabupaten/kota di Provinsi Kalimantan Barat. Variabel yang dianalisis meliputi:

Import Data

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"

Standardisasi Data

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

Hierarchical Clustering

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"
)

Dendrogram

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"
)

Evaluasi Jumlah Klaster

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.

Dendrogram Klaster Optimal

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"
)

Anggota Setiap Klaster

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 Klaster

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.

Peta Tematik Hasil Klaster

Membaca Shapefile

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)
  )

Data Klaster

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)
)

Join Data dan Shapefile

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

Peta Tematik

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.

Kesimpulan

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.