Studi kasus ini menggunakan dataset Bike Sharing Daily Data (day.csv) yang berisi data penyewaan sepeda harian selama periode tahun 2011–2012. Setiap baris data merepresentasikan satu hari pengamatan, dengan informasi yang mencakup aspek waktu, kondisi lingkungan, serta karakteristik pengguna. Variabel utama yang dianalisis adalah total jumlah penyewaan sepeda (cnt), yang didukung oleh variabel lain seperti musim (season), kondisi cuaca (weathersit), suhu (temp dan atemp), kelembapan (hum), kecepatan angin (windspeed), serta jenis hari seperti hari kerja (workingday) dan hari libur (holiday). Keberagaman variabel ini memungkinkan analisis yang komprehensif terhadap faktor-faktor yang berpotensi memengaruhi tingkat penggunaan sepeda.
Beberapa pertanyaan mulai muncul pada analisis ini, antara lain:
Apakah jumlah penyewa terdaftar mempengaruhi total jumlah penyewa?
Apakah cuaca mempengaruhi total jumlah penyewa sepeda?
Apakah hari kerja dan bukan hari kerja mempengaruhi total jumlah penyewa sepeda?
Melalui dataset ini, dilakukan eksplorasi pola distribusi jumlah penyewaan sepeda serta hubungan antara jumlah penyewaan dengan berbagai faktor lingkungan dan temporal. Analisis difokuskan pada penggunaan visualisasi data univariat dan bivariat untuk memahami karakteristik sebaran data serta keterkaitan antarvariabel. Pendekatan ini memungkinkan identifikasi pola musiman, pengaruh kondisi cuaca, serta perbedaan penggunaan sepeda berdasarkan jenis hari. Dengan demikian, studi kasus ini memberikan gambaran yang sistematis dan berbasis data mengenai dinamika penggunaan sepeda dalam sistem transportasi perkotaan, serta menjadi dasar untuk analisis lanjutan yang lebih mendalam.
Import data dari file CSV ke dalam R menggunakan fungsi
read.csv(). Pastikan untuk menyesuaikan path file dengan
lokasi di mana dataset disimpan di komputer Anda. Berikut adalah kode
untuk memuat data:
# Load data
bike_data <- read.csv("C:/Users/USER/Downloads/day.csv")
colnames(bike_data)
## [1] "instant" "dteday" "season" "yr" "mnth"
## [6] "holiday" "weekday" "workingday" "weathersit" "temp"
## [11] "atemp" "hum" "windspeed" "casual" "registered"
## [16] "cnt"
Berdasarkan hasil output yang ditampilkan, dataset ini terdiri dari
16 variabel yang mencakup kombinasi variabel numerik dan kategorik.
Variabel numerik yang terdapat dalam dataset meliputi temp,
atemp, hum, windspeed,
casual, registered, dan cnt.
Variabel-variabel tersebut merepresentasikan informasi terkait kondisi
lingkungan seperti suhu, suhu yang dirasakan, kelembapan udara, serta
kecepatan angin, sekaligus data penggunaan sepeda, yaitu jumlah
penyewaan oleh pengguna kasual, jumlah penyewaan oleh pengguna
terdaftar, dan total keseluruhan penyewaan sepeda. Dengan demikian,
variabel numerik ini menjadi komponen utama dalam analisis kuantitatif
untuk memahami pola penggunaan sepeda dalam sistem bike sharing.
| No | Variabel.Numerik | Keterangan |
|---|---|---|
| 1 | temp | suhu dalam skala Celsius |
| 2 | atemp | suhu yang dirasakan |
| 3 | hum | kelembapan |
| 4 | windspeed | kecepatan angin |
| 5 | casual | jumlah penyewaan sepeda oleh pengguna kasual |
| 6 | registered | jumlah penyewaan sepeda oleh pengguna terdaftar |
| 7 | cnt | total jumlah penyewaan sepeda (casual + registered) |
Variabel-variabel kategorik telah dibahas pada pembelajaran
sebelumnya. Pada tahap ini, variabel kategorik seperti
season, weathersit, dan
workingday dilakukan proses recode dengan tujuan
mempermudah interpretasi pada tahap visualisasi dan analisis
selanjutnya.
Melalui proses recode tersebut, pemahaman terhadap data menjadi lebih jelas karena setiap kategori ditampilkan dalam bentuk label yang deskriptif. Sebagai contoh, pada visualisasi jumlah penyewaan sepeda berdasarkan musim, label seperti “Spring”, “Summer”, “Fall”, dan “Winter” akan langsung terlihat, sehingga pengguna tidak perlu lagi mengingat kode numerik seperti 1 = Spring, 2 = Summer, dan seterusnya. Hal ini menjadikan visualisasi lebih intuitif dan mudah dipahami oleh audiens.
Meskipun dilakukan recode, struktur data secara keseluruhan tidak
mengalami perubahan. Perbedaannya terletak pada nilai dalam variabel
season, weathersit, dan
workingday yang kini memiliki label yang lebih informatif,
sehingga mendukung proses analisis dan penyajian visualisasi yang lebih
jelas dan mudah dipahami.
datatable(bike_data, options = list(pageLength = 5, autoWidth = TRUE))
Setelah pola distribusi dari satu variabel dipahami, analisis dapat dikembangkan ke tahap selanjutnya, yaitu visualisasi bivariat. Visualisasi ini bertujuan untuk mengkaji hubungan antara dua variabel, seperti keterkaitan antara jumlah penyewaan sepeda (cnt) dengan berbagai faktor lain, termasuk musim (season), kondisi cuaca (weathersit), suhu (temp), maupun jenis hari (workingday). Melalui pendekatan ini, analis tidak hanya memperoleh gambaran tentang sebaran data, tetapi juga mulai menelusuri faktor-faktor yang berkaitan dengan perubahan intensitas penyewaan sepeda.
Dengan demikian, visualisasi univariat berperan dalam memberikan pemahaman dasar mengenai karakteristik dan variasi data, sedangkan visualisasi bivariat berfungsi untuk mengeksplorasi hubungan antarvariabel yang dapat membantu menjelaskan pola penggunaan sepeda secara lebih komprehensif. Berikut disajikan beberapa bentuk visualisasi bivariat yang dapat digunakan untuk menganalisis hubungan antara jumlah penyewaan sepeda (cnt) dengan variabel lain dalam dataset.
Scatter plot adalah grafik yang menunjukkan hubungan antara dua variabel numerik. Setiap titik pada scatter plot mewakili satu pengamatan, dengan posisi titik ditentukan oleh nilai kedua variabel. Berikut adalah contoh kode untuk membuat scatter plot antara ‘cnt’ dan ‘temp’ :
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()
Scatter plot tersebut menggambarkan keterkaitan antara suhu (temp) dan jumlah penyewaan sepeda (cnt). Setiap titik merepresentasikan satu hari pengamatan, dengan sumbu horizontal menunjukkan nilai suhu dan sumbu vertikal menunjukkan jumlah penyewaan sepeda. Visualisasi ini memperlihatkan adanya kecenderungan hubungan positif, di mana peningkatan suhu diikuti oleh peningkatan jumlah penyewaan sepeda. Hal ini mengindikasikan bahwa kondisi cuaca yang lebih hangat mendorong meningkatnya aktivitas penggunaan sepeda, sedangkan suhu yang lebih rendah cenderung berkaitan dengan penurunan minat penyewaan. Walaupun terdapat variasi dan penyebaran titik data, pola umum yang terbentuk tetap menunjukkan bahwa suhu berperan sebagai faktor yang berpengaruh positif terhadap jumlah penyewaan sepeda.
ggplot(bike_data, aes(x = registered, y = cnt)) +
geom_point(color = "#F4A7A3", alpha = 0.5) +
labs(title = "Scatter Plot of Jumlah Penyewa Terdaftar vs Total Jumlah Penyewa",
x = "Jumlah Penyewa Terdaftar (registered)",
y = "Total Jumlah Penyewa (cnt)") +
theme_minimal()
Scatter plot tersebut menunjukkan hubungan antara jumlah penyewa terdaftar (registered) dan total jumlah penyewaan sepeda (cnt), di mana setiap titik merepresentasikan satu hari dengan posisi horizontal sebagai jumlah pengguna terdaftar dan posisi vertikal sebagai total penyewaan. Pola sebaran titik membentuk tren naik yang sangat jelas dan konsisten, menandakan adanya hubungan positif yang kuat antara kedua variabel tersebut, sehingga semakin banyak pengguna terdaftar maka semakin tinggi pula total penyewaan sepeda. Kerapatan titik di sekitar pola linear juga mengindikasikan bahwa variabel registered merupakan faktor dominan yang memengaruhi nilai cnt, dengan variasi yang relatif kecil di luar pola utama, sehingga dapat disimpulkan bahwa peningkatan jumlah pengguna terdaftar berkontribusi signifikan terhadap meningkatnya penggunaan sepeda dalam sistem bike sharing.
Boxplot bivariate digunakan untuk membandingkan distribusi variabel numerik (cnt) berdasarkan kategori dari variabel lain, seperti musim (season). Berikut adalah contoh kode untuk membuat boxplot bivariate antara cnt dan season:
ggplot(bike_data, aes(x = season, y = cnt)) +
geom_boxplot(fill = "lightblue", color = "darkblue") +
labs(title = "Boxplot of Total Bike Rentals by Musim",
x = "Musim",
y = "Total Rentals (cnt)") +
theme_minimal()
Boxplot bivariat tersebut digunakan untuk membandingkan sebaran jumlah penyewaan sepeda (cnt) pada setiap kategori musim (season). Setiap kotak merepresentasikan distribusi data penyewaan untuk masing-masing musim, di mana garis tengah menunjukkan nilai median, bagian bawah dan atas kotak menunjukkan kuartil pertama (Q1) dan kuartil ketiga (Q3), serta whisker menggambarkan rentang variasi data. Dari hasil visualisasi terlihat bahwa musim Summer memiliki tingkat penyewaan sepeda yang paling tinggi dibandingkan musim lainnya, dengan nilai median berada sekitar 5.000 penyewaan per hari. Sebaliknya, musim Winter menunjukkan jumlah penyewaan yang lebih rendah, dengan median berada di bawah 3.000 penyewaan per hari. Temuan ini mengindikasikan bahwa aktivitas penggunaan sepeda cenderung meningkat pada musim panas dan menurun pada musim dingin, yang kemungkinan besar dipengaruhi oleh kondisi cuaca dan tingkat kenyamanan dalam beraktivitas di luar ruangan.
ggplot(bike_data, aes(x = weathersit, y = cnt)) +
geom_boxplot(fill = "#F4A7A3", color = "darkred") +
labs(title = "Boxplot of Total Bike Rentals by Cuaca",
x = "Cuaca",
y = "Total Rentals (cnt)") +
theme_minimal()
Boxplot tersebut memperlihatkan perbandingan distribusi jumlah penyewaan sepeda (cnt) berdasarkan kondisi cuaca, yaitu Clear, Cloudy, dan Light Rain. Terlihat bahwa kondisi cuaca Clear memiliki median penyewaan tertinggi serta sebaran data yang relatif lebar, menunjukkan bahwa pada hari-hari cerah jumlah penyewaan cenderung tinggi dan bervariasi. Kondisi Cloudy berada pada tingkat menengah, dengan median lebih rendah dibandingkan Clear namun masih menunjukkan jumlah penyewaan yang cukup besar. Sementara itu, Light Rain memiliki median penyewaan paling rendah dengan sebaran yang lebih sempit, yang menandakan bahwa hujan ringan secara signifikan menurunkan jumlah penyewaan sepeda. Secara keseluruhan, visualisasi ini menunjukkan bahwa kondisi cuaca berpengaruh kuat terhadap intensitas penggunaan sepeda, di mana semakin baik cuaca, semakin tinggi kecenderungan masyarakat untuk menggunakan layanan bike sharing.
Violin plot bivariate digunakan untuk membandingkan distribusi variabel numerik (cnt) berdasarkan kategori dari variabel lain, seperti kondisi cuaca (weathersit). Berikut adalah contoh kode untuk membuat violin plot bivariate antara cnt dan weathersit:
ggplot(bike_data, aes(x = weathersit, y = cnt)) +
geom_violin(fill = "lightcoral", color = "darkred", alpha = 0.6) +
geom_boxplot(width = 0.1, fill = "white", color = "black", outlier.shape = NA) +
labs(title = "Violin Plot of Total Bike Rentals by Kondisi Cuaca",
x = "Kondisi Cuaca",
y = "Total Rentals (cnt)") +
theme_minimal()
Violin plot bivariat tersebut digunakan untuk membandingkan sebaran jumlah penyewaan sepeda (cnt) berdasarkan kategori kondisi cuaca (weathersit). Setiap bentuk violin menggambarkan distribusi data penyewaan sepeda pada masing-masing kondisi cuaca, di mana bagian yang melebar menunjukkan konsentrasi data yang lebih tinggi pada rentang nilai tertentu. Boxplot yang berada di dalam violin memberikan ringkasan statistik utama, seperti median dan kuartil. Visualisasi ini menunjukkan bahwa kondisi cuaca cerah (Clear) memiliki distribusi penyewaan sepeda yang paling tinggi dan paling padat dibandingkan kondisi cuaca lainnya, seperti hujan ringan (Light Rain) maupun hujan deras (Heavy Rain), yang memperlihatkan tingkat penyewaan yang lebih rendah. Temuan ini mengindikasikan bahwa cuaca yang baik mendorong peningkatan penggunaan sepeda, sedangkan kondisi cuaca yang kurang mendukung cenderung menurunkan minat masyarakat untuk menyewa sepeda.
ggplot(bike_data, aes(x = workingday, y = cnt)) +
geom_violin(fill = "lightblue", color = "darkblue", alpha = 0.6) +
geom_boxplot(width = 0.1, fill = "white", color = "black", outlier.shape = NA) +
labs(title = "Violin Plot of Total Bike Rentals by Hari Kerja",
x = "Hari Kerja",
y = "Total Rentals (cnt)") +
theme_minimal()
Violin plot tersebut menunjukkan bahwa distribusi total peminjaman sepeda pada hari kerja (Yes) dan non-hari kerja (No) memiliki rentang yang relatif mirip, namun dengan pola kepadatan yang sedikit berbeda. Pada hari kerja, peminjaman cenderung lebih terkonsentrasi di kisaran menengah (sekitar 4.000–5.000), yang tercermin dari median yang relatif stabil dan bentuk violin yang lebih tebal di area tersebut, menandakan konsistensi penggunaan untuk aktivitas rutin seperti bekerja atau sekolah. Sementara itu, pada non-hari kerja, sebaran data tampak lebih lebar dengan variasi yang lebih besar, menunjukkan bahwa jumlah peminjaman lebih fluktuatif—ada hari dengan peminjaman rendah maupun sangat tinggi—yang kemungkinan dipengaruhi oleh aktivitas rekreasi, cuaca, atau acara tertentu. Secara keseluruhan, hari kerja menunjukkan pola peminjaman yang lebih stabil, sedangkan non-hari kerja lebih variatif.
Visualisasi bivariate antara jumlah penyewaan sepeda (cnt) dengan variabel lain seperti suhu (temp), musim (season), dan kondisi cuaca (weathersit) menunjukkan bahwa
Suhu memiliki hubungan positif dengan jumlah penyewaan sepeda, di mana suhu yang lebih tinggi cenderung meningkatkan jumlah penyewaan sepeda, sementara suhu yang lebih rendah dapat menurunkan minat untuk menyewa sepeda.
Jumlah penyewa terdaftar berhubungan positif dengan total jumlah penyewaan sepeda, di mana peningkatan jumlah pengguna terdaftar secara langsung mendorong meningkatnya total penyewaan.
Musim juga mempengaruhi penggunaan sepeda, dengan musim panas menunjukkan tingkat penyewaan yang lebih tinggi dibandingkan dengan musim dingin, kemungkinan karena faktor cuaca yang mempengaruhi kenyamanan dalam menggunakan sepeda.
Kondisi cuaca memengaruhi jumlah penyewaan sepeda, di mana cuaca cerah menghasilkan penyewaan tertinggi, cuaca berawan berada di tingkat menengah, dan hujan ringan menurunkan jumlah penyewaan secara signifikan.
Kondisi cuaca yang cerah meningkatkan penggunaan sepeda, sementara kondisi cuaca yang buruk seperti hujan dapat mengurangi minat untuk menyewa sepeda, menunjukkan bahwa faktor cuaca memiliki pengaruh signifikan terhadap pola penggunaan sepeda.
Peminjaman sepeda pada hari kerja cenderung lebih stabil dan terkonsentrasi di kisaran menengah, sedangkan pada non-hari kerja lebih bervariasi dan fluktuatif karena dipengaruhi aktivitas rekreasi dan faktor situasional lainnya.
Dengan demikian, faktor-faktor lingkungan seperti suhu, musim, dan kondisi cuaca memiliki pengaruh yang signifikan terhadap pola penggunaan sepeda dalam dataset ini. Informasi ini dapat digunakan untuk perencanaan layanan sepeda yang lebih efektif dan responsif terhadap kondisi lingkungan.