Hubungan Defisit APBN dengan EPS BBRI
Di awal tahun 2026 ini muncul berita bahwa defisit APBN terhadap PDB di penutupan tahun 2025 sebesar 2,92% (cek di sini). Nilai ini hampir mendekati batas maksimum yang ditetapkan undang-undang yaitu 3%.
Rasio defisit APBN terhadap PDB ini menjadi salah satu indikator bagi investor luar negeri untuk mengambil keputusan dalam berinvestasi di Indonesia. Semakin besar rasio defisit APBN terhadap PDB maka risiko semakin besar dan menyebabkan capital outflow.
Yang menarik, ternyata rasio defisit APBN terhadap PDB ini memiliki hubungan linier dengan earning per share (EPS) saham bank BRI (BBRI). Kami telah mengumpulkan data rasio defisit APBN terhadap PDB serta EPS per akhir tahun dari tahun 2020-2024. Data ini kemudian dianalisis dengan regresi linier sederhana.

Berdasarkan analisis regresi ini, diperoleh hubungan linier antara rasio defisit APBN (x) dengan EPS (y) sebagai berikut:
$$y=-59.283x+498.726$$
Persamaan ini memiliki koefisien korelasi yang cukup kuat (>0,95).
Dengan persamaan ini, kita dapat memprediksi (belum tentu benar juga ya), bahwa EPS BBRI di akhir 2025 adalah sebesar 325.6211 atau turun 17% yoy. Ini nanti bisa divalidasi saat laporan keuangan Q4 BBRI sudah dirilis.
Bagaimana dengan akhir tahun 2026?
Menurut data terbaru, target defisit APBN 2026 adalah 2,68%. Maka dengan formula yang sama, diprediksi bahwa EPS BBRI di akhir tahun 2026 menjadi 339.8489, atau sedikit meningkat (sekitar +4,37%) dibandingkan dengan prediksi EPS di akhir tahun 2025.
So, apakah menguntungkan jika invest di BBRI saat ini? kok kayaknya enggak ya…kecuali ada gebrakan dari pemerintah buat perbaiki ekonomi.
Seperti biasa, sebagai transparansi, skrip R untuk analisis data dapat dilihat di bawah ini.
> #memanggil library
> library(dplyr)
> library(ggplot2)
> library(ggrepel)
>
> #input data
> data_bri <- data.frame(readxl::read_excel("analisis BBRI.xlsx", sheet="input"))
> data_keuangan <- data_bri %>%
+ mutate(CKPNperTK = CKPN/TK*100)
>
> #menampilkan data periode dan EPS
> data_keuangan[,c("PERIOD","EPS")]
PERIOD EPS
1 2020 123.09
2 2021 204.98
3 2022 337.63
4 2023 396.54
5 2024 396.91
>
> #analisis regresi linier
> linear.model <- lm(EPS ~ DAP, data=data_keuangan)
> summary(linear.model)
Call:
lm(formula = EPS ~ DAP, data = data_keuangan)
Residuals:
1 2 3 4 5
9.70 -18.08 -21.78 -4.37 34.53
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 498.726 25.666 19.431 0.000298 ***
DAP -59.283 6.523 -9.088 0.002815 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 26.5 on 3 degrees of freedom
Multiple R-squared: 0.9649, Adjusted R-squared: 0.9533
F-statistic: 82.59 on 1 and 3 DF, p-value: 0.002815
>
> # visualisasi
> data_visualisasi <- data_keuangan %>%
+ select(PERIOD, EPS, DAP)
>
> ggplot(data_visualisasi, aes(x = DAP, y = EPS, label = PERIOD)) +
+ geom_point(
+ size = 3.5,
+ shape = 21,
+ fill = "#2E86AB",
+ color = "black",
+ stroke = 0.8
+ ) +
+ geom_smooth(
+ method = "lm",
+ se = TRUE,
+ color = "#2E86AB",
+ fill = "#A6CFE2",
+ linewidth = 1.2,
+ alpha = 0.3
+ ) +
+ geom_text_repel(
+ size = 3.5,
+ color = "black",
+ box.padding = 0.5,
+ point.padding = 0.5,
+ max.overlaps = Inf,
+ segment.color = "grey50",
+ segment.size = 0.3,
+ min.segment.length = 0
+ ) +
+ labs(
+ x = "Defisit APBN pada Akhir Tahun",
+ y = "Earning per Share"
+ ) +
+ theme_classic(base_size = 12) +
+ theme(
+ # Axis styling
+ axis.line = element_line(linewidth = 1, color = "black"),
+ axis.ticks = element_line(linewidth = 0.8, color = "black"),
+ axis.ticks.length = unit(0.15, "cm"),
+ axis.text = element_text(color = "black", size = 11),
+ axis.title = element_text(color = "black", size = 12, face = "bold"),
+ axis.title.x = element_text(margin = margin(t = 10)),
+ axis.title.y = element_text(margin = margin(r = 10)),
+
+ # Panel styling
+ panel.background = element_rect(fill = "white", color = NA),
+ panel.grid.major = element_blank(),
+ panel.grid.minor = element_blank(),
+
+ # Plot styling
+ plot.background = element_rect(fill = "white", color = NA),
+ plot.margin = margin(10, 15, 10, 10),
+
+ # Legend (if needed)
+ legend.position = "none"
+ )
`geom_smooth()` using formula = 'y ~ x'
> # prediksi EPS khir tahun 2025
> newdata <- data.frame(DAP = 2.92) # defisit APBN 2025 sebesar 2.92%
> EPS_pred <- predict(linear.model, newdata)
> EPS_pred
1
325.6211
> growth_yoy <- (EPS_pred[[1]] - 396.91)/396.91*100
> growth_yoy
[1] -17.96099
> # prediksi EPS akhir tahun 2026
> newdata <- data.frame(DAP = 2.68) # defisit APBN 2026 sebesar 2.68%
> EPS_pred <- predict(linear.model, newdata)
> EPS_pred
1
339.8489