1. Pendahuluan

Pada analisis ini digunakan metode SEM-PLS untuk melihat hubungan antar variabel laten. SEM-PLS digunakan karena dapat menganalisis hubungan antar konstruk sekaligus melihat apakah indikator yang digunakan sudah cukup baik dalam mengukur konstruk tersebut.

Tahapan yang dilakukan pada analisis ini yaitu import data, seleksi indikator, pengecekan data awal, pembuatan outer model, pembuatan inner model, estimasi model, evaluasi outer model, evaluasi inner model, bootstrapping, dan interpretasi hasil.

2. Deskripsi Dataset

Dataset yang digunakan adalah Green Tax Awareness Dataset. Dataset ini berisi data hasil survei terhadap responden Gen Z di Indonesia. Data ini digunakan untuk melihat hubungan antara kesadaran terhadap pajak hijau, kepedulian lingkungan, niat membeli produk ramah lingkungan, dan perilaku konsumsi berkelanjutan.

Dalam dataset ini terdapat empat konstruk utama, yaitu:

  1. Green Tax Awareness (GTA)
    Green Tax Awareness menggambarkan kesadaran responden terhadap pajak hijau atau pajak yang berkaitan dengan lingkungan.

  2. Environmental Concern (EC)
    Environmental Concern menggambarkan kepedulian responden terhadap isu lingkungan.

  3. Eco-friendly Purchase Intention (EPI)
    Eco-friendly Purchase Intention menunjukkan niat responden untuk membeli produk ramah lingkungan.

  4. Sustainable Consumption Behavior (SCB)
    Sustainable Consumption Behavior menunjukkan perilaku konsumsi yang lebih memperhatikan keberlanjutan lingkungan.

Masing-masing konstruk diukur menggunakan empat indikator, sehingga total indikator yang digunakan adalah 16 indikator. Model hubungan yang digunakan dalam analisis ini adalah:

GTA → EC → EPI → SCB

Hipotesis yang digunakan yaitu:

3. Memanggil Package

Package yang digunakan yaitu readxl, dplyr, seminr, psych, car, dan DiagrammeR.

daftar_package <- c("readxl", "dplyr", "seminr", "psych", "car", "DiagrammeR")

for (pkg in daftar_package) {
  if (!require(pkg, character.only = TRUE)) {
    install.packages(pkg)
    library(pkg, character.only = TRUE)
  }
}

4. Import Dataset

Pada bagian ini, data dibaca dari file Excel. File yang digunakan adalah RawData_GreenTaxAwareness_Indonesia2025.xlsx.

file_excel <- "E:/FILE SEMESTER 4/DATA MULTIVARIAT/MODUL 5 - SEM PLS/GreenTaxAwareness_Dataset/GreenTaxAwareness_Dataset/RawData_GreenTaxAwareness_Indonesia2025.xlsx"

daftar_sheet <- excel_sheets(file_excel)
daftar_sheet
## [1] "Sheet1"     "Sheet1 (2)"

Karena file Excel memiliki dua sheet, maka digunakan sheet yang berisi indikator GTA1 sampai SCB4.

data_semua_sheet <- lapply(daftar_sheet, function(x) read_excel(file_excel, sheet = x))

sheet_terpilih <- NULL

for (i in seq_along(data_semua_sheet)) {
  nama_kolom <- names(data_semua_sheet[[i]])
  
  if (all(c("GTA1", "GTA2", "GTA3", "GTA4",
            "EC1", "EC2", "EC3", "EC4",
            "EPI1", "EPI2", "EPI3", "EPI4",
            "SCB1", "SCB2", "SCB3", "SCB4") %in% nama_kolom)) {
    sheet_terpilih <- daftar_sheet[i]
    break
  }
}

sheet_terpilih
## [1] "Sheet1"

Setelah sheet ditemukan, data kemudian dibaca ke dalam R.

data_raw <- read_excel(file_excel, sheet = sheet_terpilih)

