Decision Support System Series

Multi-Objective Optimization on the basis of Ratio Analysis

Contoh implementasi DSS (Decision Support System) dengan metode MOORA(Multi-Objective Optimization on the basis of Ratio Analysis) menggunakan PHP dan MySQL untuk pemilihan Curling Iron terbaik

Multi-Objective Optimization on the basis of Ratio Analysis (MOORA) adalah Sistem multi-objektif yang mengoptimalkan dua atau lebih attribut yang saling bertentangan secara bersamaan.

author : cahya dsn, published on : March 12th, 2018 updated on : March 13th, 2021

minerva minerva donasi donation

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

Multi-Objective Optimization on the basis of Ratio Analysis (MOORA) adalah sistem multi-objektif yang mengoptimalkan dua atau lebih attribut yang saling bertentangan secara bersamaan. Metode ini diterapkan untuk memecahkan masalah dengan perhitungan matematika yang kompleks(Brauers,Zavadskas 2008)

1.1. Sejarah Metode MOORA

Moora diperkenalkan oleh Brauers dan Zavadskas pada tahun 2006 , diterapkan untuk memecahkan banyak permasalahan ekonomi ,manajerial dan konstruksi dengan perhitungan rumus matematika dengan hasil yang tepat (Gadakh, 2011). Pada awalnya metode ini diperkenalkan oleh ,Brauers pada tahun 2004 sebagai "Multi-Objective Optimization" yang dapat digunakan untuk memecahkan berbagai masalah pengambilan keputusan yang rumit pada lingkungan pabrik.

Metode MOORA memiliki tingkat fleksibilitas dan kemudahan untuk dipahami dalam memisahkan bagian subjektif dari suatu proses evaluasi kedalam kriteria bobot keputusan dengan beberapa atribut pengambilan keputusan (Mandal , Sarkar, 2012). Metode ini memiliki tingkat selektifitas yang baik karena dapat menentukan tujuan dari kriteria yang bertentangan. Di mana kriteria dapat bernilai menguntungkan (benefit) atau yang tidak menguntungkan (cost).

Metode moora diterapkan untuk memecahkan banyak permasalahan ekonomi, manajerial dan konstruksi pada sebuah perusahaan maupun proyek. Metode ini memiliki tingkat selektifitas yang baik dalam menentukan suatu alternatif. Pendekatan yang dilakukan MOORA didefinisikan sebagai suatu proses secara bersamaan guna mengoptimalkan dua atau lebih kriteria yang saling bertentangan pada beberapa kendala (Attri and Grover, 2013).

1.2. Keunggulan Metode MOORA

Keunggulan MOORA sendiri telah diamati bahwa metode MOORA sangat sederhana, stabil, dan kuat, bahkan metode ini tidak membutuhkan seorang ahli di bidang matematika untuk menggunakan nya serta membutuhkan perhitungan matematis yang sederhana. Selain itu juga metode ini juga memiliki hasil yang lebih akurat dan tepat sasaran dalam membantu pengambilan keputusan. Bila dibandingkan dengan metode yang lain metode MOORA bahkan lebih sederhana dan mudah diimplementasikan.

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

Adapun langkah penyelesaian dari metode MOORA secara lebih terinci dapat dijabarkan sebagai berikut:

2.1. Menginputkan Nilai Kriterian

Menentukan tujuan untuk mengidentifikasi attribut evaluasi yang bersangkutan dan menginputkan nilai kriteria pada suatu alternatif dimana nilai tersebut nantinya akan diproses dan hasilnya akan menjadi sebuah keputusan.

2.2. Membuat Matriks Keputusan

Mewakilkan semua informasi yang tersedia untuk setiap attribut dalam bentuk matriks keputusan. Data pada persamaan [MOO-01] mempersentasikan sebuah matriks Xm x n. Dimana xij adalah pengukuran kinerja dari alternatif ith pada attribut jth , m adalah jumlah alternatif dan n adalah jumlah attribut /kriteria. Kemudian sistem ratio dikembangkan dimana setiap kinerja dari sebuah alternatif pada sebuah attribut dibandingkan dengan penyebut yang merupakan wakil untuk semua alternatif dari attribut tersebut. Berikut adalah perubahan nilai kriteria menjadi sebuah matriks keputusan :

.. [MOO-01]

Keterangan

  • xij : Respon alternatif j pada kriteria i
  • i : 1,2,3, ..., n adalah nomor urutan atribut atau kriteria
  • j : 1,2,3, ..., m adalah nomor urutan alternatif
  • X : Matriks Keputusan

2.3. Matriks Normalisasi

Normalisasi bertujuan untuk menyatukan setiap element matriks sehingga element pada matriks memiliki nilai yang seragam. Brauers, menyimpulkan bahwa untuk penyebut, pilihan terbaik adalah akar kuadrat dari jumlah kuadrat dari setiap alternatif per attribut (Brauers 2008). Rasio ini dapat dinyatakan sebagai berikut

$X_{ij}^{*}=\frac{x_{ij}}{\sqrt{[\sum\limits_{j=1}^{m}x_{ij}^2]}}$
.. [MOO-02]

Keterangan

  • xij : Matriks alternatif j pada kriteria i
  • i : 1,2,3, ..., n adalah nomor urutan atribut atau kriteria
  • j : 1,2,3, ..., m adalah nomor urutan alternatif
  • X*ij : Matriks Normalisasi alternatif j pada kriteria i

