Pendahuluan

Pengelolaan sampah perkotaan merupakan salah satu tantangan utama dalam pembangunan berkelanjutan, khususnya di negara berkembang dengan tingkat pertumbuhan penduduk dan urbanisasi yang relatif tinggi (Nurmayanti et al., 2023). Pertumbuhan jumlah penduduk, aktivitas ekonomi, serta pola konsumsi masyarakat berimplikasi langsung pada peningkatan timbulan sampah yang harus dikelola secara berkelanjutan. Apabila tidak ditangani dengan baik, permasalahan sampah dapat menimbulkan berbagai dampak negatif, seperti pencemaran lingkungan, gangguan kesehatan masyarakat, serta penurunan kualitas hidup.

Kota Bogor sebagai salah satu kota penyangga Ibu Kota Jakarta juga menghadapi permasalahan volume sampah yang dihasilkan masyarakat sekitar. Sampah yang dihasilkan oleh aktivitas rumah tangga, perdagangan, dan jasa setiap harinya harus diangkut dan dikelola di Tempat Pemrosesan Akhir (TPA) Galuga. Data historis jumlah sampah yang terangkut ke TPA dapat dimanfaatkan untuk memprediksi jumlah sampah di masa mendatang sehingga pemerintah daerah dapat menyiapkan kapasitas pengangkutan, sarana prasarana, serta strategi pengelolaan yang lebih efektif.

Salah satu pendekatan yang banyak digunakan untuk melakukan peramalan data runtun waktu adalah metode Autoregressive Integrated Moving Average (ARIMA). Metode ini memanfaatkan pola historis data untuk menghasilkan prediksi jangka pendek maupun menengah (Mifthasha, 2024). Beberapa penelitian terdahulu menunjukkan bahwa model ARIMA mampu memberikan hasil peramalan yang cukup baik pada data timbulan sampah karena karakteristik data yang cenderung bersifat nonstasioner dan memiliki pola tren. Dengan demikian, penerapan model ARIMA pada data sampah terangkut ke TPA Galuga diharapkan dapat memberikan gambaran yang lebih akurat mengenai jumlah sampah pada periode mendatang.

Penelitian ini bertujuan untuk menganalisis pola data sampah terangkut ke TPA Galuga menggunakan pendekatan runtun waktu serta membangun model ARIMA yang sesuai untuk melakukan peramalan. Hasil peramalan ini diharapkan dapat menjadi bahan pertimbangan bagi pihak terkait dalam mendukung perencanaan pengelolaan sampah yang lebih optimal di Kota Bogor.

Deskripsi dan Sumber Data

Data yang digunakan dalam penelitian ini merupakan data sekunder resmi berupa jumlah sampah yang terangkut ke Tempat Pemrosesan Akhir (TPA) Galuga. Data bersifat runtun waktu dengan frekuensi bulanan dan satuan pengukuran berupa tonase sampah dalam kilogram.

Sumber data diperoleh dari portal ragam data resmi Dinas Lingkungan Hidup (DLH) Kota Bogor melalui laman https://cms-dlh.kotabogor.go.id. Periode data yang digunakan dalam penelitian ini adalah September 2021 hingga Agustus 2025.

Exploratory Data Analysis

Import Data

# Library
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(tseries)
## Warning: package 'tseries' was built under R version 4.4.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
# Input Data
data <- read_excel("Sampah Terangkut ke TPA Galuga.xlsx")
Sampah = data$`Tonase (kg)`
View(data)

Statistik Deskriptif

summary(data)
##    Tanggal           Tonase (kg)   
##  Length:48          Min.   :12620  
##  Class :character   1st Qu.:14940  
##  Mode  :character   Median :15594  
##                     Mean   :15821  
##                     3rd Qu.:16379  
##                     Max.   :18837

Data timbulan sampah yang terangkut ke TPA Galuga terdiri dari 48 observasi bulanan dengan tonase berkisar antara 12.620 kg hingga 18.837 kg per bulan. Rata-rata timbulan sampah adalah sekitar 15.821 kg per bulan.

str(data)
## tibble [48 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Tanggal    : chr [1:48] "2021-09" "2021-10" "2021-11" "2021-12" ...
##  $ Tonase (kg): num [1:48] 17324 18125 17574 18456 17470 ...

Struktur dataset terdiri dari 48 observasi dan 2 variabel, yaitu Tanggal yang bertipe karakter dan Tonase (kg) yang bertipe numerik.

Plot Time Series

