library(gridExtra)
library(ggplot2)
library(dplyr)
library(knitr)
library(DT)
library(scales)
df <- read.csv("data_perceraian_indonesia_2025.csv", stringsAsFactors = TRUE)
df_provinsi <- df %>% distinct(Provinsi, .keep_all = TRUE)
data_long <- df
datatable(df,
caption = "Dataset Tingkat Perceraian Indonesia 2025",
options = list(pageLength = 10),
colnames = c("No", "Provinsi", "Jumlah Nikah",
"Jenis Cerai", "Jumlah Cerai",
"Rasio (%)", "Kategori"))
Variabel Kategorik:
Provinsi → 34 provinsi di IndonesiaJenis_Cerai → Cerai Talak / Cerai GugatKategori → Rendah / Sedang / Tinggi / Sangat
TinggiVariabel Numerik:
Jumlah_Nikah → Jumlah pernikahan per provinsiJumlah_Cerai → Jumlah perceraian per jenisRasio_Perceraian → Rasio perceraian dalam persen
(%)Dari data tersebut akan disajikan visualisasi data dalam bentuk Pie Chart. Berikut terlampir hasil visualisasi data proporsi Jenis Perceraian di Indonesia:
data_pie <- df %>%
group_by(Jenis_Cerai) %>%
summarise(Total = sum(Jumlah_Cerai)) %>%
mutate(
Persentase = round(Total / sum(Total) * 100, 1),
Label = paste0(Persentase, "%")
)
ggplot(data_pie, aes(x = "", y = Total, fill = Jenis_Cerai)) +
geom_bar(stat = "identity", width = 1, color = "white") +
coord_polar("y", start = 0) +
geom_text(aes(label = paste0(Persentase, "%")),
position = position_stack(vjust = 0.5),
size = 5, color = "white", fontface = "bold") +
scale_fill_manual(values = c("#457B9D", "#52B788")) +
labs(title = "Proporsi Jenis Perceraian di Indonesia",
fill = "Jenis Perceraian") +
theme_void() +
theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"),
legend.title = element_text(face = "bold")) +
annotate("text", x = 1.9, y = sum(data_pie$Total) * 0.7,
label = paste0("Cerai Gugat\n",
format(data_pie$Total[1], big.mark=","), " kasus"),
size = 3.5, color = "black") +
annotate("text", x = 1.95, y = sum(data_pie$Total) * 0.13,
label = paste0("Cerai Talak\n",
format(data_pie$Total[2], big.mark=","), " kasus"),
size = 3.5, color = "black")
chisq_result <- chisq.test(data_pie$Total)
cat("X² =", round(chisq_result$statistic, 3),
"\ndf =", chisq_result$parameter,
"\np-value =", format(chisq_result$p.value, scientific = TRUE))
## X² = 148243.7
## df = 1
## p-value = 0e+00
print(chisq_result)
##
## Chi-squared test for given probabilities
##
## data: data_pie$Total
## X-squared = 148244, df = 1, p-value < 2.2e-16
Statistik Deskriptif: Berdasarkan pie chart di atas, dari total 438.168 kasus perceraian di Indonesia, Cerai Gugat mendominasi sebesar 79,1% (346.516 kasus), sedangkan Cerai Talak sebesar 20,9% (91.652 kasus). Hal ini menunjukkan bahwa gugatan cerai yang diajukan oleh pihak istri hampir empat kali lipat dibanding talak dari pihak suami.
Statistik Inferensia: Berdasarkan uji Chi-Square Goodness of Fit diperoleh nilai X² = 148.243, df = 1, dan p-value < 2.2e-16. Karena p-value < 0,05, terdapat perbedaan proporsi yang signifikan secara statistik antara Cerai Gugat dan Cerai Talak di Indonesia, di mana Cerai Gugat jauh lebih dominan.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Bar Chart. Berikut terlampir hasil visualisasi data rasio perceraian berdasarkan provinsi:
df_bar <- df_provinsi %>%
arrange(desc(Rasio_Perceraian)) %>%
mutate(Provinsi = factor(Provinsi, levels = Provinsi))
bar_chart <- ggplot(df_bar, aes(x = Provinsi, y = Rasio_Perceraian,
fill = Rasio_Perceraian)) +
geom_bar(stat = "identity", color = "white") +
geom_text(aes(label = paste0(Rasio_Perceraian, "%")),
hjust = -0.1, size = 2.8, fontface = "bold") +
coord_flip() +
scale_fill_gradient(low = "#F9E79F", high = "#C0392B") +
scale_y_continuous(limits = c(0, 95),
labels = function(x) paste0(x, "%")) +
theme_minimal() +
labs(title = "Distribusi Rasio Perceraian per Provinsi",
x = "Provinsi",
y = "Rasio Perceraian (%)",
fill = "Rasio (%)") +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 13),
axis.text.y = element_text(size = 9)
)
bar_chart
Statistik Deskriptif Berdasarkan bar chart di atas, dari 34 provinsi di Indonesia, rata-rata rasio perceraian nasional sebesar 29,97% dengan rentang antara 14,73% (Maluku) hingga 82,87% (Papua). Provinsi Papua mencatat rasio tertinggi, jauh melampaui rata-rata nasional.Sementara itu, provinsi dengan rasio terendah adalah Maluku (14,73%). Sebagian besar provinsi (59%) berada pada kategori Sedang.
Statistik Inferensia Berdasarkan uji Shapiro-Wilk (W = 0,689, p < 0,001), data rasio perceraian tidak berdistribusi normal, sehingga digunakan uji Wilcoxon. Hasilnya menunjukkan bahwa median rasio perceraian antar provinsi berbeda signifikan dari nilai acuan 25% (p = 0,0025), diperkuat uji t-test (t = 2,496, 95% CI: 25,92%–34,02%), yang membuktikan rata-rata rasio perceraian nasional secara statistik lebih tinggi dari ambang batas wajar.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Histogram. Berikut terlampir hasil visualisasi:
histogram <- ggplot(df_provinsi, aes(x = Rasio_Perceraian)) +
geom_histogram(binwidth = 2, fill = "blue", color = "black", alpha = 0.7) +
theme_minimal() +
labs(title = "Histogram Rasio Perceraian",
x = "Rasio Perceraian (%)",
y = "Jumlah Provinsi")
histogram
Statistik Deskriptif Berdasarkan histogram di atas, distribusi rasio perceraian dari 34 provinsi tidak simetris dan condong ke kanan (right-skewed), dengan sebagian besar provinsi terkonsentrasi pada rentang 20%–35%. Adanya outlier ekstrem pada Papua (82,87%) dan Papua Barat (53,92%) menyebabkan rata-rata (29,97%) lebih tinggi dari median (28,35%).
Statistik Inferensia Berdasarkan uji Shapiro-Wilk (W = 0,689, p < 0,001), distribusi rasio perceraian tidak normal, yang konsisten dengan bentuk histogram yang condong ke kanan. Keberadaan outlier ekstrem di wilayah Papua diduga menjadi penyebab utama ketidaknormalan distribusi ini.
Dari data tersebut akan disajikan visualisasi data dalam bentuk Density Plot. Berikut terlampir hasil visualisasi:
density_plot <- ggplot(df, aes(x = Jumlah_Cerai, fill = Jenis_Cerai)) +
geom_density(alpha = 0.5) +
theme_minimal() +
labs(title = "Density Plot: Distribusi Jumlah Perceraian Berdasarkan Jenis Cerai",
x = "Jumlah Cerai",
y = "Density",
fill = "Jenis Cerai")
density_plot
Statistik Deskriptif Berdasarkan density plot di atas, distribusi jumlah perceraian antara Cerai Gugat dan Cerai Talak tidak simetris. Cerai Gugat memiliki sebaran lebih luas dengan ekor distribusi lebih panjang ke kanan, menandakan variasi kasus yang lebih tinggi antar provinsi dibanding Cerai Talak.
Statistik Inferensia Berdasarkan density plot di atas, Cerai Gugat memiliki sebaran lebih luas dan ekor distribusi lebih panjang ke kanan dibanding Cerai Talak. Uji Mann-Whitney mengonfirmasi perbedaan keduanya signifikan secara statistik (p < 0,001), konsisten dengan dominasi Cerai Gugat (79,1%) pada uji Chi-Square sebelumnya.
Dari data tersebut akan disajikan visualisasi data dalam bentuk BoxPlot. Berikut terlampir hasil visualisasi:
ggplot(data_long, aes(x = Jenis_Cerai, y = Jumlah_Cerai, fill = Jenis_Cerai)) +
geom_boxplot(alpha = 0.7, outlier.shape = 21,
outlier.fill = "red", outlier.size = 3, width = 0.5) +
geom_jitter(width = 0.25, size = 2, alpha = 0.7, color = "red") +
scale_fill_manual(values = c("#00ff06", "#0075ff")) +
scale_y_log10(labels = comma) +
labs(title = "Boxplot: Cerai Talak vs Cerai Gugat Per Provinsi (2025)",
subtitle = "Sumber: BPS Indonesia 2025",
x = "Jenis Perceraian", y = "Jumlah Kasus") +
theme_minimal(base_size = 12) +
theme(plot.title = element_text(face = "bold", size = 13),
plot.subtitle = element_text(color = "grey50"),
legend.position = "none")
Statistik Deskriptif Berdasarkan data boxplot di atas dapat dilihat bahwa jumlah kasus Cerai Gugat secara umum lebih tinggi dibandingkan Cerai Talak di hampir seluruh provinsi Indonesia. Median Cerai Gugat berada di sekitar 5.000 kasus, sedangkan Cerai Talak hanya sekitar 1.000 kasus.Hal ini menunjukkan bahwa pihak istri lebih banyak mengajukan gugatan cerai dibandingkan cerai talak dari pihak suami
Statistik Inferensia Berdasarkan uji Shapiro-Wilk sebelumnya, data jumlah cerai tidak berdistribusi normal (p-value = 9,191e-10) maka digunakan uji Mann-Withney yang menunjukkan nilai W = 261 dengan p-value = 6,289e-05. Dapat disimpulkan bahwa terdapat perbedaan yang signifikan secara statistik antara jumlah Cerai Gugat dan Cerai Talak di Indonesia. Hal ini sesuai dengan visualisasi data boxplot yang ditunjukkan di atas bahwa Cerai Gugat memiliki distribusi jumlah kasus yang jauh lebih tinggi dibandingkan Cerai Talak di seluruh provinsi Indonesia tahun 2025.
x <- df_provinsi$Rasio_Perceraian
hasil <- data.frame(
Statistik = c("Mean", "Median", "Modus", "Q1", "Q3",
"Range", "Varians", "Standard Deviation"),
Nilai = c(
round(mean(x), 2),
round(median(x), 2),
NA,
round(quantile(x, 0.25), 2),
round(quantile(x, 0.75), 2),
round(max(x) - min(x), 2),
round(var(x), 2),
round(sd(x), 2)
),
Keterangan = c(
"Rata-rata rasio perceraian",
"Nilai tengah data",
"Tidak ada",
"25% provinsi di bawah nilai ini",
"75% provinsi di bawah nilai ini",
"Jarak rasio tertinggi dan rasio terendah",
"Tingkat persebaran data dari rata-rata",
"Akar Varians"
)
)
knitr::kable(hasil,
caption = "Statistik Rasio Perceraian (%)",
align = c("l", "l", "l"))
| Statistik | Nilai | Keterangan |
|---|---|---|
| Mean | 29.97 | Rata-rata rasio perceraian |
| Median | 28.34 | Nilai tengah data |
| Modus | NA | Tidak ada |
| Q1 | 24.01 | 25% provinsi di bawah nilai ini |
| Q3 | 31.70 | 75% provinsi di bawah nilai ini |
| Range | 68.14 | Jarak rasio tertinggi dan rasio terendah |
| Varians | 134.78 | Tingkat persebaran data dari rata-rata |
| Standard Deviation | 11.61 | Akar Varians |
Berdasarkan hasil di atas, rata-rata rasio perceraian di Indonesia sebesar 29,97% dengan median 28,35%, menunjukkan bahwa lebih dari separuh provinsi berada di bawah rata-rata nasional. Nilai Q1 = 22,97% dan Q3 = 33,86% menggambarkan bahwa 50% provinsi memiliki rasio perceraian pada rentang tersebut. Standar deviasi sebesar 11,61% dengan varians 134,78 mengindikasikan persebaran data yang cukup tinggi, diperkuat oleh range 68,14% akibat kesenjangan ekstrem antara Maluku (14,73%) dan Papua (82,87%).
### Uji Normalitas Shapiro-Wilk
shapiro.test(df_provinsi$Rasio_Perceraian)
##
## Shapiro-Wilk normality test
##
## data: df_provinsi$Rasio_Perceraian
## W = 0.68923, p-value = 3.379e-07
shapiro.test(df_provinsi$Jumlah_Nikah)
##
## Shapiro-Wilk normality test
##
## data: df_provinsi$Jumlah_Nikah
## W = 0.5596, p-value = 6.18e-09
shapiro.test(df_provinsi$Jumlah_Cerai)
##
## Shapiro-Wilk normality test
##
## data: df_provinsi$Jumlah_Cerai
## W = 0.48728, p-value = 9.191e-10
### Uji Korelasi Spearman
cor.test(df_provinsi$Jumlah_Nikah, df_provinsi$Jumlah_Cerai,
method = "spearman")
##
## Spearman's rank correlation rho
##
## data: df_provinsi$Jumlah_Nikah and df_provinsi$Jumlah_Cerai
## S = 134, p-value < 2.2e-16
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
## rho
## 0.9795264
### Uji Kruskal-Wallis
kruskal.test(Rasio_Perceraian ~ Kategori, data = df_provinsi)
##
## Kruskal-Wallis rank sum test
##
## data: Rasio_Perceraian by Kategori
## Kruskal-Wallis chi-squared = 25.452, df = 3, p-value = 1.242e-05
### Uji Mann-Whitney
talak <- df %>% filter(Jenis_Cerai == "Cerai Talak") %>% pull(Jumlah_Cerai)
gugat <- df %>% filter(Jenis_Cerai == "Cerai Gugat") %>% pull(Jumlah_Cerai)
wilcox.test(talak, gugat)
##
## Wilcoxon rank sum exact test
##
## data: talak and gugat
## W = 261, p-value = 6.289e-05
## alternative hypothesis: true location shift is not equal to 0
Berdasarkan seluruh data yang ada, dapat disimpulkan bahwa Tingkat perceraian di Indonesia tahun 2025 secara statistik signifikan tinggi, dengan rata-rata rasio nasional 29,97% yang terbukti melampaui ambang batas wajar (p = 0,0025). Perceraian didominasi oleh Cerai Gugat (79,1%) yang diajukan pihak istri, terbukti signifikan melalui uji Chi-Square (p < 0,001). Tingkat perceraian tidak merata antar provinsi, di mana Papua mencatat rasio tertinggi (82,87%) jauh di atas rata-rata nasional, sementara jumlah pernikahan berkorelasi kuat dengan jumlah perceraian di seluruh Indonesia.