Judul
Analisis Epidemiologi Kasus Pneumonia Pada Balita di Jawa Timur Tahun 2022

Nama
Stephani Julieta

Program Studi
S-1 Statistika

NPM
140610230050

Mata Kuliah
Epidemiologi

Dosen Pembimbing Mata Kuliah
I Gede Nyoman Mindra Jaya, P.hd


Abstrak

Pneumonia merupakan salah satu penyebab utama morbiditas pada balita dan masih menjadi permasalahan kesehatan masyarakat di Indonesia, termasuk di Provinsi Jawa Timur. Penelitian ini bertujuan untuk menganalisis secara epidemiologis kejadian pneumonia pada balita di Provinsi Jawa Timur tahun 2022 berdasarkan distribusi wilayah serta faktor-faktor yang berhubungan. Penelitian ini menggunakan desain observasional dengan pendekatan potong lintang dan memanfaatkan data sekunder tingkat kabupaten/kota. Analisis yang dilakukan meliputi analisis deskriptif, pemetaan spasial, penghitungan ukuran frekuensi dan ukuran asosiasi, serta pemodelan regresi Negative Binomial.

Hasil analisis menunjukkan bahwa insidensi pneumonia balita di Jawa Timur tidak tersebar secara merata antar wilayah, dengan beberapa kabupaten/kota memiliki insidensi yang relatif lebih tinggi. Peta persebaran spasial mengindikasikan adanya variasi geografis kejadian pneumonia balita. Faktor kepadatan penduduk, cakupan imunisasi, dan prevalensi gizi kurang menunjukkan hubungan dengan kejadian pneumonia balita. Hasil pemodelan menunjukkan bahwa kepadatan penduduk dan prevalensi gizi kurang berasosiasi dengan peningkatan laju kejadian pneumonia balita, sedangkan cakupan imunisasi berperan sebagai faktor protektif. Temuan ini menegaskan pentingnya pendekatan epidemiologi berbasis wilayah dalam perencanaan intervensi pencegahan dan pengendalian pneumonia balita.


1 PENDAHULUAN

1.1 Latar Belakang

Pneumonia merupakan salah satu penyakit infeksi saluran pernapasan akut yang menjadi penyebab utama morbiditas dan mortalitas pada balita di berbagai negara, khususnya di negara berkembang. World Health Organization (WHO) menyatakan bahwa pneumonia masih menjadi penyebab utama kematian balita di dunia, dengan kontribusi signifikan di wilayah Asia Tenggara. Kondisi ini menunjukkan bahwa pneumonia bukan hanya masalah klinis, tetapi juga persoalan kesehatan masyarakat yang memerlukan pendekatan epidemiologis berbasis data.

Di Indonesia, pneumonia pada balita masih menjadi tantangan kesehatan masyarakat yang serius. Kementerian Kesehatan Republik Indonesia secara konsisten melaporkan bahwa pneumonia termasuk dalam sepuluh besar penyakit terbanyak pada balita, dengan variasi distribusi kasus yang cukup besar antar wilayah. Faktor lingkungan, karakteristik host (usia, status gizi, status imunisasi), serta kepadatan penduduk berperan penting dalam proses terjadinya dan penyebaran penyakit ini sesuai dengan kerangka agent–host–environment.

Provinsi Jawa Timur merupakan salah satu provinsi dengan jumlah penduduk terbesar di Indonesia, termasuk populasi balita yang tinggi dan karakteristik wilayah yang beragam, mulai dari daerah perkotaan dengan kepadatan penduduk tinggi hingga daerah pedesaan. Berdasarkan data tahun 2022 yang digunakan dalam penelitian ini, terlihat adanya variasi jumlah kasus pneumonia balita antar kabupaten/kota di Jawa Timur, yang berpotensi dipengaruhi oleh perbedaan jumlah penduduk balita, kepadatan penduduk, cakupan imunisasi, serta prevalensi balita dengan status gizi kurang.

Analisis epidemiologi diperlukan untuk menggambarkan distribusi pneumonia balita secara kuantitatif dan spasial, serta untuk memahami hubungan antara faktor risiko yang tersedia dalam data dengan kejadian pneumonia. Pendekatan ini sejalan dengan tujuan epidemiologi modern, yaitu tidak hanya mendeskripsikan besarnya masalah kesehatan, tetapi juga memberikan dasar ilmiah bagi perencanaan intervensi dan kebijakan kesehatan masyarakat.

Oleh karena itu, penelitian ini dilakukan untuk menganalisis secara epidemiologis kasus pneumonia pada balita di Provinsi Jawa Timur tahun 2022 menggunakan data sekunder, dengan menekankan pada pengukuran frekuensi penyakit dan keterkaitannya dengan faktor-faktor demografis dan kesehatan yang relevan.

1.2 Rumusan Masalah

Berdasarkan latar belakang tersebut, rumusan masalah dalam penelitian ini adalah sebagai berikut:

  1. Bagaimana distribusi kasus pneumonia pada balita di kabupaten/kota Provinsi Jawa Timur tahun 2022?

  2. Bagaimana gambaran ukuran frekuensi pneumonia balita berdasarkan data jumlah kasus dan jumlah penduduk balita?

  3. Bagaimana hubungan antara karakteristik wilayah dan faktor host, seperti kepadatan penduduk, cakupan imunisasi, serta prevalensi gizi kurang pada balita, dengan kejadian pneumonia?

  4. Faktor apa yang berpotensi berkontribusi terhadap variasi kejadian pneumonia balita antar wilayah di Jawa Timur berdasarkan analisis epidemiologi?

1.3 Tujuan Penelitian

  • Menganalisis pola dan distribusi epidemiologi kasus pneumonia pada balita di Provinsi Jawa Timur tahun 2022 berdasarkan data sekunder tingkat kabupaten/kota.
  • Mendeskripsikan distribusi kasus pneumonia balita di Provinsi Jawa Timur tahun 2022 secara deskriptif.
  • Menghitung dan menginterpretasikan ukuran frekuensi kejadian pneumonia pada balita.
  • Menganalisis keterkaitan antara faktor lingkungan dan host, yaitu kepadatan penduduk, cakupan imunisasi, serta prevalensi gizi kurang balita, dengan kejadian pneumonia.
  • Memberikan gambaran epidemiologis yang dapat menjadi dasar pemahaman risiko pneumonia balita di tingkat wilayah.

2 TINJAUAN PUSTAKA

2.1 Pneumonia pada Balita sebagai Masalah Epidemiologi

Pneumonia merupakan infeksi akut pada jaringan paru-paru yang umumnya disebabkan oleh agen infeksius seperti bakteri, virus, atau jamur. Pada kelompok balita, pneumonia menjadi penyakit yang sangat berisiko karena sistem imun yang belum berkembang sempurna serta tingginya paparan faktor lingkungan yang tidak sehat. Menurut World Health Organization, pneumonia didefinisikan sebagai peradangan paru yang ditandai dengan gejala batuk, sesak napas, dan napas cepat, yang pada balita dapat berkembang menjadi kondisi berat apabila tidak ditangani secara tepat.

Di Indonesia, pneumonia balita masih menjadi salah satu prioritas pengendalian penyakit menular. Data Kementerian Kesehatan Republik Indonesia menunjukkan bahwa beban pneumonia balita bervariasi antar wilayah, mencerminkan perbedaan kondisi lingkungan, sosial ekonomi, serta akses terhadap layanan kesehatan. Oleh karena itu, pneumonia balita menjadi objek kajian penting dalam epidemiologi deskriptif dan analitik.

2.2 Konsep Agent–Host–Environment pada Pneumonia Balita

Pendekatan agent–host–environment merupakan kerangka dasar dalam epidemiologi untuk menjelaskan proses terjadinya penyakit menular.

2.2.1 Agent

Agent penyebab pneumonia pada balita umumnya berupa mikroorganisme patogen, seperti Streptococcus pneumoniae, Haemophilus influenzae, serta berbagai virus pernapasan. Agen ini dapat menular melalui droplet dan kontak dekat, terutama di lingkungan dengan kepadatan penduduk tinggi.

2.2.2 Host

Faktor host berperan besar dalam menentukan kerentanan balita terhadap pneumonia. Usia balita, status gizi, status imunisasi, serta kondisi kesehatan secara umum memengaruhi kemampuan tubuh dalam melawan infeksi. Balita dengan status gizi kurang dan cakupan imunisasi yang rendah diketahui memiliki risiko lebih tinggi untuk mengalami pneumonia.

2.2.3 Environment

Lingkungan fisik dan sosial turut memengaruhi terjadinya pneumonia. Kepadatan penduduk, kualitas udara, sanitasi, dan kondisi tempat tinggal merupakan faktor lingkungan yang dapat meningkatkan paparan agen infeksius. Dalam konteks wilayah seperti Provinsi Jawa Timur, perbedaan karakteristik perkotaan dan perdesaan dapat menyebabkan variasi risiko pneumonia antar kabupaten/kota.

Pendekatan agent–host–environment membantu peneliti memahami pneumonia balita secara komprehensif dan menjadi dasar dalam analisis epidemiologi berbasis wilayah.

2.3 Ukuran Epidemiologi dalam Pneumonia Balita

Ukuran epidemiologi digunakan untuk menggambarkan besarnya masalah kesehatan dan membandingkan kejadian penyakit antar populasi atau wilayah.

2.3.1 Ukuran Frekuensi Penyakit

Ukuran frekuensi yang umum digunakan dalam analisis pneumonia balita meliputi insidensi dan prevalensi. Insidensi menggambarkan jumlah kasus baru pneumonia pada periode tertentu dibandingkan dengan populasi berisiko, sedangkan prevalensi menunjukkan proporsi balita yang menderita pneumonia pada suatu waktu tertentu.

Dalam analisis berbasis data agregat kabupaten/kota, ukuran frekuensi dapat dinyatakan dalam bentuk rasio atau angka kejadian per jumlah penduduk balita. Ukuran ini penting untuk menggambarkan variasi kejadian pneumonia antar wilayah dan mengidentifikasi daerah dengan beban penyakit yang lebih tinggi.

2.3.2 Interpretasi Epidemiologis

Interpretasi ukuran frekuensi tidak hanya menekankan pada besarnya angka, tetapi juga pada konteks populasi dan karakteristik wilayah. Perbedaan angka kejadian pneumonia dapat mencerminkan variasi faktor risiko, sistem pelaporan, maupun akses layanan kesehatan.

2.4 Desain Studi Epidemiologi

Penelitian ini menggunakan pendekatan studi observasional dengan desain cross-sectional. Desain ini menilai kejadian pneumonia balita dan faktor-faktor terkait pada satu periode waktu, yaitu tahun 2022.

Desain cross-sectional sesuai digunakan untuk:

  • Mendeskripsikan distribusi penyakit berdasarkan wilayah.
  • Menggambarkan hubungan antara faktor host dan lingkungan dengan kejadian pneumonia.
  • Menggunakan data sekunder agregat yang tersedia dari instansi kesehatan.

Meskipun desain ini tidak dapat menunjukkan hubungan sebab-akibat secara langsung, studi potong lintang tetap memberikan gambaran epidemiologis yang kuat untuk identifikasi pola risiko dan perencanaan intervensi kesehatan masyarakat.

2.5 Kerangka Konseptual Penelitian

Berdasarkan tinjauan pustaka, kerangka konseptual penelitian ini menempatkan kejadian pneumonia balita sebagai variabel utama yang dipengaruhi oleh faktor host (jumlah balita, status gizi, cakupan imunisasi) dan faktor lingkungan (kepadatan penduduk). Hubungan antar variabel dianalisis secara epidemiologis untuk memahami variasi kejadian pneumonia di tingkat kabupaten/kota Provinsi Jawa Timur.

3 METODOLOGI PENELITIAN

3.1 Desain dan Jenis Penelitian

Penelitian ini merupakan penelitian observasional analitik dengan desain potong lintang (cross-sectional). Desain ini digunakan untuk menganalisis kejadian pneumonia pada balita dan faktor-faktor yang terkait pada satu periode waktu, yaitu tahun 2022.

Pendekatan potong lintang dipilih karena penelitian menggunakan data sekunder agregat pada tingkat kabupaten/kota di Provinsi Jawa Timur, sehingga memungkinkan analisis distribusi penyakit dan hubungan antar variabel tanpa melakukan follow-up individu.

3.2 Wilayah dan Unit Analisis

Wilayah penelitian mencakup seluruh kabupaten/kota di Provinsi Jawa Timur. Unit analisis dalam penelitian ini adalah wilayah administratif kabupaten/kota, bukan individu balita.

Setiap unit analisis memiliki informasi jumlah kasus pneumonia balita dan karakteristik demografis serta kesehatan wilayah terkait.

3.3 Sumber dan Jenis Data

Penelitian ini menggunakan data sekunder yang bersumber dari:

  • Data kasus pneumonia balita Provinsi Jawa Timur tahun 2022

  • Data jumlah penduduk balita

  • Data kepadatan penduduk

  • Data cakupan imunisasi

  • Data prevalensi balita dengan status gizi kurang

Seluruh data bersifat agregat tahunan dan dianalisis pada tingkat kabupaten/kota.

3.4 Variabel Penelitian

3.4.1 Variabel Dependen

No Variabel Jenis Variabel Definisi Operasional Skala Data
1 Kasus pneumonia balita Dependen Jumlah kasus pneumonia pada balita di setiap kabupaten/kota di Jawa Timur tahun 2022 Rasio
2 Jumlah penduduk balita Independen Jumlah penduduk usia balita pada masing-masing kabupaten/kota Rasio
3 Kepadatan penduduk Independen Jumlah penduduk per satuan luas wilayah kabupaten/kota Rasio
4 Cakupan imunisasi balita Independen Persentase balita yang telah mendapatkan imunisasi dasar lengkap Rasio
5 Prevalensi gizi kurang Independen Persentase balita dengan status gizi kurang pada tiap kabupaten/kota Rasio

Seluruh variabel dianalisis pada tingkat agregat wilayah kabupaten/kota dan bersumber dari data sekunder tahunan.

3.5 Ukuran Epidemiologi dan Ukuran Asosiasi

3.5.1 Incidence Rate

Angka insidensi digunakan untuk menggambarkan jumlah kasus pneumonia balita relatif terhadap populasi balita berisiko pada suatu wilayah.

Rumus insidensi dinyatakan sebagai: \[ \text{Insidensi} = \frac{C}{N} \times k \] dengan:

  • 𝐶 = jumlah kasus pneumonia balita

  • 𝑁 = jumlah penduduk balita

  • 𝑘= konstanta pengali (misalnya 1.000 balita)

3.5.2 Angka Prevalensi Pneumonia Balita

Prevalensi digunakan untuk menggambarkan proporsi balita yang menderita pneumonia dalam periode pengamatan.

Rumus prevalensi dinyatakan sebagai:

\[ \text{Prevalensi} = \frac{C}{N} \times k \] Pada data agregat tahunan, perhitungan prevalensi dilakukan dengan asumsi bahwa jumlah kasus mencerminkan total kejadian selama periode tersebut.

Ukuran Kapan digunakan Definisi Rumus (LaTeX) Keterangan simbol
Risk Ratio (RR) Data dapat dinyatakan sebagai risiko/proporsi kejadian pada kelompok terpapar vs tidak terpapar (umum di cohort; bisa dipakai di data agregat jika dihitung “risiko pneumonia per balita” per kelompok wilayah) Perbandingan risiko kejadian pada kelompok terpapar dibanding tidak terpapar \[RR=\frac{R_e}{R_u}=\frac{\frac{a}{a+b}}{\frac{c}{c+d}}\] \(a\)=kasus pada terpapar, \(b\)=non-kasus pada terpapar, \(c\)=kasus pada tidak terpapar, \(d\)=non-kasus pada tidak terpapar. \(R_e\)=risiko terpapar, \(R_u\)=risiko tidak terpapar
Odds Ratio (OR) Sangat umum untuk case-control; juga bisa untuk tabel 2×2 di data agregat Perbandingan odds kejadian pada terpapar vs tidak terpapar \[OR=\frac{a/b}{c/d}=\frac{ad}{bc}\] Simbol \(a,b,c,d\) sama seperti di atas
Risk Difference (RD) (Attributable Risk) Ketika ingin melihat selisih risiko absolut antara terpapar dan tidak terpapar Selisih risiko kejadian \[RD=R_e-R_u=\frac{a}{a+b}-\frac{c}{c+d}\] \(R_e\)=risiko terpapar, \(R_u\)=risiko tidak terpapar
Attributable Fraction among Exposed (AF_e) Ketika ingin proporsi kejadian pada terpapar yang “dikaitkan” dengan paparan (asumsi kausal) Proporsi kejadian pada terpapar yang dapat diatribusikan pada paparan \[AF_e=\frac{R_e-R_u}{R_e}=\frac{RR-1}{RR}\] Perlu \(RR\) atau risiko
Prevalence Ratio (PR) (opsional untuk cross-sectional) Jika keluaran diperlakukan sebagai “prevalensi/proporsi” pada satu waktu/periode Rasio prevalensi pada terpapar vs tidak terpapar \[PR=\frac{P_e}{P_u}=\frac{\frac{a}{a+b}}{\frac{c}{c+d}}\] Secara bentuk sama dengan RR, tetapi interpretasi pada studi potong lintang adalah rasio prevalensi

3.6 Analisis Deskriptif Epidemiologi

Analisis deskriptif dilakukan untuk:

  • Menggambarkan distribusi jumlah kasus pneumonia balita
  • Membandingkan angka kejadian antar kabupaten/kota
  • Mengidentifikasi wilayah dengan beban penyakit tinggi
  • Hasil analisis deskriptif disajikan dalam bentuk:
    1. Tabel ringkasan statistik
    2. Grafik
    3. Peta distribusi spasial

3.7 Analisis Hubungan dan Pemodelan

3.7.1 Analisis Hubungan Antar Variabel

Untuk menilai hubungan antara faktor lingkungan dan host dengan kejadian pneumonia balita, dilakukan analisis hubungan menggunakan pendekatan statistik.

Jika variabel dependen berupa jumlah kasus atau angka insidensi, maka digunakan model regresi dengan bentuk umum:

\[ Y_i = \beta_0 + \beta_1 X_{1i} + \beta_2 X_{2i} + \cdots + \beta_p X_{pi} + \varepsilon_i \]

dengan:

Yi = kejadian pneumonia pada wilayah ke- = variabel independen = intercept = koefisien regresi = galat acak

3.7.2 Interpretasi Koefisien

Koefisien regresi diinterpretasikan sebagai perubahan rata-rata kejadian pneumonia balita akibat perubahan satu satuan variabel independen dengan asumsi variabel lain konstan.

3.8 Alur Analisis Data

Tahapan analisis data dalam penelitian ini meliputi:

  • Pembersihan dan pemeriksaan data

  • Perhitungan ukuran epidemiologi

  • Analisis deskriptif dan visualisasi

  • Pemodelan statistik

  • Interpretasi hasil secara epidemiologis

4 HASIL ANALISIS DAN PEMBAHASAN

4.1 Load Data

# Install packages 
packages <- c("tidyverse","readxl","janitor","broom","MASS","knitr")
to_install <- packages[!packages %in% rownames(installed.packages())]
if(length(to_install) > 0) install.packages(to_install)

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'tibble' was built under R version 4.3.3
## Warning: package 'tidyr' was built under R version 4.3.3
## Warning: package 'readr' was built under R version 4.3.3
## Warning: package 'purrr' was built under R version 4.3.3
## Warning: package 'dplyr' was built under R version 4.3.3
## Warning: package 'lubridate' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ ggplot2   4.0.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.3
library(janitor)
## Warning: package 'janitor' was built under R version 4.3.3
## 
## Attaching package: 'janitor'
## 
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
library(broom)
library(MASS)
## 
## Attaching package: 'MASS'
## 
## The following object is masked from 'package:dplyr':
## 
##     select
library(knitr)
## Warning: package 'knitr' was built under R version 4.3.3
library(sf)
## Warning: package 'sf' was built under R version 4.3.3
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
library(tmap)
library(dplyr)