2.4. Menghitung Nilai Optimasi

  1. Jika atribut atau kriteria pada masing-masing alternatif tidak diberikan nilai bobot.

    Ukuran yang dinormalisasi ditambahkan dalam kasus maksimasi (untuk attribut yang menguntungkan) dan dikurangi dalam minimisasi (untuk attribut yang tidak menguntungkan) atau dengan kata lain mengurangi nilai maximum dan minimum pada setiap baris untuk mendapatkan rangking pada setiap baris, jika dirumuskan maka:

    $y_{j}^{*}=\sum\limits_{i=1}^{i=g}x_{ij}^{*}-\sum\limits_{i=g+1}^{i+n}x_{ij}^{*}$
    .. [MOO-03]

    Keterangan

    • i : 1,2,3, ..., g adalah atribut atau kriteria dengan status maximized
    • j : g+1, g+2, g+3, ..., n adalah atribut atau kriteria dengan status minimized
    • y*j : Matriks Normalisasi max-min alternatif j

  2. Jika atribut atau kriteria pada masing-masing alternatif di berikan nilai bobot kepentingan

    Pemberian nilai bobot pada kriteria, dengan ketentuan nilai bobot jenis kriteria maximum lebih besar dari nilai bobot jenis kriteria minimum.

    Untuk menandakan bahwa sebuah atribut lebih penting itu bisa di kalikan dengan bobot yang sesuai (koefisien signifikasi) (Brauers et al.2009 dalam Ozcelik, 2014).

    Berikut rumus menghitung nilai Optimasi Multiobjektif MOORA, perkalian bobot kriteria terhadap nilai atribut maximum dikurang perkalian bobot kriteria terhadap nilai atribut minimum, jika dirumuskan maka:

    $y_{i}=\sum\limits_{j=1}^{g}w_{j}x_{ij}^{*}-\sum\limits_{j=g+1}^{n}w_{j}x_{ij}^{*}$
    .. [MOO-04]

    Keterangan

    • i : 1,2,3, ..., g adalah atribut atau kriteria dengan status maximized
    • j : g+1, g+2, g+3, ..., n adalah atribut atau kriteria dengan status minimized
    • wj : bobot terhadap alternatif j
    • y*j : Nilai penilaian yang sudah dinormalisasi dari alternatif j terhadap semua atribut

2.5. Perangkingan

Nilai yi dapat menjadi positif atau negatif tergantung dari total maksimal (atribut yang menguntungkan) dalam matriks keputusan. Sebuah urutan peringkat dari yi menunjukkan pilihan terahir. Dengan demikian alternatif terbaik memiliki nilai yi tertinggi sedangkan alternatif terburuk memiliki nilai yi terendah.

Output Dari Perhitungan Metode MOORA

  1. Alternatif yang memiliki nilai akhir (yi) tertinggi maka alternatif tersebut merupakan alternatif terbaik dari data yang ada, alternatif ini akan dipilih sesuai dengan permasalahan yang ada karena ini merupakan pilihan terbaik.
  2. Sedangkan alternatif yang memiliki nilai akhir (yi) terendah adalah alternatif yang terburuk dari data yang ada.

This document using Dynamic Content Technology for enrichment sample case and reading experience
  • Data yang digunakan BUKAN merupakan data real, tapi data yang digenerate secara otomatis dari sistem
  • Data dan Nilai Perhitungan yang ditampilkan akan SELALU BERBEDA jika halaman di refresh/reload
  • Jumlah dan Nama produk alternatif ditampilkan secara acak/random antara 5 s.d 9

Evaluasi penilaian Produk Curling Iron Terbaik dari 5 produk alternatif yang akan dibeli. Akan dipilih satu produk terbaik berdasarkan kriteria-kriteria yang telah ditentukan. Konsepnya adalah mencari produk Curling Iron yang memiliki karakteristik terbaik dari beberapa atribut/kriteria yang dinilai.

3.1. Data Awal

Dalam contoh kasus ini diperoleh data awal sebagai berikut

Tabel 1 Data Produk Sebelum di-Fuzzy-kan
NoKodeMerkBahanHargaPengatur SuhuUkuranGaransi
1A1Sayota Curly HC 80Stainless125.000Tidak30 x 10 x10Tidak Ada
2A2Philips Curly HP 8605Keramik575.000Ya20 x 5 x 101 Tahun
3A3Wigo W-811 Curling IronAluminium199.000Ya32 x 6 x 71 Bulan
4A4Rui Zhi Tools Curling IronAluminium249.000Ya20 x 5 x 101 Bulan
5A5Sonar Tourmalin SN-1071Tourmalin287.000Ya40 x 32 x 60Tidak Ada

3.2. Bilangan Fuzzy Tiap Kriteria

Sistem Pendukung Keputusan termasuk Fuzzy yang tergolong Fuzzy Multiple Attribute Decision Making (FMADM) adalah suatu metode yang digunakan untuk mencari alternatif optimal dari sejumlah alternatif dengan kriteria tertentu. Inti dari FMADM adalah menentukan nilai bobot untuk setiap atribut, kemudian dilanjutkan dengan proses perankingan yang akan menyeleksi alternatif yang sudah diberikan.

Pada dasarnya, ada 3 (tiga) pendekatan untuk mencari nilai bobot atribut, yaitu pendekatan subjektif, pendekatan objektif dan pendekatan integrasi antara subjektif dan objektif. Masing-masing pendekatan memiliki kelebihan dan kelemahan. Pada pendekatan subjektif, nilai bobot ditentukan berdasarkan subjektivitas dari para pengambil keputusan, sehingga beberapa faktor dalam proses perankingan alternatif bisa ditentukan secara bebas. Pada pendekatan objektif, nilai bobot dihitung secara matematis sehingga mengabaikan subyektivitas dari pengambil keputusan.

Berdasarkan data di atas, selanjutnya di fuzzy kan. Berikut pemberian nilai masing-masing kriteria. Enam bilangan fuzzy, yaitu Sangat Buruk (SB1), Buruk (B1), Cukup (C), Baik (B2), Cukup Baik (CB) Sangat Baik (SB2)

3.2.1. Nilai Bilangan Fuzzy Untuk Kriteria Bahan Pembuatan

Tabel 2 Nilai Fuzzy kriteria Bahan Pembuatan
BahanBilangan FuzzyNilai
TourmalinSangat baik50
KeramikCukup Baik40
AluminiumBaik30
StainlesCukup20
BesiBuruk10

