Dataset yang digunakan berasal dari sistem bike sharing di Washington, D.C., yang tersedia di UCI Machine Learning Repository. Dataset ini mencatat jumlah penyewaan sepeda setiap hari selama dua tahun, beserta informasi kondisi lingkungan dan waktu seperti suhu (temp), musim (season), kondisi cuaca (weathersit), jenis hari (workingday), bulan (mnth), dan kecepatan angin (windspeed). Dengan adanya variabel-variabel tersebut, analisis tidak hanya melihat berapa banyak sepeda yang disewa, tetapi juga mencoba memahami dalam kondisi apa penyewaan tersebut meningkat atau menurun. Beberapa pertanyaan yang ingin dijawab dalam analisis ini adalah:
Untuk menjawab pertanyaan tersebut digunakan visualisasi bivariate, yaitu visualisasi yang melihat hubungan antara dua variabel. Jenis grafik yang digunakan disesuaikan dengan tipe data, seperti scatter plot dan 2D density plot untuk numerik vs numerik, serta boxplot, violin plot, dan barplot untuk membandingkan variabel kategorik dengan jumlah penyewaan. Melalui visualisasi ini, diharapkan pola kecenderungan yang mempengaruhi faktor-faktor penggunaan sepeda dapat lebih mudah dilihat dan dipahami.
ggplot(bike_data, aes(x = temp, y = cnt)) +
geom_point(color = "#1F4E79", alpha = 0.5) +
labs(title = "Hubungan Suhu dan Jumlah Penyewaan Sepeda",
x = "Suhu (temp)",
y = "Jumlah Penyewaan (cnt)")
Scatter plot menunjukkan bahwa terdapat kecenderungan hubungan positif antara suhu dan jumlah penyewaan sepeda. Ketika suhu meningkat, jumlah penyewaan juga cenderung meningkat. Walaupun titik-titik tidak membentuk garis lurus sempurna, pola naik tetap terlihat cukup jelas.
Hal ini menunjukkan bahwa masyarakat lebih nyaman bersepeda saat suhu hangat dibandingkan saat suhu rendah. Cuaca yang terlalu dingin dapat mengurangi minat untuk beraktivitas di luar ruangan. Dengan demikian, suhu menjadi salah satu faktor penting yang mempengaruhi naik turunnya jumlah penyewaan sepeda setiap hari.
ggplot(bike_data, aes(x = factor(season), y = cnt)) +
geom_boxplot(fill = "#5DADE2", color = "#1F4E79") +
labs(title = "Jumlah Penyewaan Sepeda Berdasarkan Musim",
x = "Musim",
y = "Jumlah Penyewaan (cnt)")
Boxplot menunjukkan adanya perbedaan jumlah penyewaan pada setiap musim. Beberapa musim memiliki nilai tengah yang lebih tinggi dibandingkan musim lainnya, yang berarti tingkat penggunaan sepeda tidak merata sepanjang tahun.
Perbedaan ini kemungkinan disebabkan oleh kondisi lingkungan yang berubah sesuai musim. Musim dengan cuaca yang lebih nyaman cenderung meningkatkan aktivitas bersepeda. Sebaliknya, musim dengan kondisi ekstrem dapat menurunkan jumlah penyewaan.
bike_data$weathersit <- factor(bike_data$weathersit)
ggplot(bike_data, aes(x = weathersit, y = cnt)) +
geom_violin(fill = "#2E86C1", alpha = 0.6) +
geom_boxplot(width = 0.1, fill = "white", outlier.shape = NA) +
labs(title = "Distribusi Penyewaan Berdasarkan Kondisi Cuaca",
x = "Kondisi Cuaca",
y = "Jumlah Penyewaan (cnt)")
Violin plot memperlihatkan perbedaan bentuk distribusi penyewaan pada berbagai kondisi cuaca. Pada kondisi cuaca yang lebih baik, distribusi terlihat lebih lebar pada nilai tinggi, menandakan lebih banyak hari dengan penyewaan besar.
Sebaliknya, pada kondisi cuaca kurang mendukung, distribusi lebih terkonsentrasi pada nilai rendah. Hal ini memperlihatkan bahwa cuaca merupakan faktor penting dalam menentukan intensitas penggunaan sepeda.
bike_data$workingday <- factor(
bike_data$workingday,
levels = c(0,1),
labels = c("Akhir Pekan", "Hari Kerja")
)
ggplot(bike_data, aes(x = workingday, y = cnt, fill = workingday)) +
geom_violin(alpha = 0.6) +
geom_boxplot(width = 0.15, fill = "white", outlier.shape = NA) +
scale_fill_manual(values = c("steelblue", "steelblue")) +
labs(title = "Perbandingan Penyewaan: Hari Kerja dan Akhir Pekan",
x = "Jenis Hari",
y = "Jumlah Penyewaan (cnt)") +
theme(legend.position = "none")
Visualisasi violin plot menunjukkan adanya perbedaan distribusi antara hari kerja dan akhir pekan. Median pada hari kerja terlihat lebih tinggi, yang menunjukkan intensitas penggunaan yang lebih besar. Hal ini mengindikasikan bahwa sepeda banyak dimanfaatkan sebagai alat transportasi harian untuk bekerja atau beraktivitas rutin. Pada akhir pekan, penggunaan sepeda kemungkinan lebih bersifat rekreasi sehingga jumlahnya tidak setinggi hari kerja.
bike_data$mnth <- factor(
bike_data$mnth,
levels = 1:12,
labels = c("Jan","Feb","Mar","Apr","Mei","Jun",
"Jul","Agu","Sep","Okt","Nov","Des")
)
monthly_total <- bike_data %>%
group_by(mnth) %>%
summarise(total_cnt = sum(cnt))
ggplot(monthly_total, aes(x = mnth, y = total_cnt)) +
geom_bar(stat = "identity", fill = "skyblue", color = "#1F4E79") +
geom_text(aes(label = total_cnt),
vjust = -0.3, size = 3.5) +
labs(title = "Total Penyewaan Sepeda Berdasarkan Bulan",
x = "Bulan",
y = "Total Penyewaan") +
ylim(0, max(monthly_total$total_cnt) * 1.1)
Bar plot menunjukkan adanya variasi jumlah penyewaan sepeda pada setiap bulan. Beberapa bulan di tengah tahun memiliki total penyewaan yang sedikit lebih tinggi dibandingkan awal dan akhir tahun. Perbedaan ini menggambarkan adanya pola musiman dalam penggunaan sepeda. Perubahan suhu, kondisi cuaca, serta aktivitas masyarakat sepanjang tahun kemungkinan besar memengaruhi pola ini. Artinya, penggunaan sepeda mengikuti ritme tahunan yang cukup jelas dan tidak terjadi secara acak.
ggplot(bike_data, aes(x = windspeed, y = cnt)) +
geom_density_2d_filled() +
labs(title = "Hubungan Kecepatan Angin dan Penyewaan Sepeda",
x = "Kecepatan Angin",
y = "Jumlah Penyewaan (cnt)",
fill = "Kepadatan")
Dari 2D Density Plot diatas terlihat bahwa jumlah penyewaan lebih banyak terjadi pada kecepatan angin rendah hingga sedang. Area dengan kepadatan tinggi menunjukkan bahwa pada kondisi angin yang tidak terlalu kencang, penggunaan sepeda lebih sering terjadi. Sebaliknya, ketika kecepatan angin meningkat, jumlah penyewaan cenderung menurun. Hal ini menunjukkan bahwa kenyamanan dan keamanan menjadi pertimbangan penting dalam penggunaan sepeda. Angin yang kuat dapat membuat perjalanan terasa lebih berat sehingga mengurangi minat masyarakat untuk bersepeda.
Berdasarkan seluruh visualisasi yang telah dibuat, dapat disimpulkan bahwa jumlah penyewaan sepeda dipengaruhi oleh beberapa faktor lingkungan dan waktu. Suhu menunjukkan hubungan positif dengan jumlah penyewaan, di mana semakin hangat suhu udara maka semakin tinggi kecenderungan masyarakat untuk menggunakan sepeda. Selain itu, perbedaan musim juga memperlihatkan variasi jumlah penyewaan yang cukup jelas, yang menunjukkan bahwa faktor musiman berperan dalam perubahan tingkat penggunaan sepeda.
Kondisi cuaca dan kecepatan angin juga memberikan pengaruh terhadap jumlah penyewaan. Cuaca yang baik serta angin yang tidak terlalu kencang cenderung meningkatkan minat masyarakat untuk bersepeda. Dari sisi waktu, terlihat bahwa hari kerja memiliki jumlah penyewaan yang lebih tinggi dibandingkan akhir pekan, yang mengindikasikan bahwa sepeda banyak digunakan sebagai alat transportasi rutin, bukan hanya untuk rekreasi. Secara keseluruhan, analisis ini menunjukkan bahwa faktor kenyamanan lingkungan sangat berperan dalam menentukan tingkat penggunaan sepeda di Washington, D.C.