Penilaian Kriteria Sistem Pendukung Keputusan Menentukan Antibiotik Menggunakan Algoritma Analytical Hierarchy Process dan Weighted Product

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