Penelitian ini menggunakan dataset Online Gaming Anxiety Data yang diperoleh dari Kaggle untuk menganalisis hubungan antara durasi bermain game, problematic gaming, tingkat kecemasan, dan kepuasan hidup. Analisis ini bertujuan untuk memahami mekanisme psikologis di balik perilaku bermain game. Penelitian tidak hanya berfokus pada apakah bermain game dapat meningkatkan kecemasan, tetapi juga bagaimana proses tersebut terjadi melalui hubungan antar variabel seperti problematic gaming, anxiety (GAD), dan satisfaction with life (SWL).
# LOAD PACKAGE
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.5.3
## Warning: package 'lubridate' was built under R version 4.5.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.0 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(tidyr)
library(janitor)
## Warning: package 'janitor' was built under R version 4.5.3
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
library(psych)
##
## Attaching package: 'psych'
##
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(skimr)
## Warning: package 'skimr' was built under R version 4.5.3
library(ggplot2)
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.5.3
## corrplot 0.95 loaded
library(caret)
## Warning: package 'caret' was built under R version 4.5.3
## Loading required package: lattice
##
## Attaching package: 'caret'
##
## The following object is masked from 'package:purrr':
##
## lift
library(seminr)
## Warning: package 'seminr' was built under R version 4.5.3
##
## Attaching package: 'seminr'
##
## The following object is masked from 'package:purrr':
##
## rerun
library(semTools)
## Warning: package 'semTools' was built under R version 4.5.3
## Loading required package: lavaan
## Warning: package 'lavaan' was built under R version 4.5.3
## This is lavaan 0.6-21
## lavaan is FREE software! Please report any bugs.
##
## Attaching package: 'lavaan'
##
## The following object is masked from 'package:psych':
##
## cor2cov
##
##
## ###############################################################################
## This is semTools 0.5-8
## All users of R (or SEM) are invited to submit functions or ideas for functions.
## ###############################################################################
##
## Attaching package: 'semTools'
##
## The following objects are masked from 'package:psych':
##
## reliability, skew
##
## The following object is masked from 'package:readr':
##
## clipboard
#Import Data
data <- read.csv("GamingStudy_data.csv")
# Struktur data
str(data)
## 'data.frame': 13464 obs. of 55 variables:
## $ S..No. : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Timestamp : num 42052 42052 42052 42052 42052 ...
## $ GAD1 : int 0 1 0 0 2 0 0 0 2 2 ...
## $ GAD2 : int 0 2 2 0 1 0 0 0 3 1 ...
## $ GAD3 : int 0 2 2 0 2 0 0 0 2 2 ...
## $ GAD4 : int 0 2 0 0 2 0 0 0 2 2 ...
## $ GAD5 : int 1 0 0 0 2 0 0 0 0 2 ...
## $ GAD6 : int 0 1 3 0 3 1 0 0 1 1 ...
## $ GAD7 : int 0 0 1 0 2 0 0 0 2 0 ...
## $ GADE : chr "Not difficult at all" "Somewhat difficult" "Not difficult at all" "Not difficult at all" ...
## $ SWL1 : int 3 3 2 2 2 3 3 3 2 3 ...
## $ SWL2 : int 5 5 6 5 2 5 4 6 3 3 ...
## $ SWL3 : int 5 2 5 5 4 3 4 4 3 3 ...
## $ SWL4 : int 5 5 2 3 5 3 3 3 3 2 ...
## $ SWL5 : int 5 1 2 2 1 3 2 7 1 2 ...
## $ Game : chr "Skyrim" "Other" "Other" "Other" ...
## $ Platform : chr "Console (PS, Xbox, ...)" "PC" "PC" "PC" ...
## $ Hours : int 15 8 0 20 20 4 30 25 2 25 ...
## $ earnings : chr "I play for fun" "I play for fun" "I play for fun" "I play for fun" ...
## $ whyplay : chr "having fun" "having fun" "having fun" "improving" ...
## $ League : chr "N/A" "N/A" "n/a" "N/A" ...
## $ highestleague : logi NA NA NA NA NA NA ...
## $ streams : int 0 2 0 5 1 0 8 0 0 0 ...
## $ SPIN1 : int 1 2 1 2 2 1 1 0 1 1 ...
## $ SPIN2 : int 0 1 0 0 0 1 2 0 1 1 ...
## $ SPIN3 : int 0 1 1 0 0 2 2 0 4 1 ...
## $ SPIN4 : int 1 3 2 1 0 3 3 0 4 1 ...
## $ SPIN5 : int 0 2 3 3 1 2 1 0 4 3 ...
## $ SPIN6 : int 0 3 4 0 0 1 1 0 4 3 ...
## $ SPIN7 : int 1 1 2 0 0 0 1 0 4 0 ...
## $ SPIN8 : int 0 3 1 0 4 0 2 0 4 1 ...
## $ SPIN9 : int 0 4 0 0 2 0 3 0 3 2 ...
## $ SPIN10 : int 0 0 1 0 0 1 1 0 3 2 ...
## $ SPIN11 : int 0 3 1 1 1 0 3 0 4 3 ...
## $ SPIN12 : int 0 0 3 3 0 0 1 0 4 1 ...
## $ SPIN13 : int 0 1 0 0 0 0 0 NA 2 0 ...
## $ SPIN14 : int 1 3 2 0 0 1 1 0 4 3 ...
## $ SPIN15 : int 0 3 4 1 0 1 2 0 4 2 ...
## $ SPIN16 : int 1 1 4 0 3 0 1 0 2 0 ...
## $ SPIN17 : int 0 2 2 0 0 0 1 0 3 2 ...
## $ Narcissism : int 1 1 4 2 1 2 2 5 1 1 ...
## $ Gender : chr "Male" "Male" "Female" "Male" ...
## $ Age : int 25 41 32 28 19 24 29 23 23 27 ...
## $ Work : chr "Unemployed / between jobs" "Unemployed / between jobs" "Employed" "Employed" ...
## $ Degree : chr "Bachelor\xa0(or equivalent)" "Bachelor\xa0(or equivalent)" "Bachelor\xa0(or equivalent)" "Bachelor\xa0(or equivalent)" ...
## $ Birthplace : chr "USA" "USA" "Germany" "USA" ...
## $ Residence : chr "USA" "USA" "Germany" "USA" ...
## $ Reference : chr "Reddit" "Reddit" "Reddit" "Reddit" ...
## $ Playstyle : chr "Singleplayer" "Multiplayer - online - with strangers" "Singleplayer" "Multiplayer - online - with online acquaintances or teammates" ...
## $ accept : chr "Accept" "Accept" "Accept" "Accept" ...
## $ GAD_T : int 1 8 8 0 14 1 0 0 12 10 ...
## $ SWL_T : int 23 16 17 17 14 17 16 23 12 13 ...
## $ SPIN_T : int 5 33 31 11 13 13 26 NA 55 26 ...
## $ Residence_ISO3 : chr "USA" "USA" "DEU" "USA" ...
## $ Birthplace_ISO3: chr "USA" "USA" "DEU" "USA" ...
glimpse(data)
## Rows: 13,464
## Columns: 55
## $ S..No. <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,…
## $ Timestamp <dbl> 42052.00, 42052.01, 42052.04, 42052.07, 42052.09, 4205…
## $ GAD1 <int> 0, 1, 0, 0, 2, 0, 0, 0, 2, 2, 3, 0, 0, 0, 0, 3, 1, 0, …
## $ GAD2 <int> 0, 2, 2, 0, 1, 0, 0, 0, 3, 1, 3, 0, 0, 0, 0, 1, 0, 0, …
## $ GAD3 <int> 0, 2, 2, 0, 2, 0, 0, 0, 2, 2, 3, 0, 0, 1, 0, 2, 1, 0, …
## $ GAD4 <int> 0, 2, 0, 0, 2, 0, 0, 0, 2, 2, 3, 0, 0, 0, 1, 1, 1, 0, …
## $ GAD5 <int> 1, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, …
## $ GAD6 <int> 0, 1, 3, 0, 3, 1, 0, 0, 1, 1, 3, 0, 0, 1, 1, 1, 1, 0, …
## $ GAD7 <int> 0, 0, 1, 0, 2, 0, 0, 0, 2, 0, 3, 0, 0, 1, 0, 0, 0, 1, …
## $ GADE <chr> "Not difficult at all", "Somewhat difficult", "Not dif…
## $ SWL1 <int> 3, 3, 2, 2, 2, 3, 3, 3, 2, 3, 5, 7, 6, 6, 2, 5, 3, 5, …
## $ SWL2 <int> 5, 5, 6, 5, 2, 5, 4, 6, 3, 3, 5, 7, 6, 7, 4, 6, 3, 2, …
## $ SWL3 <int> 5, 2, 5, 5, 4, 3, 4, 4, 3, 3, 6, 7, 7, 3, 3, 6, 3, 4, …
## $ SWL4 <int> 5, 5, 2, 3, 5, 3, 3, 3, 3, 2, 6, 5, 6, 6, 2, 5, 3, 6, …
## $ SWL5 <int> 5, 1, 2, 2, 1, 3, 2, 7, 1, 2, 5, 7, 6, 4, 2, 6, 3, 2, …
## $ Game <chr> "Skyrim", "Other", "Other", "Other", "Other", "Other",…
## $ Platform <chr> "Console (PS, Xbox, ...)", "PC", "PC", "PC", "Console …
## $ Hours <int> 15, 8, 0, 20, 20, 4, 30, 25, 2, 25, 14, 25, 10, 25, 30…
## $ earnings <chr> "I play for fun", "I play for fun", "I play for fun", …
## $ whyplay <chr> "having fun", "having fun", "having fun", "improving",…
## $ League <chr> "N/A", "N/A", "n/a", "N/A", "n/a", "-", "N/A", "N/A", …
## $ highestleague <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ streams <int> 0, 2, 0, 5, 1, 0, 8, 0, 0, 0, 0, 2, 0, 1, 5, 0, 5, 1, …
## $ SPIN1 <int> 1, 2, 1, 2, 2, 1, 1, 0, 1, 1, 0, 1, 1, 0, 2, 0, 2, 1, …
## $ SPIN2 <int> 0, 1, 0, 0, 0, 1, 2, 0, 1, 1, 0, 0, 3, 4, 1, 3, 4, 1, …
## $ SPIN3 <int> 0, 1, 1, 0, 0, 2, 2, 0, 4, 1, 0, 0, 1, 2, 3, 3, 1, 1, …
## $ SPIN4 <int> 1, 3, 2, 1, 0, 3, 3, 0, 4, 1, 1, 1, 2, 3, 3, 4, 1, 0, …
## $ SPIN5 <int> 0, 2, 3, 3, 1, 2, 1, 0, 4, 3, 1, 0, 2, 4, 1, 2, 2, 1, …
## $ SPIN6 <int> 0, 3, 4, 0, 0, 1, 1, 0, 4, 3, 1, 0, 1, 1, 1, 2, 2, 1, …
## $ SPIN7 <int> 1, 1, 2, 0, 0, 0, 1, 0, 4, 0, 0, 0, 1, 4, 0, 1, 3, 0, …
## $ SPIN8 <int> 0, 3, 1, 0, 4, 0, 2, 0, 4, 1, 0, 0, 0, 1, 4, 3, 1, 0, …
## $ SPIN9 <int> 0, 4, 0, 0, 2, 0, 3, 0, 3, 2, 0, 1, 3, 4, 3, 4, 3, 1, …
## $ SPIN10 <int> 0, 0, 1, 0, 0, 1, 1, 0, 3, 2, 0, 0, 0, 1, 2, 2, 1, 0, …
## $ SPIN11 <int> 0, 3, 1, 1, 1, 0, 3, 0, 4, 3, 0, 0, 3, 1, 3, 1, 4, 1, …
## $ SPIN12 <int> 0, 0, 3, 3, 0, 0, 1, 0, 4, 1, 0, 0, 2, 4, 2, 0, 2, 0, …
## $ SPIN13 <int> 0, 1, 0, 0, 0, 0, 0, NA, 2, 0, 0, 0, 0, 0, 2, 1, 1, 0,…
## $ SPIN14 <int> 1, 3, 2, 0, 0, 1, 1, 0, 4, 3, 2, 0, 1, 0, 2, 2, 3, 0, …
## $ SPIN15 <int> 0, 3, 4, 1, 0, 1, 2, 0, 4, 2, 1, 0, 1, 0, 2, 2, 2, 1, …
## $ SPIN16 <int> 1, 1, 4, 0, 3, 0, 1, 0, 2, 0, 0, 0, 1, 0, 1, 0, 2, 0, …
## $ SPIN17 <int> 0, 2, 2, 0, 0, 0, 1, 0, 3, 2, 0, 0, 1, 0, 1, 0, 2, 0, …
## $ Narcissism <int> 1, 1, 4, 2, 1, 2, 2, 5, 1, 1, 1, 1, 2, 1, 1, 3, 1, 1, …
## $ Gender <chr> "Male", "Male", "Female", "Male", "Male", "Male", "Mal…
## $ Age <int> 25, 41, 32, 28, 19, 24, 29, 23, 23, 27, 21, 25, 18, 19…
## $ Work <chr> "Unemployed / between jobs", "Unemployed / between job…
## $ Degree <chr> "Bachelor\xa0(or equivalent)", "Bachelor\xa0(or equiva…
## $ Birthplace <chr> "USA", "USA", "Germany", "USA", "USA", "USA", "USA", "…
## $ Residence <chr> "USA", "USA", "Germany", "USA", "South Korea", "USA", …
## $ Reference <chr> "Reddit", "Reddit", "Reddit", "Reddit", "Reddit", "Red…
## $ Playstyle <chr> "Singleplayer", "Multiplayer - online - with strangers…
## $ accept <chr> "Accept", "Accept", "Accept", "Accept", "Accept", "Acc…
## $ GAD_T <int> 1, 8, 8, 0, 14, 1, 0, 0, 12, 10, 19, 0, 0, 3, 2, 8, 4,…
## $ SWL_T <int> 23, 16, 17, 17, 14, 17, 16, 23, 12, 13, 27, 33, 31, 26…
## $ SPIN_T <int> 5, 33, 31, 11, 13, 13, 26, NA, 55, 26, 6, 3, 23, 29, 3…
## $ Residence_ISO3 <chr> "USA", "USA", "DEU", "USA", "KOR", "USA", "USA", "JPN"…
## $ Birthplace_ISO3 <chr> "USA", "USA", "DEU", "USA", "USA", "USA", "USA", "USA"…
# Dimensi data
dim(data)
## [1] 13464 55
# Nama variabel
names(data)
## [1] "S..No." "Timestamp" "GAD1" "GAD2"
## [5] "GAD3" "GAD4" "GAD5" "GAD6"
## [9] "GAD7" "GADE" "SWL1" "SWL2"
## [13] "SWL3" "SWL4" "SWL5" "Game"
## [17] "Platform" "Hours" "earnings" "whyplay"
## [21] "League" "highestleague" "streams" "SPIN1"
## [25] "SPIN2" "SPIN3" "SPIN4" "SPIN5"
## [29] "SPIN6" "SPIN7" "SPIN8" "SPIN9"
## [33] "SPIN10" "SPIN11" "SPIN12" "SPIN13"
## [37] "SPIN14" "SPIN15" "SPIN16" "SPIN17"
## [41] "Narcissism" "Gender" "Age" "Work"
## [45] "Degree" "Birthplace" "Residence" "Reference"
## [49] "Playstyle" "accept" "GAD_T" "SWL_T"
## [53] "SPIN_T" "Residence_ISO3" "Birthplace_ISO3"
# CLEANING NAMA KOLOM
data <- clean_names(data)
# Cek nama kolom setelah cleaning
names(data)
## [1] "s_no" "timestamp" "gad1" "gad2"
## [5] "gad3" "gad4" "gad5" "gad6"
## [9] "gad7" "gade" "swl1" "swl2"
## [13] "swl3" "swl4" "swl5" "game"
## [17] "platform" "hours" "earnings" "whyplay"
## [21] "league" "highestleague" "streams" "spin1"
## [25] "spin2" "spin3" "spin4" "spin5"
## [29] "spin6" "spin7" "spin8" "spin9"
## [33] "spin10" "spin11" "spin12" "spin13"
## [37] "spin14" "spin15" "spin16" "spin17"
## [41] "narcissism" "gender" "age" "work"
## [45] "degree" "birthplace" "residence" "reference"
## [49] "playstyle" "accept" "gad_t" "swl_t"
## [53] "spin_t" "residence_iso3" "birthplace_iso3"
Nama variabel dibersihkan menggunakan fungsi clean_names() agar format penamaan variabel menjadi konsisten dan memudahkan proses analisis
# MEMILIH VARIABEL PENELITIAN
data_sem <- data %>%
select(
# Moderator
gender,
# Variabel eksogen
hours,
# GAD
gad1:gad7,
# SWL
swl1:swl5,
# SPIN
spin1:spin7
)
Variabel yang digunakan dalam penelitian terdiri dari: - hours sebagai variabel eksogen, - gender sebagai variabel moderator, - indikator GAD, SWL, dan SPIN sebagai konstruk penelitian.
# CEK STRUKTUR DATA
str(data_sem)
## 'data.frame': 13464 obs. of 21 variables:
## $ gender: chr "Male" "Male" "Female" "Male" ...
## $ hours : int 15 8 0 20 20 4 30 25 2 25 ...
## $ gad1 : int 0 1 0 0 2 0 0 0 2 2 ...
## $ gad2 : int 0 2 2 0 1 0 0 0 3 1 ...
## $ gad3 : int 0 2 2 0 2 0 0 0 2 2 ...
## $ gad4 : int 0 2 0 0 2 0 0 0 2 2 ...
## $ gad5 : int 1 0 0 0 2 0 0 0 0 2 ...
## $ gad6 : int 0 1 3 0 3 1 0 0 1 1 ...
## $ gad7 : int 0 0 1 0 2 0 0 0 2 0 ...
## $ swl1 : int 3 3 2 2 2 3 3 3 2 3 ...
## $ swl2 : int 5 5 6 5 2 5 4 6 3 3 ...
## $ swl3 : int 5 2 5 5 4 3 4 4 3 3 ...
## $ swl4 : int 5 5 2 3 5 3 3 3 3 2 ...
## $ swl5 : int 5 1 2 2 1 3 2 7 1 2 ...
## $ spin1 : int 1 2 1 2 2 1 1 0 1 1 ...
## $ spin2 : int 0 1 0 0 0 1 2 0 1 1 ...
## $ spin3 : int 0 1 1 0 0 2 2 0 4 1 ...
## $ spin4 : int 1 3 2 1 0 3 3 0 4 1 ...
## $ spin5 : int 0 2 3 3 1 2 1 0 4 3 ...
## $ spin6 : int 0 3 4 0 0 1 1 0 4 3 ...
## $ spin7 : int 1 1 2 0 0 0 1 0 4 0 ...
summary(data_sem)
## gender hours gad1 gad2
## Length:13464 Min. : 0.00 Min. :0.000 Min. :0.0000
## Class :character 1st Qu.: 12.00 1st Qu.:0.000 1st Qu.:0.0000
## Mode :character Median : 20.00 Median :1.000 Median :0.0000
## Mean : 22.25 Mean :0.861 Mean :0.6734
## 3rd Qu.: 28.00 3rd Qu.:1.000 3rd Qu.:1.0000
## Max. :8000.00 Max. :3.000 Max. :3.0000
## NA's :30
## gad3 gad4 gad5 gad6
## Min. :0.0000 Min. :0.0000 Min. :0.000 Min. :0.000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.000
## Median :1.0000 Median :0.0000 Median :0.000 Median :1.000
## Mean :0.9658 Mean :0.7241 Mean :0.488 Mean :0.911
## 3rd Qu.:2.0000 3rd Qu.:1.0000 3rd Qu.:1.000 3rd Qu.:1.000
## Max. :3.0000 Max. :3.0000 Max. :3.000 Max. :3.000
##
## gad7 swl1 swl2 swl3
## Min. :0.0000 Min. :1.00 Min. :1.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:2.00 1st Qu.:3.000 1st Qu.:3.000
## Median :0.0000 Median :4.00 Median :5.000 Median :5.000
## Mean :0.5888 Mean :3.72 Mean :4.602 Mean :4.345
## 3rd Qu.:1.0000 3rd Qu.:5.00 3rd Qu.:6.000 3rd Qu.:6.000
## Max. :3.0000 Max. :7.00 Max. :7.000 Max. :7.000
##
## swl4 swl5 spin1 spin2
## Min. :1.000 Min. :1.000 Min. :0.0000 Min. :0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:0.0000 1st Qu.:0.000
## Median :4.000 Median :3.000 Median :1.0000 Median :1.000
## Mean :3.762 Mean :3.359 Mean :0.8569 Mean :1.211
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:1.0000 3rd Qu.:2.000
## Max. :7.000 Max. :7.000 Max. :4.0000 Max. :4.000
## NA's :124 NA's :154
## spin3 spin4 spin5 spin6
## Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.000 1st Qu.:1.000 1st Qu.:0.000 1st Qu.:0.000
## Median :1.000 Median :2.000 Median :1.000 Median :1.000
## Mean :1.095 Mean :1.683 Mean :1.249 Mean :1.348
## 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:2.000
## Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000
## NA's :140 NA's :159 NA's :166 NA's :156
## spin7
## Min. :0.000
## 1st Qu.:0.000
## Median :1.000
## Mean :1.051
## 3rd Qu.:2.000
## Max. :4.000
## NA's :138
Berdasarkan hasil str(data_sem) dan summary(data_sem), dataset penelitian terdiri dari 13.401 observasi dan 21 variabel yang meliputi variabel gender, hours bermain game, indikator GAD, SWL, dan SPIN. Variabel gender bertipe karakter, sedangkan variabel lainnya didominasi oleh tipe numerik berupa skala Likert.
Variabel hours memiliki rentang nilai yang sangat besar, yaitu dari 0 hingga 8000 jam dengan rata-rata 22,26 jam. Nilai maksimum yang sangat tinggi menunjukkan adanya indikasi outlier pada variabel tersebut sehingga perlu dilakukan penanganan lebih lanjut.
Indikator konstruk GAD (gad1–gad7) memiliki rentang skor 0–3 dengan nilai rata-rata relatif rendah, yang menunjukkan tingkat kecemasan responden cenderung berada pada kategori rendah hingga sedang. Konstruk SWL (swl1–swl5) memiliki rentang skor 1–7 dengan rata-rata relatif tinggi, yang menunjukkan sebagian besar responden memiliki tingkat kepuasan hidup yang cukup baik.
Sementara itu, indikator SPIN (spin1–spin7) memiliki rentang skor 0–4 dengan rata-rata sedang, yang menunjukkan adanya variasi tingkat kecemasan sosial pada responden. Secara umum, struktur data sudah sesuai untuk analisis karena variabel indikator telah berbentuk numerik dan dapat digunakan pada tahap analisis berikutnya.
# CEK MISSING VALUE
# Jumlah missing value
colSums(is.na(data_sem))
## gender hours gad1 gad2 gad3 gad4 gad5 gad6 gad7 swl1 swl2
## 0 30 0 0 0 0 0 0 0 0 0
## swl3 swl4 swl5 spin1 spin2 spin3 spin4 spin5 spin6 spin7
## 0 0 0 124 154 140 159 166 156 138
# Persentase missing value
sapply(data_sem, function(x){
sum(is.na(x)) / length(x) * 100
})
## gender hours gad1 gad2 gad3 gad4 gad5 gad6
## 0.0000000 0.2228164 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
## gad7 swl1 swl2 swl3 swl4 swl5 spin1 spin2
## 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.9209745 1.1437908
## spin3 spin4 spin5 spin6 spin7
## 1.0398099 1.1809269 1.2329174 1.1586453 1.0249554
# HANDLE MISSING VALUE
# Numerik -> Median
num_cols <- sapply(data_sem, is.numeric)
preprocess <- preProcess(
data_sem[, num_cols],
method = "medianImpute"
)
data_sem[, num_cols] <- predict(
preprocess,
data_sem[, num_cols]
)
Berdasarkan hasil dari pengeckan missing value =, ditemukan Presentase missing value sebesar <5% maka dilakukan penanganan pada missing value dengan metode median imputation karena metode ini lebih robust terhadap outlier.
# Cek ulang
colSums(is.na(data_sem))
## gender hours gad1 gad2 gad3 gad4 gad5 gad6 gad7 swl1 swl2
## 0 0 0 0 0 0 0 0 0 0 0
## swl3 swl4 swl5 spin1 spin2 spin3 spin4 spin5 spin6 spin7
## 0 0 0 0 0 0 0 0 0 0
# CEK DUPLIKAT
sum(duplicated(data_sem))
## [1] 63
# Hapus duplikat
data_sem <- distinct(data_sem)
Terdapat 63 data duplikat maka ditangani dengan menghapus data yang duplikat agar kualitas data tetap terjaga.
# CEK OUTLIER (boxplot)
data_long <- data_sem %>%
select(hours, gad1:gad7, swl1:swl5, spin1:spin7) %>%
pivot_longer(cols = everything(), names_to = "variabel", values_to = "nilai")
boxplot_all <- ggplot(data_long, aes(x = variabel, y = nilai)) +
geom_boxplot(fill = "#3498db", color = "#2c3e50",
outlier.colour = "red", outlier.shape = 16, outlier.size = 1.5) +
facet_wrap(~ variabel, scales = "free", ncol = 5) +
theme_minimal() +
labs(title = "Deteksi Outlier semua Variabel",
x = NULL, y = "Skor / Nilai") +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
strip.text = element_text(face = "bold", size = 10))
print(boxplot_all)
Terlihat pada variabel hours terdapat outrliers yang sangat ekstrem maka
perlu dilakukan penanganan,terdapat juga titik yang teridentifikasi
sebagai outlier pada variabel konstruk GAD dan SPIN. Namun, outlier pada
variabel-variabel tersebut tidak dilakukan penanganan atau penghapusan
data. Hal ini karena indikator GAD dan SPIN merupakan data hasil skala
Likert yang memiliki rentang nilai terbatas dan bersifat ordinal. Pada
data skala Likert, kemunculan nilai outlier masih dianggap wajar karena
mencerminkan variasi persepsi, pengalaman maupun kondisi psikologis
responden yang sebenarnya.
# MENANGANI OUTLIER HOURS
z_hours <- scale(data_sem$hours)
outlier_hours <- which(abs(z_hours) > 3)
jumlah_outlier_hours <- length(outlier_hours)
print(jumlah_outlier_hours)
## [1] 2
print(outlier_hours)
## [1] 3848 9399
data_sem$hours[outlier_hours]
## [1] 8000 420
#Menghapus Outlier hours
data_clean <- data_sem[-outlier_hours, ]
Outlier pada variabel hours dideteksi menggunakan metode Z-score dengan batas ±3.Terdapat 2 Data yang termasuk outlier ekstrem dihapus agar model lebih stabil dan tidak bias
#Cek dimensi
dim(data_sem)
## [1] 13401 21
dim(data_clean)
## [1] 13399 21
# STANDARDISASI DATA DAN ENCODING
# Standardisasi hanya numerik
data_clean <- data_clean %>%
mutate(hours = as.vector(scale(hours)))
# ENCODING DATA GENDER
data_clean$gender <- as.factor(data_clean$gender)
data_clean$gender_num <- ifelse(
data_clean$gender == "Male", 1,
ifelse(
data_clean$gender == "Female", 0,
NA
)
)
#Menghapus gender selain male/ female
data_clean <- data_clean %>%
filter(!is.na(gender_num))
#Cek ulang
table(data_sem$gender)
##
## Female Male Other
## 712 12638 51
table(data_clean$gender)
##
## Female Male Other
## 712 12638 0
table(data_clean$gender_num)
##
## 0 1
## 712 12638
Variabel hours distandardisasi agar berada pada skala yang sama. Variabel gender dilakukan encoding dengan kode Male = 1 dan Female = 0. untuk memudahkan analisis, karena yang dibutuhkan jenis kelamin maka other dihapus.
# CEK DATA AKHIR
str(data_clean)
## 'data.frame': 13350 obs. of 22 variables:
## $ gender : Factor w/ 3 levels "Female","Male",..: 2 2 1 2 2 2 2 1 1 1 ...
## $ hours : num -0.482 -0.99 -1.57 -0.119 -0.119 ...
## $ gad1 : int 0 1 0 0 2 0 0 0 2 2 ...
## $ gad2 : int 0 2 2 0 1 0 0 0 3 1 ...
## $ gad3 : int 0 2 2 0 2 0 0 0 2 2 ...
## $ gad4 : int 0 2 0 0 2 0 0 0 2 2 ...
## $ gad5 : int 1 0 0 0 2 0 0 0 0 2 ...
## $ gad6 : int 0 1 3 0 3 1 0 0 1 1 ...
## $ gad7 : int 0 0 1 0 2 0 0 0 2 0 ...
## $ swl1 : int 3 3 2 2 2 3 3 3 2 3 ...
## $ swl2 : int 5 5 6 5 2 5 4 6 3 3 ...
## $ swl3 : int 5 2 5 5 4 3 4 4 3 3 ...
## $ swl4 : int 5 5 2 3 5 3 3 3 3 2 ...
## $ swl5 : int 5 1 2 2 1 3 2 7 1 2 ...
## $ spin1 : num 1 2 1 2 2 1 1 0 1 1 ...
## $ spin2 : num 0 1 0 0 0 1 2 0 1 1 ...
## $ spin3 : num 0 1 1 0 0 2 2 0 4 1 ...
## $ spin4 : num 1 3 2 1 0 3 3 0 4 1 ...
## $ spin5 : num 0 2 3 3 1 2 1 0 4 3 ...
## $ spin6 : num 0 3 4 0 0 1 1 0 4 3 ...
## $ spin7 : num 1 1 2 0 0 0 1 0 4 0 ...
## $ gender_num: num 1 1 0 1 1 1 1 0 0 0 ...
summary(data_clean)
## gender hours gad1 gad2
## Female: 712 Min. :-1.570364 Min. :0.0000 Min. :0.0000
## Male :12638 1st Qu.:-0.699512 1st Qu.:0.0000 1st Qu.:0.0000
## Other : 0 Median :-0.118944 Median :1.0000 Median :0.0000
## Mean :-0.002319 Mean :0.8586 Mean :0.6713
## 3rd Qu.: 0.461624 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :10.040995 Max. :3.0000 Max. :3.0000
## gad3 gad4 gad5 gad6
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.00
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00
## Median :1.0000 Median :0.0000 Median :0.0000 Median :1.00
## Mean :0.9645 Mean :0.7219 Mean :0.4861 Mean :0.91
## 3rd Qu.:2.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.00
## Max. :3.0000 Max. :3.0000 Max. :3.0000 Max. :3.00
## gad7 swl1 swl2 swl3
## Min. :0.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:0.000 1st Qu.:2.000 1st Qu.:3.000 1st Qu.:3.000
## Median :0.000 Median :4.000 Median :5.000 Median :5.000
## Mean :0.587 Mean :3.721 Mean :4.603 Mean :4.349
## 3rd Qu.:1.000 3rd Qu.:5.000 3rd Qu.:6.000 3rd Qu.:6.000
## Max. :3.000 Max. :7.000 Max. :7.000 Max. :7.000
## swl4 swl5 spin1 spin2
## Min. :1.000 Min. :1.000 Min. :0.0000 Min. :0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:0.0000 1st Qu.:0.000
## Median :4.000 Median :3.000 Median :1.0000 Median :1.000
## Mean :3.763 Mean :3.359 Mean :0.8586 Mean :1.209
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:1.0000 3rd Qu.:2.000
## Max. :7.000 Max. :7.000 Max. :4.0000 Max. :4.000
## spin3 spin4 spin5 spin6
## Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.000 1st Qu.:1.000 1st Qu.:0.000 1st Qu.:0.000
## Median :1.000 Median :2.000 Median :1.000 Median :1.000
## Mean :1.094 Mean :1.688 Mean :1.247 Mean :1.345
## 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:2.000
## Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000
## spin7 gender_num
## Min. :0.000 Min. :0.0000
## 1st Qu.:0.000 1st Qu.:1.0000
## Median :1.000 Median :1.0000
## Mean :1.051 Mean :0.9467
## 3rd Qu.:2.000 3rd Qu.:1.0000
## Max. :4.000 Max. :1.0000
# TAHAP EDA (EXPLORATORY DATA ANALYSIS)
describe(data_clean)
## vars n mean sd median trimmed mad min max range skew
## gender* 1 13350 1.95 0.22 2.00 2.00 0.00 1.00 2.00 1.00 -3.98
## hours 2 13350 0.00 1.00 -0.12 -0.13 0.86 -1.57 10.04 11.61 1.87
## gad1 3 13350 0.86 0.92 1.00 0.72 1.48 0.00 3.00 3.00 0.93
## gad2 4 13350 0.67 0.91 0.00 0.50 0.00 0.00 3.00 3.00 1.24
## gad3 5 13350 0.96 0.98 1.00 0.83 1.48 0.00 3.00 3.00 0.74
## gad4 6 13350 0.72 0.92 0.00 0.56 0.00 0.00 3.00 3.00 1.12
## gad5 7 13350 0.49 0.84 0.00 0.29 0.00 0.00 3.00 3.00 1.72
## gad6 8 13350 0.91 0.93 1.00 0.79 1.48 0.00 3.00 3.00 0.79
## gad7 9 13350 0.59 0.89 0.00 0.41 0.00 0.00 3.00 3.00 1.43
## swl1 10 13350 3.72 1.73 4.00 3.74 2.97 1.00 7.00 6.00 0.05
## swl2 11 13350 4.60 1.69 5.00 4.69 1.48 1.00 7.00 6.00 -0.49
## swl3 12 13350 4.35 1.81 5.00 4.42 1.48 1.00 7.00 6.00 -0.35
## swl4 13 13350 3.76 1.82 4.00 3.75 2.97 1.00 7.00 6.00 0.08
## swl5 14 13350 3.36 1.91 3.00 3.24 2.97 1.00 7.00 6.00 0.41
## spin1 15 13350 0.86 0.90 1.00 0.75 1.48 0.00 4.00 4.00 0.90
## spin2 16 13350 1.21 1.14 1.00 1.09 1.48 0.00 4.00 4.00 0.65
## spin3 17 13350 1.09 1.16 1.00 0.93 1.48 0.00 4.00 4.00 0.90
## spin4 18 13350 1.69 1.22 2.00 1.63 1.48 0.00 4.00 4.00 0.22
## spin5 19 13350 1.25 1.21 1.00 1.11 1.48 0.00 4.00 4.00 0.71
## spin6 20 13350 1.35 1.27 1.00 1.21 1.48 0.00 4.00 4.00 0.61
## spin7 21 13350 1.05 1.21 1.00 0.87 1.48 0.00 4.00 4.00 0.95
## gender_num 22 13350 0.95 0.22 1.00 1.00 0.00 0.00 1.00 1.00 -3.98
## kurtosis se
## gender* 13.80 0.00
## hours 6.61 0.01
## gad1 0.01 0.01
## gad2 0.54 0.01
## gad3 -0.51 0.01
## gad4 0.28 0.01
## gad5 2.06 0.01
## gad6 -0.28 0.01
## gad7 1.02 0.01
## swl1 -1.24 0.02
## swl2 -0.80 0.01
## swl3 -1.06 0.02
## swl4 -1.18 0.02
## swl5 -1.07 0.02
## spin1 0.41 0.01
## spin2 -0.50 0.01
## spin3 -0.08 0.01
## spin4 -0.95 0.01
## spin5 -0.51 0.01
## spin6 -0.75 0.01
## spin7 -0.18 0.01
## gender_num 13.80 0.00
# Total Score untuk Visualisasi
# Total GAD
data_clean$gad_total <- rowMeans(
data_clean[, paste0("gad", 1:7)]
)
# Total SWL
data_clean$swl_total <- rowMeans(
data_clean[, paste0("swl", 1:5)]
)
# Total SPIN
data_clean$spin_total <- rowMeans(
data_clean[, paste0("spin", 1:7)]
)
Total score digunakan untuk mempermudah visualisasi distribusi masing-masing konstruk
# VISUALISASI DISTRIBUSI GENDER
gender_plot <- ggplot(
data_clean,
aes(x = gender)
) +
geom_bar(
fill = "skyblue",
color = "black"
) +
labs(
title = "Distribusi Gender",
x = "Gender",
y = "Frekuensi"
) +
theme_minimal()
print(gender_plot)
Visualisasi distribusi gender menunjukkan bahwa mayoritas responden
dalam penelitian berjenis kelamin laki-laki (Male), sedangkan jumlah
responden perempuan (Female) jauh lebih sedikit. Hal ini menunjukkan
bahwa data penelitian didominasi oleh responden laki-laki sehingga
karakteristik perilaku gaming dalam penelitian lebih banyak
merepresentasikan kelompok laki-laki dibandingkan perempuan.
# VISUALISASI DISTRIBUSI HOURS
hours_plot <- ggplot(
data_clean,
aes(x = hours)
) +
geom_histogram(
bins = 30,
fill = "orange",
color = "black"
) +
labs(
title = "Distribusi Hours",
x = "Hours Bermain",
y = "Frekuensi"
) +
theme_minimal()
print(hours_plot)
Histogram distribusi hours menunjukkan bahwa sebagian besar responden
memiliki durasi bermain game pada rentang rendah hingga sedang, yang
terlihat dari tingginya frekuensi di sekitar nilai tengah. Distribusi
data cenderung right-skewed (miring ke kanan) karena terdapat beberapa
responden dengan durasi bermain yang sangat tinggi dibandingkan
mayoritas data lainnya. Hal ini menunjukkan adanya sebagian kecil pemain
yang bermain game dalam waktu jauh lebih lama dibandingkan responden
lainnya.
# VISUALISASI DISTRIBUSI GAD
gad_plot <- ggplot(
data_clean,
aes(x = gad_total)
) +
geom_histogram(
bins = 30,
fill = "red",
color = "black"
) +
labs(
title = "Distribusi Skor GAD",
x = "Skor GAD",
y = "Frekuensi"
) +
theme_minimal()
print(gad_plot)
Histogram skor GAD menunjukkan bahwa sebagian besar responden memiliki
tingkat kecemasan umum (Generalized Anxiety Disorder) pada kategori
rendah hingga sedang. Distribusi data cenderung miring ke kanan, yang
menandakan hanya sebagian kecil responden memiliki skor kecemasan yang
tinggi. Dengan demikian, mayoritas responden dalam penelitian ini tidak
menunjukkan tingkat kecemasan yang ekstrem.
# VISUALISASI DISTRIBUSI SPIN
spin_plot <- ggplot(
data_clean,
aes(x = spin_total)
) +
geom_histogram(
bins = 30,
fill = "purple",
color = "black"
) +
labs(
title = "Distribusi Skor SPIN",
x = "Skor SPIN",
y = "Frekuensi"
) +
theme_minimal()
print(spin_plot)
Histogram skor SPIN menunjukkan bahwa sebagian besar responden memiliki
tingkat kecemasan sosial pada kategori rendah hingga sedang. Distribusi
juga terlihat right-skewed, di mana frekuensi skor tinggi semakin
menurun. Hal ini mengindikasikan bahwa hanya sebagian kecil responden
yang memiliki tingkat kecemasan sosial yang tinggi.
# BOXPLOT KONSTRUK
boxplot_construct <- data_clean %>%
select(
gad_total,
swl_total,
spin_total
) %>%
pivot_longer(
cols = everything(),
names_to = "konstruk",
values_to = "nilai"
) %>%
ggplot(
aes(x = konstruk, y = nilai, fill = konstruk)
) +
geom_boxplot() +
labs(
title = "Boxplot Konstruk",
x = "Konstruk",
y = "Nilai"
) +
theme_minimal()
print(boxplot_construct)
Boxplot konstruk menunjukkan perbedaan sebaran nilai pada masing-masing
konstruk penelitian. Konstruk SWL memiliki median paling tinggi
dibandingkan GAD dan SPIN, yang menunjukkan bahwa tingkat kepuasan hidup
responden relatif lebih tinggi. Sementara itu, konstruk GAD memiliki
median paling rendah sehingga tingkat kecemasan umum responden cenderung
rendah. Pada boxplot juga terlihat beberapa titik outlier pada konstruk
GAD dan SPIN. Namun, outlier tersebut tidak dilakukan penanganan karena
data berasal dari skala Likert yang memiliki rentang nilai terbatas dan
tetap. Nilai-nilai ekstrem tersebut masih dianggap representatif
terhadap kondisi nyata responden. Selain itu, apabila dilakukan
penghapusan atau perubahan data, maka dapat mengubah karakteristik asli
data penelitian dan mengurangi representasi jawaban responden yang
sebenarnya.
# KORELASI ANTAR KONSTRUK
correlation_data <- data_clean %>%
select(
hours,
gad_total,
swl_total,
spin_total
)
# Matriks korelasi
cor_matrix <- cor(correlation_data)
print(cor_matrix)
## hours gad_total swl_total spin_total
## hours 1.00000000 0.09256554 -0.1321346 0.06947151
## gad_total 0.09256554 1.00000000 -0.4031813 0.42658076
## swl_total -0.13213459 -0.40318135 1.0000000 -0.27897413
## spin_total 0.06947151 0.42658076 -0.2789741 1.00000000
corrplot(
cor_matrix,
method = "color",
type = "upper",
addCoef.col = "black",
tl.col = "black"
)
Hasil korelasi menunjukkan bahwa:
-Variabel hours memiliki korelasi positif sangat lemah terhadap gad_total (0,09) dan spin_total (0,07), sehingga durasi bermain game hanya memiliki hubungan kecil terhadap kecemasan umum maupun kecemasan sosial.
-Variabel hours memiliki korelasi negatif lemah terhadap swl_total (-0,13), yang menunjukkan bahwa semakin tinggi durasi bermain game, maka kepuasan hidup cenderung sedikit menurun.
-Konstruk gad_total memiliki korelasi positif sedang dengan spin_total (0,43), yang berarti semakin tinggi kecemasan umum maka kecemasan sosial juga cenderung meningkat.
-Konstruk gad_total memiliki korelasi negatif sedang dengan swl_total (-0,40), sehingga semakin tinggi kecemasan umum maka kepuasan hidup cenderung menurun.
-Konstruk swl_total dan spin_total memiliki korelasi negatif lemah hingga sedang (-0,28), yang menunjukkan bahwa peningkatan kecemasan sosial cenderung diikuti penurunan kepuasan hidup.
Secara keseluruhan, hasil korelasi menunjukkan adanya hubungan yang sesuai dengan teori antara kecemasan, kepuasan hidup, dan durasi bermain game.
#SEM OUTER MODEL
# DATA FINAL SEM
sem_data <- data_clean %>%
select(
# Variabel eksogen
hours,
# Moderator
gender_num,
# Konstruk GAD
gad1:gad7,
# Konstruk SWL
swl1:swl5,
# Konstruk SPIN
spin1:spin7
)
sem_data$hours_x_gender <- sem_data$hours * data_clean$gender_num
# CEK STRUKTUR DATA SEM
str(sem_data)
## 'data.frame': 13350 obs. of 22 variables:
## $ hours : num -0.482 -0.99 -1.57 -0.119 -0.119 ...
## $ gender_num : num 1 1 0 1 1 1 1 0 0 0 ...
## $ gad1 : int 0 1 0 0 2 0 0 0 2 2 ...
## $ gad2 : int 0 2 2 0 1 0 0 0 3 1 ...
## $ gad3 : int 0 2 2 0 2 0 0 0 2 2 ...
## $ gad4 : int 0 2 0 0 2 0 0 0 2 2 ...
## $ gad5 : int 1 0 0 0 2 0 0 0 0 2 ...
## $ gad6 : int 0 1 3 0 3 1 0 0 1 1 ...
## $ gad7 : int 0 0 1 0 2 0 0 0 2 0 ...
## $ swl1 : int 3 3 2 2 2 3 3 3 2 3 ...
## $ swl2 : int 5 5 6 5 2 5 4 6 3 3 ...
## $ swl3 : int 5 2 5 5 4 3 4 4 3 3 ...
## $ swl4 : int 5 5 2 3 5 3 3 3 3 2 ...
## $ swl5 : int 5 1 2 2 1 3 2 7 1 2 ...
## $ spin1 : num 1 2 1 2 2 1 1 0 1 1 ...
## $ spin2 : num 0 1 0 0 0 1 2 0 1 1 ...
## $ spin3 : num 0 1 1 0 0 2 2 0 4 1 ...
## $ spin4 : num 1 3 2 1 0 3 3 0 4 1 ...
## $ spin5 : num 0 2 3 3 1 2 1 0 4 3 ...
## $ spin6 : num 0 3 4 0 0 1 1 0 4 3 ...
## $ spin7 : num 1 1 2 0 0 0 1 0 4 0 ...
## $ hours_x_gender: num -0.482 -0.99 0 -0.119 -0.119 ...
summary(sem_data)
## hours gender_num gad1 gad2
## Min. :-1.570364 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:-0.699512 1st Qu.:1.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :-0.118944 Median :1.0000 Median :1.0000 Median :0.0000
## Mean :-0.002319 Mean :0.9467 Mean :0.8586 Mean :0.6713
## 3rd Qu.: 0.461624 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :10.040995 Max. :1.0000 Max. :3.0000 Max. :3.0000
## gad3 gad4 gad5 gad6
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.00
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00
## Median :1.0000 Median :0.0000 Median :0.0000 Median :1.00
## Mean :0.9645 Mean :0.7219 Mean :0.4861 Mean :0.91
## 3rd Qu.:2.0000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.00
## Max. :3.0000 Max. :3.0000 Max. :3.0000 Max. :3.00
## gad7 swl1 swl2 swl3
## Min. :0.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:0.000 1st Qu.:2.000 1st Qu.:3.000 1st Qu.:3.000
## Median :0.000 Median :4.000 Median :5.000 Median :5.000
## Mean :0.587 Mean :3.721 Mean :4.603 Mean :4.349
## 3rd Qu.:1.000 3rd Qu.:5.000 3rd Qu.:6.000 3rd Qu.:6.000
## Max. :3.000 Max. :7.000 Max. :7.000 Max. :7.000
## swl4 swl5 spin1 spin2
## Min. :1.000 Min. :1.000 Min. :0.0000 Min. :0.000
## 1st Qu.:2.000 1st Qu.:2.000 1st Qu.:0.0000 1st Qu.:0.000
## Median :4.000 Median :3.000 Median :1.0000 Median :1.000
## Mean :3.763 Mean :3.359 Mean :0.8586 Mean :1.209
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:1.0000 3rd Qu.:2.000
## Max. :7.000 Max. :7.000 Max. :4.0000 Max. :4.000
## spin3 spin4 spin5 spin6
## Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000
## 1st Qu.:0.000 1st Qu.:1.000 1st Qu.:0.000 1st Qu.:0.000
## Median :1.000 Median :2.000 Median :1.000 Median :1.000
## Mean :1.094 Mean :1.688 Mean :1.247 Mean :1.345
## 3rd Qu.:2.000 3rd Qu.:3.000 3rd Qu.:2.000 3rd Qu.:2.000
## Max. :4.000 Max. :4.000 Max. :4.000 Max. :4.000
## spin7 hours_x_gender
## Min. :0.000 Min. :-1.570364
## 1st Qu.:0.000 1st Qu.:-0.626941
## Median :1.000 Median :-0.118944
## Mean :1.051 Mean : 0.007193
## 3rd Qu.:2.000 3rd Qu.: 0.461624
## Max. :4.000 Max. : 9.315285
Berdasarkan hasil str(sem_data) dan summary(sem_data), dataset akhir SEM terdiri dari 13.350 observasi dan 22 variabel setelah dilakukan preprocessing, penghapusan outlier, dan encoding data.
Variabel hours telah melalui proses standardisasi sehingga memiliki rata-rata mendekati 0. Hal ini bertujuan untuk menyamakan skala data agar proses estimasi model SEM-PLS menjadi lebih stabil. Variabel gender_num telah berhasil dikonversi ke bentuk numerik dengan kode 1 untuk laki-laki dan 0 untuk perempuan. Nilai rata-rata sebesar 0,9467 menunjukkan bahwa mayoritas responden dalam dataset adalah laki-laki.
Indikator konstruk GAD, SWL, dan SPIN tetap berada pada rentang skala aslinya dan menunjukkan distribusi data yang cukup bervariasi. Nilai median pada sebagian besar indikator berada di tengah rentang skala, sehingga data dinilai cukup representatif dalam menggambarkan kondisi responden.
Variabel hours_x_gender merupakan variabel interaksi moderasi antara durasi bermain game dan gender. Variabel ini digunakan untuk menguji apakah gender memoderasi pengaruh durasi bermain game terhadap konstruk SPIN. Secara keseluruhan, data akhir telah siap digunakan untuk proses estimasi modelkarena seluruh variabel telah sesuai dengan kebutuhan analisis.
# MEMBUAT OUTER MODEL
measurement_model <- constructs(
composite(
"HOURS",
single_item("hours")
),
composite(
"GAD",
multi_items("gad", 1:7),
weights = mode_A
),
composite(
"SWL",
multi_items("swl", 1:5),
weights = mode_A
),
composite(
"SPIN",
multi_items("spin", 2:7),
weights = mode_A),
composite(
"GENDER",
single_item("gender_num")),
composite(
"MODERASI",
single_item("hours_x_gender"))
)
# MENAMPILKAN OUTER MODEL
measurement_model
## $composite
## [1] "HOURS" "hours" "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## $composite
## [1] "GAD" "gad1" "A" "GAD" "gad2" "A" "GAD" "gad3" "A" "GAD"
## [11] "gad4" "A" "GAD" "gad5" "A" "GAD" "gad6" "A" "GAD" "gad7"
## [21] "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## $composite
## [1] "SWL" "swl1" "A" "SWL" "swl2" "A" "SWL" "swl3" "A" "SWL"
## [11] "swl4" "A" "SWL" "swl5" "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## $composite
## [1] "SPIN" "spin2" "A" "SPIN" "spin3" "A" "SPIN" "spin4" "A"
## [10] "SPIN" "spin5" "A" "SPIN" "spin6" "A" "SPIN" "spin7" "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## $composite
## [1] "GENDER" "gender_num" "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## $composite
## [1] "MODERASI" "hours_x_gender" "A"
## attr(,"class")
## [1] "character" "construct" "composite"
##
## attr(,"class")
## [1] "list" "measurement_model" "seminr_model"
Berdasarkan hasil pembentukan outer model, penelitian ini memiliki enam konstruk, yaitu HOURS, GAD, SWL, SPIN, GENDER, dan MODERASI. Konstruk GAD, SWL, dan SPIN dibentuk menggunakan beberapa indikator (multi-items) dengan pendekatan Mode A yang menunjukkan bahwa indikator bersifat reflektif. Konstruk GAD diukur menggunakan indikator gad1 hingga gad7, konstruk SWL menggunakan indikator swl1 hingga swl5, sedangkan konstruk SPIN menggunakan indikator spin2 hingga spin7. Sementara itu, konstruk HOURS, GENDER, dan MODERASI menggunakan indikator tunggal (single item), yaitu masing-masing diukur oleh variabel hours, gender_num, dan hours_x_gender. Variabel MODERASI merupakan variabel interaksi antara durasi bermain game (hours) dan gender (gender_num) yang digunakan untuk menguji efek moderasi gender terhadap hubungan dalam model penelitian. Hasil menunjukkan bahwa seluruh konstruk berhasil didefinisikan dengan baik pada model pengukuran (measurement model) sehingga model siap digunakan pada tahap estimasi SEM-PLS selanjutnya.
# Membuat Structural Model
structural_model <- relationships(
# A. Jalur Mediasi Utama
paths(from = "HOURS", to = c("SPIN", "GAD", "SWL")),
paths(from = "SPIN", to = c("GAD", "SWL")),
# B. Jalur Kontrol/Direct Efek dari Moderator
paths(from = "GENDER", to = "SPIN"),
# C. Jalur Moderasi (Efek Interaksi)
paths(from = "MODERASI", to = "SPIN")
)
Kode di atas membuat 4 jalur model struktur utama dengan fungsi relationships() dan paths() sebagai arsitek yang menggambar jalur panah pengaruh antar variabel dalam program. Pembagian jalur tersebut dibagi menjadi tiga jenis jalur yang berbeda, yakni jalur mediasi utama, jalur direct effect, dan jalur interaksi atau moderasi. Masing-masing jalur menjelaskan alur alur interaksi variabel yang berbeda-beda. Jalur mediasi utama yang membuat panah hubungan durasi bermain game HOURS dengan kecemasan sosial (SPIN), kecemasan umum (GAD), dan kepuasan hidup (SWL). Selain itu jalur ini juga membuat panah hubungan kecemasan sosial (SPIN) dengan kecemasan umum (GAD), dan kepuasan hidup (SWL), jalur ini yang menjadi mediasi antara HOURS dan GAD & SWL lewat perantara SPIN. Jalur direct effect digunakan untuk menghitung pengaruh langsung GENDER pada variabel targetnya yakni SPIN, tujuannya adalah untuk melihat apakah jenis kelamin benar-benar mempengaruhi tingkatan kecemasan sosial. Jalur moderasi atau interaksi ini bertujuan untuk mengetahui bagaimana variabel interaksi (HOURS & GENDER) berpengaruh dalam kecemasan sosial (SPIN)
# ESTIMASI MODEL PLS
pls_model <- estimate_pls(
data = sem_data,
measurement_model = measurement_model,
structural_model = structural_model
)
## Generating the seminr model
## All 13350 observations are valid.
Model SEM-PLS berhasil diestimasi menggunakan data penelitian, measurement model, dan structural model yang telah dibentuk sebelumnya. Hasil output menunjukkan bahwa seluruh 13.350 observasi dinyatakan valid dan dapat digunakan dalam proses analisis tanpa adanya data yang gagal diproses oleh sistem. Dengan demikian, model siap digunakan untuk tahap evaluasi outer model dan inner model.
# EVALUASI OUTER MODEL
summary_pls <- summary(pls_model)
summary_pls
##
## Results from package seminr (2.4.2)
##
## Path Coefficients:
## SPIN GAD SWL
## R^2 0.026 0.186 0.094
## AdjR^2 0.026 0.185 0.094
## HOURS 0.061 0.057 -0.110
## SPIN . 0.423 -0.278
## GENDER -0.142 . .
## MODERASI 0.021 . .
##
## Reliability:
## alpha rhoA rhoC AVE
## HOURS 1.000 1.000 1.000 1.000
## SPIN 0.809 0.825 0.863 0.515
## GENDER 1.000 1.000 1.000 1.000
## MODERASI 1.000 1.000 1.000 1.000
## GAD 0.855 0.873 0.891 0.544
## SWL 0.865 0.873 0.903 0.652
##
## Alpha, rhoA, and rhoC should exceed 0.7 while AVE should exceed 0.5
# Cek Outer Loading
summary_pls$loadings
## HOURS SPIN GENDER MODERASI GAD SWL
## hours 1.000 0.000 0.000 0.000 0.000 -0.000
## gad1 0.000 0.000 -0.000 0.000 0.810 -0.000
## gad2 0.000 0.000 -0.000 0.000 0.846 -0.000
## gad3 0.000 0.000 -0.000 0.000 0.816 -0.000
## gad4 0.000 0.000 -0.000 0.000 0.763 -0.000
## gad5 0.000 0.000 -0.000 0.000 0.538 -0.000
## gad6 0.000 0.000 -0.000 0.000 0.591 -0.000
## gad7 0.000 0.000 -0.000 0.000 0.742 -0.000
## swl1 -0.000 -0.000 0.000 -0.000 -0.000 0.855
## swl2 -0.000 -0.000 0.000 -0.000 -0.000 0.765
## swl3 -0.000 -0.000 0.000 -0.000 -0.000 0.875
## swl4 -0.000 -0.000 -0.000 -0.000 -0.000 0.814
## swl5 -0.000 -0.000 0.000 -0.000 -0.000 0.718
## spin2 0.000 0.618 -0.000 0.000 0.000 -0.000
## spin3 0.000 0.768 -0.000 0.000 0.000 -0.000
## spin4 0.000 0.720 -0.000 0.000 0.000 -0.000
## spin5 0.000 0.706 -0.000 0.000 0.000 -0.000
## spin6 0.000 0.838 -0.000 0.000 0.000 -0.000
## spin7 0.000 0.635 -0.000 0.000 0.000 -0.000
## gender_num 0.000 -0.000 1.000 0.000 -0.000 0.000
## hours_x_gender 0.000 0.000 0.000 1.000 0.000 -0.000
Hasil outer loading menunjukkan bahwa sebagian besar indikator memiliki nilai loading di atas 0,70 sehingga mampu merepresentasikan konstruk laten dengan baik. Konstruk GAD memiliki loading berkisar antara 0,538–0,846, konstruk SWL berkisar antara 0,718–0,875, dan konstruk SPIN berkisar antara 0,618–0,838. Nilai loading tertinggi terdapat pada indikator swl3 sebesar 0,875 yang menunjukkan indikator tersebut paling kuat merepresentasikan konstruk SWL. Meskipun terdapat beberapa indikator dengan nilai loading di bawah 0,70 seperti gad5, gad6, spin2, dan spin7, indikator tersebut masih dapat dipertahankan karena nilai loading masih mendekati batas minimum yang diperbolehkan dan konstruk secara keseluruhan telah memenuhi syarat reliabilitas dan validitas.
# Cek Reliabilitas & AVE
summary_pls$reliability
## alpha rhoA rhoC AVE
## HOURS 1.000 1.000 1.000 1.000
## SPIN 0.809 0.825 0.863 0.515
## GENDER 1.000 1.000 1.000 1.000
## MODERASI 1.000 1.000 1.000 1.000
## GAD 0.855 0.873 0.891 0.544
## SWL 0.865 0.873 0.903 0.652
##
## Alpha, rhoA, and rhoC should exceed 0.7 while AVE should exceed 0.5
Hasil pengujian reliabilitas menunjukkan bahwa seluruh konstruk memiliki nilai Cronbach’s Alpha, rhoA, dan Composite Reliability (rhoC) di atas 0,70. Hal ini menandakan bahwa seluruh konstruk dalam model memiliki konsistensi internal yang baik dan reliabel untuk digunakan dalam penelitian. Selain itu, nilai Average Variance Extracted (AVE) pada seluruh konstruk juga berada di atas 0,50, yang menunjukkan bahwa konstruk mampu menjelaskan lebih dari 50% varians indikatornya. Dengan demikian, model telah memenuhi syarat validitas konvergen.
# Detail Reliabilitas
summary_pls$reliability[, "alpha"]
## HOURS SPIN GENDER MODERASI GAD SWL
## 1.0000000 0.8094345 1.0000000 1.0000000 0.8554829 0.8649336
summary_pls$reliability[, "rhoC"]
## HOURS SPIN GENDER MODERASI GAD SWL
## 1.0000000 0.8631665 1.0000000 1.0000000 0.8909894 0.9030760
summary_pls$reliability[, "AVE"]
## HOURS SPIN GENDER MODERASI GAD SWL
## 1.0000000 0.5152549 1.0000000 1.0000000 0.5442462 0.6519393
Nilai Cronbach’s Alpha menunjukkan bahwa konstruk SPIN memiliki reliabilitas sebesar 0,809, GAD sebesar 0,855, dan SWL sebesar 0,865. Seluruh nilai tersebut telah memenuhi batas minimum 0,70 sehingga konstruk dinyatakan reliabel. Nilai Composite Reliability (rhoC) pada konstruk SPIN sebesar 0,863, GAD sebesar 0,891, dan SWL sebesar 0,903 juga menunjukkan tingkat reliabilitas yang sangat baik. Sementara itu, nilai AVE masing-masing konstruk berada di atas 0,50, yaitu SPIN sebesar 0,515, GAD sebesar 0,544, dan SWL sebesar 0,652. Hal ini menunjukkan bahwa indikator mampu menjelaskan konstruk laten secara memadai.
# Validitas Diskriminan (Fornell-Larcker & HTMT)
summary_pls$validity$fl_criteria
## HOURS SPIN GENDER MODERASI GAD SWL
## HOURS 1.000 . . . . .
## SPIN 0.075 0.718 . . . .
## GENDER 0.042 -0.139 1.000 . . .
## MODERASI 0.969 0.080 0.002 1.000 . .
## GAD 0.089 0.427 -0.124 0.093 0.738 .
## SWL -0.131 -0.286 0.029 -0.132 -0.409 0.807
##
## FL Criteria table reports square root of AVE on the diagonal and construct correlations on the lower triangle.
summary_pls$validity$htmt
## HOURS SPIN GENDER MODERASI GAD SWL
## HOURS . . . . . .
## SPIN 0.082 . . . . .
## GENDER 0.042 0.153 . . . .
## MODERASI 0.969 0.087 0.002 . . .
## GAD 0.100 0.503 0.130 0.105 . .
## SWL 0.142 0.334 0.031 0.143 0.467 .
Berdasarkan kriteria Fornell-Larcker, nilai akar kuadrat AVE pada diagonal utama lebih besar dibandingkan korelasi antar konstruk lainnya. Hal ini menunjukkan bahwa masing-masing konstruk memiliki kemampuan diskriminasi yang baik dan dapat dibedakan satu sama lain. Pada pengujian HTMT, seluruh nilai berada di bawah batas umum 0,90 sehingga validitas diskriminan dinyatakan terpenuhi. Namun, hubungan antara konstruk HOURS dan MODERASI memiliki nilai HTMT yang sangat tinggi sebesar 0,969. Hal ini terjadi karena konstruk MODERASI merupakan variabel interaksi yang dibentuk langsung dari variabel HOURS dan GENDER, sehingga korelasinya secara alami menjadi sangat tinggi. Secara keseluruhan, model masih dapat diterima dan valid untuk digunakan pada analisis.
# EVALUASI INNER MODEL
# Nilai Paths Coefficients
summary_pls$paths
## SPIN GAD SWL
## R^2 0.026 0.186 0.094
## AdjR^2 0.026 0.185 0.094
## HOURS 0.061 0.057 -0.110
## SPIN . 0.423 -0.278
## GENDER -0.142 . .
## MODERASI 0.021 . .
Kode summary_pls$paths berkerja menunjukan hasil pls_model pada jalur-jalur pengaruh yang telah dibuat pada structural_model. Hasilnya pada variabel kecemasan sosial (SPIN), kecemasan umum (GAD), dan kepuasan hidup (SWL) masing-masing memiliki persentase variansi minim (< 20%) yang dapat dijelaskan oleh variabel HOURS, GENDER, dan moderasi. Sedangkan koefisien jalur yang menjelaskan kekuatan pengaruh ke variabel target (dependen) memiliki hasil untuk variabel kecemasan sosial SPIN variabel jenis kelamin (GENDER) memiliki nilai -0.142 yang berarti tar belakang gender responden memberikan kontribusi langsung yang nyata (meskipun skalanya kecil) terhadap variasi tinggi-rendahnya kecemasan sosial, selain itu dengan variabel durasi bermain HOURS menghasilkan nilai 0.061 yang berarti durasi bermain yang dihabiskan seseorang untuk bermain game tidak menjadi faktor utama atau penentu besar-kecilnya kecemasan sosial yang mereka alami di dunia nyata, lalu dengan variabel MODERASI nilai yang dihasilkan sangat minim dengan 0.021 yang mengartikan bahwa efek moderasinya hampir tidak ada. Secara umum, hal ini menunjukkan bahwa Gender tidak bertindak sebagai variabel moderator. Gender tidak memiliki kekuatan untuk memperkuat maupun memperlemah pengaruh durasi bermain game terhadap kecemasan sosial. Pada pengaruh variabel-variabel pada kecemasan umum (GAD) menghasilkan bukti bahwa kecemasan sosial (SPIN) memiliki hubungan yang kuat dengan nilai 0.423 yang berarti bahwa kecemasan sosial diikuti dengan kecemasan umum. Namun, hubungan GAD dengan variabel durasi bermain memiliki nilai yang relatif kecil yakni pada 0.057 yang berarti durasi bermain game tidak mempengaruhi kecemasan umum yang dirasakan oleh objek.
Variabel target terakhir adalah variabel kepuasan hidup (SWL), variabel kecemasan sosial (SPIN) memiliki hubungan negatif yang tinggi dengan variabel SWL ini, dimana nilai pengaruhnya sebesar -0.278 yang berarti semakin tinggi tingkat kecemasan sosial yang dirasakan oleh seorang gamer, maka tingkat kepuasan hidup mereka akan mengalami penurunan secara signifikan. Selain itu, hubungan kepuasan hidup dengan jam bermain (HOURS) menunjukan hubungan negatif yang moderat dengan nilai -0.110 yang berarti semakin tinggi durasi seseorang bermain game maka kepuasan hidupnya akan menurun, jika diimplementasikan pada dunia nyata hal ini dinilai logis karena waktu yang terlalu banyak di dalam game berpotensi mengurangi waktu produktif atau waktu interaksi sosial nyata lainnya yang membangun kepuasan hidup.
# Nilai Effect Size
# 1. HOURS ke SPIN
f2_hours <- fSquared(pls_model, iv = "HOURS", dv = "SPIN")
cat("Effect Size (f^2) HOURS ke SPIN:", f2_hours, "\n")
## Effect Size (f^2) HOURS ke SPIN: 0.0002204753
# 2. GENDER ke SPIN
f2_gender <- fSquared(pls_model, iv = "GENDER", dv = "SPIN")
cat("Effect Size (f^2) GENDER ke SPIN:", f2_gender, "\n")
## Effect Size (f^2) GENDER ke SPIN: 0.02013912
# 3. MODERASI ke SPIN
f2_moderasi <- fSquared(pls_model, iv = "MODERASI", dv = "SPIN")
cat("Effect Size (f^2) MODERASI ke SPIN:", f2_moderasi, "\n")
## Effect Size (f^2) MODERASI ke SPIN: 2.672199e-05
Bagian ini dilakukan untuk mengetahui seberapa besar dampak praktis yang diberikan oleh setiap variabel independen (eksogen) terhadap varians variabel dependen (endogen) di dalam model struktural. Hasil pada masing-masing variabel di atas yakni pada variabel HOURS dan SPIN atau kecemasan sosial menunjukan nilai yang kecil 0.0002204753 yang berarti durasi bermain tidak memiliki pengaruh pada kecemasan sosial (menambahkan variabel HOURS pada model di masa depan tidak akan mempengaruhi nilai SPIN). Selanjutnya adalah ukuran pengaruh variabel GENDER pada SPIN yang menghasilkan nilai sebesar 0.02013912 yang berarti jenis kelamin memiliki pengaruh yang minim (kecil) pada kecemasan sosial yang dirasakan. Variabel yang terakhir adalah variabel MODERASI yang menunjukan nilai sangat kecil, dimana variabel tersebut tidak memiliki efek pengaruh apapun pada kecemasan sosial.
Secara teori efek interaksi antara durasi bermain game dan jenis kelamin sama sekali tidak memiliki daya dukung atau kekuatan prediktif terhadap kecemasan sosial. Hal ini menegaskan bahwa peran jenis kelamin sebagai variabel moderator ditolak, jenis kelamin tidak memperkuat ataupun memperlemah bagaimana durasi bermain game memengaruhi tingkat kecemasan sosial responden.
# Nilai VAF (Variance Accounted For)
paths <- summary(pls_model)$paths
# 1. GAD
target_gad <- "GAD"
gad_direct_effect <- paths["HOURS", target_gad]
gad_indirect_effect <- paths["HOURS", "SPIN"] * paths["SPIN", target_gad]
gad_total_effect <- gad_direct_effect + gad_indirect_effect
gad_vaf_skor <- gad_indirect_effect / gad_total_effect
Nilai VAF atau Variance Accounted For adalah nilai yang menunjukan bagaimana SPIN mampu bertindak sebagai mediator yang menghubungkan HOURS pada variabel dependen yang dianalisis. Hasilnya pada variabel kecemasan umum atau GAD nilai VAF yang dihasilkan total 0.08278 yang jika dibagi dengan indirect effect menghasilkan nilai sebesar 31.7% yang berarti variabel SPIN memiliki peran sebagai Partial Mediation (Mediasi Sebagian). Hal ini menandakan durasi bermain game memicu kecemasan sosial yang membantu kecemasan umum, namun efek yang lebih besar akan terasa jika variabel HOURS langsung berhubungan dengan variabel GAD dimana hal ini menunjukan bahwa durasi bermain game yang berlebihan juga mampu memicu kecemasan umum secara langsung tanpa harus membuat individu mengalami kecemasan sosial terlebih dahulu, yang kemungkinan diakibatkan oleh faktor-faktor lain. Lalu untuk variabel SWL atau kepuasan hidup memiliki nilai VAF total sebesar -0.12734 (< 20%) yang berarti variabel SPIN tidak memiliki efek mediasi pada kepuasan hidup dengan durasi bermain game dan jenis kelamin. Meskipun durasi bermain game yang berlebihan terbukti menurunkan kepuasan hidup seseorang secara langsung (sebesar -0.11043), alur penurunan tersebut tidak ditentukan atau dilewati oleh kondisi kecemasan sosial mereka dan berkemungkinan dihasilkan dari efek secara langsung.
# -- Hasil
cat("1. Direct Effect (GAD):", gad_direct_effect, "\n")
## 1. Direct Effect (GAD): 0.05705654
cat("2. Indirect Effect (GAD):", gad_indirect_effect, "\n")
## 2. Indirect Effect (GAD): 0.02572127
cat("3. Total Effect (GAD):", gad_total_effect, "\n")
## 3. Total Effect (GAD): 0.08277781
if (gad_vaf_skor > 0.80) {
cat("Kesimpulan GAD: FULL MEDIATION (Mediasi Sempurna)\n")
} else if (gad_vaf_skor >= 0.20 && gad_vaf_skor <= 0.80) {
cat("Kesimpulan GAD: PARTIAL MEDIATION (Mediasi Sebagian)\n")
} else {
cat("Kesimpulan GAD: NO MEDIATION (Tidak Ada Efek Mediasi)\n")
}
## Kesimpulan GAD: PARTIAL MEDIATION (Mediasi Sebagian)
# 2. SWL
target_swl <- "SWL"
swl_direct_effect <- paths["HOURS", target_swl]
swl_indirect_effect <- paths["HOURS", "SPIN"] * paths["SPIN", target_swl]
swl_total_effect <- swl_direct_effect + swl_indirect_effect
swl_vaf_skor <- swl_indirect_effect / swl_total_effect
# -- Hasil
cat("1. Direct Effect (SWL):", swl_direct_effect, "\n")
## 1. Direct Effect (SWL): -0.1104278
cat("2. Indirect Effect (SWL):", swl_indirect_effect, "\n")
## 2. Indirect Effect (SWL): -0.01690961
cat("3. Total Effect (SWL):", swl_total_effect, "\n")
## 3. Total Effect (SWL): -0.1273374
if (swl_vaf_skor > 0.80) {
cat("Kesimpulan SWL: FULL MEDIATION (Mediasi Sempurna)\n")
} else if (swl_vaf_skor >= 0.20 && swl_vaf_skor <= 0.80) {
cat("Kesimpulan SWL: PARTIAL MEDIATION (Mediasi Sebagian)\n")
} else {
cat("Kesimpulan SWL: NO MEDIATION (Tidak Ada Efek Mediasi)\n")
}
## Kesimpulan SWL: NO MEDIATION (Tidak Ada Efek Mediasi)
# Bootstrapping
boot_model <- bootstrap_model(seminr_model = pls_model, nboot = 500, cores =1)
## Bootstrapping model using seminr...
## SEMinR Model successfully bootstrapped
summary_boot <- summary(boot_model)
summary_boot$bootstrapped_paths
## Original Est. Bootstrap Mean Bootstrap SD T Stat. 2.5% CI
## HOURS -> SPIN 0.061 0.059 0.052 1.167 -0.044
## HOURS -> GAD 0.057 0.057 0.009 6.266 0.039
## HOURS -> SWL -0.110 -0.111 0.009 -11.813 -0.130
## SPIN -> GAD 0.423 0.423 0.008 49.988 0.406
## SPIN -> SWL -0.278 -0.278 0.008 -33.161 -0.295
## GENDER -> SPIN -0.142 -0.142 0.011 -13.228 -0.162
## MODERASI -> SPIN 0.021 0.022 0.051 0.407 -0.077
## 97.5% CI Bootstrap P Val
## HOURS -> SPIN 0.154 0.256
## HOURS -> GAD 0.074 0.000
## HOURS -> SWL -0.093 0.000
## SPIN -> GAD 0.438 0.000
## SPIN -> SWL -0.261 0.000
## GENDER -> SPIN -0.121 0.000
## MODERASI -> SPIN 0.121 0.672
HOURS -> SPIN, memiliki nilai p-value sebesar 0.232, menunjukkan bahwa durasi bermain game tidak berpengaruh secara signifikan terhadap problematic gaming (kecanduan bermain game) HOURS -> GAD, memiliki nilai p-value sebesar 0.000, menunjukkan bahwa semakin lama bermain game maka dapat meningkatkan tingkat kecemasan. HOURS -> SWL, emmiliki nilai p-value sebesar 0.000, yang menunjukkan bahwa semakin lama durasi dalam bermain game dapat menyebabkan kepuasan hidup yang menurun. SPIN -> GAD, memiliki nilai p-value sebesar 0.000, yang menunjukkan bahwa semakin tinggi problematic gaming maka semakin meningkat tingkat kecemasannya. SPIN -> SWL, memiliki nilai p-value sebesar 0.000, yang menunjukkan bahwa problematic gaming dapat menurunkan kepuasan hidup secara signifikan. GENDER -> SPIN, memiliki nilai p-value sebesar 0.000 yang menunjukkan bahwa variabel gender memiliki pengaruh snagat signifikan terhadap problematic gaming. Hasil ini menunjukkan bahwa responden laki-laki memiliki tingkat spin yang lebih rendah dibandingkan dengan responden perempuan.
Variabel moderasi tidak memiliki pengaruh signifikan terhadap problematic gaming. Nilai p-value Moderasi -> SPIN menunjukkan angka sebesar 0.732 (tidak signifikan), maka tidak ditemukan bukti bahwa variabel moderasi mampu memperkuat atau memperlemah hubungan antara durasi bermain game dan problematic gaming
Hasil dari Bootstrapping menunjukkan bahwa durasi bermain game tidak memiliki pengaruh yang signifikan terhadap problematic gaming (SPIN), namun memiliki pengaruh yang signifikan terhadap peningkatan kecemasan (GAD) dan penurunan kepuasan hidup (SWL). Selain itu, problematic gaming memiliki pengaruh positif yang kuat terhadap kecemasan dan pengaruh negatif terhadap kepuasan hidup. Variabel Gender menunjukkan pengaruh yang signifikan terhadap provlematic gaming, sementara itu variabel moderasi tidak terbukti signifikan dalam memengaruhi hubungan antara durasi bermain game dan problematic gaming.
Hasil analisis bootstrapping pada model SEM-PLS menunjukkan bahwa struktur hubungan antar variabel dalam penelitian ini tidak seluruhnya signifikan. Secara umum, durasi bermain game (HOURS) tidak memiliki pengaruh signifikan terhadap problematic gaming (SPIN), hal ini menunjukkan bahwa lamanya waktu bermain tidak secara langsung meningkatkan tingkat kecanduan game pada responden. Namun, durasi bermain game berpengaruh secara signifikan terhadap kondisi psikologis khususnya pada peningkatan tingkat kecemasan (GAD) dan penurunan kepuasan hidup (SWL) Variabel problematic gaming (SPIN) memiliki pengaruh yang kuat dan signifikan terhadap variabel psikologis lainnya. SPIN berpengaruh positif terhadap tingkat kecemasan (GAD). Semakin tinggi tingkat problematic gaming maka semakin tinggi pula tingkat kecemasan Individu. Selain itu, SPIN juga berpengaruh negatif terhadap kepuasan hidup (SWL), menunjukkan bahwa problematic gaming dapat menurunkan tingkat kepuasan hidup secara signifikan. Variabel gender juga ditemukan memiliki pengaruh signifikan terhadap problematic gaming, dimana terdapat perbedaan tingkat problematic gaming berdasarkan gender dimana responden laki-laki memiliki tingkat SPIN yang lebih rendah dibandingkan dengan responden perempuan. Namun, variabel moderasi tidak terbukti secara signfiikan memengaruhi hubungan antara durasi bermain game dan problematic gaming. Hal ini menunjukkan bahwa efek durasi bermain game terhadap problematic gaming tidak dipengaruhi oleh variabel moderasi yang diuji dalam penelitian. Secara keseluruhan, hasil penelitian menunjukkan bahwa kondisi psikologis individu lebih dipengaruhi oleh tingkat problematic gaming dibandingkan oleh durasi bermain game itu sendiri.