Algoritma AHP (Analytic Hierarchy Process)


Algoritma AHP (Analytic Hierarchy Process) adalah salah satu algoritma yang digunakan untuk menentukan skor dari inputan data data yang ada. Nantinya skor skor tersebut dapat diurutkan sehingga dapat digunakan untuk mengambil data dengan skor tertinggi / terburuk tergantung kebutuhan.



Contoh kasus yang dibahas adalah mementukan nilai kinerja karyawan berdasarkan inputan 3 kategori yang ada, yaitu jumlah jam kerja, jumlah barang yang dikerjakan, jumlah barang yang berkualitas (lolos uji)
Diasumsikan ada 3 data karyawan yang sudah diketahui
Maka tentukan nilai skor akhir dari masing-masing karyawan tersebut
Contoh inputan:

Namajumlah jam kerjajumlah barang yang dikerjakanjumlah barang yang lolos uji
Andi2008070
Budi1906045
Dedi1806555
Erdi1907060

Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data adalah sebagai berikut

Dim data(3, 2) As Double
data(0, 0) = 200
data(0, 1) = 80
data(0, 2) = 70
data(1, 0) = 190
data(1, 1) = 60
data(1, 2) = 45
data(2, 0) = 180
data(2, 1) = 65
data(2, 2) = 55
data(3, 0) = 190
data(3, 1) = 70
data(3, 2) = 60

Langkah-langkah penggunaan algoritma ini adalah

1. Tentukan relasi antar kriteria yang digunakan
Ada 3 kriteria yang digunakan dalam kasus ini, yaitu: jam kerja, Jumlah barang yang dikerjakan, dan jumlah barang yang lolos uji (berkualitas)
diasumsikan dalam kasus ini:
jam kerja 0.5 kali lebih penting daripada jumlah barang
jam kerja 0.5 kali lebih penting daripada kualitas barang
Jumlah barang 0.25 kali lebih penting daripada kualitas barang

2. Buat matrix dari relasi antar kriteria tersebut
Dengan asumsi diatas, maka matrix yang dihasilkan adalah sebagai berikut:

[table]
kriteria,jam kerja,jumlah barang,kualitas
jam kerja,1,0.5,0.5
jumlah barang,2,1,0.25
kualitas,2,4,1
[/table]

matrix(0, 0) = 1
matrix(0, 1) = 0.5
matrix(0, 2) = 0.5
matrix(1, 0) = 2
matrix(1, 1) = 1
matrix(1, 2) = 0.25
matrix(2, 0) = 2
matrix(2, 1) = 4
matrix(2, 2) = 1

3. Tentukan Eigen Vector dari matrix ini
Tentukan dahulu hasil kuadrat matrix diatas, setelah itu cari total data per baris dan total semua data.
Eigen Vector adalah total data per baris dibagi dengan total semua data.

Dim totalkuadratmatriks As Double = 0
For i As Integer = 0 To 2
	For j As Integer = 0 To 2
		kuadratmatriks(i, j) = Math.Round(matriks(0, j) * matriks(i, 0) + matriks(1, j) * matriks(i, 1) + matriks(2, j) * matriks(i, 2), 4)
		totalkuadratmatriks += kuadratmatriks(i, j)
	Next
Next

eigenvector(0) = Math.Round((kuadratmatriks(0, 0) + kuadratmatriks(0, 1) + kuadratmatriks(0, 2)) / totalkuadratmatriks, 4)
eigenvector(1) = Math.Round((kuadratmatriks(1, 0) + kuadratmatriks(1, 1) + kuadratmatriks(1, 2)) / totalkuadratmatriks, 4)
eigenvector(2) = Math.Round((kuadratmatriks(2, 0) + kuadratmatriks(2, 1) + kuadratmatriks(2, 2)) / totalkuadratmatriks, 4)

4. Ulangi langkah penentuan Eigen Vector ini sampai Eigen Vector yang terakhir dihitung sudah sama persis dengan Eigen Vector pada perhitungan sebelumnya.
Gunakan matrix kuadrat dari perhitungan ini untuk digunakan sebagai matrix awal penghitungan berikutnya

If eigenvectorSebelumnya(0) = eigenvector(0) AndAlso eigenvectorSebelumnya(1) = eigenvector(1) AndAlso eigenvectorSebelumnya(2) = eigenvector(2) Then
	bSt = True
Else
	eigenvectorSebelumnya(0) = eigenvector(0)
	eigenvectorSebelumnya(1) = eigenvector(1)
	eigenvectorSebelumnya(2) = eigenvector(2)
End If

5. Tentukan batas maksimal untuk ketiga kriteria diatas
Diasumsikan dalam kasus ini:
jam kerja maksimal adalah 200 jam
jumlah barang maksimal yang dapat dihasilkan adalah 100 buah
jumlah barang berkualitas adalah 100 buah
Sehingga, bilamana terdapat karyawan yang bekerja 200 jam, menghasilkan 100 buah barang, dan semuanya lolos uji, maka nilai kinerjanya adalah sempurna (1)

Const maksJamKerja As Integer = 200
Const maksJumlahBarang As Integer = 100
Const maksKualitas As Integer = 100

6. Hitung semua data karyawan dengan rumus:
((jam kerja / maks jam kerja) * Eigen Vector jam kerja) + ((jumlah barang / maks jumlah barang ) * Eigen Vector jumlah barang ) + ((jumlah kualitas / maks jumlah kualitas) * Eigen Vector jumlah kualitas)

ahp(i) = Math.Round(data(i, 0) / maksJamKerja * eigenvector(0) + (data(i, 1) / maksJumlahBarang) * eigenvector(1) + (data(i, 2) / maksKualitas) * eigenvector(2), 2)

7. Tentukan rentang kesimpulan nilai yang digunakan dalam perhitungan
Diasumsikan dalam kasus ini:
< 0.6 -> Kurang
0.6 – 0.69 -> Cukup
0.7 – 0.79 -> Baik
>= 0.8 -> Sangat Baik

Select Case ahp(i)
	Case Is < 0.6
		status(i) = "Kurang"
	Case Is < 0.7
		status(i) = "Cukup"
	Case Is < 0.8
		status(i) = "Baik"
	Case Else
		status(i) = "Sangat Baik"
End Select

Hasil akhir adalah: (klik untuk perbesar gambar)

cmd4a

Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *