Studi Kasus
Pada kesempatan ini kami akan melakukan penelitian sederhana untuk mengetahui apakah terdapat perbedaan rata-rata waktu tunggu mahasiswa di tiga kantin dalam kampus. Selain itu, data ini akan diuji menggunakan Ekspponensial dan akan melihat apakah rata-rata waktu tunggu di kantin I sama dengan 15 menit. Berikut dataset yang akan kami olah
Dataset
# simulasi waktu tunggu kantin I
#rexp(n, rate) menghasilkan n bilangan random eksponensial dengan parameter rate
kantin1 <- rexp(40, rate = 1/15) # rata-rata ~15 menit
kantin1## [1] 12.6518589 8.6491541 19.9358230 0.4736604 0.8431646 4.7475182
## [7] 4.7134094 2.1790021 40.8935470 0.4373017 15.0724509 7.2032209
## [13] 4.2152044 5.6567675 2.8242606 12.7467919 23.4480531 7.1814062
## [19] 8.8640225 60.6151757 12.6472460 14.4880682 22.2791369 20.2206673
## [25] 17.5279348 24.0877851 22.4511430 23.5597882 0.4765162 8.9677454
## [31] 32.5175962 7.5992359 3.8933673 38.9533817 18.4353860 11.8602264
## [37] 9.4392012 18.8196150 8.8302696 16.9393505
## [1] 7.5665664 129.7981364 15.2229954 4.0597561 19.8060987 40.4695025
## [7] 24.5472174 10.3750500 49.0549653 23.6189348 1.6306443 5.5116693
## [13] 19.2098353 5.6432926 17.5435227 33.9808197 10.1625948 46.3853039
## [19] 18.8585235 18.4399442 18.5016531 5.1240323 28.1349340 0.7575893
## [25] 1.7753560 1.7742476 5.0469329 5.3241653 17.5037337 16.6324900
## [31] 29.5632815 29.1584298 45.6506197 27.3878932 6.8402557 4.2932334
## [37] 8.3967736 0.7608861 5.7541842 11.5849966
## [1] 6.87075724 2.59266603 53.98408077 22.28508664 8.22550365 17.27343151
## [7] 20.77384780 14.93739960 17.55960672 18.44872774 0.05518952 13.30518562
## [13] 3.59964381 14.30403608 13.37914444 0.80851069 5.76802465 18.84545207
## [19] 3.11935328 22.28306745 5.55863545 2.83242896 14.18519306 0.71605646
## [25] 4.83886130 11.31527808 4.99896773 9.03862086 2.26423666 10.52224645
## [31] 2.28045385 11.74893847 3.88050993 15.84573064 3.82152778 19.26080755
## [37] 1.74880940 21.63755182 0.36071345 15.64128659
#Menggabungkan semua data menjadi satu frame
data <- data.frame(
waktu = c(kantin1, kantin2, kantin3),
kantin = factor(rep(c("Kantin I", "Kantin II", "Kantin III"), each = 40))
)
#data.frame() membuat tabel data dengan kolom Waktu dan Kantin
data## waktu kantin
## 1 12.65185892 Kantin I
## 2 8.64915406 Kantin I
## 3 19.93582302 Kantin I
## 4 0.47366039 Kantin I
## 5 0.84316464 Kantin I
## 6 4.74751825 Kantin I
## 7 4.71340938 Kantin I
## 8 2.17900206 Kantin I
## 9 40.89354696 Kantin I
## 10 0.43730171 Kantin I
## 11 15.07245087 Kantin I
## 12 7.20322091 Kantin I
## 13 4.21520441 Kantin I
## 14 5.65676747 Kantin I
## 15 2.82426061 Kantin I
## 16 12.74679195 Kantin I
## 17 23.44805309 Kantin I
## 18 7.18140625 Kantin I
## 19 8.86402253 Kantin I
## 20 60.61517567 Kantin I
## 21 12.64724597 Kantin I
## 22 14.48806817 Kantin I
## 23 22.27913691 Kantin I
## 24 20.22066729 Kantin I
## 25 17.52793476 Kantin I
## 26 24.08778515 Kantin I
## 27 22.45114303 Kantin I
## 28 23.55978820 Kantin I
## 29 0.47651616 Kantin I
## 30 8.96774537 Kantin I
## 31 32.51759618 Kantin I
## 32 7.59923593 Kantin I
## 33 3.89336726 Kantin I
## 34 38.95338175 Kantin I
## 35 18.43538598 Kantin I
## 36 11.86022638 Kantin I
## 37 9.43920117 Kantin I
## 38 18.81961504 Kantin I
## 39 8.83026963 Kantin I
## 40 16.93935051 Kantin I
## 41 7.56656645 Kantin II
## 42 129.79813637 Kantin II
## 43 15.22299537 Kantin II
## 44 4.05975612 Kantin II
## 45 19.80609872 Kantin II
## 46 40.46950246 Kantin II
## 47 24.54721739 Kantin II
## 48 10.37505003 Kantin II
## 49 49.05496530 Kantin II
## 50 23.61893477 Kantin II
## 51 1.63064430 Kantin II
## 52 5.51166930 Kantin II
## 53 19.20983525 Kantin II
## 54 5.64329261 Kantin II
## 55 17.54352271 Kantin II
## 56 33.98081967 Kantin II
## 57 10.16259485 Kantin II
## 58 46.38530392 Kantin II
## 59 18.85852346 Kantin II
## 60 18.43994415 Kantin II
## 61 18.50165308 Kantin II
## 62 5.12403229 Kantin II
## 63 28.13493400 Kantin II
## 64 0.75758927 Kantin II
## 65 1.77535602 Kantin II
## 66 1.77424762 Kantin II
## 67 5.04693290 Kantin II
## 68 5.32416526 Kantin II
## 69 17.50373368 Kantin II
## 70 16.63249003 Kantin II
## 71 29.56328148 Kantin II
## 72 29.15842982 Kantin II
## 73 45.65061972 Kantin II
## 74 27.38789322 Kantin II
## 75 6.84025565 Kantin II
## 76 4.29323340 Kantin II
## 77 8.39677362 Kantin II
## 78 0.76088613 Kantin II
## 79 5.75418419 Kantin II
## 80 11.58499657 Kantin II
## 81 6.87075724 Kantin III
## 82 2.59266603 Kantin III
## 83 53.98408077 Kantin III
## 84 22.28508664 Kantin III
## 85 8.22550365 Kantin III
## 86 17.27343151 Kantin III
## 87 20.77384780 Kantin III
## 88 14.93739960 Kantin III
## 89 17.55960672 Kantin III
## 90 18.44872774 Kantin III
## 91 0.05518952 Kantin III
## 92 13.30518562 Kantin III
## 93 3.59964381 Kantin III
## 94 14.30403608 Kantin III
## 95 13.37914444 Kantin III
## 96 0.80851069 Kantin III
## 97 5.76802465 Kantin III
## 98 18.84545207 Kantin III
## 99 3.11935328 Kantin III
## 100 22.28306745 Kantin III
## 101 5.55863545 Kantin III
## 102 2.83242896 Kantin III
## 103 14.18519306 Kantin III
## 104 0.71605646 Kantin III
## 105 4.83886130 Kantin III
## 106 11.31527808 Kantin III
## 107 4.99896773 Kantin III
## 108 9.03862086 Kantin III
## 109 2.26423666 Kantin III
## 110 10.52224645 Kantin III
## 111 2.28045385 Kantin III
## 112 11.74893847 Kantin III
## 113 3.88050993 Kantin III
## 114 15.84573064 Kantin III
## 115 3.82152778 Kantin III
## 116 19.26080755 Kantin III
## 117 1.74880940 Kantin III
## 118 21.63755182 Kantin III
## 119 0.36071345 Kantin III
## 120 15.64128659 Kantin III
Statistika Deskriptif
## Warning: package 'dplyr' was built under R version 4.4.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Menghitung ringkasan statistik tiap kantin: mean, median, sd, var
data %>%
group_by(kantin) %>% # mengelompokkan data berdasarkan kolom 'kantin'.
summarise(
mean = mean(waktu), # menghitung rata-rata waktu tunggu per kantin
median = median(waktu), # menghitung median waktu tunggu per kantin
sd = sd(waktu), # menghitung standar deviasi per kantin
var = var(waktu) # menghitung varians per kantin
)## # A tibble: 3 × 5
## kantin mean median sd var
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Kantin I 14.4 12.3 12.5 157.
## 2 Kantin II 19.3 15.9 22.3 499.
## 3 Kantin III 11.0 9.78 9.96 99.2
Rata-rata waktu tunggu mahasiswa di Kantin I adalah 14.4 menit, artinya kebanyakan mahasiswa menunggu sekitar angka tersebut. Nilai median sebesar 12.3 menit menunjukkan setengah mahasiswa menunggu kurang dari 12.3 menit dan setengah lainnya lebih. Standar deviasi 12.5 menit mengindikasikan variasi waktu tunggu sedang, ada yang cepat selesai dan ada yang lebih lama. Variansnya 157 menunjukkan sebaran data secara keseluruhan.
# Visualisasi histogram Kantin I dengan warna
hist(
data$waktu[data$kantin=="Kantin I"], # memilih data waktu tunggu untuk Kantin I
main = "Histogram Kantin I", # Judul histogram
xlab = "Waktu tunggu (menit)", # Label sumbu X
col = "skyblue", # Warna batang histogram
border = "white" # Warna garis tepi batang
)Histogram menunjukkan waktu tunggu mahasiswa di Kantin I. Kebanyakan menunggu sekitar 10–15 menit, tapi ada juga yang lebih lama, terlihat dari batang histogram yang memanjang ke kanan.
# Visualisasi perbandingan antar kantin menggunakan boxplot dengan warna
boxplot(
waktu ~ kantin, # Mengelompokkan nilai 'waktu' berdasarkan kategori 'kantin'
data = data, # Data frame yang digunakan
main = "Perbandingan Waktu Tunggu", # Judul boxplot
col = c("skyblue", "lightgreen", "tomato"), # Warna masing-masing kotak
border = "black" # Warna garis tepi kotak
)Boxplot menunjukkan perbandingan waktu tunggu antar kantin. Kantin II rata-rata paling lama dan waktunya bervariasi, Kantin III paling cepat dan stabil, sementara Kantin I berada di tengah. Beberapa titik outlier menandakan ada mahasiswa yang menunggu lebih lama dari kebanyakan.
Uji Hipotesis Tambahan (Satu Populasi)
H0 :μ =15 (rata-rata waktu tunggu di Kantin I = 15 menit)
H1 :μ ≠15 (rata-rata waktu tunggu di Kantin I ≠ 15 menit)
# Uji t satu sampel untuk Kantin I dibandingkan dengan μ = 15
t.test(kantin1, mu=15) # output termasuk t-statistic, p-value, CI, mean##
## One Sample t-test
##
## data: kantin1
## t = -0.28608, df = 39, p-value = 0.7763
## alternative hypothesis: true mean is not equal to 15
## 95 percent confidence interval:
## 10.42925 18.43802
## sample estimates:
## mean of x
## 14.43364
t = -0.28608 → nilai statistik t (sangat kecil, artinya mean sampel tidak jauh dari 15). df = 39 → derajat kebebasan (n-1, karena ada 40 data). p-value = 0.7763 → jauh lebih besar dari 0.05. 95% CI = [10.43, 18.44] → interval yang mungkin untuk rata-rata populasi. sample mean = 14.43 menit.
Karena p-value = 0.7763 > 0.05, maka gagal menolak H0. Artinya: tidak cukup bukti untuk mengatakan bahwa rata-rata waktu tunggu di Kantin I berbeda dari 15 menit.
ANOVA (k Populasi)
H0 : Rata-rata waktu tunggu di ketiga kantin sama.
H1 : Ada minimal satu kantin dengan rata-rata waktu tunggu berbeda.
# Analisis Varians (ANOVA) untuk membandingkan rata-rata antar kantin
anova_result <- aov(waktu ~ kantin, data=data) # aov() untuk uji ANOVA## Df Sum Sq Mean Sq F value Pr(>F)
## kantin 2 1383 691.5 2.746 0.0683 .
## Residuals 117 29459 251.8
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Karena p-value = 0.0683 > 0.05, maka pada taraf signifikansi 5% kita gagal menolak H0. Artinya, tidak ada bukti cukup untuk menyatakan bahwa rata-rata waktu tunggu berbeda signifikan antar kantin. Dengan kata lain, data konsisten dengan rata-rata sekitar 15 menit.
Visualisasi
library(dplyr) # Load package dplyr untuk manipulasi data
library(ggplot2) # Load package ggplot2 untuk visualisasi data## Warning: package 'ggplot2' was built under R version 4.4.3
# Hitung summary per kantin
summary_data <- data %>% # Ambil dataset 'data'
group_by(kantin) %>% # Kelompokkan data berdasarkan variabel 'kantin'
summarise( # Hitung ringkasan statistik per kelompok
mean = mean(waktu), # Rata-rata waktu tunggu tiap kantin
se = sd(waktu)/sqrt(n()) # Standard error = sd / akar jumlah sampel
)
# Barplot mean + error bar
ggplot(summary_data, aes(x = kantin, y = mean, fill = kantin)) + # Buat plot dengan sumbu X = kantin, Y = mean
geom_col(alpha = 0.7) + # Gambar bar (kolom) dengan transparansi 0.7
geom_errorbar(aes(ymin = mean - se, ymax = mean + se), # Tambahkan error bar (dari mean-SE ke mean+SE)
width = 0.2) + # Lebar "topi" error bar = 0.2
labs(title = "Rata-rata Waktu Tunggu antar Kantin", # Judul grafik
x = "Kantin", # Label sumbu X
y = "Rata-rata Waktu Tunggu (menit)") + # Label sumbu Y
theme_minimal() # Gunakan tema minimalis untuk tampilan plotUji ANOVA menunjukkan bahwa rata-rata waktu tunggu di tiga kantin tidak berbeda signifikan pada tingkat 5% (p = 0,0683), meski ada tanda perbedaan pada tingkat 10%. Dari grafik terlihat Kantin II punya waktu tunggu paling lama, Kantin III paling cepat, dan Kantin I di tengah, tapi perbedaan ini belum cukup kuat secara statistik.
Kesimpulan
Dari penelitian waktu tunggu kantin, diketahui bahwa rata-rata waktu tunggu mahasiswa di ketiga kantin tidak berbeda secara signifikan. Waktu tunggu di Kantin II cenderung paling lama dan bervariasi, Kantin III paling cepat dan konsisten, sedangkan Kantin I berada di posisi tengah. Hasil ANOVA menunjukkan p-value 0.0683, sehingga tidak ada bukti cukup untuk menyatakan perbedaan yang signifikan. Karena hasilnya tidak signifikan, uji lanjutan seperti Tukey tidak diperlukan, dan kesimpulan bisa ditarik langsung dari ANOVA.