head(data_raw)
## # A tibble: 6 × 23
##      NO   AGE GENDER EDUCATION    GTA1  GTA2  GTA3  GTA4   EC1   EC2   EC3   EC4
##   <dbl> <dbl> <chr>  <chr>       <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1     1    18 Female Diploma      3.18  3.39  3.36  3.23  2.54  2.65  2.01  2.54
## 2     2    25 Female Bachelor     2.71  2.71  2.61  2.67  2.75  2.83  2.29  2.1 
## 3     3    28 Male   Master       3.27  3.12  2.91  3.07  3.52  4.19  3.47  3.55
## 4     4    19 Female Diploma      3.85  3.83  3.22  3.88  3.78  4.09  4.36  3.36
## 5     5    23 Male   High School  2.75  2.74  2.2   2.57  3.45  2.87  3.01  3.05
## 6     6    24 Male   Diploma      2.75  2.68  2.24  3.1   3.43  3.21  2.52  3.12
## # ℹ 11 more variables: EPI1 <dbl>, EPI2 <dbl>, EPI3 <dbl>, EPI4 <dbl>,
## #   SCB1 <dbl>, SCB2 <dbl>, SCB3 <dbl>, SCB4 <dbl>, ...21 <lgl>, ...22 <lgl>,
## #   ...23 <dbl>
names(data_raw)
##  [1] "NO"        "AGE"       "GENDER"    "EDUCATION" "GTA1"      "GTA2"     
##  [7] "GTA3"      "GTA4"      "EC1"       "EC2"       "EC3"       "EC4"      
## [13] "EPI1"      "EPI2"      "EPI3"      "EPI4"      "SCB1"      "SCB2"     
## [19] "SCB3"      "SCB4"      "...21"     "...22"     "...23"
str(data_raw)
## tibble [300 × 23] (S3: tbl_df/tbl/data.frame)
##  $ NO       : num [1:300] 1 2 3 4 5 6 7 8 9 10 ...
##  $ AGE      : num [1:300] 18 25 28 19 23 24 19 25 28 19 ...
##  $ GENDER   : chr [1:300] "Female" "Female" "Male" "Female" ...
##  $ EDUCATION: chr [1:300] "Diploma" "Bachelor" "Master" "Diploma" ...
##  $ GTA1     : num [1:300] 3.18 2.71 3.27 3.85 2.75 2.75 3.62 3.17 2.31 3.55 ...
##  $ GTA2     : num [1:300] 3.39 2.71 3.12 3.83 2.74 2.68 4.02 3.59 2.66 3.57 ...
##  $ GTA3     : num [1:300] 3.36 2.61 2.91 3.22 2.2 2.24 3.62 3.22 2.11 3.18 ...
##  $ GTA4     : num [1:300] 3.23 2.67 3.07 3.88 2.57 3.1 3.53 3.41 2.61 3.29 ...
##  $ EC1      : num [1:300] 2.54 2.75 3.52 3.78 3.45 3.43 3.89 3.19 3.45 2.78 ...
##  $ EC2      : num [1:300] 2.65 2.83 4.19 4.09 2.87 3.21 4.25 2.78 2.96 3.43 ...
##  $ EC3      : num [1:300] 2.01 2.29 3.47 4.36 3.01 2.52 4.36 2.35 3.44 2.84 ...
##  $ EC4      : num [1:300] 2.54 2.1 3.55 3.36 3.05 3.12 4.29 2.79 3.53 2.85 ...
##  $ EPI1     : num [1:300] 2.99 1.98 4.18 4.28 3.07 3.43 3.25 2.66 1.53 3.61 ...
##  $ EPI2     : num [1:300] 3.24 2.28 4.31 4.27 3.47 3.75 3.97 2.21 2.15 3.74 ...
##  $ EPI3     : num [1:300] 3.44 1.99 3.66 4.31 3.09 3.69 3.78 1.8 1.73 3.65 ...
##  $ EPI4     : num [1:300] 2.95 1.88 3.29 4.32 2.84 3.68 3.58 2.48 2.06 3.67 ...
##  $ SCB1     : num [1:300] 3.52 2.55 3.41 4.43 3.12 3.17 3.06 3.38 3.14 4.35 ...
##  $ SCB2     : num [1:300] 3.62 2.51 3.74 4.71 3.18 3.5 2.9 3.2 2.5 4.56 ...
##  $ SCB3     : num [1:300] 3.17 2.41 3.79 4.65 2.96 3.47 2.86 3.46 2.77 4.71 ...
##  $ SCB4     : num [1:300] 3.38 2.35 3.7 4.57 3.02 2.99 3.35 3.26 2.57 4.97 ...
##  $ ...21    : logi [1:300] NA NA NA NA NA NA ...
##  $ ...22    : logi [1:300] NA NA NA NA NA NA ...
##  $ ...23    : num [1:300] NA NA NA NA NA NA NA NA NA NA ...

