Input Data

# Data
head(ekonomi)
## # A tibble: 6 × 3
##   date                 ihsg usd_idr
##   <dttm>              <dbl>   <dbl>
## 1 2024-01-10 00:00:00 7574.   15690
## 2 2024-01-11 00:00:00 7114.   15840
## 3 2024-01-12 00:00:00 7080.   16090
## 4 2025-01-01 00:00:00 7109.   16300
## 5 2025-01-02 00:00:00 6271.   16580
## 6 2025-01-03 00:00:00 6511.   16560
# Format Tanggal
ekonomi$date <- as.Date(
  format(ekonomi$date, "%Y-%d-%m"),
  format = "%Y-%m-%d"
)


# Informasi Data
str(ekonomi)
## tibble [12 × 3] (S3: tbl_df/tbl/data.frame)
##  $ date   : Date[1:12], format: "2024-10-01" "2024-11-01" ...
##  $ ihsg   : num [1:12] 7574 7114 7080 7109 6271 ...
##  $ usd_idr: num [1:12] 15690 15840 16090 16300 16580 ...

Statistika Deskriptif

summary(ekonomi)
##       date                 ihsg         usd_idr     
##  Min.   :2024-10-01   Min.   :6271   Min.   :15690  
##  1st Qu.:2024-12-24   1st Qu.:6887   1st Qu.:16199  
##  Median :2025-03-16   Median :7112   Median :16378  
##  Mean   :2025-03-17   Mean   :7159   Mean   :16316  
##  3rd Qu.:2025-06-08   3rd Qu.:7507   3rd Qu.:16565  
##  Max.   :2025-09-01   Max.   :8061   Max.   :16665

Boxplot

# Boxplot IHSG
ggplot(ekonomi,
       aes(x = "", y = ihsg)) +
  geom_boxplot() +
  labs(
    title = "Boxplot IHSG",
    x = "",
    y = "IHSG"
  ) +
  theme(
    axis.text.x =
      element_text(angle = 90)
  )

# Boxplot Kurs
ggplot(ekonomi,
       aes(x = "", y = usd_idr)) +
  geom_boxplot() +
  labs(
    title = "Boxplot USD/IDR",
    x = "",
    y = "USD/IDR"
  ) +
  theme(
    axis.text.x =
      element_text(angle = 90)
  )

Time Series Plot

# Time Series Plot Close Price IHSG
ggplot(ekonomi,
       aes(x = date,
           y = ihsg,)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  stat_peaks(
    geom = "label",
    span = 15
  ) +
  labs(
    title = "Time Series Plot Close Price IHSG",
    subtitle = "Periode Oktober 2024 - September 2025",
    x = "Tanggal",
    y = "Close Price IHSG"
  ) +
  scale_x_date(
    date_labels = "%Y-%m"
  )+
  theme(
    axis.text.x =
      element_text(angle = 50,
                   hjust = 1)
  )

# Time Series Plot Kurs
ggplot(ekonomi,
       aes(x = date,
           y = usd_idr,)) +
  geom_line(linewidth = 1) +
  geom_point(size = 2) +
  stat_peaks(
    geom = "label",
    span = 15
  ) +
  labs(
    title = "Time Series Plot Kurs USD/IDR",
    subtitle = "Periode Oktober 2024 - September 2025",
    x = "Tanggal",
    y = "USD/IDR"
  ) +
  scale_x_date(
    date_labels = "%Y-%m"
  )+
  theme(
    axis.text.x =
      element_text(angle = 50,
                   hjust = 1)
  )

Scatter Plot dengan Garis Regresi

ggplot(ekonomi,
       aes(x = ihsg,
           y = usd_idr)) +
  geom_point() +
  geom_smooth(
    method = "lm",
    se = FALSE,
    color = "red"
  ) +
  labs(
    title = "Scatter Plot dengan Garis Regresi",
    subtitle = "IHSG vs Kurs",
    x = "Close Price IHSG",
    y = "USD/IDR"
  )
## `geom_smooth()` using formula = 'y ~ x'