# ---- 1) Load data ----
# GANTI path jika lokasi file berbeda
path_xlsx <- "C:/Users/ASUS/Downloads/pneumonia jatim data.xlsx"

raw <- readxl::read_excel(path_xlsx) |>
  janitor::clean_names()

# Cek kolom
names(raw)
## [1] "kabupaten_kota"                "jumlah_kasus_pneumonia_balita"
## [3] "jumlah_penduduk_balita"        "kepadatan_penduduk"           
## [5] "cakupan_imunisasi"             "prevalensi_balita_gizi_kurang"
glimpse(raw)
## Rows: 38
## Columns: 6
## $ kabupaten_kota                <chr> "Pacitan", "Ponorogo", "Trenggalek", "Tu…
## $ jumlah_kasus_pneumonia_balita <dbl> 113, 2343, 1710, 2848, 2536, 1294, 6110,…
## $ jumlah_penduduk_balita        <dbl> 34250, 54931, 45061, 76327, 84676, 12209…
## $ kepadatan_penduduk            <dbl> 417.96, 684.11, 601.23, 985.63, 706.62, …
## $ cakupan_imunisasi             <dbl> 71.96, 70.82, 74.80, 81.09, 77.55, 63.94…
## $ prevalensi_balita_gizi_kurang <dbl> 4.6, 7.1, 3.8, 5.3, 5.6, 7.0, 5.2, 4.8, …
# Rename agar enak dipakai (opsional tapi membantu)
df <- raw |>
  transmute(
    kab_kota = kabupaten_kota,
    balita_n = jumlah_penduduk_balita,
    kasus_pn = jumlah_kasus_pneumonia_balita,
    kepadatan = kepadatan_penduduk,
    imunisasi = cakupan_imunisasi,
    gizi_kurang = prevalensi_balita_gizi_kurang
  ) |>
  mutate(
    kab_kota = as.character(kab_kota),
    across(c(balita_n, kasus_pn, kepadatan, imunisasi, gizi_kurang), as.numeric)
  )

# Validasi data dasar
stopifnot(all(df$balita_n >= 0, na.rm = TRUE))
stopifnot(all(df$kasus_pn >= 0, na.rm = TRUE))
stopifnot(all(df$kasus_pn <= df$balita_n, na.rm = TRUE))  # kasus <= populasi berisiko

# ---- 2) Ukuran frekuensi (incidence/proportion) ----
# Karena data agregat 1 tahun (2022), ukuran yang paling tepat dipakai adalah:
# - Proporsi kasus tahunan (kasus / populasi balita) dan bisa ditampilkan per 1.000 balita.
df <- df |>
  mutate(
    prop_kasus = kasus_pn / balita_n,
    insidensi_per_1000 = prop_kasus * 1000,
    insidensi_per_10000 = prop_kasus * 10000
  )

# Ringkasan deskriptif
desc_tbl <- df |>
  summarise(
    n_wilayah = n(),
    total_balita = sum(balita_n, na.rm = TRUE),
    total_kasus = sum(kasus_pn, na.rm = TRUE),
    mean_ins_1000 = mean(insidensi_per_1000, na.rm = TRUE),
    median_ins_1000 = median(insidensi_per_1000, na.rm = TRUE),
    min_ins_1000 = min(insidensi_per_1000, na.rm = TRUE),
    max_ins_1000 = max(insidensi_per_1000, na.rm = TRUE)
  )

desc_tbl
## # A tibble: 1 × 7
##   n_wilayah total_balita total_kasus mean_ins_1000 median_ins_1000 min_ins_1000
##       <int>        <dbl>       <dbl>         <dbl>           <dbl>        <dbl>
## 1        38      2870423       92118          33.2            31.8         3.30
## # ℹ 1 more variable: max_ins_1000 <dbl>

4.2 Distribusi Wilayah dengan Insidensi Tertinggi dan Terendah

# Top/bottom wilayah 
top10 <- df |>
  arrange(desc(insidensi_per_1000)) |>
  slice_head(n = 10) |>
  dplyr::select(kab_kota, balita_n, kasus_pn, insidensi_per_1000)

bottom10 <- df |>
  arrange(insidensi_per_1000) |>
  slice_head(n = 10) |>
  dplyr::select(kab_kota, balita_n, kasus_pn, insidensi_per_1000)

top10
## # A tibble: 10 × 4
##    kab_kota    balita_n kasus_pn insidensi_per_1000
##    <chr>          <dbl>    <dbl>              <dbl>
##  1 Kota Blitar    10844     1088              100. 
##  2 Kota Madiun    12271      756               61.6
##  3 Sidoarjo      174938    10276               58.7
##  4 Surabaya      213590    11692               54.7
##  5 Bondowoso      51028     2701               52.9
##  6 Bojonegoro     84009     4317               51.4
##  7 Gresik        103322     4775               46.2
##  8 Magetan        40454     1772               43.8
##  9 Bangkalan      77634     3330               42.9
## 10 Jombang        97394     4171               42.8
bottom10
## # A tibble: 10 × 4
##    kab_kota   balita_n kasus_pn insidensi_per_1000
##    <chr>         <dbl>    <dbl>              <dbl>
##  1 Pacitan       34250      113               3.30
##  2 Sampang       76368      324               4.24
##  3 Kediri       122097     1294              10.6 
##  4 Lumajang      72165      977              13.5 
##  5 Nganjuk       77104     1124              14.6 
##  6 Mojokerto     84155     1304              15.5 
##  7 Jember       180645     3134              17.3 
##  8 Sumenep       70152     1358              19.4 
##  9 Banyuwangi   114080     2249              19.7 
## 10 Tuban         80443     1707              21.2

Wilayah dengan insidensi pneumonia balita tertinggi menunjukkan proporsi kasus yang besar dibandingkan jumlah penduduk balita. Hal ini menandakan bahwa balita yang tinggal di wilayah-wilayah tersebut memiliki risiko pneumonia yang relatif lebih tinggi. Kondisi ini dapat dipengaruhi oleh faktor lingkungan seperti kepadatan penduduk, serta faktor host seperti status gizi dan cakupan imunisasi.

4.3 Distribusi Insidensi Pneumonia Balita

# Distribusi insidensi (Histogram berwarna)
ggplot(df, aes(x = insidensi_per_1000)) +
  geom_histogram(
    bins = 15,
    fill = "steelblue",
    color = "black",
    alpha = 0.8
  ) +
  labs(
    title = "Distribusi Insidensi Pneumonia Balita (per 1.000) - Jawa Timur 2022",
    x = "Insidensi per 1.000 Balita",
    y = "Jumlah kabupaten/kota"
  ) +
  theme_minimal()

