Apa itu Metode WP?
Weighted Product (WP) adalah metode SPK yang mirip dengan SAW, namun menggunakan perkalian (bukan penjumlahan) untuk menggabungkan nilai kriteria. Setiap nilai alternatif dipangkatkan dengan bobot kriteria.
Perbedaan SAW vs WP
| Aspek | SAW | WP |
|---|---|---|
| Operasi | Penjumlahan | Perkalian |
| Normalisasi | Linear (min-max) | Pangkat bobot |
| Kompleksitas | Lebih sederhana | Sedikit lebih rumit |
| Sensitivitas | Lebih sensitive | Lebih robust |
Langkah-Langkah WP
- Tentukan kriteria, bobot, dan jenis (benefit/cost).
- Perbaiki bobot (normalisasi bobot jika perlu).
- Hitung nilai S (vektor S).
- Hitung nilai V (vektor V / normalisasi S).
- Ranking berdasarkan nilai V.
Rumus WP
Vektor S:
Si = Π (xij ^ wj)
Catatan:
- wj positif untuk kriteria benefit
- wj negatif untuk kriteria cost
Vektor V (Normalisasi):
Vi = Si / Σ Si
Contoh Perhitungan
Kriteria: Harga (Cost, w=0.3), Kualitas (Benefit, w=0.4), Garansi (Benefit, w=0.3)
Alternatif A: Harga=5, Kualitas=80, Garansi=2
SA = 5^(-0.3) × 80^(0.4) × 2^(0.3)
SA = 0.62 × 6.93 × 1.23
SA = 5.29
Implementasi Python
import numpy as np
# Data alternatif
data = np.array([
[5, 80, 2], # Alternatif A
[4, 75, 3], # Alternatif B
[6, 90, 1], # Alternatif C
])
# Bobot (sudah ternormalisasi, total = 1)
bobot = np.array([0.3, 0.4, 0.3])
# Jenis: 1 = benefit, -1 = cost
jenis = np.array([-1, 1, 1])
# Bobot dengan tanda sesuai jenis kriteria
bobot_signed = bobot * jenis
# Hitung Vektor S
S = np.prod(data ** bobot_signed, axis=1)
print("Vektor S:", S)
# Hitung Vektor V
V = S / S.sum()
print("Vektor V:", V)
# Ranking
ranking = np.argsort(V)[::-1]
print(f"Ranking: {['Alt '+chr(65+r) for r in ranking]}")
Kapan Menggunakan WP?
- Ketika ingin menghindari bias dari nilai ekstrem.
- Ketika kriteria memiliki skala yang sangat berbeda.
- Sebagai alternatif validasi hasil SAW.