Decision Support System Series

Multi Attributive Ideal-Real Comparative Analysis (MAIRCA)

Contoh implementasi DSS (Decision Support System) dengan Metode Multi Attributive Ideal-Real Comparative Analysis (MAIRCA) menggunakan PHP dan MySQL untuk pemilihan layanan katering terbaik

Metode Multi Attributive Ideal-Real Comparative Analysis (MAIRCA) merupakan salah satu metode pengambilan keputusan multikriteria berdasarkan pada pemeringkatan selisih nilai ideal dengan nilai empiris

author : cahya dsn, published on : October 1st, 2020 updated on : June 24th, 2022

minerva minerva donasi donation

Mau lihat artikel lainya? Dapatkan artikel-artikel lain seputar pemrograman website di sini, dan dapatkan ide-ide baru

Pre-requisites

  • Pemahaman terhadap dasar-dasar Sistem Pengambilan Keputusan
  • Pemahaman terhadap dasar-dasar teknologi Web,HTML dan CSS
  • Pemahaman terhadap dasar-dasar basis data/database, terutama query SQL pada MySQL/mariaDB
  • Pemahaman terhadap dasar-dasar pemrograman PHP, terutama fungsi-fungsi koneksi database dan pengelolaan tipe data array

1.1. Tahapan Metode MAIRCA

Metode Multi Attributive Ideal-Real Comparative Analysis MAIRCA ... Dalam melakukan menyelesaikan masalah dan perangkingan, metode MAIRCA memiliki beberapa langkah yaitu:

1.1.1. Pembentukan Matriks Keputusan (Decision Making Matrix - X)

Pada matriks keputusan (X), baris menunjukkan Alternatif dan kolom menunjukkan kriteria. Matriks keputusan menunjukkan kinerja dari masing-masing alternatif terhadap berbagai kriteria

$X=\left[\begin{array}{cccc} x_{01} & \ldots & x_{0j} & \ldots & x_{0n} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{i1} & \ldots & x_{ij} & \ldots & x_{in} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{m1} & \ldots & x_{m2} & \ldots & x_{mn} \\ \end{array}\right] (i=0,1,2,...,m; j=1,2,...,n)$
.. [MAI-01]

xij ($x_{ij}\geq0$) menunjukkan nilai kinerja alternatif ke-i pada kriteria ke-j, m adalah banyaknya alternatif sedangkan n adalah banyaknya kriteria ($i \in \{1,2,3,.. m\}$ dan $j \in \{1,2,3,..,m\}$).

1.1.2. Penentuan Preferensi Sesuai dengan Pilihan Alternatif ($P_{A_i}$)

Dalam pemilihan alternatif, para pengambil keputusan (DM - Decision Makers) bersikap netral terhadap proses pemilihannya. Faktanya, mereka tidak memiliki preferensi untuk salah satu dari alternatif yang diusulkan. Asumsi utamanya adalah bahwa para pengambil keputusan tidak memperhitungkan probabilitas pemilihan alternatif. Di asumsikan masing-masing alternatif memiliki probabilitas yang sama, sehingga preferensi untuk memilih salah satunya dari $m$ alternatif yang mungkin adalah:

$P_{A_i}=\frac{1}{m};\displaystyle\sum_{i=1}^{m}P_{A_i}=1;\ i=1,2,3,...,m$
.. [MAI-02]

di mana $m$ menunjukkan jumlah total pilihan

Dalam analisis pengambilan keputusan, dengan probabilitas yang diberikan, diasumsikan bahwa pengambil keputusan netral terhadap risiko. Dalam hal ini, semua preferensi adalah sama sesuai dengan pemilihan alternatif tertentu

$P_{A_1}=P_{A-2}=P_{A_3}= ... = P_{A_m}$
.. [MAI-03]

di mana $m$ menunjukkan jumlah total pilihan

1.1.3. Menentukan Elemen Matriks Evaluasi Teoritis ($T_p$)

matriks evaluasi teroritis ($T_p$) disusun dengan format $n \times m$ ($n$ adalah jumlah kriteria, $m$ adalah jumlah alternatif). Elemen matriks evaluasi teoritis ($t_{p_{ij}}$) dihitung dari perkalian dari nilai preferensi dari masing-masing alternatif $P_{A_i}$ dan bobot kriterianya ($w_i$, untuk $i=1, 2, ..., n$) :

\begin{align} T_p &= \begin{array}{c c} & \begin{array} {@{} c c c c @{}} w_1 & w_2 & \cdots & w_n \end{array} \\ \begin{array}{c} P_{A_1} \\ P_{A_2} \\ \vdots \\ P_{A_n} \end{array}\hspace{-1em} & \left( \begin{array}{@{} c c c c @{}} t_{p11} & t_{p12} & \cdots & t_{p1n} \\ t_{p21} & t_{p22} &\cdots & t_{p2n} \\ \vdots & \vdots & & \vdots \\ t_{pm1} & t_{pm2} & \cdots & t_{pmn} \end{array} \right) \\ \mbox{} % Blank line to match column names so as to align the = vertically \end{array} = \begin{array}{c c} & \begin{array} {@{} c c c c @{}} w_1 & w_2 & \cdots & w_n \end{array} \\ \begin{array}{c} P_{A_1} \\ P_{A_2} \\ \vdots \\ P_{A_n} \end{array}\hspace{-1em} & \left( \begin{array}{@{} c c c c @{}} P_{A_1}w_1 & P_{A_1}w_2 & \cdots & P_{A_1}w_n \\ P_{A_2}w_1 & P_{A_2}w_2 &\cdots & P_{A_2}w_n \\ \vdots & \vdots & & \vdots \\ P_{A_m}w_1 & P_{A_m}w_2 & \cdots & P_{A_m}w_n \end{array} \right) \\ \mbox{} % Blank line to match column names so as to align the = vertically \end{array} \\[-12pt] % Correction for blank line \end{align}
.. [MAI-04]

