1 Import dan pemeriksaan data

Dataset yang digunakan adalah data indikator mortalitas dan angka harapan hidup menurut provinsi tahun 2020.

# Import dataset baru
datatugastds <- read_excel(
  "C:/Users/Hype G12/Downloads/datatugastds.xlsx",
  sheet = "Gabungan 34 Provinsi"
)

# Memeriksa nama kolom, struktur, dan beberapa baris data
names(datatugastds)
## [1] "Provinsi"                        "Tahun"                          
## [3] "IMR (per 1.000 kelahiran hidup)" "Jumlah Kematian (orang)"        
## [5] "CDR (per 1.000 penduduk)"        "AHH/UHH (tahun)"                
## [7] "Status data CDR"                 "Jumlah Penduduk SP2020 (orang)"
str(datatugastds)
## tibble [40 × 8] (S3: tbl_df/tbl/data.frame)
##  $ Provinsi                       : chr [1:40] "Aceh" "Sumatera Utara" "Sumatera Barat" "Riau" ...
##  $ Tahun                          : num [1:40] 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 ...
##  $ IMR (per 1.000 kelahiran hidup): num [1:40] 19.4 18.3 16.4 15.7 17 ...
##  $ Jumlah Kematian (orang)        : num [1:40] 4307 7196 2348 3465 2097 ...
##  $ CDR (per 1.000 penduduk)       : num [1:40] 0.817 0.486 0.424 0.542 0.591 ...
##  $ AHH/UHH (tahun)                : num [1:40] 72.7 73 73.5 73.7 73.3 ...
##  $ Status data CDR                : chr [1:40] "CDR = kematian teregistrasi 2020 / penduduk SP2020 x 1.000" "CDR = kematian teregistrasi 2020 / penduduk SP2020 x 1.000" "CDR = kematian teregistrasi 2020 / penduduk SP2020 x 1.000" "CDR = kematian teregistrasi 2020 / penduduk SP2020 x 1.000" ...
##  $ Jumlah Penduduk SP2020 (orang) : num [1:40] 5274871 14799361 5534472 6394087 3548228 ...
head(datatugastds, 10)

2 Pembersihan data

# Daftar provinsi Indonesia tahun 2020
daftar_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"
)

# Membersihkan dan menyiapkan data
# Pastikan nama kolom sesuai dengan nama kolom pada Excel
data_bersih <- datatugastds |>
  transmute(
    Provinsi = toupper(trimws(as.character(Provinsi))),
    Tahun = parse_number(as.character(Tahun)),
    IMR = parse_number(
      as.character(`IMR (per 1.000 kelahiran hidup)`)
    ),
    Jumlah_Kematian = parse_number(
      as.character(`Jumlah Kematian (orang)`)
    ),
    CDR_Asli = parse_number(
      as.character(`CDR (per 1.000 penduduk)`)
    ),
    AHH = parse_number(
      as.character(`AHH/UHH (tahun)`)
    ),
    Penduduk = parse_number(
      as.character(`Jumlah Penduduk SP2020 (orang)`)
    )
  ) |>
  mutate(
    Provinsi = gsub("\\s+", " ", Provinsi),
    Provinsi = case_when(
      Provinsi %in% c(
        "KEPULAUAN BANGKA BELITUNG",
        "KEP BANGKA BELITUNG",
        "BANGKA BELITUNG"
      ) ~ "KEP. BANGKA BELITUNG",
      Provinsi %in% c("KEPULAUAN RIAU", "KEP RIAU") ~ "KEP. RIAU",
      TRUE ~ Provinsi
    )
  ) |>
  filter(
    Tahun == 2020,
    Provinsi %in% daftar_provinsi
  ) |>
  distinct(Provinsi, .keep_all = TRUE) |>
  arrange(match(Provinsi, daftar_provinsi))

# Memeriksa kelengkapan data provinsi
cat("Jumlah provinsi ditemukan:", nrow(data_bersih), "\n")
## Jumlah provinsi ditemukan: 34
provinsi_hilang <- setdiff(daftar_provinsi, data_bersih$Provinsi)

