=== 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)