1. Pendahuluan

Tuberkulosis (TB) merupakan penyakit menular kronis yang disebabkan oleh Mycobacterium tuberculosis dan masih menjadi salah satu masalah kesehatan masyarakat paling serius di Indonesia. Berdasarkan data dari Global Tuberculosis Report (World Health Organization [WHO], 2024), Indonesia menempati peringkat kedua setelah India dalam jumlah kasus TB global, dengan estimasi lebih dari 1,06 juta kasus baru dan 125.000 kematian akibat TB setiap tahun. Angka tersebut mencerminkan tingginya beban epidemiologis yang masih dihadapi, sekaligus menjadi tantangan besar dalam upaya eliminasi TB pada tahun 2030. Selain itu, laporan WHO (2024) menunjukkan bahwa Indonesia mengalami underreporting kasus TB sebesar 15,6% berdasarkan hasil Studi Inventori Nasional TB Indonesia 2023–2024, yang menunjukkan ketidaksesuaian antara jumlah kasus TB yang diperkirakan dan jumlah kasus yang tercatat secara resmi. Ketimpangan tersebut berdampak langsung terhadap efektivitas strategi penanggulangan TB nasional, karena program pengendalian penyakit tidak dapat dirancang secara optimal tanpa estimasi kasus yang akurat.

Ketidakpastian dalam fluktuasi jumlah kasus TB baru menimbulkan kebutuhan mendesak untuk membangun sistem peramalan yang akurat. Model deret waktu atau time series merupakan salah satu pendekatan statistik yang efektif untuk memprediksi kejadian penyakit menular berdasarkan data historis. Model Auto Regressive Integrated Moving Average (ARIMA) dikenal luas karena kemampuannya menangkap pola, prediksi jangka pendek, serta autokorelasi dalam data deret waktu yang stabil (Ramadhan, 2025). Model ARIMA telah digunakan dalam berbagai penelitian peramalan penyakit menular, termasuk tuberkulosis, dan terbukti memberikan hasil prediksi yang stabil dan dapat diandalkan. Penelitian yang dilakukan oleh Sumanto et al. (2024) dalam konteks peramalan kunjungan pasien TB menunjukkan bahwa model ARIMA memberikan estimasi yang cukup akurat dan bermanfaat untuk mendukung kesiapan fasilitas layanan kesehatan.

Penerapan model ARIMA untuk memprediksi jumlah kasus TB baru tidak hanya memberikan keuntungan dalam hal akurasi statistik, tetapi juga membantu pemangku kebijakan dalam merancang intervensi strategis berbasis bukti. Peramalan yang tepat dapat menjadi dasar bagi alokasi sumber daya yang efisien, seperti ketersediaan tempat tidur rumah sakit, tenaga medis, logistik obat anti-TB, dan kampanye deteksi dini. Oleh karena itu, penelitian ini diarahkan untuk mengembangkan dan mengevaluasi model ARIMA dalam memprediksi jumlah kasus TB baru di Indonesia berdasarkan data historis. Tujuan dari penelitian ini adalah (1) membangun model ARIMA optimal yang mampu memproyeksikan tren kasus TB baru secara akurat, (2) menguji keandalan model tersebut dalam skenario prediksi jangka pendek, serta (3) menyediakan dasar ilmiah bagi perencanaan kebijakan kesehatan masyarakat yang lebih efektif dan adaptif terhadap dinamika epidemi TB di Indonesia.

2. Deskripsi dan Sumber Data

Data yang digunakan merupakan data sekunder jumlah kasus Tuberkulosis (TB) baru di Kota Semarang yang dicatat secara bulanan selama periode Januari 2019 hingga November 2025, dengan total 83 observasi. Data awal disajikan berdasarkan jenis kelamin (laki-laki dan perempuan), kemudian diagregasikan menjadi total kasus TB baru per bulan untuk keperluan analisis deret waktu. Variabel utama yang dianalisis adalah jumlah total kasus TB bulanan yang merepresentasikan dinamika perkembangan kasus TB dari waktu ke waktu.

