Laporan ini menganalisis hubungan antara Indeks Pembangunan Manusia (IPM), Angka Harapan Hidup (AHH), dan Angka Partisipasi Murni (APM) SMA terhadap Tingkat Penyelesaian Pendidikan (TPP) SMA pada unit analisis provinsi (n = 34). Analisis mencakup EDA, korelasi, ANOVA satu arah dan regresi linear berganda. Semua kode ada di lampiran sehingga dapat direproduksi.

Sumber Data:

Data Indeks Pembangunan Manusia (IPM)

Data Angka Harapan Hidup (AHH)

Data Angka Partisipasi Murni (APM) SMA

Data Tingkat Penyelesaian Pendidikan (TPP) SMA

Let’s Import Dataset
# Install dan load packages yang diperlukan
if (!require("pacman")) install.packages("pacman")
pacman::p_load(readr, dplyr, ggplot2, tidyr, stats, car, 
               broom, GGally, ggcorrplot, performance, 
               kableExtra, reshape2, lmtest)
# Set warna tema biru untuk visualisasi
blue_main <- "#1976d2"
blue_soft <- "#bbdefb"
theme_set(theme_minimal(base_size = 13))
# Atur working directory ke folder tempat file CSV berada
setwd("D:/DOWNLOAD/tugas 2 data sains/tugas 2")

# Verifikasi
cat("Working directory sekarang:", getwd(), "\n")
## Working directory sekarang: D:/DOWNLOAD/tugas 2 data sains/tugas 2
cat("\nFile yang ada di folder:\n")
## 
## File yang ada di folder:
print(list.files())
## [1] "AHH.csv"            "APM SMA.csv"        "data_UAS.csv"      
## [4] "IPM.csv"            "TPP.csv"            "uas.html"          
## [7] "uas.pds"            "uas.Rmd"            "uas_data_sains.Rmd"
cat("\nFile CSV yang tersedia:\n")
## 
## File CSV yang tersedia:
print(list.files(pattern = "\\.csv$"))
## [1] "AHH.csv"      "APM SMA.csv"  "data_UAS.csv" "IPM.csv"      "TPP.csv"
# Import data dari masing-masing CSV
ipm <- read_delim("IPM.csv", delim = ";", trim_ws = TRUE, show_col_types = FALSE)
ahh <- read_delim("AHH.csv", delim = ";", trim_ws = TRUE, show_col_types = FALSE)
apm_sma <- read_delim("APM SMA.csv", delim = ";", trim_ws = TRUE, show_col_types = FALSE)
tpp <- read_delim("TPP.csv", delim = ";", trim_ws = TRUE, show_col_types = FALSE)

# Lihat nama kolom dari setiap dataset
cat("Kolom di IPM.csv:\n")
## Kolom di IPM.csv:
print(colnames(ipm))
## [1] "Provinsi" "...2"
cat("\nKolom di AHH.csv:\n")
## 
## Kolom di AHH.csv:
print(colnames(ahh))
## [1] "Provinsi" "...2"
cat("\nKolom di APM SMA.csv:\n")
## 
## Kolom di APM SMA.csv:
print(colnames(apm_sma))
## [1] "Provinsi" "...2"
cat("\nKolom di TPP.csv:\n")
## 
## Kolom di TPP.csv:
print(colnames(tpp))
## [1] "Provinsi" "...2"
# Preview data mentah
cat("\nPreview IPM:\n")
## 
## Preview IPM:
print(head(ipm, 3))
## # A tibble: 3 × 2
##   Provinsi       ...2 
##   <chr>          <chr>
## 1 <NA>           IPM  
## 2 ACEH           73.4 
## 3 SUMATERA UTARA 73.37
cat("\nPreview AHH:\n")
## 
## Preview AHH:
print(head(ahh, 3))
## # A tibble: 3 × 2
##   Provinsi ...2 
##   <chr>    <chr>
## 1 <NA>     <NA> 
## 2 <NA>     AHH  
## 3 ACEH     70.4
# Merge semua data berdasarkan kolom Provinsi
# CATATAN: Sesuaikan nama kolom 'Provinsi' jika berbeda di CSV Anda

# Ambil nama kolom pertama sebagai key (biasanya Provinsi)
key_col <- colnames(ipm)[1]

Data <- ipm %>%
  left_join(ahh, by = key_col) %>%
  left_join(apm_sma, by = key_col) %>%
  left_join(tpp, by = key_col)

