Jawa Barat, sebagai provinsi dengan jumlah penduduk terbesar di Indonesia, memiliki dinamika sosial yang sangat kompleks. Salah satu indikator krusial dalam mengukur stabilitas sosial dan kesejahteraan keluarga adalah angka pernikahan dan perceraian.
Periode 2021 hingga 2023 menjadi masa yang sangat menarik untuk dikaji, mengingat pergeseran kondisi sosial-ekonomi pasca-pandemi yang diduga berdampak signifikan terhadap keputusan berkeluarga maupun retaknya ikatan pernikahan.
Analisis ini bertujuan untuk:
Data diambil dari repositori publik yang mencakup data tahun 2021, 2022, dan 2023.
# Definisi URL data
url_2021 <- "https://github.com/nida-kha44/statistical-methods-notes/raw/main/data-projects/Jumlah%20Nikah%20dan%20Cerai%2C%202021.xlsx"
url_2022 <- "https://github.com/nida-kha44/statistical-methods-notes/raw/main/data-projects/Jumlah%20Nikah%20dan%20Cerai%2C%202022.xlsx"
url_2023 <- "https://github.com/nida-kha44/statistical-methods-notes/raw/main/data-projects/Jumlah%20Nikah%20dan%20Cerai%2C%202023.xlsx"
# Fungsi untuk mengunduh dan membaca data
read_remote_xlsx <- function(url, year) {
destfile <- paste0("data_", year, ".xlsx")
if (!file.exists(destfile)) {
download.file(url, destfile, mode = "wb")
}
df <- read_excel(destfile)
df$Tahun <- year
colnames(df) <- c("Wilayah", "Nikah", "Cerai_Talak",
"Cerai_Gugat", "Jumlah_Cerai", "Tahun")
return(df)
}
# Membaca data
data_2021 <- read_remote_xlsx(url_2021, 2021)
data_2022 <- read_remote_xlsx(url_2022, 2022)
data_2023 <- read_remote_xlsx(url_2023, 2023)# Menggabungkan data
all_data <- bind_rows(data_2021, data_2022, data_2023)
# Memisahkan Data Makro (Provinsi) dan Data Wilayah (Kab/Kota)
data_provinsi <- all_data %>%
filter(grepl("Provinsi", Wilayah))
data_wilayah <- all_data %>%
filter(!grepl("Provinsi", Wilayah) & !grepl("Wilayah", Wilayah)) %>%
mutate(across(c(Nikah, Cerai_Talak, Cerai_Gugat, Jumlah_Cerai), as.numeric))
data_2023_clean <- data_wilayah %>% filter(Tahun == 2023)Catatan Data: Dataset mencakup seluruh Kabupaten/Kota di Jawa Barat selama 3 tahun (2021–2023). Data dipisahkan menjadi data tingkat provinsi (agregat) dan data tingkat wilayah (Kab/Kota).
Grafik berikut menunjukkan perkembangan pernikahan dan perceraian secara keseluruhan di tingkat provinsi dari tahun 2021 hingga 2023.
plot_ly(data_provinsi, x = ~Tahun) %>%
add_lines(
y = ~Nikah,
name = "Pernikahan",
line = list(color = "#2980b9", width = 3),
marker = list(size = 8)
) %>%
add_lines(
y = ~Jumlah_Cerai,
name = "Total Perceraian",
line = list(color = "#e74c3c", width = 3),
marker = list(size = 8)
) %>%
layout(
title = list(
text = "Tren Pernikahan vs Perceraian — Provinsi Jawa Barat (2021–2023)",
font = list(size = 15)
),
yaxis = list(title = "Jumlah Kasus", tickformat = ","),
xaxis = list(
title = "Tahun",
tickmode = "array",
tickvals = c(2021, 2022, 2023)
),
legend = list(orientation = "h", y = -0.2),
hovermode = "x unified"
)Tabel interaktif berikut merangkum data dari seluruh Kabupaten/Kota di Jawa Barat. Gunakan kolom pencarian dan filter untuk eksplorasi data.
datatable(
data_wilayah,
filter = "top",
caption = "Tabel 1. Data Pernikahan dan Perceraian Kab/Kota di Jawa Barat (2021–2023)",
options = list(
pageLength = 10,
scrollX = TRUE,
dom = "Bfrtip"
),
colnames = c("Wilayah", "Nikah", "Cerai Talak",
"Cerai Gugat", "Jumlah Cerai", "Tahun")
) %>%
formatRound(columns = c("Nikah","Cerai_Talak",
"Cerai_Gugat","Jumlah_Cerai"),
digits = 0)Dalam bagian ini, kita menghitung peluang kejadian tertentu berdasarkan data historis tahun 2023.
Pertanyaan: Berapa peluang sebuah kasus pernikahan yang diambil secara acak pada tahun 2023 berasal dari wilayah Bogor?
total_nikah_2023 <- sum(data_2023_clean$Nikah, na.rm = TRUE)
# --- Ganti nama daerah di sini jika diperlukan ---
target_daerah <- "Bogor"
# -------------------------------------------------
nikah_daerah <- data_2023_clean %>%
filter(Wilayah == target_daerah) %>%
pull(Nikah)
peluang_daerah <- nikah_daerah / total_nikah_2023
cat("Peluang kejadian pernikahan terpilih berasal dari",
target_daerah, "pada tahun 2023 adalah:",
round(peluang_daerah, 4),
paste0("(", round(peluang_daerah * 100, 2), "%)"))## Peluang kejadian pernikahan terpilih berasal dari Bogor pada tahun 2023 adalah: 0.1011 (10.11%)
Tabel berikut menyajikan distribusi peluang empiris kejadian pernikahan di seluruh Kabupaten/Kota Jawa Barat tahun 2023. Peluang menunjukkan probabilitas bahwa sebuah kasus pernikahan yang diambil secara acak berasal dari masing-masing wilayah.
tabel_peluang_jabar <- data_2023_clean %>%
group_by(Wilayah) %>%
summarise(
Jumlah_Nikah = sum(Nikah, na.rm = TRUE),
Peluang = round(Jumlah_Nikah / total_nikah_2023, 4),
Persen = paste0(round(Jumlah_Nikah / total_nikah_2023 * 100, 2), "%"),
.groups = "drop"
) %>%
arrange(desc(Peluang))
datatable(
tabel_peluang_jabar,
caption = "Tabel 2. Distribusi Peluang Empiris Pernikahan per Wilayah (2023)",
options = list(pageLength = 10, scrollX = TRUE),
colnames = c("Wilayah", "Jumlah Nikah", "Peluang (P)", "Persentase")
)Dalil Bayes digunakan untuk memperbarui peluang suatu kejadian jika diberikan informasi tambahan.
\[P(A \mid B) = \frac{P(B \mid A) \cdot P(A)}{P(B)}\]
Skenario: Berapa peluang suatu kasus perceraian adalah Cerai Talak, jika diketahui kasus tersebut berasal dari wilayah Bogor pada tahun 2023?
data_bogor <- data_2023_clean %>% filter(Wilayah == "Bogor")
talak_bogor <- sum(data_bogor$Cerai_Talak, na.rm = TRUE)
total_bogor <- sum(data_bogor$Jumlah_Cerai, na.rm = TRUE)
p_A_given_B <- talak_bogor / total_bogor
cat("=== Komponen Perhitungan ===\n")## === Komponen Perhitungan ===
## Cerai Talak di Bogor : 1645
## Total Cerai di Bogor : 7376
## ===========================
## P(Talak | Bogor) : 0.223 (22.3%)
Interpretasi: Dari seluruh kasus perceraian di Bogor tahun 2023, sekitar 22.3% merupakan Cerai Talak. Nilai ini merupakan peluang bersyarat \(P(\text{Talak} \mid \text{Bogor})\) yang dihitung langsung dari frekuensi relatif.
Kita dapat memodelkan jumlah pernikahan tahunan di suatu wilayah menggunakan Distribusi Poisson, dengan asumsi kejadian pernikahan terjadi secara independen dalam interval waktu tertentu.
\[P(X = k) = \frac{e^{-\lambda} \cdot \lambda^k}{k!}\]
daerah_model <- "Sukabumi"
lambda_tahunan <- data_wilayah %>%
filter(Wilayah == daerah_model) %>%
summarize(mean_nikah = mean(Nikah, na.rm = TRUE)) %>%
pull(mean_nikah)
x_tahunan <- 17899
prob_poisson <- dpois(x_tahunan, lambda = lambda_tahunan)
cat("Rata-rata pernikahan tahunan (λ) di", daerah_model,
":", round(lambda_tahunan, 2), "\n")## Rata-rata pernikahan tahunan (λ) di Sukabumi : 17712
## P(X = 17899 ) = 1.1150e-03
⚠️ Catatan Metodologis: Pendekatan Distribusi Poisson pada modul ini disesuaikan ke skala tahunan mengingat ketersediaan data. Pembagian rata-rata tahunan menjadi harian \((\lambda/365)\) kurang akurat secara teoritis karena mengabaikan efek musiman pernikahan (misalnya lonjakan setelah Lebaran), yang melanggar asumsi stasioneritas Distribusi Poisson.
Kita menggunakan Z-Score untuk menstandarisasi data perceraian tahun 2021–2023 guna mengidentifikasi wilayah dengan angka perceraian yang relatif sangat tinggi (outlier).
\[Z = \frac{X - \mu}{\sigma}\]
data_3tahun <- data_wilayah %>%
filter(Tahun %in% c(2021, 2022, 2023)) %>%
mutate(Jumlah_Cerai = as.numeric(Jumlah_Cerai))
data_3tahun_z <- data_3tahun %>%
group_by(Tahun) %>%
mutate(
mean_cerai = mean(Jumlah_Cerai, na.rm = TRUE),
sd_cerai = sd(Jumlah_Cerai, na.rm = TRUE),
Z_Score_Cerai = (Jumlah_Cerai - mean_cerai) / sd_cerai
) %>%
ungroup()
ggplot(data_3tahun_z, aes(x = Z_Score_Cerai)) +
geom_histogram(
aes(y = after_stat(density)),
bins = 10,
fill = "#2980b9",
color = "white",
alpha = 0.75,
na.rm = TRUE
) +
stat_function(
fun = dnorm,
args = list(mean = 0, sd = 1),
color = "#e74c3c",
linewidth = 1.2,
linetype = "dashed"
) +
facet_wrap(~Tahun, ncol = 3) +
labs(
title = "Distribusi Z-Score Perceraian (2021–2023) vs Kurva Normal Baku",
subtitle = "Garis merah putus-putus = kurva normal baku N(0,1)",
x = "Z-Score",
y = "Densitas"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray50", size = 10),
strip.background = element_rect(fill = "#d5e8f5", color = NA),
strip.text = element_text(face = "bold", size = 11),
panel.grid.minor = element_blank()
)Berdasarkan Central Limit Theorem (CLT), jika kita mengambil banyak sampel acak dari populasi, distribusi rata-rata sampelnya akan mendekati distribusi normal — terlepas dari bentuk distribusi populasi asalnya.
set.seed(123)
sample_means <- replicate(
1000,
mean(sample(data_wilayah$Nikah, 10, replace = TRUE))
)
df_sim <- data.frame(rata2 = sample_means)
ggplot(df_sim, aes(x = rata2)) +
geom_histogram(
aes(y = after_stat(density)),
bins = 30,
fill = "#27ae60",
color = "white",
alpha = 0.8
) +
stat_function(
fun = dnorm,
args = list(mean = mean(sample_means), sd = sd(sample_means)),
color = "#c0392b",
linewidth = 1.2,
linetype = "dashed"
) +
scale_x_continuous(labels = comma) +
labs(
title = "Simulasi CLT: Distribusi Rata-rata Sampel Pernikahan",
subtitle = "1.000 replikasi, ukuran sampel n = 10 | Garis merah = kurva normal teoritis",
x = "Rata-rata Sampel",
y = "Densitas"
) +
theme_minimal(base_size = 12) +
theme(
plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "gray50", size = 10),
panel.grid.minor = element_blank()
)Interpretasi: Berdasarkan 1.000 simulasi pengambilan sampel acak (\(n = 10\)), distribusi rata-rata sampel pernikahan membentuk pola simetris menyerupai lonceng yang memusat di sekitar 12.000–13.000. Hal ini mengonfirmasi berlakunya Central Limit Theorem pada data pernikahan Jawa Barat.
Kita menduga rata-rata pernikahan per wilayah di Jawa Barat pada tahun 2023 dengan tingkat kepercayaan 95%.
n <- nrow(data_2023_clean)
x_bar <- mean(data_2023_clean$Nikah, na.rm = TRUE)
s <- sd(data_2023_clean$Nikah, na.rm = TRUE)
error <- qt(0.975, df = n - 1) * (s / sqrt(n))
lower <- x_bar - error
upper <- x_bar + error
cat("=== Selang Kepercayaan 95% ===\n")## === Selang Kepercayaan 95% ===
## n : 27
## x̄ : 11767.22
## s : 7573.68
## Margin E : 2996.05
## CI : [ 8771.17 ; 14763.27 ]
Interpretasi: Kita 95% yakin bahwa rata-rata pernikahan per wilayah di Jawa Barat tahun 2023 berada dalam rentang 8771 hingga 1.4763^{4} kasus.
\(H_0\): Tidak ada perbedaan signifikan rata-rata jumlah pernikahan antara tahun 2021 dan 2023.
\(H_1\): Terdapat perbedaan signifikan rata-rata jumlah pernikahan antara tahun 2021 dan 2023.
Tingkat signifikansi: \(\alpha = 0{,}05\)
##
## Welch Two Sample t-test
##
## data: data_2021$Nikah and data_2023$Nikah
## t = 0.12609, df = 53.603, p-value = 0.9001
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -30624.83 34734.68
## sample estimates:
## mean of x mean of y
## 24748.86 22693.93
Keputusan: Berdasarkan hasil uji statistik, nilai \(p\text{-value}\) = 0.9001. Karena \(p\text{-value}\) > 0,05, kita Gagal Menolak \(H_0\).
Artinya, tidak terdapat perbedaan yang signifikan antara rata-rata jumlah pernikahan pada tahun 2021 dan 2023 di Provinsi Jawa Barat.
Analisis komprehensif data pernikahan dan perceraian di Jawa Barat (2021–2023) menghasilkan beberapa temuan utama:
| Modul | Temuan |
|---|---|
| Deskriptif | Tren pernikahan dan perceraian dapat dipantau melalui visualisasi interaktif per tahun |
| Kaidah Peluang | Distribusi peluang empiris per wilayah memperlihatkan konsentrasi pernikahan di beberapa wilayah tertentu |
| Bayes | Peluang bersyarat membantu mengidentifikasi karakteristik jenis perceraian per wilayah |
| Distribusi Diskret | Model Poisson dapat diaplikasikan dengan catatan keterbatasan asumsi musiman |
| Distribusi Normal | Z-Score mengidentifikasi wilayah dengan perceraian anomali (outlier) |
| CLT | Simulasi mengonfirmasi teorema limit pusat bekerja pada data pernikahan ini |
| Uji Hipotesis | Tidak terdapat perbedaan signifikan rata-rata pernikahan antara 2021 dan 2023 |
Implementasi metode statistika tidak hanya membantu merangkum data secara deskriptif, tetapi juga memberikan kekuatan inferensial untuk memahami pola, memprediksi risiko, dan mengidentifikasi anomali di tingkat wilayah — menjadi landasan bagi pengambilan kebijakan yang berbasis data dalam program ketahanan keluarga.