Data dan Studi Kasus

Dinas Perhubungan mencatat jumlah kendaraan yang menyeberang di Pelabuhan Merak–Bakauheni setiap bulan, Januari 2023–Desember 2024 (ribuan kendaraan):

Tahun Jan Feb Mar Apr Mei Jun Jul Agu Sep Okt Nov Des
2023 420 410 430 780 460 470 460 480 440 450 460 600
2024 450 440 460 820 490 500 495 510 470 480 490 640
  1. Buat objek ts dan plot runtut waktunya di R.

  2. Identifikasi apakah data menunjukkan komponen tren, dan jelaskan alasannya.

  3. Identifikasi bulan-bulan puncak kunjungan — kaitkan dengan peristiwa nyata (Lebaran, libur Nataru).

  4. Buat seasonal plot & boxplot per bulan, lalu simpulkan: musiman atau siklis?

Penyelesaian

1. Buat objek ts dan plot runtut waktunya di R.

  1. Membuat Objek Time Series (ts)
# Memasukkan data ke dalam vektor
data_kendaraan <- c(
  420, 410, 430, 780, 460, 470, 460, 480, 440, 450, 460, 600, # Tahun 2023
  450, 440, 460, 820, 490, 500, 495, 510, 470, 480, 490, 640  # Tahun 2024
)

# Membuat objek time series (frequency = 12 untuk bulanan, start = c(2023, 1))
ts_kendaraan <- ts(data_kendaraan, start = c(2023, 1), frequency = 12)

# Menampilkan objek ts
print(ts_kendaraan)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2023 420 410 430 780 460 470 460 480 440 450 460 600
## 2024 450 440 460 820 490 500 495 510 470 480 490 640
# 1. Mengubah objek ts atau vektor data menjadi matriks per bulan (2 baris untuk 2023 dan 2024, 12 kolom untuk bulan)
matrix_kendaraan <- matrix(data_kendaraan, nrow = 2, byrow = TRUE)

# 2. Membuat Data Frame dengan baris sebagai Bulan dan kolom sebagai Tahun
df_bulan <- data.frame(
  Bulan = c("Jan", "Feb", "Mar", "Apr", "Mei", "Jun", 
            "Jul", "Agu", "Sep", "Okt", "Nov", "Des"),
  Tahun_2023 = matrix_kendaraan[1, ],
  Tahun_2024 = matrix_kendaraan[2, ]
)

# 3. Menghitung rata-rata gabungan dari kedua tahun untuk menentukan peringkat
df_bulan$Rata_Rata <- (df_bulan$Tahun_2023 + df_bulan$Tahun_2024) / 2

# 4. Mengurutkan berdasarkan rata-rata dari yang tertinggi ke terendah
df_sorted <- df_bulan[order(df_bulan$Rata_Rata, decreasing = TRUE), ]

# Menampilkan hasil akhir di console
print(df_sorted)
##    Bulan Tahun_2023 Tahun_2024 Rata_Rata
## 4    Apr        780        820     800.0
## 12   Des        600        640     620.0
## 8    Agu        480        510     495.0
## 6    Jun        470        500     485.0
## 7    Jul        460        495     477.5
## 5    Mei        460        490     475.0
## 11   Nov        460        490     475.0
## 10   Okt        450        480     465.0
## 9    Sep        440        470     455.0
## 3    Mar        430        460     445.0
## 1    Jan        420        450     435.0
## 2    Feb        410        440     425.0
  1. Plot Runtun Waktu di R
# Membuat plot runtun waktu
plot(ts_kendaraan, 
     main = "Jumlah Kendaraan Merak-Bakauheni",
     ylab = "Jumlah Kendaraan (ribu)",
     xlab = "Tahun",
     col = "gold", 
     type = "o",
     lwd = 3)

2. Identifikasi apakah data menunjukkan komponen tren, dan jelaskan alasannya.

Ya, data menunjukkan adanya komponen tren positif (meningkat).
Alasannya yaitu: Jika kita membandingkan bulan yang sama antara tahun 2023 dan 2024, hampir seluruh nilai di tahun 2024 lebih tinggi dibandingkan tahun 2023. Sebagai contoh, pada bulan Januari terjadi peningkatan dari 420 ribu menjadi 450 ribu, bulan Juni naik dari 470 ribu menjadi 500 ribu, dan bulan Desember meningkat dari 600 ribu menjadi 640 ribu kendaraan. Secara keseluruhan, volume penyeberangan kendaraan mengalami kenaikan dari tahun 2023 ke tahun 2024.