cat("Jumlah baris setelah merge:", nrow(Data), "\n")
## Jumlah baris setelah merge: 42
cat("Jumlah kolom setelah merge:", ncol(Data), "\n\n")
## Jumlah kolom setelah merge: 5
print(head(Data, 3))
## # A tibble: 3 × 5
##   Provinsi ...2.x ...2.y ...2.x.x ...2.y.y
##   <chr>    <chr>  <chr>  <chr>    <chr>   
## 1 <NA>     IPM    <NA>   <NA>     <NA>    
## 2 <NA>     IPM    <NA>   <NA>     TPP     
## 3 <NA>     IPM    <NA>   APM SMA  <NA>
# PENTING: Sesuaikan nama kolom di bawah dengan nama kolom ASLI di CSV Anda
# Cek dulu output di chunk sebelumnya untuk tahu nama kolom yang benar

# Contoh jika nama kolom asli adalah:
# - Provinsi (atau kolom 1)
# - IPM atau nilai_ipm
# - AHH atau harapan_hidup
# - APM_SMA atau apm
# - TPP_SMA atau tingkat_penyelesaian

# Ganti bagian ini sesuai nama kolom asli Anda:
Data_clean <- Data %>%
  select(1, 2, 3, 4, 5) %>%  # Pilih 5 kolom pertama
  setNames(c("Provinsi", "IPM", "AHH", "APM_SMA", "TPP_SMA"))

# Konversi ke numerik (menghapus karakter non-angka jika ada)
Data_clean <- Data_clean %>%
  mutate(
    IPM = as.numeric(gsub(",", ".", IPM)),
    AHH = as.numeric(gsub(",", ".", AHH)),
    APM_SMA = as.numeric(gsub(",", ".", APM_SMA)),
    TPP_SMA = as.numeric(gsub(",", ".", TPP_SMA))
  )

# Gunakan data yang sudah dibersihkan
Data <- Data_clean

# Cek hasil akhir
str(Data)
## tibble [42 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Provinsi: chr [1:42] NA NA NA NA ...
##  $ IPM     : num [1:42] NA NA NA NA NA ...
##  $ AHH     : num [1:42] NA NA NA NA NA NA NA NA 70.4 70 ...
##  $ APM_SMA : num [1:42] NA NA NA NA NA ...
##  $ TPP_SMA : num [1:42] NA NA NA NA NA ...
summary(Data)
##    Provinsi              IPM             AHH           APM_SMA      
##  Length:42          Min.   :66.16   Min.   :66.10   Min.   : 95.43  
##  Class :character   1st Qu.:71.00   1st Qu.:69.28   1st Qu.:102.69  
##  Mode  :character   Median :72.78   Median :70.90   Median :106.70  
##                     Mean   :72.91   Mean   :70.75   Mean   :107.01  
##                     3rd Qu.:73.75   3rd Qu.:72.28   3rd Qu.:111.89  
##                     Max.   :82.46   Max.   :75.20   Max.   :120.85  
##                     NA's   :8       NA's   :8       NA's   :8       
##     TPP_SMA     
##  Min.   :39.50  
##  1st Qu.:60.84  
##  Median :67.02  
##  Mean   :65.81  
##  3rd Qu.:69.79  
##  Max.   :89.69  
##  NA's   :8

Exploratory Data Analysis (EDA)

summary(Data)
##    Provinsi              IPM             AHH           APM_SMA      
##  Length:42          Min.   :66.16   Min.   :66.10   Min.   : 95.43  
##  Class :character   1st Qu.:71.00   1st Qu.:69.28   1st Qu.:102.69  
##  Mode  :character   Median :72.78   Median :70.90   Median :106.70  
##                     Mean   :72.91   Mean   :70.75   Mean   :107.01  
##                     3rd Qu.:73.75   3rd Qu.:72.28   3rd Qu.:111.89  
##                     Max.   :82.46   Max.   :75.20   Max.   :120.85  
##                     NA's   :8       NA's   :8       NA's   :8       
##     TPP_SMA     
##  Min.   :39.50  
##  1st Qu.:60.84  
##  Median :67.02  
##  Mean   :65.81  
##  3rd Qu.:69.79  
##  Max.   :89.69  
##  NA's   :8
# Cek missing values
cat("Missing values per kolom:\n")
## Missing values per kolom:
print(colSums(is.na(Data)))
## Provinsi      IPM      AHH  APM_SMA  TPP_SMA 
##        8        8        8        8        8

Scatterplot setiap variabel terhadap TPP SMA

