1 Pendahuluan

1.1 Latar Belakang

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.

1.2 Tujuan Analisis

Analisis ini bertujuan untuk:

  1. 📊 Memetakan pola pernikahan dan perceraian di Jawa Barat secara deskriptif
  2. 🔍 Mengidentifikasi wilayah kritis dengan angka perceraian anomali
  3. 📐 Menerapkan metode statistika dari peluang, distribusi, hingga uji hipotesis
  4. 📋 Menyediakan rujukan berbasis data bagi program ketahanan keluarga

2 Persiapan Data

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).


3 Modul 1: Statistika Deskriptif & Analisis Makro

3.1 Tren Provinsi Jawa Barat

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"
  )

3.2 Tabel Data Per Wilayah

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)

4 Modul 2: Kaidah Peluang

Dalam bagian ini, kita menghitung peluang kejadian tertentu berdasarkan data historis tahun 2023.

4.1 Peluang Kejadian Sederhana

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%)

4.2 Distribusi Peluang Empiris Seluruh Wilayah

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")
)

5 Modul 3: Peluang Bersyarat & Dalil Bayes

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?

  • Kejadian A: Cerai Talak
  • Kejadian B: Kasus berasal dari Bogor
  • Dicari: \(P(A \mid B)\), yaitu peluang Cerai Talak given berasal dari Bogor
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 ===
cat("Cerai Talak di Bogor  :", talak_bogor, "\n")
## Cerai Talak di Bogor  : 1645
cat("Total Cerai di Bogor  :", total_bogor, "\n")
## Total Cerai di Bogor  : 7376
cat("===========================\n")
## ===========================
cat("P(Talak | Bogor)      :", round(p_A_given_B, 4),
    paste0("(", round(p_A_given_B * 100, 2), "%)\n"))
## 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.


6 Modul 4: Peubah Acak & Sebaran Peluang Diskret

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
cat("P(X =", x_tahunan, ") =", formatC(prob_poisson,
    format = "e", digits = 4), "\n")
## 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.


7 Modul 5: Sebaran Peluang Kontinu & Distribusi Normal

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()
  )


8 Modul 6: Sebaran Percontohan (Sampling Distribution)

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.


9 Modul 7: Pendugaan Parameter & Uji Hipotesis

9.1 Selang Kepercayaan (Confidence Interval)

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% ===
cat("n        :", n, "\n")
## n        : 27
cat("x̄       :", round(x_bar, 2), "\n")
## x̄       : 11767.22
cat("s        :", round(s, 2), "\n")
## s        : 7573.68
cat("Margin E :", round(error, 2), "\n")
## Margin E : 2996.05
cat("CI       : [", round(lower, 2), ";", round(upper, 2), "]\n")
## 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.

9.2 Uji Hipotesis: Uji-t Dua Sampel

\(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\)

t_test_result <- t.test(data_2021$Nikah, data_2023$Nikah)
print(t_test_result)
## 
##  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.


10 Kesimpulan

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.


Dokumen ini dibuat oleh Nida Khairunnissa menggunakan R Markdown. Data bersumber dari BPS
Diperbarui: 20 May 2026