library(moments)

# ------------------------------------------------------------------------------
# DATA AWAL
# ------------------------------------------------------------------------------
# Input Data Mentah
data_ecotrack <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)

# ------------------------------------------------------------------------------

# 1.Hitung mean, median, dan modus data tersebut secara manual, lalu verifikasi dengan RStudio.

#-------------------------------------------------------------------------------

# Mean
mean_val <- mean(data_ecotrack)

# Median
median_val <- median(data_ecotrack)

# Modus (Fungsi Kustom)
get_mode <- function(v) {
   uniqv <- unique(v)
   uniqv[which(tabulate(match(v, uniqv)) == max(tabulate(match(v, uniqv))))]
}
mode_val <- get_mode(data_ecotrack)

# Menampilkan Hasil
cat("Mean          :", mean_val, "\n")
## Mean          : 24.6
cat("Median        :", median_val, "\n")
## Median        : 23
cat("Modus         :", mode_val, "\n")
## Modus         : 22 24 23
#-------------------------------------------------------------------------------

# 2.Tentukan Q1 dan Q3, lalu interpretasikan IQR-nya dalam konteks kasus ini.

#-------------------------------------------------------------------------------

# Perhitungan Q1, Q3, dan IQR (type = 6 sepadan dengan rumus manual pos (n+1)*p)
q1 <- quantile(data_ecotrack, 0.25, type = 6)
q3 <- quantile(data_ecotrack, 0.75, type = 6)
iqr_val <- IQR(data_ecotrack, type = 6)

cat("Kuartil 1 (Q1) :", q1, "\n")
## Kuartil 1 (Q1) : 21
cat("Kuartil 3 (Q3) :", q3, "\n")
## Kuartil 3 (Q3) : 26
cat("Nilai IQR      :", iqr_val, "\n")
## Nilai IQR      : 5
#-------------------------------------------------------------------------------

# 3.Hitung varians dan standar deviasi; menurut Anda, apakah data ini tergolong bervariasi tinggi atau rendah?

#-------------------------------------------------------------------------------

# Varians dan Standar Deviasi Sampel
varians <- var(data_ecotrack)
std_dev <- sd(data_ecotrack)
kv <- (std_dev / mean_val) * 100

cat("Varians Sampel         :", varians, "\n")
## Varians Sampel         : 41.54286
cat("Standar Deviasi Sampel :", std_dev, "\n")
## Standar Deviasi Sampel : 6.445375
cat("Koefisien Variasi (%)  :", kv, "%\n")
## Koefisien Variasi (%)  : 26.20071 %
#-------------------------------------------------------------------------------

# 4.Hitung koefisien skewness Pearson dan tentukan arah kemencengannya; verifikasi dengan fungsi skewness() di R.

#-------------------------------------------------------------------------------

# Skewness Pearson (Manual lewat R)
skew_pearson <- 3 * (mean_val - median_val) / std_dev

# Skewness Fungsi R
skew_r_moments <- skewness(data_ecotrack)

cat("Pearson Skewness (Manual) :", skew_pearson, "\n")
## Pearson Skewness (Manual) : 0.7447201
cat("Skewness Fungsi R         :", skew_r_moments, "\n")
## Skewness Fungsi R         : 2.212573
cat("Arah Kemencengan          : Menceng Kanan (Positif)\n")
## Arah Kemencengan          : Menceng Kanan (Positif)