1 Pendahuluan

1.1 Sumber Data

Data yang digunakan pada tugas ini adalah Angka Harapan Hidup (AHH) Menurut Provinsi dan Jenis Kelamin Tahun 2024, bersumber dari Badan Pusat Statistik (BPS) Republik Indonesia, dapat diakses pada tautan berikut:

https://www.bps.go.id/id/statistics-table/2/NTAxIzI=/angka-harapan-hidup--ahh--menurut-provinsi-dan-jenis-kelamin--tahun-.html

1.2 Mengapa Memilih Data Ini

(Silakan sesuaikan/lengkapi alasan berikut dengan kalimat kelompok kalian sendiri)

Data AHH dipilih karena termasuk dalam bidang Kesehatan, merupakan salah satu indikator utama dalam Indeks Pembangunan Manusia (IPM), serta datanya bersifat real, resmi, dan mencakup seluruh 38 provinsi di Indonesia sehingga sangat representatif untuk dianalisis dan divisualisasikan. Selain itu, data ini memuat variabel kategorik (provinsi, jenis kelamin, kelompok pulau) sekaligus variabel numerik (nilai AHH dalam tahun), sehingga cocok digunakan untuk memenuhi seluruh jenis visualisasi yang diminta pada tugas ini.

1.3 Deskripsi Variabel

Variabel Jenis Keterangan
Provinsi Kategorik 38 provinsi di Indonesia
Pulau Kategorik Kelompok wilayah pulau (turunan dari Provinsi)
Jenis Kelamin Kategorik Laki-laki / Perempuan
AHH Numerik Angka Harapan Hidup (satuan: tahun), 2024

2 Input dan Persiapan Data

Data diinput langsung berdasarkan tabel resmi BPS (hasil unduhan pada tautan di atas). Jika file sumber (csv/xlsx) ingin dibaca langsung, dapat menggunakan readxl::read_excel() atau read.csv() — namun pada laporan ini data sudah dituliskan langsung ke dalam data frame agar dokumen dapat di-knit tanpa bergantung pada file eksternal.

library(dplyr)
library(ggplot2)
library(scales)
library(knitr)
ahh <- data.frame(
  Provinsi = c(
    "ACEH","SUMATERA UTARA","SUMATERA BARAT","RIAU","JAMBI",
    "SUMATERA SELATAN","BENGKULU","LAMPUNG","KEP. BANGKA BELITUNG","KEP. RIAU",
    "DKI JAKARTA","JAWA BARAT","JAWA TENGAH","DI YOGYAKARTA","JAWA TIMUR","BANTEN",
    "BALI","NUSA TENGGARA BARAT","NUSA TENGGARA TIMUR",
    "KALIMANTAN BARAT","KALIMANTAN TENGAH","KALIMANTAN SELATAN","KALIMANTAN TIMUR","KALIMANTAN UTARA",
    "SULAWESI UTARA","SULAWESI TENGAH","SULAWESI SELATAN","SULAWESI TENGGARA","GORONTALO","SULAWESI BARAT",
    "MALUKU","MALUKU UTARA",
    "PAPUA BARAT","PAPUA BARAT DAYA","PAPUA","PAPUA SELATAN","PAPUA TENGAH","PAPUA PEGUNUNGAN"
  ),
  Laki_laki = c(
    68.52,68.36,68.41,70.56,70.09,
    69.00,68.21,69.56,69.55,69.30,
    72.08,72.26,73.21,73.66,70.39,69.09,
    71.19,65.79,66.04,
    69.61,68.51,67.72,73.21,70.76,
    70.73,67.49,69.49,69.66,67.16,64.37,
    65.05,67.28,
    65.13,65.88,66.76,64.53,65.05,62.83
  ),
  Perempuan = c(
    72.45,72.30,72.35,74.58,74.09,
    72.95,72.15,73.54,73.52,73.27,
    76.28,76.56,76.99,77.40,74.40,73.04,
    75.49,69.77,70.03,
    73.59,72.44,71.67,76.90,74.79,
    74.76,71.44,73.47,73.64,71.12,68.27,
    68.96,71.36,
    69.07,69.82,70.79,68.42,68.97,66.68
  ),
  stringsAsFactors = FALSE
)

# Angka nasional (Indonesia) tahun 2024 - sebagai pembanding, TIDAK dimasukkan ke dalam
# perhitungan/visualisasi per-provinsi karena bukan satuan analisis (provinsi)
ahh_nasional <- data.frame(Laki_laki = 70.32, Perempuan = 74.21)

