1. Data

# Memasukkan data ke dalam vektor bernama 'data'
data <- c(22, 25, 19, 30, 24, 21, 45, 23, 20, 26, 24, 22, 18, 27, 23)

# Menghitung banyaknya data (n)
n <- length(data)

# Menampilkan data dan jumlahnya
data
##  [1] 22 25 19 30 24 21 45 23 20 26 24 22 18 27 23
n
## [1] 15

1.1 Mean

# Mean = jumlah seluruh data dibagi banyak data
rata_rata <- sum(data) / n
rata_rata
## [1] 24.6

1.2 Median

# Median = nilai tengah setelah data diurutkan
# n = 15 (ganjil), maka median adalah data ke-(n+1)/2 = data ke-8
data_urut <- sort(data)     # mengurutkan data dari kecil ke besar
data_urut                   # menampilkan data yang sudah urut
##  [1] 18 19 20 21 22 22 23 23 24 24 25 26 27 30 45
posisi_median <- (n + 1) / 2
median_data <- data_urut[posisi_median]
median_data
## [1] 23

1.3 Modus

# Modus = nilai yang paling sering muncul
frekuensi <- table(data)    # membuat tabel frekuensi tiap nilai
frekuensi
## data
## 18 19 20 21 22 23 24 25 26 27 30 45 
##  1  1  1  1  2  2  2  1  1  1  1  1
# Mengambil nilai yang frekuensinya sama dengan frekuensi terbesar
modus <- as.numeric(names(frekuensi)[frekuensi == max(frekuensi)])
modus
## [1] 22 23 24

2. Kuartil (Q1 dan Q3)

# Fungsi untuk menghitung kuartil dengan rumus posisi Qi = i(n+1)/4
kuartil <- function(x, i) {
  x <- sort(x)                        # data harus diurutkan dulu
  n <- length(x)
  posisi <- i * (n + 1) / 4           # rumus posisi kuartil
  bawah <- floor(posisi)              # pembulatan ke bawah
  atas  <- ceiling(posisi)            # pembulatan ke atas
  # Jika posisi bilangan bulat, hasilnya langsung x[posisi].
  # Jika berkoma, dilakukan interpolasi antara dua data terdekat.
  x[bawah] + (posisi - bawah) * (x[atas] - x[bawah])
}

Q1 <- kuartil(data, 1)
Q3 <- kuartil(data, 3)

Q1
## [1] 21
Q3
## [1] 26

IQR (Interquartile Range)

# IQR = Q3 - Q1
IQR_data <- Q3 - Q1
IQR_data
## [1] 5

3. Varians dan Standar Deviasi

3.1 Varians

# Varians sampel = jumlah kuadrat selisih data dengan mean, dibagi (n-1)
selisih_kuadrat <- (data - rata_rata)^2       # (xi - mean)^2 untuk tiap data
varians <- sum(selisih_kuadrat) / (n - 1)
varians
## [1] 41.54286

3.2 Standar Deviasi

# Standar deviasi = akar dari varians
standar_deviasi <- sqrt(varians)
standar_deviasi
## [1] 6.445375

4. Pearson Skewness

# Pearson Skewness = 3 x (Mean - Median) / SD
skewness <- 3 * (rata_rata - median_data) / standar_deviasi
skewness
## [1] 0.7447201

5. Rekap Hasil

# Membuat tabel ringkasan semua hasil
hasil <- data.frame(
  Statistik = c("Mean", "Median", "Modus", "Q1", "Q3", "IQR",
                "Varians", "Standar Deviasi", "Pearson Skewness"),
  Nilai = c(rata_rata,
            median_data,
            paste(modus, collapse = ", "),    # modus bisa lebih dari satu
            Q1, Q3, IQR_data,
            round(varians, 4),
            round(standar_deviasi, 4),
            round(skewness, 4))
)
hasil
##          Statistik      Nilai
## 1             Mean       24.6
## 2           Median         23
## 3            Modus 22, 23, 24
## 4               Q1         21
## 5               Q3         26
## 6              IQR          5
## 7          Varians    41.5429
## 8  Standar Deviasi     6.4454
## 9 Pearson Skewness     0.7447