Kasusnya seperti berikut :
Pada sebuah perusahaan PT Bonsai Food (ngarang :D) akan ditentukan 5 karyawan yang berprestasi. Kriteria penilaiannya adalah C1 Tes Tertulis,Tes C2 Wawancara, C3 Umur, C4 Masa Kerja, C5 Pendidikan dan C6 Kedisiplinan. Lalu untuk ranking kecocokannya adalah Sangat Buruk, Buruk, Cukup, Baik, Sangat Baik.
Jadi kalau ditabelkan seperti ini
Nik | Nama | Kriteria (Bobot) | |||||
C1 | C2 | C3 | C4 | C5 | C6 | ||
1 | Susanto | 3 | 3 | 3 | 4 | 4 | 2 |
2 | Sigit Purnomo | 4 | 4 | 5 | 3 | 3 | 5 |
3 | Bekti susilo | 2 | 3 | 4 | 5 | 5 | 3 |
4 | Gazali Rahman | 5 | 5 | 4 | 3 | 3 | 4 |
5 | Bahrina Fauzi | 3 | 3 | 5 | 4 | 4 | 3 |
Keterangan :
C1 - C6 adalah KRITERIA PENILAIAN
Nilai 1-5 adalah RANKING PENILAIAN
1. Langkah pertama mari kita cari pembaginya setiap kriteria semua karyawan
C1 adalah Tes Tertulis :
SQRT((C1Susanto^2)+(C1Sigit^2)+(C1Bekti^2)+(C1Gazali^2)+(C1Bahrina^2))
Jadi nilai pembagi C1 adalah 3,4,2,5,3
Source Code mencari pembagi C1 :
dim bagiC1 as doubleDan hitung sampai C6
bagiC1=Math.Sqrt((3^2)+(4^2)+(2^2)+(5^2)+(3^2))
2. Setelah mendapatkan pembaginya, maka lakukan normalisasi pada kriteria setiap karyawan
Normalisasi C1Susanto = C1Susanto/bagiC1
Source code mencari normalisasi C1Susanto :
dim normalC1_1 as doubleHitung normalC1_1 sampai normalC1_5 , hitung (normalC2_1 sampai normalC2_5) (normalC3_1 sampai normalC3_5) (normalC4_1 sampai normalC4_5) (normalC5_1 sampai normalC5_5) (normalC6_1 sampai normalC6_5)
normalC1_1= CDbl(3) / CDbl(bagiC1)
3. Cari bobot nilai pada kriteria setiap pegawai (sama seperti normalisasi)
Bobot C1Susanto= C1Susanto x normalC1_1
Source code mencari bobot C1Susanto
dim bobotC1_1 as double
bobotC1_1=CDbl(3)*CDbl(normalC1_1)
Hitung bobotC1_1 sampai bobotC1_5 , hitung (bobotC2_1 sampai bobotC2_5) (bobotC3_1 sampai bobotC3_5) (bobotC4_1 sampai bobotC4_5) (bobotC5_1 sampai bobotC5_5) (bobotC6_1 sampai bobotC6_5)
4. Cari nilai maksimal dari bobot pada setiap kriteria karyawan
Max C1=Max(C1_1,C1_2,C1_3,C1_4,C1_5)
Source Code mencari nilai maksimal C1
buat sebuah function mencari nilai max
Function positif(ByVal ParamArray a() As Double) As DoubleLalu panggil function tersebut :
Dim p As Double() = a
Dim largest As Double = Double.MinValue
For Each element As Double In a
largest = Math.Max(largest, element)
Next
Return largest
End Function
dim maxC1 as double
maxC1=positif(bobotC1_1,bobotC1_2,bobotC1_3,bobotC1_4,bobotC1_5)
5. Dan lakukan nilai minimum bobot
Min C1=Min(C1_1,C1_2,C1_3,C1_4,C1_5)
Source Code mencari nilai minimum C1
buat sebuah function mencari nilai min
Function negatif(ByVal ParamArray a() As Double) As DoubleLalu panggil function tersebut :
Dim p As Double() = a
Dim smallest As Double = Double.MaxValue
For Each element As Double In a
smallest = Math.Min(smallest, element)
Next
Return smallest
End Function
dim maxC1 as double
maxC1=negatif(bobotC1_1,bobotC1_2,bobotC1_3,bobotC1_4,bobotC1_5)
6. Hitung nilai maksimum dari max (D+) si karyawan
MaxtoMax Ckaryawan1=SQRT((MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2)
Source Codenya :
dim minCkaryawan1 as double7. Dan hitung nilai maksimum dari min (D-) si karyawan
minCkaryawan1=math.sqrt((MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2+(MaxC1-bobotC1_1)^2)
MaxtoMin CKaryawan1=SQRT((MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2)
Source Codenya :
dim maxCKaryawan1 as double
maxCKaryawan1=math.sqrt((MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2+(MinC1-bobotC1_1)^2)
Maka dapatlah nilai D+ dan D- pada setiap karyawan
8. Hitung nilai akhir si karyawan
Nilai Karyawan 1= minCKaryawan1/(minCKaryawan1+maxCKaryawan1)
Source code nya :
dim nkar1 as double
nkar1=minCKaryawan1/(minCKaryawan1+maxCKaryawan1)
9. Jika telah mendapatkan nilai akhir semua karyawan, lakukan perhitungan mencari ranking nomor 1. Lihat fungsi positif (rumus 4)
0 Response to "Menghitung Rumus TOPSIS pada VB"
Posting Komentar