Dokumen ini menggunakan metode paling andal untuk mendapatkan data
peta Indonesia menggunakan paket geodata, sehingga tidak
bergantung pada link URL yang bisa rusak atau diblokir.
Kita akan menambahkan paket geodata untuk mengunduh peta
dan terra sebagai pendukungnya.
# Instal paket jika belum ada
if (!require("geodata")) install.packages("geodata")
if (!require("sf")) install.packages("sf")
if (!require("ggplot2")) install.packages("ggplot2")
if (!require("dplyr")) install.packages("dplyr")
# Muat semua paket
library(geodata)
library(sf)
library(ggplot2)
library(dplyr)
geodataFungsi gadm() dari paket geodata akan
mengunduh data batas administratif untuk negara yang kita tentukan. -
country="IDN": Kode ISO 3-huruf untuk Indonesia. -
level=1: Level 1 berarti batas provinsi. (Level 0 = negara,
Level 2 = kabupaten/kota). - path=".": Menyimpan file yang
diunduh di folder kerja Anda saat ini, jadi tidak perlu mengunduh lagi
nanti.
# Mengunduh data provinsi Indonesia
# Ini mungkin memakan waktu beberapa saat saat pertama kali dijalankan
peta_spat <- gadm(country = "IDN", level = 1, path = ".")
# Objek yang diunduh berformat 'SpatVector' dari paket terra.
# Kita perlu mengubahnya menjadi format 'sf' agar kompatibel dengan ggplot2.
peta_indonesia <- st_as_sf(peta_spat)
# --- LANGKAH DIAGNOSTIK PENTING ---
# Cek nama kolom untuk menemukan nama kolom provinsi
cat("Nama kolom yang tersedia di data peta:\n")
## Nama kolom yang tersedia di data peta:
print(names(peta_indonesia))
## [1] "GID_1" "GID_0" "COUNTRY" "NAME_1" "VARNAME_1" "NL_NAME_1"
## [7] "TYPE_1" "ENGTYPE_1" "CC_1" "HASC_1" "ISO_1" "geometry"
# Dari output, kita tahu nama kolom provinsi adalah "NAME_1"
nama_kolom_provinsi <- "NAME_1"
Sekarang kita akan membuat data fiktif dan menggabungkannya, sama
seperti sebelumnya, namun menggunakan nama kolom
NAME_1.
# Membuat data fiktif
data_proyek <- data.frame(
Nama_Provinsi = peta_indonesia[[nama_kolom_provinsi]],
Jumlah_Proyek = sample(50:1000, size = nrow(peta_indonesia), replace = TRUE)
)
# Menggabungkan data peta dengan data proyek
peta_data_lengkap <- left_join(peta_indonesia, data_proyek, by = setNames("Nama_Provinsi", nama_kolom_provinsi))
Sekarang kita bisa memvisualisasikan peta dengan data yang sudah lengkap.
ggplot(data = peta_data_lengkap) +
geom_sf(aes(fill = Jumlah_Proyek), color = "white", size = 0.15) +
scale_fill_viridis_c(option = "magma", name = "Jumlah Proyek") +
labs(
title = "Peta Sebaran Proyek Pembangunan di Indonesia",
subtitle = "Data diperoleh secara andal menggunakan paket geodata",
caption = "Sumber: Data Fiktif | Peta dari GADM"
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5),
legend.position = "bottom"
)
Dokumen ini menunjukkan cara yang lebih andal untuk mendapatkan data
peta Indonesia menggunakan paket geodata, sehingga tidak
bergantung pada tautan eksternal yang mungkin tidak stabil. Dengan
pendekatan ini, kita dapat memastikan bahwa data peta selalu tersedia
dan dapat digunakan untuk analisis lebih lanjut.