3.2.2. Nilai Bilangan Fuzzy Untuk Kriteria Harga

Tabel 3 Bilangan Fuzzy Kriteria Harga
HargaBilangan FuzzyNilai
50.000 – 250.000Sangat Baik50
251.000 - 450.000Cukup Baik40
451.000 – 650.000Baik30

3.2.3. Nilai Bilangan Fuzzy Untuk Kriteria Pengatur Suhu

Tabel 4 Nilai Bilangan Fuzzy Kriteria Pengatur Suhu
Dilengkapi Pengatur SuhuBilangan FuzzyNilai
YaSangat Baik50
TidakBuruk20

3.2.4. Nilai Bilangan Fuzzy Untuk Kriteria Ukuran

Tabel 5 Nilai Bilangan Fuzzy Kriteria Ukuran
Ukuran (P x L x T)Bilangan FuzzyNilai
1x1x1 - 15x15x15Sangat baik50
16x16x16 - 30x30x30Cukup Baik40
31x31x31 - 45x45x45Baik30
46x46x46 - 60x60x60Cukup20
61x61x61 - 75x75x75Buruk10

3.2.5. Nilai Bilangan Fuzzy Untuk Kriteria Garansi

Tabel 6 Nilai Bilangan Fuzzy Kriteria Garansi
GaransiBilangan FuzzyNilai
>=1 tahunSangat baik50
<= 1 tahunCukup Baik40
Tidak adaBaik30

3.3. Input Nilai Fuzzy setiap Alternatif

Berdasarkan nilai-nilai fuzzy dari tiap kriteria yang sudah ditentukan sebelumnya, nilai kriteria pada masing-masing alternatif yang ada pada tabel 1 sebelumnya menjadi seperti berikut ini:

Tabel 7 Nilai Fuzzy Setiap Kriteria untuk Setiap Alternatif
NoKodeMerkBahanHargaPengatur SuhuUkuranGaransi
1A1Sayota Curly HC 802050204030
2A2Philips Curly HP 86054030504050
3A3Wigo W-811 Curling Iron3050503040
4A4Rui Zhi Tools Curling Iron3050504040
5A5Sonar Tourmalin SN-10715040503030

3.4. Menentukan Jenis dan Bobot Kriteria

Berikutnya adalah menentukan jenis tiap kriteria, yaitu termasuk kriteria benefit atau cost. Penentuan ini berdasarkan informasi:

  • Benefit : Jenis kriteria jika nilai semakin besar maka semakin baik, jika semakin kecil maka bernilai tidak baik
  • Cost : Jenis kriteria jika nilai semakin kecil maka semakin baik, jika semakin besar maka bernilai tidak baik

Dan ditentukan juga nilai bobot dari masing-masing kriterianya sebagai berikut

Tabel 8 Jenis dan Bobot Setiap Kriteria
NoKodeKriteriaTypeBobotSatuan
1K1Bahan Pembuatanbenefit2.2-
2K2Pengaturan Suhubenefit2.1°C
3K3Garansibenefit2.1Tahun/Bulan
4K4Hargacost1.8Rp.
5K5Ukurancost1.8P x L x T

3.5. Memasukan Nilai Kriteria tiap Alternatif

Berdasarkan data pada tabel 7 dan tabel 8 dapat dibuat tabel sebagai berikut :

Tabel 9 Nilai Kriteria tiap Alternatif
AlternatifKriteria
BahanPengatur SuhuGaransiHargaUkuran
K1K2K3K4K5
A12020305040
A24050503040
A33050405030
A43050405040
A55050304030

3.6. Membuat Matriks Keputusan

Berdasarkan nilai pada tabel 9 diperoleh data matrik keputusan (X) sebgai berikut

X = 2020305040
4050503040
3050405030
3050405040
5050304030

3.7. Membuat Matriks Normalisasi

Langkah berikutnya, sesuai dengan persamaan [MOO-02] adalah menentukan nilai normalisasi untuk tiap kriteria dari setiap alternatif, dan membuatnya menjadi sebuah matriks Normalisasi. Perhitungan detailnya untuk tiap kriteria dan alternatif adalah sebagai berikut:

Normalisasi Kolom 1 (Kolom Kriteria 'Bahan Pembuatan'(K1))

Normalisasi Matriks(1,1) - baris 1 kolom 1
$x_{1,1}^*=\frac{x_{1,1}}{\sqrt{x_{1,1}^2 + x_{2,1}^2 + x_{3,1}^2 + x_{4,1}^2 + x_{5,1}^2}}$
$x_{1,1}^*=\frac{20}{20^2 + 40^2 + 30^2 + 30^2 + 50^2}$
$x_{1,1}^*=\frac{20}{\sqrt{6300}}$
$x_{1,1}^*=\frac{20}{79.372539331938}$
$x_{1,1}^*= 0.25197631533948$
Normalisasi Matriks(2,1) - baris 2 kolom 1
$x_{2,1}^*=\frac{x_{2,1}}{\sqrt{x_{1,1}^2 + x_{2,1}^2 + x_{3,1}^2 + x_{4,1}^2 + x_{5,1}^2}}$
$x_{2,1}^*=\frac{40}{20^2 + 40^2 + 30^2 + 30^2 + 50^2}$
$x_{2,1}^*=\frac{40}{\sqrt{6300}}$
$x_{2,1}^*=\frac{40}{79.372539331938}$
$x_{2,1}^*= 0.50395263067897$
Normalisasi Matriks(3,1) - baris 3 kolom 1
$x_{3,1}^*=\frac{x_{3,1}}{\sqrt{x_{1,1}^2 + x_{2,1}^2 + x_{3,1}^2 + x_{4,1}^2 + x_{5,1}^2}}$
$x_{3,1}^*=\frac{30}{20^2 + 40^2 + 30^2 + 30^2 + 50^2}$
$x_{3,1}^*=\frac{30}{\sqrt{6300}}$
$x_{3,1}^*=\frac{30}{79.372539331938}$
$x_{3,1}^*= 0.37796447300923$
Normalisasi Matriks(4,1) - baris 4 kolom 1
$x_{4,1}^*=\frac{x_{4,1}}{\sqrt{x_{1,1}^2 + x_{2,1}^2 + x_{3,1}^2 + x_{4,1}^2 + x_{5,1}^2}}$
$x_{4,1}^*=\frac{30}{20^2 + 40^2 + 30^2 + 30^2 + 50^2}$
$x_{4,1}^*=\frac{30}{\sqrt{6300}}$
$x_{4,1}^*=\frac{30}{79.372539331938}$
$x_{4,1}^*= 0.37796447300923$
Normalisasi Matriks(5,1) - baris 5 kolom 1
$x_{5,1}^*=\frac{x_{5,1}}{\sqrt{x_{1,1}^2 + x_{2,1}^2 + x_{3,1}^2 + x_{4,1}^2 + x_{5,1}^2}}$
$x_{5,1}^*=\frac{50}{20^2 + 40^2 + 30^2 + 30^2 + 50^2}$
$x_{5,1}^*=\frac{50}{\sqrt{6300}}$
$x_{5,1}^*=\frac{50}{79.372539331938}$
$x_{5,1}^*= 0.62994078834871$