if (length(provinsi_hilang) > 0) {
  cat("Provinsi yang belum ditemukan:\n")
  print(provinsi_hilang)
} else {
  cat("Seluruh 34 provinsi berhasil ditemukan.\n")
}
## Seluruh 34 provinsi berhasil ditemukan.
# Memeriksa data kosong
pemeriksaan_na <- data_bersih |>
  summarise(
    NA_IMR = sum(is.na(IMR)),
    NA_Kematian = sum(is.na(Jumlah_Kematian)),
    NA_Penduduk = sum(is.na(Penduduk)),
    NA_AHH = sum(is.na(AHH))
  )

knitr::kable(pemeriksaan_na, caption = "Pemeriksaan data kosong")
Pemeriksaan data kosong
NA_IMR NA_Kematian NA_Penduduk NA_AHH
0 0 0 0

3 Perhitungan indikator mortalitas

CDR dihitung dari jumlah kematian dibagi jumlah penduduk, kemudian dikalikan 1.000. Karena penyebut menggunakan jumlah penduduk SP2020, hasil perlu ditafsirkan dengan mempertimbangkan definisi penyebut dan kelengkapan pencatatan kematian.

# Menghitung rasio kematian teregistrasi per 1.000 penduduk
data_akhir <- data_bersih |>
  mutate(
    CDR = if_else(
      !is.na(Jumlah_Kematian) &
        !is.na(Penduduk) &
        Jumlah_Kematian >= 0 &
        Penduduk > 0,
      Jumlah_Kematian / Penduduk * 1000,
      NA_real_
    ),
    Selisih_CDR = CDR - CDR_Asli
  )

# Tabel indikator mortalitas
indikator_mortalitas <- data_akhir |>
  select(
    Provinsi, Tahun, IMR, Jumlah_Kematian,
    Penduduk, CDR_Asli, CDR, AHH
  )

knitr::kable(
  indikator_mortalitas,
  digits = 3,
  caption = "Indikator mortalitas dan angka harapan hidup menurut provinsi"
)
Indikator mortalitas dan angka harapan hidup menurut provinsi
Provinsi Tahun IMR Jumlah_Kematian Penduduk CDR_Asli CDR AHH
ACEH 2020 19.41 4307 5274871 0.817 0.817 72.69
SUMATERA UTARA 2020 18.28 7196 14799361 0.486 0.486 73.00
SUMATERA BARAT 2020 16.35 2348 5534472 0.424 0.424 73.50
RIAU 2020 15.69 3465 6394087 0.542 0.542 73.66
JAMBI 2020 16.99 2097 3548228 0.591 0.591 73.33
SUMATERA SELATAN 2020 16.78 9211 8467432 1.088 1.088 73.39
BENGKULU 2020 19.73 2180 2010670 1.084 1.084 72.59
LAMPUNG 2020 15.69 3197 9007848 0.355 0.355 73.66
KEP. BANGKA BELITUNG 2020 16.75 2782 1455678 1.911 1.911 73.39
KEP. RIAU 2020 13.31 1635 2064564 0.792 0.792 74.25
DKI JAKARTA 2020 10.38 47579 10562088 4.505 4.505 75.20
JAWA BARAT 2020 13.56 32779 48274162 0.679 0.679 74.19
JAWA TENGAH 2020 12.77 74177 36516035 2.031 2.031 74.39
DI YOGYAKARTA 2020 10.90 22750 3668719 6.201 6.201 74.95
JAWA TIMUR 2020 13.49 54943 40665696 1.351 1.351 74.21
BANTEN 2020 13.83 7388 11904562 0.621 0.621 74.12
BALI 2020 13.26 5174 4317404 1.198 1.198 74.27
NUSA TENGGARA BARAT 2020 24.64 2359 5320092 0.443 0.443 71.17
NUSA TENGGARA TIMUR 2020 25.67 3038 5325566 0.570 0.570 70.88
KALIMANTAN BARAT 2020 17.47 3827 5414390 0.707 0.707 73.21
KALIMANTAN TENGAH 2020 17.95 1701 2669969 0.637 0.637 73.10
KALIMANTAN SELATAN 2020 17.22 5475 4073584 1.344 1.344 73.28
KALIMANTAN TIMUR 2020 15.51 5961 3766039 1.583 1.583 73.70
KALIMANTAN UTARA 2020 16.65 742 701814 1.057 1.057 73.42
SULAWESI UTARA 2020 17.23 14250 2621923 5.435 5.435 73.28
SULAWESI TENGAH 2020 27.72 2673 2985734 0.895 0.895 70.31
SULAWESI SELATAN 2020 18.20 4576 9073509 0.504 0.504 73.02
SULAWESI TENGGARA 2020 23.29 1665 2624875 0.634 0.634 71.56
GORONTALO 2020 28.38 2533 1171681 2.162 2.162 69.83
SULAWESI BARAT 2020 29.21 312 1419229 0.220 0.220 69.91
MALUKU 2020 29.82 2593 1848923 1.402 1.402 69.75
MALUKU UTARA 2020 28.61 1661 1282937 1.295 1.295 70.06
PAPUA BARAT 2020 37.06 826 1134068 0.728 0.728 67.86
PAPUA 2020 38.17 1120 4303707 0.260 0.260 67.59
# Membandingkan CDR hasil perhitungan dengan data asli
perbandingan_cdr <- data_akhir |>
  select(Provinsi, CDR_Asli, CDR, Selisih_CDR)