5. Seleksi Indikator

Pada tahap ini, hanya indikator yang digunakan untuk analisis SEM-PLS yang dipilih.

data_sem <- data_raw %>%
  select(
    GTA1, GTA2, GTA3, GTA4,
    EC1, EC2, EC3, EC4,
    EPI1, EPI2, EPI3, EPI4,
    SCB1, SCB2, SCB3, SCB4
  )

data_sem <- data_sem %>%
  mutate(across(everything(), as.numeric))

data_sem <- as.data.frame(data_sem)

head(data_sem)
##   GTA1 GTA2 GTA3 GTA4  EC1  EC2  EC3  EC4 EPI1 EPI2 EPI3 EPI4 SCB1 SCB2 SCB3
## 1 3.18 3.39 3.36 3.23 2.54 2.65 2.01 2.54 2.99 3.24 3.44 2.95 3.52 3.62 3.17
## 2 2.71 2.71 2.61 2.67 2.75 2.83 2.29 2.10 1.98 2.28 1.99 1.88 2.55 2.51 2.41
## 3 3.27 3.12 2.91 3.07 3.52 4.19 3.47 3.55 4.18 4.31 3.66 3.29 3.41 3.74 3.79
## 4 3.85 3.83 3.22 3.88 3.78 4.09 4.36 3.36 4.28 4.27 4.31 4.32 4.43 4.71 4.65
## 5 2.75 2.74 2.20 2.57 3.45 2.87 3.01 3.05 3.07 3.47 3.09 2.84 3.12 3.18 2.96
## 6 2.75 2.68 2.24 3.10 3.43 3.21 2.52 3.12 3.43 3.75 3.69 3.68 3.17 3.50 3.47
##   SCB4
## 1 3.38
## 2 2.35
## 3 3.70
## 4 4.57
## 5 3.02
## 6 2.99
summary(data_sem)
##       GTA1            GTA2            GTA3            GTA4      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.470   1st Qu.:2.505   1st Qu.:2.328   1st Qu.:2.560  
##  Median :2.880   Median :2.910   Median :2.715   Median :2.900  
##  Mean   :2.892   Mean   :2.924   Mean   :2.688   Mean   :2.902  
##  3rd Qu.:3.300   3rd Qu.:3.393   3rd Qu.:3.092   3rd Qu.:3.250  
##  Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
##       EC1             EC2             EC3            EC4             EPI1      
##  Min.   :1.000   Min.   :1.000   Min.   :1.00   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.580   1st Qu.:2.368   1st Qu.:2.39   1st Qu.:2.260   1st Qu.:2.317  
##  Median :3.065   Median :2.850   Median :2.84   Median :2.760   Median :2.850  
##  Mean   :3.059   Mean   :2.873   Mean   :2.90   Mean   :2.794   Mean   :2.807  
##  3rd Qu.:3.510   3rd Qu.:3.350   3rd Qu.:3.44   3rd Qu.:3.285   3rd Qu.:3.250  
##  Max.   :5.000   Max.   :5.000   Max.   :5.00   Max.   :5.000   Max.   :5.000  
##       EPI2            EPI3            EPI4            SCB1      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.465   1st Qu.:2.500   1st Qu.:2.330   1st Qu.:2.700  
##  Median :3.080   Median :2.950   Median :2.850   Median :3.170  
##  Mean   :3.000   Mean   :2.969   Mean   :2.829   Mean   :3.144  
##  3rd Qu.:3.493   3rd Qu.:3.513   3rd Qu.:3.260   3rd Qu.:3.553  
##  Max.   :5.000   Max.   :5.000   Max.   :5.000   Max.   :5.000  
##       SCB2            SCB3            SCB4      
##  Min.   :1.000   Min.   :1.000   Min.   :1.000  
##  1st Qu.:2.507   1st Qu.:2.605   1st Qu.:2.490  
##  Median :3.110   Median :3.095   Median :3.045  
##  Mean   :3.052   Mean   :3.103   Mean   :3.037  
##  3rd Qu.:3.500   3rd Qu.:3.520   3rd Qu.:3.513  
##  Max.   :5.000   Max.   :5.000   Max.   :5.000
dim(data_sem)
## [1] 300  16

