# --- Input Data ---
kom_before <- c(70,60,72,66,75,68,62,70,74,65)
kom_after  <- c(75,61,74,67,78,73,66,73,76,69)
kep_before <- c(68,64,70,67,73,65,60,69,72,63)
kep_after  <- c(72,68,73,70,77,69,65,72,75,66)
pd_before  <- c(65,63,69,65,70,64,61,68,69,60)
pd_after   <- c(70,67,73,69,74,70,64,72,72,65)

# --- Buat Data Frame ---
data <- data.frame(
  Kom_Sebelum = kom_before, Kom_Sesudah = kom_after,
  Kep_Sebelum = kep_before, Kep_Sesudah = kep_after,
  PD_Sebelum = pd_before, PD_Sesudah = pd_after
)

print(data)
##    Kom_Sebelum Kom_Sesudah Kep_Sebelum Kep_Sesudah PD_Sebelum PD_Sesudah
## 1           70          75          68          72         65         70
## 2           60          61          64          68         63         67
## 3           72          74          70          73         69         73
## 4           66          67          67          70         65         69
## 5           75          78          73          77         70         74
## 6           68          73          65          69         64         70
## 7           62          66          60          65         61         64
## 8           70          73          69          72         68         72
## 9           74          76          72          75         69         72
## 10          65          69          63          66         60         65
# Hitung selisih (after - before)
diff <- data.frame(
  Kom = kom_after - kom_before,
  Kep = kep_after - kep_before,
  PD  = pd_after - pd_before
)

# Bentuk vektor tanda: TRUE jika naik (positif)
sign_matrix <- diff > 0
sign_matrix
##        Kom  Kep   PD
##  [1,] TRUE TRUE TRUE
##  [2,] TRUE TRUE TRUE
##  [3,] TRUE TRUE TRUE
##  [4,] TRUE TRUE TRUE
##  [5,] TRUE TRUE TRUE
##  [6,] TRUE TRUE TRUE
##  [7,] TRUE TRUE TRUE
##  [8,] TRUE TRUE TRUE
##  [9,] TRUE TRUE TRUE
## [10,] TRUE TRUE TRUE
# Hitung jumlah responden yang semua komponennya positif
T_value <- sum(rowSums(sign_matrix) == 3)  # semua variabel naik
n <- nrow(diff)
p <- ncol(diff)
p0 <- 1 / (2^p)  # peluang semua naik saat H0 benar

# Nilai harapan dan varians teoretis (jika h0 diterima/tidak signifikan maka 1 dari sepuluh yg kemungkinan akan naik di semua aspek/variabel)
E_T <- n * p0
Var_T <- n * p0 * (1 - p0)

# Hitung statistik Z
Z_value <- (T_value - E_T) / sqrt(Var_T)

# Tampilkan hasil
cat("Jumlah T =", T_value, "\n")
## Jumlah T = 10
cat("Nilai harapan E(T) =", E_T, "\n")
## Nilai harapan E(T) = 1.25
cat("Nilai Z =", Z_value, "\n")
## Nilai Z = 8.3666
# --- NILAI Z TABEL ---
alpha <- 0.05
Z_tabel <- qnorm(1 - alpha/2)     # nilai kritis Z untuk uji dua arah
p_value <- 2 * (1 - pnorm(abs(Z_value)))  # p-value dari Z
Z_tabel
## [1] 1.959964
p_value
## [1] 0
# --- TAMPILKAN HASIL ---
cat("Jumlah T =", T_value, "\n")
## Jumlah T = 10
cat("Nilai harapan E(T) =", E_T, "\n")
## Nilai harapan E(T) = 1.25
cat("Nilai Z =", round(Z_value, 4), "\n")
## Nilai Z = 8.3666
cat("Nilai Z tabel (alpha = 0.05) =", round(Z_tabel, 4), "\n")
## Nilai Z tabel (alpha = 0.05) = 1.96
cat("p-value =", round(p_value, 5), "\n")
## p-value = 0
if (abs(Z_value) > Z_tabel) {
  cat("Keputusan: Tolak H0\n")
} else {
  cat("Keputusan: Gagal menolak H0\n")
}
## Keputusan: Tolak H0

Interpretasi Hasil Uji Tanda Multivariat

Berdasarkan hasil Uji Tanda Multivariat menggunakan perangkat lunak R, diperoleh nilai statistik \(Z = 8.37\), dengan nilai kritis \(Z_{0.975} = 1.96\) pada taraf signifikansi 5%.

Karena \(|Z| > Z_{tabel}\) dan \(p < 0.05\), maka \(H_0\) ditolak.
Artinya terdapat perbedaan median vektor yang signifikan antara kondisi sebelum dan sesudah pelatihan.

Dengan demikian, pelatihan secara nyata meningkatkan kemampuan komunikasi, pengambilan keputusan, dan kepercayaan diri peserta secara simultan.