Normalisasi Kolom 2 (Kolom Kriteria 'Pengaturan Suhu'(K2))

Normalisasi Matriks(1,2) - baris 1 kolom 2
$x_{1,2}^*=\frac{x_{1,2}}{\sqrt{x_{1,2}^2 + x_{2,2}^2 + x_{3,2}^2 + x_{4,2}^2 + x_{5,2}^2}}$
$x_{1,2}^*=\frac{20}{20^2 + 50^2 + 50^2 + 50^2 + 50^2}$
$x_{1,2}^*=\frac{20}{\sqrt{10400}}$
$x_{1,2}^*=\frac{20}{101.98039027186}$
$x_{1,2}^*= 0.19611613513818$
Normalisasi Matriks(2,2) - baris 2 kolom 2
$x_{2,2}^*=\frac{x_{2,2}}{\sqrt{x_{1,2}^2 + x_{2,2}^2 + x_{3,2}^2 + x_{4,2}^2 + x_{5,2}^2}}$
$x_{2,2}^*=\frac{50}{20^2 + 50^2 + 50^2 + 50^2 + 50^2}$
$x_{2,2}^*=\frac{50}{\sqrt{10400}}$
$x_{2,2}^*=\frac{50}{101.98039027186}$
$x_{2,2}^*= 0.49029033784546$
Normalisasi Matriks(3,2) - baris 3 kolom 2
$x_{3,2}^*=\frac{x_{3,2}}{\sqrt{x_{1,2}^2 + x_{2,2}^2 + x_{3,2}^2 + x_{4,2}^2 + x_{5,2}^2}}$
$x_{3,2}^*=\frac{50}{20^2 + 50^2 + 50^2 + 50^2 + 50^2}$
$x_{3,2}^*=\frac{50}{\sqrt{10400}}$
$x_{3,2}^*=\frac{50}{101.98039027186}$
$x_{3,2}^*= 0.49029033784546$
Normalisasi Matriks(4,2) - baris 4 kolom 2
$x_{4,2}^*=\frac{x_{4,2}}{\sqrt{x_{1,2}^2 + x_{2,2}^2 + x_{3,2}^2 + x_{4,2}^2 + x_{5,2}^2}}$
$x_{4,2}^*=\frac{50}{20^2 + 50^2 + 50^2 + 50^2 + 50^2}$
$x_{4,2}^*=\frac{50}{\sqrt{10400}}$
$x_{4,2}^*=\frac{50}{101.98039027186}$
$x_{4,2}^*= 0.49029033784546$
Normalisasi Matriks(5,2) - baris 5 kolom 2
$x_{5,2}^*=\frac{x_{5,2}}{\sqrt{x_{1,2}^2 + x_{2,2}^2 + x_{3,2}^2 + x_{4,2}^2 + x_{5,2}^2}}$
$x_{5,2}^*=\frac{50}{20^2 + 50^2 + 50^2 + 50^2 + 50^2}$
$x_{5,2}^*=\frac{50}{\sqrt{10400}}$
$x_{5,2}^*=\frac{50}{101.98039027186}$
$x_{5,2}^*= 0.49029033784546$

Normalisasi Kolom 3 (Kolom Kriteria 'Garansi'(K3))