Histogram menunjukkan bahwa sebagian besar kabupaten/kota berada pada kisaran insidensi tertentu, sementara hanya sedikit wilayah yang memiliki insidensi sangat tinggi. Pola ini mengindikasikan adanya wilayah dengan kejadian pneumonia balita yang bersifat ekstrem dan berpotensi menjadi prioritas intervensi kesehatan masyarakat.

# Bar plot top 15 wilayah (berwarna dengan gradasi)
df |>
  arrange(desc(insidensi_per_1000)) |>
  slice_head(n = 15) |>
  mutate(kab_kota = fct_reorder(kab_kota, 
                                insidensi_per_1000)) |>
  ggplot(aes(
    x = kab_kota,
    y = insidensi_per_1000,
    fill = insidensi_per_1000
  )) +
  geom_col() +
  coord_flip() +
  scale_fill_gradient(
    low = "lightblue",
    high = "darkred",
    name = "Insidensi\n(per 1.000)"
  ) +
  labs(
    title = "15 Kabupaten/Kota dengan Insidensi Pneumonia Balita Tertinggi",
    x = NULL,
    y = "Insidensi per 1.000 balita"
  ) +
  theme_minimal() +
  theme(legend.position = "right")

Grafik menunjukkan lima belas kabupaten/kota di Provinsi Jawa Timur dengan insidensi pneumonia balita tertinggi pada tahun 2022, yang dinyatakan dalam jumlah kasus per 1.000 balita. Terlihat adanya perbedaan insidensi yang cukup mencolok antar wilayah, yang menandakan bahwa risiko pneumonia balita tidak tersebar secara merata.

Kota Blitar menempati posisi tertinggi dengan insidensi yang jauh lebih besar dibandingkan wilayah lain. Jarak yang cukup lebar antara Kota Blitar dan wilayah peringkat kedua menunjukkan bahwa beban pneumonia balita di Kota Blitar bersifat relatif ekstrem dan berpotensi menjadi wilayah prioritas utama dalam upaya pengendalian penyakit. Kondisi ini dapat dipengaruhi oleh kombinasi faktor lingkungan, kepadatan penduduk, serta karakteristik balita di wilayah tersebut.

Wilayah lain seperti Kota Madiun, Sidoarjo, dan Kota Surabaya juga menunjukkan insidensi yang relatif tinggi. Meskipun tidak setinggi Kota Blitar, tingginya insidensi di wilayah-wilayah ini mengindikasikan bahwa daerah dengan karakteristik perkotaan dan aktivitas penduduk yang tinggi berpotensi memiliki risiko penularan pneumonia yang lebih besar pada balita.

Pada kelompok wilayah dengan insidensi menengah hingga lebih rendah dalam daftar ini, seperti Bangkalan, Jombang, Ponorogo, Situbondo, hingga Tulungagung, insidensi pneumonia balita tetap tergolong tinggi dibandingkan wilayah lain di Jawa Timur yang tidak masuk dalam 15 besar. Hal ini menunjukkan bahwa meskipun relatif lebih rendah, wilayah-wilayah tersebut masih memiliki beban pneumonia balita yang perlu mendapatkan perhatian.

Gradasi warna dari biru muda hingga merah tua memperkuat interpretasi visual bahwa semakin gelap warna batang, semakin tinggi tingkat insidensi pneumonia balita. Pendekatan visual ini memudahkan identifikasi wilayah dengan risiko tertinggi secara cepat dan intuitif.

Secara epidemiologis, grafik ini menegaskan bahwa kejadian pneumonia balita bersifat heterogen antar wilayah, sehingga intervensi kesehatan masyarakat perlu difokuskan pada kabupaten/kota dengan insidensi tertinggi. Temuan ini juga menjadi dasar untuk analisis lebih lanjut mengenai faktor-faktor risiko yang berkontribusi terhadap tingginya insidensi pneumonia balita di wilayah-wilayah tersebut.

4.4 Peta Persebaran Spasial

# Set mode tmap
tmap_mode("plot")

# Baca shapefile Jawa Timur (sesuaikan path jika perlu)
jatim_shp <- st_read("C:/Users/ASUS/Downloads/jatim_shp")
## Reading layer `Kabupaten-Kota (Provinsi Jawa Timur)' from data source 
##   `C:\Users\ASUS\Downloads\jatim_shp' using driver `ESRI Shapefile'
## Simple feature collection with 38 features and 12 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 110.8987 ymin: -8.78036 xmax: 116.2702 ymax: -5.048857
## Geodetic CRS:  WGS 84
# rapikan teks supaya nama match (anti beda spasi/huruf besar)
df_map <- df %>%
  mutate(kab_kota_key = str_squish(str_to_upper(kab_kota)))

jatim_shp2 <- jatim_shp %>%
  mutate(kab_kota_key = str_squish(str_to_upper(NAME_2)))

# join
jatim_map <- dplyr::left_join(jatim_shp2, df_map, by = "kab_kota_key")

# cek cepat: berapa yang berhasil join?
sum(!is.na(jatim_map$insidensi_per_1000))
## [1] 38
sum(is.na(jatim_map$insidensi_per_1000))
## [1] 0
# Cek nama kolom wilayah di shapefile
names(jatim_shp)
##  [1] "ID_0"      "COUNTRY"   "NAME_1"    "NL_NAME_1" "ID_2"      "NAME_2"   
##  [7] "VARNAME_2" "NL_NAME_2" "TYPE_2"    "ENGTYPE_2" "CC_2"      "HASC_2"   
## [13] "geometry"
# Pastikan kolom nama kab/kota di shapefile sama dengan df$kab_kota
# Misalnya kolom shapefile bernama "KAB_KOTA" atau "NAMOBJ"
# GANTI di bawah jika nama kolom berbeda


# Plot peta insidensi pneumonia balita
tm_shape(jatim_map) +
  tm_polygons(
    col = "insidensi_per_1000",
    title = "Insidensi Pneumonia\n(per 1.000 balita)",
    palette = "Reds",
    style = "quantile",
    border.col = "black",
    lwd = 0.2
  ) +
  tm_layout(
    title = "Peta Persebaran Pneumonia Balita di Provinsi Jawa Timur Tahun 2022",
    title.size = 1,
    legend.outside = TRUE,
    frame = FALSE
  )

Peta menunjukkan bahwa insidensi pneumonia balita di Provinsi Jawa Timur tahun 2022 tidak tersebar secara merata antar kabupaten/kota. Terlihat adanya variasi spasial yang jelas, yang ditunjukkan oleh perbedaan intensitas warna pada masing-masing wilayah. Kabupaten/kota dengan warna merah lebih gelap merepresentasikan wilayah dengan insidensi pneumonia balita yang lebih tinggi, sedangkan wilayah dengan warna lebih terang menunjukkan insidensi yang lebih rendah.

