# 1. Membuat data buatan
set.seed(42) # Agar hasil acak konsisten
jenis_kelamin <- c(rep("Laki-Laki", 50), rep("Perempuan", 50))
spjk <- c(
  sample(c("Ya", "Tidak"), size = 50, replace = TRUE, prob = c(0.6, 0.4)), # Laki-laki cenderung Ya
  sample(c("Ya", "Tidak"), size = 50, replace = TRUE, prob = c(0.3, 0.7))  # Perempuan cenderung Tidak
)

df <- data.frame(Jenis_Kelamin = jenis_kelamin, SPJK = spjk)

# 2. Membuat tabel kontingensi
tabel <- table(df$Jenis_Kelamin, df$SPJK)

# 3. Menampilkan tabel beserta margin total
addmargins(tabel)
##            
##             Tidak  Ya Sum
##   Laki-Laki    28  22  50
##   Perempuan    38  12  50
##   Sum          66  34 100
# 1. Menentukan seed agar data acak selalu konsisten
set.seed(123)

# 2. Generasi data buatan (n = 200)
tingkat_pendidikan <- factor(
  sample(c("SD", "SMP", "SMA", "PT"), size = 200, replace = TRUE, prob = c(0.20, 0.25, 0.35, 0.20)),
  levels = c("SD", "SMP", "SMA", "PT")
)

# Probabilitas SPJK "Ya" dibuat berbeda untuk setiap tingkat pendidikan
spjk <- factor(
  sapply(tingkat_pendidikan, function(tp) {
    prob_ya <- switch(as.character(tp), "SD" = 0.50, "SMP" = 0.30, "SMA" = 0.28, "PT" = 0.20)
    sample(c("Ya", "Tidak"), size = 1, prob = c(prob_ya, 1 - prob_ya))
  }),
  levels = c("Ya", "Tidak")
)

df <- data.frame(Tingkat_Pendidikan = tingkat_pendidikan, SPJK = spjk)

# 3. Membuat tabel kontingensi
tabel_kontingensi <- table(df$Tingkat_Pendidikan, df$SPJK)

# 4. Menampilkan tabel beserta total baris & kolom
addmargins(tabel_kontingensi)
##      
##        Ya Tidak Sum
##   SD   13    24  37
##   SMP  17    40  57
##   SMA  21    44  65
##   PT   11    30  41
##   Sum  62   138 200
# 5. Opsional: Uji Chi-Square untuk melihat hubungan antar variabel
chisq.test(tabel_kontingensi)
## 
##  Pearson's Chi-squared test
## 
## data:  tabel_kontingensi
## X-squared = 0.71799, df = 3, p-value = 0.869