knitr::kable(
  perbandingan_cdr,
  digits = 3,
  caption = "Perbandingan CDR data asli dan hasil perhitungan"
)
Perbandingan CDR data asli dan hasil perhitungan
Provinsi CDR_Asli CDR Selisih_CDR
ACEH 0.817 0.817 0
SUMATERA UTARA 0.486 0.486 0
SUMATERA BARAT 0.424 0.424 0
RIAU 0.542 0.542 0
JAMBI 0.591 0.591 0
SUMATERA SELATAN 1.088 1.088 0
BENGKULU 1.084 1.084 0
LAMPUNG 0.355 0.355 0
KEP. BANGKA BELITUNG 1.911 1.911 0
KEP. RIAU 0.792 0.792 0
DKI JAKARTA 4.505 4.505 0
JAWA BARAT 0.679 0.679 0
JAWA TENGAH 2.031 2.031 0
DI YOGYAKARTA 6.201 6.201 0
JAWA TIMUR 1.351 1.351 0
BANTEN 0.621 0.621 0
BALI 1.198 1.198 0
NUSA TENGGARA BARAT 0.443 0.443 0
NUSA TENGGARA TIMUR 0.570 0.570 0
KALIMANTAN BARAT 0.707 0.707 0
KALIMANTAN TENGAH 0.637 0.637 0
KALIMANTAN SELATAN 1.344 1.344 0
KALIMANTAN TIMUR 1.583 1.583 0
KALIMANTAN UTARA 1.057 1.057 0
SULAWESI UTARA 5.435 5.435 0
SULAWESI TENGAH 0.895 0.895 0
SULAWESI SELATAN 0.504 0.504 0
SULAWESI TENGGARA 0.634 0.634 0
GORONTALO 2.162 2.162 0
SULAWESI BARAT 0.220 0.220 0
MALUKU 1.402 1.402 0
MALUKU UTARA 1.295 1.295 0
PAPUA BARAT 0.728 0.728 0
PAPUA 0.260 0.260 0

4 Statistik deskriptif

# Menghitung statistik deskriptif setiap indikator
statistik_deskriptif <- data_akhir |>
  summarise(
    Jumlah_Provinsi = n(),
    IMR_Rata_rata = mean(IMR, na.rm = TRUE),
    IMR_Median = median(IMR, na.rm = TRUE),
    IMR_Minimum = min(IMR, na.rm = TRUE),
    IMR_Maksimum = max(IMR, na.rm = TRUE),
    IMR_SD = sd(IMR, na.rm = TRUE),
    CDR_Rata_rata = mean(CDR, na.rm = TRUE),
    CDR_Median = median(CDR, na.rm = TRUE),
    CDR_Minimum = min(CDR, na.rm = TRUE),
    CDR_Maksimum = max(CDR, na.rm = TRUE),
    CDR_SD = sd(CDR, na.rm = TRUE),
    AHH_Rata_rata = mean(AHH, na.rm = TRUE),
    AHH_Median = median(AHH, na.rm = TRUE),
    AHH_Minimum = min(AHH, na.rm = TRUE),
    AHH_Maksimum = max(AHH, na.rm = TRUE),
    AHH_SD = sd(AHH, na.rm = TRUE)
  )