Normalisasi Matriks(1,3) - baris 1 kolom 3
$x_{1,3}^*=\frac{x_{1,3}}{\sqrt{x_{1,3}^2 + x_{2,3}^2 + x_{3,3}^2 + x_{4,3}^2 + x_{5,3}^2}}$
$x_{1,3}^*=\frac{30}{30^2 + 50^2 + 40^2 + 40^2 + 30^2}$
$x_{1,3}^*=\frac{30}{\sqrt{7500}}$
$x_{1,3}^*=\frac{30}{86.602540378444}$
$x_{1,3}^*= 0.34641016151378$
Normalisasi Matriks(2,3) - baris 2 kolom 3
$x_{2,3}^*=\frac{x_{2,3}}{\sqrt{x_{1,3}^2 + x_{2,3}^2 + x_{3,3}^2 + x_{4,3}^2 + x_{5,3}^2}}$
$x_{2,3}^*=\frac{50}{30^2 + 50^2 + 40^2 + 40^2 + 30^2}$
$x_{2,3}^*=\frac{50}{\sqrt{7500}}$
$x_{2,3}^*=\frac{50}{86.602540378444}$
$x_{2,3}^*= 0.57735026918963$
Normalisasi Matriks(3,3) - baris 3 kolom 3
$x_{3,3}^*=\frac{x_{3,3}}{\sqrt{x_{1,3}^2 + x_{2,3}^2 + x_{3,3}^2 + x_{4,3}^2 + x_{5,3}^2}}$
$x_{3,3}^*=\frac{40}{30^2 + 50^2 + 40^2 + 40^2 + 30^2}$
$x_{3,3}^*=\frac{40}{\sqrt{7500}}$
$x_{3,3}^*=\frac{40}{86.602540378444}$
$x_{3,3}^*= 0.4618802153517$
Normalisasi Matriks(4,3) - baris 4 kolom 3
$x_{4,3}^*=\frac{x_{4,3}}{\sqrt{x_{1,3}^2 + x_{2,3}^2 + x_{3,3}^2 + x_{4,3}^2 + x_{5,3}^2}}$
$x_{4,3}^*=\frac{40}{30^2 + 50^2 + 40^2 + 40^2 + 30^2}$
$x_{4,3}^*=\frac{40}{\sqrt{7500}}$
$x_{4,3}^*=\frac{40}{86.602540378444}$
$x_{4,3}^*= 0.4618802153517$
Normalisasi Matriks(5,3) - baris 5 kolom 3
$x_{5,3}^*=\frac{x_{5,3}}{\sqrt{x_{1,3}^2 + x_{2,3}^2 + x_{3,3}^2 + x_{4,3}^2 + x_{5,3}^2}}$
$x_{5,3}^*=\frac{30}{30^2 + 50^2 + 40^2 + 40^2 + 30^2}$
$x_{5,3}^*=\frac{30}{\sqrt{7500}}$
$x_{5,3}^*=\frac{30}{86.602540378444}$
$x_{5,3}^*= 0.34641016151378$

Normalisasi Kolom 4 (Kolom Kriteria 'Harga'(K4))

Normalisasi Matriks(1,4) - baris 1 kolom 4
$x_{1,4}^*=\frac{x_{1,4}}{\sqrt{x_{1,4}^2 + x_{2,4}^2 + x_{3,4}^2 + x_{4,4}^2 + x_{5,4}^2}}$
$x_{1,4}^*=\frac{50}{50^2 + 30^2 + 50^2 + 50^2 + 40^2}$
$x_{1,4}^*=\frac{50}{\sqrt{10000}}$
$x_{1,4}^*=\frac{50}{100}$
$x_{1,4}^*= 0.5$
Normalisasi Matriks(2,4) - baris 2 kolom 4
$x_{2,4}^*=\frac{x_{2,4}}{\sqrt{x_{1,4}^2 + x_{2,4}^2 + x_{3,4}^2 + x_{4,4}^2 + x_{5,4}^2}}$
$x_{2,4}^*=\frac{30}{50^2 + 30^2 + 50^2 + 50^2 + 40^2}$
$x_{2,4}^*=\frac{30}{\sqrt{10000}}$
$x_{2,4}^*=\frac{30}{100}$
$x_{2,4}^*= 0.3$
Normalisasi Matriks(3,4) - baris 3 kolom 4
$x_{3,4}^*=\frac{x_{3,4}}{\sqrt{x_{1,4}^2 + x_{2,4}^2 + x_{3,4}^2 + x_{4,4}^2 + x_{5,4}^2}}$
$x_{3,4}^*=\frac{50}{50^2 + 30^2 + 50^2 + 50^2 + 40^2}$
$x_{3,4}^*=\frac{50}{\sqrt{10000}}$
$x_{3,4}^*=\frac{50}{100}$
$x_{3,4}^*= 0.5$
Normalisasi Matriks(4,4) - baris 4 kolom 4
$x_{4,4}^*=\frac{x_{4,4}}{\sqrt{x_{1,4}^2 + x_{2,4}^2 + x_{3,4}^2 + x_{4,4}^2 + x_{5,4}^2}}$
$x_{4,4}^*=\frac{50}{50^2 + 30^2 + 50^2 + 50^2 + 40^2}$
$x_{4,4}^*=\frac{50}{\sqrt{10000}}$
$x_{4,4}^*=\frac{50}{100}$
$x_{4,4}^*= 0.5$
Normalisasi Matriks(5,4) - baris 5 kolom 4
$x_{5,4}^*=\frac{x_{5,4}}{\sqrt{x_{1,4}^2 + x_{2,4}^2 + x_{3,4}^2 + x_{4,4}^2 + x_{5,4}^2}}$
$x_{5,4}^*=\frac{40}{50^2 + 30^2 + 50^2 + 50^2 + 40^2}$
$x_{5,4}^*=\frac{40}{\sqrt{10000}}$
$x_{5,4}^*=\frac{40}{100}$
$x_{5,4}^*= 0.4$

Normalisasi Kolom 5 (Kolom Kriteria 'Ukuran'(K5))