Berdasarkan hasil seleksi, data yang digunakan terdiri dari 16 indikator. Indikator tersebut membentuk 4 konstruk, yaitu GTA, EC, EPI, dan SCB.

6. Cek Missing Value

Missing value dicek untuk melihat apakah terdapat data kosong pada indikator yang digunakan.

missing_value <- colSums(is.na(data_sem))
missing_value
## GTA1 GTA2 GTA3 GTA4  EC1  EC2  EC3  EC4 EPI1 EPI2 EPI3 EPI4 SCB1 SCB2 SCB3 SCB4 
##    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0

Jika semua hasil bernilai 0, maka tidak ada missing value pada data.

7. Uji Kecukupan Data dengan KMO

Uji KMO digunakan untuk melihat apakah data cukup layak digunakan dalam analisis berbasis konstruk.

hasil_kmo <- KMO(data_sem)
hasil_kmo
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = data_sem)
## Overall MSA =  0.94
## MSA for each item = 
## GTA1 GTA2 GTA3 GTA4  EC1  EC2  EC3  EC4 EPI1 EPI2 EPI3 EPI4 SCB1 SCB2 SCB3 SCB4 
## 0.94 0.94 0.95 0.94 0.93 0.92 0.94 0.94 0.95 0.95 0.95 0.95 0.94 0.95 0.95 0.95

Interpretasi sederhana:

8. Uji Multikolinearitas dengan VIF

Uji VIF digunakan untuk melihat apakah terdapat hubungan yang terlalu kuat antar indikator.

model_vif <- lm(
  SCB1 ~ GTA1 + GTA2 + GTA3 + GTA4 +
    EC1 + EC2 + EC3 + EC4 +
    EPI1 + EPI2 + EPI3 + EPI4,
  data = data_sem
)

hasil_vif <- vif(model_vif)
hasil_vif
##     GTA1     GTA2     GTA3     GTA4      EC1      EC2      EC3      EC4 
## 6.054452 6.807310 6.223151 7.049394 4.734688 4.863406 4.287575 4.053514 
##     EPI1     EPI2     EPI3     EPI4 
## 7.030177 6.832512 7.094606 7.733190

Interpretasi sederhana:

9. Membuat Outer Model

Outer model digunakan untuk menjelaskan hubungan antara konstruk laten dengan indikatornya. Pada analisis ini, semua konstruk dibuat sebagai konstruk reflektif.

measurement_model <- constructs(
  composite("GTA", c("GTA1", "GTA2", "GTA3", "GTA4"), weights = mode_A),
  composite("EC",  c("EC1", "EC2", "EC3", "EC4"), weights = mode_A),
  composite("EPI", c("EPI1", "EPI2", "EPI3", "EPI4"), weights = mode_A),
  composite("SCB", c("SCB1", "SCB2", "SCB3", "SCB4"), weights = mode_A)
)

