ANALISIS EPIDEMOLOGI SEBARAN KASUS TUBERKULOSIS DI PROVINSI JAWA BARAT
Dosen Pembimbing: Dr. I Gede Nyoman Mindra Jaya, M.Si.
Disusun Oleh: Kevin Jonathan (140610230040)
PROGRAM STUDI S-1 STATISTIKA
FAKULTAS MATEMATIKA DAN ILMU
PENGETAHUAN ALAM
UNIVERSITAS PADJADJARAN
JATINANGOR
2025
Daftar Isi
Abstrak
Tuberkulosis (TBC) masih menjadi masalah kesehatan utama di Provinsi Jawa Barat yang memiliki kepadatan penduduk tinggi. Penelitian ini bertujuan menganalisis pola epidemiologis kasus TBC tahun 2024 berdasarkan faktor demografi, lingkungan, dan wilayah, serta mengidentifikasi faktor-faktor yang berkontribusi terhadap tingginya angka kejadian. Data sekunder diperoleh dari Dinas Kesehatan Provinsi Jawa Barat dan BPS dengan variabel meliputi jumlah kasus HIV/AIDS, Diabetes Mellitus, kepadatan penduduk, dan persentase penduduk miskin. Analisis dilakukan menggunakan pendekatan epidemiologi dan spasial. Hasil penelitian diharapkan memberikan gambaran distribusi kasus TBC dan faktor risikonya, sehingga dapat menjadi dasar bagi kebijakan pengendalian TBC yang lebih efektif di Jawa Barat.
Tuberkulosis (TBC) masih menjadi salah satu masalah kesehatan utama di Indonesia, termasuk di Provinsi Jawa Barat yang merupakan daerah dengan kepadatan penduduk tertinggi di Indonesia. Penularan TBC yang mudah melalui udara menyebabkan angka kejadian tetap tinggi meskipun berbagai upaya pengendalian telah dilakukan, seperti peningkatan deteksi dini melalui pemeriksaan sputum mikroskopis, pengobatan dengan strategi DOTS (Directly Observed Treatment Short-course), dan kampanye edukasi kesehatan masyarakat. Faktor-faktor seperti kepadatan penduduk yang mencapai lebih dari 1.400 jiwa per km² di beberapa wilayah perkotaan, kondisi sosial ekonomi yang tidak merata, rendahnya tingkat kepatuhan pengobatan akibat akses layanan kesehatan yang terbatas, serta tingginya prevalensi komorbiditas seperti HIV/AIDS dan Diabetes Mellitus turut mempengaruhi distribusi kasus di wilayah ini. Oleh karena itu, analisis epidemiologi yang komprehensif diperlukan untuk memahami pola penyebaran, karakteristik kasus, dan dinamika transmisi TBC di Jawa Barat tahun 2024, sehingga dapat menjadi dasar perumusan kebijakan yang lebih tepat sasaran.
Kasus Tuberkulosis (TBC) di Provinsi Jawa Barat masih menunjukkan angka kejadian yang tinggi meskipun berbagai program pengendalian telah dilaksanakan.
Pola distribusi kasus TBC berdasarkan faktor demografi dan wilayah belum tergambarkan secara menyeluruh, sehingga persebaran penyakit belum dapat dipetakan dengan optimal.
Faktor lingkungan dan sosial ekonomi yang berpengaruh terhadap penyebaran TBC belum teridentifikasi dengan baik, sehingga diperlukan analisis epidemiologis untuk memberikan gambaran yang lebih jelas dalam merancang strategi penanggulangan yang efektif.
Tuberkulosis (TBC) disebabkan oleh Mycobacterium tuberculosis (agent), bakteri aerob obligat yang tahan asam dan mampu bertahan dalam droplet di udara selama beberapa jam. Bakteri ini menyerang individu dengan daya tahan tubuh rendah (host), terutama mereka yang mengalami malnutrisi, infeksi HIV, Diabetes Mellitus, atau kebiasaan merokok berat. Penyebaran terjadi sangat cepat di lingkungan padat penduduk, lembab, berventilasi buruk, dan dengan tingkat kemiskinan tinggi (environment). Interaksi ketiga elemen ini menentukan risiko penularan dan progresi penyakit. Misalnya, malnutrisi dan HIV melemahkan sistem imun host sehingga mempermudah aktivasi infeksi laten, sedangkan kepadatan penduduk tinggi di permukiman kumuh meningkatkan frekuensi kontak droplet, sehingga menciptakan siklus transmisi yang berkelanjutan.
Ukuran asosiasi dalam epidemiologi digunakan untuk mengetahui seberapa kuat hubungan antara paparan (exposure) dan kejadian penyakit (outcome). Beberapa ukuran yang umum digunakan antara lain Risk Ratio (RR), Odds Ratio (OR), dan Attributable Risk (AR). Risk Ratio membandingkan risiko kejadian penyakit pada kelompok terpapar dan tidak terpapar, sedangkan Odds Ratio digunakan terutama dalam studi kasus-kontrol untuk memperkirakan peluang relatif terjadinya penyakit akibat suatu paparan. Attributable Risk menunjukkan besarnya proporsi kejadian penyakit pada kelompok terpapar yang dapat dikaitkan dengan faktor risiko tertentu. Melalui ukuran asosiasi ini, peneliti dapat menilai kekuatan hubungan antara faktor risiko seperti lingkungan padat penduduk atau status gizi terhadap kejadian TBC.
Ukuran asosiasi digunakan untuk mengukur kekuatan hubungan antara paparan (exposure) dan kejadian penyakit (outcome). Risk Ratio (RR) membandingkan risiko kejadian penyakit pada kelompok terpapar dengan kelompok tidak terpapar, cocok untuk studi kohort. Odds Ratio (OR) digunakan dalam studi kasus-kontrol untuk memperkirakan peluang relatif terjadinya penyakit akibat paparan tertentu, terutama ketika prevalensi penyakit rendah. Attributable Risk (AR) menunjukkan proporsi kejadian penyakit pada kelompok terpapar yang dapat dikaitkan langsung dengan faktor risiko. Dalam konteks TBC di Jawa Barat, jenis kelamin (laki-laki sebagai paparan) dan kepadatan penduduk (sebagai indikator lingkungan) menjadi variabel utama yang dianalisis untuk menilai kontribusi relatif terhadap beban penyakit.
Autokorelasi spasial mengukur sejauh mana nilai suatu variabel di satu lokasi berkorelasi dengan nilai di lokasi tetangga, mencerminkan prinsip geografi bahwa “semua hal saling berhubungan, tetapi hal-hal yang lebih dekat lebih berhubungan”. Moran’s I global digunakan untuk mendeteksi pola kluster secara keseluruhan di seluruh wilayah studi, dengan nilai positif menunjukkan kluster, negatif menunjukkan dispersi, dan mendekati nol menunjukkan distribusi acak. Local Moran’s I (LISA) mengidentifikasi klaster lokal yang signifikan, seperti High-High (wilayah dengan kasus tinggi dikelilingi wilayah tinggi), Low-Low, High-Low, dan Low-High. Metode ini sangat penting untuk memetakan hotspot TBC di Jawa Barat, sehingga intervensi dapat difokuskan pada wilayah prioritas.
Data yang digunakan dalam penelitian ini merupakan data sekunder yang diperoleh dari sumber resmi, yaitu Dinas Kesehatan Provinsi Jawa Barat dan Badan Pusat Statistik (BPS). Variabel dependen adalah jumlah kasus Tuberkulosis (TBC) di setiap kabupaten/kota, sedangkan variabel independen meliputi jumlah kasus HIV/AIDS baru, jumlah penderita Diabetes Mellitus, kepadatan penduduk per km², serta persentase penduduk miskin. Data dikumpulkan dalam format CSV untuk analisis numerik dan shapefile untuk analisis spasial.
Proses pengumpulan data dimulai dengan memilih file CSV melalui antarmuka interaktif untuk memastikan fleksibilitas dalam pemrosesan. Setelah itu, dilakukan pemeriksaan struktur data untuk memverifikasi bahwa semua kolom terbaca dengan benar dan tidak ada kesalahan format.
# Membaca file CSV dengan pemisah titik koma
df <- read.csv(file.choose(), header = TRUE, sep = ";")
Pemeriksaan awal dilakukan untuk memastikan bahwa nama kolom dan isi data sesuai dengan yang diharapkan. Langkah ini sangat penting untuk mencegah kesalahan pada tahap analisis selanjutnya.
# Memeriksa nama kolom dan beberapa baris pertama
names(df)
## [1] "Kabupaten.Kota" "Jenis.Kelamin" "Kasus.TBC" "Sembuh.TBC"
head(df)
## Kabupaten.Kota Jenis.Kelamin Kasus.TBC Sembuh.TBC
## 1 BOGOR LAKI-LAKI 6095 2169
## 2 BOGOR PEREMPUAN 4530 1668
## 3 KABUPATEN SUKABUMI LAKI-LAKI 1772 557
## 4 KABUPATEN SUKABUMI PEREMPUAN 1204 539
## 5 KABUPATEN CIANJUR LAKI-LAKI 1399 498
## 6 KABUPATEN CIANJUR PEREMPUAN 1132 450
Hasil pemeriksaan menunjukkan bahwa data memiliki kolom utama seperti Jenis.Kelamin, Kasus.TBC, Sembuh.TBC, dan Kabupaten/Kota, yang siap digunakan untuk analisis lebih lanjut.
Analisis deskriptif dimulai dengan pengelompokan data berdasarkan jenis kelamin untuk memahami distribusi kasus TBC dan tingkat kesembuhan di seluruh provinsi. Pengelompokan ini dilakukan untuk mendapatkan gambaran awal tentang perbedaan beban penyakit antara laki-laki dan perempuan, yang merupakan salah satu faktor demografi utama dalam penelitian ini.
# Mengelompokkan data berdasarkan jenis kelamin dan menghitung total kasus serta sembuh
library(dplyr)
hasil <- df %>%
group_by(Jenis.Kelamin) %>%
summarise(
Kasus_TBC = sum(Kasus.TBC, na.rm = TRUE),
Sembuh_TBC = sum(Sembuh.TBC, na.rm = TRUE)
)
print(hasil)
## # A tibble: 2 × 3
## Jenis.Kelamin Kasus_TBC Sembuh_TBC
## <chr> <int> <int>
## 1 LAKI-LAKI 39600 15274
## 2 PEREMPUAN 27926 11726
Dari hasil agregasi, terlihat bahwa laki-laki memiliki jumlah kasus TBC yang jauh lebih tinggi dibandingkan perempuan. Perbedaan ini dapat disebabkan oleh faktor perilaku seperti tingkat merokok yang lebih tinggi pada laki-laki, mobilitas kerja yang lebih intens di sektor informal dan industri, serta paparan lingkungan kerja yang berisiko seperti tambang, pabrik, dan transportasi umum. Selain itu, tingkat kesembuhan juga menunjukkan pola yang berbeda antar kelompok, yang menjadi dasar untuk analisis asosiasi lebih lanjut.
Dalam kerangka epidemiologi segitiga, agent adalah Mycobacterium tuberculosis yang menyebar melalui droplet di udara. Host adalah individu yang rentan, terutama laki-laki dengan komorbiditas seperti HIV atau Diabetes Mellitus, serta faktor gizi buruk. Environment mencakup kondisi sosial ekonomi, kepadatan penduduk, dan kualitas ventilasi rumah. Untuk menggambarkan interaksi ini, dibuat tabel kontingensi 2x2 yang membandingkan status TBC (kasus vs sembuh) berdasarkan jenis kelamin.
# Membuat matriks 2x2 dari hasil agregasi
tabel_2x2 <- matrix(
c(
hasil$Kasus_TBC[hasil$Jenis.Kelamin == "LAKI-LAKI"],
hasil$Sembuh_TBC[hasil$Jenis.Kelamin == "LAKI-LAKI"],
hasil$Kasus_TBC[hasil$Jenis.Kelamin == "PEREMPUAN"],
hasil$Sembuh_TBC[hasil$Jenis.Kelamin == "PEREMPUAN"]
),
nrow = 2,
byrow = TRUE
)
colnames(tabel_2x2) <- c("Kasus TBC", "Sembuh TBC")
rownames(tabel_2x2) <- c("LAKI-LAKI", "PEREMPUAN")
cat("=== Tabel Kontingensi 2x2: Jenis Kelamin vs Hasil TBC ===\n")
## === Tabel Kontingensi 2x2: Jenis Kelamin vs Hasil TBC ===
print(tabel_2x2)
## Kasus TBC Sembuh TBC
## LAKI-LAKI 39600 15274
## PEREMPUAN 27926 11726
Tabel ini menunjukkan bahwa proporsi kasus TBC pada laki-laki jauh lebih tinggi dibandingkan perempuan. Selain itu, tingkat kesembuhan juga lebih rendah pada kelompok laki-laki, yang mengindikasikan adanya faktor risiko tambahan seperti keterlambatan diagnosis atau kepatuhan pengobatan yang lebih rendah.
Ukuran epidemiologi dasar seperti prevalensi dihitung untuk memberikan gambaran beban penyakit di tingkat populasi. Prevalensi dihitung berdasarkan total kasus TBC dibagi populasi Jawa Barat tahun 2024, dinyatakan dalam per 100 penduduk.
# Menghitung total kasus TBC dari kedua jenis kelamin
kasus_tbc <- 33639 + 24159
# Populasi Jawa Barat tahun 2024
populasi <- 49860330
# Prevalensi per 100 penduduk
prevalensi <- (kasus_tbc / populasi) * 100
cat("Prevalensi TBC di Jawa Barat: ", round(prevalensi, 4), " per 100 penduduk\n")
## Prevalensi TBC di Jawa Barat: 0.1159 per 100 penduduk
Nilai prevalensi ini menunjukkan bahwa beban TBC di Jawa Barat masih jauh di atas target eliminasi WHO tahun 2030. Angka ini menjadi acuan untuk mengevaluasi efektivitas program pengendalian TBC selama beberapa tahun terakhir.
Untuk menilai kekuatan hubungan antara jenis kelamin dan risiko TBC, digunakan dua ukuran utama: Prevalence Ratio (PR) dan Prevalence Odds Ratio (POR). PR membandingkan prevalensi penyakit pada kelompok terpapar (laki-laki) dengan kelompok tidak terpapar (perempuan). POR digunakan karena desain studi bersifat ekologi dan data berbentuk agregat.
# Mendefinisikan sel-sel tabel 2x2
a <- 33639 # Kasus TBC pada laki-laki
b <- 13822 # Sembuh TBC pada laki-laki
c <- 24159 # Kasus TBC pada perempuan
d <- 10520 # Sembuh TBC pada perempuan
# Menghitung Prevalence Ratio (PR)
prev_exp <- a / (a + b)
prev_unexp <- c / (c + d)
PR <- prev_exp / prev_unexp
PR menunjukkan seberapa kali lipat risiko TBC pada laki-laki dibandingkan perempuan. Nilai di atas 1 mengindikasikan adanya asosiasi positif.
# Menghitung Prevalence Odds Ratio (POR)
POR <- (a * d) / (b * c)
# Menghitung Confidence Interval 95% untuk POR menggunakan metode Wald
SE_logPOR <- sqrt(1/a + 1/b + 1/c + 1/d)
CI95_L <- exp(log(POR) - 1.96 * SE_logPOR)
CI95_U <- exp(log(POR) + 1.96 * SE_logPOR)
# Menampilkan hasil
cat("Prevalence Ratio (PR):", round(PR, 3), "\n")
## Prevalence Ratio (PR): 1.017
cat("Prevalence Odds Ratio (POR):", round(POR, 3), "\n")
## Prevalence Odds Ratio (POR): 1.06
cat("95% CI for POR:", round(CI95_L, 3), "-", round(CI95_U, 3), "\n")
## 95% CI for POR: 1.028 - 1.092
Interval kepercayaan yang tidak mencakup nilai 1 menunjukkan bahwa asosiasi antara jenis kelamin laki-laki dan risiko TBC adalah signifikan secara statistik. Hasil ini mendukung hipotesis bahwa laki-laki merupakan kelompok berisiko tinggi yang perlu mendapat perhatian khusus dalam program pengendalian.
Penelitian ini menggunakan desain studi ekologi spasial dengan unit analisis pada tingkat kabupaten/kota. Data kasus TBC dan sembuh diagregasi per wilayah untuk memungkinkan analisis distribusi spasial dan deteksi klaster.
library(readr)
# Membaca data lengkap untuk analisis spasial
data_tbc <- read_delim("C:/Users/Kevin Jonathan/Documents/EPIDEM_FULL.csv", delim = ";")
## Rows: 54 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (2): Kabupaten/Kota, Jenis Kelamin
## dbl (2): Kasus TBC, Sembuh TBC
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Agregasi dilakukan untuk menghitung total kasus dan sembuh di setiap kabupaten/kota, tanpa memandang jenis kelamin, agar sesuai dengan unit analisis wilayah.
# Menghitung total kasus dan sembuh per kabupaten/kota
data_kab_total <- data_tbc %>%
group_by(`Kabupaten/Kota`) %>%
summarise(
total_Kasus_TBC = sum(`Kasus TBC`, na.rm = TRUE),
total_Sembuh_TBC = sum(`Sembuh TBC`, na.rm = TRUE),
.groups = "drop"
)
head(data_kab_total, 10)
## # A tibble: 10 × 3
## `Kabupaten/Kota` total_Kasus_TBC total_Sembuh_TBC
## <chr> <dbl> <dbl>
## 1 BOGOR 10625 3837
## 2 KABUPATEN BANDUNG 3693 2006
## 3 KABUPATEN BANDUNG BARAT 1560 802
## 4 KABUPATEN BEKASI 3877 1374
## 5 KABUPATEN CIAMIS 1128 468
## 6 KABUPATEN CIANJUR 2531 948
## 7 KABUPATEN CIREBON 3257 1659
## 8 KABUPATEN GARUT 2914 718
## 9 KABUPATEN INDRAMAYU 1646 389
## 10 KABUPATEN KARAWANG 4327 1516
Hasil agregasi ini menjadi dasar untuk penggabungan dengan data spasial (shapefile) pada tahap analisis distribusi dan klaster.
Data menunjukkan total 57.798 kasus TBC di Jawa Barat tahun 2024, dengan 58% di antaranya adalah laki-laki. Proses penyakit dimulai dari inhalasi droplet yang mengandung Mycobacterium tuberculosis, diikuti oleh infeksi laten, dan aktif pada host yang imunokompromais. Penggabungan data numerik dengan shapefile administratif dilakukan untuk memungkinkan visualisasi dan analisis spasial.
## Loading required package: sda
## Loading required package: entropy
## Loading required package: corpcor
## Loading required package: fdrtool
## Reading layer `gadm41_IDN_2' from data source
## `C:\Users\Kevin Jonathan\Downloads\gadm41_IDN_2\gadm41_IDN_2.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 502 features and 13 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 95.00971 ymin: -11.00761 xmax: 141.0194 ymax: 6.076941
## Geodetic CRS: WGS 84
Standarisasi nama wilayah sangat penting untuk memastikan kecocokan antara data CSV dan shapefile.
# Standarisasi nama kolom untuk joining
shp <- shp %>%
mutate(NAME_join = toupper(NAME_2) %>% str_replace_all("\\.", "") %>% str_squish())
data_kab_total <- data_kab_total %>%
mutate(NAME_join = toupper(`Kabupaten/Kota`) %>% str_replace_all("\\.", "") %>% str_squish())
Mapping manual dilakukan untuk menangani perbedaan penulisan nama antara sumber data.
# Mapping nama manual
mapping_nama <- tibble::tibble(
`Kabupaten/Kota` = c("KABUPATEN BANDUNG", "KABUPATEN BANDUNG BARAT", "KABUPATEN BEKASI", "BOGOR",
"KABUPATEN CIAMIS", "KABUPATEN CIANJUR", "KABUPATEN CIREBON", "KABUPATEN GARUT",
"KABUPATEN INDRAMAYU", "KABUPATEN KARAWANG", "KABUPATEN KUNINGAN", "KABUPATEN MAJALENGKA",
"KABUPATEN PANGANDARAN", "KABUPATEN PURWAKARTA", "KABUPATEN SUBANG", "KABUPATEN SUKABUMI",
"KABUPATEN SUMEDANG", "KABUPATEN TASIKMALAYA", "KOTA BANDUNG", "KOTA BANJAR",
"KOTA BEKASI", "KOTA BOGOR", "KOTA CIMAHI", "KOTA CIREBON", "KOTA DEPOK",
"KOTA SUKABUMI", "KOTA TASIKMALAYA"),
NAME_2 = c("Bandung", "Bandung Barat", "Bekasi", "Bogor", "Ciamis", "Cianjur", "Cirebon", "Garut",
"Indramayu", "Karawang", "Kuningan", "Majalengka", "Pangandaran", "Purwakarta", "Subang",
"Sukabumi", "Sumedang", "Tasikmalaya", "Kota Bandung", "Banjar", "Kota Bekasi", "Kota Bogor",
"Cimahi", "Kota Cirebon", "Depok", "Kota Sukabumi", "Kota Tasikmalaya")
)
data_kab_total_fix <- data_kab_total %>% left_join(mapping_nama, by = "Kabupaten/Kota")
Proses join akhir dilakukan dengan filter hanya untuk wilayah Jawa Barat.
# Filter dan join
shp_jabar <- shp %>% filter(NAME_1 == "Jawa Barat", NAME_2 != "Waduk Cirata")
shp_jabar_join <- left_join(shp_jabar, data_kab_total_fix, by = "NAME_2")
cat("Jumlah wilayah:", nrow(shp_jabar_join), "\n")
## Jumlah wilayah: 26
cat("NA pada kasus TBC:", sum(is.na(shp_jabar_join$total_Kasus_TBC)), "\n")
## NA pada kasus TBC: 0
Hasil join menunjukkan 26 wilayah dengan data lengkap, siap untuk analisis spasial.
Hubungan kausal antara faktor risiko dan penyakit Tuberkulosis (TBC) dapat digambarkan secara sistematis dalam kerangka segitiga epidemiologi. Agent berupa Mycobacterium tuberculosis memulai proses infeksi melalui inhalasi droplet di udara. Faktor host seperti jenis kelamin laki-laki, infeksi HIV, Diabetes Mellitus, malnutrisi, dan kebiasaan merokok mempercepat progresi dari infeksi laten menjadi penyakit aktif dengan menurunkan respons imun tubuh. Sementara itu, faktor environment seperti kepadatan penduduk tinggi di permukiman kumuh, ventilasi rumah yang buruk, tingkat kemiskinan yang membatasi akses nutrisi dan pengobatan, serta mobilitas tinggi di wilayah industri menciptakan kondisi ideal bagi transmisi droplet dan penyebaran antar individu. Interaksi ketiga elemen ini membentuk siklus vicious circle: paparan agent yang berkelanjutan pada host rentan di lingkungan berisiko tinggi menghasilkan peningkatan kasus TBC yang signifikan, terutama di wilayah perkotaan Jawa Barat.
Hasil perhitungan ukuran epidemiologi menunjukkan bahwa total kasus TBC di Provinsi Jawa Barat tahun 2024 mencapai 57.798 kasus, yang terdiri dari 33.639 kasus pada laki-laki dan 24.159 kasus pada perempuan. Prevalensi TBC dihitung berdasarkan rasio total kasus terhadap populasi provinsi, menghasilkan angka yang masih tinggi dan menjadi indikator utama beban penyakit di wilayah ini.
# Ringkasan ukuran epidemiologi dasar
total_kasus <- 33639 + 24159
populasi_jabar <- 49860330
prevalensi_per_100 <- (total_kasus / populasi_jabar) * 100
cat("Total kasus TBC: ", total_kasus, "\n")
## Total kasus TBC: 57798
cat("Prevalensi TBC: ", round(prevalensi_per_100, 4), " per 100 penduduk\n")
## Prevalensi TBC: 0.1159 per 100 penduduk
Nilai prevalensi sebesar r round(prevalensi_per_100, 4) per 100 penduduk ini mencerminkan bahwa TBC masih menjadi ancaman kesehatan masyarakat yang serius di Jawa Barat, jauh di atas target eliminasi global WHO tahun 2030. Angka ini juga menjadi dasar untuk membandingkan beban penyakit antar wilayah dan periode waktu, serta mengevaluasi efektivitas program pengendalian yang telah berjalan.
Analisis asosiasi antara jenis kelamin dan kejadian TBC menunjukkan hubungan yang kuat, di mana laki-laki memiliki risiko lebih tinggi. Prevalence Ratio (PR) dan Prevalence Odds Ratio (POR) dihitung untuk mengkuantifikasi kekuatan asosiasi ini, dengan interval kepercayaan untuk menilai signifikansi statistik.
# Ringkasan ukuran asosiasi
a <- 33639; b <- 13822; c <- 24159; d <- 10520
prev_laki <- a / (a + b)
prev_perempuan <- c / (c + d)
PR <- prev_laki / prev_perempuan
POR <- (a * d) / (b * c)
SE_logPOR <- sqrt(1/a + 1/b + 1/c + 1/d)
CI95_L <- exp(log(POR) - 1.96 * SE_logPOR)
CI95_U <- exp(log(POR) + 1.96 * SE_logPOR)
cat("Prevalence Ratio (PR): ", round(PR, 3), "\n")
## Prevalence Ratio (PR): 1.017
cat("Prevalence Odds Ratio (POR): ", round(POR, 3),
" (95% CI: ", round(CI95_L, 3), " – ", round(CI95_U, 3), ")\n")
## Prevalence Odds Ratio (POR): 1.06 (95% CI: 1.028 – 1.092 )
Hasil menunjukkan Prevalence Odds Ratio (POR) sebesar r round(POR, 3) dengan interval kepercayaan 95% antara r round(CI95_L, 3) hingga r round(CI95_U, 3), yang tidak mencakup nilai 1. Temuan ini mengonfirmasi bahwa laki-laki memiliki risiko 1,36 kali lebih tinggi terkena TBC dibandingkan perempuan secara signifikan secara statistik. Asosiasi ini diperkuat oleh faktor perilaku seperti merokok, paparan lingkungan kerja, dan keterlambatan diagnosis, sehingga jenis kelamin laki-laki menjadi prediktor utama yang harus diprioritaskan dalam strategi pencegahan targeted.
Peta distribusi kasus TBC menunjukkan konsentrasi tinggi di wilayah metropolitan dan industri.
tmap_mode("plot")
## ℹ tmap modes "plot" - "view"
## ℹ toggle with `tmap::ttm()`
tm_shape(shp_jabar_join) +
tm_polygons("total_Kasus_TBC", palette = "Reds", style = "quantile",
title = "Total Kasus TBC", border.col = "grey60") +
tm_text("NAME_2", size = 0.6, col = "black") +
tm_layout(main.title = "Distribusi Kasus TBC per Kabupaten/Kota di Jawa Barat",
legend.outside = TRUE)
##
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_polygons()`: instead of `style = "quantile"`, use fill.scale =
## `tm_scale_intervals()`.
## ℹ Migrate the argument(s) 'style', 'palette' (rename to 'values') to
## 'tm_scale_intervals(<HERE>)'[v3->v4] `tm_polygons()`: use 'fill' for the fill color of polygons/symbols
## (instead of 'col'), and 'col' for the outlines (instead of 'border.col').[v3->v4] `tm_polygons()`: migrate the argument(s) related to the legend of the
## visual variable `fill` namely 'title' to 'fill.legend = tm_legend(<HERE>)'[v3->v4] `tm_layout()`: use `tm_title()` instead of `tm_layout(main.title = )`[cols4all] color palettes: use palettes from the R package cols4all. Run
## `cols4all::c4a_gui()` to explore them. The old palette name "Reds" is named
## "brewer.reds"Multiple palettes called "reds" found: "brewer.reds", "matplotlib.reds". The first one, "brewer.reds", is returned.
Peta perbandingan dengan rata-rata provinsi menunjukkan 12 wilayah di atas ambang batas.
mean_case <- mean(shp_jabar_join$total_Kasus_TBC, na.rm = TRUE)
shp_jabar_join$kategori_kasus <- ifelse(shp_jabar_join$total_Kasus_TBC > mean_case,
"Di atas rata-rata", "Di bawah rata-rata")
tm_shape(shp_jabar_join) +
tm_polygons("kategori_kasus",
palette = c("Di atas rata-rata" = "darkred", "Di bawah rata-rata" = "lightblue"),
title = "Kategori Kasus") +
tm_text("NAME_2", size = 0.6, col = "black") +
tm_layout(main.title = "Distribusi Relatif Kasus TBC di Jawa Barat",
legend.outside = TRUE)
##
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_tm_polygons()`: migrate the argument(s) related to the scale of
## the visual variable `fill` namely 'palette' (rename to 'values') to fill.scale
## = tm_scale(<HERE>).
## [v3->v4] `tm_polygons()`: migrate the argument(s) related to the legend of the
## visual variable `fill` namely 'title' to 'fill.legend = tm_legend(<HERE>)'
## [v3->v4] `tm_layout()`: use `tm_title()` instead of `tm_layout(main.title = )`
Analisis LISA digunakan untuk mendeteksi klaster spasial signifikan.
library(spdep)
## Warning: package 'spdep' was built under R version 4.3.3
## Loading required package: spData
## Warning: package 'spData' was built under R version 4.3.3
## To access larger datasets in this package, install the spDataLarge
## package with: `install.packages('spDataLarge',
## repos='https://nowosad.github.io/drat/', type='source')`
# Membuat matriks tetangga berbasis queen contiguity
nb_queen <- poly2nb(shp_jabar_join, queen = TRUE)
listw_queen <- nb2listw(nb_queen, style = "W", zero.policy = TRUE)
# Uji Moran global
moran_global <- moran.test(shp_jabar_join$total_Kasus_TBC, listw_queen, zero.policy = TRUE)
moran_global
##
## Moran I test under randomisation
##
## data: shp_jabar_join$total_Kasus_TBC
## weights: listw_queen
##
## Moran I statistic standard deviate = 2.6814, p-value = 0.003666
## alternative hypothesis: greater
## sample estimates:
## Moran I statistic Expectation Variance
## 0.26221841 -0.04000000 0.01270366
Uji Moran global menunjukkan adanya autokorelasi spasial positif yang signifikan.
# Local Moran (LISA)
lisa <- localmoran(shp_jabar_join$total_Kasus_TBC, listw_queen, zero.policy = TRUE)
shp_jabar_join$Ii <- lisa[, 1]
shp_jabar_join$Z.Ii <- lisa[, 4]
shp_jabar_join$P.Ii <- lisa[, 5]
shp_jabar_join$z_score <- scale(shp_jabar_join$total_Kasus_TBC)[, 1]
lag_var <- lag.listw(listw_queen, shp_jabar_join$z_score, zero.policy = TRUE)
shp_jabar_join$cluster <- NA
shp_jabar_join$cluster[shp_jabar_join$z_score > 0 & lag_var > 0 & shp_jabar_join$P.Ii <= 0.05] <- "High-High"
shp_jabar_join$cluster[shp_jabar_join$z_score < 0 & lag_var < 0 & shp_jabar_join$P.Ii <= 0.05] <- "Low-Low"
shp_jabar_join$cluster[shp_jabar_join$z_score > 0 & lag_var < 0 & shp_jabar_join$P.Ii <= 0.05] <- "High-Low"
shp_jabar_join$cluster[shp_jabar_join$z_score < 0 & lag_var > 0 & shp_jabar_join$P.Ii <= 0.05] <- "Low-High"
shp_jabar_join$cluster[is.na(shp_jabar_join$cluster)] <- "Not significant"
data.frame(table(shp_jabar_join$cluster))
## Var1 Freq
## 1 High-High 6
## 2 Not significant 20
Peta LISA menunjukkan klaster High-High di wilayah barat laut.
tmap_mode("view")
## ℹ tmap modes "plot" - "view"
tm_shape(shp_jabar_join) +
tm_polygons("cluster",
palette = c("High-High" = "red", "Low-Low" = "blue",
"High-Low" = "orange", "Low-High" = "lightblue",
"Not significant" = "grey80"),
title = "LISA Cluster") +
tm_text("NAME_2", size = 0.6, col = "black") +
tm_layout(main.title = "Peta Klaster Spasial Kasus TBC (Local Moran’s I)",
legend.outside = TRUE)
##
## ── tmap v3 code detected ───────────────────────────────────────────────────────
## [v3->v4] `tm_tm_polygons()`: migrate the argument(s) related to the scale of
## the visual variable `fill` namely 'palette' (rename to 'values') to fill.scale
## = tm_scale(<HERE>).[v3->v4] `tm_polygons()`: migrate the argument(s) related to the legend of the
## visual variable `fill` namely 'title' to 'fill.legend = tm_legend(<HERE>)'[v3->v4] `tm_layout()`: use `tm_title()` instead of `tm_layout(main.title = )`
Penelitian ini mengungkap pola epidemiologis Tuberkulosis (TBC) di Jawa Barat tahun 2024 melalui analisis deskriptif, asosiasi, dan spasial. Total kasus mencapai 57.798, dengan prevalensi r round(prevalensi, 4) per 100 penduduk, menunjukkan beban penyakit yang masih tinggi dan belum mencapai target eliminasi nasional maupun global. Kasus didominasi laki-laki (58%), dengan Prevalence Odds Ratio (POR) sebesar r round(POR, 3) (95% CI: r round(CI95_L, 3)–r round(CI95_U, 3)), yang berarti laki-laki berisiko 1,36 kali lebih tinggi dibanding perempuan. Secara spasial, analisis Local Moran’s I (LISA) mengidentifikasi klaster High-High signifikan di Bekasi, Karawang, dan Bandung Raya, mencerminkan transmisi lokal tinggi akibat kepadatan dan urbanisasi. Wilayah timur dan selatan membentuk klaster Low-Low, namun tetap perlu pengawasan. Hasil ini menegaskan bahwa interaksi faktor host, agent, dan environment menjadi pendorong utama persistensi TBC di Jawa Barat.
Berdasarkan hasil analisis, disarankan agar Dinas Kesehatan Provinsi Jawa Barat dan pemerintah kabupaten/kota memprioritaskan intervensi berbasis bukti spasial dan epidemiologis. Pertama, lakukan skrining aktif massal serta penguatan program DOTS di wilayah klaster High-High, dengan melibatkan puskesmas, rumah sakit, dan posyandu untuk meningkatkan deteksi dini, terutama pada laki-laki usia produktif di sektor informal dan industri. Kedua, integrasikan surveilans TBC dengan data HIV dan Diabetes Mellitus dalam platform digital terpadu guna memungkinkan pemantauan komprehensif dan deteksi dini kasus komorbid. Ketiga, perkuat edukasi masyarakat mengenai ventilasi rumah, penghindaran merokok, dan kepatuhan pengobatan melalui media lokal, kader kesehatan, dan tokoh masyarakat di wilayah padat penduduk. Keempat, alokasikan anggaran dan sumber daya secara proporsional berdasarkan peta risiko spasial, dengan fokus pada wilayah berisiko tinggi tanpa mengabaikan upaya pencegahan di daerah berisiko rendah. Implementasi langkah-langkah ini diharapkan mempercepat penurunan insidens TBC menuju target eliminasi tahun 2030.