Normalisasi Matriks(1,5) - baris 1 kolom 5
$x_{1,5}^*=\frac{x_{1,5}}{\sqrt{x_{1,5}^2 + x_{2,5}^2 + x_{3,5}^2 + x_{4,5}^2 + x_{5,5}^2}}$
$x_{1,5}^*=\frac{40}{40^2 + 40^2 + 30^2 + 40^2 + 30^2}$
$x_{1,5}^*=\frac{40}{\sqrt{6600}}$
$x_{1,5}^*=\frac{40}{81.24038404636}$
$x_{1,5}^*= 0.49236596391733$
Normalisasi Matriks(2,5) - baris 2 kolom 5
$x_{2,5}^*=\frac{x_{2,5}}{\sqrt{x_{1,5}^2 + x_{2,5}^2 + x_{3,5}^2 + x_{4,5}^2 + x_{5,5}^2}}$
$x_{2,5}^*=\frac{40}{40^2 + 40^2 + 30^2 + 40^2 + 30^2}$
$x_{2,5}^*=\frac{40}{\sqrt{6600}}$
$x_{2,5}^*=\frac{40}{81.24038404636}$
$x_{2,5}^*= 0.49236596391733$
Normalisasi Matriks(3,5) - baris 3 kolom 5
$x_{3,5}^*=\frac{x_{3,5}}{\sqrt{x_{1,5}^2 + x_{2,5}^2 + x_{3,5}^2 + x_{4,5}^2 + x_{5,5}^2}}$
$x_{3,5}^*=\frac{30}{40^2 + 40^2 + 30^2 + 40^2 + 30^2}$
$x_{3,5}^*=\frac{30}{\sqrt{6600}}$
$x_{3,5}^*=\frac{30}{81.24038404636}$
$x_{3,5}^*= 0.369274472938$
Normalisasi Matriks(4,5) - baris 4 kolom 5
$x_{4,5}^*=\frac{x_{4,5}}{\sqrt{x_{1,5}^2 + x_{2,5}^2 + x_{3,5}^2 + x_{4,5}^2 + x_{5,5}^2}}$
$x_{4,5}^*=\frac{40}{40^2 + 40^2 + 30^2 + 40^2 + 30^2}$
$x_{4,5}^*=\frac{40}{\sqrt{6600}}$
$x_{4,5}^*=\frac{40}{81.24038404636}$
$x_{4,5}^*= 0.49236596391733$
Normalisasi Matriks(5,5) - baris 5 kolom 5
$x_{5,5}^*=\frac{x_{5,5}}{\sqrt{x_{1,5}^2 + x_{2,5}^2 + x_{3,5}^2 + x_{4,5}^2 + x_{5,5}^2}}$
$x_{5,5}^*=\frac{30}{40^2 + 40^2 + 30^2 + 40^2 + 30^2}$
$x_{5,5}^*=\frac{30}{\sqrt{6600}}$
$x_{5,5}^*=\frac{30}{81.24038404636}$
$x_{5,5}^*= 0.369274472938$

Dari perhitungan nilai normalisasi di atas, maka diperoleh matriks Nilai Normalisasi (X*) sebagai berikut

X* = 0.250.20.350.50.49
0.50.490.580.30.49
0.380.490.460.50.37
0.380.490.460.50.49
0.630.490.350.40.37

3.8. Menghitung Nilai Optimasi

Perhitungan Nilai Optimasi Multiobjektif MOORA (max-min) dalam contoh kasus ini mengacu pada persamaan [MOO-04] karena tiap kriteria memiliki bobot (W) tersendiri. Nilai optimasi ini dihitung untuk setiap alternatif yang diberikan. Nilai tersebut merupakan jumlah perkalian bobot kriteria dengan nilai atribut maksimun (max) yaitu nilai atribut bertipe benefit dikurangi dengan jumlah perkalian dari bobot kriteria dengan nilai atribut minimum (min) yaitu nilai atribut bertipe cost. Perhitungan manualnya ditunjukkan seperti dalam perhitungan berikut ini:

Perhitungan Nilai Optimasi untuk Alternatif 1 (y*1)

y*1=(x*1,1(max).w1+x*1,2(max).w2+x*1,3(max).w3)-(x*1,4 (min).w4+x*1,5 (min).w5)
y*1=((0.25 * 2.2)+(0.2 * 2.1)+(0.35 * 2.1))-((0.5 * 1.8)+(0.49 * 1.8))
y*1=1.693653116716 - 1.7862587350512
y*1=-0.092605618335214

Perhitungan Nilai Optimasi untuk Alternatif 2 (y*2)

y*2=(x*2,1(max).w1+x*2,2(max).w2+x*2,3(max).w3)-(x*2,4 (min).w4+x*2,5 (min).w5)
y*2=((0.5 * 2.2)+(0.49 * 2.1)+(0.58 * 2.1))-((0.3 * 1.8)+(0.49 * 1.8))
y*2=3.3507410622674 - 1.4262587350512
y*2=1.9244823272162

Perhitungan Nilai Optimasi untuk Alternatif 3 (y*3)

y*3=(x*3,1(max).w1+x*3,2(max).w2+x*3,3(max).w3)-(x*3,4 (min).w4+x*3,5 (min).w5)
y*3=((0.38 * 2.2)+(0.49 * 2.1)+(0.46 * 2.1))-((0.5 * 1.8)+(0.37 * 1.8))
y*3=2.8310800023343 - 1.5646940512884
y*3=1.2663859510459

Perhitungan Nilai Optimasi untuk Alternatif 4 (y*4)

y*4=(x*4,1(max).w1+x*4,2(max).w2+x*4,3(max).w3)-(x*4,4 (min).w4+x*4,5 (min).w5)
y*4=((0.38 * 2.2)+(0.49 * 2.1)+(0.46 * 2.1))-((0.5 * 1.8)+(0.49 * 1.8))
y*4=2.8310800023343 - 1.7862587350512
y*4=1.0448212672831

Perhitungan Nilai Optimasi untuk Alternatif 5 (y*5)

y*5=(x*5,1(max).w1+x*5,2(max).w2+x*5,3(max).w3)-(x*5,4 (min).w4+x*5,5 (min).w5)
y*5=((0.63 * 2.2)+(0.49 * 2.1)+(0.35 * 2.1))-((0.4 * 1.8)+(0.37 * 1.8))
y*5=3.1429407830216 - 1.3846940512884
y*5=1.7582467317332

3.9. Menentukan Ranking

Dari hasil perhitungan Nilai Optimasi sebelumnya, dapat diurutkan hasilnya dari yang terbesar sampai yang terkecil; dimana nilai optimasi 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 :

y*2=1.9244823272162
y*5=1.7582467317332
y*3=1.2663859510459
y*4=1.0448212672831
y*1=-0.092605618335214

Sehingga hasil akhir dari DSS MOORA Method ini adalah dipilih alternatif y*2 (Philips Curly HP 8605) dengan Nilai Optimasi sebesar 1.9244823272162

4.1. Persiapan Database

Sebagai bahan pembelajaran aplikasi dengan MOORA 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;

4.1.1. Pembuatan Tabel moo_kriteria

Data-data kriteria seperti dalam Tabel 8 direpresentasikan dalam bentuk table database sebagai berikut:

