This project analyzes the relationship between generative AI usage, academic performance, learning behavior, and student well-being.
Dataset berisi informasi mahasiswa yang mencakup profil akademik, penggunaan AI generatif, kebiasaan belajar, kebijakan institusi, dan indikator kesejahteraan.Tahap ini dilakukan untuk memahami struktur dataset,tipe data, kelengkapan data, dan kondisi awal data.
# Memanggil package yang digunakan
library(readxl)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(psych)
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
library(corrplot)
## corrplot 0.95 loaded
library(skimr)
## Warning: package 'skimr' was built under R version 4.5.3
library(naniar)
## Warning: package 'naniar' was built under R version 4.5.3
##
## Attaching package: 'naniar'
## The following object is masked from 'package:skimr':
##
## n_complete
# Import dataset
data <- read_excel("Ai_student_impact_dataset .xlsx")
# Melihat dimensi dataset
dim(data)
## [1] 50000 16
# Melihat nama variabel
names(data)
## [1] "Student_ID" "Major_Category"
## [3] "Year_of_Study" "Pre_Semester_GPA"
## [5] "Weekly_GenAI_Hours" "Primary_Use_Case"
## [7] "Prompt_Engineering_Skill" "Tool_Diversity"
## [9] "Paid_Subscription" "Traditional_Study_Hours"
## [11] "Perceived_AI_Dependency" "Institutional_Policy"
## [13] "Anxiety_Level_During_Exams" "Post_Semester_GPA"
## [15] "Skill_Retention_Score" "Burnout_Risk_Level"
# Melihat struktur data
str(data)
## tibble [50,000 × 16] (S3: tbl_df/tbl/data.frame)
## $ Student_ID : num [1:50000] 1e+05 1e+05 1e+05 1e+05 1e+05 ...
## $ Major_Category : chr [1:50000] "Humanities" "Medical" "Business" "Business" ...
## $ Year_of_Study : chr [1:50000] "Senior" "Junior" "Freshman" "Senior" ...
## $ Pre_Semester_GPA : num [1:50000] 2.42 3.82 3.4 3.79 3.63 ...
## $ Weekly_GenAI_Hours : num [1:50000] 23.31 1.12 21.26 1.82 9.29 ...
## $ Primary_Use_Case : chr [1:50000] "Copywriting/Drafting" "Ideation" "Summarizing_Reading" "Copywriting/Drafting" ...
## $ Prompt_Engineering_Skill : chr [1:50000] "Beginner" "Advanced" "Beginner" "Intermediate" ...
## $ Tool_Diversity : num [1:50000] 1 5 2 4 4 1 5 3 2 2 ...
## $ Paid_Subscription : logi [1:50000] TRUE FALSE FALSE FALSE FALSE FALSE ...
## $ Traditional_Study_Hours : num [1:50000] 8.13 16.65 10.35 15.23 12.55 ...
## $ Perceived_AI_Dependency : num [1:50000] 5 3 5 2 4 4 8 2 1 3 ...
## $ Institutional_Policy : chr [1:50000] "Allowed_With_Citation" "Allowed_With_Citation" "Strict_Ban" "Allowed_With_Citation" ...
## $ Anxiety_Level_During_Exams: num [1:50000] 6 9 9 2 4 5 7 1 5 8 ...
## $ Post_Semester_GPA : num [1:50000] 2.39 3.7 3.5 4 3.8 ...
## $ Skill_Retention_Score : num [1:50000] 86.4 69.4 73.9 63.6 100 ...
## $ Burnout_Risk_Level : chr [1:50000] "High" "Low" "Medium" "Medium" ...
# Statistik deskriptif awal
summary(data)
## Student_ID Major_Category Year_of_Study Pre_Semester_GPA
## Min. :100001 Length:50000 Length:50000 Min. : 1.183
## 1st Qu.:112501 Class :character Class :character 1st Qu.: 2.834
## Median :125001 Mode :character Mode :character Median : 3.210
## Mean :125001 Mean : 3.146
## 3rd Qu.:137500 3rd Qu.: 3.521
## Max. :150000 Max. :12.249
##
## Weekly_GenAI_Hours Primary_Use_Case Prompt_Engineering_Skill
## Min. : 0.000 Length:50000 Length:50000
## 1st Qu.: 2.390 Class :character Class :character
## Median : 5.800 Mode :character Mode :character
## Mean : 8.428
## 3rd Qu.:11.720
## Max. :40.000
##
## Tool_Diversity Paid_Subscription Traditional_Study_Hours
## Min. : 1.000 Mode :logical Min. : 1.00
## 1st Qu.: 2.000 FALSE:28846 1st Qu.: 7.56
## Median : 3.000 TRUE :21154 Median :11.18
## Mean : 2.801 Mean :11.21
## 3rd Qu.: 4.000 3rd Qu.:14.71
## Max. :18.000 Max. :35.86
##
## Perceived_AI_Dependency Institutional_Policy Anxiety_Level_During_Exams
## Min. : 1.000 Length:50000 Min. : 1.000
## 1st Qu.: 2.000 Class :character 1st Qu.: 3.000
## Median : 3.000 Mode :character Median : 4.000
## Mean : 3.505 Mean : 4.271
## 3rd Qu.: 5.000 3rd Qu.: 6.000
## Max. :10.000 Max. :10.000
##
## Post_Semester_GPA Skill_Retention_Score Burnout_Risk_Level
## Min. : 1.000 Min. : 10.78 Length:50000
## 1st Qu.: 3.023 1st Qu.: 66.82 Class :character
## Median : 3.421 Median : 76.00 Mode :character
## Mean : 3.349 Mean : 75.80
## 3rd Qu.: 3.749 3rd Qu.: 85.19
## Max. :10.389 Max. :100.00
## NA's :1
# Profiling dataset
skim(data)
| Name | data |
| Number of rows | 50000 |
| Number of columns | 16 |
| _______________________ | |
| Column type frequency: | |
| character | 6 |
| logical | 1 |
| numeric | 9 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| Major_Category | 0 | 1 | 4 | 10 | 0 | 5 | 0 |
| Year_of_Study | 0 | 1 | 3 | 9 | 0 | 6 | 0 |
| Primary_Use_Case | 1 | 1 | 8 | 25 | 0 | 5 | 0 |
| Prompt_Engineering_Skill | 0 | 1 | 8 | 12 | 0 | 3 | 0 |
| Institutional_Policy | 0 | 1 | 10 | 21 | 0 | 3 | 0 |
| Burnout_Risk_Level | 0 | 1 | 3 | 6 | 0 | 3 | 0 |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| Paid_Subscription | 0 | 1 | 0.42 | FAL: 28846, TRU: 21154 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| Student_ID | 0 | 1 | 125000.50 | 14433.90 | 100001.00 | 112500.75 | 125000.50 | 137500.25 | 150000.00 | ▇▇▇▇▇ |
| Pre_Semester_GPA | 0 | 1 | 3.15 | 0.48 | 1.18 | 2.83 | 3.21 | 3.52 | 12.25 | ▇▅▁▁▁ |
| Weekly_GenAI_Hours | 0 | 1 | 8.43 | 8.27 | 0.00 | 2.39 | 5.80 | 11.72 | 40.00 | ▇▃▁▁▁ |
| Tool_Diversity | 0 | 1 | 2.80 | 1.19 | 1.00 | 2.00 | 3.00 | 4.00 | 18.00 | ▇▁▁▁▁ |
| Traditional_Study_Hours | 0 | 1 | 11.21 | 5.16 | 1.00 | 7.56 | 11.18 | 14.71 | 35.86 | ▅▇▃▁▁ |
| Perceived_AI_Dependency | 0 | 1 | 3.51 | 1.82 | 1.00 | 2.00 | 3.00 | 5.00 | 10.00 | ▆▇▅▁▁ |
| Anxiety_Level_During_Exams | 0 | 1 | 4.27 | 2.14 | 1.00 | 3.00 | 4.00 | 6.00 | 10.00 | ▆▇▇▃▁ |
| Post_Semester_GPA | 1 | 1 | 3.35 | 0.50 | 1.00 | 3.02 | 3.42 | 3.75 | 10.39 | ▂▇▁▁▁ |
| Skill_Retention_Score | 0 | 1 | 75.80 | 13.28 | 10.78 | 66.82 | 76.00 | 85.19 | 100.00 | ▁▁▃▇▆ |
# Mengecek missing value
colSums(is.na(data))
## Student_ID Major_Category
## 0 0
## Year_of_Study Pre_Semester_GPA
## 0 0
## Weekly_GenAI_Hours Primary_Use_Case
## 0 1
## Prompt_Engineering_Skill Tool_Diversity
## 0 0
## Paid_Subscription Traditional_Study_Hours
## 0 0
## Perceived_AI_Dependency Institutional_Policy
## 0 0
## Anxiety_Level_During_Exams Post_Semester_GPA
## 0 1
## Skill_Retention_Score Burnout_Risk_Level
## 0 0
# Mengecek data duplikat
sum(duplicated(data))
## [1] 0
Tahap ini dilakukan untuk memastikan data sesuai dengan rentang, kategori, dan tipe data yang seharusnya sebelum digunakan dalam analisis. ## ———————————————————— ## 3.1 Validasi Missing Value ## ————————————————————
# Mengecek kembali missing value
colSums(is.na(data))
## Student_ID Major_Category
## 0 0
## Year_of_Study Pre_Semester_GPA
## 0 0
## Weekly_GenAI_Hours Primary_Use_Case
## 0 1
## Prompt_Engineering_Skill Tool_Diversity
## 0 0
## Paid_Subscription Traditional_Study_Hours
## 0 0
## Perceived_AI_Dependency Institutional_Policy
## 0 0
## Anxiety_Level_During_Exams Post_Semester_GPA
## 0 1
## Skill_Retention_Score Burnout_Risk_Level
## 0 0
# Melihat baris yang memiliki missing value
data[!complete.cases(data), ]
## # A tibble: 2 × 16
## Student_ID Major_Category Year_of_Study Pre_Semester_GPA Weekly_GenAI_Hours
## <dbl> <chr> <chr> <dbl> <dbl>
## 1 100465 Medical Junior 2.39 7.65
## 2 145825 Business Junior 3.59 1.98
## # ℹ 11 more variables: Primary_Use_Case <chr>, Prompt_Engineering_Skill <chr>,
## # Tool_Diversity <dbl>, Paid_Subscription <lgl>,
## # Traditional_Study_Hours <dbl>, Perceived_AI_Dependency <dbl>,
## # Institutional_Policy <chr>, Anxiety_Level_During_Exams <dbl>,
## # Post_Semester_GPA <dbl>, Skill_Retention_Score <dbl>,
## # Burnout_Risk_Level <chr>
# Menghapus baris dengan missing value
data_clean <- data %>%
filter(complete.cases(.))
# Mengecek kembali missing value
colSums(is.na(data_clean))
## Student_ID Major_Category
## 0 0
## Year_of_Study Pre_Semester_GPA
## 0 0
## Weekly_GenAI_Hours Primary_Use_Case
## 0 0
## Prompt_Engineering_Skill Tool_Diversity
## 0 0
## Paid_Subscription Traditional_Study_Hours
## 0 0
## Perceived_AI_Dependency Institutional_Policy
## 0 0
## Anxiety_Level_During_Exams Post_Semester_GPA
## 0 0
## Skill_Retention_Score Burnout_Risk_Level
## 0 0
Ditemukan 2 missing value, yaitu 1 pada Primary_Use_Case dan 1 pada Post_Semester_GPA. Kedua baris dihapus karena jumlahnya sangat kecil dibandingkan keseluruhan dataset. Setelah pembersihan, tidak terdapat missing value.
# Melihat kategori Year_of_Study
unique(data_clean$Year_of_Study)
## [1] "Senior" "Junior" "Freshman" "Sophomore" "Graduate" "123"
# Melihat jumlah setiap kategori
table(data_clean$Year_of_Study)
##
## 123 Freshman Graduate Junior Senior Sophomore
## 1 11030 7430 11043 10634 9860
# Menghapus kategori Year_of_Study yang tidak valid
data_clean <- data_clean %>%
filter(
Year_of_Study %in%
c("Freshman", "Sophomore", "Junior", "Senior", "Graduate")
)
# Mengecek kembali kategori
table(data_clean$Year_of_Study)
##
## Freshman Graduate Junior Senior Sophomore
## 11030 7430 11043 10634 9860
Ditemukan 1 nilai Year_of_Study yang tidak valid, yaitu “123”. Nilai tersebut dihapus dari dataset.
# Mengecek Pre-Semester GPA di luar rentang valid
data_clean %>%
filter(
Pre_Semester_GPA < 1.18 |
Pre_Semester_GPA > 4
)
## # A tibble: 1 × 16
## Student_ID Major_Category Year_of_Study Pre_Semester_GPA Weekly_GenAI_Hours
## <dbl> <chr> <chr> <dbl> <dbl>
## 1 145219 Humanities Graduate 12.2 14.5
## # ℹ 11 more variables: Primary_Use_Case <chr>, Prompt_Engineering_Skill <chr>,
## # Tool_Diversity <dbl>, Paid_Subscription <lgl>,
## # Traditional_Study_Hours <dbl>, Perceived_AI_Dependency <dbl>,
## # Institutional_Policy <chr>, Anxiety_Level_During_Exams <dbl>,
## # Post_Semester_GPA <dbl>, Skill_Retention_Score <dbl>,
## # Burnout_Risk_Level <chr>
# Mengecek Post-Semester GPA di luar rentang valid
data_clean %>%
filter(
Post_Semester_GPA < 1 |
Post_Semester_GPA > 4
)
## # A tibble: 1 × 16
## Student_ID Major_Category Year_of_Study Pre_Semester_GPA Weekly_GenAI_Hours
## <dbl> <chr> <chr> <dbl> <dbl>
## 1 100089 Medical Graduate 3.37 6.51
## # ℹ 11 more variables: Primary_Use_Case <chr>, Prompt_Engineering_Skill <chr>,
## # Tool_Diversity <dbl>, Paid_Subscription <lgl>,
## # Traditional_Study_Hours <dbl>, Perceived_AI_Dependency <dbl>,
## # Institutional_Policy <chr>, Anxiety_Level_During_Exams <dbl>,
## # Post_Semester_GPA <dbl>, Skill_Retention_Score <dbl>,
## # Burnout_Risk_Level <chr>
# Menghapus nilai GPA yang tidak valid
data_clean <- data_clean %>%
filter(
Pre_Semester_GPA >= 1.18,
Pre_Semester_GPA <= 4,
Post_Semester_GPA >= 1,
Post_Semester_GPA <= 4
)
Ditemukan 1 nilai Pre-Semester GPA dan 1 nilai Post-Semester GPA di luar rentang yang ditentukan. Kedua data tersebut dihapus.
# Menghapus nilai GPA yang tidak valid
data_clean <- data_clean %>%
filter(
Pre_Semester_GPA >= 1.18,
Pre_Semester_GPA <= 4,
Post_Semester_GPA >= 1,
Post_Semester_GPA <= 4
)
# Mengecek kembali nilai maksimum GPA
max(data_clean$Pre_Semester_GPA)
## [1] 3.998
max(data_clean$Post_Semester_GPA)
## [1] 4
# Mengecek ukuran dataset
dim(data_clean)
## [1] 49995 16
# Mengecek nilai Tool_Diversity di luar rentang valid
data_clean %>%
filter(
Tool_Diversity < 1 |
Tool_Diversity > 5
)
## # A tibble: 1 × 16
## Student_ID Major_Category Year_of_Study Pre_Semester_GPA Weekly_GenAI_Hours
## <dbl> <chr> <chr> <dbl> <dbl>
## 1 100297 Arts Junior 3.39 10.7
## # ℹ 11 more variables: Primary_Use_Case <chr>, Prompt_Engineering_Skill <chr>,
## # Tool_Diversity <dbl>, Paid_Subscription <lgl>,
## # Traditional_Study_Hours <dbl>, Perceived_AI_Dependency <dbl>,
## # Institutional_Policy <chr>, Anxiety_Level_During_Exams <dbl>,
## # Post_Semester_GPA <dbl>, Skill_Retention_Score <dbl>,
## # Burnout_Risk_Level <chr>
# Menghapus nilai Tool_Diversity yang tidak valid
data_clean <- data_clean %>%
filter(
Tool_Diversity >= 1,
Tool_Diversity <= 5
)
Ditemukan 1 nilai Tool_Diversity di luar rentang 1–5. Nilai tersebut dihapus dari dataset.
summary(data_clean %>%
select(
Weekly_GenAI_Hours,
Traditional_Study_Hours,
Perceived_AI_Dependency,
Anxiety_Level_During_Exams,
Skill_Retention_Score
))
## Weekly_GenAI_Hours Traditional_Study_Hours Perceived_AI_Dependency
## Min. : 0.000 Min. : 1.00 Min. : 1.000
## 1st Qu.: 2.390 1st Qu.: 7.56 1st Qu.: 2.000
## Median : 5.800 Median :11.18 Median : 3.000
## Mean : 8.427 Mean :11.21 Mean : 3.505
## 3rd Qu.:11.720 3rd Qu.:14.71 3rd Qu.: 5.000
## Max. :40.000 Max. :35.86 Max. :10.000
## Anxiety_Level_During_Exams Skill_Retention_Score
## Min. : 1.000 Min. : 10.78
## 1st Qu.: 3.000 1st Qu.: 66.82
## Median : 4.000 Median : 76.00
## Mean : 4.271 Mean : 75.80
## 3rd Qu.: 6.000 3rd Qu.: 85.19
## Max. :10.000 Max. :100.00
Seluruh variabel numerik berada dalam rentang yang ditentukan. Tidak ditemukan nilai yang perlu dihapus.
table(data_clean$Major_Category)
##
## Arts Business Humanities Medical STEM
## 5932 12536 9993 6474 15059
table(data_clean$Primary_Use_Case)
##
## Copywriting/Drafting Debugging/Troubleshooting Direct_Answer_Generation
## 12011 12295 6339
## Ideation Summarizing_Reading
## 10719 8630
table(data_clean$Prompt_Engineering_Skill)
##
## Advanced Beginner Intermediate
## 13807 18491 17696
table(data_clean$Institutional_Policy)
##
## Actively_Encouraged Allowed_With_Citation Strict_Ban
## 14985 25222 9787
table(data_clean$Burnout_Risk_Level)
##
## High Low Medium
## 12484 16369 21141
Seluruh kategori pada variabel kategorik sesuai dengan kategori yang ditentukan dan tidak ditemukan nilai tidak valid.
data_clean$Student_ID <- as.character(data_clean$Student_ID)
data_clean$Major_Category <- as.factor(data_clean$Major_Category)
data_clean$Year_of_Study <- as.factor(data_clean$Year_of_Study)
data_clean$Primary_Use_Case <- as.factor(data_clean$Primary_Use_Case)
data_clean$Prompt_Engineering_Skill <- as.factor(data_clean$Prompt_Engineering_Skill)
data_clean$Paid_Subscription <- as.factor(data_clean$Paid_Subscription)
data_clean$Institutional_Policy <- as.factor(data_clean$Institutional_Policy)
data_clean$Burnout_Risk_Level <- as.factor(data_clean$Burnout_Risk_Level)
# Mengecek kembali struktur data
str(data_clean)
## tibble [49,994 × 16] (S3: tbl_df/tbl/data.frame)
## $ Student_ID : chr [1:49994] "100001" "100002" "100003" "100004" ...
## $ Major_Category : Factor w/ 5 levels "Arts","Business",..: 3 4 2 2 5 5 5 1 2 2 ...
## $ Year_of_Study : Factor w/ 5 levels "Freshman","Graduate",..: 4 3 1 4 5 3 1 3 5 5 ...
## $ Pre_Semester_GPA : num [1:49994] 2.42 3.82 3.4 3.79 3.63 ...
## $ Weekly_GenAI_Hours : num [1:49994] 23.31 1.12 21.26 1.82 9.29 ...
## $ Primary_Use_Case : Factor w/ 5 levels "Copywriting/Drafting",..: 1 4 5 1 2 2 5 1 2 2 ...
## $ Prompt_Engineering_Skill : Factor w/ 3 levels "Advanced","Beginner",..: 2 1 2 3 1 2 1 3 2 3 ...
## $ Tool_Diversity : num [1:49994] 1 5 2 4 4 1 5 3 2 2 ...
## $ Paid_Subscription : Factor w/ 2 levels "FALSE","TRUE": 2 1 1 1 1 1 2 1 2 2 ...
## $ Traditional_Study_Hours : num [1:49994] 8.13 16.65 10.35 15.23 12.55 ...
## $ Perceived_AI_Dependency : num [1:49994] 5 3 5 2 4 4 8 2 1 3 ...
## $ Institutional_Policy : Factor w/ 3 levels "Actively_Encouraged",..: 2 2 3 2 2 2 2 1 3 3 ...
## $ Anxiety_Level_During_Exams: num [1:49994] 6 9 9 2 4 5 7 1 5 8 ...
## $ Post_Semester_GPA : num [1:49994] 2.39 3.7 3.5 4 3.8 ...
## $ Skill_Retention_Score : num [1:49994] 86.4 69.4 73.9 63.6 100 ...
## $ Burnout_Risk_Level : Factor w/ 3 levels "High","Low","Medium": 1 2 3 3 3 1 3 3 3 1 ...
Tipe data telah disesuaikan untuk kebutuhan analisis. Dataset bersih terdiri dari 49.996 observasi dan 16 variabel.
# Mengecek missing value
colSums(is.na(data_clean))
## Student_ID Major_Category
## 0 0
## Year_of_Study Pre_Semester_GPA
## 0 0
## Weekly_GenAI_Hours Primary_Use_Case
## 0 0
## Prompt_Engineering_Skill Tool_Diversity
## 0 0
## Paid_Subscription Traditional_Study_Hours
## 0 0
## Perceived_AI_Dependency Institutional_Policy
## 0 0
## Anxiety_Level_During_Exams Post_Semester_GPA
## 0 0
## Skill_Retention_Score Burnout_Risk_Level
## 0 0
# Mengecek duplikat
sum(duplicated(data_clean))
## [1] 0
# Melihat ukuran dataset
dim(data_clean)
## [1] 49994 16
Dataset telah melalui proses validasi dan pembersihan. Tidak terdapat missing value maupun data duplikat. Dataset siap digunakan untuk tahap analisis berikutnya.
EDA dilakukan untuk melihat pola, distribusi, dan hubungan antarvariabel yang berkaitan dengan penggunaan AI, performa akademik, serta kesejahteraan mahasiswa.
library(tidyr)
gpa_long <- data_clean %>%
select(Pre_Semester_GPA, Post_Semester_GPA) %>%
pivot_longer(
cols = everything(),
names_to = "Semester",
values_to = "GPA"
)
ggplot(gpa_long, aes(x = Semester, y = GPA)) +
geom_boxplot() +
labs(
title = "Perbandingan GPA Sebelum dan Sesudah Semester",
x = "",
y = "GPA"
) +
theme_minimal()
## ———————————————————— ## 4.2 Hubungan Penggunaan AI dengan
Post-Semester GPA ## ————————————————————
ggplot(
data_clean,
aes(x = Weekly_GenAI_Hours, y = Post_Semester_GPA)
) +
geom_point(alpha = 0.2) +
geom_smooth(method = "lm", se = TRUE) +
labs(
title = "Hubungan Intensitas Penggunaan AI dengan Post-Semester GPA",
x = "Jam Penggunaan GenAI per Minggu",
y = "Post-Semester GPA"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
# Hasil: Terdapat kecenderungan hubungan negatif yang lemah antara
intensitas penggunaan GenAI dan Post-Semester GPA.Hubungan ini belum
menunjukkan bahwa penggunaan AI secara langsung menyebabkan penurunan
GPA.
##————————————————————
ggplot(
data_clean,
aes(
x = Weekly_GenAI_Hours,
y = Skill_Retention_Score
)
) +
geom_point(alpha = 0.2) +
geom_smooth(
method = "lm",
se = TRUE
) +
labs(
title = "Hubungan Intensitas Penggunaan AI dengan Skill Retention",
x = "Jam Penggunaan GenAI per Minggu",
y = "Skill Retention Score"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
## Hasil: Terdapat kecenderungan negatif antara intensitas penggunaan
GenAI dengan Skill Retention Score. Semakin tinggi jam penggunaan GenAI,
skor retensi pengetahuan cenderung menurun.Namun, sebaran data cukup
luas sehingga hubungan ini tidak dapat diartikan sebagai hubungan
sebab-akibat.
ggplot(data_clean, aes(x = Institutional_Policy, fill = Burnout_Risk_Level)) +
geom_bar(position = "fill") +
labs(
title = "Distribusi Risiko Burnout berdasarkan Kebijakan Institusi",
x = "Kebijakan Institusi",
y = "Proporsi Mahasiswa",
fill = "Risiko Burnout"
) +
theme_minimal()
## Hasil: Kebijakan Strict_Ban menunjukkan proporsi High Burnout yang
lebih tinggi dibandingkan kebijakan lainnya, sedangkan proporsi Low
Burnout lebih rendah. Pola ini menunjukkan adanya perbedaan profil
risiko burnout berdasarkan kebijakan institusi.
ggplot(data_clean, aes(x = Year_of_Study, y = Weekly_GenAI_Hours)) +
geom_boxplot() +
labs(
title = "Distribusi Intensitas Penggunaan AI berdasarkan Jenjang Studi",
x = "Jenjang Studi",
y = "Jam Penggunaan GenAI per Minggu"
) +
theme_minimal()
## Hasil: Intensitas penggunaan AI antarjenjang studi memiliki pola yang
relatif mirip. Median penggunaan berada di sekitar 6 jam per minggu,
dengan variasi penggunaan yang cukup lebar pada setiap jenjang.
library(corrplot)
data_numeric <- data_clean %>%
select(
Pre_Semester_GPA,
Weekly_GenAI_Hours,
Tool_Diversity,
Traditional_Study_Hours,
Perceived_AI_Dependency,
Anxiety_Level_During_Exams,
Post_Semester_GPA,
Skill_Retention_Score)
cor_matrix <- cor(data_numeric, use = "complete.obs")
corrplot(
cor_matrix,
method = "color",
type = "upper",
tl.col = "black",
tl.srt = 45)
## Hasil: Heatmap menunjukkan adanya hubungan antar beberapa variabel
numerik. Pre-Semester GPA memiliki hubungan positif yang kuat dengan
Post-Semester GPA. Intensitas penggunaan AI cenderung berkaitan positif
dengan ketergantungan AI dan negatif dengan retensi pengetahuan.
data_clean <- data_clean %>%
mutate(
AI_Usage_Segment = case_when(
Weekly_GenAI_Hours <= 5 ~ "Light User",
Weekly_GenAI_Hours <= 15 ~ "Moderate User",
Weekly_GenAI_Hours > 15 ~ "Heavy User"
)
)# Melihat jumlah mahasiswa setiap segmen
table(data_clean$AI_Usage_Segment)
##
## Heavy User Light User Moderate User
## 8533 22591 18870
ggplot(data_clean, aes(x = AI_Usage_Segment)) +
geom_bar() +
labs(
title = "Segmentasi Mahasiswa berdasarkan Intensitas Penggunaan AI",
x = "Segmen Penggunaan AI",
y = "Jumlah Mahasiswa"
) +
theme_minimal()
## Hasil: Mayoritas mahasiswa termasuk dalam kategori Light User,
diikuti Moderate User dan Heavy User. Segmentasi ini digunakan untuk
membandingkan performa akademik, retensi pengetahuan, dan risiko burnout
berdasarkan intensitas penggunaan AI.
## Korelasi penggunaan AI dengan Post-Semester GPA
cor.test(
data_clean$Weekly_GenAI_Hours,
data_clean$Post_Semester_GPA,
method = "pearson"
)
##
## Pearson's product-moment correlation
##
## data: data_clean$Weekly_GenAI_Hours and data_clean$Post_Semester_GPA
## t = -4.1643, df = 49992, p-value = 3.129e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.027382712 -0.009857211
## sample estimates:
## cor
## -0.01862139
# Korelasi penggunaan AI dengan Skill Retention
cor.test(
data_clean$Weekly_GenAI_Hours,
data_clean$Skill_Retention_Score,
method = "pearson"
)
##
## Pearson's product-moment correlation
##
## data: data_clean$Weekly_GenAI_Hours and data_clean$Skill_Retention_Score
## t = -26.588, df = 49992, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.1267173 -0.1094302
## sample estimates:
## cor
## -0.1180827
# Korelasi ketergantungan AI dengan Skill Retention
cor.test(
data_clean$Perceived_AI_Dependency,
data_clean$Skill_Retention_Score,
method = "pearson"
)
##
## Pearson's product-moment correlation
##
## data: data_clean$Perceived_AI_Dependency and data_clean$Skill_Retention_Score
## t = -18.922, df = 49992, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.09302373 -0.07561681
## sample estimates:
## cor
## -0.08432671
Weekly_GenAI_Hours dengan Post_Semester_GPA: terdapat korelasi negatif yang sangat lemah (r = -0.019; p < 0.001). Artinya, peningkatan penggunaan AI berhubungan dengan sedikit penurunan GPA, tetapi hubungan tersebut sangat lemah.
Weekly_GenAI_Hours dengan Skill_Retention_Score: terdapat korelasi negatif lemah (r = -0.118; p < 0.001). Artinya, semakin tinggi penggunaan AI, skor retensi keterampilan cenderung menurun.
Perceived_AI_Dependency dengan Skill_Retention_Score: terdapat korelasi negatif lemah (r = -0.084; p < 0.001). Artinya, semakin tinggi ketergantungan terhadap AI, retensi keterampilan cenderung menurun.
Penggunaan dan ketergantungan AI memiliki hubungan negatif dengan retensi keterampilan. Namun, korelasi tidak menunjukkan hubungan sebab-akibat.
segment_summary <- data_clean %>%
group_by(AI_Usage_Segment) %>%
summarise(
Jumlah_Mahasiswa = n(),
Rata_rata_GPA = mean(Post_Semester_GPA, na.rm = TRUE),
Rata_rata_Retention = mean(Skill_Retention_Score, na.rm = TRUE),
Persentase_High_Burnout = mean(Burnout_Risk_Level == "High") * 100
)
segment_summary
## # A tibble: 3 × 5
## AI_Usage_Segment Jumlah_Mahasiswa Rata_rata_GPA Rata_rata_Retention
## <chr> <int> <dbl> <dbl>
## 1 Heavy User 8533 3.32 72.7
## 2 Light User 22591 3.34 76.0
## 3 Moderate User 18870 3.37 77.0
## # ℹ 1 more variable: Persentase_High_Burnout <dbl>
ggplot(
data_clean,
aes(x = AI_Usage_Segment, y = Post_Semester_GPA)
) +
geom_boxplot() +
labs(
title = "Post-Semester GPA berdasarkan Segmen Penggunaan AI",
x = "Segmen Penggunaan AI",
y = "Post-Semester GPA"
) +
theme_minimal()
ggplot(
data_clean,
aes(x = AI_Usage_Segment, fill = Burnout_Risk_Level)
) +
geom_bar(position = "fill") +
labs(
title = "Risiko Burnout berdasarkan Segmen Penggunaan AI",
x = "Segmen Penggunaan AI",
y = "Proporsi Mahasiswa",
fill = "Burnout Risk"
) +
theme_minimal()
## Hasil segmentasi: - Heavy User memiliki distribusi High Burnout
paling tinggi dibandingkan Light User dan Moderate User. - Light User
memiliki proporsi High Burnout paling rendah. - Distribusi Post-Semester
GPA antar segmen relatif mirip, sehingga perbedaan intensitas penggunaan
AI tidak menunjukkan perbedaan GPA yang besar.
##Temuan: - Penggunaan AI berkorelasi negatif dengan GPA dan Skill Retention. - Ketergantungan AI berkorelasi negatif dengan Skill Retention. - Heavy User memiliki risiko High Burnout paling tinggi. - Perbedaan GPA antar segmen penggunaan AI relatif kecil.
Penggunaan AI yang tinggi lebih terlihat berkaitan dengan risiko burnout dan penurunan retensi keterampilan dibandingkan dengan perbedaan GPA.Hasil ini dapat menjadi dasar untuk mendorong penggunaan AI yang lebih terkontrol dan mendukung kebiasaan belajar yang tetap mempertahankan keterampilan mahasiswa.