Perkembangan transportasi ramah lingkungan mendorong banyak kota besar untuk mengembangkan sistem bike sharing sebagai alternatif mobilitas yang efisien dan berkelanjutan. Layanan ini memungkinkan masyarakat menyewa sepeda untuk mendukung aktivitas harian maupun rekreasi, namun tingkat penggunaannya tidak selalu stabil. Fluktuasi jumlah penyewaan dapat dipengaruhi oleh berbagai faktor, seperti suhu udara, kondisi cuaca, musim, serta jenis hari (hari kerja atau akhir pekan). Oleh karena itu, diperlukan analisis berbasis data untuk memahami bagaimana faktor-faktor tersebut berperan dalam menentukan tingkat permintaan layanan sepeda.

Analisis ini menggunakan Bike Sharing Dataset yang merekam aktivitas penyewaan sepeda harian di Washington, D.C., selama dua tahun. Dataset tersebut memuat informasi jumlah penyewaan sepeda serta variabel lingkungan dan waktu yang relevan. Melalui pendekatan visualisasi data bivariat, penelitian ini bertujuan untuk mengeksplorasi hubungan antara dua variabel secara simultan sehingga pola asosiasi, tren, serta perbedaan distribusi dapat diidentifikasi secara lebih jelas. Hasil analisis diharapkan mampu memberikan gambaran yang komprehensif mengenai dinamika penggunaan sepeda dan menjadi dasar dalam pengambilan keputusan yang lebih terarah.

Tujuan dari analisis ini adalah menjawab pertanyaan berikut:

1. Apakah suhu berpengaruh terhadap jumlah penyewaan?
2. Apakah terdapat perbedaan penyewaan antar musim?
3. Bagaimana pola penyewaan pada kondisi cuaca yang berbeda?
4. Apakah hari kerja dan akhir pekan menunjukkan pola yang berbeda?
5. Apakah kecepatan angin memiliki hubungan dengan jumlah penyewaan?


Dataset yang digunakan merupakan data Bike Sharing yang mencatat jumlah penyewaan sepeda harian di Washington, D.C., selama dua tahun. Data ini memuat variabel numerik seperti:

No Variabel Keterangan
1 temp Suhu udara harian yang telah dinormalisasi dalam skala tertentu (berdasarkan suhu Celsius).
2 atemp Suhu yang dirasakan (apparent temperature) yang juga telah dinormalisasi.
3 hum Tingkat kelembapan udara harian dalam bentuk proporsi.
4 windspeed Kecepatan angin harian dalam bentuk skala normalisasi.
5 casual Jumlah penyewaan sepeda oleh pengguna tidak terdaftar (casual).
6 registered Jumlah penyewaan sepeda oleh pengguna terdaftar.
7 cnt Total jumlah penyewaan sepeda per hari (casual + registered).

Untuk memastikan analisis dapat dilakukan secara sistematis dan akurat, langkah selanjutnya adalah melakukan persiapan data sebelum proses visualisasi.

Persiapan Data

Tahap awal dimulai dengan mengimpor dataset ke dalam lingkungan kerja R serta memuat paket yang diperlukan seperti dplyr, ggplot2, dan DT. Proses ini bertujuan untuk memastikan data dapat dibaca dengan benar dan siap diolah lebih lanjut. Selain itu, dilakukan pengecekan nama variabel menggunakan fungsi colnames() untuk memahami struktur data yang tersedia.

Beberapa variabel kategorik seperti season, weathersit, dan weekday kemudian dikonversi ke dalam bentuk faktor agar dapat divisualisasikan dengan tepat dalam grafik perbandingan. Langkah ini penting untuk memastikan bahwa setiap kategori ditampilkan sebagai kelompok yang terpisah, sehingga interpretasi hasil visualisasi menjadi lebih jelas dan informatif.

bike_data <- read.csv("~/Documents/SEMESTER 4/Visualisasi Data/Pertemuan 4/Data Bike Sharing.csv")
colnames(bike_data)
##  [1] "instant"    "dteday"     "season"     "yr"         "mnth"      
##  [6] "holiday"    "weekday"    "workingday" "weathersit" "temp"      
## [11] "atemp"      "hum"        "windspeed"  "casual"     "registered"
## [16] "cnt"

Analisis Hubungan Antar Variabel

Suhu dan Jumlah Penyewaan

Untuk melihat hubungan antara suhu dan jumlah penyewaan, digunakan scatter plot yang menampilkan variabel temp pada sumbu x dan cnt pada sumbu y. Visualisasi ini membantu mengamati pola hubungan secara langsung antara perubahan suhu dan fluktuasi jumlah penyewaan sepeda.