Keterangan:

10. Membuat Inner Model

Inner model digunakan untuk menjelaskan hubungan antar konstruk laten. Model yang digunakan adalah:

GTA → EC → EPI → SCB

structural_model <- relationships(
  paths(from = "GTA", to = "EC"),
  paths(from = "EC",  to = "EPI"),
  paths(from = "EPI", to = "SCB")
)

11. Estimasi Model SEM-PLS

Setelah outer model dan inner model dibuat, langkah berikutnya adalah menjalankan estimasi model SEM-PLS.

pls_model <- estimate_pls(
  data = data_sem,
  measurement_model = measurement_model,
  structural_model = structural_model
)

summary_pls <- summary(pls_model)
summary_pls
## 
## Results from  package seminr (2.4.2)
## 
## Path Coefficients:
##           EC   EPI   SCB
## R^2    0.187 0.315 0.478
## AdjR^2 0.184 0.313 0.476
## GTA    0.432     .     .
## EC         . 0.561     .
## EPI        .     . 0.691
## 
## Reliability:
##     alpha  rhoA  rhoC   AVE
## GTA 0.967 0.968 0.976 0.910
## EC  0.949 0.949 0.963 0.868
## EPI 0.970 0.971 0.978 0.918
## SCB 0.975 0.976 0.982 0.931
## 
## Alpha, rhoA, and rhoC should exceed 0.7 while AVE should exceed 0.5

12. Evaluasi Outer Model

Evaluasi outer model digunakan untuk melihat apakah indikator sudah cukup baik dalam mengukur konstruknya.

12.1 Loading Factor

Loading factor menunjukkan seberapa kuat indikator menjelaskan konstruk.

summary_pls$loadings
##        GTA    EC   EPI   SCB
## GTA1 0.949 0.000 0.000 0.000
## GTA2 0.957 0.000 0.000 0.000
## GTA3 0.953 0.000 0.000 0.000
## GTA4 0.957 0.000 0.000 0.000
## EC1  0.000 0.936 0.000 0.000
## EC2  0.000 0.938 0.000 0.000
## EC3  0.000 0.928 0.000 0.000
## EC4  0.000 0.924 0.000 0.000
## EPI1 0.000 0.000 0.957 0.000
## EPI2 0.000 0.000 0.956 0.000
## EPI3 0.000 0.000 0.959 0.000
## EPI4 0.000 0.000 0.962 0.000
## SCB1 0.000 0.000 0.000 0.967
## SCB2 0.000 0.000 0.000 0.965
## SCB3 0.000 0.000 0.000 0.964
## SCB4 0.000 0.000 0.000 0.963

Interpretasi sederhana:

  • Loading ≥ 0,70 berarti baik.
  • Loading 0,50–0,70 masih bisa dipertimbangkan.
  • Loading < 0,50 biasanya kurang baik.

12.2 Reliability dan AVE

Reliability digunakan untuk melihat konsistensi indikator dalam mengukur konstruk. AVE digunakan untuk melihat validitas konvergen.

summary_pls$reliability
##     alpha  rhoA  rhoC   AVE
## GTA 0.967 0.968 0.976 0.910
## EC  0.949 0.949 0.963 0.868
## EPI 0.970 0.971 0.978 0.918
## SCB 0.975 0.976 0.982 0.931
## 
## Alpha, rhoA, and rhoC should exceed 0.7 while AVE should exceed 0.5

Interpretasi sederhana:

  • Cronbach’s Alpha ≥ 0,70 berarti reliabel.
  • Composite Reliability ≥ 0,70 berarti reliabel.
  • AVE ≥ 0,50 berarti valid secara konvergen.

12.3 Fornell-Larcker

Fornell-Larcker digunakan untuk melihat validitas diskriminan antar konstruk.