# Menambahkan variabel kategorik turunan: kelompok Pulau
ahh <- ahh %>%
  mutate(
    Pulau = case_when(
      Provinsi %in% c("ACEH","SUMATERA UTARA","SUMATERA BARAT","RIAU","JAMBI",
                       "SUMATERA SELATAN","BENGKULU","LAMPUNG",
                       "KEP. BANGKA BELITUNG","KEP. RIAU") ~ "Sumatera",
      Provinsi %in% c("DKI JAKARTA","JAWA BARAT","JAWA TENGAH",
                       "DI YOGYAKARTA","JAWA TIMUR","BANTEN") ~ "Jawa",
      Provinsi %in% c("BALI","NUSA TENGGARA BARAT","NUSA TENGGARA TIMUR") ~ "Bali & Nusa Tenggara",
      Provinsi %in% c("KALIMANTAN BARAT","KALIMANTAN TENGAH","KALIMANTAN SELATAN",
                       "KALIMANTAN TIMUR","KALIMANTAN UTARA") ~ "Kalimantan",
      Provinsi %in% c("SULAWESI UTARA","SULAWESI TENGAH","SULAWESI SELATAN",
                       "SULAWESI TENGGARA","GORONTALO","SULAWESI BARAT") ~ "Sulawesi",
      Provinsi %in% c("MALUKU","MALUKU UTARA") ~ "Maluku",
      Provinsi %in% c("PAPUA BARAT","PAPUA BARAT DAYA","PAPUA",
                       "PAPUA SELATAN","PAPUA TENGAH","PAPUA PEGUNUNGAN") ~ "Papua",
      TRUE ~ NA_character_
    ),
    AHH_Rata2 = round((Laki_laki + Perempuan) / 2, 2)
  )

str(ahh)
## 'data.frame':    38 obs. of  5 variables:
##  $ Provinsi : chr  "ACEH" "SUMATERA UTARA" "SUMATERA BARAT" "RIAU" ...
##  $ Laki_laki: num  68.5 68.4 68.4 70.6 70.1 ...
##  $ Perempuan: num  72.5 72.3 72.3 74.6 74.1 ...
##  $ Pulau    : chr  "Sumatera" "Sumatera" "Sumatera" "Sumatera" ...
##  $ AHH_Rata2: num  70.5 70.3 70.4 72.6 72.1 ...
kable(ahh, digits = 2, caption = "Data AHH 2024 Menurut Provinsi, Jenis Kelamin, dan Kelompok Pulau")
Data AHH 2024 Menurut Provinsi, Jenis Kelamin, dan Kelompok Pulau
Provinsi Laki_laki Perempuan Pulau AHH_Rata2
ACEH 68.52 72.45 Sumatera 70.48
SUMATERA UTARA 68.36 72.30 Sumatera 70.33
SUMATERA BARAT 68.41 72.35 Sumatera 70.38
RIAU 70.56 74.58 Sumatera 72.57
JAMBI 70.09 74.09 Sumatera 72.09
SUMATERA SELATAN 69.00 72.95 Sumatera 70.97
BENGKULU 68.21 72.15 Sumatera 70.18
LAMPUNG 69.56 73.54 Sumatera 71.55
KEP. BANGKA BELITUNG 69.55 73.52 Sumatera 71.53
KEP. RIAU 69.30 73.27 Sumatera 71.28
DKI JAKARTA 72.08 76.28 Jawa 74.18
JAWA BARAT 72.26 76.56 Jawa 74.41
JAWA TENGAH 73.21 76.99 Jawa 75.10
DI YOGYAKARTA 73.66 77.40 Jawa 75.53
JAWA TIMUR 70.39 74.40 Jawa 72.40
BANTEN 69.09 73.04 Jawa 71.06
BALI 71.19 75.49 Bali & Nusa Tenggara 73.34
NUSA TENGGARA BARAT 65.79 69.77 Bali & Nusa Tenggara 67.78
NUSA TENGGARA TIMUR 66.04 70.03 Bali & Nusa Tenggara 68.03
KALIMANTAN BARAT 69.61 73.59 Kalimantan 71.60
KALIMANTAN TENGAH 68.51 72.44 Kalimantan 70.47
KALIMANTAN SELATAN 67.72 71.67 Kalimantan 69.69
KALIMANTAN TIMUR 73.21 76.90 Kalimantan 75.06
KALIMANTAN UTARA 70.76 74.79 Kalimantan 72.78
SULAWESI UTARA 70.73 74.76 Sulawesi 72.75
SULAWESI TENGAH 67.49 71.44 Sulawesi 69.47
SULAWESI SELATAN 69.49 73.47 Sulawesi 71.48
SULAWESI TENGGARA 69.66 73.64 Sulawesi 71.65
GORONTALO 67.16 71.12 Sulawesi 69.14
SULAWESI BARAT 64.37 68.27 Sulawesi 66.32
MALUKU 65.05 68.96 Maluku 67.00
MALUKU UTARA 67.28 71.36 Maluku 69.32
PAPUA BARAT 65.13 69.07 Papua 67.10
PAPUA BARAT DAYA 65.88 69.82 Papua 67.85
PAPUA 66.76 70.79 Papua 68.78
PAPUA SELATAN 64.53 68.42 Papua 66.47
PAPUA TENGAH 65.05 68.97 Papua 67.01
PAPUA PEGUNUNGAN 62.83 66.68 Papua 64.75