ggplot(bike_data, aes(x = temp, y = cnt)) +
  geom_point(color = "steelblue", alpha = 0.5) +
  labs(title = "Scatter Plot of Total Bike Rentals vs Temperature",
       x = "Temperature (temp)",
       y = "Total Rentals (cnt)") +
  theme_minimal()

Berdasarkan scatter plot yang ditampilkan, terlihat adanya kecenderungan peningkatan jumlah penyewaan seiring dengan naiknya suhu. Titik-titik data membentuk pola yang cenderung naik, meskipun tidak sepenuhnya linier sempurna. Hal ini menunjukkan bahwa suhu memiliki hubungan positif terhadap jumlah penyewaan, di mana kondisi udara yang lebih hangat mendorong masyarakat untuk lebih aktif menggunakan layanan sepeda.


Perbedaan Penyewaan Antar Musim

Setelah melihat pengaruh suhu, analisis dilanjutkan dengan membandingkan jumlah penyewaan berdasarkan musim (season). Untuk tujuan ini digunakan boxplot guna melihat perbedaan median dan sebaran data pada masing-masing musim.

ggplot(bike_data, aes(x = factor(season), y = cnt)) +
  geom_boxplot(fill = "pink", color = "steelblue") +
  labs(title = "Jumlah Penyewaan Sepeda Berdasarkan Musim",
       x = "Musim",
       y = "Jumlah Penyewaan (cnt)")

Visualisasi menunjukkan adanya variasi tingkat penyewaan antar musim. Musim dengan kondisi cuaca yang lebih nyaman cenderung memiliki median penyewaan lebih tinggi. Hal ini memperkuat temuan sebelumnya bahwa faktor iklim memiliki kontribusi terhadap fluktuasi permintaan.


Kondisi Cuaca dan Pola Penyewaan

Selanjutnya, untuk memperdalam analisis faktor lingkungan, dilakukan visualisasi berdasarkan kondisi cuaca (weathersit) menggunakan kombinasi violin plot dan boxplot. Grafik ini memberikan gambaran distribusi sekaligus ringkasan statistik penyewaan pada setiap kategori cuaca.

bike_data$weathersit <- factor(bike_data$weathersit)

ggplot(bike_data, aes(x = weathersit, y = cnt)) +
  geom_violin(fill = "pink", color = "steelblue", 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)")

Hasilnya menunjukkan bahwa cuaca cerah memiliki jumlah penyewaan yang lebih tinggi dan lebih stabil dibandingkan kondisi hujan ringan. Dengan demikian, dapat disimpulkan bahwa kondisi cuaca yang mendukung secara konsisten meningkatkan minat penggunaan sepeda.


Kecepatan Angin dan Intensitas Penyewaan

Sebagai pelengkap analisis cuaca, hubungan antara kecepatan angin (windspeed) dan jumlah penyewaan divisualisasikan menggunakan hexbin plot untuk melihat kepadatan data.

ggplot(bike_data, aes(x = windspeed, y = cnt)) +
  geom_hex() +
  scale_fill_gradient(low = "skyblue", high = "red") +
  labs(title = "Hexbin Plot: Kecepatan Angin vs Total Penyewaan",
       x = "Kecepatan Angin",
       y = "Total Rentals (cnt)",
       fill = "Jumlah Observasi") +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, margin = margin(b = 15)), 
    axis.title.x = element_text(margin = margin(t = 12)),            
    axis.title.y = element_text(margin = margin(r = 12))  
  )

Grafik menunjukkan bahwa penyewaan lebih terkonsentrasi pada kecepatan angin rendah hingga sedang, sedangkan pada angin yang lebih kencang jumlah penyewaan cenderung menurun. Meskipun pengaruhnya tidak sekuat suhu, faktor ini tetap berkontribusi terhadap variasi permintaan.


Hari Kerja dan Pola Penggunaan

Selain faktor lingkungan, analisis juga mempertimbangkan aspek waktu melalui variabel workingday, yang membedakan antara hari kerja dan bukan hari kerja. Untuk melihat perbedaannya, digunakan boxplot yang membandingkan distribusi jumlah penyewaan (cnt) pada kedua kategori tersebut. Visualisasi ini memungkinkan pengamatan terhadap median, rentang antar kuartil, serta variasi data secara keseluruhan.

ggplot(bike_data, aes(x = factor(workingday), y = cnt)) +
  geom_boxplot(fill = "pink", color = "steelblue") +
  labs(title = "Perbandingan Jumlah Penyewaan pada Hari Kerja dan Bukan Hari Kerja",
       x = "Working Day",
       y = "Total Rentals (cnt)") +
  theme_minimal()