# Membuat data menjadi time series
sampah_ts <- ts(
  Sampah,
  start = c(2021,9),
  frequency = 12
)
sampah_ts
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2021                                                 17324 18125 17574 18456
## 2022 17470 15699 18201 18715 18837 15856 15708 15009 14877 15363 14891 15160
## 2023 15817 14355 16232 16014 15705 15213 15054 14957 14718 14704 15576 15585
## 2024 16821 15918 16843 17311 16940 14078 14675 15051 14553 15148 15521 15742
## 2025 15733 14425 16164 14801 15580 14664 15603 12620
# Plot Time Series
plot.ts(sampah_ts, 
        main= "Plot Time Series Sampah Terangkut ke TPA Galuga",
        xlab= "Tahun",
        ylab= "Tonase")

Grafik time series sampah terangkut ke TPA Galuga menunjukkan bahwa volume sampah berfluktuasi dari bulan ke bulan dengan kecenderungan tren menurun secara umum, di mana nilai awal periode relatif lebih tinggi dibandingkan periode akhir. Selain itu terlihat pola naik–turun yang berulang dalam satu tahun, yang menunjukkan adanya pola musiman dalam data.

# Plot Boxplot
boxplot(sampah_ts ~ cycle(sampah_ts),
        xlab="Bulan",
        ylab="Tonase")

Boxplot tonase sampah per bulan memperlihatkan pola sebaran yang berbeda antar bulan. Median dan rentang data menunjukkan bahwa volume sampah tidak konstan sepanjang tahun, melainkan memiliki perbedaan musiman. Bulan-bulan tertentu, seperti April dan Mei, cenderung memiliki volume sampah yang lebih tinggi, sementara bulan seperti Agustus memiliki median yang lebih rendah.

Metode Analisis

Metode analisis yang digunakan dalam penelitian ini adalah Autoregressive Integrated Moving Average (ARIMA). Model ARIMA merupakan model deret waktu yang mengombinasikan komponen autoregressive (AR), differencing (I), dan moving average (MA). Model ARIMA dinyatakan dalam notasi ARIMA(p, d, q), dengan p menyatakan orde komponen autoregressive, d menyatakan orde differencing, dan q menyatakan orde komponen moving average.

Tahapan analisis yang dilakukan dalam penelitian ini meliputi:

  1. Mengubah data menjadi time series
  2. Pembagian data menjadi data training dan data testing
  3. Pengujian kestasioneran data menggunakan uji Augmented Dickey-Fuller (ADF)
  4. Penentuan orde differencing berdasarkan hasil uji kestasioneran
  5. Identifikasi kandidat model ARIMA berdasarkan pola ACF dan PACF
  6. Estimasi parameter model dan pemilihan model terbaik berdasarkan nilai Akaike Information Criterion (AIC) terkecil
  7. Pengujian signifikansi parameter model menggunakan uji z
  8. Diagnostik residual menggunakan plot ACF dan PACF residual serta uji Ljung–Box untuk memastikan residual bersifat white noise
  9. Evaluasi kinerja model menggunakan Mean Absolute Percentage Error (MAPE)
  10. Forecasting (peramalan) data

Hasil dan Pembahasan

Split Data Training dan Testing

# Data Training
train_data <- window(
  sampah_ts,
  start = c(2021, 9),
  end   = c(2024, 8)
)
train_data
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2021                                                 17324 18125 17574 18456
## 2022 17470 15699 18201 18715 18837 15856 15708 15009 14877 15363 14891 15160
## 2023 15817 14355 16232 16014 15705 15213 15054 14957 14718 14704 15576 15585
## 2024 16821 15918 16843 17311 16940 14078 14675 15051
# Data Testing
test_data <- window(
  sampah_ts,
  start = c(2024, 9),
  end   = c(2025, 8)
)
test_data
##        Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
## 2024                                                 14553 15148 15521 15742
## 2025 15733 14425 16164 14801 15580 14664 15603 12620

Data dibagi menjadi data training (September 2021 – Agustus 2024) dan data testing (September 2024 – Agustus 2025). Data training digunakan untuk pembentukan dan pemilihan model, sedangkan data testing digunakan untuk evaluasi performa model.

Uji Stasioneritas

adf.test(train_data)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  train_data
## Dickey-Fuller = -2.1368, Lag order = 3, p-value = 0.5199
## alternative hypothesis: stationary

Pada uji Augmented Dickey-Fuller (ADF), hipotesis yang digunakan adalah: - H0 : data time series tidak stasioner - H1 : data time series stasioner Dasar pengambilan keputusan yang digunakan adalah: - H0 ditolak jika nilai p-value > 0,05 - H0 gagal ditolak jika nilai p-value < 0,05 Hasil uji menunjukkan nilai p-value = 0,5199. Karena p-value > 0,05, maka H0 gagal ditolak, sehingga dapat disimpulkan bahwa data training belum stasioner dan masih mengandung tren atau pola musiman. Oleh karena itu, data perlu dilakukan differencing sebelum dimodelkan menggunakan ARIMA.

