# 1. PANGGIL PACKAGE
#install.packages("readxl")
#install.packages("psych")
library(readxl)
library(psych)
# 2. INPUT DATA EXCEL
data_awal <- read_excel(file.choose())
cat("\n==============================================\n")
##
## ==============================================
cat(" INPUT DATA\n")
## INPUT DATA
cat("==============================================\n")
## ==============================================
cat("Jumlah Responden :", nrow(data_awal), "\n")
## Jumlah Responden : 23
cat("Jumlah Kolom :", ncol(data_awal), "\n")
## Jumlah Kolom : 27
cat("==============================================\n")
## ==============================================
# 3. MEMILIH KOLOM PERNYATAAN
kolom <- grep("Pilih tingkat kesesuaian", names(data_awal))
data <- data_awal[, kolom]
# Mengubah data menjadi numerik
data[] <- lapply(data, function(x) as.numeric(as.character(x)))
# Menghapus baris yang memiliki data kosong
data <- na.omit(data)
# Mengubah nama kolom menjadi P1, P2, ..., P22
names(data) <- paste0("P", seq_len(ncol(data)))
cat("\n==============================================\n")
##
## ==============================================
cat(" DATA KUESIONER\n")
## DATA KUESIONER
cat("==============================================\n")
## ==============================================
cat("Jumlah Responden :", nrow(data), "\n")
## Jumlah Responden : 23
cat("Jumlah Pernyataan:", ncol(data), "\n")
## Jumlah Pernyataan: 22
cat("==============================================\n")
## ==============================================
# 4. UJI VALIDITAS
n <- nrow(data)
hasil_validitas <- data.frame()
for (i in seq_len(ncol(data))) {
# Total skor tanpa item yang diuji
total <- rowSums(data[, -i, drop = FALSE])
# Korelasi Pearson
uji <- cor.test(data[[i]], total, method = "pearson")
hasil_validitas <- rbind(
hasil_validitas,
data.frame(
Item = names(data)[i],
Koefisien_Korelasi = unname(uji$estimate),
P_Value = uji$p.value
)
)
}
# Menghitung r tabel
df <- n - 2
t_tabel <- qt(0.975, df)
r_tabel <- t_tabel / sqrt(t_tabel^2 + df)
# Menentukan keputusan
hasil_validitas$Keputusan <- ifelse(
abs(hasil_validitas$Koefisien_Korelasi) > r_tabel &
hasil_validitas$P_Value < 0.05,
"Valid",
"Tidak Valid"
)
# Menampilkan hasil
cat("\n==============================================\n")
##
## ==============================================
cat(" UJI VALIDITAS\n")
## UJI VALIDITAS
cat("==============================================\n")
## ==============================================
cat("Metode : Korelasi Pearson\n")
## Metode : Korelasi Pearson
cat("Jumlah Responden :", n, "\n")
## Jumlah Responden : 23
cat("Derajat Bebas (df) :", df, "\n")
## Derajat Bebas (df) : 21
cat("Nilai r Tabel :", round(r_tabel, 4), "\n")
## Nilai r Tabel : 0.4132
cat("Taraf Signifikansi : 0.05\n")
## Taraf Signifikansi : 0.05
cat("----------------------------------------------\n")
## ----------------------------------------------
hasil_tampil <- hasil_validitas
hasil_tampil$Koefisien_Korelasi <- round(
hasil_tampil$Koefisien_Korelasi, 4
)
hasil_tampil$P_Value <- round(
hasil_tampil$P_Value, 4
)
print(hasil_tampil, row.names = FALSE)
## Item Koefisien_Korelasi P_Value Keputusan
## P1 0.9493 0.0000 Valid
## P2 0.9493 0.0000 Valid
## P3 0.9641 0.0000 Valid
## P4 0.7225 0.0001 Valid
## P5 0.8749 0.0000 Valid
## P6 0.7068 0.0002 Valid
## P7 0.7439 0.0000 Valid
## P8 0.7250 0.0001 Valid
## P9 0.9522 0.0000 Valid
## P10 0.8652 0.0000 Valid
## P11 0.8706 0.0000 Valid
## P12 0.9148 0.0000 Valid
## P13 0.9388 0.0000 Valid
## P14 0.8265 0.0000 Valid
## P15 0.8153 0.0000 Valid
## P16 0.9641 0.0000 Valid
## P17 0.8499 0.0000 Valid
## P18 0.8015 0.0000 Valid
## P19 0.7429 0.0000 Valid
## P20 0.7429 0.0000 Valid
## P21 0.3626 0.0890 Tidak Valid
## P22 0.6661 0.0005 Valid
cat("----------------------------------------------\n")
## ----------------------------------------------
cat("Item Valid :",
sum(hasil_validitas$Keputusan == "Valid"), "\n")
## Item Valid : 21
cat("Item Tidak Valid:",
sum(hasil_validitas$Keputusan == "Tidak Valid"), "\n")
## Item Tidak Valid: 1
cat("==============================================\n")
## ==============================================
# 5. UJI RELIABILITAS
hasil_reliabilitas <- suppressWarnings(
psych::alpha(data, check.keys = FALSE)
)
alpha <- hasil_reliabilitas$total$raw_alpha
cat("\n==============================================\n")
##
## ==============================================
cat(" UJI RELIABILITAS\n")
## UJI RELIABILITAS
cat("==============================================\n")
## ==============================================
cat("Metode : Cronbach's Alpha\n")
## Metode : Cronbach's Alpha
cat("Jumlah Pernyataan:", ncol(data), "\n")
## Jumlah Pernyataan: 22
cat("Cronbach's Alpha :", round(alpha, 4), "\n")
## Cronbach's Alpha : 0.9775
cat("----------------------------------------------\n")
## ----------------------------------------------
if (alpha >= 0.90) {
cat("Keterangan : Sangat Reliabel\n")
} else if (alpha >= 0.80) {
cat("Keterangan : Reliabel (Baik)\n")
} else if (alpha >= 0.70) {
cat("Keterangan : Reliabel\n")
} else {
cat("Keterangan : Belum Memenuhi Kriteria\n")
}
## Keterangan : Sangat Reliabel
cat("==============================================\n")
## ==============================================