summary_pls$validity$fl_criteria
##       GTA    EC   EPI   SCB
## GTA 0.954     .     .     .
## EC  0.432 0.931     .     .
## EPI 0.596 0.561 0.958     .
## SCB 0.585 0.478 0.691 0.965
## 
## FL Criteria table reports square root of AVE on the diagonal and construct correlations on the lower triangle.

12.4 HTMT

HTMT juga digunakan untuk mengecek validitas diskriminan.

summary_pls$validity$htmt
##       GTA    EC   EPI SCB
## GTA     .     .     .   .
## EC  0.450     .     .   .
## EPI 0.615 0.584     .   .
## SCB 0.602 0.497 0.710   .

Interpretasi sederhana:

  • HTMT < 0,90 berarti aman.
  • HTMT < 0,85 berarti lebih ketat.

13. Evaluasi Inner Model

Setelah outer model dilihat, tahap berikutnya adalah mengevaluasi inner model. Inner model digunakan untuk melihat hubungan antar konstruk laten.

13.1 Path Coefficient

Path coefficient menunjukkan arah dan besar hubungan antar konstruk.

summary_pls$paths
##           EC   EPI   SCB
## R^2    0.187 0.315 0.478
## AdjR^2 0.184 0.313 0.476
## GTA    0.432     .     .
## EC         . 0.561     .
## EPI        .     . 0.691

Jika nilainya positif, maka hubungan antar konstruk bersifat searah.

13.2 R-Square

R-square digunakan untuk melihat seberapa besar konstruk dependen dapat dijelaskan oleh konstruk sebelumnya dalam model.

summary_pls$r_squared
## NULL

Semakin besar nilai R-square, maka semakin besar kemampuan model dalam menjelaskan konstruk dependen.

13.3 Total Effects

Total effects digunakan untuk melihat pengaruh total antar konstruk dalam model.

summary_pls$total_effects
##       GTA    EC   EPI   SCB
## GTA 0.000 0.432 0.242 0.168
## EC  0.000 0.000 0.561 0.388
## EPI 0.000 0.000 0.000 0.691
## SCB 0.000 0.000 0.000 0.000

13.4 Model Fit

Pada PLS-SEM, model fit bukan bagian utama seperti pada CB-SEM. Namun jika tersedia, nilai model fit tetap dapat dilihat sebagai tambahan.

if (!is.null(summary_pls$model_fit)) {
  summary_pls$model_fit
} else {
  cat("Output model fit tidak tersedia pada objek summary ini.")
}
## Output model fit tidak tersedia pada objek summary ini.

14. Bootstrapping

Bootstrapping digunakan untuk menguji signifikansi hubungan antar konstruk. Pada bagian ini, hasil yang diperhatikan adalah t-statistic dan p-value.

boot_model <- bootstrap_model(
  seminr_model = pls_model,
  nboot = 5000,
  cores = 1,
  seed = 123
)

summary_boot <- summary(boot_model)
summary_boot
## 
## Results from  package seminr (2.4.2)
## 
## Path Coefficients:
##           EC   EPI   SCB
## R^2    0.187 0.315 0.478
## AdjR^2 0.184 0.313 0.476
## GTA    0.432     .     .
## EC         . 0.561     .
## EPI        .     . 0.691
## 
## Reliability:
##     alpha  rhoA  rhoC   AVE
## GTA 0.967 0.968 0.976 0.910
## EC  0.949 0.949 0.963 0.868
## EPI 0.970 0.971 0.978 0.918
## SCB 0.975 0.976 0.982 0.931
## 
## Alpha, rhoA, and rhoC should exceed 0.7 while AVE should exceed 0.5

14.1 Hasil Bootstrapping Path

Bagian ini digunakan untuk melihat apakah hubungan antar konstruk signifikan atau tidak.

summary_boot$bootstrapped_paths
## NULL

Hubungan dikatakan signifikan jika nilai p-value kurang dari 0,05.

14.2 Hasil Bootstrapping Loading

Bagian ini digunakan untuk melihat signifikansi indikator terhadap konstruknya.

summary_boot$bootstrapped_loadings
## NULL

