Data yang digunakan adalah data BPS Produksi Padi dan Beras Menurut Provinsi (ton) dari tahun 2022-2023. Data ini bisa dicari di website BPS/Publikasi BPS. Data itu akan dianalisis dengan 2 metode klaster (cluster) yaitu k-means clustering dan fuzzy c-means clustering kepada data produksi padi dan beras, dengan langkah-langkah yang ada di R. Lalu hasil itu dibandingkan dengan pemetaan provinsi Indonesia. Kita melakukan metode ini untuk mengelompokkan produksi padi/beras dari provinsi Indonesia untuk melihat hubungan/similaritas dalam produksi tersebut dan menyimpulkan pemetaan provinsinya berdasarkan analisis klaster tersebut.
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.4.3
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tibble' was built under R version 4.4.3
## Warning: package 'tidyr' was built under R version 4.4.3
## Warning: package 'readr' was built under R version 4.4.3
## Warning: package 'purrr' was built under R version 4.4.3
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'forcats' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## âś” dplyr 1.1.4 âś” readr 2.1.5
## âś” forcats 1.0.0 âś” stringr 1.5.1
## âś” ggplot2 3.5.1 âś” tibble 3.2.1
## âś” lubridate 1.9.4 âś” tidyr 1.3.1
## âś” purrr 1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## âś– dplyr::filter() masks stats::filter()
## âś– dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.4.3
library(ggplot2)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
data_padi <- read_excel("C:/Data Sains/UAS Pengantar Data Sains Pertanian (1).xlsx", sheet = "Data BPS Pertanian")
data_clean <- data_padi %>%
filter(!is.na(padi2022)) %>%
distinct(Provinsi, .keep_all = TRUE) %>%
column_to_rownames("Provinsi") %>%
select(padi2022, padi2023, beras2022, beras2023)
data_scaled <- scale(data_clean)
Untuk melakukan metode klaster, kita harus menentukan jumlah klaster untuk mendapatkan hasil pengelompokan yang paling relevan dan bermanfaat. Ada beberapa metode yang dapat digunakan untuk menentukan jumlah klaster yang optimal, seperti metode Elbow dan Silhoulette. Untuk analisis ini, kita menggunakan metode elbow. Metode Elbow melibatkan pemplotan Sum of Squared Error (SSE) atau Inertia terhadap jumlah klaster. SSE adalah jumlah kuadrat jarak setiap titik data ke centroid klaster terdekatnya. Kurva SSE dalam metode ini membentukan pola yang mirip dengan bentuk siku atau pola elbow.
fviz_nbclust(data_scaled, kmeans, method = "wss") +
geom_vline(xintercept = 3, linetype = 2) +
labs(title = "Elbow Method")
Berdasarkan metode ini, kita dapat menentukan jumlah klaster yang
optimal. “k” mewakili jumlah klaster Misalnya, dari kurva jumlah klaster
metode elbow, data itu menunjukkan siku di k=3, maka kita akan
menggunakan 3 klaster untuk kedua metode klaster, yaitu K-Means dan
Fuzzy C-Means.
set.seed(123)
k <- 3
kmeans_result <- kmeans(data_scaled, centers = k, nstart = 25)
data_clean$kmeans_cluster <- as.factor(kmeans_result$cluster)
fviz_cluster(kmeans_result, data = data_scaled,
ellipse.type = "convex",
repel = TRUE,
ggtheme = theme_minimal(),
main = "K-Means Clustering Results")
set.seed(123)
fcm_result <- cmeans(data_scaled, centers = k, m = 2)
data_clean$fcm_cluster <- as.factor(fcm_result$cluster)
fviz_cluster(list(data = data_scaled, cluster = fcm_result$cluster),
ellipse.type = "convex",
repel = TRUE,
ggtheme = theme_minimal(),
main = "Fuzzy C-Means Clustering Results")
Dengan grafik sebaran dari kedua metode klaster, maka kita dapat hasil
sebagai berikut:
Klaster 1 (Produksi Tinggi): Biasanya di provinsi Jawa.
Ciri: Produksi padi dan beras sangat dominan (rata-rata >5 juta ton padi).
Klaster 2 (Produksi Menengah): Sumatera Utara, Lampung, Sulawesi Selatan, Sumatera Selatan, dll.
Ciri: Produksi padi 200 ribu–2.7 juta ton, beras 100 ribu–1.5 juta ton.
Klaster 3 (Produksi Rendah): Kepulauan Riau, Bangka Belitung, Papua Barat, Maluku, dll.
Visualisasi hasil: Plot menunjukkan pemisahan jelas antar klaster dengan sedikit overlap di wilayah produksi menengah-rendah.
Kita visualisasikan hasil kedua metode klaster dengan peta provinsi Indonesia. Peta itu bisa didapatkan dari GADM dengan bentuk shpfile. Tinggal cari di GADM, download “Indonesia”, mengunduh file shpfile, dan “Extract File” untuk membuka aksesnya. Lalu masuk filenya ke R dengan syarat “st_read” sebagai berikut.
shp_provinsi <- st_read("C:/Data Sains/idn_admbnda_adm1_bps_20200401.shp")
## Reading layer `idn_admbnda_adm1_bps_20200401' from data source
## `C:\Data Sains\idn_admbnda_adm1_bps_20200401.shp' using driver `ESRI Shapefile'
## Simple feature collection with 34 features and 16 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 95.01079 ymin: -11.00762 xmax: 141.0194 ymax: 6.07693
## Geodetic CRS: WGS 84
shp_data <- shp_provinsi %>%
left_join(rownames_to_column(data_clean, "Provinsi"), by = c("ADM1_EN" = "Provinsi"))
ggplot(shp_data) +
geom_sf(aes(fill = kmeans_cluster)) +
scale_fill_viridis_d(name = "Cluster") +
labs(title = "Hasil K-Means Clustering Produksi Padi/Beras") +
theme_minimal()
Cluster 1 (Produksi Tinggi): Biasanya di provinsi Jawa.
Ciri: Produksi padi dan beras sangat dominan (>5 juta ton padi/tahun).
Interpretasi: Pusat produksi padi nasional, didukung oleh lahan subur dan infrastruktur pertanian yang baik. Biasanya terdapat di pulau Jawa yang merupakan pulau dengan populasi terbesar di Indonesia.
Cluster 2 (Produksi Menengah): Sumatera Utara, Lampung, Sulawesi Selatan, Sumatera Selatan, dll.
Ciri: Produksi signifikan (500 ribu–2 juta ton padi/tahun).
Interpretasi: Potensi pengembangan dengan intensifikasi pertanian atau perluasan lahan, tetapi masih rendah dibandingkan dengan cluster 2.
Cluster 3 (Produksi Rendah): Kepulauan Riau, Bangka Belitung, Papua Barat, Maluku, dll.
Ciri: Produksi terbatas (<500 ribu ton padi/tahun).
Interpretasi: Keterbatasan lahan atau infrastruktur, memerlukan intervensi kebijakan khusus.
# Peta hasil fuzzy c-means
ggplot(shp_data) +
geom_sf(aes(fill = fcm_cluster)) +
scale_fill_viridis_d(name = "Cluster") +
labs(title = "Hasil Fuzzy C-Means Clustering Produksi Padi/Beras") +
theme_minimal()
Cluster 1 (Produksi Rendah): Kepulauan Riau, Bangka Belitung, Papua Barat, Maluku, dll.
Ciri: Produksi terbatas (<500 ribu ton padi/tahun).
Interpretasi: Keterbatasan lahan atau infrastruktur, memerlukan intervensi kebijakan khusus.
Cluster 2 (Produksi Menengah): Sumatera Utara, Lampung, Sulawesi Selatan, Sumatera Selatan, dll.
Ciri: Produksi signifikan (500 ribu–2 juta ton padi/tahun).
Interpretasi: Potensi pengembangan dengan intensifikasi pertanian atau perluasan lahan, tetapi masih rendah dibandingkan dengan cluster 2.
Cluster 3 (Produksi Tinggi): Biasanya di provinsi Jawa.
Ciri: Produksi padi dan beras sangat dominan (>5 juta ton padi/tahun).
Interpretasi: Pusat produksi padi nasional, didukung oleh lahan subur dan infrastruktur pertanian yang baik. Biasanya terdapat di pulau Jawa yang merupakan pulau dengan populasi terbesar di Indonesia.
Ketimpangan produksi: Terdapat ketimpangan besar dalam produksi padi dan beras antar provinsi di Indonesia.
Dominasi Jawa: Provinsi di Jawa mendominasi produksi padi dan beras nasional.
Potensi pengembangan: Beberapa provinsi di luar Jawa memiliki potensi untuk ditingkatkan produksinya.
Kebijakan redistribusi: Perlu kebijakan untuk mendukung peningkatan produksi di provinsi dengan klaster produksi rendah.
Investasi infrastruktur: Provinsi dengan potensi produksi menengah dapat ditingkatkan dengan investasi infrastruktur pertanian.
Analisis lanjutan:
Lakukan analisis faktor yang mempengaruhi produksi (curah hujan, luas lahan, dll.).
Analisis temporal untuk melihat tren produksi.
Bandingkan dengan data konsumsi untuk analisis ketahanan pangan.
Coba tambahkan variabel lain seperti luas lahan atau produktivitas.
Eksperimen dengan jumlah klaster yang berbeda.
Coba metode clustering lain seperti hierarchical clustering.
Dengan analisis ini, kita dapat memahami pola distribusi produksi padi dan beras di Indonesia serta mengidentifikasi provinsi-provinsi yang membutuhkan intervensi khusus untuk meningkatkan produksi pertanian.
Inilah cara melakukan metode klaster pada data BPS Produksi Padi dan Beras Menurut Provinsi (ton) dari tahun 2022-2023 serta melakukan visualisasi klaster di pemetaan. Kedua metode (k-means dan fuzzy c-means) memberikan hasil yang serupa, menunjukkan robustnes dari pengelompokan ini. Analisis ini bukan hanya sebagai visual datanya, tetapi juga sebagai kunci dan solusi dalam masalah yang tentu ada di Indonesia.