=== MEMULAI R
rm(list=ls()) # Menghapus semua dataset dan variabel
graphics.off() # Menutup semua grafiks'
=== MEMANGGIL DATA
setwd("D:/kerja things")
aset <- read.csv("Aset.csv", sep=',')
aset <- data.frame(aset)
str(aset)
## 'data.frame': 25 obs. of 3 variables:
## $ Tahun: int 2018 2019 2020 2021 2022 2018 2019 2020 2021 2022 ...
## $ Bank : chr "Mandiri" "Mandiri" "Mandiri" "Mandiri" ...
## $ Aset : int 1202252094 1318246335 1429334484 1355555571 1570332063 1296898292 1416758840 1610065344 1678097734 1865639010 ...
== MENGUBAH TIPE DATA
aset$Tahun <- as.numeric(aset$Tahun)
aset$Bank <- as.factor(aset$Bank)
aset$Aset <- as.numeric(aset$Aset)
str(aset)
## 'data.frame': 25 obs. of 3 variables:
## $ Tahun: num 2018 2019 2020 2021 2022 ...
## $ Bank : Factor w/ 5 levels "BCA","BNI","BRI",..: 5 5 5 5 5 3 3 3 3 3 ...
## $ Aset : num 1.20e+09 1.32e+09 1.43e+09 1.36e+09 1.57e+09 ...
== PERBANDINGAN PERTUMBUHAN ASET PADA 5 BANK TERBESAR DI
INDONESIA
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
linechart <- ggplot(data=aset, aes(x = Tahun, y= Aset, color=Bank, group=Bank)) + geom_line() +
labs(tittle="Pertumbuhan Jumlah Aset Tahun 2018-2022", x="Bank", y="Jumlah Aset (juta rupiah)")
print(linechart)

== PERBANDINGAN RATA-RATA ASET PADA 5 BANK TERBESAR DI
INDONESIA
p1 <- aggregate(x=list(Aset=aset$Aset), FUN=mean, by = list(Bank=aset$Bank))
#Plot grafik bar chart
barchart <- ggplot(data=p1, aes(x= Bank, y=Aset, fill=Bank, label=Aset)) +
geom_bar(stat = "identity") +
labs(tittle="Rata-rata Aset Tahun 2018-2022", x="Bank",
y="Rata-rata Aset (juta rupiah)") +
theme(axis.text.x = element_text(angle=45,vjust = 0.5),
plot.title = element_text(hjust=0.5)) +
geom_text(position = position_dodge(1.2))
barchart
## Warning: `position_dodge()` requires non-overlapping x intervals

=== MEMANGGIL DATA
setwd("D:/kerja things")
digibank <- read.csv("digibank.csv", sep=',')
digibank <- data.frame(digibank)
str(digibank)
## 'data.frame': 15 obs. of 4 variables:
## $ Tahun : int 2018 2019 2020 2021 2022 2018 2019 2020 2021 2022 ...
## $ Bank : chr "Mandiri" "Mandiri" "Mandiri" "Mandiri" ...
## $ Jumlah_Transaksi: num 1602 1249 1074 1224 1994 ...
## $ Volume_Transaksi: num 705 925 1203 1640 2435 ...
== MENGUBAH TIPE DATA
digibank$Tahun <- as.numeric(digibank$Tahun)
digibank$Bank <- as.factor(digibank$Bank)
digibank$Jumlah_Transaksi <- as.numeric(digibank$Jumlah_Transaksi)
digibank$Volume_Transaksi <- as.numeric(digibank$Volume_Transaksi)
str(digibank)
## 'data.frame': 15 obs. of 4 variables:
## $ Tahun : num 2018 2019 2020 2021 2022 ...
## $ Bank : Factor w/ 3 levels "BCA","BRI","Mandiri": 3 3 3 3 3 2 2 2 2 2 ...
## $ Jumlah_Transaksi: num 1602 1249 1074 1224 1994 ...
## $ Volume_Transaksi: num 705 925 1203 1640 2435 ...
== PLOT PERTUMBUHAN DIGITAL BANKING PADA 3 BANK TERBESAR DI
INDONESIA
line1 <- ggplot(data=digibank, aes(x = Tahun, y= Jumlah_Transaksi,
color=Bank, group=Bank)) +
geom_line() +
labs(tittle="Pertumbuhan Jumlah Transaksi Digital Banking Tahun 2018-2022",
x="Bank", y="Jumlah Transaksi (juta)")
line1

