Analisis ini dilakukan untuk melihat pergerakan harga saham INDF, UNVR, dan MYOR berdasarkan data historis harga saham.

library(quantmod)
library(ggplot2)
library(dplyr)
library(tidyr)
INDF = read.csv("~/SMT 6/BINTEL/Data Historis INDF.csv")
UNVR = read.csv("~/SMT 6/BINTEL/Data Historis UNVR.csv")
MYOR = read.csv("~/SMT 6/BINTEL/Data Historis MYOR.csv")

str(INDF)
## 'data.frame':    473 obs. of  7 variables:
##  $ Tanggal   : chr  "16/03/2026" "13/03/2026" "12/03/2026" "11/03/2026" ...
##  $ Terakhir  : num  5.97 5.9 6.05 6.03 6 ...
##  $ Pembukaan : num  5.97 6.05 6.05 6.05 6.2 ...
##  $ Tertinggi : num  6.05 6.08 6.05 6.1 6.2 ...
##  $ Terendah  : num  5.9 5.9 5.92 6 5.97 ...
##  $ Vol.      : chr  "6,54M" "12,19M" "21,62M" "10,99M" ...
##  $ Perubahan.: chr  "1,27%" "-2,48%" "0,41%" "0,42%" ...
str(UNVR)
## 'data.frame':    473 obs. of  7 variables:
##  $ Tanggal   : chr  "16/03/2026" "13/03/2026" "12/03/2026" "11/03/2026" ...
##  $ Terakhir  : num  1.88 1.87 1.89 2 1.95 ...
##  $ Pembukaan : num  1.88 1.89 2.01 1.97 1.91 ...
##  $ Tertinggi : num  1.88 1.91 2.02 2.05 1.95 ...
##  $ Terendah  : num  1.82 1.87 1.89 1.95 1.89 ...
##  $ Vol.      : chr  "6,57M" "12,15M" "27,88M" "19,40M" ...
##  $ Perubahan.: chr  "0,27%" "-1,06%" "-5,50%" "2,83%" ...
str(MYOR)
## 'data.frame':    473 obs. of  7 variables:
##  $ Tanggal   : chr  "16/03/2026" "13/03/2026" "12/03/2026" "11/03/2026" ...
##  $ Terakhir  : num  1.83 1.79 1.85 1.87 1.92 ...
##  $ Pembukaan : num  1.78 1.84 1.86 1.92 1.94 ...
##  $ Tertinggi : num  1.84 1.85 1.9 1.92 1.97 ...
##  $ Terendah  : num  1.74 1.78 1.83 1.86 1.88 ...
##  $ Vol.      : chr  "5,38M" "9,21M" "16,88M" "9,76M" ...
##  $ Perubahan.: chr  "2,51%" "-3,50%" "-0,80%" "-2,60%" ...

Pre-processing data

dataINDF = data.frame(Time = as.Date(INDF$Tanggal, format = '%d/%m/%Y'), Price = INDF$Terakhir)
dataUNVR = data.frame(Time = as.Date(UNVR$Tanggal, format = '%d/%m/%Y'), Price = UNVR$Terakhir)
dataMYOR = data.frame(Time = as.Date(MYOR$Tanggal, format = '%d/%m/%Y'), Price = MYOR$Terakhir)

str(dataINDF)
## 'data.frame':    473 obs. of  2 variables:
##  $ Time : Date, format: "2026-03-16" "2026-03-13" ...
##  $ Price: num  5.97 5.9 6.05 6.03 6 ...
str(dataUNVR)
## 'data.frame':    473 obs. of  2 variables:
##  $ Time : Date, format: "2026-03-16" "2026-03-13" ...
##  $ Price: num  1.88 1.87 1.89 2 1.95 ...
str(dataMYOR)
## 'data.frame':    473 obs. of  2 variables:
##  $ Time : Date, format: "2026-03-16" "2026-03-13" ...
##  $ Price: num  1.83 1.79 1.85 1.87 1.92 ...

Plot Time Series Saham INDF

ggtsINDF <- ggplot(dataINDF, aes(x=Time, y=Price)) +
  geom_line() +
  xlab("Date")

ggtsINDF + scale_x_date(date_labels = "%b %Y", date_breaks = "3 months" )+
  theme_minimal()+
  theme(axis.text.x=element_text(angle=50, hjust=1)) +
geom_vline(xintercept = as.Date("2025-01-01"), linetype = 2, color = 2,
           linewidth = 1) +
geom_vline(xintercept = as.Date("2026-01-01"), linetype = 2, color = 2,
           linewidth = 1) 

Interpretasi

Grafik di atas menunjukkan pola time series untuk harga saham penutupan INDF selama 3 tahun terakhir. Dari grafik tersebut, dapat diketahui bahwa puncak harga tertinggi saham INDF terjadi di Agustus 2025.

Plot Time Series Saham UNVR

ggtsUNVR <- ggplot(dataUNVR, aes(x=Time, y=Price)) +
  geom_line() +
  xlab("Date")

ggtsUNVR + scale_x_date(date_labels = "%b %Y", date_breaks = "3 months" )+
  theme_minimal()+
  theme(axis.text.x=element_text(angle=50, hjust=1)) +