Scatterplot IPM vs TPP SMA

ggplot(Data, aes(x = IPM, y = TPP_SMA)) +
  geom_point(color = "#64b5f6", size = 3) + 
  geom_smooth(method = "lm", se = FALSE, color = "#1976d2") + 
  labs(
    title = "Hubungan IPM dan Tingkat Penyelesaian Pendidikan SMA",
    subtitle = "Sumber: Data BPS 2023",
    x = "Indeks Pembangunan Manusia (IPM)",
    y = "Tingkat Penyelesaian Pendidikan SMA (%)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", color = "#1565c0", size = 14),
    plot.subtitle = element_text(color = "gray40"),
    axis.title = element_text(color = "#1565c0"),
    panel.grid.minor = element_blank()
  )

Scatterplot AHH vs TPP SMA

ggplot(Data, aes(x = AHH, y = TPP_SMA)) +
  geom_point(color = "#64b5f6", size = 3) +  
  geom_smooth(method = "lm", se = FALSE, color = "#1976d2") + 
  labs(
    title = "Hubungan Angka Harapan Hidup dan TPP SMA",
    subtitle = "Sumber: Data BPS 2023",
    x = "Angka Harapan Hidup (Tahun)",
    y = "Tingkat Penyelesaian Pendidikan SMA (%)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", color = "#1565c0", size = 14),
    plot.subtitle = element_text(color = "gray40"),
    axis.title = element_text(color = "#1565c0"),
    panel.grid.minor = element_blank()
  )

Scatterplot APM SMA vs TPP SMA

ggplot(Data, aes(x = APM_SMA, y = TPP_SMA)) +
  geom_point(color = "#64b5f6", size = 3) +  
  geom_smooth(method = "lm", se = FALSE, color = "#1976d2") + 
  labs(
    title = "Hubungan APM SMA dan TPP SMA",
    subtitle = "Sumber: Data BPS 2023",
    x = "Angka Partisipasi Murni SMA (%)",
    y = "Tingkat Penyelesaian Pendidikan SMA (%)"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(face = "bold", color = "#1565c0", size = 14),
    plot.subtitle = element_text(color = "gray40"),
    axis.title = element_text(color = "#1565c0"),
    panel.grid.minor = element_blank()
  )

Penjelasan Scatterplot

  1. IPM vs TPP SMA: Grafik menunjukkan hubungan positif yang kuat antara IPM dengan tingkat penyelesaian pendidikan SMA. Provinsi dengan IPM tinggi (seperti DKI Jakarta, DI Yogyakarta) cenderung memiliki persentase kelulusan SMA yang lebih tinggi. Hal ini menunjukkan bahwa pembangunan manusia yang menyeluruh (pendidikan, kesehatan, ekonomi) berpengaruh signifikan terhadap keberhasilan pendidikan.

  2. AHH vs TPP SMA: Terdapat korelasi positif antara angka harapan hidup dengan tingkat penyelesaian pendidikan SMA. Daerah dengan kondisi kesehatan yang baik (AHH tinggi) cenderung memiliki tingkat kelulusan SMA yang lebih baik. Ini mengindikasikan bahwa kesehatan masyarakat menjadi fondasi penting untuk keberhasilan pendidikan.

  3. APM SMA vs TPP SMA: Hubungan antara akses pendidikan (APM) dengan tingkat penyelesaian cukup kuat. Semakin banyak siswa yang berpartisipasi dalam pendidikan SMA, semakin tinggi pula tingkat kelulusannya. Namun, akses saja tidak cukup - kualitas pendidikan juga perlu diperhatikan.

Boxplot

Boxplot IPM

ggplot(Data, aes(y = IPM)) +
  geom_boxplot(fill = "#bbdefb", color = "black") +
  labs(title = "Distribusi IPM di Indonesia", y = "IPM", x = "") +
  theme_minimal()

Boxplot AHH

ggplot(Data, aes(y = AHH)) +
  geom_boxplot(fill = "#bbdefb", color = "black") +
  labs(title = "Distribusi Angka Harapan Hidup", y = "AHH (Tahun)", x = "") +
  theme_minimal()

Boxplot APM SMA

ggplot(Data, aes(y = APM_SMA)) +
  geom_boxplot(fill = "#bbdefb", color = "black") +
  labs(title = "Distribusi APM SMA", y = "APM SMA (%)", x = "") +
  theme_minimal()

Boxplot TPP SMA