15. Visualisasi Model

Visualisasi model digunakan untuk menampilkan diagram model SEM-PLS.

plot(pls_model)

16. Menyimpan Output

Bagian ini digunakan untuk menyimpan hasil analisis ke dalam file teks.

sink("Hasil_SEM_PLS_GreenTaxAwareness.txt")

cat("HASIL ANALISIS SEM-PLS GREEN TAX AWARENESS\n")
cat("==========================================\n\n")

cat("DESKRIPSI DATASET\n")
cat("Dataset ini berisi data tanggapan responden Gen Z Indonesia.\n")
cat("Analisis digunakan untuk melihat hubungan antara Green Tax Awareness,\n")
cat("Environmental Concern, Eco-friendly Purchase Intention, dan Sustainable\n")
cat("Consumption Behavior menggunakan metode SEM-PLS.\n\n")

cat("Konstruk dan indikator:\n")
cat("GTA  = Green Tax Awareness, terdiri dari GTA1-GTA4\n")
cat("EC   = Environmental Concern, terdiri dari EC1-EC4\n")
cat("EPI  = Eco-friendly Purchase Intention, terdiri dari EPI1-EPI4\n")
cat("SCB  = Sustainable Consumption Behavior, terdiri dari SCB1-SCB4\n\n")

cat("Model konseptual:\n")
cat("GTA -> EC -> EPI -> SCB\n\n")

cat("Jumlah baris dan kolom data:\n")
print(dim(data_sem))

cat("\n\n1. MISSING VALUE\n")
print(missing_value)

cat("\n\n2. HASIL KMO\n")
print(hasil_kmo)

cat("\n\n3. HASIL VIF\n")
print(hasil_vif)

cat("\n\n4. OUTER LOADING\n")
print(summary_pls$loadings)

cat("\n\n5. RELIABILITY DAN AVE\n")
print(summary_pls$reliability)

cat("\n\n6. FORNELL-LARCKER\n")
print(summary_pls$validity$fl_criteria)

cat("\n\n7. HTMT\n")
print(summary_pls$validity$htmt)

cat("\n\n8. PATH COEFFICIENT\n")
print(summary_pls$paths)

cat("\n\n9. R-SQUARE\n")
print(summary_pls$r_squared)

cat("\n\n10. TOTAL EFFECTS\n")
print(summary_pls$total_effects)

cat("\n\n11. MODEL FIT\n")
if (!is.null(summary_pls$model_fit)) {
  print(summary_pls$model_fit)
} else {
  cat("Output model fit tidak tersedia pada objek summary ini.\n")
}

cat("\n\n12. BOOTSTRAPPING PATHS\n")
print(summary_boot$bootstrapped_paths)

cat("\n\n13. BOOTSTRAPPING LOADINGS\n")
print(summary_boot$bootstrapped_loadings)

sink()

17. Kesimpulan Cara Membaca Hasil

Pada analisis SEM-PLS, hasil pertama yang dilihat adalah outer model. Outer model digunakan untuk melihat apakah indikator sudah cukup baik dalam mengukur konstruknya. Bagian yang diperhatikan yaitu loading factor, reliability, AVE, Fornell-Larcker, dan HTMT.

Setelah outer model dianggap cukup baik, analisis dilanjutkan ke inner model. Inner model digunakan untuk melihat hubungan antar konstruk. Bagian yang dilihat yaitu path coefficient, R-square, total effects, dan hasil bootstrapping.

Hubungan antar konstruk dapat dikatakan signifikan apabila nilai p-value dari hasil bootstrapping kurang dari 0,05. Jika nilai path coefficient bernilai positif, maka hubungan antar konstruk bersifat searah.

Secara umum, analisis ini digunakan untuk melihat apakah Green Tax Awareness dapat memengaruhi Environmental Concern, kemudian Environmental Concern memengaruhi Eco-friendly Purchase Intention, dan akhirnya Eco-friendly Purchase Intention memengaruhi Sustainable Consumption Behavior.