3 Visualisasi Data Kategorik

Variabel kategorik yang digunakan pada bagian ini adalah kelompok Pulau, hasil pengelompokan dari 38 provinsi ke dalam 7 wilayah kepulauan besar di Indonesia.

3.1 Diagram Batang (Bar Chart)

jml_pulau <- ahh %>%
  count(Pulau, name = "Jumlah_Provinsi") %>%
  arrange(desc(Jumlah_Provinsi))

ggplot(jml_pulau, aes(x = reorder(Pulau, -Jumlah_Provinsi), y = Jumlah_Provinsi)) +
  geom_col(fill = "steelblue") +
  geom_text(aes(label = Jumlah_Provinsi), vjust = -0.4, size = 4) +
  labs(
    title = "Jumlah Provinsi Menurut Kelompok Pulau di Indonesia (2024)",
    x = "Kelompok Pulau",
    y = "Jumlah Provinsi"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1))

Interpretasi: Diagram batang di atas menunjukkan bahwa Sumatera memiliki jumlah provinsi terbanyak (10 provinsi), diikuti oleh Jawa dan Sulawesi (masing-masing 6 provinsi), Papua (6 provinsi), Kalimantan (5 provinsi), Bali & Nusa Tenggara (3 provinsi), serta Maluku dengan jumlah provinsi paling sedikit (2 provinsi). Sebaran ini mencerminkan bahwa wilayah barat Indonesia (Sumatera dan Jawa) memiliki jumlah provinsi/wilayah administratif yang lebih banyak dibandingkan wilayah timur.

3.2 Diagram Lingkaran (Pie Chart)

jml_pulau <- jml_pulau %>%
  mutate(
    Persentase = round(Jumlah_Provinsi / sum(Jumlah_Provinsi) * 100, 1),
    label = paste0(Pulau, "\n", Persentase, "%")
  )

ggplot(jml_pulau, aes(x = "", y = Jumlah_Provinsi, fill = Pulau)) +
  geom_col(width = 1, color = "white") +
  coord_polar(theta = "y") +
  geom_text(aes(label = paste0(Persentase, "%")),
            position = position_stack(vjust = 0.5), size = 3.5, color = "white") +
  labs(title = "Proporsi Jumlah Provinsi Menurut Kelompok Pulau (2024)", fill = "Kelompok Pulau") +
  theme_void()

Interpretasi: Diagram lingkaran menegaskan hal yang sama dengan diagram batang dalam bentuk proporsi. Sumatera menyumbang sekitar 26,3% dari total 38 provinsi, sedangkan Maluku hanya menyumbang sekitar 5,3%. Secara keseluruhan, wilayah Sumatera, Jawa, Sulawesi, dan Papua bersama-sama mencakup lebih dari 70% dari seluruh provinsi di Indonesia.


4 Visualisasi Data Numerik

Variabel numerik yang digunakan adalah AHH_Rata2, yaitu rata-rata Angka Harapan Hidup laki-laki dan perempuan pada setiap provinsi (satuan: tahun).

