Decision Support System Series

Multi Attributive Border Approximation area Comparison

Contoh implementasi DSS (Decision Support System) dengan metode MABAC menggunakan PHP dan MySQL untuk Seleksi Penerima Bantuan Biaya Pendidikan

Metode Multi Attributive Border Approximation area Comparison (MABAC) adalah suatu metode yang menghasilkan solusi yang stabil (konsisten) dan metode ini dianggap sebagai metode yang handal untuk pengambilan keputusan yang rasional.

author : cahya dsn, published on : August 22nd, 2023 updated on : March 11th, 2024

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 MABAC

Metode Multi Attributive Border Approximation area Comparison MABAC dalam melakukan menyelesaikan masalah dan perangkingan, 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}{ccccc} x_{11} & \ldots & x_{1j} & \ldots & x_{1n} \\ \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=1,2,...,m; j=1,2,...,n)$
.. [MAB-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. Membentuk Matriks Normalisasi (Normalized Matrix - N)

Dari matriks keputusan (X) yang diperoleh, dibuat matriks Normalisasi (N)-nya dengan persamaan:

$\begin{align} n_{ij}=\begin{cases} \frac{x_{ij}-x^{-}_{i}}{x^{+}_{i}-x^{-}_{i}} &\text{jika j}\in N_{b}\\ \frac{x_{ij}-x^{+}_{i}}{x^{-}_{i}-x^{+}_{i}} &\text{jika j}\in N_{c}\\ \end{cases} \end{align}$
.. [MAB-02]

dimana nilai dari Nb dan Nc adalah masing-masing untuk kriteria benefit dan cost. Nilai $x^{+}_{i} = \text{max}(x_1,x_2,x_3, ...x_m)$ mewakili nilai maksimum dari kriteria yang diamati dari alternatif, sedangkan milai $x^{-}_{i} = \text{min}(x_1,x_2,x_3, ...x_m)$ mewakili nilai minimum dari kriteria yang diamati dari alternatif

1.1.3. Menentukan Matriks Normalisasi Terbobot (Weighted Matrix - V)

Nilai normalisasi terbobot (V) dihitung dengan persamaan sebagai berikut :

$v_{ij}=(w_{j}\times n_{ij})+w_{j}$
.. [MAB-03]

Atau dapat dituliskan dalam bentuk:

$v_{ij}=w_{j} \centerdot (n_{ij}+1)$
.. [MAB-04]

dimana $n{ij}$ adalah elemen matriks ternormalisasi ($N$) sedangkan $w_{j}\ (0 < w_{j}<1)$ merupakan nilai koefisien bobot (weight) dari kriteria ke $j$. Dengan memakai persamaan MAB-04 diperoleh Matriks ternormalisai terbobot ($V$) sebagai berikut

$\begin{array}{cll} V &= & \begin{bmatrix} v_{11} & v_{12} & v_{13} & \dotsm & v_{1n} \\ v_{21} & v_{22} & v_{23} & \dotsm & v_{2n} \\ v_{31} & v_{32} & v_{33} & \dotsm & v_{3n} \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ v_{m1} & v_{m2} & v_{m3} & \dotsm & v_{mn} \end{bmatrix} \\ &= & \begin{bmatrix} w_{1} \centerdot (n_{11}+1) & w_{2} \centerdot (n_{12}+1) & w_{3} \centerdot (n_{13}+1) & \dotsm & w_{n} \centerdot (n_{1n}+1) \\ w_{1} \centerdot (n_{21}+1) & w_{2} \centerdot (n_{22}+1) & w_{3} \centerdot (n_{23}+1) & \dotsm & w_{n} \centerdot (n_{2n}+1) \\ w_{1} \centerdot (n_{31}+1) & w_{2} \centerdot (n_{32}+1) & w_{3} \centerdot (n_{33}+1) & \dotsm & w_{n} \centerdot (n_{3n}+1) \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ w_{1} \centerdot (n_{m1}+1) & w_{2} \centerdot (n_{m2}+1) & w_{3} \centerdot (n_{m3}+1) & \dotsm & w_{n} \centerdot (n_{mn}+1) \end{bmatrix} \\ \end{array} $
.. [MAB-05]

dimana $m$ adalah jumlah total alternatif dan $n$ adalah jumlah total kriteria

1.1.4.Penentuan Matriks Area Perkiraan Perbatasan (Border Approximation Area Matrix - G)

Tahap berikutnya adalah menentukan nilai Matriks Area Perkiraan Perbatasan - determination of border approximate area matrix (G) untuk tiap-tiap kriteria, yang diperhitungakan dari data semua alternatif. Matriks Area Perkiraan Perbatasan yang terbentuk adalah :

$g_{j}=\biggl[\displaystyle\prod^{n}_{i=1} v_{ij}\biggr]^{\frac{1}{n}}$
.. [MAB-06]

dimana nilai dari $g_{j}$ adalah merupakan nilai elemen dari Matriks Area Perkiraan Perbatasan (G) untuk setiap kriteria ke $j$. Nilai $n$ adalah jumlah total alternatif.

Kemudian Matriks Area Perkiraan Perbatasan (G) tersebut dibentuk menjadi matriks $n\ \times\ 1$ sebagai berikut:

$\begin{array}{cll} & & \begin{array}{ccccc} C_1 & C_2 & C_3 & \dotsm & C_m \end{array} \\ G &= & \begin{bmatrix} g_1 & g_2 & g_3 & \dotsm & g_m \end{bmatrix} \end{array} $
.. [MAB-07]

1.1.5. Penentuan Matriks Jarak Alternatif ( Distance Matrix- Q)

Matriks jarak alternatif dari daerah perkiraan perbatasan matrix of alternative distance from the border approximate area (Q) adalah sebagai berikut :

$Q= \begin{bmatrix} q_{11} & q_{12} & q_{13} & \dotsm & q_{1n} \\ q_{21} & q_{22} & q_{23} & \dotsm & q_{2n} \\ q_{31} & q_{32} & q_{33} & \dotsm & q_{3n} \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ q_{m1} & q_{m2} & q_{m3} & \dotsm & q_{mn} \end{bmatrix} $
.. [MAB-08]

Jarak alternatif dari daerah perbatasan perkiraan - border approximation area ($q_{ij}$) ditentukan sebagai perbedaan elemen matriks terbobot - weighted matrix (V) dan nilai daerah perkiraan perbatasan - value of the border approximation area (G) yaitu

$\begin{array}{cll} Q &= &V-G \\ &= & \begin{bmatrix} v_{11} & v_{12} & v_{13} & \dotsm & v_{1n} \\ v_{21} & v_{22} & v_{23} & \dotsm & v_{2n} \\ v_{31} & v_{32} & v_{33} & \dotsm & v_{3n} \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ v_{m1} & v_{m2} & v_{m3} & \dotsm & v_{mn} \end{bmatrix} - \begin{bmatrix} g_{1} & g_{2} & g_{3} & \dotsm & g_{n} \\ g_{1} & g_{2} & g_{3} & \dotsm & g_{n} \\ g_{1} & g_{2} & g_{3} & \dotsm & g_{n} \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ g_{1} & g_{2} & g_{3} & \dotsm & g_{n} \\ \end{bmatrix} \\ &= & \begin{bmatrix} v_{11} - g_{1} & v_{12} - g_{2} & v_{13} - g_{3} & \dotsm & v_{1n} - g_{n} \\ v_{21} - g_{1} & v_{22} - g_{2} & v_{23} - g_{3} & \dotsm & v_{2n} - g_{n} \\ v_{31} - g_{1} & v_{32} - g_{2} & v_{33} - g_{3} & \dotsm & v_{3n} - g_{n} \\ \dotsm & \dotsm & \dotsm & \dotsm & \dotsm \\ v_{m1} - g_{1} & v_{m2} - g_{2} & v_{m3} - g_{3} & \dotsm & v_{mn} - g_{n} \end{bmatrix} \end{array} $
.. [MAB-09]

Dimana $g_i$ menyatakan daerah perkiraan perbatasan untuk kriteria ke-$i$, dan $v_{ij}$ menyatakakan elemen matriks berbobot (V) untuk alternatif ke$i$ dan kriteria ke-$j$. Nilai $n$ menunjukkan jumlah kriteria, dan nilai $m$ menunjukkan jumlah total alternatif.

Alternatif $A_i$ dapat termasuk dalam area perkiraan perbatasan ($G$), area perkiraan atas ($G^{+}$) atau area perkiraan bawah ($G^{-}$), yaitu:

$A_i \in \biggl\{ \begin{array}{lll} G^{+} &jika &q_{ij} > 0\\ G &jika &q_{ij} = 0\\ G^{-} &jika &q_{ij} < 0\\ \end{array} $
.. [MAB-10]

Daerah perkiraan atas ($G^{+}$) menyatakan area di mana alternative ideal terletak ($A^{⁺}$), sedangkan area perkiraan bawah ($G^{-}$) menyatakan area di mana alternative anti-ideal berada ($A^{-}$). Suatu alternatif untuk dipilih sebagai yang terbaik dari set, alternatif $A_i$ harus mempunyai sebanyak mungkin kriteria yang termasuk ke dalam daerah perkiraan atas ($G_{+}$).

1.1.6. Perankingan Nilai Fungsi Kriteria (S)

Perhitungan nilai-nilai fungsi kriteria dengan alternatif diperoleh sebagai jumlah dari jarak alternatif dari daerah perkiraan perbatasan -border approximation area ($q_i$). Dengan menjumlahkan nilai elemen matriks $Q$ untuk setiap alternatif, akan diperoleh nilai akhir dari fungsi kriteria alternatif ($S$).

$S_i=\displaystyle\sum_{i=1}^{n}q_{ij}, j=1,2,3,\dotsm,m; i=1,2,3,\dotsm,n$
.. [MAB-11]

Semakin tinggi nilai akhir dari fungsi kriteria dari suatu alternatif ($S$) maka semakin baik alternatif tersebut, alternatif dengan nilai akhir fungsi kriteria yang tertinggi adalah alternatif yang terpilih

2.1. Kriteria dan Bobot

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

TABEL 1 : Kriteria dan Bobot Pemilihan Pemasok
KodeKriteriaTipe[1]Bobot[2]
C1Kemampuan Teknisbenefit0.042
C2Kualitasbenefit0.197
C3Fleksibilitasbenefit0.099
C4Responsibilitasbenefit0.056
C5Sistem Komunikasibenefit0.028
C6Histori Performansibenefit0.070
C7Kebijakan Garansibenefit0.085
C8Transportasicost0.113
C9Pengirimanbenefit0.155
C10Biaya langsungcost0.141
[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 MABAC ini adalah seperti yang tercantum dalam TABEL 2 berikut ini [3]

TABEL 2 : Contoh Data
Alternatif Kriteria
Kode Nama C1C2C3C4C5C6C7C8C9C10
A1Organik Prima3589819243
A2Boga Extra43710429143
A3Fresh Sejahtera1557459364
A4Rasa Prima1549925444
A5Rasa Sejahtera2447829484
A6Organik Sejahtera2356539254
A7Fresh Mandiri1386446444
A8Sari Utama45561064384
A9Sari Mandiri14710519244
A10Boga Mandiri4559628283
A11Boga Sejahtera345101029144
A12Sari Sejahtera4368827363
A13Pangan Mandiri25410426243

Keterangan

  • C1 : Kemampuan Teknis
  • C2 : Kualitas
  • C3 : Fleksibilitas
  • C4 : Responsibilitas
  • C5 : Sistem Komunikasi
  • C6 : Histori Performansi
  • C7 : Kebijakan Garansi
  • C8 : Transportasi
  • C9 : Pengiriman
  • C10 : Biaya langsung

[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 MABAC secara manual langkah demi langkah untuk memudahkan pemahaman terhadap metoda MABAC 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=\begin{bmatrix} 3 & 5 & 8 & 9 & 8 & 1 & 9 & 2 & 4 & 3 \\4 & 3 & 7 & 10 & 4 & 2 & 9 & 1 & 4 & 3 \\1 & 5 & 5 & 7 & 4 & 5 & 9 & 3 & 6 & 4 \\1 & 5 & 4 & 9 & 9 & 2 & 5 & 4 & 4 & 4 \\2 & 4 & 4 & 7 & 8 & 2 & 9 & 4 & 8 & 4 \\2 & 3 & 5 & 6 & 5 & 3 & 9 & 2 & 5 & 4 \\1 & 3 & 8 & 6 & 4 & 4 & 6 & 4 & 4 & 4 \\4 & 5 & 5 & 6 & 10 & 6 & 4 & 3 & 8 & 4 \\1 & 4 & 7 & 10 & 5 & 1 & 9 & 2 & 4 & 4 \\4 & 5 & 5 & 9 & 6 & 2 & 8 & 2 & 8 & 3 \\3 & 4 & 5 & 10 & 10 & 2 & 9 & 1 & 4 & 4 \\4 & 3 & 6 & 8 & 8 & 2 & 7 & 3 & 6 & 3 \\2 & 5 & 4 & 10 & 4 & 2 & 6 & 2 & 4 & 3\end{bmatrix}$

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,5 menunjukkan data untuk alternatif ke 2 yaitu Boga Extra untuk kriteria ke 5 (Sistem Komunikasi) dengan nilai 4

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

TABEL 3 : Matriks Keputusan (X)
Alternatif Kriteria
KodeNama C1C2C3C4C5C6C7C8C9C10
A1Organik Prima3589819243
A2Boga Extra43710429143
A3Fresh Sejahtera1557459364
A4Rasa Prima1549925444
A5Rasa Sejahtera2447829484
A6Organik Sejahtera2356539254
A7Fresh Mandiri1386446444
A8Sari Utama45561064384
A9Sari Mandiri14710519244
A10Boga Mandiri4559628283
A11Boga Sejahtera345101029144
A12Sari Sejahtera4368827363
A13Pangan Mandiri25410426243

2.3.2. Matriks Normalisasi (N)

Matrik Normalisai (N) untuk dari data tiap-tiap alternatif dan kriteria diperhitungkan berdasarkan persamaan MAB-02. Untuk data yang bertipe benefit, sebagai contoh untuk data $x_{2,7}$ diperhitungkan sebagai berikut

$\begin{align} n_{2,7}&=\frac{x_{2,7} - x^{-}_{7}}{x^{+}_{7}-x^{-}_{7}} \\ &=\frac{9-4}{9-4} \\ &=\frac{5}{5} \\ &=1.000\end{align}$

Sedangkan untuk kriteria yang bertipe cost diperhitungkan seperti untuk data $x_{2,8}$ sebagai berikut

$\begin{align} n_{2,8}&=\frac{x_{2,8}-x^{+}_{8}}{x^{-}_{8}-x^{+}_{8}} \\ &=\frac{1-4}{1-4} \\ &=\frac{-3}{-3} \\ &=1.000\end{align}$

Dengan perhitungan yang sama, dilakukan perhitungan nilai normalisai N untuk data-data yang lain sehingga diperoleh matriks Normalisasi N sebagai berikut:

$N=\begin{bmatrix} 0.667 & 1.000 & 1.000 & 0.750 & 0.667 & 0.000 & 1.000 & 0.667 & 0.000 & 1.000 \\ 1.000 & 0.000 & 0.750 & 1.000 & 0.000 & 0.200 & 1.000 & 1.000 & 0.000 & 1.000 \\ 0.000 & 1.000 & 0.250 & 0.250 & 0.000 & 0.800 & 1.000 & 0.333 & 0.500 & 0.000 \\ 0.000 & 1.000 & 0.000 & 0.750 & 0.833 & 0.200 & 0.200 & 0.000 & 0.000 & 0.000 \\ 0.333 & 0.500 & 0.000 & 0.250 & 0.667 & 0.200 & 1.000 & 0.000 & 1.000 & 0.000 \\ 0.333 & 0.000 & 0.250 & 0.000 & 0.167 & 0.400 & 1.000 & 0.667 & 0.250 & 0.000 \\ 0.000 & 0.000 & 1.000 & 0.000 & 0.000 & 0.600 & 0.400 & 0.000 & 0.000 & 0.000 \\ 1.000 & 1.000 & 0.250 & 0.000 & 1.000 & 1.000 & 0.000 & 0.333 & 1.000 & 0.000 \\ 0.000 & 0.500 & 0.750 & 1.000 & 0.167 & 0.000 & 1.000 & 0.667 & 0.000 & 0.000 \\ 1.000 & 1.000 & 0.250 & 0.750 & 0.333 & 0.200 & 0.800 & 0.667 & 1.000 & 1.000 \\ 0.667 & 0.500 & 0.250 & 1.000 & 1.000 & 0.200 & 1.000 & 1.000 & 0.000 & 0.000 \\ 1.000 & 0.000 & 0.500 & 0.500 & 0.667 & 0.200 & 0.600 & 0.333 & 0.500 & 1.000 \\ 0.333 & 1.000 & 0.000 & 1.000 & 0.000 & 0.200 & 0.400 & 0.667 & 0.000 & 1.000 \\ \end{bmatrix} $

Secara lengkap, matriks Normalisasi (N) yang diperoleh dapat ditampilkan dalam bentuk tabel sebagai berikut

TABEL 4 : Matriks Normalisasi (N)
Alternatif Kriteria
KodeNama C1C2C3C4C5C6C7C8C9C10
A1Organik Prima0.6671.0001.0000.7500.6670.0001.0000.6670.0001.000
A2Boga Extra1.0000.0000.7501.0000.0000.2001.0001.0000.0001.000
A3Fresh Sejahtera0.0001.0000.2500.2500.0000.8001.0000.3330.5000.000
A4Rasa Prima0.0001.0000.0000.7500.8330.2000.2000.0000.0000.000
A5Rasa Sejahtera0.3330.5000.0000.2500.6670.2001.0000.0001.0000.000
A6Organik Sejahtera0.3330.0000.2500.0000.1670.4001.0000.6670.2500.000
A7Fresh Mandiri0.0000.0001.0000.0000.0000.6000.4000.0000.0000.000
A8Sari Utama1.0001.0000.2500.0001.0001.0000.0000.3331.0000.000
A9Sari Mandiri0.0000.5000.7501.0000.1670.0001.0000.6670.0000.000
A10Boga Mandiri1.0001.0000.2500.7500.3330.2000.8000.6671.0001.000
A11Boga Sejahtera0.6670.5000.2501.0001.0000.2001.0001.0000.0000.000
A12Sari Sejahtera1.0000.0000.5000.5000.6670.2000.6000.3330.5001.000
A13Pangan Mandiri0.3331.0000.0001.0000.0000.2000.4000.6670.0001.000

2.3.3. Membuat Matriks Normalisasi Terbobot (V)

Setelah didapat nilai normalisasinya (N), berikutnya adalah membuat Matriks Normalisasi Terbobot (V) maka berdasarkan persamaan MAB-03 , MAB-04 , dan MAB-05 dapat dicari nilai V-nya. Sebagai contoh untuk kriteria ke-5 (Sistem Komunikasi) pada alternatif ke-2 (Boga Extra) bisa dihitung nilai v2,5 sebagai berikut:

$\begin{align} r_{2,5}&= w_{5} \centerdot (n_{2,5} + 1) \\ &= 0.028 \centerdot 1.000 \\ &=0.028 \\ \end{align}$

Dengan perhitungan yang sama untuk semua data dari matriks normalisasi (N) diperoleh data matriks normalisasi terbobot (V) seperti dalam TABEL 5 berikut ini:

TABEL 5 : Matriks Normalisasi Terbobot (V)
No.AlternatifV
KodeNamaC1C2C3C4C5C6C7C8C9C10
1A1Organik Prima0.0700.3940.1970.0990.0470.0700.1690.1880.1550.282
2A2Boga Extra0.0850.1970.1730.1130.0280.0850.1690.2250.1550.282
3A3Fresh Sejahtera0.0420.3940.1230.0700.0280.1270.1690.1500.2320.141
4A4Rasa Prima0.0420.3940.0990.0990.0520.0850.1010.1130.1550.141
5A5Rasa Sejahtera0.0560.2960.0990.0700.0470.0850.1690.1130.3100.141
6A6Organik Sejahtera0.0560.1970.1230.0560.0330.0990.1690.1880.1940.141
7A7Fresh Mandiri0.0420.1970.1970.0560.0280.1130.1180.1130.1550.141
8A8Sari Utama0.0850.3940.1230.0560.0560.1410.0850.1500.3100.141
9A9Sari Mandiri0.0420.2960.1730.1130.0330.0700.1690.1880.1550.141
10A10Boga Mandiri0.0850.3940.1230.0990.0380.0850.1520.1880.3100.282
11A11Boga Sejahtera0.0700.2960.1230.1130.0560.0850.1690.2250.1550.141
12A12Sari Sejahtera0.0850.1970.1480.0850.0470.0850.1350.1500.2320.282
13A13Pangan Mandiri0.0560.3940.0990.1130.0280.0850.1180.1880.1550.282

2.3.4. Membentuk Matriks Area Perkiraan Perbatasan (G)

Nilai elemen matriks Area Perkiraan Perbatasan G untuk kriteria ke 5, sesuai dengan persamaan COD-06 dapat dicari dengan perhitungan sebagai berikut :

$\begin{align} g_{5}&= \biggl[\displaystyle\prod^{n}_{i=1} v_{i5}\biggr]^{\frac{1}{n}}\\ &=\biggl(v_{1,5} . v_{2,5} . v_{3,5} . v_{4,5} . v_{5,5} . v_{6,5} . v_{7,5} . v_{8,5} . v_{9,5} . v_{10,5} . v_{11,5} . v_{12,5} . v_{13,5}\biggr)^{\frac{1}{10}}\\ &=\biggl(0.047 . 0.028 . 0.028 . 0.052 . 0.047 . 0.033 . 0.028 . 0.056 . 0.033 . 0.038 . 0.056 . 0.047 . 0.028\biggr)^{\frac{1}{10}}\\ &=\biggl(4.306 \times 10^{-19}\biggr)^{\frac{1}{10}}\\ &=4.332 \times 10^{-19}\\ \end{align}$

Nilai dari elemen matriks area perkiraan perbatasan $g_5$ diambil dari nilai rerata geometris dari nilai ternormalisasi terbobot V dari setiap alternatif untuk kriteria ke-5. Setelah dilakukan perhitungan yang sama untuk kriteria-kriteria yang lain, maka diperoleh nilai Elemen Matriks Area Perkiraan Perbatasan G seperti dalam TABEL 6 berikut ini :

TABEL 6 : Nilai Elemen Matriks Area Perkiraan Perbatasan (G)
No.KriteriaG
KodeNama
1C1Kemampuan Teknis$1.442 \times 10^{-16}$
2C2Kualitas$1.471 \times 10^{-7}$
3C3Fleksibilitas$4.663 \times 10^{-12}$
4C4Responsibilitas$1.158 \times 10^{-14}$
5C5Sistem Komunikasi$4.332 \times 10^{-19}$
6C6Histori Performansi$3.027 \times 10^{-14}$
7C7Kebijakan Garansi$9.720 \times 10^{-12}$
8C8Transportasi$5.753 \times 10^{-11}$
9C9Pengiriman$6.667 \times 10^{-10}$
10C10Biaya langsung$0.111$

2.3.5. Menghitung Jarak Alternatif (Q)

Berdasarkan persamaan MAB-08, MAB-09, dan MAB-10, Jarak Alternatif (Q) untuk setiap alternatif ke-i dapat dihitung, semisal untuk alternatif ke-2 (Boga Extra) dapat ditentukan nilai Jarak Alternatif-nya (Q2) seperti perhitungan berikut:

$\begin{align} Q_{2,5}&=v_{2,5}-g_{5} \\ &=0.028-4.332 \times 10^{-19} \\ &=0.028169014084507\end{align}$

Untuk alternatif dan kriteria yang lain bisa dihitung nilai jarak alterntif Q-nya dengan cara yang sama, dan hasilnya adalah sebagai berikut:

TABEL 7 : Nilai Jarak Alternatif (Q)
No.AlternatifQ
KodeNama$C_1$$C_2$$C_3$$C_4$$C_5$$C_6$$C_7$$C_8$$C_9$$C_10$
1A1Organik Prima0.0700.3940.1970.0990.0470.0700.1690.1880.1550.171
2A2Boga Extra0.0850.1970.1730.1130.0280.0850.1690.2250.1550.171
3A3Fresh Sejahtera0.0420.3940.1230.0700.0280.1270.1690.1500.2320.030
4A4Rasa Prima0.0420.3940.0990.0990.0520.0850.1010.1130.1550.030
5A5Rasa Sejahtera0.0560.2960.0990.0700.0470.0850.1690.1130.3100.030
6A6Organik Sejahtera0.0560.1970.1230.0560.0330.0990.1690.1880.1940.030
7A7Fresh Mandiri0.0420.1970.1970.0560.0280.1130.1180.1130.1550.030
8A8Sari Utama0.0850.3940.1230.0560.0560.1410.0850.1500.3100.030
9A9Sari Mandiri0.0420.2960.1730.1130.0330.0700.1690.1880.1550.030
10A10Boga Mandiri0.0850.3940.1230.0990.0380.0850.1520.1880.3100.171
11A11Boga Sejahtera0.0700.2960.1230.1130.0560.0850.1690.2250.1550.030
12A12Sari Sejahtera0.0850.1970.1480.0850.0470.0850.1350.1500.2320.171
13A13Pangan Mandiri0.0560.3940.0990.1130.0280.0850.1180.1880.1550.171

2.3.6. Perangkingan

Nilai Fungsi Kriteria (S) yang diperoleh dari hasil perhitungan sebelumnya selanjutnya diurutkan dari yang terbesar hingga yang terendah seperti terlihat dalam TABEL 8 seperti berikut ini :

TABEL 10 : Perangkingan
NoAlternatifNilai Fungsi Kriteria (S)Ranking
KodeNama
1A10Boga Mandiri1.64359361667741
2A1Organik Prima1.56072976691222
3A8Sari Utama1.43044807677133
4A13Pangan Mandiri1.40673915658354
5A2Boga Extra1.39993164484645
6A3Fresh Sejahtera1.36706779508126
7A12Sari Sejahtera1.33443868717
8A11Boga Sejahtera1.32246685611418
9A5Rasa Sejahtera1.27434479038649
10A9Sari Mandiri1.268476245785410
11A4Rasa Prima1.169180471137511
12A6Organik Sejahtera1.145236809165712
13A7Fresh Mandiri1.049931644846413

Dari hasil perankingan nilai fungsi kriteria (S) tersebut, diperoleh bahwa lokasi ke-10 (Boga Mandiri) dengan skor penilaian sebesar 1.6435936166774 terpilih sebagai pemasok bahan baku yang paling baik, berdasar kriteria-kriteria dan bobot yang sudah ditentukan.

3.1. Persiapan Database

Sebagai bahan pembelajaran aplikasi MABAC 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 mab_criterias jika sudah ada
DROP TABLE IF EXISTS mab_criterias;
-- membuat tabel mab_criterias jika tidak ada
CREATE TABLE IF NOT EXISTS mab_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 mab_criterias(id_criteria,criteria,weight,attribute)
VALUES
(1,'Kemampuan Teknis',0.0420,'benefit'),
(2,'Kualitas',0.1970,'benefit'),
(3,'Fleksibilitas',0.0990,'benefit'),
(4,'Responsibilitas',0.0560,'benefit'),
(5,'Sistem Komunikasi',0.0280,'benefit'),
(6,'Histori Performansi',0.0700,'benefit'),
(7,'Kebijakan Garansi',0.0850,'benefit'),
(8,'Transportasi',0.1130,'cost'),
(9,'Pengiriman',0.1550,'benefit'),
(10,'Biaya langsung',0.1410,'cost');

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 mab_alternatives jika sudah ada
DROP TABLE IF EXISTS mab_alternatives;
-- membuat tabel mab_alternatives jika tidak ada
CREATE TABLE IF NOT EXISTS mab_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 mab_alternatives(id_alternative,name)
VALUES
(1,'Organik Prima'),
(2,'Boga Extra'),
(3,'Fresh Sejahtera'),
(4,'Rasa Prima'),
(5,'Rasa Sejahtera'),
(6,'Organik Sejahtera'),
(7,'Fresh Mandiri'),
(8,'Sari Utama'),
(9,'Sari Mandiri'),
(10,'Boga Mandiri'),
(11,'Boga Sejahtera'),
(12,'Sari Sejahtera'),
(13,'Pangan Mandiri');

Dalam tabel mab_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 mab_criterias dengan tabel mab_alternatives, yaitu tabel mab_evaluations sebagai berikut:

-- menghapus tabel mab_evaluations jika sudah ada
DROP TABLE IF EXISTS mab_evaluations;
-- membuat tabel mab_evaluations jika tidak ada
CREATE TABLE IF NOT EXISTS mab_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 mab_evaluations(id_alternative,id_criteria,value)
VALUES
(1,1,3),(1,2,5),(1,3,8),(1,4,9),(1,5,8),(1,6,1),(1,7,9),(1,8,2),(1,9,4),(1,10,3),
(2,1,4),(2,2,3),(2,3,7),(2,4,10),(2,5,4),(2,6,2),(2,7,9),(2,8,1),(2,9,4),(2,10,3),
(3,1,1),(3,2,5),(3,3,5),(3,4,7),(3,5,4),(3,6,5),(3,7,9),(3,8,3),(3,9,6),(3,10,4),
(4,1,1),(4,2,5),(4,3,4),(4,4,9),(4,5,9),(4,6,2),(4,7,5),(4,8,4),(4,9,4),(4,10,4),
(5,1,2),(5,2,4),(5,3,4),(5,4,7),(5,5,8),(5,6,2),(5,7,9),(5,8,4),(5,9,8),(5,10,4),
(6,1,2),(6,2,3),(6,3,5),(6,4,6),(6,5,5),(6,6,3),(6,7,9),(6,8,2),(6,9,5),(6,10,4),
(7,1,1),(7,2,3),(7,3,8),(7,4,6),(7,5,4),(7,6,4),(7,7,6),(7,8,4),(7,9,4),(7,10,4),
(8,1,4),(8,2,5),(8,3,5),(8,4,6),(8,5,10),(8,6,6),(8,7,4),(8,8,3),(8,9,8),(8,10,4),
(9,1,1),(9,2,4),(9,3,7),(9,4,10),(9,5,5),(9,6,1),(9,7,9),(9,8,2),(9,9,4),(9,10,4),
(10,1,4),(10,2,5),(10,3,5),(10,4,9),(10,5,6),(10,6,2),(10,7,8),(10,8,2),(10,9,8),(10,10,3),
(11,1,3),(11,2,4),(11,3,5),(11,4,10),(11,5,10),(11,6,2),(11,7,9),(11,8,1),(11,9,4),(11,10,4),
(12,1,4),(12,2,3),(12,3,6),(12,4,8),(12,5,8),(12,6,2),(12,7,7),(12,8,3),(12,9,6),(12,10,3),
(13,1,2),(13,2,5),(13,3,4),(13,4,10),(13,5,4),(13,6,2),(13,7,6),(13,8,2),(13,9,4),(13,10,3);

3.2. Koneksi Ke Database Server

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

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 MABAC, sebelumnya diambil terlebih dahulu data-data yang akan digunakan dari database. Yang pertama ada data Alternatif. Data ini diambil dari tabel mab_alternatives dan dimasukkan ke dalam variabel $alternatif dengan kode script PHP seperti berikut

<?php
//-- inisialisasi variabel array alternatif
$alternatif=array();
$sql='SELECT * FROM mab_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 mab_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 mab_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 scodngkan 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 'Kualitas' dengan atribut/tipe 'benefit'

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

3.3. Langkah-Langkah MABAC

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

3.3.1. Menentukan Matriks Keputusan (X)

Mengacu pada persamaan MAB-01 kita dapat membuat matriks keputusan (X) dengan mengambil data dari tabel mab_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 mab_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, scodngkan dimensi yang kedua merupakan index kriteria-nya.$X[$i][$j] berarti merupakan data matrik keputusan untuk alternatif ke $i dan kriteria ke $j

3.3.2. Matriks Normalisasi (N)

Dari matrik keputusan X yang sudah ditentukan dilangkah sebelumnya, kemudian dicari nilai Normalisasinya (N) dengan script berikut:

<?php
//-- inisialisasi array nilai normalisasi (N)
$N=array();
//-- proses untuk setiap data alternatif ke-i
foreach($X as $i=>$xi){
    $N[$i]=array();
    //-- proses untuk setiap data alternatif ke-i kriteria ke-j
    foreach($xi as $j=>$xij){
        if($kriteria[$j][1]=='benefit'){
            //-- normalisasi utk kriteria benefit
            $N[$i][$j]=$xij/$x_max[$j];
        }else{
            //-- normalisasi utk kriteria cost
            $N[$i][$j]=$x_min[$j]/$xij;
        }
    }
}
?>

Sesuai dengan persamaan MAB-02, untuk normalisasi dari data berkriteria benefit maka nilainya dibagi dengan nilai maksimum $x_max pada kriteria tersebut; sedangkan untuk data yang berkriteria cost maka nilai normalisasinya adalah merupkan hasil pembagian nilai minimum $x_min pada kriteria tersebut dibagi dengan nilai datanya.

Nilai-nilai maksimum $x_max dan minimum $x_min untuk masing-masing kriteria sebelumnya dicari dengan script sebagai berikut:

<?php
//-- inisialisasi Nilai Min dan Max
$x_min=$x_max=array();
//-- proses untuk setiap data alternatif ke-i
foreach($X as $i=>$xi){
    //-- proses untuk setiap data alternatif ke-i kriteria ke-j
    foreach($xi as $j=>$xij){
        //-- inisialisasi Nilai Min dan Max utk kriteria ke-j
        if(!isset($x_min[$j])){
            $x_min[$j]=10;
            $x_max[$j]=1;
        }
        //-- menentukan nilai min/max tiap kriteria
        $x_min[$j]=($x_min[$j]>$xij)?$xij:$x_min[$j];
        $x_max[$j]=($x_max[$j]<$xij)?$xij:$x_max[$j];
    }
}
?>

Dalam mencari nilai maksimum $x_max dan minimum $x_min untuk tiap-tiap kriteria sebelumnya diinisialisasi dengan nilai sebagai berikut:

  • nilai minimum $x_min diinisialisasi dengan nilai yang tertinggi (dalam contoh ini memakai nilai 10, sesuaikan dengan nilai data terbesar yang ada dalam matriks keputusan X yang diolah)
  • nilai maximum $x_max diinisialisasi dengan nilai yang terendah (dalam contoh ini memakai nilai 1, sesuaikan dengan nilai data terkecil yang ada dalam matriks keputusan X yang diolah)

Nilai maksimum/minimum untuk setiap kriteria diperoleh dengan membandingkan nilai $x_max/$x_min dengan nilai data matriks keputusan X untuk alternatif ke-i dan kriteria ke-j, yaitu nilai variable $xij dalam script tersebut

3.3.3. Matriks Normalisasi Terbobot (V)

Berdasarkan persamaan MAB-03 dan MAB--04 dibuat script sebagai berikut :

<?php
//-- inisialisasi Nilai Normalisasi Terbobot (V)
$V=array();
foreach($N as $i=>$ni){
    //-- inisialisasi Nilai Normalisasi Terbobot Alternatif ke-i (Vi)
    $V[$i]=array();
    foreach($ni as $j=>$nij){
        //-- menentukan Nilai Normalisasi Terbobot Alternatif ke-i kriteria ke-j (Vij)
        $V[$i][$j]=$w[$j]*($nij+1);
    }
}
?>

Dalam script di atas, nilai normalisasi terbobot V didapat dari nilai matriks normalisasi N ditambah 1 dikali dengan nilai bobot w di tiap kriteria-nya.

3.3.4. Menentukan Nilai Area Perkiraan Perbatasan (G)

Langkah selanjutnya adalah menghitung nilai Area Perkiraan Perbatasan G sebagai berikut:

<?php
//-- inisialisasi array G
$G=array();
foreach($V as $i=>$vi){
    foreach($vi as $j=>$vij){
        //-- inisialisasi nilai  Area Perkiraan Perbatasan kriteria ke-j (Gj)
        if(!isset($G[$j])) $G[$j]=1;
        $G[$j]*=$vij;
    }
    if($i==$jml_alternative) {
        //-- menentukan nilai Area Perkiraan Perbatasan  per kriteria
        $G[$j]=pow($G[$j],1/$jml_kriteria);
    }
}
?>

3.3.5. Menghitung Jarak Alternatif (Q)

Langkah berikutnya adalah menghitung Jarak Alternatif Q dengan script berikut ini:

<?php
//-- inisialisasi array nilai jarak Alternatif (Q)
$Q=array();
for($i=1;$i<=$jml_alternative;$i++){
    $Q[$i]=array();
    for($j=1;$j<=$jml_kriteria;$j++){
        $Q[$i][$j]=$V[$i][$j]-$G[$j];
    }
}
?>

3.3.6. Perangkingan

Bagian terakhir dari proses metode MABAC adalah perankingan, dimana data fungsi kriteria $S diurutkan dari yang terbesar hingga yang terkecil. Berikut adalah contoh script PHP-nya

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

Data nilai fungsi kriteria $S diurutkan secara descending dengan fungsi arsort() untuk mengurutkan berdasarkan nilay array namun tetap mempertahankan key-index-nya. Setelah diurutkan, maka item array yang pertama adalah nilai fungsi kriteria S 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-10 (Boga Mandiri)
dengan nilai fungsi kriteria sebesar 1.6435936166774

Source code selengkapnya bisa dilihat di tautan ini source source