# Memasukkan data penggunaan harian EcoTrack
x <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)
# ==========================================
# 1. Menghitung Mean, Median, dan Modus
# ==========================================
cat("=== 1. Mean, Median, dan Modus ===\n")
## === 1. Mean, Median, dan Modus ===
mean_x <- mean(x)
median_x <- median(x)
# R tidak memiliki fungsi bawaan untuk modus, jadi kita buat fungsinya
get_mode <- function(v) {
freq <- table(v)
as.numeric(names(freq)[freq == max(freq)])
}
modus_x <- get_mode(x)
cat("Mean :", mean_x, "\n")
## Mean : 24.6
cat("Median :", median_x, "\n")
## Median : 23
cat("Modus :", paste(modus_x, collapse = ", "), "(Data Multimodal)\n\n")
## Modus : 22, 23, 24 (Data Multimodal)
# ==========================================
# 2. Menentukan Q1, Q3, dan IQR
# ==========================================
cat("=== 2. Kuartil dan IQR ===\n")
## === 2. Kuartil dan IQR ===
# Menggunakan tipe default (type 7) dari fungsi quantile
q1 <- quantile(x, 0.25, names = FALSE)
q3 <- quantile(x, 0.75, names = FALSE)
iqr_x <- IQR(x)
cat("Q1 (Kuartil 1) :", q1, "\n")
## Q1 (Kuartil 1) : 21.5
cat("Q3 (Kuartil 3) :", q3, "\n")
## Q3 (Kuartil 3) : 25.5
cat("IQR :", iqr_x, "\n")
## IQR : 4
cat("Interpretasi : 50% data di bagian tengah (pengguna biasa yang tidak ekstrem)\n")
## Interpretasi : 50% data di bagian tengah (pengguna biasa yang tidak ekstrem)
cat(" memiliki rentang waktu penggunaan sebesar", iqr_x, "menit.\n\n")
## memiliki rentang waktu penggunaan sebesar 4 menit.
# ==========================================
# 3. Varians dan Standar Deviasi
# ==========================================
cat("=== 3. Varians dan Standar Deviasi ===\n")
## === 3. Varians dan Standar Deviasi ===
var_x <- var(x)
sd_x <- sd(x)
# Untuk menentukan bervariasi tinggi/rendah, gunakan Koefisien Variasi (CV)
# Rumus CV = (Standar Deviasi / Mean) * 100%
cv_x <- (sd_x / mean_x) * 100
cat("Varians Sampel :", var_x, "\n")
## Varians Sampel : 41.54286
cat("Standar Deviasi Sampel :", sd_x, "\n")
## Standar Deviasi Sampel : 6.445375
cat("Koefisien Variasi (CV) :", round(cv_x, 2), "%\n")
## Koefisien Variasi (CV) : 26.2 %
if (cv_x < 15) {
cat("Interpretasi : Data bervariasi RENDAH (sangat seragam).\n\n")
} else if (cv_x <= 30) {
cat("Interpretasi : Data bervariasi SEDANG / MODERAT. Sebaran ini\n")
cat(" sedikit melebar karena adanya satu nilai outlier (45).\n\n")
} else {
cat("Interpretasi : Data bervariasi TINGGI (sangat beragam).\n\n")
}
## Interpretasi : Data bervariasi SEDANG / MODERAT. Sebaran ini
## sedikit melebar karena adanya satu nilai outlier (45).
# ==========================================
# 4. Koefisien Skewness Pearson & Verifikasi
# ==========================================
cat("=== 4. Skewness (Kemencengan) ===\n")
## === 4. Skewness (Kemencengan) ===
# Menggunakan Pearson Kedua karena data Multimodal
pearson_skewness <- 3 * (mean_x - median_x) / sd_x
cat("Koefisien Skewness Pearson :", pearson_skewness, "\n")
## Koefisien Skewness Pearson : 0.7447201
# Verifikasi menggunakan library e1071
# Pastikan library sudah di-install dan di-load
if (!require(e1071, quietly = TRUE)) {
# Hilangkan install.packages dari script agar tidak error saat di-Knit/Render
# Jika error, jalankan install.packages("e1071") di Console Anda terlebih dahulu
cat("Peringatan: Package 'e1071' belum dimuat.\n")
} else {
library(e1071)
skew_r <- skewness(x, type = 3)
cat("Verifikasi fungsi skewness() :", skew_r, "\n")
if(skew_r > 0) {
cat("Arah Kemencengan : POSITIF (Right-Skewed / Menceng Kanan).\n")
cat(" Ekor distribusi memanjang ke kanan akibat outlier (45).\n")
} else if (skew_r < 0) {
cat("Arah Kemencengan : NEGATIF (Left-Skewed / Menceng Kiri).\n")
} else {
cat("Arah Kemencengan : SIMETRIS.\n")
}
}
## Verifikasi fungsi skewness() : 1.995046
## Arah Kemencengan : POSITIF (Right-Skewed / Menceng Kanan).
## Ekor distribusi memanjang ke kanan akibat outlier (45).