#FORECASTING TRIPLE/HOLT WINTER’S EXPONENTIAL SMOOTHING

#STEP 1: INPUT DATA Jawa = read.csv(file.choose(),header=TRUE,sep=“,”) View(Jawa)

#STEP 2: MENGUBAH DATA KE TIME SERIES Jawa.ts = ts(Jawa$Wilayah.Jawa, start = c(2020), frequency = 12) Jawa.ts plot(Jawa.ts)

#STEP 3: MEMBAGI DATA train_size <- floor(0.7 * length(Jawa.ts)) train_index <- sample(1:length(Jawa.ts), train_size) train_data <- Jawa.ts[train_index] test_data <- Jawa.ts[-train_index] print(“Data Pelatihan:”) print(train_data) print(“Data Pengujian:”) print(test_data)

Menampilkan data latih

plot(train_data, main = “Data Latih”, ylab = “Nilai”, col = “blue”, lty = 1) print(train_data) #Menampilkan data uji plot(test_data, main = “Data Uji”, ylab = “Nilai”, col = “red”, lty = 2) print(test_data)

#Step 4: Menentukan nilai alpha, beta, gamma optimal (MODEL ADITIF & MODEL MULTIPLICATIVE) tes.ka.add = HoltWinters(Jawa.ts, alpha =NULL, beta =NULL , gamma =NULL, seasonal = “additive”) tes.ka.add tes.ka.multi = HoltWinters(Jawa.ts, alpha = NULL, beta = NULL, gamma = NULL, seasonal = “multiplicative”) tes.ka.multi

Step 5: MENGHITUNG PENGUKURAN KESALAHAN TERKECIL MODEL ADDITIVE&MULTIPLICATIVE

##METODE ADDITIVE mse.add = tes.ka.add\(SSE/frequency(tes.ka.add\)fitted) rmse.add = sqrt(mse.add) mape.add = mean(abs(Jawa.ts-tes.ka.add$fitted[,1])/Jawa.ts)*100 mse.add rmse.add mape.add

##METODE MULTIPLICATIVE mse.multi = tes.ka.multi\(SSE/frequency(tes.ka.multi\)fitted) rmse.multi = sqrt(mse.multi) mape.multi = mean(abs(Jawa.ts-tes.ka.multi$fitted[,1])/Jawa.ts)*100 mse.multi rmse.multi mape.multi

#Step 6: PERAMALAN MODEL TERBAIK->ADDITIVE-MAPE KECIL pred.ka = predict(tes.ka.add,12) pred.ka

pred.ka = predict(tes.ka.multi,12) pred.ka # 4. PLOT PREDIKSI plot(Jawa.ts, main = “Jumlah Penumpang Kereta Api Wilayah Jawa”, lwd = 2, col = “blue”, xlim = c(2020,2024), type =“o”, pch = 15) limitData = end(Jawa.ts)[1]+(end(Jawa.ts)[2]-1)/frequency(Jawa.ts) abline(v=limitData, lty=4) lines(tes.ka.add$fitted[,1], lwd = 2, col = “red”, type = “o”, pch = 12) lines(pred.ka, col = “green”, type = “o”, pch = 10) legend(“top”, legend = c(“Data Aktual”, “Fitted Value”, “Prediksi”), col = c(“blue”, “red”, “green”), lty = 1, pch = c(15, 12, 10), cex = 0.6, inset = 0.01)