line2 <- ggplot(data=digibank, aes(x = Tahun, y= Volume_Transaksi,
color=Bank, group=Bank)) +
geom_line() +
labs(tittle="Pertumbuhan Volume Transaksi Digital Banking Tahun 2018-2022",
x="Bank", y="Volume Transaksi (triliun)")
line2

=== MEMANGGIL DATA
setwd("D:/kerja things")
digital_banking <- read.csv("digital banking.csv", sep=',')
digital_banking <- data.frame(digital_banking)
str(digital_banking)
## 'data.frame': 30 obs. of 4 variables:
## $ Tahun : int 2018 2019 2020 2021 2022 2018 2019 2020 2021 2022 ...
## $ Bank : chr "Mandiri" "Mandiri" "Mandiri" "Mandiri" ...
## $ Segmen: chr "Jumlah Transaksi (juta)" "Jumlah Transaksi (juta)" "Jumlah Transaksi (juta)" "Jumlah Transaksi (juta)" ...
## $ Jumlah: num 1602 1249 1074 1224 1994 ...
== MENGUBAH TIPE DATA
digital_banking$Tahun <- as.numeric(digital_banking$Tahun)
digital_banking$Bank <- as.factor(digital_banking$Bank)
digital_banking$Segmen <- as.factor(digital_banking$Segmen)
digital_banking$Jumlah <- as.numeric(digital_banking$Jumlah)
str(digital_banking)
## 'data.frame': 30 obs. of 4 variables:
## $ Tahun : num 2018 2019 2020 2021 2022 ...
## $ Bank : Factor w/ 3 levels "BCA","BRI","Mandiri": 3 3 3 3 3 2 2 2 2 2 ...
## $ Segmen: Factor w/ 2 levels "Jumlah Transaksi (juta)",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ Jumlah: num 1602 1249 1074 1224 1994 ...
== PERBANDINGAN TRANSAKSI DIGITAL BANKING PADA 3 BANK TERBESAR DI
INDONESIA
p2 <- aggregate(x=list(Jumlah=digital_banking$Jumlah),
FUN=sum,
by = list(Bank=digital_banking$Bank,
Segmen=digital_banking$Segmen))
#Plot grafik
barplot <- ggplot(data=p2, aes(x = Bank, y=Jumlah,
fill=Segmen, label = Jumlah)) +
geom_bar(stat="identity", position="dodge") +
labs(title="Transaksi Digital Banking Berdasarkan Jenis Segmen pada Tahun 2018-2022",
x="Bank", y="Transaksi") +
theme(axis.text.x = element_text(angle=45,vjust = 0.5),
plot.title = element_text(hjust=0.5)) +
geom_text(position = position_dodge(1))
barplot + facet_wrap( ~ Segmen, ncol=1)

=== MEMANGGIL DATA
setwd("D:/kerja things")
transaksi <- read.csv("transaksi mandiri.csv", sep=',')
str(transaksi)
## 'data.frame': 18 obs. of 1 variable:
## $ Jumlah.Transaksi.Per.Triwulan: int 314 311 288 303 289 365 280 234 244 242 ...
== MENGUBAH DATA
transaksi=ts(transaksi,start=c(2018,3),end=c(2022,4),frequency=4)
str(transaksi)
## Time-Series [1:18, 1] from 2018 to 2023: 314 311 288 303 289 365 280 234 244 242 ...
## - attr(*, "dimnames")=List of 2
## ..$ : NULL
## ..$ : chr "Jumlah.Transaksi.Per.Triwulan"
transaksi
## Qtr1 Qtr2 Qtr3 Qtr4
## 2018 314 311
## 2019 288 303 289 365
## 2020 280 234 244 242
## 2021 200 210 199 208
## 2022 193 205 200 197
== PLOT TIME SERIES
plot(transaksi, ylab="Jumlah Transaksi (triliun)", xlab="Tahun", main="Jumlah Transaksi Time Series Plot")