summary(ahh$AHH_Rata2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   64.75   68.87   70.72   70.58   72.32   75.53

4.1 Tabel Distribusi Frekuensi (Aturan Sturges)

n_data <- nrow(ahh)
xmin <- min(ahh$AHH_Rata2)
xmax <- max(ahh$AHH_Rata2)
rentang <- xmax - xmin

k <- ceiling(1 + 3.322 * log10(n_data))        # jumlah kelas (Sturges)
p <- ceiling(rentang / k)                       # panjang kelas, dibulatkan ke atas
batas_bawah <- floor(xmin)
batas_kelas <- seq(batas_bawah, by = p, length.out = k + 1)

ahh$kelas <- cut(ahh$AHH_Rata2, breaks = batas_kelas, right = FALSE, include.lowest = TRUE)

tabel_frek <- ahh %>%
  count(kelas, name = "Frekuensi", .drop = FALSE) %>%
  mutate(
    Batas_Bawah   = batas_kelas[-length(batas_kelas)],
    Batas_Atas    = batas_kelas[-1],
    Titik_Tengah  = (Batas_Bawah + Batas_Atas) / 2,
    Frek_Kumulatif = cumsum(Frekuensi)
  ) %>%
  select(Interval = kelas, Titik_Tengah, Frekuensi, Frek_Kumulatif)

kable(tabel_frek, caption = paste0("Distribusi Frekuensi AHH Rata-Rata 2024 (k = ", k, " kelas, p = ", p, ")"))
Distribusi Frekuensi AHH Rata-Rata 2024 (k = 7 kelas, p = 2)
Interval Titik_Tengah Frekuensi Frek_Kumulatif
[64,66) 65 1 1
[66,68) 67 7 8
[68,70) 69 6 14
[70,72) 71 13 27
[72,74) 73 6 33
[74,76) 75 5 38
[76,78] 77 0 38

4.2 Histogram

ggplot(ahh, aes(x = AHH_Rata2)) +
  geom_histogram(breaks = batas_kelas, fill = "darkorange", color = "white") +
  labs(
    title = "Histogram Rata-Rata Angka Harapan Hidup per Provinsi (2024)",
    x = "AHH Rata-Rata (tahun)",
    y = "Frekuensi (jumlah provinsi)"
  ) +
  theme_minimal()

Interpretasi: Histogram menunjukkan bahwa sebagian besar provinsi memiliki AHH rata-rata terkonsentrasi pada kelas menengah (sekitar 67–73 tahun), sementara hanya sedikit provinsi yang berada pada kelas AHH terendah (di bawah 66 tahun, umumnya provinsi di Papua dan Sulawesi Barat) maupun kelas tertinggi (di atas 74 tahun, seperti Jawa Tengah dan DI Yogyakarta). Bentuk histogram cenderung menjulur ke kiri (negatively skewed), karena sebagian kecil provinsi dengan AHH sangat rendah menarik ekor distribusi ke arah nilai kecil.

4.3 Poligon Frekuensi

poligon_df <- tabel_frek %>% select(Titik_Tengah, Frekuensi)

# Menambahkan titik jangkar (frekuensi = 0) di kedua ujung agar poligon tertutup
poligon_df <- rbind(
  data.frame(Titik_Tengah = poligon_df$Titik_Tengah[1] - p, Frekuensi = 0),
  poligon_df,
  data.frame(Titik_Tengah = poligon_df$Titik_Tengah[nrow(poligon_df)] + p, Frekuensi = 0)
)

ggplot(poligon_df, aes(x = Titik_Tengah, y = Frekuensi)) +
  geom_line(color = "purple", linewidth = 1) +
  geom_point(color = "purple", size = 2) +
  labs(
    title = "Poligon Frekuensi AHH Rata-Rata per Provinsi (2024)",
    x = "Titik Tengah Kelas (tahun)",
    y = "Frekuensi"
  ) +
  theme_minimal()

Interpretasi: Poligon frekuensi memperjelas pola sebaran yang sama seperti histogram namun dalam bentuk garis. Terlihat puncak poligon berada pada kelas dengan titik tengah di kisaran AHH menengah, menandakan bahwa mayoritas provinsi memiliki AHH pada rentang tersebut, dengan penurunan frekuensi yang lebih tajam ke arah kelas AHH rendah dibandingkan ke arah kelas AHH tinggi.

4.4 Ogive (Kurva Frekuensi Kumulatif)

ogive_df <- data.frame(
  Batas_Atas      = c(batas_kelas[1], tabel_frek$Batas_Atas),
  Frek_Kumulatif  = c(0, tabel_frek$Frek_Kumulatif)
)

ggplot(ogive_df, aes(x = Batas_Atas, y = Frek_Kumulatif)) +
  geom_line(color = "darkgreen", linewidth = 1) +
  geom_point(color = "darkgreen", size = 2) +
  labs(
    title = "Ogive Positif AHH Rata-Rata per Provinsi (2024)",
    x = "Batas Atas Kelas (tahun)",
    y = "Frekuensi Kumulatif (jumlah provinsi)"
  ) +
  theme_minimal()

Interpretasi: Kurva ogive menunjukkan akumulasi jumlah provinsi seiring bertambahnya nilai AHH. Kurva naik relatif landai pada awalnya, kemudian meningkat tajam pada rentang AHH menengah (menunjukkan lonjakan jumlah provinsi pada rentang tersebut), lalu kembali melandai mendekati nilai AHH maksimum. Titik tengah kurva (di mana frekuensi kumulatif mencapai sekitar 19 provinsi/50%) dapat digunakan untuk memperkirakan nilai median AHH rata-rata provinsi di Indonesia.

4.5 Diagram Garis (Line Chart)

ahh_urut <- ahh %>% arrange(desc(AHH_Rata2))
ahh_urut$Provinsi <- factor(ahh_urut$Provinsi, levels = ahh_urut$Provinsi)

ggplot(ahh_urut) +
  geom_line(aes(x = Provinsi, y = Laki_laki, group = 1, color = "Laki-laki"), linewidth = 1) +
  geom_line(aes(x = Provinsi, y = Perempuan, group = 1, color = "Perempuan"), linewidth = 1) +
  geom_point(aes(x = Provinsi, y = Laki_laki, color = "Laki-laki"), size = 1.5) +
  geom_point(aes(x = Provinsi, y = Perempuan, color = "Perempuan"), size = 1.5) +
  scale_color_manual(values = c("Laki-laki" = "steelblue", "Perempuan" = "firebrick")) +
  labs(
    title = "Perbandingan AHH Laki-laki dan Perempuan per Provinsi (2024)",
    subtitle = "Provinsi diurutkan berdasarkan rata-rata AHH tertinggi ke terendah",
    x = "Provinsi", y = "AHH (tahun)", color = "Jenis Kelamin"
  ) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1, size = 7))

