1. Sumber Data

Data yang digunakan adalah rekap kejadian bencana alam di Provinsi Banten tahun 2023, mencakup jenis bencana, jumlah kejadian, dan jumlah korban.

data_bencana <- read_excel("data_bencana_alam.xlsx", skip = 3)

data_bencana <- data_bencana %>%
  select(No, `Jenis Bencana`, Tahun, Wilayah, `Jumlah Kejadian`, `Jumlah Korban`)

data_bencana <- data_bencana %>%
  mutate(`Jumlah Korban` = as.numeric(ifelse(`Jumlah Korban` == "-", 0, `Jumlah Korban`)))

knitr::kable(data_bencana, col.names = c("No", "Jenis Bencana", "Tahun", "Wilayah", "Jumlah Kejadian", "Jumlah Korban"),
             format.args = list(big.mark = ".")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
                full_width = FALSE, position = "left") %>%
  row_spec(0, background = "#1b263b", color = "white", bold = TRUE)
No Jenis Bencana Tahun Wilayah Jumlah Kejadian Jumlah Korban
1 Banjir 2.023 Banten 28 22.869
2 Kekeringan 2.023 Banten 4 116.503
3 Longsor 2.023 Banten 10 0
4 Kebakaran Hutan 2.023 Banten 19 125
5 Cuaca Ekstrem 2.023 Banten 1 2.139

2. Visualisasi Data Kategorik

Variabel Jenis Bencana merupakan data kategorik (nominal), sehingga divisualisasikan dengan Bar Chart dan Pie Chart.

2.1 Bar Chart — Jumlah Kejadian per Jenis Bencana

ggplot(data_bencana, aes(x = reorder(`Jenis Bencana`, -`Jumlah Kejadian`), y = `Jumlah Kejadian`)) +
  geom_col(fill = "#2a78d6") +
  geom_text(aes(label = `Jumlah Kejadian`), vjust = -0.5, size = 4) +
  labs(
    title = "Jumlah Kejadian Bencana per Jenis Bencana",
    subtitle = "Provinsi Banten, 2023",
    x = "Jenis Bencana",
    y = "Jumlah Kejadian"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))

Interpretasi: Banjir adalah jenis bencana dengan kejadian terbanyak (28 kejadian), diikuti Kebakaran Hutan (19), Longsor (10), Kekeringan (4), dan Cuaca Ekstrem (1). Bar chart dipilih karena tepat untuk membandingkan nilai antarkategori yang terpisah (bukan data berurutan waktu).

2.2 Pie Chart — Proporsi Kejadian per Jenis Bencana

data_pie <- data_bencana %>%
  mutate(persen = `Jumlah Kejadian` / sum(`Jumlah Kejadian`) * 100,
         label = paste0(`Jenis Bencana`, "\n", round(persen, 1), "%"))

ggplot(data_pie, aes(x = "", y = `Jumlah Kejadian`, fill = `Jenis Bencana`)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  geom_text(aes(label = label), position = position_stack(vjust = 0.5), size = 3.2) +
  labs(title = "Proporsi Jumlah Kejadian Bencana", subtitle = "Provinsi Banten, 2023") +
  theme_void(base_size = 12) +
  theme(legend.position = "none", plot.title = element_text(face = "bold", hjust = 0.5))

Interpretasi: Banjir mendominasi hampir separuh dari total kejadian bencana (~45%), diikuti Kebakaran Hutan (~31%). Karena jumlah kategori sedikit (5 kategori, memenuhi syarat ≤ 5–6), pie chart masih layak digunakan untuk menunjukkan proporsi terhadap keseluruhan.

3. Visualisasi Data Numerik

Variabel Jumlah Kejadian dan Jumlah Korban merupakan data numerik, divisualisasikan dengan Scatter Plot (melihat hubungan antarvariabel) dan Box-and-Whisker Plot (melihat sebaran/outlier).

3.1 Scatter Plot — Jumlah Kejadian vs Jumlah Korban

ggplot(data_bencana, aes(x = `Jumlah Kejadian`, y = `Jumlah Korban`, color = `Jenis Bencana`)) +
  geom_point(size = 4) +
  geom_text(aes(label = `Jenis Bencana`), vjust = -1, size = 3, show.legend = FALSE) +
  labs(
    title = "Hubungan Jumlah Kejadian dan Jumlah Korban",
    subtitle = "Provinsi Banten, 2023",
    x = "Jumlah Kejadian",
    y = "Jumlah Korban"
  ) +
  scale_y_continuous(labels = comma) +
  theme_minimal(base_size = 12) +
  theme(legend.position = "none", plot.title = element_text(face = "bold"))

Interpretasi: Tidak terlihat korelasi positif yang jelas antara jumlah kejadian dan jumlah korban. Kekeringan hanya terjadi 4 kali namun menimbulkan korban terbanyak (116.503), jauh melebihi Banjir yang terjadi 28 kali namun “hanya” berkorban 22.869 jiwa. Ini menunjukkan bahwa frekuensi kejadian tidak selalu berbanding lurus dengan tingkat dampaknya.

3.2 Box-and-Whisker Plot — Sebaran Jumlah Kejadian

ggplot(data_bencana, aes(x = "", y = `Jumlah Kejadian`)) +
  geom_boxplot(fill = "#F0997B", width = 0.3) +
  geom_jitter(width = 0.05, size = 2, color = "#712B13") +
  labs(
    title = "Sebaran Jumlah Kejadian Bencana",
    subtitle = "Provinsi Banten, 2023",
    x = NULL,
    y = "Jumlah Kejadian"
  ) +
  theme_minimal(base_size = 12) +
  theme(plot.title = element_text(face = "bold"))

Interpretasi: Median jumlah kejadian berada di sekitar 10 (Longsor). Sebaran data cukup lebar, dengan Banjir (28) berada pada ujung atas dan Cuaca Ekstrem (1) pada ujung bawah, namun keduanya masih dalam rentang wajar (tidak terdeteksi sebagai outlier ekstrem mengingat jumlah data yang sedikit).

4. Ringkasan

Kelompok Data Jenis Grafik Insight Utama
Kategorik Bar Chart Banjir paling sering terjadi (28 kejadian)
Kategorik Pie Chart Banjir & Kebakaran Hutan menyumbang ~76% total kejadian
Numerik Scatter Plot Frekuensi kejadian tidak berkorelasi linear dengan jumlah korban
Numerik Box-and-Whisker Sebaran jumlah kejadian antarjenis bencana cukup lebar

Referensi

  1. Sholihin, M. Visualisasi Data Kategorik dengan ggplot2. RPubs. rpubs.com/Miftah_14/visualisasidatakategorik_ggplot2
  2. Sholihin, M. Visualisasi Data Numerik dengan ggplot2. RPubs. rpubs.com/Miftah_14/visualisasidatanumerik_ggplot2