Berdasarkan grafik, terlihat adanya perbedaan distribusi antara hari kerja dan bukan hari kerja. Jika median pada hari kerja lebih tinggi, hal ini menunjukkan bahwa sepeda banyak dimanfaatkan sebagai sarana mobilitas rutin, seperti perjalanan ke kantor atau aktivitas harian lainnya. Sebaliknya, apabila bukan hari kerja menunjukkan median yang lebih tinggi atau variasi yang lebih besar, maka penggunaan sepeda cenderung bersifat rekreasional. Selain perbedaan median, tingkat penyebaran data juga memberikan informasi mengenai kestabilan permintaan pada masing-masing jenis hari. Dengan demikian, variabel waktu tidak hanya menunjukkan adanya perbedaan jumlah penyewaan, tetapi juga membantu memahami karakteristik perilaku pengguna layanan sepeda.


Distribusi Kondisi Cuaca Berdasarkan Hari

Untuk melihat kombinasi antara faktor waktu dan cuaca, dibuat diagram batang yang menampilkan distribusi kondisi cuaca berdasarkan hari dalam seminggu (weekday dan weathersit).

bike_data$weekday <- factor(
  bike_data$weekday,
  levels = 0:6,
  labels = c("Minggu", "Senin", "Selasa", "Rabu",
             "Kamis", "Jumat", "Sabtu")
)

bike_data$weathersit <- factor(
  bike_data$weathersit,
  levels = 1:3,
  labels = c("Cerah / Sedikit Berawan",
             "Berawan / Kabut Ringan",
             "Hujan Ringan")
)

data_cuaca <- bike_data %>%
  group_by(weekday, weathersit) %>%
  summarise(jumlah = n(), .groups = "drop")


ggplot(data_cuaca, aes(x = weekday, y = jumlah, fill = weathersit)) +
  geom_bar(stat = "identity") +
  labs(
    title = "Distribusi Kondisi Cuaca Berdasarkan Hari",
    x = "Hari",
    y = "Jumlah Observasi",
    fill = "Kondisi Cuaca"
  ) +
    scale_fill_manual(values = c("#F8C8DC", "#F4A6B8", "#C2185B")) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.title.x = element_text(margin = margin(t = 10)),
    axis.title.y = element_text(margin = margin(r = 10))
  )

Hasil visualisasi menunjukkan bahwa kondisi cerah mendominasi hampir seluruh hari, sementara hujan relatif lebih sedikit. Informasi ini membantu menjelaskan bahwa dinamika penyewaan dipengaruhi oleh interaksi antara hari dan kondisi cuaca, sehingga memberikan gambaran yang lebih menyeluruh mengenai pola penggunaan sepeda sepanjang minggu.


Berdasarkan hasil visualisasi bivariat yang telah dilakukan, dapat disimpulkan bahwa jumlah penyewaan sepeda (cnt) memiliki hubungan yang cukup jelas dengan beberapa variabel lingkungan dan waktu. Suhu (temp) menunjukkan kecenderungan hubungan positif terhadap jumlah penyewaan, di mana peningkatan suhu diikuti oleh meningkatnya penggunaan sepeda. Temuan ini diperkuat oleh analisis berdasarkan musim (season) dan kondisi cuaca (weathersit), yang menunjukkan bahwa kondisi lingkungan yang lebih hangat dan cerah berkorelasi dengan tingkat penyewaan yang lebih tinggi. Sebaliknya, kondisi cuaca kurang mendukung seperti hujan atau angin yang lebih kencang (windspeed) cenderung berkaitan dengan penurunan jumlah penyewaan.

Selain faktor lingkungan, variabel waktu juga memperlihatkan adanya perbedaan pola penggunaan. Perbandingan antara hari kerja dan bukan hari kerja (workingday) menunjukkan adanya variasi distribusi penyewaan, yang mengindikasikan perbedaan tujuan penggunaan, baik untuk mobilitas rutin maupun rekreasi. Distribusi kondisi cuaca berdasarkan hari (weekday dan weathersit) juga memperlihatkan bahwa kombinasi antara faktor waktu dan cuaca turut membentuk dinamika permintaan. Secara keseluruhan, hubungan antar variabel menunjukkan bahwa permintaan layanan sepeda tidak berdiri sendiri, melainkan dipengaruhi oleh interaksi antara faktor lingkungan dan temporal. Visualisasi yang digunakan membantu mengidentifikasi pola hubungan tersebut secara lebih komprehensif sebelum dilakukan analisis statistik lanjutan.