12 minute read

Pagi ini ada satu DM masuk ke inbox saya.

Uji validitas dan reliabilitas itu gimana sih?

Seketika itu juga saya coba search di blog saya yang lama, ternyata saya belum pernah menuliskan tentang hal ini sama sekali.

Pertama kali saya bersentuhan dengan uji validitas dan reliabilitas adalah saat membantu istri saya dulu ketika saat mengerjakan tugas akhir di jurusan Psikologi. Berdasarkan pengalaman saya, kedua uji ini memang lebih sering dipakai oleh rekan-rekan di jurusan sosial karena terkait design alat pengukuran (kuesioner) yang menggunakan skala likert.

Bagi saya sebenarnya kedua uji ini cukup simpel untuk dilakukan. Sekarang saya akan memberikan contoh dan langkah-langkah mengerjakannya di R.


Saat sedang berseluncur di Kaggle, saya menemukan data survey kepuasan pelanggan Starbucks di Malaysia. Menggunakan data tersebut, saya akan coba menguji validitas dan reliabilitasnya.

Berikut adalah data yang digunakan:

## 'data.frame':    113 obs. of  7 variables:
##  $ id           : int  1 2 3 4 5 6 7 8 9 10 ...
##  $ product_rate : int  4 4 4 2 3 4 5 4 5 4 ...
##  $ price_rate   : int  3 3 3 1 3 3 5 2 4 3 ...
##  $ ambiance_rate: int  5 4 4 3 2 5 5 3 4 4 ...
##  $ wifi_rate    : int  4 4 4 3 2 4 3 3 4 3 ...
##  $ service_rate : int  4 5 4 3 3 5 5 3 4 3 ...
##  $ choose_rate  : int  3 2 3 3 3 4 5 3 4 4 ...

Ada sebanyak 113 orang responden yang memberikan jawaban berupa skala likert (1-5) terhadap 7 items pertanyaan.

## Cuplikan 10 Data yang Digunakan
id product_rate price_rate ambiance_rate wifi_rate service_rate choose_rate
1 4 3 5 4 4 3
10 4 3 4 3 3 4
21 2 2 3 3 4 3
34 3 2 3 3 4 3
48 3 1 4 3 3 2
53 5 4 5 3 5 5
58 5 5 5 5 5 5
81 3 2 3 1 3 3
96 3 3 4 3 3 4
101 3 2 3 3 3 3

Uji validitas dan reliabilitas bertujuan untuk mengecek apakah kuesioner atau items pertanyaan yang kita buat sudah baik atau belum.

Validitas

Uji validitas dilakukan dengan cara membuat satu variabel (kolom) baru berisi penjumlahan dari semua variabel rates yang ada. Misalkan saya definisikan variabel baru bernama starbucks_rate sebagai berikut:

starbucks_rate = product_rate + price_rate + ambiance_rate + wifi_rate + service_rate + choose_rate

Berikut R script-nya:

data = 
  data %>% 
  mutate(starbucks_rate = product_rate + price_rate + ambiance_rate + wifi_rate + service_rate + choose_rate)

Ini adalah hasilnya:

## Cuplikan 10 Data Hasil Perhitungan
id product_rate price_rate ambiance_rate wifi_rate service_rate choose_rate starbucks_rate
1 4 3 5 4 4 3 23
10 4 3 4 3 3 4 21
21 2 2 3 3 4 3 17
34 3 2 3 3 4 3 18
48 3 1 4 3 3 2 16
53 5 4 5 3 5 5 27
58 5 5 5 5 5 5 30
81 3 2 3 1 3 3 15
96 3 3 4 3 3 4 20
101 3 2 3 3 3 3 17

Untuk menguji validitas, kita cukup menghitung korelasi antar variabel terhadap variabel totalnya.

korel = data %>% select(-id) %>% cor() 
korel = round(korel,2)
  product_rate price_rate ambiance_rate wifi_rate service_rate choose_rate starbucks_rate
