Pengantar Modul dan Karakteristik Data

Modul ini memberikan panduan praktis analisis struktural menggunakan pendekatan SEM-PLS (Partial Least Squares) dengan Indikator Formatif (Composite) melalui library seminr di R. Analisis ini menggunakan dataset asli mahasiswa untuk melihat bagaimana faktor demografi dan perilaku belajar memengaruhi hasil akademik akhir.

Spesifikasi Variabel Laten dan Indikator:

1. Fasilitas & Demografi (X1): Diukur melalui variabel age dan internet_access.

2. Perilaku Belajar (X2): Diukur melalui variabel study_hours_per_week, attendance_rate, dan extracurricular.

3. Hasil Belajar (Y): Diukur melalui variabel previous_score dan final_score.

Load dan Preprocessing Dataset

library(tidyverse)
library(seminr) 

# 1. Membaca file dataset asli dengan separator titik koma (;)
data_target <- read.csv("student_performance.csv", sep = ";", stringsAsFactors = FALSE)

# 2. Pembersihan data dan transformasi biner
data_bersih_murni <- data_target %>%
  mutate(
    # PERBAIKAN: Menggunakan operator %in% yang benar
    internet_access = ifelse(internet_access %in% c("Yes", "yes", "Y"), 1, 0),
    extracurricular = ifelse(extracurricular %in% c("Yes", "yes", "Y"), 1, 0),
    
    # Memastikan semua indikator numerik terbaca sebagai numeric
    age = as.numeric(age),
    study_hours_per_week = as.numeric(study_hours_per_week),
    attendance_rate = as.numeric(attendance_rate),
    previous_score = as.numeric(previous_score),
    final_score = as.numeric(final_score)
  ) %>%
  drop_na()

# Menampilkan 5 baris data teratas yang siap dianalisis
head(data_bersih_murni, 5)
##   student_id gender age study_hours_per_week attendance_rate parent_education
## 1    STU0001   Male  15                   25            63.8         Bachelor
## 2    STU0002 Female  15                    2            54.7         Bachelor
## 3    STU0003 Female  19                   10            90.5      High School
## 4    STU0004   Male  16                   26            66.8      High School
## 5    STU0005 Female  15                   25            73.0      High School
##   internet_access extracurricular previous_score final_score passed
## 1               1               1             41          67    Yes
## 2               1               1             83          28     No
## 3               1               0             73          49     No
## 4               0               1             75          70    Yes
## 5               0               1             67          77    Yes

Spesifikasi Model SEM-PLS

A. Model Pengukuran (Outer Model - Formatif)

model_pengukuran <- constructs(
  composite("Fasilitas_Demografi", c("age", "internet_access")),
  composite("Perilaku_Belajar", c("study_hours_per_week", "attendance_rate", "extracurricular")),
  composite("Hasil_Belajar", c("previous_score", "final_score"))
)

B. Model Struktural (Inner Model)

model_struktural <- relationships(
  paths(from = "Fasilitas_Demografi", to = "Perilaku_Belajar"),
  paths(from = c("Fasilitas_Demografi", "Perilaku_Belajar"), to = "Hasil_Belajar")
)

Estimasi Model dan Bootstrapping

Estimasi Model PLS Dasar

# Estimasi model murni tanpa bootstrap untuk kestabilan dokumen HTML
pls_model <- estimate_pls(
  data = data_bersih_murni,
  measurement_model = model_pengukuran,
  structural_model = model_struktural
)

# Membuat ringkasan objek secara aman
summary_simple <- summary(pls_model)

Evaluasi Hasil dan Interpretasi

1. Evaluasi Outer Model (Model Pengukuran Formatif)

A. Uji Kolinieritas Indikator (VIF)

Nilai VIF harus < 5 agar indikator pembentuk konstruk dinyatakan bebas dari multikolinieritas.

summary_simple$validity$vif_items
## Fasilitas_Demografi :
##             age internet_access 
##           1.002           1.002 
## 
## Perilaku_Belajar :
## study_hours_per_week      attendance_rate      extracurricular 
##                1.001                1.002                1.003 
## 
## Hasil_Belajar :
## previous_score    final_score 
##          1.028          1.028

B. Signifikansi Bobot Indikator (Outer Weights)

summary_simple$weights
##                      Fasilitas_Demografi Perilaku_Belajar Hasil_Belajar
## age                               -0.630            0.000         0.000
## internet_access                    0.804            0.000         0.000
## study_hours_per_week               0.000            0.960         0.000
## attendance_rate                    0.000            0.290         0.000
## extracurricular                    0.000            0.037         0.000
## previous_score                     0.000            0.000        -0.098
## final_score                        0.000            0.000         1.011

2. Evaluasi Inner Model (Model Struktural & Uji Hipotesis)

A. Uji Hubungan Jalur Struktural

Hubungan dinyatakan signifikan apabila nilai T Stat > 1.96 dan P Val < 0.05.

pls_model$path_coefficients
## NULL

B. Nilai Ukuran Kebaikan Model (R-Square & f-Square)

cat("--- Nilai R-Square Model ---\n")
## --- Nilai R-Square Model ---
pls_model$rSquared
##        Perilaku_Belajar Hasil_Belajar
## Rsq         0.005827186     0.7403295
## AdjRsq      0.003830855     0.7392845
cat("\n--- Nilai f-Square (Effect Size) ---\n")
## 
## --- Nilai f-Square (Effect Size) ---
# Mengambil fSquared langsung dari objek summary tanpa re-regresi manual
summary_simple$fSquared
## NULL

Visualisasi Model

# Menggunakan fungsi bawaan seminr yang dijamin bebas dari error dimensi matriks
plot(pls_model)