# NO 1 — Pengaruh Ukuran Sampel (n)
# Parameter umum
mean_val <- 100
sd_val <- 20
alpha <- 0.05

# Fungsi untuk menghitung CI
hitung_ci <- function(n) {
  t_value <- qt(1 - alpha/2, df = n-1)
  error_margin <- t_value * sd_val / sqrt(n)
  lower <- mean_val - error_margin
  upper <- mean_val + error_margin
  
  return(c(lower, upper, width = upper - lower))
}

# Perhitungan untuk tiap n
ci_5 <- hitung_ci(5)
ci_30 <- hitung_ci(30)
ci_100 <- hitung_ci(100)

ci_5
##                         width 
##  75.16672 124.83328  49.66656
ci_30
##                         width 
##  92.53188 107.46812  14.93625
ci_100
##                            width 
##  96.031566 103.968434   7.936868
# Terlihat bahwa semakin besar ukuran sampel (n), maka selang kepercayaan menjadi semakin sempit. Hal ini terjadi karena nilai standar error menjadi lebih kecil ketika ukuran sampel meningkat.
# TUGAS NO 2 — Pengaruh Variabilitas Data (Standar Deviasi)
# Parameter umum
mean_val <- 100
n <- 30
alpha <- 0.05

# Fungsi untuk menghitung CI
hitung_ci_sd <- function(sd_val) {
  t_value <- qt(1 - alpha/2, df = n-1)
  error_margin <- t_value * sd_val / sqrt(n)
  lower <- mean_val - error_margin
  upper <- mean_val + error_margin
  
  return(c(lower, upper, width = upper - lower))
}

# Perhitungan untuk tiap standar deviasi
ci_sd_10 <- hitung_ci_sd(10)
ci_sd_50 <- hitung_ci_sd(50)
ci_sd_90 <- hitung_ci_sd(90)

ci_sd_10
##                            width 
##  96.265939 103.734061   7.468123
ci_sd_50
##                         width 
##  81.32969 118.67031  37.34061
ci_sd_90
##                         width 
##  66.39345 133.60655  67.21310
# semakin besar standar deviasi, maka selang kepercayaan menjadi semakin lebar. Hal ini terjadi karena standar deviasi yang lebih besar menunjukkan bahwa data lebih bervariasi atau lebih menyebar dan membuat margin of error meningkat dan estimasi parameter populasi menjadi kurang presisi.
#TUGAS NO 3 — Pengaruh Pengetahuan Standar Deviasi Populasi
# Parameter umum
mean_val <- 100
sd_val <- 20
n <- 30
alpha <- 0.05

# 1. Jika standar deviasi populasi diketahui -> pakai Z
z_value <- qnorm(1 - alpha/2)
error_margin_z <- z_value * sd_val / sqrt(n)
ci_z <- c(mean_val - error_margin_z, mean_val + error_margin_z, 
          width = 2 * error_margin_z)

# 2. Jika standar deviasi populasi tidak diketahui -> pakai t
t_value <- qt(1 - alpha/2, df = n-1)
error_margin_t <- t_value * sd_val / sqrt(n)
ci_t <- c(mean_val - error_margin_t, mean_val + error_margin_t, 
          width = 2 * error_margin_t)

ci_z
##                         width 
##  92.84322 107.15678  14.31355
ci_t
##                         width 
##  92.53188 107.46812  14.93625
# ketika standar deviasi populasi diketahui maka interval kepercayaan 95% yang dihasilkan lebih sempit dibandingkan ketika standar deviasi populasi tidak diketahui. Jika standar deviasi populasi diketahui, kita dapat menggunakan distribusi normal (Z) secara langsung. Sebaliknya, jika standar deviasi populasi tidak diketahui, kita harus menggunakan distribusi t yang menghasilkan margin of error sedikit lebih besar, sehingga selang kepercayaan menjadi lebih lebar.