# 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