Data diperoleh dari dashboard kesehatan Dinas Kesehatan Kota Semarang melalui laman resmi LEKMINKES pada laman https://lekminkes.dinkes.semarangkota.go.id/. Sebagai data sekunder dari sumber pemerintah, data ini memiliki tingkat keandalan dan konsistensi pencatatan yang baik. Dengan frekuensi bulanan dan rentang waktu yang cukup panjang, data dinilai sesuai untuk analisis deret waktu, khususnya dalam mengkaji pola tren, kestasioneran, dan ketergantungan antarperiode sebagai dasar pemodelan ARIMA

3. Exploratory Data Analysis (EDA)

3.1 Persiapan Data

#Package
library(readxl)    
library(forecast)   
library(tseries)    
library(zoo)        
library(lmtest)     
library(tidyverse)
library(lubridate)
library(tibble)
library(ggplot2)
#Import Data
setwd("C:/Users/user/Downloads/ARIMA")
Data <- read_excel("C:/Users/user/Downloads/ARIMA/TB BARU.xlsx")
# cek apakah ada atau tidaknya NA
  colSums(is.na(Data))
##  Tahun Jumlah 
##      0      0
# Perbaiki Tipe Data
Data$Tahun <- as.yearmon(Data$Tahun, "%Y-%m")

# Filter Periode
Data <- Data[Data$Tahun >= as.yearmon("2019-01") &
               Data$Tahun <= as.yearmon("2025-11"), ]

# Mengubah ke Time Series Bulanan
Data_ts <- ts(Data$Jumlah,
              start = c(2019, 1),
              frequency = 12)

3.2 Statistik Deskriptif

