STEP 1 IDENTIFIKASI DATA

Data yang digunakan dalam studi kasus ini adalah Timbulan Sampah Tahunan (ton) menurut Kabupaten/Kota di Provinsi Jawa Barat pada tahun 2018 hingga 2024. Data ini mencakup seluruh kabupaten dan kota di Jawa Barat, dengan variabel utama:

Tahun → periode pengamatan (2018–2024).

Kabupaten/Kota → wilayah di Jawa Barat.

Timbulan Sampah Tahunan (ton) → jumlah timbulan sampah yang dihasilkan dalam satu tahun.

Timbulan Sampah Harian (ton) → rata-rata timbulan sampah per hari.

Sumber Data: Sistem Informasi Pengelolaan Sampah Nasional (SIPSN) – Kementerian Lingkungan Hidup dan Kehutanan (KLHK) Republik Indonesia. (https://sipsn.kemenlh.go.id/sipsn/public/data/timbulan)

library(forecast)
library(ggfortify)
library(ggplot2)
library(dplyr)
library(tidyverse)
library(readxl)   
library(car)      
library(rstatix)
library(forecast) 
library(lme4); 
library(lmerTest) 
library(lmtest)   

Input Data

# 1. Menginput Data
data_sampah<- read_excel("C:/Users/asus/Documents/KULIAH STELLA/SEMESTER 5/PERMINATAN_SL/Data Timbulan Sampah_Jawa Barat.xlsx",   skip = 1)
names(data_sampah)
## [1] "Tahun"                        "Provinsi"                    
## [3] "Kabupaten/Kota"               "Timbulan Sampah Harian(ton)" 
## [5] "Timbulan Sampah Tahunan(ton)"
head(data_sampah)
## # A tibble: 6 × 5
##   Tahun Provinsi  `Kabupaten/Kota` Timbulan Sampah Hari…¹ Timbulan Sampah Tahu…²
##   <dbl> <chr>     <chr>                             <dbl>                  <dbl>
## 1  2024 Jawa Bar… Kab. Ciamis                        501.                182871.
## 2  2024 Jawa Bar… Kab. Majalengka                    938.                342528.
## 3  2024 Jawa Bar… Kab. Sumedang                      482.                176030.
## 4  2024 Jawa Bar… Kab. Indramayu                    1137.                414836.
## 5  2024 Jawa Bar… Kab. Purwakarta                    418.                152673.
## 6  2024 Jawa Bar… Kab. Karawang                     1067.                389444.
## # ℹ abbreviated names: ¹​`Timbulan Sampah Harian(ton)`,
## #   ²​`Timbulan Sampah Tahunan(ton)`
#2. Cleaning Data
data_sampah <- data_sampah %>%
  rename(
    tahun = Tahun,
    provinsi = Provinsi,
    kabupaten_kota = `Kabupaten/Kota`,
    timbulan_sampah_harian_ton = `Timbulan Sampah Harian(ton)`,
    timbulan_sampah_tahunan_ton = `Timbulan Sampah Tahunan(ton)`
  )

# tampilkan nama kolom
print("Nama kolom setelah clean:")
## [1] "Nama kolom setelah clean:"
print(names(data_sampah))
## [1] "tahun"                       "provinsi"                   
## [3] "kabupaten_kota"              "timbulan_sampah_harian_ton" 
## [5] "timbulan_sampah_tahunan_ton"
# cek missing / NA
summary(data_sampah)
##      tahun        provinsi         kabupaten_kota    
##  Min.   :2019   Length:92          Length:92         
##  1st Qu.:2021   Class :character   Class :character  
##  Median :2022   Mode  :character   Mode  :character  
##  Mean   :2022                                        
##  3rd Qu.:2023                                        
##  Max.   :2024                                        
##  timbulan_sampah_harian_ton timbulan_sampah_tahunan_ton
##  Min.   :  83.74            Min.   :  30567            
##  1st Qu.: 292.21            1st Qu.: 106657            
##  Median : 743.60            Median : 271414            
##  Mean   : 867.31            Mean   : 316568            
##  3rd Qu.:1269.91            3rd Qu.: 463515            
##  Max.   :2813.51            Max.   :1026931
count_na <- sapply(data_sampah, function(x) sum(is.na(x)))
print("Jumlah NA per kolom:")
## [1] "Jumlah NA per kolom:"
print(count_na)
##                       tahun                    provinsi 
##                           0                           0 
##              kabupaten_kota  timbulan_sampah_harian_ton 
##                           0                           0 
## timbulan_sampah_tahunan_ton 
##                           0

STEP 2 VISUALISASI DATA (BOXPLOT)

  1. Melakukan visualisasi boxplot untuk :
ggplot(data_sampah, aes(x = factor(tahun), y = timbulan_sampah_tahunan_ton, fill = factor(tahun))) +
  geom_boxplot(color = "navy", alpha = 0.9) +
  scale_fill_brewer(palette = "Set3") +
  labs(title = "Boxplot Timbulan Sampah Tahunan Antar Tahun di Jawa Barat",
       x = "Tahun",
       y = "Timbulan Sampah Tahunan (ton)") +
  theme_minimal(base_size = 12)

Interpretasi Hasil Visualisasi Boxplot

  1. Median (ditunjukkan dengan garis tebal hitam) ada setiap tahun berada di kisaran 200.000–400.000 ton. Hal ini menunjukkan bahwa sebagian besar kabupaten/kota di Jawa Barat menghasilkan timbulan sampah tahunan dalam rentang tersebut. Secara umum, tingkat timbulan sampah antarwilayah relatif agak stabil dari tahun ke tahun.

  2. Whisker pada tahun 2021 hingga tahun 2023 tampak lebih panjang dibandingkan dengan tahun-tahun lainnya, maka data ditahun tersebut terdapat variasi daerah dengan timbulan sampah yang jauh lebih rendah begitupun seblaiknya terdapat timbulan sampah yang sangat tinggi.

  3. Pada tahun 2021–2022, whisker terlihat relatif lebih pendek dibandingkan tahun 2019–2020. Hal ini menunjukkan bahwa distribusi timbulan sampah antar kabupaten/kota sedikit lebih merata, meskipun tetap ada gap cukup besar.

  4. Selain itu, di tahun 2023 masih terdapat outlier dengan capaian di atas 1.000.000 ton. Hal ini menunjukkan bahwa masih ada daerah tertentu yang memiliki jumlah timbulan sampahnya jauh melampaui kabupaten/kota lain. Secara keseluruhan, distribusi timbulan sampah tahunan cenderung stabil dari 2019 hingga 2024, namun tetap terdapat ketimpangan signifikan antar kabupaten/kota.

STEP 3 UJI STATISTIK (Bartlett’s Test)

bartlett.test(timbulan_sampah_tahunan_ton ~ factor(tahun), data = data_sampah)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  timbulan_sampah_tahunan_ton by factor(tahun)
## Bartlett's K-squared = 1.3058, df = 5, p-value = 0.9343

Interpretasi Hasil Uji Bartlett

Berdasarkan hasil output diatas :

P-value sebesar 0,9343 > 0,05 sehingga dapat diputuskan bahwa gagal menolak \(H_0\) . Hal ini berarti varians timbulan sampah tahunan pada tahun 2019–2024 dapat dianggap homogen atau memenuhi asumsi homogenitas varians.Dengan kata lain, persebaran data timbulan sampah antar tahun relatif homogen. Tidak terdapat perbedaan variasi yang signifikan pada setiap kelompok tahun.

STEP 4 UJI STATISTIK (Levene’s Test)

leveneTest(timbulan_sampah_tahunan_ton ~ factor(tahun), data = data_sampah)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  5  0.2546 0.9364
##       86

Interpretasi Hasil Uji Levene

Berdasarkan hasil output diatas :

P-value sebesar 0,9364 > 0,05 sehingga dapat diputuskan bahwa gagal menolak \(H_0\) . Hal ini berarti varians timbulan sampah tahunan pada tahun 2019–2024 dapat dianggap homogen atau memenuhi asumsi homogenitas varians.Dengan kata lain, persebaran data timbulan sampah antar tahun relatif homogen. Tidak terdapat perbedaan variasi yang signifikan pada setiap kelompok tahun.

STEP 5 UJI STATISTIK ANOVA

# ANOVA: apakah rata-rata timbulan sampah tahunan berbeda antar tahun?
anova_sampah <- aov(timbulan_sampah_tahunan_ton ~ factor(tahun), data = data_sampah)
# Ringkasan hasil
summary(anova_sampah)
##               Df    Sum Sq   Mean Sq F value Pr(>F)
## factor(tahun)  5 8.237e+10 1.647e+10   0.312  0.905
## Residuals     86 4.542e+12 5.281e+10

Interpretasi Hasil Uji ANOVA

Berdasarkan hasil analisis ANOVA, diperoleh nilai F = 0.312 dengan p-value = 0.905. Karena p-value lebih besar dari taraf signifikansi 0.05, maka keputusan uji adalah gagal menolak \(H₀\) . Hal ini menunjukkan bahwa tidak terdapat perbedaan yang signifikan pada rata-rata timbulan sampah tahunan antar tahun 2019 hingga 2024. Dengan kata lain, tren timbulan sampah di kabupaten/kota Jawa Barat cenderung stabil antar tahun, tanpa adanya perubahan rata-rata yang bermakna secara statistik.

STEP 6 UJI STATISTIK FORECASTING (Holt’s Method)

# Ubah ke time series
data_ts <- ts(data_sampah$timbulan_sampah_tahunan_ton,
              start = min(data_sampah$tahun),
              frequency = 1)   # data tahunan, jadi freq = 1

# Holt’s method forecasting
holt_jabar <- holt(data_ts, h = 5)# h = prediksi 5 tahun ke depan
summary(holt_jabar)
## 
## Forecast method: Holt's method
## 
## Model Information:
## Holt's method 
## 
## Call:
## holt(y = data_ts, h = 5)
## 
##   Smoothing parameters:
##     alpha = 0.0449 
##     beta  = 0.0045 
## 
##   Initial states:
##     l = 281405.5698 
##     b = 7154.6471 
## 
##   sigma:  237909.9
## 
##      AIC     AICc      BIC 
## 2699.770 2700.468 2712.379 
## 
## Error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE
## Training set -23433.51 232680.5 196566.3 -125.6456 154.8807 0.6849604
##                    ACF1
## Training set -0.1779842
## 
## Forecasts:
##      Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
## 2111       249684.2 -55209.62 554578.0 -216610.7 715979.1
## 2112       247132.7 -58132.38 552397.8 -219730.0 713995.3
## 2113       244581.2 -61125.36 550287.7 -222956.6 712119.0
## 2114       242029.6 -64194.41 548253.7 -226299.6 710358.9
## 2115       239478.1 -67345.28 546301.5 -229767.8 708724.0
# Plot hasil forecast
autoplot(holt_jabar) +
  ggtitle("Forecast Timbulan Sampah Tahunan di Jawa Barat dengan Holt’s Method") +
  xlab("Tahun") +
  ylab("Timbulan Sampah Tahunan (ton)") +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 12),
    axis.title = element_text(face = "bold"),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_line(color = "tomato")
  )

Interpretasi Hasil Holt’s method

  1. RMSE: 232.680 ton → menunjukkan kesalahan rata-rata prediksi cukup besar karena data timbulan sampah bervariasi tajam antar kabupaten/kota.

    MAPE: 154.88% → relatif tinggi, artinya model Holt’s kurang baik dalam memprediksi data ini. Hal ini wajar karena timbulan sampah memiliki variasi yang besar antar daerah dan tidak selalu mengikuti tren yang halus.

  2. Area biru pada bagian akhir grafik merupakan hasil proyeksi 5 tahun ke depan. Garis tengah biru menunjukkan titik prediksi, sementara area biru muda (shaded area) menunjukkan interval prediksi. Dari hasil proyeksi terlihat bahwa timbulan sampah tahunan diperkirakan akan cenderung sedikit menurun.

  3. Kebijakan yang kiranya dapat dilakukan oleh pemerintah daerah Jawa Barat adalah meningkatkan infrastuktur pengelolaan sampah, Pengawasan dan Edukasi Masyarakat mengenai Penguatan Program Reduce, Reuse, Recycle (3R).