# 0. DEKLARASI DATA AWAL
data_ecotrack <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)

# SOAL 1
mean_val <- mean(data_ecotrack)
median_val <- median(data_ecotrack)

get_mode <- function(v) {
  uniqv <- unique(v)
  tab <- tabulate(match(v, uniqv))
  uniqv[tab == max(tab)]
}
mode_val <- get_mode(data_ecotrack)

cat("--- SOAL 1 ---\nMean:", mean_val, "\nMedian:", median_val, "\nModus:", mode_val, "\n\n")
## --- SOAL 1 ---
## Mean: 24.6 
## Median: 23 
## Modus: 22 24 23
# SOAL 2
q1 <- quantile(data_ecotrack, 0.25, type = 6)
q3 <- quantile(data_ecotrack, 0.75, type = 6)
iqr_val <- q3 - q1

cat("--- SOAL 2 ---\nQ1:", q1, "\nQ3:", q3, "\nIQR:", iqr_val, "\n\n")
## --- SOAL 2 ---
## Q1: 21 
## Q3: 26 
## IQR: 5
# SOAL 3
var_val <- var(data_ecotrack)
sd_val <- sd(data_ecotrack)

cat("--- SOAL 3 ---\nVarians:", var_val, "\nSD:", sd_val, "\n\n")
## --- SOAL 3 ---
## Varians: 41.54286 
## SD: 6.445375
# SOAL 4        
pearson_skew <- (3 * (mean_val - median_val)) / sd_val

if(!require(moments)) install.packages("moments")
## Loading required package: moments
library(moments)
moments_skew <- skewness(data_ecotrack)

cat("--- SOAL 4 ---\nSkewness Pearson (Formula):", pearson_skew, "\nSkewness (Package moments):", moments_skew, "\n")
## --- SOAL 4 ---
## Skewness Pearson (Formula): 0.7447201 
## Skewness (Package moments): 2.212573