Data yang digunakan berasal dari Badan Pusat Statistik (BPS), yaitu tabel “Angka Harapan Hidup (AHH) Menurut Provinsi dan Jenis Kelamin, 2024”. Data memuat AHH (usia harapan hidup saat lahir, dalam tahun) untuk 38 provinsi di Indonesia, dirinci menurut jenis kelamin (laki-laki dan perempuan), beserta angka nasional Indonesia sebagai pembanding.
Kelompok kami memilih data ini karena:
path_csv <- "Angka_Harapan_Hidup__AHH__Menurut_Provinsi_dan_Jenis_Kelamin__2024.csv"
# Baris 1-4 berisi judul dan header bertingkat, data sesungguhnya
# baru dimulai dari baris ke-5, sehingga skip = 4
ahh_raw <- read_csv(path_csv, skip = 4,
col_names = c("provinsi", "ahh_laki", "ahh_perempuan"))
# Baris "INDONESIA" adalah angka nasional -> dipisah sebagai pembanding,
# bukan bagian dari 38 provinsi
nasional <- ahh_raw %>% filter(provinsi == "INDONESIA")
# Lookup pulau/kepulauan untuk setiap provinsi, dipakai sebagai
# variabel kategorik tambahan pada beberapa grafik
pulau_lookup <- tibble::tribble(
~provinsi, ~pulau,
"ACEH", "Sumatera", "SUMATERA UTARA", "Sumatera", "SUMATERA BARAT", "Sumatera",
"RIAU", "Sumatera", "JAMBI", "Sumatera", "SUMATERA SELATAN", "Sumatera",
"BENGKULU", "Sumatera", "LAMPUNG", "Sumatera",
"KEP. BANGKA BELITUNG", "Sumatera", "KEP. RIAU", "Sumatera",
"DKI JAKARTA", "Jawa", "JAWA BARAT", "Jawa", "JAWA TENGAH", "Jawa",
"DI YOGYAKARTA", "Jawa", "JAWA TIMUR", "Jawa", "BANTEN", "Jawa",
"BALI", "Bali & Nusa Tenggara", "NUSA TENGGARA BARAT", "Bali & Nusa Tenggara",
"NUSA TENGGARA TIMUR", "Bali & Nusa Tenggara",
"KALIMANTAN BARAT", "Kalimantan", "KALIMANTAN TENGAH", "Kalimantan",
"KALIMANTAN SELATAN", "Kalimantan", "KALIMANTAN TIMUR", "Kalimantan",
"KALIMANTAN UTARA", "Kalimantan",
"SULAWESI UTARA", "Sulawesi", "SULAWESI TENGAH", "Sulawesi",
"SULAWESI SELATAN", "Sulawesi", "SULAWESI TENGGARA", "Sulawesi",
"GORONTALO", "Sulawesi", "SULAWESI BARAT", "Sulawesi",
"MALUKU", "Maluku", "MALUKU UTARA", "Maluku",
"PAPUA BARAT", "Papua", "PAPUA BARAT DAYA", "Papua", "PAPUA", "Papua",
"PAPUA SELATAN", "Papua", "PAPUA TENGAH", "Papua", "PAPUA PEGUNUNGAN", "Papua"
)
ahh <- ahh_raw %>%
filter(provinsi != "INDONESIA") %>%
left_join(pulau_lookup, by = "provinsi") %>%
mutate(
provinsi = str_to_title(provinsi),
selisih = round(ahh_perempuan - ahh_laki, 2),
rata2 = round((ahh_laki + ahh_perempuan) / 2, 2),
kategori = case_when(
rata2 >= 72 ~ "Tinggi (>= 72)",
rata2 >= 68 ~ "Sedang (68-71,9)",
TRUE ~ "Rendah (< 68)"
),
kategori = factor(kategori, levels = c("Tinggi (>= 72)", "Sedang (68-71,9)", "Rendah (< 68)")),
is_banten = provinsi == "Banten"
)
glimpse(ahh)
## Rows: 38
## Columns: 8
## $ provinsi <chr> "Aceh", "Sumatera Utara", "Sumatera Barat", "Riau", "Jam…
## $ ahh_laki <dbl> 68.52, 68.36, 68.41, 70.56, 70.09, 69.00, 68.21, 69.56, …
## $ ahh_perempuan <dbl> 72.45, 72.30, 72.35, 74.58, 74.09, 72.95, 72.15, 73.54, …
## $ pulau <chr> "Sumatera", "Sumatera", "Sumatera", "Sumatera", "Sumater…
## $ selisih <dbl> 3.93, 3.94, 3.94, 4.02, 4.00, 3.95, 3.94, 3.98, 3.97, 3.…
## $ rata2 <dbl> 70.48, 70.33, 70.38, 72.57, 72.09, 70.97, 70.18, 71.55, …
## $ kategori <fct> "Sedang (68-71,9)", "Sedang (68-71,9)", "Sedang (68-71,9…
## $ is_banten <lgl> FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, …
top10 <- ahh %>% slice_max(ahh_perempuan, n = 10)
bottom10 <- ahh %>% slice_min(ahh_perempuan, n = 10)
bind_rows(top10 %>% mutate(kelompok = "10 Tertinggi"),
bottom10 %>% mutate(kelompok = "10 Terendah")) %>%
ggplot(aes(x = reorder(provinsi, ahh_perempuan), y = ahh_perempuan,
fill = kelompok, alpha = is_banten)) +
geom_col(show.legend = c(fill = TRUE, alpha = FALSE)) +
geom_text(aes(label = ahh_perempuan), hjust = -0.15, size = 3.2) +
coord_flip() +
scale_fill_manual(values = c("10 Tertinggi" = "#2b8cbe", "10 Terendah" = "#e6550d"), name = NULL) +
scale_alpha_manual(values = c(`TRUE` = 1, `FALSE` = 0.55), guide = "none") +
scale_y_continuous(expand = expansion(mult = c(0, .12))) +
labs(title = "10 Provinsi dengan AHH Perempuan Tertinggi dan Terendah",
subtitle = "Indonesia, 2024",
x = NULL, y = "AHH Perempuan (tahun)",
caption = "Sumber: BPS - AHH Menurut Provinsi dan Jenis Kelamin, 2024")
Interpretasi: AHH perempuan tertinggi terdapat di DI Yogyakarta (77,40 tahun), diikuti Jawa Tengah (76,99) dan Kalimantan Timur (76,90). Sebaliknya, AHH perempuan terendah ada di Papua Pegunungan (66,68 tahun), Sulawesi Barat (68,27), dan Papua Selatan (68,42). Banten berada di kelompok menengah dengan AHH perempuan 73,04 tahun, di bawah rata-rata nasional (74,21).
ahh %>%
ggplot(aes(x = reorder(provinsi, selisih), y = selisih, fill = is_banten)) +
geom_col() +
geom_hline(yintercept = mean(ahh$selisih), linetype = "dashed", color = "red") +
annotate("text", x = 3, y = mean(ahh$selisih) + 0.15,
label = paste0("Rata-rata = ", round(mean(ahh$selisih), 2)),
hjust = 0, color = "red", size = 3.3) +
geom_text(aes(label = selisih), hjust = -0.2, size = 3) +
coord_flip() +
scale_fill_manual(values = c(`TRUE` = "#e6550d", `FALSE` = "#6baed6"),
labels = c(`TRUE` = "Banten", `FALSE` = "Provinsi lain"), name = NULL) +
scale_y_continuous(limits = c(0, 5)) +
labs(title = "Selisih AHH Perempuan dan Laki-laki Menurut Provinsi",
subtitle = "Indonesia, 2024 (selisih = AHH Perempuan - AHH Laki-laki)",
x = NULL, y = "Selisih (tahun)",
caption = "Sumber: BPS - AHH Menurut Provinsi dan Jenis Kelamin, 2024, diolah")
Interpretasi: Selisih AHH perempuan-laki-laki terbesar terjadi di Jawa Barat dan Bali (4,30 tahun), sedangkan selisih terkecil di Kalimantan Timur (3,69 tahun). Rata-rata selisih nasional sekitar 3,97 tahun, dan Banten berada sangat dekat dengan rata-rata tersebut (selisih 3,95 tahun), menunjukkan pola kesenjangan gender dalam harapan hidup relatif konsisten di seluruh Indonesia.
Badan Pusat Statistik (BPS). (2024). Angka Harapan Hidup (AHH) Menurut Provinsi dan Jenis Kelamin, 2024. https://www.bps.go.id/id/statistics-table/2/NTAxIzI=/angka-harapan-hidup--ahh--menurut-provinsi-dan-jenis-kelamin--tahun-.html