knitr::kable(
  statistik_deskriptif,
  digits = 3,
  caption = "Statistik deskriptif indikator mortalitas dan AHH"
)
Statistik deskriptif indikator mortalitas dan AHH
Jumlah_Provinsi IMR_Rata_rata IMR_Median IMR_Minimum IMR_Maksimum IMR_SD CDR_Rata_rata CDR_Median CDR_Minimum CDR_Maksimum CDR_SD AHH_Rata_rata AHH_Median AHH_Minimum AHH_Maksimum AHH_SD
34 19.705 17.225 10.38 38.17 7.076 1.31 0.804 0.22 6.201 1.392 72.551 73.28 67.59 75.2 1.949

5 Perbandingan antarprovinsi

5.1 Lima provinsi tertinggi dan terendah

# Lima provinsi dengan IMR tertinggi dan terendah
imr_tertinggi <- data_akhir |>
  filter(!is.na(IMR)) |>
  slice_max(IMR, n = 5, with_ties = FALSE) |>
  select(Provinsi, IMR)

imr_terendah <- data_akhir |>
  filter(!is.na(IMR)) |>
  slice_min(IMR, n = 5, with_ties = FALSE) |>
  select(Provinsi, IMR)

# Lima provinsi dengan CDR tertinggi dan terendah
cdr_tertinggi <- data_akhir |>
  filter(!is.na(CDR)) |>
  slice_max(CDR, n = 5, with_ties = FALSE) |>
  select(Provinsi, CDR)

cdr_terendah <- data_akhir |>
  filter(!is.na(CDR)) |>
  slice_min(CDR, n = 5, with_ties = FALSE) |>
  select(Provinsi, CDR)

# Lima provinsi dengan AHH tertinggi dan terendah
ahh_tertinggi <- data_akhir |>
  filter(!is.na(AHH)) |>
  slice_max(AHH, n = 5, with_ties = FALSE) |>
  select(Provinsi, AHH)

ahh_terendah <- data_akhir |>
  filter(!is.na(AHH)) |>
  slice_min(AHH, n = 5, with_ties = FALSE) |>
  select(Provinsi, AHH)

knitr::kable(imr_tertinggi, digits = 2, caption = "Lima provinsi dengan IMR tertinggi")
Lima provinsi dengan IMR tertinggi
Provinsi IMR
PAPUA 38.17
PAPUA BARAT 37.06
MALUKU 29.82
SULAWESI BARAT 29.21
MALUKU UTARA 28.61
knitr::kable(imr_terendah, digits = 2, caption = "Lima provinsi dengan IMR terendah")
Lima provinsi dengan IMR terendah
Provinsi IMR
DKI JAKARTA 10.38
DI YOGYAKARTA 10.90
JAWA TENGAH 12.77
BALI 13.26
KEP. RIAU 13.31
knitr::kable(cdr_tertinggi, digits = 3, caption = "Lima provinsi dengan CDR tertinggi")
Lima provinsi dengan CDR tertinggi
Provinsi CDR
DI YOGYAKARTA 6.201
SULAWESI UTARA 5.435
DKI JAKARTA 4.505
GORONTALO 2.162
JAWA TENGAH 2.031
knitr::kable(cdr_terendah, digits = 3, caption = "Lima provinsi dengan CDR terendah")
Lima provinsi dengan CDR terendah
Provinsi CDR
SULAWESI BARAT 0.220
PAPUA 0.260
LAMPUNG 0.355
SUMATERA BARAT 0.424
NUSA TENGGARA BARAT 0.443
knitr::kable(ahh_tertinggi, digits = 2, caption = "Lima provinsi dengan AHH tertinggi")
Lima provinsi dengan AHH tertinggi
Provinsi AHH
DKI JAKARTA 75.20
DI YOGYAKARTA 74.95
JAWA TENGAH 74.39
BALI 74.27
KEP. RIAU 74.25
knitr::kable(ahh_terendah, digits = 2, caption = "Lima provinsi dengan AHH terendah")
Lima provinsi dengan AHH terendah
Provinsi AHH
PAPUA 67.59
PAPUA BARAT 67.86
MALUKU 69.75
GORONTALO 69.83
SULAWESI BARAT 69.91