DROP TABLE IF EXISTS moo_kriteria;
CREATE TABLE IF NOT EXISTS moo_kriteria(
  id_kriteria TINYINT(3) UNSIGNED AUTO_INCREMENT,
  kriteria VARCHAR(100) NOT NULL,
  type SET('benefit','cost') NOT NULL,
  bobot FLOAT NOT NULL,
  PRIMARY KEY(id_kriteria)
)ENGINE=MyISAM;

INSERT INTO moo_kriteria(id_kriteria,kriteria,type,bobot)
VALUES
(1,'Bahan Pembuatan','benefit',2.2),
(2,'Pengaturan Suhu','benefit',2.1),
(3,'Garansi','benefit',2.1),
(4,'Harga','cost',1.8),
(5,'Ukuran','cost',1.8);

4.1.2. Pembuatan Tabel moo_alternatif

Data-data alternatif yang terdapat dalam contoh kasus (Tabel 7) dibuatkan script SQL-nya seperti ini:

DROP TABLE IF EXISTS moo_alternatif;
CREATE TABLE IF NOT EXISTS moo_alternatif(
  id_alternatif TINYINT(3) UNSIGNED AUTO_INCREMENT,
  alternatif VARCHAR(100) NOT NULL,
  bahan VARCHAR(50) NOT NULL,
  harga INT(11) NOT NULL,
  pengatur SET('Ya','Tidak') NOT NULL,
  ukuran VARCHAR(50) NOT NULL,
  garansi VARCHAR(50) NOT NULL,
  PRIMARY KEY(id_alternatif)
)ENGINE=MyISAM;

INSERT INTO moo_alternatif(id_alternatif,alternatif,bahan,harga,pengatur,ukuran,garansi)
VALUES
(1,'Sayota Curly HC 80','Stainless',125.000,'Tidak','30 x 10 x10','Tidak Ada'),
(2,'Philips Curly HP 8605','Keramik',575.000,'Ya','20 x 5 x 10','1 Tahun'),
(3,'Wigo W-811 Curling Iron','Aluminium',199.000,'Ya','32 x 6 x 7','1 Bulan'),
(4,'Rui Zhi Tools Curling Iron','Aluminium',249.000,'Ya','20 x 5 x 10','1 Bulan'),
(5,'Sonar Tourmalin SN-1071','Tourmalin',287.000,'Ya','40 x 32 x 60','Tidak Ada');

4.1.3. Pembuatan Tabel moo_nilai

Nilai data dari semua kriteria dari tiap-tiap alternatif, yang merupakan nilai dari matriks keputusan (Tabel 9) dibuatkan query SQL-nya sebagai berikut:

DROP TABLE IF EXISTS moo_nilai;
CREATE TABLE IF NOT EXISTS moo_nilai(
  id_nilai INT(11) UNSIGNED AUTO_INCREMENT,
  id_alternatif TINYINT(3) UNSIGNED,
  id_kriteria TINYINT(3) UNSIGNED,
  nilai TINYINT(3) UNSIGNED NOT NULL,
  PRIMARY KEY(id_nilai)
)ENGINE=MyISAM;

INSERT INTO moo_nilai(id_alternatif,id_kriteria,nilai)
VALUES
(1,1,20),(1,2,50),(1,3,20),(1,4,40),(1,5,30),
(2,1,40),(2,2,30),(2,3,50),(2,4,40),(2,5,50),
(3,1,30),(3,2,50),(3,3,50),(3,4,30),(3,5,40),
(4,1,30),(4,2,50),(4,3,50),(4,4,40),(4,5,40),
(5,1,50),(5,2,40),(5,3,50),(5,4,30),(5,5,30);

4.2. Koneksi ke Database

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.

4.3. Pengambilan Nilai

Sebelum dilakukan perhitungan-perhitungan menggunakan metoda MOORA 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)

4.3.1. Pengambilan Nilai Kriteria

Data parameter kriteria yang akan digunakan dalam perhitungan metode MOORA ini diambil dari tabel moo_kriteria dan dimasukkan ke dalam variabel $kriteria yang berupa array multidimensi. Variabel $kriteria ini mempunyai index berupa id_kriteria dan berisi item data array yang menyimpan data-data nama kriteria, type (benefit/cost), dan bobot dari masing-masing kriteria tersebut.

<?php
//-- query untuk mendapatkan semua data kriteria di tabel moo_kriteria
$sql 'SELECT * FROM moo_kriteria';
$result $db->query($sql);
//-- menyiapkan variable penampung berupa array
$kriteria=array();
//-- melakukan iterasi pengisian array untuk tiap record data yang didapat
foreach ($result as $row) {
   
$kriteria[$row['id_kriteria']]=array($row['kriteria'],$row['type'],$row['bobot']);
}
?>

Pada contoh kasus yang disajikan, variabel $kriteria[1] berisi nilai berupa array('Bahan Pembuatan','benefit',2.2)

4.3.2. Pengambilan Nilai Alternatif

Kode PHP berikutnya adalah merupakan script untuk mengambil nilai data alternatif yang tersimpan pada tabel moo_alternatif dan menyimpannya ke dalam variabel $alternatif

<?php
//-- query untuk mendapatkan semua data kriteria di tabel moo_alternatif
$sql 'SELECT * FROM moo_alternatif';
$result $db->query($sql);
//-- menyiapkan variable penampung berupa array
$alternatif=array();
//-- melakukan iterasi pengisian array untuk tiap record data yang didapat
foreach ($result as $row) {
   
$alternatif[$row['id_alternatif']]=
        array(
            
$row['alternatif'],
            
$row['bahan'],
            
$row['harga'],
            
$row['pengatur'],
            
$row['ukuran'],
            
$row['garansi']
        );
}
?>

4.3.3. Pengambilan Nilai Penilaian

Data sample penilaian yang tersimpan pada tabel moo_nilai di-fetching dan di-assign ke variabel array dua dimensi $sample. Kode script PHP-nya adalah seperti berikut ini :