# Statistik Deskriptif
summary(Data_ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    54.0   202.0   275.0   277.3   365.0   590.0

Jumlah kasus TB baru bervariasi cukup besar, dari 54 hingga 590 kasus. Nilai median (275) yang hampir sama dengan mean (277,3) mengindikasikan sebaran data relatif simetris, sementara rentang antar kuartil (202–365) menunjukkan sebagian besar kasus berada pada tingkat menengah hingga tinggi

3.3 Visualisasi Time Series

# Plot time series 
ts.plot(
  Data_ts,
  col  = "dodgerblue2",
  ylab = "Jumlah Kasus TB Baru",
  xlab = "Periode",
  lwd  = 2
)
title(
  main = "Plot Time Series Kasus TB Baru",
  cex.main = 0.9
)
points(
  Data_ts,
  pch = 16,       
  col = "red"
)

Plot time series berfluktuasi cukup tinggi dengan penurunan tajam sekitar 2020–2021 dan peningkatan kembali pada tahun-tahun berikutnya. Pola ini menandakan adanya dinamika waktu yang kuat dan data belum stasioner sehingga perlu distasionerkan.

4. Metode Analisis

Metode analisis yang digunakan dalam penelitian ini adalah metode Autoregressive Integrated Moving Average (ARIMA). Metode ARIMA sesuai untuk menganalisis data deret waktu karena mampu menangkap pola ketergantungan temporal dan fluktuasi data berdasarkan nilai masa lalu dan kesalahan acak tanpa memerlukan variabel penjelas tambahan (Pradana, B. L., 2025). Data yang digunakan terdiri dari 83 observasi bulanan, yang kemudian dibagi menjadi data training untuk pendugaan parameter dan data testing untuk penentuan model ARIMA terbaik.

Proses analisis dilakukan dengan tahapan sebagai berikut:

  1. Membagi data menjadi dua bagian, yaitu data training dan data testing.
  2. Menguji asumsi stasioneritas data training dalam mean.
  3. Jika belum stasioner dalam mean, dilakukan proses differencing, kemudian dilakukan kembali uji stasioneritas.
  4. Melakukan identifikasi model dengan mengamati plot ACF dan PACF.
  5. Melakukan pemilihan model terbaik berdasarkan AIC terkecil
  6. Melakukan estimasi parameter terhadap model-model yang terbentuk serta menguji signifikansi parameternya.
  7. Melakukan uji independensi dengan mengamati plot ACF residual, uji Ljung-Box dan uji normalitas residual dengan melihat secara visual pada grafik normal probability plot atau secara formal dengan uji Kolmogorov Smirnov pada tahap diagnostik parameter pada model yang terbentuk.
  8. Melakukan evaluasi akurasi model dengan menghitung nilai MAPE data testing.
  9. Melakukan peramalan (forecasting) untuk 8 periode ke depan yaitu mulai Maret 2025 sampai november 2025.
  10. Melakukan perbandingan hasil peramalan 8 periode ke depan dengan nilai data testing.
  11. Melakukan peramalan (forecasting) untuk 8 periode ke depan yaitu mulai Desember 2025 sampai Juli 2026.

5. Hasil dan Pembahasan

5.1 Splitting Data

Data_train <- head(Data_ts, 75)
Data_train
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2019 163 117 170 235 235 590 286 294 292 241 163 173
## 2020 398 373 451 365 387 348 374 318  54  85  75  59
## 2021 148 192 206 206 172 127 117 129 208 184 174 119
## 2022 217 178 198 209 185 243 250 423 450 438 525 433
## 2023 398 373 451 365 387 348 374 318 369 444 380 275
## 2024 256 303 274 246 285 260 317 283 316 379 256 350
## 2025 289 297 282
Data_test  <- tail(Data_ts, 8)
Data_test
##      Apr May Jun Jul Aug Sep Oct Nov
## 2025 266 234 273 253 305 288 293 253

5.2 Pengujian Stasioner

Melakukan pengujian stasioneritas menggunakan adf.test() dengan hipotesis: H0: p-value > alpha (0,05) data tidak stasioner H1: p-value < alpha (0,05) data stasioner

adf.test(Data_train)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  Data_train
## Dickey-Fuller = -2.7063, Lag order = 4, p-value = 0.2874
## alternative hypothesis: stationary

Karena nilai p-value sebesar 0,2874 lebih besar dari α, maka keputusan yang diambil adalah terima H₀, sehingga data belum stasioner.

5.3 Differencing Data

diff_data <- diff(Data_train)
ts.plot(diff_data, main="Plot Data Differens")

adf.test(diff_data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff_data
## Dickey-Fuller = -5.4789, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Nilai p-value sebesar 0,01 lebih kecil dari α, maka keputusan yang diambil adalah terima H₀, sehingga data stasioner.Karena hanya dilakukan differencing 1x maka penyusunan ARIMA(p,d,q), d=1 d -> diperoleh dari hasil berapa kali melakukan differencing ARIMA(p,d,q)

5.4 Identifikasi Model ARIMA

Parameter ARIMA ditentukan melalui plot ACF dan PACF. Nilai p diperoleh dari lag signifikan pada PACF, sedangkan nilai q dari lag signifikan pada ACF. ACF mengukur korelasi dengan mempertimbangkan data di antaranya, sementara PACF mengukur korelasi langsung antar lag.

acf(as.numeric(diff_data), lag.max = 20, main = "ACF Differencing 1")

pacf(as.numeric(diff_data), lag.max = 20, main = "PACF Differencing 1")

Berdasarkan plot ACF dan PACF hasil differencing satu, ACF menunjukkan spike signifikan pada lag ke-1 sehingga q dapat dicoba 0 atau 1, sedangkan PACF menunjukkan spike awal pada lag ke-1 (lag ke-6 tidak diambil karena tidak berurutan), sehingga p = 1; dengan d = 1, model kandidatnya adalah ARIMA(1,1,0) dan ARIMA(0,1,1).

#Dugaan Sementara Estimasi Parameter Menggunakan Differencing 1
m1 = arima(Data_train, order = c(1,1,0))
m2 = arima(Data_train, order = c(1,1,1))

5.5 Pemilihan Model Terbaik

Pemilihan model terbaik dengan melihat nilai AIC dari masing-masing model

aic <- data.frame(Nama = c("m1","m2"), Model=c("ARIMA (1,1,0)","ARIMA (1,1,1)"), AIC = c(m1$aic, m2$aic))
aic
##   Nama         Model      AIC
## 1   m1 ARIMA (1,1,0) 867.2115
## 2   m2 ARIMA (1,1,1) 869.1936

Pemilihan model terbaik menggunakan AIC yang mempunyai nilai paling Kecil (Gustiansyah, et.al., 2023). Berdasarkan nilai AIC dari dua model yaitu ARIMA (1,1,0) dan ARima (1,1,1), diperoleh nilai AIC terkecil pada model ARIMA (1,1,0) yaitu sebesar 865.2115, sehingga model ini dinyatakan sebagai model terbaik.

5.6 Uji Signifikansi Model ARIMA

best_model <- Arima(Data_train, order = c(1,1,0))
coeftest(best_model)
## 
## z test of coefficients:
## 
##     Estimate Std. Error z value Pr(>|z|)   
## ar1 -0.29256    0.11043 -2.6493 0.008066 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil pengujian koefisien pada model menunjukkan bahwa parameter AR(1) memiliki nilai estimasi sebesar −0,2926 dengan standar error 0,1104, sehingga diperoleh nilai z-statistik sebesar −2,6493 dan p-value sebesar 0,0081. Karena p-value lebih kecil dari tingkat signifikansi 0,05, maka H₀ ditolak, yang berarti parameter AR(1) signifikan secara statistik. Dengan demikian, komponen AR(1) memberikan kontribusi yang nyata dalam menjelaskan ketergantungan nilai saat ini terhadap nilai satu periode sebelumnya, sehingga keberadaannya penting dalam pembentukan model ARIMA. Model yang terbentuk dapat dituliskan sebagai:

Yt=Yt−1−0,2926(Yt−1−Yt−2)+εt

5.7 Uji Independensi Model ARIMA

#Uji Residu
res1 = best_model$residuals

#Uji Normalitas ## (Uji Asumsi Klasik)
ks.test(res1, "pnorm", mean(res1), sd(res1))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  res1
## D = 0.12251, p-value = 0.2103
## alternative hypothesis: two-sided
#Uji Autokolerasi
checkresiduals(best_model)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(1,1,0)
## Q* = 17.637, df = 14, p-value = 0.2238
## 
## Model df: 1.   Total lags used: 15
#Uji White Noise
Box.test(residuals(best_model), type = "Ljung-Box")
## 
##  Box-Ljung test
## 
## data:  residuals(best_model)
## X-squared = 0.0050553, df = 1, p-value = 0.9433

Berdasarkan hasil uji normalitas residual diperoleh nilai p-value sebesar 0.2103, yang lebih besar dari tingkat signifikansi 0.05. Oleh karena itu, H₀ tidak ditolak, sehingga residual model berdistribusi normal.

Selanjutnya, berdasarkan uji autokorelasi residual diperoleh nilai p-value sebesar 0.2238, lebih besar dari 0.05. Hal ini menunjukkan bahwa tidak terdapat autokorelasi yang signifikan pada residual model ARIMA(1,1,0).

Selain itu, hasil uji white noise menghasilkan p-value sebesar 0.9433, yang juga lebih besar dari 0.05. Dengan demikian, residual bersifat acak (white noise). Secara keseluruhan, model ARIMA(1,1,0) telah memenuhi asumsi diagnostik dan layak digunakan untuk analisis lebih lanjut.

5.8 Evaluasi Akurasi Model

#Nilai MAPE Data Testing 
test_pred <- forecast(best_model, h = 8)$mean
actual_test <- as.numeric(Data_test)
pred_test <- as.numeric(test_pred)
mape_test <- mean(abs((actual_test - pred_test) / actual_test)) * 100
mape_test
## [1] 8.700084

Berdasarkan hasil evaluasi model diperoleh nilai MAPE sebesar 8.7% pada data testing. Mengacu pada kriteria akurasi model berdasarkan nilai MAPE menurut Amri et.al. (2024), maka model ARIMA yang dibangun termasuk dalam kategori akurasi sangat baik. Nilai MAPE tersebut menunjukkan bahwa model mampu menghasilkan prediksi yang akurat pada data yang tidak digunakan dalam proses pelatihan, sehingga model ARIMA layak digunakan untuk keperluan peramalan

5.9 Peramalan

fc_future <- forecast(best_model, h = 8)

forecast_future_table <- tibble(
  Periode  = format(as.yearmon(time(fc_future$mean)), "%Y-%m"),
  Forecast = as.numeric(fc_future$mean)
)
forecast_future_table
## # A tibble: 8 × 2
##   Periode Forecast
##   <chr>      <dbl>
## 1 2025-04     286.
## 2 2025-05     285.
## 3 2025-06     285.
## 4 2025-07     285.
## 5 2025-08     285.
## 6 2025-09     285.
## 7 2025-10     285.
## 8 2025-11     285.

5.10 Perbandingan aktual vs forecast

# Perbandingan aktual vs forecast
fc_test <- forecast(best_model, h = length(Data_test))

forecast_test_table <- tibble(
  Periode  = format(as.yearmon(time(Data_test)), "%Y-%m"),
  Aktual   = as.numeric(Data_test),
  Forecast = as.numeric(fc_test$mean)
)

forecast_test_table
## # A tibble: 8 × 3
##   Periode Aktual Forecast
##   <chr>    <dbl>    <dbl>
## 1 2025-04    266     286.
## 2 2025-05    234     285.
## 3 2025-06    273     285.
## 4 2025-07    253     285.
## 5 2025-08    305     285.
## 6 2025-09    288     285.
## 7 2025-10    293     285.
## 8 2025-11    253     285.

Hasil peramalan menunjukkan bahwa model ARIMA mampu menangkap kecenderungan umum jumlah kasus TB baru pada periode pengujian. Nilai prediksi relatif stabil dan berada pada kisaran yang sejalan dengan data aktual, meskipun terdapat perbedaan pada beberapa periode akibat fluktuasi data. Hal ini didukung oleh nilai MAPE sebesar 8,7% pada data pengujian, yang mengindikasikan bahwa tingkat kesalahan peramalan tergolong rendah dan performa model dapat dikategorikan sangat baik. Dengan demikian, model ARIMA layak digunakan sebagai alat peramalan jangka pendek

# Plot Perbandingan Data Training, Aktual, dan Prediksi
df_plot <- bind_rows(
  data.frame(
    Waktu = seq(as.yearmon("2019-01"), by = 1/12, length.out = length(Data_train)),
    Nilai = as.numeric(Data_train),
    Tipe  = "Training"
  ),
  data.frame(
    Waktu = seq(as.yearmon("2019-01") + length(Data_train)/12, by = 1/12, length.out = length(Data_test)),
    Nilai = as.numeric(Data_test),
    Tipe  = "Aktual"
  ),
  data.frame(
    Waktu = seq(as.yearmon("2019-01") + length(Data_train)/12, by = 1/12, length.out = length(Data_test)),
    Nilai = as.numeric(fc_test$mean),
    Tipe  = "Prediksi"
  )
)
ggplot(df_plot, aes(Waktu, Nilai, color = Tipe)) +
  geom_line(size = 1.2) +
  scale_color_manual(values = c("Training"="black","Aktual"="blue","Prediksi"="red")) +
  labs(
    title = "Perbandingan Data Training, Aktual, dan Prediksi",
    subtitle = "Kasus TB Baru Kota Semarang",
    x = "Periode", y = "Jumlah Kasus", color = "Keterangan"
  ) +
  theme_minimal(base_size = 14) +
  theme(legend.position = "top", plot.title = element_text(face="bold"))

5.11 Forecast masa depan (8 bulan ke depan)

final_model <- Arima(Data_ts, order = c(1,1,0))

# Forecast masa depan (8 bulan ke depan)
fc_future <- forecast(final_model, h = 8)
forecast_future_table <- tibble(
  Periode  = format(as.yearmon(time(fc_future$mean)), "%Y-%m"),
  Forecast = as.numeric(fc_future$mean)
)
forecast_future_table
## # A tibble: 8 × 2
##   Periode Forecast
##   <chr>      <dbl>
## 1 2025-12     265.
## 2 2026-01     261.
## 3 2026-02     262.
## 4 2026-03     262.
## 5 2026-04     262.
## 6 2026-05     262.
## 7 2026-06     262.
## 8 2026-07     262.
plot(fc_future,
     main = "Peramalan Jumlah Kasus TB Baru",
     xlab = "Periode",
     ylab = "Jumlah Kasus")

Hasil peramalan menunjukkan bahwa jumlah kasus TB baru pada periode Desember 2025 hingga Juli 2026 diproyeksikan berada pada kisaran 261–265 kasus per bulan. Nilai prediksi cenderung stabil dengan fluktuasi yang sangat kecil, mengindikasikan bahwa model ARIMA menangkap pola jangka pendek yang relatif konstan setelah periode observasi terakhir. Kondisi ini menunjukkan tidak adanya lonjakan atau penurunan ekstrem dalam waktu dekat, sehingga proyeksi kasus TB baru diperkirakan tetap berada pada tingkat yang moderat dan terkendali

6. Kesimpulan

Berdasarkan hasil analisis jumlah kasus Tuberkulosis (TB) baru di Kota Semarang periode Januari 2019 hingga November 2025 menggunakan metode ARIMA, diperoleh model terbaik yaitu ARIMA (1,1,0) berdasarkan nilai AIC terendah dan signifikansi parameter yang valid. Secara matematis, model tersebut dapat dinyatakan sebagai berikut Yt=Yt−1−0,2926(Yt−1−Yt−2)+εt yang menunjukkan adanya ketergantungan nilai kasus TB saat ini terhadap satu periode sebelumnya. Hasil uji diagnostik menunjukkan bahwa residual model bersifat white noise, tidak mengandung autokorelasi, dan berdistribusi normal, sehingga model memenuhi asumsi kelayakan ARIMA. Nilai MAPE sebesar 8,7% pada data testing mengindikasikan bahwa model memiliki tingkat akurasi yang sangat baik, serta hasil peramalan (validasi testing) berada pada kisaran yang sejalan dengan data aktual. Selanjutnya, hasil peramalan delapan bulan ke depan (Desember 2025–Juli 2026) menunjukkan bahwa jumlah kasus TB baru diproyeksikan berada pada kisaran yang relatif stabil tanpa fluktuasi ekstrem. Dengan demikian, model ARIMA (1,1,0) dinilai tidak hanya efektif untuk validasi jangka pendek, tetapi juga berpotensi digunakan sebagai alat pendukung perencanaan dan antisipasi kebijakan kesehatan masyarakat terkait pengendalian TB di Kota Semarang.

7. Referensi

Dinas Kesehatan Kota Semarang. (n.d.). LEKMINKES – Layanan Informasi Kesehatan. Diakses 10 Januari 2026, dari https://lekminkes.dinkes.semarangkota.go.id/

Fathoni Amri, I., Chamidah, N., Saifudin, T., Purwanto, D., Fadlurohman, A., Fitriyana Ningrum, A., & Amri, S. (2024). Prediction of extreme weather using nonparametric regression approach with Fourier series estimators. Data and Metadata, 3, Article 319. https://doi.org/10.56294/dm2024319

Gustiansyah, M. A., Rizki, A., Apriyanti, B., Maulidia, K., Roa, R. J. R., Al Hadi, O., … & Angraini, Y. (2023). Aplikasi Model ARIMA dalam Peramalan Data Harga Emas Dunia Tahun 2010-2022. Jurnal Statistika Dan Aplikasinya, 7(1), 84-92.https://doi.org/10.21009/JSA.07108

Novietasari, A. (2022). Peramalan penjualan motor. RPubs. https://rpubs.com/anggitnoviee/forecast_penjualanmotor

Ramadhan, H. A. (2025). Prediksi curah hujan menggunakan metode ARIMA (Autoregressive Integrated Moving Average) (Studi kasus: Kabupaten Sleman, Semarang, dan Surabaya). Skripsi, Universitas Islam Indonesia.

Pradana, B. L. (2025). Time Series Forecasting of LQ45 Stock Index Using ARIMA: Insights and Implications. Review of Management, Accounting and Tourism Studies, 1(1), 27-40.https://doi.org/10.51170/jmabr.v1i1.160

Ratnasari, A. P. (2022). Penerapan model ARIMA pada data harga emas Eropa. RPubs. https://rpubs.com/andikaputri/ARIMA

Sumanto, Y. D., Hariyanto, S., & Andriyati, A. (2024). Forecasting the number of tuberculosis patients visiting Mitra Sehat Clinic with ARIMA method. International Journal of Social Health Research and Education (IJSHRE), 3(1). https://doi.org/10.26821/IJSHRE.12.9.2024.120905

World Health Organization. (2024). Global tuberculosis report 2024. https://www.who.int/teams/global-programme-on-tuberculosis-and-lung-health/tb-reports/global-tuberculosis-report-2024

World Health Organization. (2024). The second national TB inventory study in Indonesia 2023–2024. https://www.who.int/teams/global-programme-on-tuberculosis-and-lung-health/tb-reports/global-tuberculosis-report-2024/featured-topics/the-second-national-tb-inventory-study-in-indonesia