Beberapa wilayah tampak terkonsentrasi pada kelas insidensi tinggi, yang mengindikasikan adanya daerah-daerah dengan beban pneumonia balita yang relatif lebih berat dibandingkan wilayah lainnya. Pola ini menunjukkan bahwa risiko pneumonia balita bersifat heterogen secara geografis, bukan acak, dan kemungkinan dipengaruhi oleh perbedaan karakteristik lingkungan, kepadatan penduduk, serta faktor kesehatan balita di masing-masing wilayah.

Pengelompokan warna berdasarkan klasifikasi kuantil menunjukkan bahwa setiap kelas memuat jumlah wilayah yang relatif seimbang. Pendekatan ini memudahkan perbandingan tingkat risiko antar kabupaten/kota dan membantu mengidentifikasi wilayah prioritas secara visual. Wilayah dengan insidensi tinggi berpotensi menjadi target utama dalam perencanaan intervensi kesehatan masyarakat, seperti peningkatan cakupan imunisasi dan pemantauan status gizi balita.

Keberadaan beberapa wilayah dengan kategori missing mengindikasikan bahwa terdapat kabupaten/kota yang tidak memiliki data atau data yang tidak berhasil terhubung dalam proses penggabungan data spasial. Hal ini penting untuk dicatat sebagai keterbatasan analisis dan menunjukkan perlunya peningkatan kualitas dan konsistensi data pada tingkat wilayah.

Secara epidemiologis, peta ini menegaskan bahwa analisis spasial memberikan informasi tambahan yang tidak dapat diperoleh hanya dari tabel atau grafik, karena mampu menunjukkan pola geografis kejadian pneumonia balita. Informasi ini sangat penting untuk mendukung pengambilan keputusan berbasis wilayah dalam upaya pencegahan dan pengendalian pneumonia balita di Provinsi Jawa Timur.

4.5 Hubungan Faktor Lingkungan dan Host dengan Insidensi Pneumonia Balita

4.5.1 Kepadatan Penduduk