== MENGECEK DATA STASIONER ATAU TIDAK
library(tseries)
## Warning: package 'tseries' was built under R version 4.3.2
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
adf.test(x = transaksi)
##
## Augmented Dickey-Fuller Test
##
## data: transaksi
## Dickey-Fuller = -1.9392, Lag order = 2, p-value = 0.5956
## alternative hypothesis: stationary
== MENGECEK DATA MASUK KEDALAM TREN ATAU SEASONAL
plot(decompose(transaksi,type = "additive"))

== HOLT EXPONENTIAL SMOOTHING
trans_Holt <- HoltWinters(transaksi,gamma=FALSE)
trans_Holt #parameters terbaik alpha:0.488662, beta:0.0829
## Holt-Winters exponential smoothing with trend and without seasonal component.
##
## Call:
## HoltWinters(x = transaksi, gamma = FALSE)
##
## Smoothing parameters:
## alpha: 0.5393342
## beta : 0.0002626302
## gamma: FALSE
##
## Coefficients:
## [,1]
## a 196.338697
## b -3.017467
trans_Holt$fitted #fittedvalue pada level,tren
## xhat level trend
## 2019 Q1 308.0000 311.0000 -3.000000
## 2019 Q2 294.2105 297.2133 -3.002833
## 2019 Q3 295.9494 298.9510 -3.001588
## 2019 Q4 289.1988 292.2013 -3.002572
## 2020 Q1 327.0891 330.0810 -2.991835
## 2020 Q2 298.6938 301.6924 -2.998505
## 2020 Q3 260.7946 263.8022 -3.007669
## 2020 Q4 248.7266 251.7367 -3.010048
## 2021 Q1 242.0877 245.0987 -3.011001
## 2021 Q2 216.3714 219.3884 -3.016962
## 2021 Q3 209.9172 212.9351 -3.017865
## 2021 Q4 201.0098 204.0292 -3.019411
## 2022 Q1 201.7614 204.7798 -3.018421
## 2022 Q2 194.0164 197.0361 -3.019662
## 2022 Q3 196.9221 199.9402 -3.018106
## 2022 Q4 195.5645 198.5821 -3.017670
== EVALUASI HASIL FORECASTING
SSE <- trans_Holt$SSE
MSE <- SSE/nrow(trans_Holt$fitted)
MSE
## [1] 949.3949
MAPE <- mean(abs(residuals(trans_Holt)/transaksi)*100)
MAPE
## [1] 8.264634
== PREDIKSI JUMLAH TRANSAKSI 2023-2024
trans_predict <- predict(trans_Holt,8)
trans_predict
## Qtr1 Qtr2 Qtr3 Qtr4
## 2023 193.3212 190.3038 187.2863 184.2688
## 2024 181.2514 178.2339 175.2164 172.1990
== PLOT DATA AKTUAL VS DATA PREDIKSI
plot(transaksi, main = "Jumlah Transaksi Tunai di Mesim ATM", lwd = 2, col = "blue", xlim= c(2018,2025), ylim = c(100,400), type="o",pch=15)
limitDate = end(transaksi)[1]+(end(transaksi)[2]-1)/frequency(transaksi)
abline(v=limitDate, lty=4)
lines(trans_Holt$fitted[,1],lwd=2,col="red",type="o",pch=12)
lines(trans_predict,lwd=2,col="green",type="o",pch=10)
legend ("topleft",legend=c("Data Aktual","Fitted Value", "Peramalan"),col=c("blue","red","green"), lty=1, cex = 0.7, inset=0.02)