Differencing

diff1 = diff(train_data)
adf.test(diff1)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff1
## Dickey-Fuller = -3.4982, Lag order = 3, p-value = 0.05952
## alternative hypothesis: stationary

Setelah dilakukan differencing pertama didapatkan nilai p-value sebesar 0,05952 (> 0,05), sehingga data belum sepenuhnya stasioner setelah satu kali differencing, maka dilakukan differencing kedua.

diff2 = diff(diff1)
adf.test(diff2)
## Warning in adf.test(diff2): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff2
## Dickey-Fuller = -5.6827, Lag order = 3, p-value = 0.01
## alternative hypothesis: stationary

Setelah dilakukan differencing kedua didapatkan nilai p-value sebesar 0,01 < 0,05. Hal ini menunjukkan bahwa data telah stasioner setelah dua tahap differencing ( d = 2) dan layak untuk dilakukan pemodelan dengan ARIMA.

acf(diff2, main = "ACF Differencing 2")

Berdasarkan plot ACF dari data yang telah melalui differencing kedua, terlihat bahwa spike ACF mengalami cut-off pada lag 1, sehingga orde q = 0 atau 1.

pacf(diff2, main = "PACF Differencing 2")

Berdasarkan plot PACF setelah differencing kedua, terlihat bahwa hanya lag 1 yang memiliki nilai partial autocorrelation yang signifikan, sedangkan lag selanjutnya berada dalam batas signifikansi sehingga didapatkan orde p = 1.

Kandidat Model ARIMA

m1 <- arima(train_data, order = c(1,2,0))
m2 <- arima(train_data, order = c(1,2,1))

Pemilihan Model Terbaik

aic <- data.frame(
  Model = c("ARIMA(1,2,0)",
            "ARIMA(1,2,1)"),
  AIC = c(m1$aic,
          m2$aic)
)
aic
##          Model      AIC
## 1 ARIMA(1,2,0) 595.3387
## 2 ARIMA(1,2,1) 581.4249
best_model <- m2

Untuk memilih model terbaik, dilakukan perbandingan beberapa model ARIMA berdasarkan nilai AIC. Tabel AIC menunjukkan bahwa ARIMA(1,2,1) memiliki nilai AIC terendah (581.4249), sehingga dipilih sebagai model terbaik untuk data timbulan sampah.

Uji Signifikansi Model (z-test)

coeftest(best_model)
## 
## z test of coefficients:
## 
##      Estimate Std. Error  z value Pr(>|z|)    
## ar1 -0.196883   0.168343  -1.1695   0.2422    
## ma1 -0.999999   0.081593 -12.2559   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Uji signifikansi parameter model ARIMA(1,2,1) dilakukan menggunakan uji z. Diperoleh koefisien MA(1) memiliki p-value < 2 × 10⁻¹⁶ , yang signifikan pada tingkat signifikansi 5%.

Diagnostik Residual

Plot Residual

ts.plot(residuals(best_model), main = "Residual ARIMA")

Residual tersebar secara acak di sekitar nol dan tidak menampilkan pola sistematik, yang menunjukkan bahwa residual bersifat acak.

ACF PACF Residual

acf(residuals(best_model), main = "ACF Residual ARIMA")

pacf(residuals(best_model), main = "PACF Residual ARIMA")

Plot ACF dan PACF residual model ARIMA menunjukkan bahwa mayoritas nilai autokorelasi dan partial autocorrelation berada dalam batas signifikansi, tanpa pola yang konsisten pada lag-lag tertentu. Dengan demikian, residual model dapat dianggap sebagai white noise.

Uji Ljung-Box

Box.test(
  residuals(best_model),
  lag = 12,
  type = "Ljung-Box"
)
## 
##  Box-Ljung test
## 
## data:  residuals(best_model)
## X-squared = 9.2583, df = 12, p-value = 0.6807

Hipotesis: H₀ : Residual model tidak memiliki autokorelasi sampai lag tertentu atau residual bersifat white noise. H₁ : Residual model memiliki autokorelasi sampai lag tertentu atau residual tidak bersifat white noise. Karena p-value 0,6807 > 0.05, gagal menolak hipotesis nol bahwa residual model tidak memiliki autokorelasi sampai lag ke-12. Artinya, residual model tidak menunjukkan pola autokorelasi yang signifikan, sehingga dapat dianggap bersifat white noise.

MAPE Data Training dan Testing

# MAPE training
fitted_train <- fitted(best_model)
mape_train <- mean(abs((train_data - fitted_train) / train_data)) * 100
mape_train
## [1] 4.544848
# MAPE testing
forecast_test <- forecast(best_model, h = length(test_data))
mape_test <- mean(abs((test_data - forecast_test$mean) / test_data)) * 100
mape_test
## [1] 5.713268