Karena pengambil keputusan bersifat netral dalam pemilihan awal alternatuf, semua nilai preferensi ($P_{A_i}$) untuk semua alternatif adalah sama. Sehingga, persamaan (MAI-04) dapat dinyatakan seperti dalam persamaan (MAI-05):

\begin{align} T_p &= \begin{array}{c c} & \begin{array} {@{} c c c c @{}} w_1 & w_2 & \cdots & w_n \end{array} \\ \begin{array}{c} P_{A_1} \end{array}\hspace{-1em} & \left( \begin{array}{@{} c c c c @{}} t_{p1} & t_{p2} & \cdots & t_{pn} \\ \end{array} \right) \\ \mbox{} % Blank line to match column names so as to align the = vertically \end{array} = \begin{array}{c c} & \begin{array} {@{} c c c c @{}} w_1 & w_2 & \cdots & w_n \end{array} \\ \begin{array}{c} P_{A_1} \end{array}\hspace{-1em} & \left( \begin{array}{@{} c c c c @{}} P_{A_1}w_1 & P_{A_1}w_2 & \cdots & P_{A_1}w_n \\ \end{array} \right) \\ \mbox{} % Blank line to match column names so as to align the = vertically \end{array} \\[-12pt] % Correction for blank line \end{align}
.. [MAI-05]

dimana $n$ adalah jumlah kriteria, $t_{p_i}$ adalah elemen matriks evaluasi teoritis.

1.1.4. Menentukan Elemen Matriks Evaluasi Realistis ($T_r$)

Tahap berikutnya adalah menentukan elemen matriks evaluasi realistis ($T_r$) untuk tiap-tiap kriteria, yang diperhitungakan dari data semua alternatif. Matriks Evaluasi Realistis yang terbentuk adalah :

$\begin{align} T_r &= \begin{array}{c c} & \begin{array} {@{} c c c c @{}} C_1 & C_2 & \cdots & C_n \end{array} \\ \begin{array}{c} A_1 \\ A_2 \\ \vdots \\ A_n \end{array}\hspace{-1em} & \left( \begin{array}{@{} c c c c @{}} t_{r11} & t_{r12} & \cdots & t_{r1n} \\ t_{r21} & t_{r22} &\cdots & t_{r2n} \\ \vdots & \vdots & & \vdots \\ t_{rm1} & t_{rm2} & \cdots & t_{rmn} \end{array} \right) \\ \mbox{} % Blank line to match column names so as to align the = vertically \end{array} \\[-12pt] % Correction for blank line \end{align}$
.. [MAI-06]

dengan $n$ adalah jumlah kriteria, $m$ adalah jumlah alternatif. Perhitungan nilai elamen matriks evaluasi realistis ($T_r$) adalah dengan mengalikan nilai elemen matriks evaluasi teoritis ($T_p$) dengan elemen matriks keputusan ($X$) berdasarkan persamaan:

a. Untuk kriteria yang bertipe “benefit” (nilai kriteria yang lebih besar adalah lebih baik)

$t_{r_{ij}}=t_{p_{ij}}\left(\frac{x_{ij}-x_i^{-}}{x_i^{+}-x_i^{-}}\right)$
.. [MAI-07]

b. Untuk kriteria yang bertipe “cost” (nilai kriteria yang lebih kecil adalah lebih baik)

$t_{r_{ij}}=t_{p_{ij}}\left(\frac{x_{ij}-x_i^{+}}{x_i^{-}-x_i^{+}}\right)$
.. [MAI-08]

dimana $x_{ij}, x_i^{-}, x_i^{+}$ menunjukkan elemen-elemen dari matriks pengambilan keputusan awal $(X), x_i^{+}$ dan $x_i^{-}$ didefinisikan sebagai :

  • $x_i^{+}=\text{max}(x_1, x_2, ..., x_m)$ adalah nilai maksimum dari kriteria yang ditandai dengan alternatifnya.
  • $x_i^{-}=\text{min}(x_1, x_2, ..., x_m)$ adalah nilai minimum dari kriteria yang ditandai dengan alternatifnya.

1.1.5. Menentukan Matriks Total Gap ($G$)

Nilai dari elemen-elemen matriks $G$ dihitung sebagai selisih (gap) antara nilai elemen matriks teoritis ($t_{p_{ij}}$) dan nilai elemen matriks realistis ($t_{r_{ij}}$), atau dengan mengurangkan elemen matriks evaluasi teoritis ($T_p$) dengan elemen matriks evaluasi realistis ($T_r$).

$G=T_p-T_r= \left( \begin{array}{@{} c c c c @{}} g_{11} & g_{12} & \cdots & g_{1n} \\ g_{21} & g_{22} &\cdots & g_{2n} \\ \vdots & \vdots & & \vdots \\ g_{m1} & g_{m2} & \cdots & g_{mn} \end{array} \right) = \left( \begin{array}{@{} c c c c @{}} t_{p11}-t{r11} & t_{p12}-t_{r12} & \cdots & t_{p1n}-t_{r1n} \\ t_{p21}-t_{r21} & t_{p22}-t_{r22} &\cdots & t_{p2n}-t_{r2n} \\ \vdots & \vdots & & \vdots \\ t_{pm1}-t_{rm1} & t_{pm2}-t_{rm2} & \cdots & t_{pmn}-t_{rmn} \end{array} \right) $
.. [MAI-09]