6 Visualisasi indikator

6.1 Angka Kematian Bayi (IMR)

grafik_imr <- buat_grafik_peringkat(
  data = data_akhir,
  variabel = "IMR",
  judul = "Angka Kematian Bayi Menurut Provinsi",
  subjudul = "Indonesia, 2020",
  satuan = "per 1.000 kelahiran hidup",
  warna_rendah = "#D6EAF8",
  warna_tinggi = "#1B4F72"
)

grafik_imr

6.2 Crude Death Rate (CDR)

grafik_cdr <- buat_grafik_peringkat(
  data = data_akhir,
  variabel = "CDR",
  judul = "Rasio Kematian Teregistrasi Menurut Provinsi",
  subjudul = "Indonesia, 2020",
  satuan = "per 1.000 penduduk",
  warna_rendah = "#FDEBD0",
  warna_tinggi = "#A04000"
)

grafik_cdr

6.3 Angka Harapan Hidup (AHH)

grafik_ahh <- buat_grafik_peringkat(
  data = data_akhir,
  variabel = "AHH",
  judul = "Angka Harapan Hidup Menurut Provinsi",
  subjudul = "Indonesia, 2020",
  satuan = "tahun",
  warna_rendah = "#D5F5E3",
  warna_tinggi = "#196F3D"
)

grafik_ahh

7 Distribusi indikator

Histogram dilengkapi kurva kepadatan serta garis median dan rata-rata agar pola sebaran nilai antarprovinsi lebih mudah dibandingkan.

# Menyiapkan data untuk visualisasi distribusi
data_distribusi <- data_akhir |>
  select(Provinsi, IMR, CDR, AHH) |>
  pivot_longer(
    cols = c(IMR, CDR, AHH),
    names_to = "Indikator",
    values_to = "Nilai"
  ) |>
  filter(!is.na(Nilai)) |>
  mutate(
    Indikator = recode(
      Indikator,
      IMR = "Angka Kematian Bayi (IMR)",
      CDR = "Rasio Kematian Teregistrasi",
      AHH = "Angka Harapan Hidup (AHH)"
    )
  )

# Menghitung median dan rata-rata
ringkasan_distribusi <- data_distribusi |>
  group_by(Indikator) |>
  summarise(
    Median = median(Nilai),
    Rata_rata = mean(Nilai),
    .groups = "drop"
  )

# Histogram dan kurva kepadatan
grafik_distribusi <- ggplot(data_distribusi, aes(x = Nilai)) +
  geom_histogram(
    aes(y = after_stat(density)),
    bins = 10,
    fill = "#76A5AF",
    colour = "white",
    linewidth = 0.6,
    alpha = 0.85
  ) +
  geom_density(
    colour = "#C0392B",
    fill = "#E6B0AA",
    alpha = 0.25,
    linewidth = 1.1
  ) +
  geom_vline(
    data = ringkasan_distribusi,
    aes(xintercept = Median),
    colour = "#154360",
    linetype = "dashed",
    linewidth = 0.9
  ) +
  geom_vline(
    data = ringkasan_distribusi,
    aes(xintercept = Rata_rata),
    colour = "#D35400",
    linetype = "dotdash",
    linewidth = 0.9
  ) +
  facet_wrap(~Indikator, scales = "free", ncol = 1) +
  labs(
    title = "Distribusi Indikator Mortalitas dan AHH",
    subtitle = "Sebaran nilai pada provinsi Indonesia, 2020",
    x = "Nilai indikator",
    y = "Kepadatan",
    caption = "Garis biru putus-putus: median. Garis oranye: rata-rata."
  ) +
  theme_minimal(base_size = 12) +
  theme(
    plot.title = element_text(
      face = "bold", size = 16, colour = "#17324D"
    ),
    plot.subtitle = element_text(colour = "#526579"),
    strip.text = element_text(
      face = "bold", size = 11, colour = "#17324D"
    ),
    panel.grid.minor = element_blank(),
    panel.spacing = unit(1.2, "lines"),
    plot.title.position = "plot"
  )

