PEDALAMAN MATERI 4 ECO-TRACK

2026-09-30

Tristan Satya Fatoni

data_waktu <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)
data_urut <- sort(data_waktu)
n <- length(data_waktu)
print(data_urut)
##  [1] 18 19 20 21 22 22 23 23 24 24 25 26 27 30 45

1. MEAN, MEDIAN, & MODUS

Bagian ini mencari nilai tunggal yang paling mewakili pusat dari keseluruhan kelompok data. Terdiri dari Mean (rata-rata), Median (nilai tengah setelah diurutkan), dan Modus (angka yang sering muncul).

mean_val <- mean(data_waktu)
median_val <- median(data_waktu)
get_mode <- function(v) {
   uniqv <- unique(v)
   tab <- tabulate(match(v, uniqv))
   uniqv[tab == max(tab)]
}
modus_val <- get_mode(data_waktu)

hasil <- data.frame(
  Statistik = c("Mean", "Median", "Modus"),
  Nilai = c(
    mean_val,
    median_val,
    paste(modus_val, collapse = ", ")
  )
)

knitr::kable(hasil)
Statistik Nilai
Mean 24.6
Median 23
Modus 22, 24, 23

2. Menghitung kuartil & IQR

Kuartil membagi persebaran data menjadi empat bagian yang berukuran sama besar. Interquartile Range (IQR) mengukur jarak antara Kuartil 3 (Q3) dan Kuartil 1 (Q1), yang menunjukkan sebaran dari 50% data yang berada tepat di tengah, sehingga lebih kebal terhadap data pencilan (outlier).

kuartil <- quantile(data_waktu, probs = c(0.25, 0.75), type = 2)
Q1 <- kuartil[1]
Q3 <- kuartil[2]
iqr_val <- IQR(data_waktu, type = 2)

hasil_kuartil <- data.frame(
  Statistik = c(
    "Q1 (Kuartil Bawah)",
    "Q3 (Kuartil Atas)",
    "Interquartile Range (IQR)"
  ),
  Nilai = c(
    as.numeric(Q1),
    as.numeric(Q3),
    as.numeric(iqr_val)
  )
)

knitr::kable(hasil_kuartil)
Statistik Nilai
Q1 (Kuartil Bawah) 21
Q3 (Kuartil Atas) 26
Interquartile Range (IQR) 5

3. Ukuran Penyebaran Data (Dispersion)

Metrik ini menunjukkan seberapa jauh data-data tersebut menyimpang atau bervariasi dari rata-ratanya. Semakin besar nilai varians dan standar deviasi, semakin lebar sebaran datanya. Koefisien Variasi menunjukkan tingkat persentase penyebaran relatif terhadap rata-ratanya.

varians_val <- var(data_waktu)
sd_val <- sd(data_waktu)
cv_val <- (sd_val / mean_val) * 100

hasil_variabilitas <- data.frame(
  Statistik = c(
    "Varians Sampel",
    "Standar Deviasi Sampel",
    "Koefisien Variasi (%)"
  ),
  Nilai = c(
    varians_val,
    sd_val,
    cv_val
  )
)

knitr::kable(hasil_variabilitas)
Statistik Nilai
Varians Sampel 41.542857
Standar Deviasi Sampel 6.445375
Koefisien Variasi (%) 26.200711

4. Bentuk Distribusi (Skewness)

Skewness (kemencengan) digunakan untuk mengetahui profil kurva distribusi. Nilai positif berarti kurva memanjang ke kanan (right-skewed), negatif berarti memanjang ke kiri (left-skewed), dan 0 berarti distribusinya simetris sempurna.

skew_val <- skewness(data_waktu)

# Logika if-else untuk penentuan teks arah kemencengan
if (skew_val > 0) {
  arah <- "Positif (Menceng ke kanan)"
} else if (skew_val < 0) {
  arah <- "Negatif (Menceng ke kiri)"
} else {
  arah <- "Simetris"
}

cat("Koefisien Skewness:", skew_val, "\n")
## Koefisien Skewness: 1.995046
cat("Arah Kemencengan:", arah, "\n")
## Arah Kemencengan: Positif (Menceng ke kanan)