Metode TOPSIS merupakan salah satu metode untuk menyelesaikan masalah Multi-Attribute Decision Making (MADM) yang didasarkan pada konsep dimana alternatif terpilih yang terbaik tidak hanya memiliki jarak terpendek dari solusi ideal positif, namun juga memiliki jarak terpanjang dari solusi ideal negatif.
author : cahya dsn
,
published on : February 5th, 2015
updated on : April 19th, 2019
TOPSIS adalah metode pengambilan keputusan multikriteria yang pertama kali diperkenalkan oleh Yoon dan Hwang tahun 1981. Menurut Hwang dan Zeleny (Kusumadewi,dkk. , 2006
), TOPSIS didasarkan pada konsep dimana alternatif terpilih yang terbaik tidak hanya memiliki jarak terpendek dari solusi ideal positif, namun juga memiliki jarak terpanjang dari solusi ideal negatif dari sudut pandang geometris dengan menggunakan jarak euclidean untuk menentukan kedekatan relatif dari suatu alternatif dengan solusi optimal.
Solusi ideal positif didefinisikan sebagai jumlah dari seluruh nilai terbaik yang dapat dicapai untuk setiap atribut, sedangkan solusi ideal negatif terdiri dari seluruh nilai terburuk yang dicapai untuk setiap atribut (Meliana, 2011
). TOPSIS mempertimbangkan keduanya, jarak terhadap solusi ideal positif dan jarak terhadap solusi ideal negatif dengan mengambil kedekatan relatif terhadap solusi ideal positif. Berdasarkan perbandingan terhadap jarak relatifnya, susunan prioritas alternatif bisa dicapai.
Konsep ini banyak digunakan pada beberapa model MADM untuk menyelesaikan masalah keputusan secara praktis (Hwang, 1993; Liang,1999; Deng-Yeh-Willis, 2000
). Hal ini disebabkan konsepnya sederhana dan, mudah dipahami, komputasinya efisien, dan memiliki kemampuan untuk mengukur kinerja relatif dari alternatif-alternatif keputusan dalam bentuk matematis yang sederhana (Kusumadewi, dkk., 2006: 88
).
Tahapan-tahapan yang ada dalam metode TOPSIS adalah sebagai berikut :
R
)TOPSIS membutuhkan ranking kinerja setiap alternatif Ai pada setiap kriteria Cj yang ternormalisasi yaitu :
dengan i=1,2,...,m
; nilai m
menunjukkan jumlah alternatif yang dievaluasi, dan nilai Xij
menunjukkan nilai rating kecocokan alternatif ke-i
terhadap kriteria ke-j
.
Y
)Nilai dari masing-masing data ternormalisasi (R
) kemudian dikalikan dengan bobot (W
) untuk mendapatkan matriks keputusan ternormalisasi terbobot (Y
)
Dengan wj
adalah pangkat bernilai positif untuk atribut keuntungan (Benefit),
dan bernilai negatif untuk atribut biaya (cost). Nilai wj
menunjukkan nilai bobot dari kriteria C
yang ke-j
A+
) dan Negatif (A-
)Solusi ideal positif A+
dan solusi ideal negatif A-
dapat ditentukan berdasarkan ranking bobot ternormalisasi (yij
)
A+
Persamaan yang digunakan untuk menentukan solusi ideal positif adalah:
Atau dapat dinyatakan dengan lebih sederhana sebagai berikut:
A-
Persamaan yang digunakan untuk menentukan solusi ideal positif adalah:
Persamaan tersebut dapat dituliskan juga sebagai :
yij
} ; jika j
adalah atribut keuntungan (benefit criteria)yij
} ; jika j
adalah atribut biaya (cost criteria)yij
} ; jika j
adalah atribut keuntungan (benefit criteria)yij
} ; jika j
adalah atribut biaya (cost criteria)D
)Ai
dengan Solusi Ideal Positif (D+
)Ai
dengan Solusi Ideal Negatif (D-
)V
)Vi
) diberikan sebagai :
Nilai Vi
yang lebih besar menunjukkan bahwa alternatif Ai
lebih dipilih
Berikut ini adalah kelebihan dan kekurangan dari metode TOPSIS ini:
Dan untuk pengembangan biasanya metode ini di kombinasi dengan beberapa metode berikut ini:
Permasalahan dalam pengambilan keputusan dalam pemilihan laptop dapat diselesaikan dengan teknik MADM dengan menggunakan metode TOPSIS. metode TOPSIS didasarkan pada konsep bahwa alternatif yang terbaik tidak hanya memiliki jarak terpendek dari solusi ideal positif tetapi juga memiliki jarak terpanjang dari solusi ideal negatif yang dalam hal ini akan memberikan rekomendasi pemilihan laptop yang sesuai dengan yang diharapkan.
Perkembangan zaman yang semakin maju seperti sekarang ini membuat kebutuhan masyarakat semakin meningkat pula. Terlebih lagi didorong dengan adanya kemajuan ilmu pengetahuan dan teknologi yang sangat cepat. Sebagai contoh, dengan adanya laptop/notebook segala kegiatan dapat dilakukan dengan cepat dan resiko kesalahan dapat dikurangi.
Sekarang ini laptop merupakan kebutuhan dasar bagi masyarakat baik untuk pendidikan maupun aktifitas bisnis. Namun, memilih laptop/notebook yang tepat sesuai kebutuhan dan anggaran keuangannya bukan hal mudah. Banyaknya pilihan tersedia di pasaran bisa jadi membuat tambah bingung memilihnya
Dalam contoh kasus ini ada 7 jenis laptop, yaitu MSI, DELL, AXIOO, LENOVO, TOSHIBA, FUJITSU, dan ASUS
Pada kasus pemilihan laptop ini telah ditentukan 8 buah kriteria yang diperhitungkan, yaitu harga, ukuran layar, processor, kapasitas memory, type memory, kapasitas harddisk, bluetooth, dan webcam dengan rincian bobot penilaian seperti pada TABEL 1 berikut :
Kode | Nama | Bobot (%) | Tipe[1] |
---|---|---|---|
C1 | Harga | 30 | min |
C2 | Ukuran Layar | 5 | max |
C3 | Processor | 20 | max |
C4 | Kapasitas Memory | 15 | max |
C5 | Type Memory | 5 | max |
C6 | Kapasitas Harddisk | 15 | max |
C7 | Bluetooth | 5 | max |
C8 | Webcam | 5 | max |
Data-data awal yang akan diperhitungakan dengan metoda TOPSIS ini adalah seperti yang tercantum dalam TABEL 2 berikut ini [2]
Alternatif | Kriteria | ||||||||
---|---|---|---|---|---|---|---|---|---|
Kode | Nama | C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 |
A1 | MSI | 4 | 3 | 3 | 1 | 5 | 4 | 3 | 3 |
A2 | DELL | 2 | 4 | 4 | 1 | 3 | 4 | 3 | 5 |
A3 | AXIOO | 3 | 3 | 3 | 3 | 3 | 4 | 5 | 5 |
A4 | LENOVO | 4 | 3 | 3 | 3 | 5 | 5 | 3 | 3 |
A5 | TOSHIBA | 4 | 4 | 4 | 4 | 3 | 4 | 3 | 3 |
A6 | ASUS | 4 | 3 | 5 | 3 | 5 | 3 | 5 | 3 |
A7 | FUJITSU | 2 | 3 | 3 | 5 | 3 | 5 | 5 | 3 |
Keterangan
Berikut ini akan dijabarkan perhitungan dengan metoda TOPSIS secara manual lengkah demi langkah untuk memudahkan pemahaman terhadap metoda TOPSIS ini
X
)Langkah pertama adalah membuat matriks keputusan (X
) dari data awal yang ada. Dari data pada TABEL 2 dapat dibuat matriks keputusan sebagai berikut :
X = | 4 | 3 | 3 | 1 | 5 | 4 | 3 | 3 | ||
2 | 4 | 4 | 1 | 3 | 4 | 3 | 5 | |||
3 | 3 | 3 | 3 | 3 | 4 | 5 | 5 | |||
4 | 3 | 3 | 3 | 5 | 5 | 3 | 3 | |||
4 | 4 | 4 | 4 | 3 | 4 | 3 | 3 | |||
4 | 3 | 5 | 3 | 5 | 3 | 5 | 3 | |||
2 | 3 | 3 | 5 | 3 | 5 | 5 | 3 |
R
)Setelah matriks keputusan dibuat, selanjutnya adalah membuat matriks keputusan yang ternormalisasi R
yang fungsinya untuk memperkecil range data, dengan tujuan untuk mempermudah perhitungan TOPSIS dan penghematan penggunaan memory.
Sesuai dengan persamaan [TOP-01] dapat dihitung nilai normalisasinya; sebagai contoh untuk data r7,7
didapat:
Dengan cara yang sama dapat diperoleh hasil nilai ri,j
untuk semua alternatif Ai
dan kriteria Cj
, sehingga dapat dibentuk matrik Normalisasi (R
) sebagai berikut
R = | 0.444 | 0.342 | 0.311 | 0.120 | 0.475 | 0.361 | 0.285 | 0.308 | ||
0.222 | 0.456 | 0.415 | 0.120 | 0.285 | 0.361 | 0.285 | 0.513 | |||
0.333 | 0.342 | 0.311 | 0.359 | 0.285 | 0.361 | 0.475 | 0.513 | |||
0.444 | 0.342 | 0.311 | 0.359 | 0.475 | 0.451 | 0.285 | 0.308 | |||
0.444 | 0.456 | 0.415 | 0.478 | 0.285 | 0.361 | 0.285 | 0.308 | |||
0.444 | 0.342 | 0.518 | 0.359 | 0.475 | 0.271 | 0.475 | 0.308 | |||
0.222 | 0.342 | 0.311 | 0.598 | 0.285 | 0.451 | 0.475 | 0.308 |
Pada matrik Normalisasi R
di atas, data per-baris dari baris ke-1 s.d. baris ke-7 menunjukan data per-alternatif Ai
, sedangkan data per-kolom, dari kolom ke-1 s.d. kolom ke-8 adalah data per-kriteria Cj
Y
)Langkah berikutnya, sesuai dengan persamaan [TOP-02] nilai dari masing-masing data ternormalisasi (R
) kemudian dikalikan dengan bobot (W
) untuk mendapatkan matriks keputusan ternormalisasi terbobot Y
. Sebagai contoh untuk data r1,1
dapat dicari nilai untuk y7,7
sebagai berikut:
Dari semua data pada matrik normalisasi R
dilakukan perhitungan yang sama dengan perhitungan tersebut, sehingga diperoleh matriks Normalisasi Terbobot (Y
) sebagai berikut
Y = | 0.133 | 0.017 | 0.062 | 0.018 | 0.024 | 0.054 | 0.014 | 0.015 | ||
0.067 | 0.023 | 0.083 | 0.018 | 0.014 | 0.054 | 0.014 | 0.026 | |||
0.100 | 0.017 | 0.062 | 0.054 | 0.014 | 0.054 | 0.024 | 0.026 | |||
0.133 | 0.017 | 0.062 | 0.054 | 0.024 | 0.068 | 0.014 | 0.015 | |||
0.133 | 0.023 | 0.083 | 0.072 | 0.014 | 0.054 | 0.014 | 0.015 | |||
0.133 | 0.017 | 0.104 | 0.054 | 0.024 | 0.041 | 0.024 | 0.015 | |||
0.067 | 0.017 | 0.062 | 0.090 | 0.014 | 0.068 | 0.024 | 0.015 |
A
)Matriks Solusi Ideal (A
) merupakan nilai optimum untuk tiap-tiap kriteria, dari beberapa nilai alternatif solusi. Solusi ideal yang dicari terdiri dari dua nilai untuk masing-masing kriteria, yaitu Solusi Ideal Positif (A+
) dan Solusi Ideal Negatif (A-
)
A+
)Solusi Ideal Positif (A+
) merupakan nilai optimum maksimum (terbesar) dari suatu kriteria untuk beberapa nilai alternatif solusi dalam satu kriteria.
Kriteria | Solusi | Max |
---|---|---|
C1 - harga | 0.133 ; 0.067 ; 0.100 ; 0.133 ; 0.133 ; 0.133 ; 0.067 | 0.133 |
C2 - ukuran layar | 0.017 ; 0.023 ; 0.017 ; 0.017 ; 0.023 ; 0.017 ; 0.017 | 0.023 |
C3 - processor | 0.062 ; 0.083 ; 0.062 ; 0.062 ; 0.083 ; 0.104 ; 0.062 | 0.104 |
C4 - kapasitas memory | 0.018 ; 0.018 ; 0.054 ; 0.054 ; 0.072 ; 0.054 ; 0.090 | 0.090 |
C5 - type memory | 0.024 ; 0.014 ; 0.014 ; 0.024 ; 0.014 ; 0.024 ; 0.014 | 0.024 |
C6 - kapasitas harddisk | 0.054 ; 0.054 ; 0.054 ; 0.068 ; 0.054 ; 0.041 ; 0.068 | 0.068 |
C7 - bluetooth | 0.014 ; 0.014 ; 0.024 ; 0.014 ; 0.014 ; 0.024 ; 0.024 | 0.024 |
C8 - webcam | 0.015 ; 0.026 ; 0.026 ; 0.015 ; 0.015 ; 0.015 ; 0.015 | 0.026 |
A-
)Solusi Ideal Negatif (A-
) merupakan nilai optimum minimum (terkecil) dari suatu kriteria untuk beberapa nilai alternatif solusi dalam satu kriteria.
Kriteria | Solusi | Min |
---|---|---|
C1 - harga | 0.133 ; 0.067 ; 0.100 ; 0.133 ; 0.133 ; 0.133 ; 0.067 | 0.067 |
C2 - ukuran layar | 0.017 ; 0.023 ; 0.017 ; 0.017 ; 0.023 ; 0.017 ; 0.017 | 0.017 |
C3 - processor | 0.062 ; 0.083 ; 0.062 ; 0.062 ; 0.083 ; 0.104 ; 0.062 | 0.062 |
C4 - kapasitas memory | 0.018 ; 0.018 ; 0.054 ; 0.054 ; 0.072 ; 0.054 ; 0.090 | 0.018 |
C5 - type memory | 0.024 ; 0.014 ; 0.014 ; 0.024 ; 0.014 ; 0.024 ; 0.014 | 0.014 |
C6 - kapasitas harddisk | 0.054 ; 0.054 ; 0.054 ; 0.068 ; 0.054 ; 0.041 ; 0.068 | 0.041 |
C7 - bluetooth | 0.014 ; 0.014 ; 0.024 ; 0.014 ; 0.014 ; 0.024 ; 0.024 | 0.014 |
C8 - webcam | 0.015 ; 0.026 ; 0.026 ; 0.015 ; 0.015 ; 0.015 ; 0.015 | 0.015 |
D
)Jarak Solusi Ideal (D
) adalah jarak euclidean (euclidean distance) antara nilai alternatif dengan nilai solusi ideal untuk setiap kriteria
D+
)Jarak Solusi Ideal Positif (D+
) merupakan jarak euclidean antara nilai alternatif dengan nilai solusi ideal positif untuk setiap kriteria. Sebagai contoh perhitungan, berdasarkan persamaan [TOP-05] dapat dicari nilai jarak solusi ideal positif untuk alternatif ke-7 (D+7
) sebagai berikut:
$\begin{align} D_{7}^{+} &= \sqrt{[(y_{1}^{+} - y_{7,1})^{2} + (y_{2}^{+} - y_{7,2})^{2} + (y_{3}^{+} - y_{7,3})^{2} + (y_{4}^{+} - y_{7,4})^{2} + (y_{5}^{+} - y_{7,5})^{2} + (y_{6}^{+} - y_{7,6})^{2} + (y_{7}^{+} - y_{7,7})^{2} + (y_{8}^{+} - y_{7,8})^{2}]} \\ &= \sqrt{[(0.133 - 0.067)^2 + (0.023 - 0.017)^2 + (0.104 - 0.062)^2 + (0.090 - 0.090)^2 + (0.024 - 0.014)^2 + (0.068 - 0.068)^2 + (0.024 - 0.024)^2 + (0.026 - 0.015)^2]} \\ &= \sqrt{(0.06667^2 + 0.00570^2 + 0.04148^2 + 0.00000^2 + 0.00949^2 + 0.00000^2 + 0.00000^2 + 0.01026^2)} \\ &= \sqrt{(0.00444 + 3.24675 \times 10^{-5} + 0.00172 + 0.00000 + 9.00901 \times 10^{-5} + 0.00000 + 0.00000 + 0.00011)} \\ &= \sqrt{0.00639} \\ &= 0.079954332793312\end{align}$
Dengan perhitungan yang sama, diperoleh nilai Jarak Solusi Ideal Positif (D+
) untuk masing-masing alternatif sebagai berikut;
D+1 = 0.085287952608236
D+2 = 0.1018848179251
D+3 = 0.066503683779007
D+4 = 0.056867962630057
D+5 = 0.034927156564105
D+6 = 0.046423617837796
D+7 = 0.079954332793312
D-
)Jarak Solusi Ideal Negatif (D-
) merupakan jarak euclidean antara nilai alternatif dengan nilai solusi ideal negatif untuk setiap kriteria. Disini bisa dicontohkan untuk perhitungan jarak solusi ideal negatif untuk alternatif ke-7 (D-7
) , berdasarkan persamaan [TOP-06] sebagai berikut :
$\begin{align} D_{7}^{-} &= \sqrt{[(y_{7,1} - y_{1}^{-})^2 + (y_{7,2} - y_{2}^{-})^2 + (y_{7,3} - y_{3}^{-})^2 + (y_{7,4} - y_{4}^{-})^2 + (y_{7,5} - y_{5}^{-})^2 + (y_{7,6} - y_{6}^{-})^2 + (y_{7,7} - y_{7}^{-})^2 + (y_{7,8} - y_{8}^{-})^2]} \\ &= \sqrt{[(0.067 - 0.067)^2 + (0.017 - 0.017)^2 + (0.062 - 0.062)^2 + (0.090 - 0.018)^2 + (0.014 - 0.014)^2 + (0.068 - 0.041)^2 + (0.024 - 0.014)^2 + (0.015 - 0.015)^2]} \\ &= \sqrt{(0.00000^2 + 0.00000^2 + 0.00000^2 + 0.07171^2 + 0.00000^2 + 0.02705^2 + 0.00949^2 + 0.00000^2)} \\ &= \sqrt{(0.00000 + 0.00000 + 0.00000 + 0.00514 + 0.00000 + 0.00073 + 9.00901 \times 10^{-5} + 0.00000)} \\ &= \sqrt{0.00596} \\ &= 0.077231176023808\end{align}$
Dengan perhitungan yang sama, diperoleh nilai Jarak Solusi Ideal Negatif (D-
) untuk masing-masing alternatif sebagai berikut;
D+1 = 0.068683778025112
D+2 = 0.027400092089485
D+3 = 0.052679269870401
D+4 = 0.080944154435771
D+5 = 0.089346535892105
D+6 = 0.087354273037246
D+7 = 0.077231176023808
V
)Perhitungan Nilai Preferensi (V
) berdasarkan persamaan [TOP-07], misalnya untuk alternatif ke-7 dapat dihitung nilai V7
sebagai berikut:
$\begin{align} V_{7}&=\frac{D_{7}^{-}}{(D_{7}^{-}+D_{7}^{+})} \\ &=\frac{0.077231176023808}{(0.077231176023808 + 0.079954332793312)} \\ &=\frac{0.077231176023808}{0.15718550881712} \\ &=0.49133776138145\end{align}$
Dengan cara yang sama, untuk masing-masing alternatif dapat diperoleh nilai preferensi selengkapnya sebagai berikut:
V1=0.44608044439449
V2=0.21193573237892
V3=0.44200339274494
V4=0.58735150550736
V5=0.71894971595527
V6=0.65297989425503
V7=0.49133776138145
Dari hasil perhitungan Nilai Preferensi (V
) sebelumnya, dapat diurutkan hasilnya dari yang terbesar sampai yang terkecil; dimana nilai preferensi dari alternatif yang terbesar merupakan alternatif terbaik dari data yang ada dan merupakan alternatif yang terpilih, sedangkan alternatif dengan nilai optimasi terendah adalah yang terburuk dari data yang ada. Dalam urutan dari yang terbesar sampai dengan yang terkecil, diperoleh :
V5=0.71894971595527
V6=0.65297989425503
V4=0.58735150550736
V7=0.49133776138145
V1=0.44608044439449
V3=0.44200339274494
V2=0.21193573237892
Sehingga hasil akhir dari DSS TOPSIS Method ini adalah dipilih alternatif A5
(TOSHIBA) dengan Nilai Preferensi (V
) sebesar 0.71894971595527
Untuk melengkapi artikel ini, berikut ini akan diberikan gambaran implementasi Metode TOPSIS dengan menggunakan PHP untuk menyelesaikan masalah pengambilan keputusan pemilihan laptop seperti dalam contoh kasus yang ditunjukkan sebelumnya.
Uraian diberikan secara langkah per langkah agar memudahkan pemahaman dalam pembuatan aplikasinya. Dimulai dari rancangan schema database-nya hingga langkah-langkah implemantasi proses sesuai Metode TOPSIS yang sudah dijelaskan sebelumnya, dengan menggunakan data sesuai dengan contoh kasus yang diberikan.
Sebagai bahan pembelajaran aplikasi dengan TOPSIS Method ini, dibuat database db_dss
(dalam hal ini menggunakan MySQL/MariaDB Database server) sebagai berikut:
CREATE DATABASE IF NOT EXISTS db_dss; USE db_dss;
Awalnya membuat dulu database dengan nama db_dss
jika belum ada database dengan nama tersebut, kemudian gunakan database tersebut dengan memakai sintak USE db_dss;
top_kriteria
)Dari data kriteria dan bobot di atas, dapat di representasikan kriteria dan parameter yang berperan dalam permasalahan ini dalam bentuk tabel database, yaitu tabel top_kriteria
sebagai berikut:
DROP TABLE IF EXISTS top_kriteria; CREATE TABLE IF NOT EXISTS top_kriteria( id_kriteria TINYINT(3) UNSIGNED AUTO_INCREMENT, kriteria VARCHAR(100) NOT NULL, bobot FLOAT NOT NULL, tipe SET('max','min') NOT NULL, PRIMARY KEY(id_kriteria) )ENGINE=MyISAM; INSERT INTO topk_kriteria(id_kriteria,kriteria,bobot,tipe) VALUES (1,'harga','30','min'), (2,'ukuran layar','5','max'), (3,'processor','20','max'), (4,'kapasitas memory','15','max'), (5,'type memory','5','max'), (6,'kapasitas harddisk','15','max'), (7,'bluetooth','5','max'), (8,'webcam','5','max');
top_alternatif
Berikutnya adalah data mengenai nama-nama alternatif yang akan diperhitungkan -- sesuai dengan contoh kasus di atas -- dengan dibuatkan satu tabel baru bernama top_alternatif
.
DROP TABLE IF EXISTS top_alternatif; CREATE TABLE IF NOT EXISTS top_alternatif( id_alternatif TINYINT(3) UNSIGNED AUTO_INCREMENT, alternatif VARCHAR(100) NOT NULL, PRIMARY KEY(id_alternatif) )ENGINE=MyISAM; INSERT INTO top_alternatif(alternatif) VALUES ('MSI'), ('DELL'), ('AXIOO'), ('LENOVO'), ('TOSHIBA'), ('ASUS'), ('FUJITSU');
Dalam contoh ini atribut yang disimpan hanya `nama` dari alternatifnya. Atribut-atribut (field/kolom) lain bisa ditambahkan disesuaikan dengan kebutuhan sistem/aplikasi yang dibuat
top_sample
Data-data penilaian yang didapat dalam contoh kasus sebelumnya dimasukkan dalam tabel baru bernama top_sample
DROP TABLE IF EXISTS top_sample; CREATE TABLE IF NOT EXISTS top_sample( id_sample INT(11) UNSIGNED AUTO_INCREMENT, id_alternatif TINYINT(3) UNSIGNED NOT NULL, id_kriteria TINYINT(3) UNSIGNED NOT NULL, nilai FLOAT NOT NULL, PRIMARY KEY(id_sample) )ENGINE=MyISAM; INSERT INTO top_sample(id_alternatif,id_kriteria,nilai) VALUES (1,1,4),(1,2,3),(1,3,3),(1,4,1),(1,5,5),(1,6,4),(1,7,3),(1,8,3), (2,1,2),(2,2,4),(2,3,4),(2,4,1),(2,5,3),(2,6,4),(2,7,3),(2,8,5), (3,1,3),(3,2,3),(3,3,3),(3,4,3),(3,5,3),(3,6,4),(3,7,5),(3,8,5), (4,1,4),(4,2,3),(4,3,3),(4,4,3),(4,5,5),(4,6,5),(4,7,3),(4,8,3), (5,1,4),(5,2,4),(5,3,4),(5,4,4),(5,5,3),(5,6,4),(5,7,3),(5,8,3), (6,1,4),(6,2,3),(6,3,5),(6,4,3),(6,5,5),(6,6,3),(6,7,5),(6,8,3), (7,1,2),(7,2,3),(7,3,3),(7,4,5),(7,5,3),(7,6,5),(7,7,5),(7,8,3);
Sebelum dilakukan perhitungan-perhitungan menggunakan metoda TOPSIS dengan menggunakan PHP, maka terlebih dahulu kita menyiapkan data yang akan diolah dengan mengambil (fetching) data dari database, dan disimpan (assign) ke dalam variabel-variabel PHP.
Data-data yang diambil tersebut meliputi data-data primer -- yaitu data kriteria dan bobot -- serta data-data sekunder yaitu data kandidat/alternatif beserta data penilaiannya (nilai)
Sebelum melalukan operasi dengan data dari database, perlu dibuat script untuk koneksi ke database terlebih dahulu. Dari database yang sudah dibuat, kita bisa membuat script php untuk membuat koneksi ke database server dengan extension mysqli sebagai berikut:
<?php
//-- konfigurasi database
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'db_dss';
//-- koneksi ke database server dengan extension mysqli
$db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//-- hentikan program dan tampilkan pesan kesalahan jika koneksi gagal
if ($db->connect_error) {
die('Connect Error ('.$db->connect_errno.')'.$db->connect_error);
}
?>;
Sesuaikan nilai-nilai $dbhost,$dbuser,$dbpass
dan $dbname
dengan konfigurasi database yg digunakan.
Setalah data-data yang diperlukan dalam perhitungan diambil dari database, kemudian data-data tersebut diolah sebagai berikut:
X
)Matrik keputusan X
, seperti dalam bagian sebelumnya direpresentasikan dalam variable $sample
(lihat Pengambilan Nilai Penilaian). Data ini dapat ditampilkan dengan kode PHP sebagai berikut:
<table border='1'>
<?php
//-- menjadikan data $sample sebagai matrik keputusan $X
$X=$sample;
//-- melakukan iterasi utk setiap alternatif
foreach ($X as $id_alternatif=>$a_kriteria) {
echo "<tr>";
//-- melakukan iterasi utk setiap kriteria
foreach($a_kriteria as $id_kriteria=>$nilai){
echo "<td>{$nilai}</td>";
}
echo "</tr>";
}
?>
</table>
R
)Perhitungan untuk Matrik Normalisai R berdasarkan persamaan [TOP-01], yaitu dengan membagi nilai tiap item pada matrik keputusan X dengan akar kuadrat dari jumlah nilai kuadrat untuk setiap nilai item dalam kriteria yang sama. Dalam script PHP bisa dituliskan sebagai berikut:
<?php
//-- inisialisasi array pembagi
$pembagi=array();
//-- melakukan iterasi utk setiap kriteria
foreach($kriteria as $id_kriteria=>$value){
$pembagi[$id_kriteria]=0;
//-- melakukan iterasi utk setiap alternatif
foreach($alternatif as $id_alternatif=>$a_value){
$pembagi[$id_kriteria]=pow($X[$id_alternatif][$id_kriteria],2);
}
}
//-- inisialisasi matrik Normalisasi R
$R=array();
//-- melakukan iterasi utk setiap alternatif
foreach($X as $id_alternatif=>$a_kriteria) {
$R[$id_alternatif]=array();
//-- melakukan iterasi utk setiap kriteria
foreach($a_kriteria as $id_kriteria=>$nilai){
$R[$id_alternatif][$id_kriteria]=$nilai/sqrt($pembagi[$id_kriteria]);
}
}
?>
Y
)Dari matrik normalisasi R, nilai-nilai itemnya dikalikan dengan bobotnya masing-sing sesuai kriteria-nya sehingga diperoleh matrik normalisasi terbobot Y
<?php
//-- inisialisasi matrik Normalisasi Terbobot Y
$Y=array();
//-- melakukan iterasi utk setiap alternatif
foreach($R as $id_alternatif=>$a_kriteria) {
$Y[$id_alternatif]=array();
//-- melakukan iterasi utk setiap kriteria
foreach($a_kriteria as $id_kriteria=>$nilai){
$Y[$id_alternatif][$id_kriteria] = $nilai * $bobot[$id_kriteria];
}
}
?>
A
)Solusi Ideal A yang merupakan nilai optimum dari matrik normalisasi terbobot Y, di sini dicari masing-masing nilai Solusi Ideal positif A+ dan nilai Solusi Ideal negatif A- untuk tiap-tiap kriteria, sebagai berikut:
<?php
//-- inisialisasi Solusi Ideal A Positif dan Negatif
$A_max=$A_min=array();
//-- melakukan iterasi utk setiap kriteria
foreach($kriteria as $id_kriteria=>$a_kriteria) {
$A_max[$id_kriteria]=0;
$A_min[$id_kriteria]=100;
//-- melakukan iterasi utk setiap alternatif
foreach($alternatif as $id_alternatif=>$nilai){
if($A_max[$id_kriteria]<$Y[$id_alternatif][$id_kriteria]){
$A_max[$id_kriteria] = $Y[$id_alternatif][$id_kriteria];
}
if($A_min[$id_kriteria]>$Y[$id_alternatif][$id_kriteria]){
$A_min[$id_kriteria] = $Y[$id_alternatif][$id_kriteria]
};
}
}
?>
D
)Untuk menghtiung Jarak Solusi Ideal (D
), sebelumnya perlu di hitung terlebih dahulu masing-masing Jarak Solusi Ideal Positif (D+
) dan Jarak Solusi Ideal Negatif (D-
). Perhitungannya sendiri mengacu pada persamaan [TOP-05] dan [TOP-06]
<?php
//-- inisialisasi Jarak Solusi Ideal Positif/Negatif
$D_plus=$D_min=array();
//-- melakukan iterasi utk setiap alternatif
foreach($Y as $id_alternatif=>$n_a){
$D_plus[$id_alternatif]=0;
$D_min[$id_alternatif]=0;
//-- melakukan iterasi utk setiap kriteria
foreach($n_a as $id_kriteria=>$y){
$D_plus[$id_alternatif]+=pow($y-$A_max[$id_kriteria],2);
$D_min[$id_alternatif]+=pow($y-$A_min[$id_kriteria],2);
}
$D_plus[$id_alternatif]=sqrt($D_plus[$id_alternatif]);
$D_min[$id_alternatif]=sqrt($D_min[$id_alternatif]);
}
?>
V
)Perhitungan nilai preferensi (V
) berdasarkan persamaan [TOP-07], dalam bentuk script PHP dapat dituliskan seperti di bawah ini:
<?php
//-- inisialisasi variabel array V
$V=array();
//-- melakukan iterasi utk setiap alternatif
foreach($D_min as $id_alternatif=>$d_min){
//-- perhitungan nilai Preferensi V dari nilai jarak solusi ideal D
$V[$id_alternatif] = $d_min/($d_min + $D_plus[$id_alternatif]);
}
?>
Proses perangkingan dilakukan dengan mengurutkan nilai preferensi berdasarkan besar nilainya, dari yang terbesar sampai dengan yang terkecil; dimana kandidat/alternatif dengan nilai preferensi yang terbesar adalah yang terpilih. Proses perangkingan ini dituliskan dalam PHP seperti berikut ini :
<?php
//--mengurutkan data secara descending dengan tetap mempertahankan key/index array-nya
arsort($V);
//-- mendapatkan key/index item array yang pertama
$index=key($V);
//-- menampilkan hasil akhir:
echo "Hasilnya adalah alternatif <b>{$alternatif[$index][0]}</b> ";
echo "dengan nilai preferensi <b>{$V[$index]}</b> yang terpilih";
?>
Hasil akhir dari aplikasi PHP ini adalah berupa teks :
'Hasilnya adalah alternatif TOSHIBA dengan nilai preferensi 0.71894971595527 yang terpilih
'.
Berikut ini beberapa kesimpulan dari implementasi Metode TOPSIS menggunakan PHP ini:
Implementasi Metode Technique for Order of Preference by Similarity to Ideal Solution (TOPSIS) menggunakan PHP
Untuk melengkapi artikel ini, berikut disertakan simulasi sederhana implementasi Metode Technique for Order of Preference by Similarity to Ideal Solution (TOPSIS) dengan PHP. Masukkan nilai-nilai yang diperlukan dan dibagian akhir akhir ditampilkan hasilnya berdasarkan nilai-nilai yang dimasukkan tersebut.
Bagian simulasi ini masih under development, tidak bisa dijadikan acuan sebagai metode TOPSIS yang sebenarnya
Masukkan jumlah Kriteria (n
) dan jumlah Alternatif (m
) yang akan disimulasikan. Pada simulasi ini dibatasi nilai masukkannya masing-masing hanya bilangan bulat antara 3 s.d 7 saja