product_rate 1.00 0.50 0.54 0.24 0.37 0.40 0.72
price_rate 0.50 1.00 0.38 0.26 0.33 0.41 0.71
ambiance_rate 0.54 0.38 1.00 0.47 0.55 0.32 0.76
wifi_rate 0.24 0.26 0.47 1.00 0.56 0.22 0.64
service_rate 0.37 0.33 0.55 0.56 1.00 0.40 0.74
choose_rate 0.40 0.41 0.32 0.22 0.40 1.00 0.67
starbucks_rate 0.72 0.71 0.76 0.64 0.74 0.67 1.00

Terlihat bahwa semua items memiliki korelasi >0.5 terhadap starbucks_rate yang berarti semua items tersebut valid (sejalan dengan apa yang kuisionernya ukur).


Updates

Salah seorang rekan saya yang merupakan Social-Organizational Psychologist @hermansbm memberikan penjelasan lebih lanjut terkait uji validitas sebagai berikut:

Threshold untuk item-total correlations-nya sometimes > 0.3 sudah cukup (medium effect size). Jika memakai threshold > 0.5 sudah termasuk strong effect size. Ada juga metode perhitungan lain dengan metode item-total correlations tapi totalnya minus item yang dihitung (agregat dari seluruh items kecuali item tersebut).

Banyak pihak juga yang berargumen bahwa item-total correlations tidak bisa digunakan untuk melihat validitas, which is quite true dan validitas itu ada berbagai macam jenisnya (face validity, content validity, dan lainnya). Tapi untuk kepentingan praktis metode yang dijelaskan di blog ini adalah metode yang paling sering dipakai. Cuma tujuan utamanya adalah untuk nge-drop item yang tidak sejalan dengan apa yang kuisionernya ukur.


Uji Reliabilitas

Uji reliabilitas digunakan untuk melihat konsistensi responden dalam menjawab kuisioner. Uji ini dilakukan terhadap seluruh pertanyaan yang ada.

Kita akan melihat nilai Cronbach’s Alpha sebagai pedoman:

  1. Jika nilai Cronbach’s Alpha > 0.60 maka reliabel.
  2. Jika nilai Cronbach’s Alpha < 0.60 maka tidak reliabel.

Untuk menghitung Cronbach’s Alpha, saya menggunakan library(psych) sebagai berikut:

library(psych)
data %>% select(-id,-starbucks_rate) %>% alpha()
## 
## Reliability analysis   
## Call: alpha(x = .)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
##       0.79       0.8    0.79       0.4 3.9 0.031  3.5 0.66      0.4
## 
## 
##  Reliability if an item is dropped:
##               raw_alpha std.alpha G6(smc) average_r S/N alpha se  var.r med.r
## product_rate       0.75      0.76    0.74      0.39 3.2    0.038 0.0129  0.39
## price_rate         0.76      0.77    0.76      0.41 3.4    0.036 0.0152  0.40
## ambiance_rate      0.74      0.74    0.73      0.37 2.9    0.039 0.0119  0.38
## wifi_rate          0.78      0.78    0.76      0.42 3.6    0.033 0.0069  0.40
## service_rate       0.74      0.75    0.73      0.37 3.0    0.038 0.0123  0.39
## choose_rate        0.77      0.78    0.77      0.42 3.6    0.034 0.0145  0.43
## 

Nilai Cronbach’s Alpha dapat dilihat dari nilai raw_alpha, yakni sebesar 0.79, artinya kuesioner yang kita gunakan sudah reliabel.

Selanjutnya, kita bisa melihat data raw_alpha per variabel. Nilai raw_alpha tersebut mengindikasikan besaran raw_alpha dari kuesioner jika item tersebut dihapus (Reliability if an item is dropped).

Terlihat bahwa nilai Cronbach’s Alpha malah turun jika items yang ada dihapus. Artinya, kuesioner kita sudah baik.


if you find this article helpful, support this blog by clicking the ads.