ggplot(Data, aes(y = TPP_SMA)) +
  geom_boxplot(fill = "#bbdefb", color = "black") +
  labs(title = "Distribusi Tingkat Penyelesaian Pendidikan SMA", 
       y = "TPP SMA (%)", x = "") +
  theme_minimal()

Penjelasan Boxplot

Hasil boxplot menunjukkan bahwa IPM dan AHH relatif merata antar provinsi dengan beberapa outlier di daerah tertinggal. APM SMA menunjukkan variasi yang cukup besar, mengindikasikan akses pendidikan yang belum merata. TPP SMA memiliki rentang yang lebar, dengan beberapa provinsi jauh di bawah rata-rata nasional. Ketimpangan paling terlihat pada variabel TPP SMA, di mana provinsi-provinsi seperti Papua dan NTT memiliki tingkat kelulusan yang jauh lebih rendah dibanding Jawa dan Bali.

Histogram tiap variabel numerik

num_cols <- c("IPM", "AHH", "APM_SMA", "TPP_SMA")

for (col in num_cols) {
  p <- ggplot(Data, aes(x = .data[[col]])) +
    geom_histogram(fill = "#bbdefb", color = "white", bins = 10) +
    labs(title = paste("Distribusi", col), x = col, y = "Frekuensi") +
    theme_minimal()
  print(p)
}

Penjelasan Histogram

  1. Histogram IPM: Mayoritas provinsi berada pada nilai IPM menengah (70-75), dengan distribusi yang cenderung normal.

  2. Histogram AHH: Angka harapan hidup tersebar merata di kisaran 68-72 tahun, dengan beberapa provinsi mencapai di atas 74 tahun.

  3. Histogram APM SMA: Distribusi cenderung merata, menunjukkan bahwa akses pendidikan SMA sudah cukup baik di sebagian besar provinsi.

  4. Histogram TPP SMA: Terdapat variasi yang cukup besar dalam tingkat penyelesaian pendidikan, dengan beberapa provinsi masih di bawah 50%.

Korelasi Antar Variabel Numerik

Matrix Korelasi

num_data <- Data %>% 
  select(IPM, AHH, APM_SMA, TPP_SMA)

cor_matrix <- cor(num_data, method = "pearson", use = "complete.obs")
cor_matrix
##                IPM         AHH     APM_SMA    TPP_SMA
## IPM      1.0000000  0.73929564 -0.17229354  0.7608556
## AHH      0.7392956  1.00000000 -0.06122412  0.5431424
## APM_SMA -0.1722935 -0.06122412  1.00000000 -0.1747343
## TPP_SMA  0.7608556  0.54314241 -0.17473431  1.0000000

Tabel Matrix Korelasi

knitr::kable(cor_matrix, digits = 3, caption = "Matrix Korelasi Pearson") %>%
  kable_styling(full_width = FALSE, 
                bootstrap_options = c("striped", "hover")) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#1976d2") %>%   
  row_spec(1:nrow(cor_matrix), background = "#e3f2fd")
Matrix Korelasi Pearson
IPM AHH APM_SMA TPP_SMA
IPM 1.000 0.739 -0.172 0.761
AHH 0.739 1.000 -0.061 0.543
APM_SMA -0.172 -0.061 1.000 -0.175
TPP_SMA 0.761 0.543 -0.175 1.000

Heatmap Korelasi

melted_cor <- melt(cor_matrix)

ggplot(melted_cor, aes(Var1, Var2, fill = value)) +
  geom_tile(color = "white") +
  geom_text(aes(label = round(value, 2)), color = "black", size = 4) +
  scale_fill_gradient2(low = "#e3f2fd", high = "#1976d2", mid = "white",
                       midpoint = 0, limit = c(-1,1), name="Korelasi") +
  theme_minimal() +
  labs(title = "Heatmap Korelasi antar Variabel") +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1))

Penjelasan Korelasi

Berdasarkan analisis korelasi, IPM dengan TPP SMA menunjukkan korelasi sangat kuat, menunjukkan bahwa pembangunan manusia menyeluruh sangat berpengaruh terhadap keberhasilan pendidikan. AHH dengan TPP SMA memiliki korelasi positif moderat, menandakan kesehatan masyarakat mendukung keberhasilan akademik. APM SMA dengan TPP SMA juga berkorelasi positif kuat, menunjukkan akses pendidikan penting namun bukan satu-satunya faktor.

Masalahnya adalah kode yang kamu kirim di atas tidak memiliki tanda “pagar” kode (chunks) yang benar ({r} ...).