geom_vline(xintercept = as.Date("2025-01-01"), linetype = 2, color = 2,
           linewidth = 1) +
  geom_vline(xintercept = as.Date("2026-01-01"), linetype = 2, color = 2,
             linewidth = 1)  

Interpretasi

Grafik di atas menunjukkan pola time series untuk harga saham penutupan UNVR selama 3 tahun terakhir. Dari grafik tersebut, dapat diketahui bahwa puncak harga tertinggi saham UNVR terjadi di antara bulan Mei 2024 dan Agustus 2024.

Plot Time Series Saham MYOR

ggtsMYOR <- ggplot(dataMYOR, aes(x=Time, y=Price)) +
  geom_line() +
  xlab("Date")

ggtsMYOR + scale_x_date(date_labels = "%b %Y", date_breaks = "3 months" )+
  theme_minimal()+
  theme(axis.text.x=element_text(angle=50, hjust=1)) +
  geom_vline(xintercept = as.Date("2025-01-01"), linetype = 2, color = 2,
             linewidth = 1) +
  geom_vline(xintercept = as.Date("2026-01-01"), linetype = 2, color = 2,
             linewidth = 1)

Interpretasi

Grafik di atas menunjukkan pola time series untuk harga saham penutupan MYOR selama 3 tahun terakhir. Dari grafik tersebut, dapat diketahui bahwa puncak harga tertinggi saham MYOR terjadi di antara bulan Agustus 2024 dan November 2024.

Multiple Grafik Time Series

dataINDF$variable = "INDF"
dataUNVR$variable = "UNVR"
dataMYOR$variable = "MYOR"

data_all = rbind(dataINDF, dataUNVR, dataMYOR)

datagab = data_all[data_all$Time > as.Date("2024-03-16"),] %>%
  filter(variable == "INDF" | variable == "UNVR" | variable == "MYOR")

head(datagab)
##         Time Price variable
## 1 2026-03-16 5.975     INDF
## 2 2026-03-13 5.900     INDF
## 3 2026-03-12 6.050     INDF
## 4 2026-03-11 6.025     INDF
## 5 2026-03-10 6.000     INDF
## 6 2026-03-09 6.050     INDF
ggplot(datagab, aes(x = Time, y = Price, color = variable)) +
  geom_line(size=1) +
  theme(legend.position = "bottom") +
  geom_vline(xintercept = as.Date("2025-01-01"), linetype = 2, color = 2,
             linewidth = 1) +
  geom_vline(xintercept = as.Date("2026-01-01"), linetype = 2, color = 2,
             linewidth = 1) +
  labs(
    title = "Perbandingan Harga Saham INDF, UNVR, dan MYOR",
    x = "Tanggal",
    y = "Harga Penutupan",
    color = "Saham"
  )

Interpretasi

Grafik time series tersebut menunjukkan pergerakan harga penutupan saham INDF, UNVR, dan MYOR selama 3 tahun terakhir. Dapat dilihat bahwa saham INDF memiliki harga yang paling tinggi dibandingan dengan saham UNVR dan MYOR. Saham MYOR menunjukkan pergerakan yang relative lebih stabil.

Eksplorasi dengan Boxplot

ggplot(data_all, aes(x = variable, y = Price, fill = variable)) +
  geom_boxplot() +
  theme_minimal() +
  labs(
    title = "Boxplot Harga Saham INDF, UNVR, dan MYOR",
    x = "Saham",
    y = "Harga Penutupan",
    fill = "Saham"
  )

Interpretasi

Dari boxplot tersebut, dapat diketahui bahwa harga saham penutupan paling tinggi dala 3 tahun terakhir adalah INDF serta rentang yang lebih besar. Saham MYOR memiliki harga saham penutupan sedikit lebih tinggi dibandingan dengan UNVR. Akan tetapi, tentag harga yang dimiliki MYOR sangat kecil jika dibandingkan dengan INDF dan UNVR. Oleh karena itu, dapat disimpulkan bahwa INDF memiliki harga saham tertinggi diantara UNVR dan MYOR dan saham MYOR relative paling stabil.

Kesimpulan

Berdasarkan hasil analisis time series harga saham INDF, UNVR, dan MYOR, dapat diketahui bahwa ketiga saham memiliki pola pergerakan harga yang berbeda. Visualisasi time series menunjukkan adanya perubahan harga dari waktu ke waktu, sehingga pergerakan masing-masing saham dapat diamati dengan lebih jelas. Saham INDF terlihat memiliki harga penutupan paling tinggi dibandingkan UNVR dan MYOR. Saham UNVR menunjukkan pergerakan yang cukup fluktuatif, sedangkan MYOR memiliki pergerakan yang relatif lebih stabil.

Perbedaan harga antar saham terlihat lebih jelas ketika grafik time series digabungkan, dengan INDF berada pada posisi paling tinggi dibandingkan dua saham lainnya. Sementara itu, boxplot menunjukkan bahwa INDF memiliki median harga penutupan tertinggi, sedangkan UNVR memiliki sebaran harga yang lebih lebar dibandingkan MYOR. Visualisasi ini menunjukkan bahwa INDF, UNVR, dan MYOR memiliki pergerakan serta persebaran harga yang berbeda.