19 Februari 2026Data kontinu adalah jenis data yang nilainya bisa berubah secara fleksibel dalam suatu interval tertentu, jadi tidak terbatas pada angka bulat saja. Contohnya seperti suhu, tinggi badan, atau lama waktu tempuh—nilainya bisa 25,3°C atau 170,5 cm, dan seterusnya. Karena rentangnya luas dan detail, kita perlu cara yang tepat untuk melihat bagaimana penyebaran datanya.
Supaya lebih mudah memahami pola distribusi dan mendeteksi apakah ada nilai yang menyimpang (outlier), biasanya kita gunakan visualisasi seperti histogram atau boxplot. Dengan grafik tersebut, kita bisa melihat apakah data cenderung merata, miring ke satu sisi, atau ada nilai ekstrem yang berbeda jauh dari mayoritas data.
Pada pembahasan ini, saya akan menggunakan dataset Bike Sharing sebagai contoh untuk menganalisis data kontinu. Dari dataset tersebut, kita bisa mencoba membaca pola, melihat persebaran data, dan memahami karakteristik nilainya melalui visualisasi yang sesuai.
Data yang digunakan berasal dari sistem bike sharing di Washington, D.C., yang diambil dari UCI Machine Learning Repository. Dataset ini berisi ringkasan jumlah penyewaan sepeda per hari selama kurang lebih dua tahun, sehingga cukup representatif untuk melihat pola jangka pendek maupun musiman.
Di dalamnya terdapat beberapa informasi pendukung seperti musim, kondisi cuaca, serta jenis hari (hari kerja atau libur). Setelah memahami latar belakang dan konteks pengumpulan datanya, analisis akan lebih difokuskan pada variabel-variabel numerik yang tersedia. Tujuannya adalah untuk melihat pola, kecenderungan, serta perilaku data. misalnya, bagaimana perubahan cuaca atau musim dapat memengaruhi jumlah penyewaan sepeda.
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
library(DT)
bike_data <- read.csv("bike_sharing_dataset_by-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"
dataset ini mempunyai 16 variabel yang terdiri dari data numerik dan kategorik. Untuk variabel numerik, ada beberapa seperti temp, atemp, hum, windspeed, casual, registered, dan cnt.
Variabel-variabel ini berisi informasi penting terkait kondisi cuaca dan jumlah penyewaan sepeda. Misalnya, temp menunjukkan suhu udara, atemp adalah suhu yang terasa, hum menunjukkan tingkat kelembapan, dan windspeed adalah kecepatan angin.
Sementara itu, casual menunjukkan jumlah penyewaan sepeda oleh pengguna tidak terdaftar, registered adalah jumlah penyewaan oleh pengguna terdaftar, dan cnt merupakan total keseluruhan penyewaan sepeda (gabungan dari casual dan registered).
Jadi, variabel numerik ini membantu kita melihat bagaimana kondisi cuaca bisa berhubungan dengan banyaknya sepeda yang disewa.
datatable(bike_data, options = list(pageLength = 5, autoWidth = TRUE))
Visualisasi bivariat membantu kita memahami bagaimana variabel cnt berinteraksi dengan faktor lain seperti kondisi cuaca atau jenis hari (workingday). Teknik ini tidak hanya memperlihatkan sebaran data, tetapi juga mengungkap asosiasi antar variabel yang memengaruhi tren penyewaan sepeda secara keseluruhan.
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:
library(ggplot2)
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 di atas menunjukkan hubungan antara suhu (temp) dan jumlah
penyewaan sepeda (cnt). Setiap titik pada grafik mewakili satu hari,
dengan posisi horizontal menunjukkan suhu dan posisi vertikal
menunjukkan jumlah penyewaan sepeda pada hari tersebut. Dari visualisasi
ini terlihat bahwa terdapat pola positif antara suhu dan jumlah
penyewaan sepeda, di mana semakin tinggi suhu, semakin banyak penyewaan
sepeda yang terjadi. Hal ini menunjukkan bahwa cuaca yang lebih hangat
cenderung meningkatkan penggunaan sepeda, sementara suhu yang lebih
rendah mungkin membuat orang enggan untuk menyewa sepeda. Meskipun
terdapat beberapa titik yang menyebar, pola umum menunjukkan bahwa suhu
memiliki pengaruh positif terhadap jumlah penyewaan
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:
bike_data$season <- as.factor(bike_data$season)
ggplot(bike_data, aes(x = season, y = cnt)) +
geom_boxplot(fill = "lightblue", color = "darkblue") +
labs(
title = "Boxplot Total Bike Rentals by Musim",
x = "Musim",
y = "Total Rentals (cnt)"
) +
theme_minimal()
Boxplot bivariate di atas digunakan untuk membandingkan distribusi
jumlah penyewaan sepeda (cnt) berdasarkan kategori musim (season).
Setiap kotak pada grafik mewakili distribusi penyewaan sepeda untuk
masing-masing musim, dengan garis di dalam kotak menunjukkan median,
batas kotak menunjukkan kuartil pertama (Q1) dan kuartil ketiga (Q3),
serta whisker yang memanjang menunjukkan rentang data. Dari visualisasi
ini terlihat bahwa musim Summer memiliki jumlah penyewaan sepeda yang
lebih tinggi dibandingkan dengan musim lainnya, dengan median yang
berada di kisaran 5.000 penyewaan per hari. Sementara itu, musim Winter
memiliki jumlah penyewaan yang lebih rendah, dengan median di bawah
3.000 penyewaan per hari. Hal ini menunjukkan bahwa penggunaan sepeda
cenderung meningkat selama musim panas dan menurun selama musim dingin,
kemungkinan karena faktor cuaca yang mempengaruhi kenyamanan dalam
menggunakan sepeda.
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
bike_data$weathersit <- as.factor(bike_data$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 bivariate di atas digunakan untuk membandingkan distribusi
jumlah penyewaan sepeda (cnt) berdasarkan kondisi cuaca (weathersit).
Setiap bentuk violin mewakili distribusi penyewaan sepeda untuk
masing-masing kondisi cuaca, dengan bagian yang lebih lebar menunjukkan
bahwa lebih banyak hari memiliki jumlah penyewaan pada kisaran tersebut.
Boxplot di dalam violin memberikan informasi statistik ringkas, seperti
median dan kuartil. Dari visualisasi ini terlihat bahwa kondisi cuaca
yang cerah (Clear) memiliki distribusi penyewaan sepeda yang lebih
tinggi dan lebih padat dibandingkan dengan kondisi cuaca lainnya,
seperti hujan ringan (Light Rain) atau hujan deras (Heavy Rain), yang
memiliki distribusi penyewaan yang lebih rendah. Hal ini menunjukkan
bahwa kondisi cuaca yang baik cenderung meningkatkan penggunaan sepeda,
sementara kondisi cuaca yang buruk dapat mengurangi minat orang untuk
menyewa sepeda.
ggplot(bike_data, aes(x = windspeed, y = cnt)) +
geom_hex() +scale_fill_gradient(low = "#d9f0d3", high = "#006d2c")+
labs(
title = "Hexbin Plot antara Windspeed dan Jumlah Penyewaan Sepeda",
x = "Windspeed",
y = "Penyewaan Sepeda"
) +
theme_minimal()
Grafik ini menunjukkan hubungan antara kecepatan angin dan jumlah
penyewaan sepeda. Setiap bentuk heksagon mewakili banyaknya hari dengan
kombinasi nilai tertentu. Warna yang lebih gelap berarti jumlah harinya
lebih banyak, sedangkan warna lebih terang berarti lebih sedikit.
Terlihat bahwa penyewaan paling banyak terjadi saat kecepatan angin berada di sekitar 0.1 sampai 0.2. Pada kondisi ini, jumlah penyewaan umumnya berada di kisaran 4.000 sampai 6.000. Ini menunjukkan bahwa saat angin tidak terlalu kencang, minat masyarakat untuk menyewa sepeda cukup tinggi.
Ketika kecepatan angin meningkat di atas 0.3, jumlah penyewaan cenderung menurun dan titik kepadatannya semakin sedikit. Artinya, ada kecenderungan bahwa semakin kencang angin, permintaan sepeda bisa berkurang.
Namun, grafik ini hanya menunjukkan pola, bukan bukti sebab-akibat. Faktor lain seperti hujan, suhu, atau musim juga bisa memengaruhi jumlah penyewaan.
Dari pola ini, pengelola bisa mempertimbangkan untuk menyesuaikan jumlah sepeda atau membuat promo saat diperkirakan angin cukup kencang, agar layanan tetap optimal.
Bar Plot digunakan untuk membandingan nilai rata-rata variabel numerik berdasarkan kategori waktu atau grup tertentu. Grafik ini memudahkan peneliti atau pembaca dalam mengidentifikasi perbedaan performa atau nilai signifikan secara visual. misal melihat hubungan bulan vs rata-rata jumlah penyewaan sepeda:
library(dplyr)
data_olah <- bike_data %>%
group_by(mnth) %>%
summarise(rata_cnt = mean(cnt))
data_olah$mnth <- factor(data_olah$mnth,
levels = 1:12,
labels = c("1","2","3","4","5","6",
"7","8","9","10","11","12"))
ggplot(data_olah, aes(x = mnth, y = rata_cnt)) +
geom_bar(stat = "identity", fill = "#69b3a2") +
labs(
title = "Rata-rata Jumlah Penyewaan Sepeda per Bulan",
x = "Bulan",
y = "Rata-rata Penyewaan (cnt)"
) +
theme_minimal()
Grafik ini menunjukkan bahwa jumlah penyewaan sepeda berubah-ubah setiap
bulan.Di awal tahun seperti Januari dan Februari, jumlah penyewaan masih
rendah. Mulai Maret sampai Mei, jumlahnya terus naik. Penyewaan paling
tinggi terjadi sekitar Juni sampai September.
Setelah itu, jumlahnya mulai turun lagi hingga akhir tahun, dan kembali rendah di bulan Desember.Jadi, bisa dilihat bahwa pertengahan tahun adalah waktu paling ramai untuk penyewaan sepeda, sedangkan awal dan akhir tahun lebih sepi.
ggplot(bike_data, aes(x = temp, y = cnt)) +
geom_point(alpha = 0.5, color = "#2a9d8f") +
geom_smooth(method = "lm", formula = y ~ x, se = TRUE) +
labs(
title = "Hubungan Suhu dan Jumlah Penyewaan Sepeda",
x = "Suhu (temp)",
y = "Jumlah Penyewaan (cnt)"
) +
theme_minimal()
Grafik ini menunjukkan hubungan antara suhu dan jumlah penyewaan sepeda.
Titik-titik pada grafik menggambarkan data harian, sedangkan garis biru
menunjukkan kecenderungan umumnya.
Terlihat bahwa semakin tinggi suhu, jumlah penyewaan cenderung ikut meningkat. Saat suhu masih rendah, jumlah penyewaan juga relatif sedikit. Ketika suhu naik ke tingkat sedang hingga hangat, penyewaan menjadi jauh lebih banyak.
Walaupun begitu, tidak semua titik mengikuti garis secara sempurna. Ada beberapa hari dengan suhu tinggi tetapi penyewaannya tidak terlalu banyak. Ini berarti selain suhu, kemungkinan ada faktor lain yang juga memengaruhi, seperti cuaca, hari libur, atau musim.
Secara keseluruhan, grafik ini menunjukkan bahwa suhu memiliki hubungan positif dengan jumlah penyewaan sepeda: semakin hangat cuacanya, semakin banyak orang yang menyewa sepeda.
Berdasarkan visualisasi yang telah dibuat, terlihat bahwa jumlah penyewaan sepeda dipengaruhi oleh suhu, musim, dan kondisi cuaca.
Semakin hangat suhu, jumlah penyewaan cenderung meningkat. Musim pertengahan tahun menunjukkan jumlah penyewaan paling tinggi, sedangkan awal dan akhir tahun lebih rendah. Selain itu, kondisi cuaca yang cerah membuat penyewaan lebih banyak dibandingkan saat cuaca buruk.
Secara sederhana, faktor cuaca dan musim sangat berpengaruh terhadap banyaknya sepeda yang disewa. Informasi ini bisa membantu pengelola dalam mengatur jumlah sepeda dan strategi operasional agar lebih efektif.