Pendahuluan

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.

1. Persiapan: Memuat Paket yang Dibutuhkan

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)

2. Mendapatkan Data Spasial Peta Indonesia Menggunakan geodata

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

3. Menyiapkan dan Menggabungkan Data

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

4. Membuat Visualisasi Peta Koroplet

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

Kesimpulan

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.