Interpretasi: Diagram garis ini memperlihatkan dua pola penting. Pertama, garis AHH Perempuan selalu berada di atas garis Laki-laki di seluruh 38 provinsi tanpa terkecuali, menunjukkan bahwa perempuan di Indonesia secara konsisten memiliki harapan hidup lebih panjang dibandingkan laki-laki (selisih rata-rata sekitar 4 tahun). Kedua, kedua garis bergerak turun searah dari kiri (provinsi dengan AHH tertinggi seperti DI Yogyakarta dan Jawa Tengah) ke kanan (provinsi dengan AHH terendah seperti Papua Pegunungan dan Sulawesi Barat), menunjukkan adanya kesenjangan derajat kesehatan yang cukup lebar antarwilayah, khususnya antara provinsi di Pulau Jawa dengan provinsi di kawasan Papua.


5 Kesimpulan

  1. Dari sisi data kategorik, provinsi di Indonesia terkonsentrasi di wilayah Sumatera dan Jawa, yang bersama-sama mencakup lebih dari 40% dari seluruh provinsi.
  2. Dari sisi data numerik, rata-rata AHH provinsi di Indonesia tahun 2024 terkonsentrasi pada rentang 67–73 tahun, dengan DI Yogyakarta sebagai provinsi dengan AHH tertinggi dan Papua Pegunungan sebagai provinsi dengan AHH terendah.
  3. Perempuan secara konsisten memiliki AHH lebih tinggi dibanding laki-laki di semua provinsi, dengan selisih rata-rata sekitar 4 tahun, sejalan dengan angka nasional (Laki-laki 70,32 tahun; Perempuan 74,21 tahun).
  4. Terdapat kesenjangan derajat kesehatan antarwilayah, di mana provinsi-provinsi di Pulau Jawa umumnya memiliki AHH lebih tinggi dibandingkan provinsi-provinsi di kawasan Indonesia Timur (Papua, Maluku, dan sebagian Sulawesi), yang mengindikasikan perlunya pemerataan akses layanan kesehatan.

6 Sumber Data dan Catatan

  • Sumber data: Badan Pusat Statistik (BPS) RI, “Angka Harapan Hidup (AHH) Menurut Provinsi dan Jenis Kelamin (Tahun)”. Tautan: https://www.bps.go.id/id/statistics-table/2/NTAxIzI=/angka-harapan-hidup--ahh--menurut-provinsi-dan-jenis-kelamin--tahun-.html
  • Catatan teknis: Data mentah hasil unduhan dari situs BPS mengalami pergeseran baris pada kolom nilai (Laki-laki/Perempuan tergeser terhadap nama provinsi). Nilai pada laporan ini telah diperbaiki dan divalidasi silang dengan beberapa publikasi resmi BPS lain (mis. angka DI Yogyakarta, Jawa Tengah, Jawa Barat, DKI Jakarta, Kalimantan Timur, Bali, dan angka AHH nasional) sehingga nilai yang digunakan sudah sesuai dengan angka resmi BPS tahun 2024.