3. Identifikasi bulan-bulan puncak kunjungan — kaitkan dengan peristiwa nyata (Lebaran, libur Nataru).

# 1. Mengubah objek ts atau vektor data menjadi matriks per bulan (2 baris untuk 2023 dan 2024)
matrix_kendaraan <- matrix(data_kendaraan, nrow = 2, byrow = TRUE)

# 2. Membuat Data Frame dengan kolom Bulan, Tahun_2023, dan Tahun_2024 saja
df_bulan <- data.frame(
  Bulan = c("Jan", "Feb", "Mar", "Apr", "Mei", "Jun", 
            "Jul", "Agu", "Sep", "Okt", "Nov", "Des"),
  Tahun_2023 = matrix_kendaraan[1, ],
  Tahun_2024 = matrix_kendaraan[2, ]
)

# 3. Mengurutkan berdasarkan Tahun_2024 dari yang tertinggi ke terendah
df_sorted <- df_bulan[order(df_bulan$Tahun_2024, decreasing = TRUE), ]

# Menampilkan hasil akhir di console
print(df_sorted)
##    Bulan Tahun_2023 Tahun_2024
## 4    Apr        780        820
## 12   Des        600        640
## 8    Agu        480        510
## 6    Jun        470        500
## 7    Jul        460        495
## 5    Mei        460        490
## 11   Nov        460        490
## 10   Okt        450        480
## 9    Sep        440        470
## 3    Mar        430        460
## 1    Jan        420        450
## 2    Feb        410        440

Berdasarkan data, terdapat dua puncak utama (peak season) yang terjadi setiap tahunnya:

  • April (Puncak Tertinggi Utama): pada bulan april jumlah kendaraan melonjak drastis mencapai 780 ribu kendaraan pada tahun 2023 dan naik lagi menjadi 820 ribu kendaraan pada tahun 2024. Lonjakan ini sangat berkorelasi dengan momen Mudik Lebaran (Idul Fitri), di mana pada tahun 2023 dan 2024 perayaan Idul Fitri jatuh pada bulan April sehingga mobilitas masyarakat untuk melakukan perjalanan arus mudik mengalami peningkatan pesat.

  • Desember (Puncak Kedua): pada bulan desember jumlah kendaraan naik signifikan sebesar 600 ribu kendaraan pada tahun 2023 dan meningkat menjadi 640 ribu kendaraan pada tahun 2024. Peningkatan ini berkorelasi oleh masa Libur Nataru (Natal dan Tahun Baru) serta libur panjang sekolah akhir tahun sehingga mobilitas masyarakat untuk melakukan perjalanan dan berlibur mengalami peningkatan pesat.

4. Buat seasonal plot & boxplot per bulan, lalu simpulkan: musiman atau siklis?

  1. seasonal plot
# Seasonal plot (Plot musiman untuk melihat pola antar tahun)
library(forecast)
seasonplot(ts_kendaraan, 
           col = c("red", "gold"), 
           year.labels = TRUE, 
           main = "Seasonal Plot: Penyeberangan Merak-Bakauheni",
           ylab = "Jumlah Kendaraan (ribu)", 
           xlab = "Bulan")

b. boxplot

# Boxplot per bulan
boxplot(ts_kendaraan ~ cycle(ts_kendaraan),
        main = "Boxplot Bulanan Jumlah Kendaraan",
        xlab = "Bulan",
        ylab = "Jumlah Kendaraan (ribu)",
        col = "gold",
        names = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"))

Kesimpulan : Berdasarkan seasonal plot & boxplot per bulan, data penyeberangan Merak-Bakauheni menunjukkan pola musiman yang sangat konsisten dari tahun 2023 ke tahun 2924. Dari seasonal plot terlihat jelas bahwa mayoritas bulan berjalan normal dan stabil (di kisaran 400–500 ribu kendaraan), yang juga dikonfirmasi oleh boxplot dengan rentang kotak sempit di bulan-bulan biasa. Namun, kestabilan ini rutin melonjak drastis dua kali dalam setahun, yaitu pada bulan April dan Desember. Bulan April mencatatkan lonjakan paling ekstrem hingga menyentuh angka 800 ribu kendaraan yang menjadikannya outlier paling mencolok akibat tradisi mudik Lebaran. Sementara itu, bulan Desember menjadi puncak keramaian kedua (di kisaran 600 ribu kendaraan) karena libur akhir tahun. Ditambah lagi, grafik tahun 2024 yang konsisten berada di atas 2023 membuktikan adanya tren kenaikan volume penyeberangan secara keseluruhan dari waktu ke waktu.