dimana $n$ adalah jumlah kriteria, $m$ adalah jumlah alternatif. Gap $g_{ij}$ bernilai antara $g_{ij} \in 0,(t_{p_{ij}}-t_{r_{ij}})$ ,seperti dalam persamaan :

$g_{ij} = \begin{cases} 0 & \text{jika }t_{p_{ij}} = t_{r_{ij}} \\ t_{p_{ij}} - t_{r_{ij}} & \text{jika }t_{p_{ij}} > t_{r_{ij}}\\ \end{cases}$
.. [MAI-10]

DIinginkan $g_{ij}$ mendekati nol ( $gij \rightarrow 0$) karena alternatif dengan perbedaan yang terkecil antara nilai evaluasi teoristis ($t_{p_{ij}}$) dengan nilai evaluasi realistis ($t_{r_{ij}}$)-nyalah yang terpilih. Jika suatu alternatif $A_i$ untuk suatu kriteria $C_i$ memiliki nilai evaluasi teroritis yang sama dengan nilai evaluasi realistis ($t_{p_{ij}} = t_{r_{ij}}$), maka nilai selisih (gap untuk alternatif $A_i$ untuk kriteria $C_i$ adalah $g_{ij}= 0$. Atau bisa dikatakan bahwa alternatif $A_i$ untuk kriteria $C_i$ adalah alternatif yang terbaik (ideal) ($A_i^{+}$).

Jika suatu alternatif $A_i$ untuk kriteria $C_i$ mempunyai nilai evaluasi teoritis $t_{p_{ij}}$ dan nilai evaluasi realistis $t_{r_{ij}}= 0$, maka nilai selisih (gap) $A_i$ untuk kriteria $C_i$ adalah $g_{ij}=t_{p_{ij}}$. Dapat dikatakan alternatif $A_i$ untuk kriteria $C_i$ adalah alternatif yang terburuk (anti-ideal) ($A_i^{-}$).

1.1.6. Menghitung Nilai Akhir Fungsi Kriteria ($Q$)

Nilai fungsi kriteria diperoleh dari penjumlahan selisih gap ($g_{ij}$) untuk setiap alternatif, atau merupakan jumlah elemen matriks total gap ($G$) per baris untuk semua kolomnya

$Q_i=\displaystyle\sum_{j=1}^n g_{ij}, i=1,2,3,...,m$
.. [MAI-11]

dimana $n$ adalah jumlah kriteria, $m$ adalah jumlah alternatif.

1.1.7. Perankingan

Tahap yang terakhir adalah perangkingan dari nilai akhir fungsi kriteria Q dari nilai yang terendah hingga yang tertinggi. Alternatif dengan nilai total gap yang terendah menunjukkan alternatif yang terbaik.

2.1. Kriteria dan Bobot

Pada kasus penentuan pemilihan supplier terbaik ini telah ditentukan 11 buah kriteria yang diperhitungkan, yaitu Kualitas, Biaya langsung, Pengiriman, Histori Performansi, Jarak Tempuh, Responsibilitas, Kebijakan Garansi, Sistem Komunikasi, Fleksibilitas, Management dan Organisasi, dan Kemampuan Teknis dengan rincian bobot penilaian seperti pada TABEL 1 berikut :

TABEL 1 : Kriteria dan Bobot Pemilihan Pemasok
KodeKriteriaTipe[1]Bobot[2]
C1Kualitasbenefit0.184
C2Biaya langsungcost0.132
C3Pengirimanbenefit0.145
C4Histori Performansibenefit0.066
C5Jarak Tempuhcost0.079
C6Responsibilitasbenefit0.053
C7Kebijakan Garansibenefit0.079
C8Sistem Komunikasibenefit0.026
C9Fleksibilitasbenefit0.092
C10Management dan Organisasibenefit0.013
C11Kemampuan Teknisbenefit0.039
[1] `benefit` menandakan lebih besar lebih baik (Benefit Criteria) sedangkan `cost` menandakan lebih kecil lebih baik (Cost Criteria)
[2] Nilai bobot ditentukan oleh pakar/orang yang berwenang/kompeten untuk memberi pembobotan; atau bisa diperoleh dari hasil kuisioner

2.2. Contoh Data

Data-data awal yang akan diperhitungkan dengan metoda MAIRCA ini adalah seperti yang tercantum dalam TABEL 2 berikut ini [3]

TABEL 2 : Contoh Data
Alternatif Kriteria
Kode Nama C1C2C3C4C5C6C7C8C9C10C11
A1Sari Prima25595654435
A2Pangan Mandiri337107443535
A3Rasa Mandiri34585644337
A4Sari Extra43576654546
A5Rasa Inti235104353346
A6Sari Mandiri44498543545
A7Boga Utama34774453538
A8Organik Sejahtera23566633447
A9Sari Inti44797654548

Keterangan

  • C1 : Kualitas
  • C2 : Biaya langsung
  • C3 : Pengiriman
  • C4 : Histori Performansi
  • C5 : Jarak Tempuh
  • C6 : Responsibilitas
  • C7 : Kebijakan Garansi
  • C8 : Sistem Komunikasi
  • C9 : Fleksibilitas
  • C10 : Management dan Organisasi
  • C11 : Kemampuan Teknis

[3] Data yang diberikan merupakan data yang sudah dikuantisasi, bukan berupa data mentah. Data dalam contoh di generate secara otomatis dari nilai acak/random

2.3. Perhitungan

Berikut ini akan dijabarkan perhitungan dengan metoda MAIRCA secara manual lengkah demi langkah untuk memudahkan pemahaman terhadap metoda MAIRCA ini

2.3.1. Matriks Keputusan (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=\left[ \begin{array}{ccccccccccc}\\ 2 & 5 & 5 & 9 & 5 & 6 & 5 & 4 & 4 & 3 & 5 \\3 & 3 & 7 & 10 & 7 & 4 & 4 & 3 & 5 & 3 & 5 \\3 & 4 & 5 & 8 & 5 & 6 & 4 & 4 & 3 & 3 & 7 \\4 & 3 & 5 & 7 & 6 & 6 & 5 & 4 & 5 & 4 & 6 \\2 & 3 & 5 & 10 & 4 & 3 & 5 & 3 & 3 & 4 & 6 \\4 & 4 & 4 & 9 & 8 & 5 & 4 & 3 & 5 & 4 & 5 \\3 & 4 & 7 & 7 & 4 & 4 & 5 & 3 & 5 & 3 & 8 \\2 & 3 & 5 & 6 & 6 & 6 & 3 & 3 & 4 & 4 & 7 \\4 & 4 & 7 & 9 & 7 & 6 & 5 & 4 & 5 & 4 & 8\end{array} \right]$

Pada matriks keputusan (X) tersebut, data pada baris ke-i adalah menunjukan data dari Alternatif ke-i; sedangkan data pada kolom ke-j menunjukkan kriteria ke-j. Misalnya untuk data x2,4 menunjukkan data untuk alternatif ke 2 yaitu Pangan Mandiri untuk kriteria ke 4 (Histori Performansi) dengan nilai 10

Secara lengkap, matriks keputusan (X) yang diperoleh dapat ditampilkan dalam bentuk tabel sebagai berikut

TABEL 3 : Matriks Keputusan (X)
Alternatif Kriteria
KodeNama C1C2C3C4C5C6C7C8C9C10C11
A1Sari Prima25595654435
A2Pangan Mandiri337107443535
A3Rasa Mandiri34585644337
A4Sari Extra43576654546
A5Rasa Inti235104353346
A6Sari Mandiri44498543545
A7Boga Utama34774453538
A8Organik Sejahtera23566633447
A9Sari Inti44797654548

2.3.2. Nilai Preferensi Alternatif ($P_{A_i}$)

Nilai preferensi alternatif ($P_{A_i}$) diperhitungkan dari banyaknya jumlah alternatif. Pada kasus pada artikel ini, banyaknya alternatif ($m$) adalah 9 sehingga berdasarkan persamaan [MAI-02] maka diperoleh niai preferensi alternatif nya sebagai berikut:

$\begin{align} P_{A_{i}}&=\frac{1}{9} \\ &= 0.11111111111111\\ \end{align}$

Maka dari persamaan [MAI-03] diperoleh:

$ P_{A_{1}}=P_{A_{2}}=P_{A_{3}}=P_{A_{4}}=P_{A_{5}}=P_{A_{6}}=P_{A_{7}}=P_{A_{8}}=P_{A_{9}}=0.11111111111111$

2.3.3. Membuat Matriks Evaluasi Teoritis ($T_p$)

Matriks Evaluasi Teoritis ($T_p$) disusun dari elemen-elemen matriks berdasarkan persamaan [MAI-03] dan [MAI-04]. Semisal untuk elemen matriks dari alternatif ke-2 dan kriteria ke-4, yaitu $t_{p_{2,4}}$ diperhitungkan sebagai berikut:

$\begin{align} t_{p_{24}}&=P_{A_{2}}.w_{4} \\ &=0.11111111111111 \times 0.065789473684211 \\ &=0.0073099415204678\end{align}$

Dengan perhitungan yang sama untuk nilai elemen matriks teoritis yang lain maka di peroleh matriks teoritis ($T_p$) sebagai berikut:

$T_p=\left[\begin{array}{ccccccccccc} 0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\0.02&0.015&0.016&0.007&0.009&0.006&0.009&0.003&0.01&0.001&0.004\\\end{array}\right] $

2.3.4. Membuat Matriks Evaluasi Realistis ($T_r$)

Berdasarkan persamaan [MAI-06], [MAI-07] dan [MAI-08] dapat disusun Matriks Evaluasi Realistis ($T_r$) untuk kasus ini. Sebagai contoh perhitungan, elemen matrik evaluasi realistis dari alternatif ke-2 dan kriteria ke-9, yaitu $t_{r_{2,9}}$ dapat dicari dengan perhitungan berdasarkan persamaan [MAI-07] karena kriteria ke-9 (Fleksibilitas) adalah merupakan kriteria yang bertipe benefit -- sebagai berikut:

$\begin{align}t_{r_{2,9}}&=t_{p_{2,9}}\left(\frac{x_{2,9}-x_{2}^{-}}{x_{2}^{+}-x_{2}^{-}}\right) \\ &=0.01\left(\frac{5-3}{5-3}\right) \\ &=0.01\left(\frac{2}{2}\right) \\ &=0.01\times 1 \\ &=0.01\end{align}$

Sedangkan untuk kriteria yang bertipe cost diperhitungkan seperti untuk data $x_{2,5}$, untuk mencari elemen matriks realistisnya ($t_{r_{2,5}}$), dimana kriteria ke-5(Jarak Tempuh) adalah kriteria bertipe cost -- sebagai berikut

$\begin{align}t_{r_{2,5}} &=t_{p_{2,5}}\left(\frac{x_{2,5}-x_{2}^{+}}{x_{2}^{-}-x_{2}^{+}}\right) \\ &=0.009\left(\frac{7-8}{4-8}\right) \\ &=0.009\left(\frac{-1}{-4}\right) \\ &=0.009\times 0.25 \\ &=0.002\end{align}$

Elemen-elemen matriks realistis yang lain dihitung dengan cara yang sama, sehingga diperoleh matriks realistis ($T_r$) sebagai berikut:

$T_r=\left[\begin{array}{ccccccccccc} 0&0&0.005&0.005&0.007&0.006&0.009&0.003&0.005&0&0\\0.01&0.015&0.016&0.007&0.002&0.002&0.004&0&0.01&0&0\\0.01&0.007&0.005&0.004&0.007&0.006&0.004&0.003&0&0&0.003\\0.02&0.015&0.005&0.002&0.004&0.006&0.009&0.003&0.01&0.001&0.001\\0&0.015&0.005&0.007&0.009&0&0.009&0&0&0.001&0.001\\0.02&0.007&0&0.005&0&0.004&0.004&0&0.01&0.001&0\\0.01&0.007&0.016&0.002&0.009&0.002&0.009&0&0.01&0&0.004\\0&0.015&0.005&0&0.004&0.006&0&0&0.005&0.001&0.003\\0.02&0.007&0.016&0.005&0.002&0.006&0.009&0.003&0.01&0.001&0.004\\\end{array}\right] $

2.3.5. Membuat Matriks Total Gap (G)

Elemen matriks total Gap ($g_{ij}$) adalah nilai selisih antara nilai elemen teoritis ($t_{p_{ij}}$) dengan elemen realistis($t_{r_{ij}}$) nya. Seperti yang ditunjukkan dalam persamaan [MAI-09] dan [MAI-10], sebagai contoh nilai elemen matriks total gap untuk alternatif ke-2 dan kriteria ke-4, yaitu $g_{2,4}$ dapat dihitung sebagai berikut:

$\begin{align}g_{2,4}&=t_{p_{2,4}}-t_{r_{2,4}}\\ &= 0.007 - 0.007 \\ &= 0 \end{align}$

Sehingga dengan perhitungan yang sama, matriks total gap ($G$) yang didapat dengan menghitung keseluruhan nilai elemen-elemen matriksnya adalah sebagai berikut :
$G=\left[\begin{array}{ccccccccccc} 0.02&0.015&0.011&0.002&0.002&0&0&0&0.005&0.001&0.004\\0.01&0&0&0&0.007&0.004&0.004&0.003&0&0.001&0.004\\0.01&0.007&0.011&0.004&0.002&0&0.004&0&0.01&0.001&0.001\\0&0&0.011&0.005&0.004&0&0&0&0&0&0.003\\0.02&0&0.011&0&0&0.006&0&0.003&0.01&0&0.003\\0&0.007&0.016&0.002&0.009&0.002&0.004&0.003&0&0&0.004\\0.01&0.007&0&0.005&0&0.004&0&0.003&0&0.001&0\\0.02&0&0.011&0.007&0.004&0&0.009&0.003&0.005&0&0.001\\0&0.007&0&0.002&0.007&0&0&0&0&0&0\\\end{array}\right] $

2.3.6. Menghitung Nilai Akhir Fungsi Kriteria (Q)

Perhitungan nilai akhir fungsi kriteria $Q$ ini didasarkan pada persamaan [MAI-11]. Nilai akhir fungsi kriteria $Q$ dihitung dengan menjumlahkan nilai elemen matriks gap $G$ untuk semua kriteria dari alternatif tertentu. Semisal untuk alternatif ke$2$ dapat dihitung sebagia berikut:

$\begin{align} Q_{2}&= \sum_{j=1}^{11} g_{2,j} \\ &= g_{2,1}+g_{2,2}+g_{2,3}+g_{2,4}+g_{2,5}+g_{2,6}+g_{2,7}+g_{2,8}+g_{2,9}+g_{2,10}+g_{2,11} \\ &= 0.01+0+0+0+0.007+0.004+0.004+0.003+0+0.001+0.004 \\ &= 0.034\end{align}$

Dengan perhitungan yang sama, untuk alternatif-laternatif yang lain dapat dihitung nilai akhir fungsi kriterianya masing-masing. sehingga diperoleh hasil sebagai berikut:

TABEL 4: Nilai Akhir Fungsi Kriteria ($Q$)
KodeNama AlternatifNilai Akhir Fungsi Kriteria ($Q$)
$A_{1}$Sari Prima0.060794346978557
$A_{2}$Pangan Mandiri0.033869395711501
$A_{3}$Rasa Mandiri0.051656920077973
$A_{4}$Sari Extra0.023513645224172
$A_{5}$Rasa Inti0.053118908382066
$A_{6}$Sari Mandiri0.047636452241715
$A_{7}$Boga Utama0.031310916179337
$A_{8}$Organik Sejahtera0.061159844054581

2.3.7. Perangkingan

Nilai akhir fungsi kriteria ($Q$) dari hasil perhitungan sebelumnya kemudian diurutkan dari yang nilainya terkecil hingga yang terbesar sebagai berikut :

TABEL 5: Perangkingan
KodeNama AlternatifNilai Akhir Fungsi Kriteria ($Q$)Ranking
$A_{9}$Sari Inti0.0157163742690061
$A_{4}$Sari Extra0.0235136452241722
$A_{7}$Boga Utama0.0313109161793373
$A_{2}$Pangan Mandiri0.0338693957115014
$A_{6}$Sari Mandiri0.0476364522417155
$A_{3}$Rasa Mandiri0.0516569200779736
$A_{5}$Rasa Inti0.0531189083820667
$A_{1}$Sari Prima0.0607943469785578
$A_{8}$Organik Sejahtera0.0611598440545819

Untuk alternatif dengan nilai akhir fungsi kriteria ($Q$) yang terkecil berarti adalah merupakan alternatif yang terpilih. Pada kasus ini alternatif dengan nilai akhir fungsi kriteria terkecil adalah alternatif ke -9 (Sari Inti) dengan nilai $Q_9$=0.015716374269006

3.1. Persiapan Database

Sebagai bahan pembelajaran aplikasi MAIRCA ini; dibuat database (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;

Dalam hal ini, pembuatan database memakai command console dari database server yang bersangkutan

3.1.1. Membuat Data Tabel Kriteria

Berdasarkan contoh kasus di atas dibuatkan tabel untuk data-data kriteria sebagai berikut:

-- menghapus tabel mai_criterias jika sudah ada
DROP TABLE IF EXISTS mai_criterias;
-- membuat tabel mai_criterias jika tidak ada
CREATE TABLE IF NOT EXISTS mai_criterias(
  id_criteria TINYINT(3) UNSIGNED NOT NULL,
  criteria VARCHAR(100) NOT NULL,
  weight FLOAT NOT NULL,
  attribute SET('benefit','cost'),
  PRIMARY KEY(id_criteria)
)ENGINE=MyISAM;

-- memasukkan data-data kriteria
INSERT INTO mai_criterias(id_criteria,criteria,weight,attribute)
VALUES
(1,'Kualitas',0.1840,'benefit'),
(2,'Biaya langsung',0.1320,'cost'),
(3,'Pengiriman',0.1450,'benefit'),
(4,'Histori Performansi',0.0660,'benefit'),
(5,'Jarak Tempuh',0.0790,'cost'),
(6,'Responsibilitas',0.0530,'benefit'),
(7,'Kebijakan Garansi',0.0790,'benefit'),
(8,'Sistem Komunikasi',0.0260,'benefit'),
(9,'Fleksibilitas',0.0920,'benefit'),
(10,'Management dan Organisasi',0.0130,'benefit'),
(11,'Kemampuan Teknis',0.0390,'benefit');

3.1.2. Membuat Data Tabel Alternatif

Data-data mengenai kandidat yang akan dievaluasi seperti yang tertera pada contoh kasus di atas dapat di representasikan dalam tabel database sebagai berikut:

-- menghapus tabel mai_alternatives jika sudah ada
DROP TABLE IF EXISTS mai_alternatives;
-- membuat tabel mai_alternatives jika tidak ada
CREATE TABLE IF NOT EXISTS mai_alternatives(
  id_alternative SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(30) NOT NULL,
  PRIMARY KEY(id_alternative)
) ENGINE=MyISAM;

-- memasukkan data-data alternatif
INSERT INTO mai_alternatives(id_alternative,name)
VALUES
(1,'Sari Prima'),
(2,'Pangan Mandiri'),
(3,'Rasa Mandiri'),
(4,'Sari Extra'),
(5,'Rasa Inti'),
(6,'Sari Mandiri'),
(7,'Boga Utama'),
(8,'Organik Sejahtera'),
(9,'Sari Inti');

Dalam tabel mai_alternatives tersebut hanya disimpan id dan nama alternatif-nya; dalam pengembangannya dapat ditambahkan atribut/properti data lainnya, semisal alamat, nomor telepon, email, dan sebagainya sesuai kebutuhan. Namun dalam contoh ini hanya diperlukan namanya saja.

3.1.3. Membuat Data Tabel Hasil Evaluasi

Berikutnya adalah membuat tabel yang berisi hasil evaluasi dari tiap-tiap kandidat(alternatif) terhadap kriteria-kriteria yang diberikan. Data-data yang ada pada contoh kasus di atas dapat di representasikan dalam tabel relasi antara tabel mai_criterias dengan tabel mai_alternatives, yaitu tabel mai_evaluations sebagai berikut:

-- menghapus tabel mai_evaluations jika sudah ada
DROP TABLE IF EXISTS mai_evaluations;
-- membuat tabel mai_evaluations jika tidak ada
CREATE TABLE IF NOT EXISTS mai_evaluations(
  id_alternative SMALLINT(5) UNSIGNED NOT NULL,
  id_criteria TINYINT(3) UNSIGNED NOT NULL,
  value FLOAT NOT NULL,
  PRIMARY KEY (id_alternative,id_criteria)
)ENGINE=MyISAM;

INSERT INTO mai_evaluations(id_alternative,id_criteria,value)
VALUES
(1,1,2),(1,2,5),(1,3,5),(1,4,9),(1,5,5),(1,6,6),(1,7,5),(1,8,4),(1,9,4),(1,10,3),(1,11,5),
(2,1,3),(2,2,3),(2,3,7),(2,4,10),(2,5,7),(2,6,4),(2,7,4),(2,8,3),(2,9,5),(2,10,3),(2,11,5),
(3,1,3),(3,2,4),(3,3,5),(3,4,8),(3,5,5),(3,6,6),(3,7,4),(3,8,4),(3,9,3),(3,10,3),(3,11,7),
(4,1,4),(4,2,3),(4,3,5),(4,4,7),(4,5,6),(4,6,6),(4,7,5),(4,8,4),(4,9,5),(4,10,4),(4,11,6),
(5,1,2),(5,2,3),(5,3,5),(5,4,10),(5,5,4),(5,6,3),(5,7,5),(5,8,3),(5,9,3),(5,10,4),(5,11,6),
(6,1,4),(6,2,4),(6,3,4),(6,4,9),(6,5,8),(6,6,5),(6,7,4),(6,8,3),(6,9,5),(6,10,4),(6,11,5),
(7,1,3),(7,2,4),(7,3,7),(7,4,7),(7,5,4),(7,6,4),(7,7,5),(7,8,3),(7,9,5),(7,10,3),(7,11,8),
(8,1,2),(8,2,3),(8,3,5),(8,4,6),(8,5,6),(8,6,6),(8,7,3),(8,8,3),(8,9,4),(8,10,4),(8,11,7),
(9,1,4),(9,2,4),(9,3,7),(9,4,9),(9,5,7),(9,6,6),(9,7,5),(9,8,4),(9,9,5),(9,10,4),(9,11,8);

3.2. Koneksi Ke Database Server

Koneksi ke database server serta pengambilan data-data dari database diperlukan untuk selanjutnya diproses menggunakan metode MAIRCA.

Dari databse 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.

3.2.1 Mengambil Data Alternatif

Sebelum masuk kebagian inti perhitungan dengan metode MAIRCA, sebelumnya diambil terlebih dahulu data-data yang akan digunakan dari database. Yang pertama ada data Alternatif. Data ini diambil dari tabel mai_alternatives dan dimasukkan ke dalam variabel $alternatif dengan kode script PHP seperti berikut

<?php
//-- inisialisasi variabel array alternatif
$alternatif=array();
$sql='SELECT * FROM mai_alternatives';
$data=$db->query($sql);
while(
$row $data->fetch_object()){
    
$alternatif[$row->id_alternative]=$row->name;
}
?>

Data nama alternatif dimasukkan ke dalam variabel $alternatif dengan index/key array-nye merupakan id_alternatif-nya

3.2.2 Mengambil Data Kriteria dan Bobot

Data kriteria dan bobot diambil dari tabel mai_criterias dan dimasukkan dalam variabel array $kriteria dan $w sebagai berikut:

<?php
//-- inisialisasi variabel array kriteria dan bobot (W)
$kriteria=$w=array();
$sql='SELECT * FROM mai_criterias';
$data=$db->query($sql);
while(
$row $data->fetch_object()){
    
$kriteria[$row->id_criteria]=array($row->name,$row->attribute);
    
$w[$row->id_kriteria]=$row->weight;
}
?>

Data kriteria berupa nama kriteria dan atribut/tipe-nya dimasukkan ke dalam variabel array dua dimensi $kriteria, key/index yang pertama merupakan id_criteria-nya Sedangkan index/key yang kedua, jika '0' maka adalah nama kriteria-nya sendangkan jika '1' maka merupakan atribut/tipe-nya. Sebagai contoh untuk $kriteria[2][0] berisi data nama dari kriteria ke-2 yaitu 'Biaya langsung' dengan atribut/tipe 'cost'

Sedangkan untuk data nilai bobot-nya dimasukkan ke dalam variabel $w dengan index/key-nya berupa id_kriteria yang bersesuaian

3.3. Langkah-Langkah MAIRCA

Bagian berikutnya adalah bagian inti dari perhitungan dengan metode MAIRCA. Di sini dijelaskan langkah per langkah-nya untuk kode PHP-nya, sesuai dengan langkah-langkah perhitungan MAIRCA secara manual sebelumnya.

3.3.1. Menentukan Matriks Keputusan (X)

Mengacu pada persamaan MAI-01 kita dapat membuat matriks keputusan (X) dengan mengambil data dari tabel mai_evaluations yang kemudian dimasukkan dalam variable array $X dengan kode PHP sebagai berikut:

<?php
//-- inisialisasi variabel array matriks keputusan X
$X=array();
//-- ambil nilai dari tabel
$sql='SELECT * FROM mai_evaluations';
$data=$db->query($sql);
while(
$row $data->fetch_object()){
    
$i=$row->id_alternative;
    
$j=$row->id_criteria;
    
$X[$i][$j]=$aij;
}
?>

Variable array $X merupakan array dua dimensi, dimana dimensi yang pertama merupakan index dari alternatif-nya, Sedangkan dimensi yang kedua merupakan index kriteria-nya.$X[$i][$j] berarti merupakan data matriks keputusan untuk alternatif ke $i dan kriteria ke $j

3.3.2. Penentuan Preferensi Sesuai dengan Pilihan Alternatif ($P_{A_{i}}$)

Nilai Preferensi sesuai dengan pilihan alternatif ($P_{A_{i}} besarnya diasumsikan adalah sama untuk semua alternatif, sesuai dengan persamaan [MAI-02] dan [MAI-03]. Sehingga diperoleh nilainya sebagai nilai pembagian dari jumlah alternatifnya sebagai berikut :

<?php
//-- menghitung jumlah alternatif
$jml_alternatif=count($alternatif);
//-- menghitung nilai preferensi (P_A)
$P_A=1/$jml_alternatif;
?>

Pada metode MAIRCA ini diasumsikan bahwa para pengambil keputusan (DM - Decision Makers) tidak memihak pada suatu alternatid tertentu, sehingga nilai preferensi terhadap suatu alternatif ($P_{A_{i}}$) adalah sama untuk semua alternatif, yaitu senilai seper-jumlah alternatif yang ada.

3.3.3. Menentukan Elemen Matriks Evaluasi Teoritis ($T_{p}$)

Berdasarkan persamaan MAI-04 dan MAI-05 dibuat script untuk menentukan nilai elemen matriks teoritis sebagai berikut :

<?php
//-- inisialisasi Nilai matriks evaluasi teroritis (Tp)
$T_p=array();
foreach(
$X as $i=>$xi){
  
$T_p[$i]=array();
  foreach(
$xi as $j=>$xij){
    
$T_p[$i][$j]=$P_A*$w[$j];
  }
}
?>

Dalam script di atas, nilai elemen matriks evaluasi teoritis $T_p didapat dari nilai preferensi alternatif $P_A dikali dengan nilai bobot w ditiap kriteria-nya.

3.3.4. Menentukan Elemen Matriks Evaluasi Realistis ($T_{r}$)

Langkah selanjutnya adalah menghitung nilai elemen matriks evaluasi realistis Tr sebagai berikut:

<?php
//-- inisialisasi T_r
$T_r=array();
foreach(
$T_p as $i=>$tp_i){
  
$T_r[$i]=array();
  foreach(
$tp_i as $j=>$tp_ij){
    if(
$kriteria[$j][1]=='benefit'){
      
//-- nilai elemen evaluasi realistis utuk kriteria bertipe 'benefit'
      
$T_r[$i][$j]=$tp_ij*(($X[$i][$j]-$x_min[$j])/($x_max[$j]-$x_min[$j]==0?1:$x_max[$j]-$x_min[$j]));
    }else{
      
//-- nilai elemen evaluasi realistis utuk kriteria bertipe 'cost'
      
$T_r[$i][$j]=$tp_ij*(($X[$i][$j]-$x_max[$j])/($x_min[$j]-$x_max[$j]==0?1:$x_min[$j]-$x_max[$j]));
    }
  }
}
?>

Nilai elemen matriks evaluasi teoritis $T_r[$i][$j] diperhitungkan berdasarkan tipe kriterianya. Untuk kriteria yang bertipe 'benefit', dihitung dengan membagi selisih antara nilai elemen $X[$i][$j] dan nilai minimum $x_min[$j] dengan selisih nilai maksimum $x_max[$j]dan minimum $x_min[$j]; yang dikalikan dengan nilai elemen evaluasi teoritisnya $T_p[$i][$j]. Sedangkan untuk yang kriteria-nya bertipe 'cost', dihitung dengan membagi selisih antara nilai elemen $X[$i][$j] dan nilai maksimum $x_max[$j] dengan selisih nilai minimum $x_min[$j]dan maksimum $x_max[$j]; yang dikalikan dengan nilai elemen evaluasi teoritisnya $T_p[$i][$j]. Dimana $i menunjukkan alternatif ke-$i$, dan $j menunjukkan kriteria ke-$j$.

3.3.5. Menentukan Matriks Total Gap ($G$)

Langkah berikutnya adalah menghitung nilai elemen matriks total Gap G dengan script berikut ini:

<?php
//-- inisialisasi nilai matriks total gap G
$G=array();
foreach(
$T_p as $i=>$tp_i){
  
$G[$i]=array();
  foreach(
$tp_i as $j=>$tp_ij){
    
//-- menghitung gap antara nilai elemen teoritis dgn nilai elemen realistis
    
$G[$i][$j]=$tp_ij-$T_r[$i][$j];
  }
}
?>

Pada dasarnya nilai elemen matriks total gap $G[$i][$j} adalah nilai selisih antara nilai elemen matriks evaluasi teoritis $tp_ij dengan nilai elemen matriks evaluasi realistis $tr_ij, dimana $i merupakan menunjukkan alternatif ke-$i$ sedang $j menunjukkan untuk kriteria ke-$j$

3.3.6. Menghitung Nilai Akhir Fungsi Kriteria ($Q$)

Berdasarkan persamaan MAI-11 kemudian dicari nilai akhir fungsi kriteria $Q$ dengan script berikut:

<?php
//-- inisialisasi array matriks nilai akhir fungsi kriteria Q
$Q=array();
foreach(
$G as $i=>$g_i){
  
//-- inisialisasi nilai akhir fungsi kriteria dari alternatif ke -i
  
$Q[$i]=0;
  foreach(
$g_i as $j=>$g_ij){
    
//-- menjumlahkan nilai elemen total gap setiap kriteria dari alternatif ke-i
    
$Q[$i]+=$g_ij;
  }
}
?>

Nilai akhir fungsi kriteria dari suatu alternatif ke-$i$ $Q[$i] adalah merupakan penjumlahan dari nilai elemen matriks total gap $g_ij untuk semua kriteria dari alternatif tersebut.

3.3.7. Perangkingan

Bagian terakhir dari proses metode MAIRCA adalah perankingan, dimana data nilai fungsi kriteria ($Q$) diurutkan dari yang terkecil hingga yang terbesar. Berikut adalah contoh script PHP-nya

<?php
//-- mengurutkan secara descending
asort($Q);
//-- ambil key-index yang pertama
$terpilih=key($Q);
echo 
"Dari hasil perhitungan dipilih alternatif ke-{$terpilih}"
    
." ({$alternatif[$terpilih]}) <br>dengan nilai skor penilaian "
    
." sebesar {$H[$terpilih]}";
?>

Data nilai fungsi kriteria $Q$ diurutkan secara ascending dengan fungsi asort() untuk mengurutkan berdasarkan nilay array namun tetap mempertahankan key-index-nya. Setelah diurutkan, maka item array yang pertama adalah nilai fungsi kriteria $Q$ yang terpilih, dan key-index-nya menunjukkan alternatif ke-i. Key-index ini diambil dengan fungsi key(), dan selanjutnya ditampilkan hasilnya dengan mengambil nilai dari variabel array $alternatif dengan key-index yang didapat dari baris sebelumnya, yaitu dalam variabel $terpilih. Hasil yang ditampilkan kurang lebih, sebagai berikut :

Dari hasil perhitungan dipilih alternatif ke-9 (Sari Inti)
dengan nilai skor penilaian sebesar 0.015716374269006

Source code selengkapnya bisa dilihat di tautan ini source source