grafik_distribusi

8 Hubungan antarindikator

8.1 Hubungan IMR dan AHH

# Menyiapkan data yang lengkap untuk korelasi IMR dan AHH
data_imr_ahh <- data_akhir |>
  select(Provinsi, IMR, AHH) |>
  drop_na()

if (nrow(data_imr_ahh) >= 3) {
  hasil_korelasi_imr_ahh <- cor.test(
    data_imr_ahh$IMR,
    data_imr_ahh$AHH,
    method = "pearson"
  )

  print(hasil_korelasi_imr_ahh)

  grafik_imr_ahh <- ggplot(
    data_imr_ahh,
    aes(x = IMR, y = AHH)
  ) +
    geom_smooth(
      method = "lm", se = TRUE,
      colour = "#C0392B", fill = "#F5B7B1",
      alpha = 0.35, linewidth = 1
    ) +
    geom_point(
      shape = 21, size = 3.5, stroke = 0.7,
      fill = "#2874A6", colour = "white"
    ) +
    geom_text(
      aes(label = Provinsi),
      size = 2.7, colour = "#34495E",
      check_overlap = TRUE, nudge_y = 0.05
    ) +
    labs(
      title = "Hubungan IMR dan Angka Harapan Hidup",
      subtitle = paste0(
        "Korelasi Pearson = ",
        round(unname(hasil_korelasi_imr_ahh$estimate), 3),
        " | p-value = ",
        format.pval(hasil_korelasi_imr_ahh$p.value, digits = 3)
      ),
      x = "IMR per 1.000 kelahiran hidup",
      y = "AHH (tahun)",
      caption = "Setiap titik mewakili satu provinsi."
    ) +
    tema_grafik +
    theme(
      panel.grid.major = element_line(
        colour = "grey90", linewidth = 0.4
      )
    )

  print(grafik_imr_ahh)
} else {
  cat("Data tidak cukup untuk korelasi IMR dan AHH.\n")
}
## 
##  Pearson's product-moment correlation
## 
## data:  data_imr_ahh$IMR and data_imr_ahh$AHH
## t = -144.59, df = 32, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.9996218 -0.9984549
## sample estimates:
##        cor 
## -0.9992355

8.2 Hubungan CDR dan AHH

# Menyiapkan data yang lengkap untuk korelasi CDR dan AHH
data_cdr_ahh <- data_akhir |>
  select(Provinsi, CDR, AHH) |>
  drop_na()

if (nrow(data_cdr_ahh) >= 3) {
  hasil_korelasi_cdr_ahh <- cor.test(
    data_cdr_ahh$CDR,
    data_cdr_ahh$AHH,
    method = "pearson"
  )

  print(hasil_korelasi_cdr_ahh)

  grafik_cdr_ahh <- ggplot(
    data_cdr_ahh,
    aes(x = CDR, y = AHH)
  ) +
    geom_smooth(
      method = "lm", se = TRUE,
      colour = "#C0392B", fill = "#F5B7B1",
      alpha = 0.35, linewidth = 1
    ) +
    geom_point(
      shape = 21, size = 3.5, stroke = 0.7,
      fill = "#D68910", colour = "white"
    ) +
    geom_text(
      aes(label = Provinsi),
      size = 2.7, colour = "#34495E",
      check_overlap = TRUE, nudge_y = 0.05
    ) +
    labs(
      title = "Hubungan Rasio Kematian Teregistrasi dan AHH",
      subtitle = paste0(
        "Korelasi Pearson = ",
        round(unname(hasil_korelasi_cdr_ahh$estimate), 3),
        " | p-value = ",
        format.pval(hasil_korelasi_cdr_ahh$p.value, digits = 3)
      ),
      x = "Rasio kematian teregistrasi per 1.000 penduduk",
      y = "AHH (tahun)",
      caption = "Setiap titik mewakili satu provinsi."
    ) +
    tema_grafik +
    theme(
      panel.grid.major = element_line(
        colour = "grey90", linewidth = 0.4
      )
    )

  print(grafik_cdr_ahh)
} else {
  cat("Data tidak cukup untuk korelasi CDR dan AHH.\n")
}
## 
##  Pearson's product-moment correlation
## 
## data:  data_cdr_ahh$CDR and data_cdr_ahh$AHH
## t = 1.9564, df = 32, p-value = 0.05919
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.01271984  0.59882889
## sample estimates:
##       cor 
## 0.3268518

