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

# fungsi set.seed() digunakan agar hasil replikasi sama setiap dijalankan
set.seed(123) 
# 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
#simulasi waktu tunggu kantin II
kantin2 <- rexp(40, rate = 1/18) # rata-rata ~18 menit
kantin2
##  [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
#simulasi waktu tunggu kantin III
kantin3 <- rexp(40, rate = 1/12) # rata-rata ~12 menit
kantin3
##  [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

# Memuat package dplyr untuk manipulasi data
library(dplyr)
## 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
)

# hist() menampilkan distribusi frekuensi data numerik dalam bentuk histogram

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() menampilkan median, kuartil, dan distribusi data untuk tiap kelompok

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
summary(anova_result) # menampilkan hasil ANOVA termasuk p-value
##              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 plot

Uji 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.