<?php
//-- query untuk mendapatkan semua data sample penilaian di tabel moo_nilai
$sql 'SELECT * FROM moo_nilai ORDER BY id_alternatif,id_kriteria';
$result $db->query($sql);
//-- menyiapkan variable penampung berupa array
$sample=array();
//-- melakukan iterasi pengisian array untuk tiap record data yang didapat
foreach ($result as $row) {
   
//-- jika array $sample[$row['id_alternatif']] belum ada maka buat baru
   //-- $row['id_alternatif'] adalah id kandidat/alternatif
   
if (!isset($sample[$row['id_alternatif']])) {
      
$sample[$row['id_alternatif']] = array();
   }
   
$sample[$row['id_alternatif']][$row['id_kriteria']] = $row['nilai'];
}
?>

Nilai dari variabel $sample ini adalah merupakan representasi dari matriks keputusan (lihat Membuat Matriks Keputusan]

4.4. Normalisasi

Dari Matriks Keputusan ($sample) yang diperoleh dari hasil fetching data di atas, kemudian dibuatkan matriks normalisasinya dengan mengacu pada persamaan [MOO-02].

<?php
//-- inisialisasi nilai normalisasi dengan nilai dari $sample
$normal=$sample;
foreach(
$kriteria as $id_kriteria=>$k){
   
//-- inisialisasi nilai pembagi tiap kriteria
   
$pembagi=0;
   foreach(
$alternatif as $id_alternatif=>$a){
      
$pembagi+=pow($sample[$id_alternatif][$id_kriteria],2);
   }
   foreach(
$alternatif as $id_alternatif=>$a){
      
$normal[$id_alternatif][$id_kriteria]/=sqrt($pembagi);
   }
}
?>

4.5. Penghitungan Nilai Optimasi

<?php
//-- menyiapkan variabel untuk menyimpan data yang sudah dioptimasi
$optimasi=array();
foreach(
$alternatif as $id_alternatif=>$a){
   
$optimasi[$id_alternatif]=0;
   foreach(
$kriteria as $id_kriteria=>$k){
      
$optimasi[$id_alternatif]+=$normal[$id_alternatif][$id_kriteria]*($k[1]=='benefit'?1:-1)*$k[2];
   }
}
?>

4.6. Perangkingan

Proses perangkingan dilakukan dengan mengurutkan nilai optimasi berdasarkan besar nilainya, dari yang terbesar sampai dengan yang terkecil; dimana kandidat/alternatif dengan nilai optimasi 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($optimasi);
//-- mendapatkan key/index item array yang pertama
$index=key($optimasi);
//-- menampilkan hasil akhir:
echo "Hasilnya adalah alternatif <b>{$alternatif[$index][0]}</b> ";
echo 
"dengan nilai optimasi <b>{$optimasi[$index]}</b> yang terpilih";
?>

Hasil akhir dari aplikasi PHP ini adalah berupa teks :
'Hasilnya adalah alternatif Philips Curly HP 8605 dengan nilai akhir 1.9244823272162 yang terpilih '.

Source code selengkapnya bisa dilihat di tautan ini source source

Berikut simpulan yang dapat diambil dari contoh kasus dengan metode Multi-Objective Optimization on the basis of Ratio Analysis (MOORA) tersebut:

  • Metode Multi-Objective Optimization on the basis of Ratio Analysis (MOORA) dapat digunakan untuk membantu proses pemilihan pemilihan Curling Iron terbaik
  • Dari beberapa alternatif Curling Iron terpilih Philips Curly HP 8605 dengan total nilai perangkingan sebesar 1.9244823272162

  • Attri R, Grover S (2013) Decision Making Over the Production System Life Cycle: MOORA Method. International Journal of System Assurance Engineering Management 5(3), pp. 320–328
  • Brauers, W., Zavadskas, E. (2006) The MOORA Method and Its Application to Privatization in a Transition Economy by a New Method : the MOORA method, Control and Cybernetics, 35, pp. 445-469
  • Brauers, W., Zavadskas, E., Peldschus, F. and Turskis Z.,(2008) Multi objective Decision-Making for Road Design Transport, 23(3),pp. 183-193,.DOI:10.3846/1648-4142.2008.23.183-193
  • Chakraborty S., (2011) Application of the MOORA method for Decision Making in Manufacturing Environment The International Journal of Advanced Manufacturing Technology 54
  • El-Santawy,M.F., Ahmed, A.N. (2012) Analysis of Project Selection by Using SDVMOORA Approach, Life Science Journal, 9-2s,129-131
  • Gadakh. V.S. (2011). Application of MOORA Method for Parametric Optimization of Milling Process. Vol 1, no 4, India: Martinus Nijhoff
  • Kalibatas, D. and Turskis (2008) Muticriteria Evaluation of Inner Climate by Using MOORA method, Information Technology and Control 37(1),pp. 79-83
  • Kusrini. (2007). Konsep dan Aplikasi Sistem Pendukung Keputusan. Yogyakarta: Penerbit Andi.
  • Kusumadewi, S., Hartati, S., Harjoko, A., dan Wardoyo, R. (2006). Fuzzy Multi-Atribute Decision Making (FUZZY MADM). Yogyakarta: Penerbit Graha Ilmu.
  • Lootsma FA (1999) Multi-criteria Decision Analysis via Ratio and Application of the MOORA method, Proceedings of the 25th difference judgement. Springer, London
  • Mandal, U.K., and Sarkar, B. (2012) Selection of Best Intelligent Manufacturing System (IMS) Under Fuzzy MOORA Conflicting MCDM Environment, International Journal of Emerging Technology and Advanced Engineering, 2, pp. 301-310
  • Ozcelik, G., Aydogan, E.K., Gencer, c. 2014. A hybrid MOORA-Fuzzy Algorithm for Special Education and Rehabilitation Center Selection, Journal of Military and Information Science, 2(3), pp. 53 – 63. German.