P3 SPK_Metode SAW
Sistem Pendukung Keputusan Penilaian Kinerja Guru Menggunakan Metode SAW
Sumber : https://doi.org/10.32877/bt.v7i1.1608
1. Input matriks keputusan
data_matriks <- matrix(c(
3,3,2,2,3, # H. Ahyad
2,2,2,3,3, # Djoeniati, SH., S.Pd
3,2,3,3,3, # Saddam Husain
2,3,3,2,3, # Siti Hawa, S.Ag
3,1,1,2,2 # Reni Regislawati, S.Pd
), nrow = 5, byrow = TRUE)
rownames(data_matriks) <- c(
"H. Ahyad",
"Djoeniati, SH., S.Pd",
"Saddam Husain",
"Siti Hawa, S.Ag",
"Reni Regislawati, S.Pd"
)
colnames(data_matriks) <- c(
"Absensi",
"Jumlah Mengajar",
"Disiplin",
"Tugas Tambahan",
"Pengembangan Profesi"
)
data_matriks## Absensi Jumlah Mengajar Disiplin Tugas Tambahan
## H. Ahyad 3 3 2 2
## Djoeniati, SH., S.Pd 2 2 2 3
## Saddam Husain 3 2 3 3
## Siti Hawa, S.Ag 2 3 3 2
## Reni Regislawati, S.Pd 3 1 1 2
## Pengembangan Profesi
## H. Ahyad 3
## Djoeniati, SH., S.Pd 3
## Saddam Husain 3
## Siti Hawa, S.Ag 3
## Reni Regislawati, S.Pd 2
2. Jenis kriteria (1 = benefit, -1 = cost)
## [1] 1 1 1 1 1
3. Fungsi normalisasi
normalisasi <- function(data, jenis) {
norm_matriks <- matrix(0, nrow = nrow(data), ncol = ncol(data))
for (j in 1:ncol(data)) {
if (jenis[j] == 1) {
# benefit (nilai lebih besar lebih baik)
norm_matriks[, j] <- data[, j] / max(data[, j])
} else {
# cost (nilai lebih kecil lebih baik)
norm_matriks[, j] <- min(data[, j]) / data[, j]
}
}
rownames(norm_matriks) <- rownames(data)
colnames(norm_matriks) <- colnames(data)
return(norm_matriks)
}
# Proses normalisasi
normal <- normalisasi(data_matriks, jenis_kriteria)
normal## Absensi Jumlah Mengajar Disiplin Tugas Tambahan
## H. Ahyad 1.0000000 1.0000000 0.6666667 0.6666667
## Djoeniati, SH., S.Pd 0.6666667 0.6666667 0.6666667 1.0000000
## Saddam Husain 1.0000000 0.6666667 1.0000000 1.0000000
## Siti Hawa, S.Ag 0.6666667 1.0000000 1.0000000 0.6666667
## Reni Regislawati, S.Pd 1.0000000 0.3333333 0.3333333 0.6666667
## Pengembangan Profesi
## H. Ahyad 1.0000000
## Djoeniati, SH., S.Pd 1.0000000
## Saddam Husain 1.0000000
## Siti Hawa, S.Ag 1.0000000
## Reni Regislawati, S.Pd 0.6666667
4. Bobot kriteria (jumlah harus = 1)
## [1] 0.15 0.10 0.25 0.25 0.25
5. Hitung skor akhir SAW
## [,1]
## H. Ahyad 0.8333333
## Djoeniati, SH., S.Pd 0.8333333
## Saddam Husain 0.9666667
## Siti Hawa, S.Ag 0.8666667
## Reni Regislawati, S.Pd 0.6000000
6. Membuat tabel hasil dan rank
hasil <- data.frame(
Alternatif = rownames(normal),
Skor_SAW = as.numeric(skor)
)
# Mengurutkan dari nilai terbesar
hasil <- hasil[order(-hasil$Skor_SAW), ]
# Menambahkan kolom Rank
hasil$Rank <- rank(-hasil$Skor_SAW, ties.method = "first")
hasil## Alternatif Skor_SAW Rank
## 3 Saddam Husain 0.9666667 1
## 4 Siti Hawa, S.Ag 0.8666667 2
## 1 H. Ahyad 0.8333333 3
## 2 Djoeniati, SH., S.Pd 0.8333333 4
## 5 Reni Regislawati, S.Pd 0.6000000 5