Dataset yang digunakan berasal dari sistem bike sharing di
Washington, D.C., yang tersedia pada UCI Machine Learning
Repository (Fanaee-T,
2013). Dataset ini mencatat aktivitas penyewaan sepeda setiap hari
selama dua tahun (2011–2012). Dalam analisis ini, variabel utama yang
menjadi fokus adalah cnt (jumlah sepeda yang disewa pada
suatu hari). Tujuan eksplorasi adalah memahami bagaimana jumlah
penyewaan berubah sepanjang waktu, mengidentifikasi pola musiman
(seasonality), tren jangka panjang (trend), serta
mendeteksi adanya anomali dari dataset ini.
# Memuat dataset
bike_data <- read.csv(file.choose())
colnames(bike_data)
## [1] "instant" "dteday" "season" "yr" "mnth"
## [6] "holiday" "weekday" "workingday" "weathersit" "temp"
## [11] "atemp" "hum" "windspeed" "casual" "registered"
## [16] "cnt"
str(bike_data)
## 'data.frame': 731 obs. of 16 variables:
## $ instant : int 1 2 3 4 5 6 7 8 9 10 ...
## $ dteday : chr "2011-01-01" "2011-01-02" "2011-01-03" "2011-01-04" ...
## $ season : int 1 1 1 1 1 1 1 1 1 1 ...
## $ yr : int 0 0 0 0 0 0 0 0 0 0 ...
## $ mnth : int 1 1 1 1 1 1 1 1 1 1 ...
## $ holiday : int 0 0 0 0 0 0 0 0 0 0 ...
## $ weekday : int 6 0 1 2 3 4 5 6 0 1 ...
## $ workingday: int 0 0 1 1 1 1 1 0 0 1 ...
## $ weathersit: int 2 2 1 1 1 1 2 2 1 1 ...
## $ temp : num 0.344 0.363 0.196 0.2 0.227 ...
## $ atemp : num 0.364 0.354 0.189 0.212 0.229 ...
## $ hum : num 0.806 0.696 0.437 0.59 0.437 ...
## $ windspeed : num 0.16 0.249 0.248 0.16 0.187 ...
## $ casual : int 331 131 120 108 82 88 148 68 54 41 ...
## $ registered: int 654 670 1229 1454 1518 1518 1362 891 768 1280 ...
## $ cnt : int 985 801 1349 1562 1600 1606 1510 959 822 1321 ...
Berdasarkan output di atas, dataset ini memiliki 16
variabel dari total 731 observasi (1 Januari
2011 – 31 Desember 2012). Dalam analisis time series ini, fokus utama
adalah variabel cnt yang merupakan total jumlah penyewaan
sepeda (gabungan pengguna kasual dan terdaftar) setiap harinya.
Selain itu, terdapat dua variabel waktu penting yang akan digunakan:
dteday : kolom tanggal yang akan
dijadikan sumbu X (waktu)
season : musim (Spring, Summer,
Fall, Winter) yang akan digunakan untuk melihat pola musiman
Variabel lain seperti temp (suhu), hum
(kelembapan), dan windspeed (kecepatan angin) dapat
digunakan sebagai variabel pendukung untuk menjelaskan anomali atau
lonjakan penyewaan yang tidak biasa.
Untuk keperlua analisis time series, terdapat dua penyesuaian pada data:
# Ubah kolom tanggal
bike_data$dteday <- as.Date(bike_data$dteday)
# Ubah season menjadi kategorik (untuk boxplot musiman)
bike_data$season <- factor(bike_data$season,
levels = c(1,2,3,4),
labels = c("Spring", "Summer", "Fall", "Winter"))
Kolom dteday diubah ke format Date
→ agar R mengenali kolom ini sebagai waktu, sehingga dapat digunakan
sebagai sumbu X pada grafik garis.
Kolom season diubah menjadi faktor
(kategorik) → agar ketika dibuat boxplot musiman, label musim
yang muncul adalah “Spring”, “Summer”, “Fall”, “Winter”, bukan angka 1,
2, 3, 4.
Dengan perubahan ini, visualisasi yang akan dibuat menjadi lebih mudah dipahami. Misalnya, pada grafik tren penyewaan, sumbu X akan menampilkan tanggal dengan urutan yang benar. Sementara pada boxplot musiman, label musim akan langsung terbaca tanpa perlu mengingat kode angka.
datatable(head(bike_data, 10), options = list(pageLength = 5, autoWidth = TRUE))
Bagaimana pola harian penyewaan sepeda dari waktu ke waktu? Apakah ada fluktuasi yang mencolok?
ggplot(bike_data, aes(x = dteday, y = cnt)) +
geom_line(color = "#6F34DB", alpha = 0.7) +
labs(
title = "Tren Harian Penyewaan Sepeda",
subtitle = "Periode 2011–2012",
x = "Tanggal",
y = "Jumlah Penyewaan (cnt)",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Grafik di atas menampilkan jumlah penyewaan sepeda setiap hari selama dua tahun (2011–2012). Dari visualisasi ini terlihat bahwa penyewaan tidak bersifat konstan, tetapi mengalami fluktuasi yang cukup besar dari hari ke hari.
Terdapat periode dengan penyewaan yang relatif tinggi (mencapai di atas 7.000) dan periode dengan penyewaan yang sangat rendah (di bawah 1.000). Pola ini mengindikasikan adanya faktor eksternal, seperti musim, cuaca, atau hari libur, yang memengaruhi keputusan masyarakat untuk bersepeda.
Bagaimana tren jangka panjang penyewaan sepeda setelah fluktuasi harian dihaluskan?
bike_data$MA7 <- rollmean(bike_data$cnt, 7, fill = NA)
ggplot(bike_data, aes(x = dteday)) +
geom_line(aes(y = cnt), color = "grey", alpha = 0.5) +
geom_line(aes(y = MA7), color = "#6F34DB", size = 1) +
labs(
title = "Moving Average 7 Hari Penyewaan Sepeda",
subtitle = "Garis abu-abu = data asli, garis oranye = moving average 7 hari",
x = "Tanggal",
y = "Jumlah Penyewaan (cnt)",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Pada grafik ini, garis abu-abu menunjukkan data asli yang sangat fluktuatif, sedangkan garis oranye menunjukkan moving average 7 hari (rata-rata bergerak mingguan). Dengan menghaluskan fluktuasi harian, pola jangka panjang menjadi lebih mudah diamati.
Terlihat bahwa penyewaan sepeda cenderung meningkat pada pertengahan tahun (musim semi hingga musim panas) dan menurun pada awal serta akhir tahun (musim dingin). Tren ini berulang secara konsisten pada kedua tahun, mengindikasikan adanya pola musiman yang kuat.
Bulan apa yang memiliki penyewaan sepeda tertinggi dan terendah?
bike_data$month <- factor(bike_data$mnth,
levels = 1:12,
labels = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des"))
ggplot(bike_data, aes(x = month, y = cnt)) +
geom_boxplot(fill = "#6F34DB", color = "black", alpha = 0.7) +
labs(
title = "Distribusi Penyewaan Sepeda per Bulan",
subtitle = "Penyewaan tertinggi terjadi pada bulan Juni–September",
x = "Bulan",
y = "Jumlah Penyewaan (cnt)",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Boxplot di atas menunjukkan distribusi penyewaan sepeda untuk setiap bulan dalam setahun. Terlihat bahwa bulan Juni, Juli, Agustus, dan September memiliki penyewaan tertinggi dengan median di atas 5.000. Hal ini sesuai dengan musim panas di Washington, D.C., di mana cuaca hangat mendukung aktivitas bersepeda.
Sebaliknya, bulan Januari dan Februari memiliki penyewaan terendah, dengan median di bawah 1.000. Selain itu, terdapat banyak pencilan (outlier) di bulan-bulan tertentu, menunjukkan adanya hari-hari dengan penyewaan yang jauh lebih tinggi atau lebih rendah dari biasanya.
Apakah musim memengaruhi jumlah penyewaan sepeda?
ggplot(bike_data, aes(x = season, y = cnt)) +
geom_boxplot(fill = "#6F34DB", color = "black", alpha = 0.7) +
labs(
title = "Distribusi Penyewaan Sepeda per Musim",
subtitle = "Musim panas (Summer) memiliki penyewaan tertinggi",
x = "Musim",
y = "Jumlah Penyewaan (cnt)",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Grafik ini mengelompokkan penyewaan berdasarkan empat musim. Musim panas (Summer) memiliki distribusi penyewaan tertinggi, diikuti musim gugur (Fall), musim semi (Spring), dan terendah musim dingin (Winter).
Hal ini mengonfirmasi bahwa cuaca yang hangat dan nyaman menjadi faktor utama pendorong minat masyarakat untuk bersepeda. Sebaliknya, suhu dingin dan potensi hujan/salju di musim dingin menurunkan jumlah penyewaan secara signifikan.
Bagaimana perbandingan penyewaan antar bulan di tahun 2011 dan 2012?
library(viridis)
# Buat kolom tahun dalam format angka asli
bike_data$tahun <- bike_data$yr + 2011
heatmap_data <- bike_data %>%
group_by(tahun, month = mnth) %>%
summarise(rata_rata = mean(cnt, na.rm = TRUE), .groups = "drop")
ggplot(heatmap_data, aes(x = month, y = as.factor(tahun), fill = rata_rata)) +
geom_tile() +
scale_fill_viridis(option = "plasma", name = "Rata-rata\nPenyewaan") +
scale_x_continuous(breaks = 1:12, labels = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des")) +
labs(
title = "Heatmap Rata-rata Penyewaan per Bulan",
subtitle = "Tahun 2011 vs 2012 | Semakin terang = semakin tinggi penyewaan",
x = "Bulan",
y = "Tahun",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Heatmap ini membandingkan rata-rata penyewaan per bulan antara tahun 2011 dan 2012. Warna yang lebih terang (kuning/hijau) menunjukkan penyewaan yang lebih tinggi, sedangkan warna gelap (ungu) menunjukkan penyewaan yang lebih rendah.
Terlihat bahwa di tahun 2012, penyewaan pada bulan-bulan puncak (Juni–September) lebih tinggi dibandingkan tahun 2011, ditandai dengan warna yang lebih terang pada periode tersebut. Hal ini menunjukkan adanya pertumbuhan penggunaan sepeda dari tahun pertama ke tahun kedua. Bulan Januari dan Desember tetap menjadi periode terendah di kedua tahun, dengan warna cenderung gelap. Pola ini konsisten dengan temuan sebelumnya bahwa musim dingin menurunkan minat bersepeda.
Apakah terjadi peningkatan penyewaan dari tahun 2011 ke 2012?
# Buat kolom tahun
bike_data$tahun <- ifelse(bike_data$yr == 0, 2011, 2012)
# Agregasi rata-rata penyewaan per bulan per tahun
bulanan_tahunan <- bike_data %>%
group_by(month = mnth, tahun) %>%
summarise(rata_rata = mean(cnt, na.rm = TRUE), .groups = "drop")
ggplot(bulanan_tahunan, aes(x = month, y = rata_rata, color = as.factor(tahun))) +
geom_line(size = 1) +
geom_point(size = 2) +
scale_x_continuous(breaks = 1:12, labels = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des")) +
scale_color_manual(values = c("#6F34DB", "#E67E22"), name = "Tahun") +
labs(
title = "Perbandingan Rata-rata Penyewaan Sepeda per Bulan",
subtitle = "Tren 2011 vs 2012",
x = "Bulan",
y = "Rata-rata Jumlah Penyewaan",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Line chart ini membandingkan rata-rata penyewaan sepeda per bulan antara tahun 2011 dan 2012. Secara umum, terlihat bahwa tahun 2012 memiliki rata-rata penyewaan yang lebih tinggi dibandingkan tahun 2011 di semua bulan.
Peningkatan paling signifikan terjadi pada bulan Maret hingga September, di mana selisih antara 2012 dan 2011 cukup mencolok. Bulan September mencatat peningkatan tertinggi (dari sekitar 4.600 menjadi 7.000). Hal ini menunjukkan adanya pertumbuhan penggunaan sepeda dari tahun pertama ke tahun kedua, yang mungkin disebabkan oleh meningkatnya popularitas layanan atau perubahan kebiasaan masyarakat.
Meskipun demikian, pola musiman tetap konsisten di kedua tahun. Baik 2011 maupun 2012, penyewaan tertinggi terjadi pada bulan Juni–September (musim panas), sementara terendah pada bulan Januari–Februari (musim dingin). Pola yang sama ini mengonfirmasi bahwa faktor musim (cuaca) merupakan pendorong utama perubahan jumlah penyewaan sepeda.
Secara bisnis, temuan ini mengindikasikan bahwa layanan bike sharing mengalami pertumbuhan tahunan yang positif, namun tetap sangat bergantung pada kondisi cuaca. Strategi peningkatan layanan di musim dingin (misalnya promo atau insentif) dapat dipertimbangkan untuk mengurangi dampak musiman. memengaruhi kenyamanan dalam menggunakan sepeda.
Di tanggal berapa dalam sebulan penyewaan biasanya paling tinggi?
# Buat kolom tanggal dalam bulan
bike_data$day <- as.integer(format(bike_data$dteday, "%d"))
heatmap_day_month <- bike_data %>%
group_by(month = mnth, day) %>%
summarise(rata_rata = mean(cnt, na.rm = TRUE), .groups = "drop")
ggplot(heatmap_day_month, aes(x = month, y = day, fill = rata_rata)) +
geom_tile() +
scale_fill_viridis(option = "plasma", name = "Rata-rata\nPenyewaan") +
scale_x_continuous(breaks = 1:12, labels = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des")) +
scale_y_continuous(breaks = c(1,5,10,15,20,25,30)) +
labs(
title = "Heatmap Pola Penyewaan Sepeda",
subtitle = "Semakin terang = semakin banyak penyewaan (berdasarkan tanggal dalam bulan)",
x = "Bulan",
y = "Tanggal (dalam bulan)",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Heatmap ini menunjukkan rata-rata penyewaan sepeda berdasarkan kombinasi bulan (sumbu X) dan tanggal dalam bulan (sumbu Y). Warna yang lebih terang menandakan penyewaan yang lebih tinggi.
Dari visualisasi ini terlihat bahwa tidak ada pola yang konsisten antara tanggal tertentu dalam bulan dengan tinggi rendahnya penyewaan. Warna cenderung merata di setiap kolom bulan, tanpa garis horizontal yang mencolok. Artinya, tanggal 1, 15, atau 31 tidak secara signifikan lebih ramai dibanding tanggal lainnya.
Yang justru terlihat jelas adalah perbedaan antar bulan (kolom). Bulan Juni–September (musim pa nas) didominasi warna terang, menunjukkan penyewaan tinggi di hampir semua tanggal. Sebaliknya, bulan Januari–Februari didominasi warna gelap, menunjukkan penyewaan rendah di sepanjang bulan.
Temuan penting: Dalam konteks bisnis, faktor tanggal (awal/pertengahan/akhir bulan) tidak terlalu memengaruhi keputusan masyarakat untuk bersepeda. Yang jauh lebih dominan adalah faktor musim dan cuaca. Promosi atau strategi operasional dapat lebih difokuskan pada musim ramai (Juni–September) tanpa perlu terlalu memperhatikan posisi tanggal dalam bulan.
Bagaimana perbandingan tren pengguna kasual dan terdaftar seiring waktu?
ggplot(bike_data, aes(x = dteday)) +
geom_area(aes(y = casual, fill = "Casual"), alpha = 0.8) +
geom_area(aes(y = registered, fill = "Registered"), alpha = 0.6) +
scale_fill_manual(values = c("Casual" = "black", "Registered" = "#6F34DB"), name = "Jenis Pengguna") +
labs(
title = "Perbandingan Pengguna Casual vs Registered",
subtitle = "Didominasi pengguna terdaftar (registered)",
x = "Tanggal",
y = "Jumlah Pengguna",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Grafik stacked area di atas menunjukkan perbandingan jumlah pengguna kasual (
casual) dan pengguna terdaftar (registered) dari waktu ke waktu selama periode 2011–2012.Terlihat sangat jelas bahwa pengguna terdaftar mendominasi total penyewaan sepeda (area oranye) dibandingkan pengguna kasual (area biru). Sepanjang periode pengamatan, kontribusi pengguna terdaftar selalu jauh lebih besar, dengan puncaknya mencapai sekitar 5.000–6.000 pengguna pada bulan-bulan ramai (musim panas). Sementara itu, pengguna kasual paling tinggi hanya mencapai sekitar 2.000–3.000 pengguna.
Pola musiman juga terlihat pada kedua segmen. Baik pengguna kasual maupun terdaftar, keduanya menunjukkan peningkatan signifikan pada bulan Juni–September (musim panas) dan penurunan pada musim dingin. Namun, lonjakan musiman pada pengguna terdaftar jauh lebih tajam dibandingkan pengguna kasual.
Temuan bisnis:
Mayoritas pelanggan adalah pengguna yang sudah terdaftar (mungkin pelanggan loyal atau pengguna langganan). Ini menunjukkan bahwa model bisnis berbasis keanggotaan berjalan dengan baik.
Pengguna kasual (yang mungkin menyewa sesekali) memiliki porsi lebih kecil. Strategi untuk menarik lebih banyak pengguna kasual (misalnya promo harian atau paket wisata) dapat menjadi peluang pertumbuhan.
Musim panas tetap menjadi periode puncak untuk kedua segmen. Ketersediaan sepeda perlu ditingkatkan pada periode ini untuk mengakomodasi lonjakan permintaan.
Apakah pola penyewaan berbeda antara hari kerja dan akhir pekan?
# Buat label hari kerja/libur
bike_data$hari_jenis <- ifelse(bike_data$workingday == 1, "Hari Kerja", "Akhir Pekan/Libur")
# Agregasi rata-rata per hari jenis per bulan
hari_jenis_bulanan <- bike_data %>%
group_by(month = mnth, hari_jenis) %>%
summarise(rata_rata = mean(cnt, na.rm = TRUE), .groups = "drop")
ggplot(hari_jenis_bulanan, aes(x = month, y = rata_rata, color = hari_jenis)) +
geom_line(size = 1) +
geom_point(size = 2) +
scale_x_continuous(breaks = 1:12, labels = c("Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ags","Sep","Okt","Nov","Des")) +
scale_color_manual(values = c("#6F34DB", "#E67E22"), name = "Tipe Hari") +
labs(
title = "Perbandingan Penyewaan: Hari Kerja vs Akhir Pekan/Libur",
subtitle = "Pola penyewaan sepanjang tahun berdasarkan tipe hari",
x = "Bulan",
y = "Rata-rata Jumlah Penyewaan",
caption = "Sumber: UCI Bike Sharing Dataset"
) +
theme_minimal()
Grafik di atas membandingkan rata-rata penyewaan sepeda antara hari kerja dan akhir pekan/libur sepanjang tahun. Pola menarik yang terlihat: Pada bulan-bulan sepi (Januari–Februari dan November–Desember), rata-rata penyewaan hampir sama antara hari kerja dan akhir pekan. Kedua garis berada di kisaran 1.000–2.000 penyewaan, menunjukkan bahwa saat musim dingin, minat bersepeda rendah terlepas dari tipe hari.
Namun, perbedaan mulai terlihat pada bulan Maret hingga Oktober (musim semi hingga musim gugur). Pada periode ini, hari kerja justru memiliki rata-rata penyewaan yang lebih tinggi dibanding akhir pekan. Hal ini berbeda dengan asumsi umum bahwa akhir pekan lebih ramai untuk rekreasi. Penjelasan yang mungkin: Di Washington, D.C., sepeda mungkin lebih banyak digunakan sebagai alat transportasi harian (komuter) oleh pengguna terdaftar untuk pergi bekerja atau ke kampus. Akhir pekan, meskipun ada pengguna rekreasi, totalnya tidak melebihi volume pengguna komuter di hari kerja.
Temuan bisnis:
Strategi pemasaran perlu membedakan target: di hari kerja, fokus pada pengguna komuter (misalnya program langganan, rute kantor). Di akhir pekan, fokus pada pengguna rekreasi (misalnya paket wisata, diskon keluarga).
Ketersediaan sepeda di hari kerja harus lebih tinggi karena volume penyewa lebih besar, terutama di musim panas.
Di musim dingin, perbedaan tidak signifikan, sehingga efisiensi operasional dapat dilakukan tanpa membedakan tipe hari.
Hari apa saja yang memiliki penyewaan sangat tinggi atau sangat rendah?
# Hitung batas anomali (mean ± 2 sd)
mean_cnt <- mean(bike_data$cnt, na.rm = TRUE)
sd_cnt <- sd(bike_data$cnt, na.rm = TRUE)
upper_limit <- mean_cnt + 2 * sd_cnt
lower_limit <- mean_cnt - 2 * sd_cnt
# Tandai hari anomali
bike_data$anomali <- ifelse(bike_data$cnt > upper_limit | bike_data$cnt < lower_limit, "Anomali", "Normal")
ggplot(bike_data, aes(x = dteday, y = cnt)) +
geom_line(color = "grey", alpha = 1) +
geom_point(aes(color = anomali), size = 2) +
scale_color_manual(values = c("Anomali" = "#6F34DB", "Normal" = NA)) +
labs(
title = "Deteksi Anomali Penyewaan Sepeda",
subtitle = "Titik ungu = hari dengan penyewaan sangat tinggi atau sangat rendah",
x = "Tanggal",
y = "Jumlah Penyewaan (cnt)",
caption = "Batas anomali: mean ± 2 sd"
) +
theme_minimal() +
guides(color = guide_legend(title = "Status"))
Grafik ini menampilkan jumlah penyewaan sepeda harian sepanjang tahun 2011–2012, dengan titik-titik ungu yang menyoroti hari-hari anomali (penyewaan sangat tinggi atau sangat rendah). Batas anomali ditentukan menggunakan rumus statistik mean ± 2 × standar deviasi.
Dari visualisasi terlihat bahwa sebagian besar anomali adalah titik-titik tinggi (penyewaan jauh di atas normal), terutama terkonsentrasi pada periode musim panas (Juni–September) di kedua tahun. Beberapa titik anomali rendah juga muncul, terutama di musim dingin atau saat cuaca buruk.
Yang menarik, anomali tinggi tidak tersebar merata tetapi cenderung mengelompok di bulan-bulan tertentu. Ini mengindikasikan bahwa lonjakan penyewaan tidak terjadi secara acak, melainkan terkait dengan faktor musiman (cuaca hangat) atau mungkin peristiwa khusus seperti liburan nasional atau akhir pekan panjang. Sebaliknya, anomali rendah (penyewaan sangat rendah) lebih jarang dan biasanya terjadi di luar musim panas, kemungkinan karena hujan lebat, salju, atau suhu ekstrem.
Temuan bisnis:
Tim operasional perlu mengantisipasi lonjakan permintaan di musim panas dengan memastikan ketersediaan sepeda yang cukup, terutama pada hari-hari yang diprediksi sebagai anomali tinggi.
Anomali rendah dapat dijadikan indikator untuk evaluasi: apakah karena cuaca buruk, atau ada masalah operasional (misalnya sepeda rusak, aplikasi error)?
Dengan memantau hari-hari anomali, perusahaan dapat menyusun strategi mitigasi risiko (misalnya notifikasi cuaca ke pengguna, atau program insentif di hari sepi).
Dari analisis 10 visualisasi time series yang telah dilakukan, diperoleh beberapa temuan utama:
Penyewaan sepeda bersifat musiman. Grafik line chart, moving average, dan boxplot per bulan/musim menunjukkan bahwa penyewaan tertinggi terjadi pada bulan Juni–September (musim panas) dan terendah pada Januari–Februari (musim dingin). Pola ini konsisten di kedua tahun.
Terdapat pertumbuhan tahunan. Perbandingan rata-rata penyewaan per bulan antara tahun 2011 dan 2012 menunjukkan bahwa tahun 2012 memiliki angka penyewaan yang lebih tinggi di semua bulan, dengan peningkatan paling signifikan pada bulan Maret hingga September.
Hari kerja lebih ramai dari akhir pekan. Pada bulan Maret–Oktober, rata-rata penyewaan di hari kerja lebih tinggi dibanding akhir pekan, mengindikasikan bahwa sepeda lebih banyak digunakan sebagai alat transportasi harian (komuter) oleh pengguna terdaftar, bukan hanya untuk rekreasi.
Pengguna terdaftar mendominasi. Stacked area
plot menunjukkan bahwa kontribusi pengguna terdaftar
(registered) jauh lebih besar dibanding pengguna kasual
(casual) sepanjang periode pengamatan, dengan lonjakan
musiman yang lebih tajam pada segmen terdaftar.
Anomali penyewaan terkonsentrasi di musim panas. Deteksi anomali menunjukkan bahwa hari-hari dengan penyewaan sangat tinggi sebagian besar terjadi pada bulan Juni–September, sementara anomali rendah lebih jarang dan biasanya terjadi di luar musim panas.
Temuan ini menunjukkan bahwa penggunaan sepeda bersifat musiman dan sangat dipengaruhi oleh kenyamanan cuaca, dengan pola yang berbeda antara pengguna rutin (komuter) dan pengguna rekreasi. Faktor cuaca (suhu, musim) menjadi pendorong utama fluktuasi permintaan, sementara hari kerja menjadi periode dengan volume tertinggi.
Bagi Pengelola Layanan Bike Sharing:
Tingkatkan ketersediaan sepeda pada bulan Juni–September (musim panas) untuk mengakomodasi lonjakan permintaan, terutama pada hari kerja. Sebaliknya, lakukan perawatan armada pada musim dingin ketika permintaan rendah.
Kembangkan strategi pemasaran yang berbeda: di hari kerja, fokus pada pengguna komuter dengan program langganan atau rute kantor. Di akhir pekan, fokus pada pengguna rekreasi dengan paket wisata atau diskon keluarga.
Manfaatkan data anomali untuk mitigasi risiko. Pantau hari-hari dengan penyewaan sangat rendah untuk mengevaluasi apakah disebabkan cuaca buruk atau masalah operasional, lalu tindak lanjuti dengan notifikasi cuaca atau program insentif.
Bagi Analisis Lanjutan:
Lakukan pemodelan prediktif (misalnya ARIMA, Prophet) untuk meramalkan permintaan berdasarkan pola musiman dan data cuaca, guna mendukung perencanaan operasional yang lebih akurat.
Analisis lebih lanjut untuk mengukur pengaruh variabel cuaca (suhu, kelembapan, kecepatan angin) terhadap jumlah penyewaan menggunakan model regresi atau korelasi.
Pisahkan analisis antara pengguna kasual dan terdaftar untuk merancang strategi retensi dan akuisisi yang lebih tepat sasaran.
Tools: RStudio, RMarkdown, ggplot2,
dplyr, lubridate, zoo,
scales, viridis, DT
Dataset: Bike Sharing Dataset (UCI Machine Learning Repository) Tersedia di link ini
Referensi: Anisa Nurizki, M.Si. (2026). Visualisasi Data Time Series. [online] Tersedia di: https://rpubs.com/annisanzikyy/visdat-ts
Publikasi: Laporan ini diunggah ke RPubs sebagai bagian dari portofolio profesional