author: “Muhammad Jibran Al Ghifari” date: “26/9/2026” output: html_document
knitr::opts_chunk_set(echo = TRUE)
# Memuat library e1071 untuk perhitungan skewness()
if(!require(e1071)) install.packages("e1071", repos = "http://cran.us.r-project.org")
library(e1071)
Data berikut merupakan menit penggunaan harian dari 15 pengguna aktif aplikasi ‘EcoTrack’:
# Input Data
data_ecotrack <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)
# Pengurutan Data
data_urut <- sort(data_ecotrack)
n <- length(data_ecotrack)
cat("Data Terurut:\n", data_urut, "\n")
cat("Jumlah Observasi (n):", n, "\n")
Mean (\(\bar{x}\)):
\[ \bar{x} = \frac{\sum x_i}{n} = \frac{18 + 19 + 20 + 21 + 22 + 22 + 23 + 23 + 24 + 24 + 25 + 26 + 27 + 30 + 45}{15} = \frac{369}{15} = 24.6 \]
Median (\(Me\)):
\[ \text{Posisi } Me = \frac{n + 1}{2} = \frac{15 + 1}{2} = 8 \text{ (data ke-8)} \]
Data urut ke-8 adalah 23.
Modus (\(Mo\)): Nilai yang paling sering muncul dalam data. Nilai 22, 23, dan 24 masing-masing muncul sebanyak 2 kali (Multimodal).
# Perhitungan Mean
mean_val <- mean(data_ecotrack)
cat("Mean:", mean_val, "\n")
# Perhitungan Median
median_val <- median(data_ecotrack)
cat("Median:", median_val, "\n")
# Fungsi untuk mencari Modus
get_mode <- function(v) {
uniqv <- unique(v)
tab <- tabulate(match(v, uniqv))
uniqv[tab == max(tab)]
}
modus_val <- get_mode(data_ecotrack)
cat("Modus:", sort(modus_val), "\n")
Data terurut (\(n = 15\)):
18, 19, 20, 21, 22, 22, 23, 23, 24, 24, 25, 26, 27, 30, 45
Kuartil Pertama (\(Q_1\)):
\[ \text{Posisi } Q_1 = \frac{1(n + 1)}{4} = \frac{16}{4} = 4 \text{ (data ke-4)} \]
\[ Q_1 = 21 \]
Kuartil Ketiga (\(Q_3\)):
\[ \text{Posisi } Q_3 = \frac{3(n + 1)}{4} = \frac{48}{4} = 12 \text{ (data ke-12)} \]
\[ Q_3 = 26 \]
Interquartile Range (\(IQR\)):
\[ IQR = Q_3 - Q_1 = 26 - 21 = 5 \]
Nilai \(IQR = 5\) menunjukkan bahwa sebaran rentang penggunaan harian untuk \(50\%\) pengguna aktif di posisi tengah adalah sebesar 5 menit (yaitu berkisar antara 21 menit hingga 26 menit).
# Menggunakan quantile Type 6 (sesuai rumus p*(n+1) pada metode manual)
q1_val <- as.numeric(quantile(data_ecotrack, probs = 0.25, type = 6))
q3_val <- as.numeric(quantile(data_ecotrack, probs = 0.75, type = 6))
iqr_val <- q3_val - q1_val
cat("Q1 :", q1_val, "\n")
cat("Q3 :", q3_val, "\n")
cat("IQR :", iqr_val, "\n")
Varians Sampel (\(s^2\)):
\[ s^2 = \frac{\sum (x_i - \bar{x})^2}{n - 1} \]
\[ \sum (x_i - \bar{x})^2 = (18-24.6)^2 + (19-24.6)^2 + \dots + (45-24.6)^2 = 721.6 \]
\[ s^2 = \frac{721.6}{14} \approx 51.5428 \]
Standar Deviasi Sampel (\(s\)):
\[ s = \sqrt{s^2} = \sqrt{51.5428} \approx 7.1793 \]
Data ini tergolong bervariasi tinggi. Hal ini disebabkan oleh hadirnya satu nilai pencilan (outlier) yang sangat besar yaitu \(45\) menit, sementara sebagian besar data pengguna berada pada rentang \(18-30\) menit. Keberadaan pencilan ini meningkatkan nilai ragam (varians) dan simpangan baku secara signifikan.
var_val <- var(data_ecotrack)
sd_val <- sd(data_ecotrack)
cat("Varians :", var_val, "\n")
cat("Standar Deviasi:", sd_val, "\n")
Menggunakan rumus Koefisien Kemencengan Pearson Kedua (berdasarkan Median):
\[ Sk = \frac{3(\bar{x} - Me)}{s} \]
\[ Sk = \frac{3(24.6 - 23)}{7.1793} = \frac{3(1.6)}{7.1793} = \frac{4.8}{7.1793} \approx 0.6686 \]
Karena nilai Koefisien Skewness bernilai positif (\(Sk > 0\)), maka distribusi data tergolong menceng ke kanan (menceng positif / positive skewness). Ekor distribusi memanjang ke arah kanan akibat adanya nilai penggunaan yang sangat tinggi (\(45\) menit).
skewness() di R# Menggunakan fungsi skewness dari package e1071
skew_r <- skewness(data_ecotrack)
cat("Hasil fungsi skewness() R:", skew_r, "\n")