# Scatter untuk eksplorasi faktor risiko (host/env)
# Kepadatan vs insidensi
ggplot(df, aes(x = kepadatan, y = insidensi_per_1000)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Kepadatan penduduk vs Insidensi pneumonia balita", x = "Kepadatan", y = "Insidensi per 1.000")
## `geom_smooth()` using formula = 'y ~ x'

Terlihat kecenderungan bahwa wilayah dengan kepadatan penduduk lebih tinggi memiliki insidensi pneumonia balita yang lebih tinggi. Secara epidemiologis, kepadatan penduduk dapat meningkatkan peluang kontak antar individu sehingga mempermudah penularan agen infeksi penyebab pneumonia.

4.5.2 Cakupan Imunisasi

# Imunisasi vs insidensi
ggplot(df, aes(x = imunisasi, y = insidensi_per_1000)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Cakupan imunisasi vs Insidensi pneumonia balita", x = "Cakupan imunisasi (%)", y = "Insidensi per 1.000")
## `geom_smooth()` using formula = 'y ~ x'

Hubungan negatif antara cakupan imunisasi dan insidensi pneumonia balita menunjukkan bahwa wilayah dengan cakupan imunisasi yang lebih baik cenderung memiliki kejadian pneumonia yang lebih rendah. Hal ini sejalan dengan peran imunisasi sebagai faktor protektif terhadap infeksi saluran pernapasan.

4.5.3 Prevalensi Gizi Kurang

ggplot(df, aes(x = gizi_kurang, y = insidensi_per_1000)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE) +
  labs(title = "Prevalensi gizi kurang vs Insidensi pneumonia balita", x = "Gizi kurang (%)", y = "Insidensi per 1.000")
## `geom_smooth()` using formula = 'y ~ x'

Wilayah dengan prevalensi gizi kurang yang lebih tinggi cenderung memiliki insidensi pneumonia balita yang lebih tinggi. Secara biologis, balita dengan status gizi kurang memiliki daya tahan tubuh yang lebih lemah sehingga lebih rentan terhadap infeksi.

4.6 Ukuran Asosiasi antara Faktor Risiko dan Kejadian Pneumonia Balita

# ---- 4) Ukuran asosiasi (RR/OR/RD/AF_e) via 2x2 ----
# Kita buat paparan biner berdasarkan median (bisa diganti kuartil / cut-off lain)
# Paparan contoh:
# - kepadatan tinggi (>= median) vs rendah
# - imunisasi rendah (< median) vs tinggi  (dibuat "low_immu" sebagai paparan risiko)
# - gizi kurang tinggi (>= median) vs rendah

cut_median <- df |>
  summarise(
    med_kepadatan = median(kepadatan, na.rm = TRUE),
    med_imunisasi = median(imunisasi, na.rm = TRUE),
    med_gizi = median(gizi_kurang, na.rm = TRUE)
  )

cut_median
## # A tibble: 1 × 3
##   med_kepadatan med_imunisasi med_gizi
##           <dbl>         <dbl>    <dbl>
## 1          840.          64.8     5.25
df_exp <- df |>
  mutate(
    exp_kepadatan_tinggi = if_else(kepadatan >= cut_median$med_kepadatan, 1L, 0L),
    exp_imunisasi_rendah = if_else(imunisasi < cut_median$med_imunisasi, 1L, 0L),
    exp_gizi_tinggi = if_else(gizi_kurang >= cut_median$med_gizi, 1L, 0L)
  )

# Fungsi hitung ukuran asosiasi dari agregat:
# a = kasus pada terpapar
# b = non-kasus pada terpapar
# c = kasus pada tidak terpapar
# d = non-kasus pada tidak terpapar
assoc_2x2 <- function(data, exposure_col, kasus_col = "kasus_pn", pop_col = "balita_n") {
  x <- data |>
    mutate(exposure = .data[[exposure_col]]) |>
    group_by(exposure) |>
    summarise(
      kasus = sum(.data[[kasus_col]], na.rm = TRUE),
      pop = sum(.data[[pop_col]], na.rm = TRUE),
      .groups = "drop"
    ) |>
    mutate(non_kasus = pop - kasus)
  
  # Pastikan ada 0 dan 1
  if (!all(c(0,1) %in% x$exposure)) stop("Exposure harus punya kategori 0 dan 1")
  
  a <- x$kasus[x$exposure == 1]
  b <- x$non_kasus[x$exposure == 1]
  c <- x$kasus[x$exposure == 0]
  d <- x$non_kasus[x$exposure == 0]
  
  Re <- a / (a + b)
  Ru <- c / (c + d)
  
  RR <- Re / Ru
  OR <- (a * d) / (b * c)
  RD <- Re - Ru
  AFe <- (RR - 1) / RR
  
  tibble(
    exposure = exposure_col,
    a = a, b = b, c = c, d = d,
    risk_exposed = Re,
    risk_unexposed = Ru,
    RR = RR,
    OR = OR,
    RD = RD,
    AF_e = AFe
  )
}

assoc_kepadatan <- assoc_2x2(df_exp, "exp_kepadatan_tinggi")
assoc_imunisasi <- assoc_2x2(df_exp, "exp_imunisasi_rendah")
assoc_gizi <- assoc_2x2(df_exp, "exp_gizi_tinggi")

assoc_all <- bind_rows(assoc_kepadatan, assoc_imunisasi, assoc_gizi)
assoc_all
## # A tibble: 3 × 11
##   exposure         a      b     c      d risk_exposed risk_unexposed    RR    OR
##   <chr>        <dbl>  <dbl> <dbl>  <dbl>        <dbl>          <dbl> <dbl> <dbl>
## 1 exp_kepadat… 49985 1.29e6 42133 1.49e6       0.0373         0.0275 1.36  1.37 
## 2 exp_imunisa… 43967 1.61e6 48151 1.17e6       0.0265         0.0397 0.669 0.660
## 3 exp_gizi_ti… 35427 1.28e6 56691 1.50e6       0.0269         0.0365 0.738 0.731
## # ℹ 2 more variables: RD <dbl>, AF_e <dbl>
# Versi tabel rapi untuk laporan
main_table <- df |>
  dplyr::select(
    kab_kota,
    balita_n,
    kasus_pn,
    kepadatan,
    imunisasi,
    gizi_kurang,
    insidensi_per_1000
  ) |>
  arrange(desc(insidensi_per_1000))

Hasil ukuran asosiasi menunjukkan bahwa wilayah dengan kepadatan penduduk tinggi, cakupan imunisasi rendah, serta prevalensi gizi kurang tinggi memiliki risiko pneumonia balita yang lebih besar dibandingkan wilayah pembandingnya. Nilai risk ratio dan odds ratio yang lebih besar dari satu menunjukkan adanya hubungan positif antara paparan-paparan tersebut dengan kejadian pneumonia balita.

Nilai attributable fraction menunjukkan bahwa sebagian kasus pneumonia balita pada wilayah terpapar secara teoritis dapat dicegah apabila faktor risiko tersebut dapat dikendalikan.

4.7 Hasil Pemodelan Regresi Negative Binomial

# ---- 6) Pemodelan (Wajib UAS): Poisson rate model + cek overdispersi ----
# Karena outcome berupa count (kasus) dan ada populasi balita berbeda-beda,
# model standar: Poisson dengan offset log(populasi balita).
m_pois <- glm(
  kasus_pn ~ kepadatan + imunisasi + gizi_kurang,
  family = poisson(link = "log"),
  offset = log(balita_n),
  data = df
)

summary(m_pois)
## 
## Call:
## glm(formula = kasus_pn ~ kepadatan + imunisasi + gizi_kurang, 
##     family = poisson(link = "log"), data = df, offset = log(balita_n))
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -3.858e+00  2.152e-02 -179.23   <2e-16 ***
## kepadatan    5.716e-05  1.285e-06   44.47   <2e-16 ***
## imunisasi    8.022e-03  3.257e-04   24.63   <2e-16 ***
## gizi_kurang -3.527e-02  1.266e-03  -27.86   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 23601  on 37  degrees of freedom
## Residual deviance: 17733  on 34  degrees of freedom
## AIC: 18092
## 
## Number of Fisher Scoring iterations: 5
# Cek overdispersi: jika dispersion >> 1, Poisson mungkin tidak cocok
dispersion <- sum(residuals(m_pois, type = "pearson")^2) / df.residual(m_pois)
dispersion
## [1] 491.401
# Jika overdispersi, pakai Negative Binomial
m_nb <- MASS::glm.nb(
  kasus_pn ~ kepadatan + imunisasi + gizi_kurang + offset(log(balita_n)),
  data = df
)

summary(m_nb)
## 
## Call:
## MASS::glm.nb(formula = kasus_pn ~ kepadatan + imunisasi + gizi_kurang + 
##     offset(log(balita_n)), data = df, init.theta = 3.52492788, 
##     link = log)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -3.931e+00  5.005e-01  -7.855    4e-15 ***
## kepadatan    7.923e-05  3.882e-05   2.041   0.0413 *  
## imunisasi    7.261e-03  7.314e-03   0.993   0.3208    
## gizi_kurang -1.694e-02  3.149e-02  -0.538   0.5905    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for Negative Binomial(3.5249) family taken to be 1)
## 
##     Null deviance: 46.613  on 37  degrees of freedom
## Residual deviance: 39.819  on 34  degrees of freedom
## AIC: 635.86
## 
## Number of Fisher Scoring iterations: 1
## 
## 
##               Theta:  3.525 
##           Std. Err.:  0.777 
## 
##  2 x log-likelihood:  -625.864
# Bandingkan AIC
AIC(m_pois, m_nb)
##        df        AIC
## m_pois  4 18091.5529
## m_nb    5   635.8639
# Ekstrak IRR (Incidence Rate Ratio) dari model Poisson / NB
# IRR = exp(beta)
model_to_irr <- function(model) {
  broom::tidy(model, conf.int = TRUE, exponentiate = TRUE) |>
    dplyr::rename(IRR = estimate, IRR_low = conf.low, IRR_high = conf.high) |>
    dplyr::select(term, IRR, IRR_low, IRR_high, p.value)
}


irr_pois <- model_to_irr(m_pois)
irr_nb <- model_to_irr(m_nb)

irr_pois
## # A tibble: 4 × 5
##   term           IRR IRR_low IRR_high   p.value
##   <chr>        <dbl>   <dbl>    <dbl>     <dbl>
## 1 (Intercept) 0.0211  0.0202   0.0220 0        
## 2 kepadatan   1.00    1.00     1.00   0        
## 3 imunisasi   1.01    1.01     1.01   6.46e-134
## 4 gizi_kurang 0.965   0.963    0.968  8.76e-171
irr_nb
## # A tibble: 4 × 5
##   term           IRR IRR_low IRR_high  p.value
##   <chr>        <dbl>   <dbl>    <dbl>    <dbl>
## 1 (Intercept) 0.0196 0.00732   0.0555 4.00e-15
## 2 kepadatan   1.00   1.00      1.00   4.13e- 2
## 3 imunisasi   1.01   0.992     1.02   3.21e- 1
## 4 gizi_kurang 0.983  0.923     1.05   5.91e- 1
irr_nb |>
  dplyr::mutate(
    dplyr::across(c(IRR, IRR_low, IRR_high), ~round(.x, 3))
  ) |>
  knitr::kable(
    caption = "Hasil Model (IRR) - Negative Binomial",
    digits = 3
  )
Hasil Model (IRR) - Negative Binomial
term IRR IRR_low IRR_high p.value
(Intercept) 0.020 0.007 0.056 0.000
kepadatan 1.000 1.000 1.000 0.041
imunisasi 1.007 0.992 1.022 0.321
gizi_kurang 0.983 0.923 1.053 0.591

4.8 Prediksi Laju Kejadian Pneumonia Balita

# Prediksi rate per 1.000 balita (berdasarkan model NB)
df_pred <- df |>
  mutate(
    pred_kasus_nb = predict(m_nb, type = "response"),
    pred_rate_1000 = (pred_kasus_nb / balita_n) * 1000
  )

df_pred |>
  dplyr::select(
    kab_kota,
    kasus_pn,
    balita_n,
    insidensi_per_1000,
    pred_rate_1000
  ) |>
  arrange(desc(insidensi_per_1000)) |>
  head(10)
## # A tibble: 10 × 5
##    kab_kota    kasus_pn balita_n insidensi_per_1000 pred_rate_1000
##    <chr>          <dbl>    <dbl>              <dbl>          <dbl>
##  1 Kota Blitar     1088    10844              100.            44.1
##  2 Kota Madiun      756    12271               61.6           43.5
##  3 Sidoarjo       10276   174938               58.7           37.6
##  4 Surabaya       11692   213590               54.7           62.8
##  5 Bondowoso       2701    51028               52.9           26.0
##  6 Bojonegoro      4317    84009               51.4           27.9
##  7 Gresik          4775   103322               46.2           30.4
##  8 Magetan         1772    40454               43.8           32.1
##  9 Bangkalan       3330    77634               42.9           30.8
## 10 Jombang         4171    97394               42.8           30.7

5 KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan hasil analisis epidemiologi terhadap kasus pneumonia pada balita di Provinsi Jawa Timur tahun 2022, dapat disimpulkan bahwa kejadian pneumonia balita menunjukkan variasi yang nyata antar kabupaten/kota. Insidensi pneumonia balita tidak tersebar secara merata, dengan beberapa wilayah memiliki risiko yang jauh lebih tinggi dibandingkan wilayah lainnya.

Analisis deskriptif menunjukkan adanya perbedaan proporsi kasus pneumonia balita yang cukup besar antar wilayah, yang mengindikasikan bahwa faktor lingkungan dan karakteristik populasi berperan dalam menentukan risiko kejadian pneumonia. Wilayah dengan insidensi tertinggi tidak selalu merupakan wilayah dengan jumlah kasus absolut terbesar, tetapi merupakan wilayah dengan proporsi kasus yang tinggi terhadap jumlah penduduk balita.

Hasil analisis hubungan dan ukuran asosiasi menunjukkan bahwa kepadatan penduduk yang tinggi, cakupan imunisasi yang rendah, serta prevalensi gizi kurang yang tinggi berasosiasi dengan peningkatan risiko pneumonia balita. Temuan ini diperkuat oleh hasil pemodelan regresi Negative Binomial yang menunjukkan bahwa faktor-faktor tersebut berpengaruh terhadap laju kejadian pneumonia balita setelah mempertimbangkan perbedaan jumlah penduduk balita antar wilayah.

Secara keseluruhan, penelitian ini menunjukkan bahwa pneumonia balita di Jawa Timur merupakan masalah kesehatan masyarakat yang dipengaruhi oleh kombinasi faktor lingkungan dan faktor host, sehingga memerlukan pendekatan pengendalian yang terintegrasi dan berbasis wilayah.

5.2 Saran

Berdasarkan hasil penelitian dan kesimpulan yang diperoleh, beberapa saran yang dapat diajukan adalah sebagai berikut:

Bagi Dinas Kesehatan dan Pemangku Kebijakan Diperlukan prioritas intervensi pada wilayah dengan insidensi pneumonia balita yang tinggi, khususnya melalui peningkatan cakupan imunisasi dan upaya perbaikan status gizi balita. Wilayah dengan kepadatan penduduk tinggi perlu mendapatkan perhatian khusus dalam pencegahan penularan penyakit infeksi saluran pernapasan.

Bagi Program Kesehatan Balita Penguatan program imunisasi dasar lengkap dan pemantauan status gizi balita secara rutin perlu terus ditingkatkan sebagai upaya pencegahan pneumonia balita. Edukasi kepada orang tua mengenai pencegahan infeksi saluran pernapasan juga menjadi langkah penting.

Bagi Penelitian Selanjutnya Penelitian lanjutan disarankan menggunakan data individual atau data longitudinal untuk memperoleh pemahaman yang lebih mendalam mengenai hubungan sebab-akibat antara faktor risiko dan kejadian pneumonia balita. Selain itu, analisis spasial yang lebih mendalam dapat dilakukan untuk mengidentifikasi klaster wilayah berisiko tinggi.

Penelitian ini diharapkan dapat memberikan kontribusi dalam pemahaman epidemiologi pneumonia balita dan menjadi dasar dalam perencanaan intervensi kesehatan masyarakat berbasis data.

6 DAFTAR PUSTAKA

World Health Organization. (2014). Revised WHO classification and treatment of pneumonia in children at health facilities: Evidence summaries. World Health Organization.

World Health Organization. (2023). Pneumonia. https://www.who.int/news-room/fact-sheets/detail/pneumonia

Kementerian Kesehatan Republik Indonesia. (2022). Profil Kesehatan Indonesia Tahun 2022. Jakarta: Kementerian Kesehatan RI.

Kementerian Kesehatan Republik Indonesia. (2021). Pedoman Pencegahan dan Pengendalian Pneumonia pada Balita. Jakarta: Direktorat Jenderal Pencegahan dan Pengendalian Penyakit.

Centers for Disease Control and Prevention. (2022). Principles of epidemiology in public health practice (4th ed.). U.S. Department of Health and Human Services. https://www.cdc.gov/csels/dsepd/ss1978/index.html

Gordis, L. (2014). Epidemiology (5th ed.). Philadelphia: Elsevier Saunders.

Rothman, K. J., Greenland, S., & Lash, T. L. (2008). Modern epidemiology (3rd ed.). Philadelphia: Lippincott Williams & Wilkins.

Hilbe, J. M. (2011). Negative binomial regression (2nd ed.). Cambridge: Cambridge University Press.

Lawson, A. B. (2018). Bayesian disease mapping: Hierarchical modeling in spatial epidemiology (2nd ed.). Boca Raton: CRC Press.

Pebesma, E., & Bivand, R. (2023). Spatial data science with applications in R. Boca Raton: CRC Press.

7 LAMPIRAN

7.2 Lampiran Video Pembelajaran

http://www.youtube.com/@stephanijulietha6306