# timbulan
d1 <- data.frame(
Tahun = c(2024,2023,2022,2021,2020,2019),
Provinsi = "Jawa Tengah",
Kota = "Kota Semarang",
timbulan_harian = c(1189.71,1182.29,1181.06,1180.14,1276.74,1251.71),
timbulan_tahunan = c(434243.97,431534.65,431085.22,430749.75,466010.79,456873.35)
)
d1 <- d1[order(d1$Tahun), ]
d1
## Tahun Provinsi Kota timbulan_harian timbulan_tahunan
## 6 2019 Jawa Tengah Kota Semarang 1251.71 456873.3
## 5 2020 Jawa Tengah Kota Semarang 1276.74 466010.8
## 4 2021 Jawa Tengah Kota Semarang 1180.14 430749.8
## 3 2022 Jawa Tengah Kota Semarang 1181.06 431085.2
## 2 2023 Jawa Tengah Kota Semarang 1182.29 431534.7
## 1 2024 Jawa Tengah Kota Semarang 1189.71 434244.0
d2 <- data.frame(
Tahun = c(2024,2023,2022,2021,2020,2019),
pengurangan = c(94157.14,116591.38,112850.45,101951.98,99632.92,78081.33),
penanganan = c(25111.55,310739.85,314187.98,319718.10,350027.70,356782.59),
daur_ulang = c(94133.14,108332.04,60774.61,25459.75,18364.44,23322.45),
bahan_baku = c(25111.55,317.55,297.48,343.10,876.00,15069.59)
)
d2 <- d2[order(d2$Tahun), ]
d2
## Tahun pengurangan penanganan daur_ulang bahan_baku
## 6 2019 78081.33 356782.59 23322.45 15069.59
## 5 2020 99632.92 350027.70 18364.44 876.00
## 4 2021 101951.98 319718.10 25459.75 343.10
## 3 2022 112850.45 314187.98 60774.61 297.48
## 2 2023 116591.38 310739.85 108332.04 317.55
## 1 2024 94157.14 25111.55 94133.14 25111.55
d3 <- data.frame(
Tahun = c(2024,2023,2022,2021,2020,2019),
sisa_makanan = c(60.80,60.80,60.79,60.79,60.79,60.79),
kertas = c(10.20,10.20,10.18,10.18,10.18,10.18),
plastik = c(17.20,17.20,17.20,17.20,17.20,17.20),
logam = c(1.20,1.20,1.22,1.22,1.22,1.22),
kain = c(4.90,4.90,4.94,4.94,4.94,4.94),
karet_kulit = c(1.00,1.00,1.00,1.00,1.00,1.00),
kaca = c(1.80,1.80,1.79,1.79,1.79,1.79),
lainnya = c(2.90,2.90,2.88,2.88,2.88,2.88)
)
d3 <- d3[order(d3$Tahun), ]
d3
## Tahun sisa_makanan kertas plastik logam kain karet_kulit kaca lainnya
## 6 2019 60.79 10.18 17.2 1.22 4.94 1 1.79 2.88
## 5 2020 60.79 10.18 17.2 1.22 4.94 1 1.79 2.88
## 4 2021 60.79 10.18 17.2 1.22 4.94 1 1.79 2.88
## 3 2022 60.79 10.18 17.2 1.22 4.94 1 1.79 2.88
## 2 2023 60.80 10.20 17.2 1.20 4.90 1 1.80 2.90
## 1 2024 60.80 10.20 17.2 1.20 4.90 1 1.80 2.90
d4 <- data.frame(
Tahun = c(2024,2023,2022,2021,2020,2019),
rumah_tangga = c(72.00,72.00,872.47,432.28,362.00,361.96),
perkantoran = c(0.50,0.50,5.84,35.85,7.50,7.50),
pasar = c(2.60,2.60,31.30,51.95,321.80,321.78),
perniagaan = c(8.00,8.00,97.25,16.17,15.60,15.60),
fasilitas_publik = c(9.00,9.00,109.57,30.46,66.00,66.03),
kawasan = c(6.60,6.60,80.35,84.28,84.30,84.28),
lain = c(1.30,1.30,15.12,530.00,388.80,332.84)
)
d4 <- d4[order(d4$Tahun), ]
d4
## Tahun rumah_tangga perkantoran pasar perniagaan fasilitas_publik kawasan
## 6 2019 361.96 7.50 321.78 15.60 66.03 84.28
## 5 2020 362.00 7.50 321.80 15.60 66.00 84.30
## 4 2021 432.28 35.85 51.95 16.17 30.46 84.28
## 3 2022 872.47 5.84 31.30 97.25 109.57 80.35
## 2 2023 72.00 0.50 2.60 8.00 9.00 6.60
## 1 2024 72.00 0.50 2.60 8.00 9.00 6.60
## lain
## 6 332.84
## 5 388.80
## 4 530.00
## 3 15.12
## 2 1.30
## 1 1.30
data_full <- merge(d1, d2, by="Tahun")
data_full <- merge(data_full, d3, by="Tahun")
data_full <- merge(data_full, d4, by="Tahun")
View(data_full)
str(data_full)
## 'data.frame': 6 obs. of 24 variables:
## $ Tahun : num 2019 2020 2021 2022 2023 ...
## $ Provinsi : chr "Jawa Tengah" "Jawa Tengah" "Jawa Tengah" "Jawa Tengah" ...
## $ Kota : chr "Kota Semarang" "Kota Semarang" "Kota Semarang" "Kota Semarang" ...
## $ timbulan_harian : num 1252 1277 1180 1181 1182 ...
## $ timbulan_tahunan: num 456873 466011 430750 431085 431535 ...
## $ pengurangan : num 78081 99633 101952 112850 116591 ...
## $ penanganan : num 356783 350028 319718 314188 310740 ...
## $ daur_ulang : num 23322 18364 25460 60775 108332 ...
## $ bahan_baku : num 15070 876 343 297 318 ...
## $ sisa_makanan : num 60.8 60.8 60.8 60.8 60.8 ...
## $ kertas : num 10.2 10.2 10.2 10.2 10.2 ...
## $ plastik : num 17.2 17.2 17.2 17.2 17.2 17.2
## $ logam : num 1.22 1.22 1.22 1.22 1.2 1.2
## $ kain : num 4.94 4.94 4.94 4.94 4.9 4.9
## $ karet_kulit : num 1 1 1 1 1 1
## $ kaca : num 1.79 1.79 1.79 1.79 1.8 1.8
## $ lainnya : num 2.88 2.88 2.88 2.88 2.9 2.9
## $ rumah_tangga : num 362 362 432 872 72 ...
## $ perkantoran : num 7.5 7.5 35.85 5.84 0.5 ...
## $ pasar : num 321.8 321.8 52 31.3 2.6 ...
## $ perniagaan : num 15.6 15.6 16.2 97.2 8 ...
## $ fasilitas_publik: num 66 66 30.5 109.6 9 ...
## $ kawasan : num 84.3 84.3 84.3 80.3 6.6 ...
## $ lain : num 332.8 388.8 530 15.1 1.3 ...
data_full$collection_rate <- data_full$penanganan / data_full$timbulan_tahunan
data_full$recycling_rate <- (data_full$daur_ulang + data_full$bahan_baku) / data_full$timbulan_tahunan
data_full$gap <- data_full$timbulan_tahunan - (data_full$pengurangan + data_full$penanganan)
data_full$ELI <- data_full$gap / data_full$timbulan_tahunan
plot(data_full$Tahun, data_full$timbulan_harian,
type="o", lwd=2,
xlab="Tahun", ylab="Timbulan Harian (ton/hari)",
main="Tren Timbulan Harian Sampah Kota Semarang")
plot(data_full$Tahun, data_full$timbulan_tahunan,
type="o", lwd=2, col="blue",
xlab="Tahun", ylab="Timbulan Tahunan (ton/tahun)",
main="Timbulan Tahunan Sampah Kota Semarang")
Interpretasi : Timbulan sampah cenderung meningkat kembali pada 2024 setelah sempat menurun pada 2021–2022 baik secara harian maupun tahunan. Hal ini menunjukkan bahwa tekanan sampah di Kota Semarang kembali naik, sehingga kapasitas pengelolaan harus semakin ditingkatkan.
Tujuan : Melihat apakah pengurangan, penanganan, dan daur ulang meningkat atau menurun dari waktu ke waktu.
# Pastikan data urut
data_full <- data_full[order(data_full$Tahun), ]
# Plot Pengurangan
plot(data_full$Tahun, data_full$pengurangan,
type="o", lwd=2, col="darkgreen",
xlab="Tahun", ylab="Pengurangan (ton/tahun)",
main="Tren Pengurangan Sampah Kota Semarang")
# Plot Penanganan
plot(data_full$Tahun, data_full$penanganan,
type="o", lwd=2, col="purple",
xlab="Tahun", ylab="Penanganan (ton/tahun)",
main="Tren Penanganan Sampah Kota Semarang")
# Plot Daur Ulang
plot(data_full$Tahun, data_full$daur_ulang,
type="o", lwd=2, col="orange",
xlab="Tahun", ylab="Daur Ulang (ton/tahun)",
main="Tren Daur Ulang Sampah Kota Semarang")
Interpretasi : 1. Pengurangan : berfluktuasi, tetapi 2023 adalah tahun terbaik sekitar (116 ribu ton).
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data_full <- data_full %>%
mutate(
gap = timbulan_tahunan - (pengurangan + penanganan),
ELI = gap / timbulan_tahunan
)
Tujuan : Mengukur jumlah sampah yang tidak tertangani → indikator tekanan lingkungan.
library(ggplot2)
library(scales)
ggplot(data_full, aes(x = Tahun, y = gap)) +
geom_col(fill = "#4A90E2") +
scale_y_continuous(labels = comma) +
labs(title = "GAP Sampah Tidak Tertangani",
x = "Tahun", y = "GAP (ton/tahun)") +
theme_minimal()
ggplot(data_full, aes(x = Tahun, y = ELI)) +
geom_col(fill = "#FF8C42") +
scale_y_continuous(labels = number_format(accuracy = 0.01)) +
labs(title = "Environmental Load Index (ELI)",
x = "Tahun", y = "ELI") +
theme_minimal()
Tujuan : Melihat efektivitas sistem pengelolaan sampah kota.
plot(data_full$Tahun, data_full$collection_rate,
type="o", lwd=2, col="blue",
xlab="Tahun", ylab="Collection Rate",
main="Collection Rate Kota Semarang")
plot(data_full$Tahun, data_full$recycling_rate,
type="o", lwd=2, col="darkorange",
xlab="Tahun", ylab="Recycling Rate",
main="Recycling Rate Kota Semarang")
# Komposisi Total Jenis Sampah
library(dplyr)
library(ggplot2)
library(scales)
# Pilih variabel komposisi
komposisi <- data_full %>%
select(sisa_makanan, kertas, plastik, logam, kain,
karet_kulit, kaca, lainnya)
# Hitung total per jenis
komposisi_total <- colSums(komposisi, na.rm = TRUE)
# Ubah jadi data frame
komposisi_df <- data.frame(
jenis = names(komposisi_total),
total = komposisi_total
)
# Plot Bar
ggplot(komposisi_df, aes(x = reorder(jenis, total), y = total, fill = jenis)) +
geom_col(width = 0.7, show.legend = FALSE) +
geom_text(aes(label = comma(round(total, 0))),
vjust = -0.3, size = 4) +
labs(title = "Komposisi Total Jenis Sampah Kota Semarang",
subtitle = "Akumulasi total dari seluruh tahun (2019–2024)",
x = "Jenis Sampah",
y = "Total (ton)") +
theme_minimal(base_size = 13) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_y_continuous(labels = comma)
Mengkonfirmasi secara statistik apakah tren naik / turun signifikan.
library(Kendall)
## Warning: package 'Kendall' was built under R version 4.5.2
MannKendall(data_full$timbulan_tahunan)
## tau = -0.0667, 2-sided pvalue =1
MannKendall(data_full$pengurangan)
## tau = 0.467, 2-sided pvalue =0.25966
MannKendall(data_full$penanganan)
## tau = -1, 2-sided pvalue =0.0085349
MannKendall(data_full$daur_ulang)
## tau = 0.733, 2-sided pvalue =0.060289
MannKendall(data_full$ELI)
## tau = -0.2, 2-sided pvalue =0.70711
Interpretasi : 1. Tidak ada tren signifikan dalam pengurangan sampah tahunan di Kota Semarang. Nilai p = 1 menunjukkan tidak ada kecenderungan naik atau turun, perubahan tahun ke tahun bersifat acak.
Ada indikasi (tidak signifikan) bahwa penanganan sampah cenderung meningkat, tetapi bukti statistik tidak cukup karena p > 0.05. Kesimpulan: Belum ada tren signifikan, meskipun arah perubahan positif.
Terdapat tren menurun yang sangat kuat dan signifikan dalam daur ulang sampah. Nilai τ = –1 menunjukkan penurunan sempurna secara monoton dari tahun ke tahun. p < 0.01 → penurunan ini sangat signifikan secara statistik.
Ini merupakan temuan penting: recycling rate memburuk drastis.
Jadi, material recovery mulai menunjukkan peningkatan, tapi bukti statistik belum kuat.