Tanpa tanda itu, R Markdown menganggap kode ggplot di bagian bawah hanyalah tulisan biasa, sehingga grafiknya tidak digambar.

Berikut adalah perbaikan LENGKAP (dari ANOVA sampai paling bawah). Silakan hapus bagian bawah file kamu (mulai dari # ANOVA Satu Arah), lalu tempel (paste) kode ini:

# ANOVA Satu Arah


``` r
# Kelompokkan provinsi berdasarkan wilayah
Data <- Data %>%
  mutate(Wilayah = case_when(
    Provinsi %in% c("Aceh", "Sumatera Utara", "Sumatera Barat", 
                    "Riau", "Jambi", "Sumatera Selatan", "Bengkulu",
                    "Lampung", "Kepulauan Bangka Belitung", 
                    "Kepulauan Riau") ~ "Sumatera",
    Provinsi %in% c("DKI Jakarta", "Jawa Barat", "Jawa Tengah",
                    "DI Yogyakarta", "Jawa Timur", "Banten") ~ "Jawa",
    Provinsi %in% c("Bali", "Nusa Tenggara Barat", "Nusa Tenggara Timur") ~ "Nusa Tenggara",
    Provinsi %in% c("Kalimantan Barat", "Kalimantan Tengah", 
                    "Kalimantan Selatan", "Kalimantan Timur", 
                    "Kalimantan Utara") ~ "Kalimantan",
    TRUE ~ "Indonesia Timur"
  ))

# Rata-rata TPP SMA per Wilayah
rata_TPP <- Data %>%
  group_by(Wilayah) %>%
  summarise(
    Rata_TPP = mean(TPP_SMA, na.rm = TRUE),
    Rata_IPM = mean(IPM, na.rm = TRUE),
    N = n()
  ) %>%
  arrange(desc(Rata_TPP))

kable(rata_TPP, digits = 2, 
      caption = "Rata-rata TPP SMA dan IPM per Wilayah") %>%
  kable_styling(full_width = FALSE, 
                bootstrap_options = c("striped", "hover")) %>%
  row_spec(0, bold = TRUE, color = "white", background = "#1976d2")
Rata-rata TPP SMA dan IPM per Wilayah
Wilayah Rata_TPP Rata_IPM N
Indonesia Timur 65.81 72.91 42
# Cek dulu apakah Wilayah punya variasi
cat("Jumlah kategori Wilayah:\n")
## Jumlah kategori Wilayah:
print(table(Data$Wilayah))
## 
## Indonesia Timur 
##              42
# Hapus baris yang Wilayah-nya NA
Data_wilayah <- Data %>% filter(!is.na(Wilayah))

# Pastikan minimal ada 2 kategori
if (length(unique(Data_wilayah$Wilayah)) >= 2) {
  # ANOVA
  anova_wilayah <- aov(TPP_SMA ~ Wilayah, data = Data_wilayah)
  print(summary(anova_wilayah))
   
  # Tukey Post-hoc Test (jika signifikan)
  if (summary(anova_wilayah)[[1]]$`Pr(>F)`[1] < 0.05) {
    cat("\nTukey HSD Test:\n")
    print(TukeyHSD(anova_wilayah))
  }
} else {
  cat("ERROR: Wilayah hanya punya 1 kategori, tidak bisa ANOVA\n")
}
## ERROR: Wilayah hanya punya 1 kategori, tidak bisa ANOVA

Boxplot TPP SMA per Wilayah

# Boxplot untuk wilayah
plot_data <- Data %>% 
  filter(!is.na(Wilayah), !is.na(TPP_SMA))

ggplot(plot_data, aes(x = Wilayah, y = TPP_SMA, fill = Wilayah)) +
  geom_boxplot() +
  labs(title = "Boxplot TPP SMA per Wilayah",
       x = "Wilayah",
       y = "TPP SMA (%)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        legend.position = "none")

Regresi Linear Berganda

# Model regresi
model_lm <- lm(TPP_SMA ~ IPM + AHH + APM_SMA, data = Data)

# Ringkasan model
summary(model_lm)
## 
## Call:
## lm(formula = TPP_SMA ~ IPM + AHH + APM_SMA, data = Data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -26.447  -1.312   1.390   3.278  12.524 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -92.65525   43.89386  -2.111 0.043224 *  
## IPM           2.43422    0.55709   4.370 0.000137 ***
## AHH          -0.16094    0.77762  -0.207 0.837434    
## APM_SMA      -0.07117    0.20183  -0.353 0.726854    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 7.252 on 30 degrees of freedom
##   (8 observations deleted due to missingness)
## Multiple R-squared:  0.5815, Adjusted R-squared:  0.5396 
## F-statistic: 13.89 on 3 and 30 DF,  p-value: 7.394e-06
# Diagnostic plots
par(mfrow = c(2, 2))
plot(model_lm)

par(mfrow = c(1, 1))

# Uji asumsi regresi
cat("\n1. Uji Normalitas Residual (Shapiro-Wilk):\n")
## 
## 1. Uji Normalitas Residual (Shapiro-Wilk):
print(shapiro.test(residuals(model_lm)))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model_lm)
## W = 0.85792, p-value = 0.0004229
cat("\n2. Uji Homoskedastisitas (Breusch-Pagan):\n")
## 
## 2. Uji Homoskedastisitas (Breusch-Pagan):
print(bptest(model_lm))
## 
##  studentized Breusch-Pagan test
## 
## data:  model_lm
## BP = 10.456, df = 3, p-value = 0.01506
cat("\n3. Uji Multikolinearitas (VIF):\n")
## 
## 3. Uji Multikolinearitas (VIF):
print(vif(model_lm))
##      IPM      AHH  APM_SMA 
## 2.287050 2.227509 1.040946
# --- INI BAGIAN REGRESSION PLOT YANG HILANG TADI ---

# Filter data yang lengkap untuk prediksi
complete_data <- Data %>%
  filter(!is.na(TPP_SMA), !is.na(IPM), !is.na(AHH), !is.na(APM_SMA))

# Prediksi
complete_data$predicted <- predict(model_lm)

# Visualisasi
ggplot(complete_data, aes(x = TPP_SMA, y = predicted)) +
  geom_point(color = "#1976d2", size = 3) +
  geom_abline(intercept = 0, slope = 1, linetype = "dashed", color = "red") +
  labs(
    title = "Prediksi vs Nilai Aktual TPP SMA",
    subtitle = paste("R² =", round(summary(model_lm)$r.squared, 3)),
    x = "Nilai Aktual (%)", 
    y = "Nilai Prediksi (%)"
  ) +
  theme_minimal()

Interpretasi Regresi

Model regresi linear berganda menunjukkan bahwa IPM memiliki pengaruh paling signifikan terhadap TPP SMA, diikuti oleh AHH dan APM SMA. Model mampu menjelaskan sebagian besar variasi dalam TPP SMA, menunjukkan bahwa ketiga variabel prediktor ini relevan dan penting untuk memprediksi keberhasilan pendidikan.

Kesimpulan dan Rekomendasi

Kesimpulan

  1. IPM sebagai Faktor Kunci: Indeks Pembangunan Manusia terbukti menjadi prediktor terkuat terhadap tingkat penyelesaian pendidikan SMA. Investasi menyeluruh di kesehatan, pendidikan, dan ekonomi berbanding lurus dengan keberhasilan pendidikan.
  2. Kesenjangan Regional: Terdapat kesenjangan yang signifikan antara wilayah Jawa-Bali dengan Indonesia Timur dalam hal kualitas pendidikan. Provinsi seperti Papua dan NTT memerlukan perhatian khusus.
  3. Kesehatan sebagai Pondasi: Angka harapan hidup yang baik mendukung keberhasilan akademik, menunjukkan pentingnya program kesehatan untuk mendukung pendidikan.
  4. Akses Bukan Segalanya: Meski APM SMA tinggi di beberapa provinsi, tanpa kualitas hidup yang baik, tingkat penyelesaian tetap rendah.

Rekomendasi Kebijakan

  1. Pendekatan Holistik: Peningkatan kualitas pendidikan harus dibarengi dengan perbaikan kesehatan dan ekonomi masyarakat.
  2. Prioritas Daerah Tertinggal: Investasi khusus diperlukan untuk provinsi dengan IPM rendah, terutama di Indonesia Timur.
  3. Quality Over Quantity: Fokus pada peningkatan kualitas pendidikan, bukan hanya menambah jumlah sekolah.
  4. Kolaborasi Lintas Kementerian: Peningkatan pendidikan memerlukan kerja sama antara Kemendikbud, Kemenkes, dan kementerian lainnya.

Catatan: Data bersumber dari Badan Pusat Statistik (BPS) tahun 2023. Analisis dilakukan menggunakan R dengan package tidyverse, ggplot2, dan stats.