return result;
} }
}
10. Penilaian Kriteria
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
namespace MenentukanAntibiotik
{ public
partial class
PenilaianKriteria :
Form {
public PenilaianKriteria
{ InitializeComponent;
}
private void
PenilaianKriteria_Load object
sender, EventArgs
e {
LoadData; }
private void
LoadData {
Database database =
new Database
CEConn ;
DataTable data =
new DataTable
; List
SqlCeParameter parameters =
new List
SqlCeParameter ;
String query =
SELECT FROM table_penilaian_kriteria ORDER BY KriteriaA ASC, KriteriaB ASC
; parameters =
new List
SqlCeParameter ;
data = database.GetDataTablequery, parameters;
Universitas Sumatera Utara
data = Utility
.AutoNumberedTabledata; data_nilai.DataSource = data;
}
private void
SaveData {
Database database =
new Database
CEConn ;
DataTable data =
DataTable data_nilai.DataSource;
bool isOk = database.SaveDataTable
table_penilaian_kriteria , data,
null ,
null ;
if isOk
{ LoadData;
MessageBox .Show
Berhasil Simpan ;
} else
{ MessageBox
.Show Gagal Simpan
; }
}
private void
BSimpan_Click object
sender, EventArgs
e {
SaveData; }
private void
BHitung_Click object
sender, EventArgs
e {
DataTable data =
DataTable data_nilai.DataSource;
DataTable matriks = ConvertToMatrixdata;
Dictionary string
, DataTable
result = new
Dictionary string
, DataTable
; DataTable
TableAkhir = new
DataTable ;
TableAkhir = matriks.Copy; double
TotalEigen = 0; double
NilaiCI = 0; double
NilaiCR = 0; double
IR = 0.58; Int32
counter = 0; result = NormalisasiTableAkhir;
TableAkhir = result[ MatriksAkhir
];
Universitas Sumatera Utara
foreach DataRow
row in
TableAkhir.Rows {
String NamaKriteria = row[
Kriteria ].ToString;
if NamaKriteria ==
Total Kolom continue
; TotalEigen +=
double row[
Eigen Max ];
} NilaiCI = TotalEigen - 33-1;
3 --- jumlah kriteria NilaiCR = NilaiCI IR;
tampilkan hasil perhitungan HasilAHPKriteria
formhasil = new
HasilAHPKriteria ;
formhasil.TableAwal = matriks; formhasil.TableKolom = result[
MatriksJumlahKolom ];
formhasil.TableAkhir = result[ MatriksAkhir
]; formhasil.CI = NilaiCI;
formhasil.CR = NilaiCR; formhasil.IR = IR;
formhasil.perulangan = counter; formhasil.ShowDialog;
}
private DataTable
GetDataKriteria {
Database database =
new Database
CEConn ;
DataTable data =
new DataTable
; List
SqlCeParameter parameters =
new List
SqlCeParameter ;
String query =
SELECT FROM table_kriteria ORDER BY NamaKriteria ASC
; parameters =
new List
SqlCeParameter ;
data = database.GetDataTablequery, parameters; return
data; }
private DataTable
ConvertToMatrix DataTable
data {
DataTable matriks =
new DataTable
Matriks ;
DataTable data_kriteria = GetDataKriteria;
matriks.Columns.Add Kriteria
, typeof
string ;
foreach DataRow
row in
data_kriteria.Rows {
Universitas Sumatera Utara
matriks.Columns.Addrow[ NamaKriteria
].ToString, typeof
double ;
} DataRow
new_row; foreach
DataRow row
in data_kriteria.Rows
{ new_row = matriks.NewRow;
new_row[ Kriteria
] = row[ NamaKriteria
]; matriks.Rows.Addnew_row;
}
for int
i = 0; i matriks.Rows.Count; i++ {
for int
j = 1; j matriks.Columns.Count; j++ {
string column = matriks.Columns[j].ColumnName;
string row = matriks.Rows[i][
Kriteria ].ToString;
if column == row
{ matriks.Rows[i][j] = 1;
}
else {
DataRow [] rows = data.Select
KriteriaA = + column +
AND KriteriaB =
+ row + ;
double nilai = 0;
string dominan =
; if
rows.Length == 1 {
nilai = double
rows[0][ Nilai
]; dominan = rows[0][
Dominan ].ToString;
} else
{ rows = data.Select
KriteriaB = + column +
AND KriteriaA = + row +
; if
rows.Length == 1 {
nilai = double
rows[0][ Nilai
]; dominan = rows[0][
Dominan ].ToString;
Universitas Sumatera Utara
} else
{ nilai = 0;
} }
if row == dominan
{ matriks.Rows[i][j] = nilai;
}
else if
column == dominan {
matriks.Rows[i][j] = nilai == 0 ? 0 : 1 nilai; }
else {
matriks.Rows[i][j] = 0; }
} }
}
return matriks;
} private
Dictionary string
, DataTable
Normalisasi DataTable
data {
Dictionary string
, DataTable
result = new
Dictionary string
, DataTable
; DataTable
matriks = new
DataTable Matriks
; DataTable
data_kriteria = GetDataKriteria; Dictionary
string ,
double total_kolom =
new Dictionary
string ,
double ;
foreach DataRow
kriteria in
data_kriteria.Rows {
total_kolom.Addkriteria[ NamaKriteria
].ToString, 0; }
foreach DataRow
row in
data.Rows {
foreach DataRow
kriteria in
data_kriteria.Rows {
String NamaKriteria = kriteria[
NamaKriteria ].ToString;
Universitas Sumatera Utara
total_kolom[NamaKriteria] += double
row[NamaKriteria]; }
} matriks = data.Copy;
DataRow new_row = matriks.NewRow;
new_row[ Kriteria
] = Total Kolom
; foreach
DataRow kriteria
in data_kriteria.Rows
{ String
NamaKriteria = kriteria[ NamaKriteria
].ToString; new_row[NamaKriteria] = total_kolom[NamaKriteria];
} matriks.Rows.Addnew_row;
foreach DataRow
row in
data.Rows {
foreach DataRow
kriteria in
data_kriteria.Rows {
String NamaKriteria = kriteria[
NamaKriteria ].ToString;
row[NamaKriteria] = double
row[NamaKriteria] total_kolom[NamaKriteria];
} }
hitung jumlah baris Dictionary
string ,
double total_baris =
new Dictionary
string ,
double ;
foreach DataRow
kriteria in
data_kriteria.Rows {
total_baris.Addkriteria[ NamaKriteria
].ToString, 0; }
foreach DataRow
row in
data.Rows {
String NamaKriteria = row[
Kriteria ].ToString;
if NamaKriteria ==
Total Kolom continue
; for
int i = 1; i data.Columns.Count; i++
{ total_baris[NamaKriteria] +=
double row[i];
} }
data.Columns.Add
Jumlah Baris ,
typeof double
;
Universitas Sumatera Utara
data.Columns.Add Eigen Vector
, typeof
double ;
data.Columns.Add Eigen Max
, typeof
double ;
foreach DataRow
row in
data.Rows {
String NamaKriteria = row[
Kriteria ].ToString;
if NamaKriteria ==
Total Kolom continue
; row[
Jumlah Baris ] = total_baris[NamaKriteria];
row[ Eigen Vector
] = total_baris[NamaKriteria] data_kriteria.Rows.Count;
row[ Eigen Max
] = double
row[ Eigen Vector
] total_kolom[NamaKriteria];
} result.Add
MatriksJumlahKolom , matriks;
result.Add MatriksAkhir
, data; return
result; }
} }
11. Penilaian Product