Nilai MAPE sebesar 4,54% pada data training dan 5,71% pada data testing ini menunjukkan bahwa peramalan yang dihasilkan oleh model ARIMA(1,2,1) memiliki kesalahan relatif yang kecil, sehingga model dapat memberikan prediksi akurat yang sangat baik.

Forecasting

final_model <- arima(sampah_ts, order = c(1,2,1))
forecast_arima <- forecast(final_model, h = 12)
forecast_arima
##          Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
## Sep 2025       13567.71 12182.898 14952.53 11449.821 15685.60
## Oct 2025       13107.63 11446.424 14768.84 10567.035 15648.23
## Nov 2025       13151.75 11151.971 15151.54 10093.350 16210.16
## Dec 2025       13015.29 10746.822 15283.77  9545.965 16484.62
## Jan 2026       12943.51 10416.544 15470.48  9078.848 16808.17
## Feb 2026       12848.56 10082.527 15614.60  8618.276 17078.85
## Mar 2026       12761.91  9767.466 15756.36  8182.302 17341.53
## Apr 2026       12672.29  9459.213 15885.37  7758.312 17586.27
## May 2026       12583.73  9159.452 16008.02  7346.747 17820.72
## Jun 2026       12494.79  8865.605 16123.98  6944.428 18045.16
## Jul 2026       12405.99  8577.122 16234.86  6550.240 18261.74
## Aug 2026       12317.14  8293.059 16341.22  6162.838 18471.44
plot(forecast_arima,
     main = "Peramalan Timbulan Sampah dengan ARIMA(1,2,1)",
     xlab = "Waktu",
     ylab = "Jumlah Sampah")

Peramalan satu tahun ke depan menggunakan model ARIMA(1,2,1), timbulan sampah diprediksi mengalami kecenderungan menurun secara bertahap selama periode peramalan. Garis ramalan menunjukkan nilai prediksi yang relatif stabil menurun, sementara interval kepercayaan semakin melebar seiring bertambahnya waktu.

Kesimpulan

Penerapan model ARIMA pada data timbulan sampah yang terangkut ke TPA Galuga menunjukkan bahwa setelah dua kali differencing, data menjadi stasioner dan layak dimodelkan. Identifikasi ACF dan PACF serta perbandingan nilai AIC menghasilkan ARIMA(1,2,1) sebagai model terbaik. Uji diagnostik menunjukkan residual bersifat white noise dan parameter MA(1) signifikan, sedangkan evaluasi akurasi dengan MAPE menunjukkan kesalahan prediksi yang rendah baik pada data training maupun testing.

Peramalan satu tahun ke depan menunjukkan tren penurunan volume sampah secara bertahap dengan tingkat ketidakpastian yang semakin meningkat pada horizon peramalan yang lebih jauh. Secara keseluruhan, model ARIMA(1,2,1) dinilai layak dan efektif digunakan untuk peramalan timbulan sampah di TPA Galuga serta dapat mendukung perencanaan pengelolaan sampah berbasis data. Untuk penelitian selanjutnya, disarankan mempertimbangkan pengujian model lain seperti SARIMA untuk menangkap pola musiman yang mungkin belum terakomodasi oleh model ARIMA.

Referensi

Dinas Lingkungan Hidup Kota Bogor. (2025). Data sampah terangkut ke TPA Galuga (dataset). Portal Ragam Data Lingkungan Hidup Kota Bogor. https://cms-dlh.kotabogor.go.id/ragam_data/manajemen/ragam-data/data-sampah-terangkut-ke-tpa

Mifthasha, S. (2024). Peramalan Jumlah Sampah Terangkut Di Kota Pekanbaru Menggunakan Metode ARIMA. Indonesian Council of Premier Statistical Science, 3(2), 71. https://doi.org/10.24014/icopss.v3i2.32272

Nurfatimah, D. K. (2023). Peramalan dan Akurasi dengan Model ARIMA. RPubs. Diakses dari https://www.rpubs.com/dindakhamila/mpdw6

Nurmayanti, W. P., Kertanah, K., Hasanah, S. H., Rahim, A., & Hendrayani, H. (2023). Peramalan Jumlah Sampah di Kabupaten Lombok Timur dengan Metode ARIMA dan Dekomposisi. Jambura Journal of Probability and Statistics, 4(2), 72–84. https://doi.org/10.37905/jjps.v4i2.19954

Ratnasari, A. P. (2022). Penerapan Model ARIMA pada Data Harga Emas Eropa. RPubs. Diakses dari https://rpubs.com/andikaputri/ARIMA