9 Ringkasan hasil

# Menentukan provinsi dengan nilai indikator tertinggi dan terendah
prov_imr_max <- data_akhir |>
  filter(!is.na(IMR)) |>
  slice_max(IMR, n = 1, with_ties = FALSE)

prov_imr_min <- data_akhir |>
  filter(!is.na(IMR)) |>
  slice_min(IMR, n = 1, with_ties = FALSE)

prov_cdr_max <- data_akhir |>
  filter(!is.na(CDR)) |>
  slice_max(CDR, n = 1, with_ties = FALSE)

prov_cdr_min <- data_akhir |>
  filter(!is.na(CDR)) |>
  slice_min(CDR, n = 1, with_ties = FALSE)

prov_ahh_max <- data_akhir |>
  filter(!is.na(AHH)) |>
  slice_max(AHH, n = 1, with_ties = FALSE)

prov_ahh_min <- data_akhir |>
  filter(!is.na(AHH)) |>
  slice_min(AHH, n = 1, with_ties = FALSE)

ringkasan_hasil <- tibble(
  Indikator = c("IMR", "IMR", "CDR", "CDR", "AHH", "AHH"),
  Keterangan = c(
    "Tertinggi", "Terendah",
    "Tertinggi", "Terendah",
    "Tertinggi", "Terendah"
  ),
  Provinsi = c(
    prov_imr_max$Provinsi, prov_imr_min$Provinsi,
    prov_cdr_max$Provinsi, prov_cdr_min$Provinsi,
    prov_ahh_max$Provinsi, prov_ahh_min$Provinsi
  ),
  Nilai = c(
    prov_imr_max$IMR, prov_imr_min$IMR,
    prov_cdr_max$CDR, prov_cdr_min$CDR,
    prov_ahh_max$AHH, prov_ahh_min$AHH
  )
)

knitr::kable(
  ringkasan_hasil,
  digits = 3,
  caption = "Provinsi dengan nilai indikator tertinggi dan terendah"
)
Provinsi dengan nilai indikator tertinggi dan terendah
Indikator Keterangan Provinsi Nilai
IMR Tertinggi PAPUA 38.170
IMR Terendah DKI JAKARTA 10.380
CDR Tertinggi DI YOGYAKARTA 6.201
CDR Terendah SULAWESI BARAT 0.220
AHH Tertinggi DKI JAKARTA 75.200
AHH Terendah PAPUA 67.590

10 Ekspor hasil

Bagian ini menyimpan tabel hasil analisis sebagai berkas CSV di direktori kerja R.

# Menyimpan tabel indikator dan statistik deskriptif
write_csv(
  indikator_mortalitas,
  "hasil_indikator_mortalitas_2020.csv"
)

write_csv(
  statistik_deskriptif,
  "statistik_deskriptif_mortalitas_2020.csv"
)

write_csv(
  ringkasan_hasil,
  "ringkasan_hasil_mortalitas_2020.csv"
)

getwd()
## [1] "C:/Users/Hype G12/Downloads"

11 Catatan interpretasi

  • IMR disajikan per 1.000 kelahiran hidup.
  • CDR hasil perhitungan menggunakan jumlah kematian teregistrasi dibagi jumlah penduduk SP2020 dikali 1.000. Interpretasikan dengan hati-hati jika cakupan pencatatan kematian belum lengkap atau penyebut tidak sesuai definisi CDR standar.
  • AHH disajikan dalam satuan tahun.
  • Perbedaan indikator antarprovinsi dapat menjadi bahan pembahasan pemerataan kesehatan dan prioritas kebijakan. Kesimpulan substantif sebaiknya ditulis setelah hasil tabel dan grafik diperiksa.