| No | Indikator | Kode Variabel | Satuan | Sumber Data |
|---|---|---|---|---|
| 1 | Intensitas Gelombang | VHM0_p95 | meter | ERA5 (2022-2025) |
| 2 | Anomali Suhu Permukaan Laut | sst_anom_mean | °Celsius | NOAA CDR OISST v2.1 (2022-2025) |
| 3 | Kepadatan Penduduk | popden_2020 | jiwa/km² | WorldPop (2020) |
| 4 | Bahaya Banjir | flood_100yr_mean_m | meter | GloFAS RP100 |
Analisis Indeks Keterpaparan Pesisir
Coastal Vulnerability Assesment and Reduction Module (CoVARM)
Pendahuluan
Dokumen ini menyajikan Analisis Indeks Keterpaparan untuk desa-desa pesisir di Sulawesi Tengah. Keterpaparan (Exposure) adalah besaran dan durasi tekanan eksternal (iklim atau hidro-oseanografi) yang menimpa suatu wilayah pesisir, serta keberadaan elemen masyarakat yang terjangkau oleh ancaman tersebut.
Analisis ini mengintegrasikan 4 indikator keterpaparan untuk mengukur tingkat paparan masyarakat pesisir terhadap bahaya iklim dan perubahan lingkungan laut.
Metodologi
Indeks keterpaparan dihitung menggunakan dua pendekatan matematis yang berbeda untuk memberikan perspektif komprehensif terhadap tingkat keterpaparan:
1. Indeks Rata-rata Geometrik (Geometric Mean) - Complement Formula
Untuk menghasilkan distribusi left-skewed (cenderung ke nilai tinggi/terpapar), kami menggunakan complement formula dari rata-rata geometrik:
\[ E_{geometric}^{left} = 1 - \left(\prod_{i=1}^{4} (1 - x_i)\right)^{1/4} \]
dimana \(x_i\) adalah nilai normalisasi indikator ke-\(i\) (rentang: 0-1).
Interpretasi:
- Jika salah satu indikator bernilai tinggi (mendekati 1), maka \((1 - x_i)\) akan kecil, sehingga hasil akhir mendekati 1 (terpapar)
- Hanya jika semua indikator bernilai rendah, hasil akhir akan rendah
Karakteristik:
- Distribusi left-skewed (cenderung ke nilai terpapar/1)
- Sensitif terhadap nilai ekstrem tinggi pada indikator
- Pendekatan konservatif: mengutamakan deteksi area berisiko tinggi
- Cocok untuk penilaian keterpaparan pesisir dimana satu faktor tinggi sudah cukup menandakan kerentanan
2. Indeks Rata-rata Aritmetik (Arithmetic Mean)
Rata-rata aritmetik memberikan bobot yang sama untuk semua indikator dan memungkinkan kompensasi antar indikator dengan nilai tinggi dan rendah.
\[ E_{arithmetic} = \frac{1}{4}\sum_{i=1}^{4} x_i \]
Karakteristik:
- Memungkinkan kompensasi penuh antar indikator
- Lebih mudah diinterpretasi
- Kurang sensitif terhadap nilai ekstrem
- Cocok untuk analisis komparatif
Indikator Keterpaparan
Indeks keterpaparan terdiri dari 4 indikator utama yang merepresentasikan berbagai aspek keterpaparan pesisir:
Proses Normalisasi
Semua indikator dinormalisasi ke rentang 0-1 menggunakan metode min-max:
\[ x_{norm} = \frac{x - x_{min}}{x_{max} - x_{min}} \]
dimana:
- \(x\) = nilai asli indikator
- \(x_{min}\) = nilai minimum dalam dataset
- \(x_{max}\) = nilai maksimum dalam dataset
- \(x_{norm}\) = nilai normalisasi (0 = keterpaparan terendah, 1 = keterpaparan tertinggi)
Klasifikasi Tingkat Keterpaparan
Indeks keterpaparan diklasifikasikan menggunakan metode interval tetap menjadi 5 kategori:
| Kategori | Rentang Nilai |
|---|---|
| Sangat Rendah | 0,0 - 0,2 |
| Rendah | 0,2 - 0,4 |
| Sedang | 0,4 - 0,6 |
| Tinggi | 0,6 - 0,8 |
| Sangat Tinggi | 0,8 - 1,0 |
Muat Data
Tampilkan kode
# Muat shapefile indeks keterpaparan
exposure_data <- st_read("data/exposure_index_complete.shp", quiet = TRUE)
# Muat data CSV untuk analisis tambahan
exposure_csv <- read_csv("data/exposure_index_complete.csv", show_col_types = FALSE)
# Muat ringkasan per kabupaten
kabupaten_summary <- read_csv("data/exposure_summary_by_kabupaten_complete.csv",
show_col_types = FALSE)
cat("Data berhasil dimuat:\n")Data berhasil dimuat:
Tampilkan kode
cat(" - Jumlah desa:", nrow(exposure_data), "\n") - Jumlah desa: 445
Tampilkan kode
cat(" - Jumlah kabupaten:", nrow(kabupaten_summary), "\n") - Jumlah kabupaten: 4
Statistik Ringkasan
Statistik Indikator Mentah
| Indikator | Min | Mean | Median | Max | SD |
|---|---|---|---|---|---|
| Intensitas Gelombang (m) | 0,140 | 0,339 | 0,300 | 0,818 | 0,150 |
| Anomali SST (°C) | 0,554 | 0,820 | 0,927 | 1,067 | 0,200 |
| Kepadatan Penduduk (jiwa/km²) | 27,390 | 410,361 | 163,600 | 5123,460 | 797,866 |
| flood_100yr_mean_m | 0,000 | 0,037 | 0,000 | 2,013 | 0,159 |
Statistik Indikator Ternormalisasi
| Indikator | Min | Mean | Median | Max | SD |
|---|---|---|---|---|---|
| Keterpaparan Gelombang | 0 | 0,293 | 0,236 | 1 | 0,221 |
| Keterpaparan SST | 0 | 0,519 | 0,728 | 1 | 0,390 |
| Keterpaparan Kepadatan Penduduk | 0 | 0,075 | 0,027 | 1 | 0,157 |
| Keterpaparan Banjir | 0 | 0,019 | 0,000 | 1 | 0,079 |
Statistik Indeks Keterpaparan
| Metode | Mean | Median | SD | Min | Max |
|---|---|---|---|---|---|
| Rata-rata Geometrik | 0,7281 | 0,9438 | 0,2832 | 0,0973 | 0,9976 |
| Rata-rata Aritmetik | 0,3288 | 0,3133 | 0,0857 | 0,0862 | 0,5963 |
Distribusi Klasifikasi Keterpaparan
| Kategori | Jumlah | Persentase |
|---|---|---|
| Sangat Rendah | 16 | 3,6 |
| Rendah | 52 | 11,7 |
| Sedang | 89 | 20,0 |
| Tinggi | 26 | 5,8 |
| Sangat Tinggi | 262 | 58,9 |
| Kategori | Jumlah | Persentase |
|---|---|---|
| Sangat Rendah | 17 | 3,8 |
| Rendah | 299 | 67,2 |
| Sedang | 129 | 29,0 |
Kontribusi Indikator
| Ranking | Indikator | Korelasi dengan Indeks Geometrik | Interpretasi | |
|---|---|---|---|---|
| popden_exp_norm | 1 | Kepadatan Penduduk | 0,138 | Kontribusi rendah |
| flood_exp_norm | 2 | Bahaya Banjir | 0,130 | Kontribusi rendah |
| wave_exp_norm | 3 | Intensitas Gelombang | 0,120 | Kontribusi rendah |
| sst_exp_norm | 4 | Anomali SST | -0,001 | Kontribusi rendah |
Interpretasi Kontribusi Indikator:
- Korelasi tinggi (r > 0,5): Indikator memiliki kontribusi dominan terhadap indeks keterpaparan
- Korelasi sedang (r 0,3-0,5): Indikator memberikan kontribusi signifikan namun tidak dominan
- Korelasi rendah (r < 0,3): Indikator memberikan kontribusi relatif kecil, kemungkinan karena variasi yang terbatas
Visualisasi Indikator Individual
Peta Intensitas Gelombang
Tampilkan kode
# Transform ke WGS84 untuk plotting
exposure_wgs84 <- exposure_data %>% st_transform(4326)
# Plot peta
ggplot(exposure_wgs84) +
geom_sf(aes(fill = VHM0_95), color = "white", linewidth = 0.1) +
scale_fill_gradientn(
colors = c("#ffffb2", "#fecc5c", "#fd8d3c", "#f03b20", "#bd0026"),
name = "VHM0 p95\n(meter)",
na.value = "grey90"
) +
labs(
title = "Intensitas Gelombang Laut (Persentil ke-95)",
subtitle = "Tinggi gelombang signifikan dari data ERA5 (2022-2025)",
caption = "Sumber: ERA5 Reanalysis Data"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
legend.position = "right"
)Interpretasi: Intensitas gelombang menunjukkan tingkat energi gelombang yang menghantam garis pantai. Nilai p95 merepresentasikan kondisi ekstrem yang terjadi 5% dari waktu. Area dengan intensitas gelombang tinggi (>0,5 m) memerlukan perhatian khusus dalam perencanaan infrastruktur pesisir.
Peta Anomali Suhu Permukaan Laut
Tampilkan kode
ggplot(exposure_wgs84) +
geom_sf(aes(fill = sst_nm_), color = "white", linewidth = 0.1) +
scale_fill_gradientn(
colors = c("#2166ac", "#67a9cf", "#fddbc7", "#ef8a62", "#b2182b"),
name = "Anomali SST\n(°C)",
na.value = "grey90"
) +
labs(
title = "Anomali Suhu Permukaan Laut",
subtitle = "Rata-rata anomali 2022-2025 terhadap baseline 30 tahun",
caption = "Sumber: NOAA CDR OISST v2.1"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
legend.position = "right"
)Interpretasi: Anomali SST menunjukkan penyimpangan suhu laut dari kondisi normal. Nilai tinggi (>0,8°C) mengindikasikan pemanasan laut yang dapat berdampak pada ekosistem pesisir (terumbu karang, perikanan) dan intensitas badai tropis.
Peta Kepadatan Penduduk
Tampilkan kode
ggplot(exposure_wgs84) +
geom_sf(aes(fill = pp_2020), color = "white", linewidth = 0.1) +
scale_fill_gradientn(
colors = c("#f2f0f7", "#cbc9e2", "#9e9ac8", "#756bb1", "#54278f"),
name = "Kepadatan\n(jiwa/km²)",
na.value = "grey90",
trans = "log10"
) +
labs(
title = "Kepadatan Penduduk Tahun 2020",
subtitle = "Jumlah penduduk per kilometer persegi (skala logaritmik)",
caption = "Sumber: WorldPop 2020"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
legend.position = "right"
)Interpretasi: Kepadatan penduduk menunjukkan jumlah orang yang berpotensi terpapar bahaya pesisir. Area dengan kepadatan tinggi (>1000 jiwa/km²) memerlukan prioritas tinggi dalam perencanaan evakuasi dan infrastruktur perlindungan.
Peta Bahaya Banjir
Tampilkan kode
ggplot(exposure_wgs84) +
geom_sf(aes(fill = f_100__), color = "white", linewidth = 0.1) +
scale_fill_gradientn(
colors = c("#eff3ff", "#bdd7e7", "#6baed6", "#3182bd", "#08519c"),
name = "Kedalaman\nBanjir (m)",
na.value = "grey90"
) +
labs(
title = "Bahaya Banjir (Periode Ulang 100 Tahun)",
subtitle = "Proyeksi kedalaman banjir dari GloFAS",
caption = "Sumber: GloFAS Flood Hazard Maps"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
legend.position = "right"
)Interpretasi: Bahaya banjir periode ulang 100 tahun (1% kemungkinan per tahun) menunjukkan area yang berisiko tergenang. Banyak area pesisir Sulawesi Tengah memiliki risiko banjir rendah, namun beberapa lokasi menunjukkan kedalaman signifikan (>0,2 m).
Peta Indeks Keterpaparan Gabungan
Peta Indeks Keterpaparan (Metode Geometrik)
Tampilkan kode
# Klasifikasi menggunakan interval tetap dengan label Bahasa Indonesia
exposure_wgs84 <- exposure_wgs84 %>%
mutate(
exp_geom_class_id = cut(
exp_gem,
breaks = c(0, 0.2, 0.4, 0.6, 0.8, 1.0),
labels = c("Sangat Rendah", "Rendah", "Sedang", "Tinggi", "Sangat Tinggi"),
include.lowest = TRUE
)
)
# Pastikan CRS adalah WGS84
if(st_crs(exposure_wgs84)$epsg != 4326) {
exposure_wgs84 <- st_transform(exposure_wgs84, 4326)
}
ggplot(exposure_wgs84) +
geom_sf(aes(fill = exp_geom_class_id), color = "white", linewidth = 0.1) +
scale_fill_manual(
values = c(
"Sangat Rendah" = "#2c7bb6",
"Rendah" = "#abd9e9",
"Sedang" = "#ffffbf",
"Tinggi" = "#fdae61",
"Sangat Tinggi" = "#d7191c"
),
name = "Tingkat Keterpaparan",
drop = FALSE
) +
labs(
title = "Indeks Keterpaparan Pesisir (Metode Geometrik)",
subtitle = "Klasifikasi berdasarkan 4 indikator: Gelombang, SST, Kepadatan Penduduk, Banjir",
caption = "Klasifikasi: Interval Tetap (0.2)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
legend.position = "right"
)Interpretasi: Peta menunjukkan distribusi spasial tingkat keterpaparan di wilayah pesisir Sulawesi Tengah. Desa dengan kategori “Tinggi” dan “Sangat Tinggi” memerlukan prioritas tertinggi untuk intervensi adaptasi dan mitigasi risiko pesisir.
Distribusi Indeks Keterpaparan
Histogram Distribusi
Tampilkan kode
# Gabungkan data untuk perbandingan
exposure_long <- exposure_csv %>%
select(IDDESA, nmdesa, exp_geom, exp_arith) %>%
pivot_longer(
cols = c(exp_geom, exp_arith),
names_to = "Metode",
values_to = "Indeks"
) %>%
mutate(
Metode = recode(Metode,
"exp_geom" = "Geometrik",
"exp_arith" = "Aritmetik"
)
)
ggplot(exposure_long, aes(x = Indeks, fill = Metode)) +
geom_histogram(alpha = 0.6, bins = 30, position = "identity") +
scale_fill_manual(values = c("Geometrik" = "#e41a1c", "Aritmetik" = "#377eb8")) +
labs(
title = "Distribusi Indeks Keterpaparan",
subtitle = "Perbandingan metode Geometrik vs Aritmetik",
x = "Nilai Indeks Keterpaparan",
y = "Frekuensi (Jumlah Desa)"
) +
theme_minimal() +
theme(
plot.title = element_text(face = "bold", size = 14),
legend.position = "top"
)Interpretasi: Dengan penggunaan complement formula, metode geometrik menghasilkan distribusi left-skewed (cenderung ke nilai tinggi/terpapar). Hal ini mencerminkan sensitivitasnya terhadap nilai ekstrem tinggi pada indikator - jika salah satu indikator bernilai tinggi, indeks keseluruhan akan tinggi. Metode aritmetik menghasilkan distribusi yang lebih simetris karena memungkinkan kompensasi antar indikator.
Peta Interaktif
Peta Leaflet Multi-Layer
Tampilkan kode
# Fungsi klasifikasi interval tetap sesuai metodologi
classify_fixed_interval_map <- function(values) {
cut(values,
breaks = c(0, 0.2, 0.4, 0.6, 0.8, 1.0),
labels = c("Very Low", "Low", "Medium", "High", "Very High"),
include.lowest = TRUE)
}
# Reklasifikasi menggunakan interval tetap
exposure_wgs84 <- exposure_wgs84 %>%
mutate(
exp_geom_class_fixed = classify_fixed_interval_map(exp_gem),
exp_arith_class_fixed = classify_fixed_interval_map(exp_rth)
)
# Palet warna untuk berbagai indikator
pal_continuous <- colorNumeric(
palette = "YlOrRd",
domain = c(0, 1),
na.color = "transparent"
)
pal_classification <- colorFactor(
palette = c("#2c7bb6", "#abd9e9", "#ffffbf", "#fdae61", "#d7191c"),
levels = c("Very Low", "Low", "Medium", "High", "Very High"),
na.color = "transparent"
)
# Buat peta dasar
map <- leaflet(exposure_wgs84) %>%
addProviderTiles(providers$CartoDB.Positron, group = "CartoDB Light") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Satelit")
# Layer indikator individual (ternormalisasi)
map <- map %>%
addPolygons(
fillColor = ~ pal_continuous(wv_xp_n),
weight = 0.5,
opacity = 0.7,
color = "white",
fillOpacity = 0.7,
popup = ~ paste0(
"<strong>Desa:</strong> ", nmdesa, "<br>",
"<strong>Kecamatan:</strong> ", nmkec, "<br>",
"<strong>VHM0 p95:</strong> ", round(VHM0_95, 3), " m<br>",
"<strong>Keterpaparan (norm):</strong> ", round(wv_xp_n, 3)
),
group = "1. Intensitas Gelombang"
) %>%
addPolygons(
fillColor = ~ pal_continuous(sst_xp_),
weight = 0.5,
opacity = 0.7,
color = "white",
fillOpacity = 0.7,
popup = ~ paste0(
"<strong>Desa:</strong> ", nmdesa, "<br>",
"<strong>Kecamatan:</strong> ", nmkec, "<br>",
"<strong>Anomali SST:</strong> ", round(sst_nm_, 3), " °C<br>",
"<strong>Keterpaparan (norm):</strong> ", round(sst_xp_, 3)
),
group = "2. Anomali SST"
) %>%
addPolygons(
fillColor = ~ pal_continuous(ppdn_x_),
weight = 0.5,
opacity = 0.7,
color = "white",
fillOpacity = 0.7,
popup = ~ paste0(
"<strong>Desa:</strong> ", nmdesa, "<br>",
"<strong>Kecamatan:</strong> ", nmkec, "<br>",
"<strong>Kepadatan:</strong> ", round(pp_2020, 1), " jiwa/km²<br>",
"<strong>Keterpaparan (norm):</strong> ", round(ppdn_x_, 3)
),
group = "3. Kepadatan Penduduk"
) %>%
addPolygons(
fillColor = ~ pal_continuous(fld_xp_),
weight = 0.5,
opacity = 0.7,
color = "white",
fillOpacity = 0.7,
popup = ~ paste0(
"<strong>Desa:</strong> ", nmdesa, "<br>",
"<strong>Kecamatan:</strong> ", nmkec, "<br>",
"<strong>Kedalaman Banjir:</strong> ", round(f_100__, 3), " m<br>",
"<strong>Keterpaparan (norm):</strong> ", round(fld_xp_, 3)
),
group = "4. Bahaya Banjir"
)
# Buat popup untuk indeks geometrik dan aritmetik dengan detail 4 indikator terurut
# Menggunakan klasifikasi interval tetap yang dihitung dari nilai indeks
create_popup <- function(data, index_col, class_col, index_name) {
popups <- character(nrow(data))
# Fungsi klasifikasi interval tetap lokal
get_fixed_class <- function(val) {
if (is.na(val)) return("Unknown")
if (val <= 0.2) return("Very Low")
if (val <= 0.4) return("Low")
if (val <= 0.6) return("Medium")
if (val <= 0.8) return("High")
return("Very High")
}
for(i in 1:nrow(data)) {
# Buat dataframe indikator untuk baris ini
indicators <- data.frame(
nama = c("Kepadatan Penduduk", "Anomali SST", "Bahaya Banjir",
"Intensitas Gelombang"),
norm = c(data$ppdn_x_[i], data$sst_xp_[i], data$fld_xp_[i],
data$wv_xp_n[i]),
asli = c(data$pp_2020[i], data$sst_nm_[i], data$f_100__[i],
data$VHM0_95[i]),
unit = c(" jiwa/km²", " °C", " m", " m"),
stringsAsFactors = FALSE
)
# Urutkan dari yang paling parah ke yang paling aman
indicators <- indicators[order(-indicators$norm), ]
# Klasifikasi menggunakan interval tetap dari nilai indeks (bukan dari kolom class)
index_val <- data[[index_col]][i]
class_val <- get_fixed_class(index_val)
class_color <- switch(class_val,
"Very High" = "#d7191c",
"High" = "#fdae61",
"Medium" = "#ffffbf",
"Low" = "#abd9e9",
"Very Low" = "#2c7bb6",
"#999999") # default gray for NA/Unknown
# Buat HTML popup
popups[i] <- paste0(
"<div style='min-width:250px'>",
"<strong style='font-size:14px;color:#c7254e'>", data$nmdesa[i], "</strong><br>",
"<strong>Kecamatan:</strong> ", data$nmkec[i], "<br>",
"<hr style='margin:5px 0'>",
"<strong>", index_name, ":</strong> ", round(data[[index_col]][i], 4), "<br>",
"<strong>Klasifikasi:</strong> <span style='color:", class_color,
";font-weight:bold'>", class_val, "</span><br>",
"<hr style='margin:5px 0'>",
"<strong>Detail Indikator (Urutan: Parah → Aman):</strong><br>",
"<table style='width:100%;font-size:11px;margin-top:5px'>",
"<tr style='background-color:#f5f5f5'><td><strong>1. ", indicators$nama[1], "</strong></td></tr>",
"<tr><td style='padding-left:10px'>Nilai: ", sprintf("%.3f", indicators$asli[1]),
indicators$unit[1], " (norm: ", sprintf("%.3f", indicators$norm[1]), ")</td></tr>",
"<tr style='background-color:#f5f5f5'><td><strong>2. ", indicators$nama[2], "</strong></td></tr>",
"<tr><td style='padding-left:10px'>Nilai: ", sprintf("%.3f", indicators$asli[2]),
indicators$unit[2], " (norm: ", sprintf("%.3f", indicators$norm[2]), ")</td></tr>",
"<tr style='background-color:#f5f5f5'><td><strong>3. ", indicators$nama[3], "</strong></td></tr>",
"<tr><td style='padding-left:10px'>Nilai: ", sprintf("%.3f", indicators$asli[3]),
indicators$unit[3], " (norm: ", sprintf("%.3f", indicators$norm[3]), ")</td></tr>",
"<tr style='background-color:#f5f5f5'><td><strong>4. ", indicators$nama[4], "</strong></td></tr>",
"<tr><td style='padding-left:10px'>Nilai: ", sprintf("%.3f", indicators$asli[4]),
indicators$unit[4], " (norm: ", sprintf("%.3f", indicators$norm[4]), ")</td></tr>",
"</table>",
"</div>"
)
}
return(popups)
}
# Buat popup strings
popup_geom <- create_popup(exposure_wgs84, "exp_gem", "exp_gm_", "Indeks Geometrik")
popup_arith <- create_popup(exposure_wgs84, "exp_rth", "exp_rt_", "Indeks Aritmetik")
# Layer indeks keterpaparan (menggunakan klasifikasi interval tetap)
map <- map %>%
addPolygons(
fillColor = ~ pal_classification(exp_geom_class_fixed),
weight = 0.5,
opacity = 0.8,
color = "white",
fillOpacity = 0.8,
popup = popup_geom,
group = "Indeks: Geometrik"
) %>%
addPolygons(
fillColor = ~ pal_classification(exp_arith_class_fixed),
weight = 0.5,
opacity = 0.8,
color = "white",
fillOpacity = 0.8,
popup = popup_arith,
group = "Indeks: Aritmetik"
)
# Tambahkan legenda
map <- map %>%
addLegend(
pal = pal_classification,
values = c("Very Low", "Low", "Medium", "High", "Very High"),
opacity = 0.8,
title = "Tingkat Keterpaparan",
position = "bottomleft",
labFormat = labelFormat(
transform = function(x) {
c("Sangat Rendah", "Rendah", "Sedang", "Tinggi", "Sangat Tinggi")[match(x, c("Very Low", "Low", "Medium", "High", "Very High"))]
}
)
)
# Tambahkan kontrol layer
map <- map %>%
addLayersControl(
baseGroups = c("CartoDB Light", "Satelit"),
overlayGroups = c(
"1. Intensitas Gelombang",
"2. Anomali SST",
"3. Kepadatan Penduduk",
"4. Bahaya Banjir",
"Indeks: Geometrik",
"Indeks: Aritmetik"
),
options = layersControlOptions(collapsed = TRUE)
) %>%
hideGroup(c(
"1. Intensitas Gelombang",
"2. Anomali SST",
"3. Kepadatan Penduduk",
"4. Bahaya Banjir",
"Indeks: Aritmetik"
))
# Tampilkan peta
map