1 Mempersiapkan Data
#Data Preparation
#Input Data
data_pelabuhan <- read.csv2("C:/Users/ACER/Downloads/Supervised Learning Komputasi/data_penyeberangan_merak_bakauheni1.csv")
library(ggplot2)
library(forecast)
library(stats)
library(knitr)
library(kableExtra)
library(plotly)
library(rmdformats)
Input data jumlah kendaraan yang menyebrang di pelabuhan Merak-Bakauheni
pada tahun 2023 - 2024 dalam bentuk csv, untuk membaca bentuk file
tersebut dibantu oleh fungsi read.csv2. Menggunakan fungsi read.csv
karena data dari file tersebut dipisahkan atau dibatasi oleh semi-colon
(;) buka dengan koma (,) sehingga R menampilkan data dengan 1 kolom.
Menggunakan package ggplot2 untuk membantu membuat visualisasi
seperti grafik atau diagram. Package forecast membantu untuk
fungsi ts bisa diplotkan, sedangkan package stats untuk
menjalankan fungsi ts (“time series”).
2 Tabel Dataset Jumlah Kendaraan yang Menyeberang
# Menampilkan tabel data yang rapi dengan efek zebra/hover
kable(head(data_pelabuhan, 24), caption = "Data Penyeberangan Merak-Bakauheni") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"),
full_width = FALSE,
position = "center")
| Nama_Bulan | Tahun | Jumlah_Kendaraan_Ribuan |
|---|---|---|
| Januari | 2023 | 420 |
| Februari | 2023 | 410 |
| Maret | 2023 | 430 |
| April | 2023 | 780 |
| Mei | 2023 | 460 |
| Juni | 2023 | 470 |
| Juli | 2023 | 460 |
| Agustus | 2023 | 480 |
| September | 2023 | 440 |
| Oktober | 2023 | 450 |
| November | 2023 | 460 |
| Desember | 2023 | 600 |
| Januari | 2024 | 450 |
| Februari | 2024 | 440 |
| Maret | 2024 | 460 |
| April | 2024 | 820 |
| Mei | 2024 | 490 |
| Juni | 2024 | 500 |
| Juli | 2024 | 495 |
| Agustus | 2024 | 510 |
| September | 2024 | 470 |
| Oktober | 2024 | 480 |
| November | 2024 | 490 |
| Desember | 2024 | 640 |
Tabel tersebut menampilkan data yang memuat bulan, tahun, dan jumlah
kendaraan yang melakukan penyebrangan di pelabuhan Merak-Bakauheni
3 NO 1. Objek Time Series & Plot Runtun Waktu
# 2. Soal 1: Buat objek ts (dimulai Jan 2023, frequency = 12) & Plot
kendaraan_ts <- ts(data_pelabuhan$Jumlah_Kendaraan_Ribuan, start = c(2023, 1), frequency = 12)
plt <- autoplot(kendaraan_ts) +
ggtitle("Plot Runtun Waktu Penyeberangan Merak-Bakauheni (2023-2024)") +
xlab("Tahun") + ylab("Jumlah Kendaraan (Ribu)") +
theme_minimal()
ggplotly(plt)
Berdasarkan grafik tersebut terlihat dipengaruhi oleh pola musiman,
namun juga terdapat pola trend yang ditunjukkan oleh jumlah kendaraan
yang datang diawal tahun lebih sedikit tetapi di pertengahan hingga
akhir tahun jumlahnya mengalami kenaikan. Jumlah kendaraan yang
menyeberang di pelabuhan Merak-Bakauheni menunjukan pola bahwa puncak
grafik berulang di satu waktu yang sama di tahun 2023 dan 2024. Tabel
data sebelumnya menunjukan bahwa jumlah kendaraan terbanyak yang datang
ke pelabuhan adalah di bulan april, dengan jumlah 780 ribu di tahun 2023
dan 820 ribu di tahun 2024. Tidak hanya di bulan april saja jumlah
kendaran juga melonjak di bulan desember mencapai 600 kendaraan pada
tahun 2023 dan 640 kendaraan pada tahun 2024. Lonjakan tersebut juga
dapat dikaitkan dengan momen hari raya Idul Fitri pada bulan april dan
momen hari libur Natal dan tahun baru pada bulan desember.
4 Seasonal Plot & Boxplot
# 3. Soal 4: Seasonal Plot & Boxplot per Bulan
# Seasonal Plot
plot1 <- ggseasonplot(kendaraan_ts, year.labels = TRUE) +
ggtitle("Seasonal Plot Penyeberangan per Tahun") +
theme_minimal()
ggplotly(plot1)
Grafik tersebut menunjukan bahwa pola musiman atau lonjakan jumlah
kendaraan dari masing-masing tahun berada di bulan april dan bulan
desember, jumlah tertinggi berada di bulan april tahun 2024 yang
mencapai jumlah 820 ribu kendaaraan, selain itu jumlah kendaraan semakin
meningkat di tahun 2024 dibanding dengan tahun 2023.
# 1. Ubah variabel Bulan menjadi factor dengan urutan kalender yang benar
data_pelabuhan$Nama_Bulan <- factor(data_pelabuhan$Nama_Bulan, levels = c("Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"))
# Boxplot per Bulan
Bxplt <- boxplot(data_pelabuhan$Jumlah_Kendaraan_Ribuan ~ data_pelabuhan$Nama_Bulan,
main = "Boxplot Jumlah Kendaraan per Bulan",
xlab = "Bulan", ylab = "Ribuan Kendaraan", col = "grey")
Diagram Boxplot tersebut menunjukkan ukuran kotak yang sempit yang
artinya variasi pada data sedikit atau jumlah kendaraan yang datang di
masing-masing blan itu stabil, dibuktikan juga dengan tidak adanya nilai
pencilan atau (Outlier). Terdapat lonjakan yang cukup
signifikan di bulan april yang menyentuh angka 800 ribu kendaraan,
jumlah terkecil atau paling sedikit berada di bulan jnuari hingga maret.
selain itu juga terdapat lonjakan di akhir tahun yang menyentuh angka
600 ribu kendaraan, hal ini di asumsikan dengan hadirnya libur tahun
baru dan natal.