Survei Penentuan Urutan Prioritas Kriteria Dalam
Menentukan Pemain Basket Terbaik
Oleh : Ivana Lisa br Sitepu
Mahasiswa S-1 Ilmu Komputer
Universitas Sumatera Utara
Identitas Responden
Nama
tanda tangan
NIM Fakultas :
Jenis Kelamin Laki-laki Perempuan
Petunjuk Pengisian
Berilah tanda ceklish (√) pada kolom skala yang sesuai dengan pendapat anda
Definisi Kode
1 Kedua kriteria yang sama penting (equal)
3 kriteria sedikit lebih penting (slightly) dari kriteria pembandingnya
5 kriteria yang lebih penting (strongly) dari kriteria pembandignya
7 kriteria yang sangat lebih penting (very strong) dari kriteria pembandingnya
9 kriteria yang mutlak lebih penting (extreme) dari kriteria pembandingnya
Contoh
Dalam memilih pemain basket, seberapa pentingkah :
Jika menurut Anda dribling lebih penting dibanding shooting, maka Anda dapat memberi tanda ceklish (√) pada kolom Skala 5 sebelah kiri.
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
1 Dribling shooting
atau sebaliknya ...
Jika menurut Anda shooting lebih penting dibanding dribling, maka Anda dapat memberi tanda ceklish (√)
pada kolom Skala 5 sebelah kanan.
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
Pertanyaan :
Dalam memilih sebuah pemain basket, menurut Anda seberapa pentingkah :
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
1 Dribling Shooting
2 Dribling Passing
3 Dribling Kelincahan
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
1 Shooting Passing
2 Shooting kelincahan
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
LISTING PROGRAM
1. Listing Program Form Utamausing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AHPPM
{
publicpartialclassFormUtama : Form {
public FormUtama() {
InitializeComponent(); }
privatevoid exitToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit(); }
privatevoid FormUtama_Load(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = false; aHPToolStripMenuItem.Visible = false;
}
privatevoid algoritmaProfileMatchingToolStripMenuItem_Click(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = true; aHPToolStripMenuItem.Visible = false;
}
privatevoid algoritmaAHPToolStripMenuItem_Click(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = false; aHPToolStripMenuItem.Visible = true;
}
privatevoid dataPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_pemain == null || Program.form_pemain.IsDisposed) {
Program.form_pemain = newFormPemain(); }
Program.form_pemain.MdiParent = this; Program.form_pemain.Show();
}
privatevoid kriteriaDribbleToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_dribbling == null || Program.form_aspek_dribbling.IsDisposed) {
Program.form_aspek_dribbling = newFormAspekDribbling(); }
Program.form_aspek_dribbling.MdiParent = this; Program.form_aspek_dribbling.Show();
}
{
if (Program.form_aspek_shooting == null || Program.form_aspek_shooting.IsDisposed) {
Program.form_aspek_shooting = newFormAspekShooting(); }
Program.form_aspek_shooting.MdiParent = this; Program.form_aspek_shooting.Show();
}
privatevoid kriteriaPassingToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_passing == null || Program.form_aspek_passing.IsDisposed) {
Program.form_aspek_passing = newFormAspekPassing(); }
Program.form_aspek_passing.MdiParent = this; Program.form_aspek_passing.Show();
}
privatevoid aspekKelincahanToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_kelincahan == null || Program.form_aspek_kelincahan.IsDisposed) {
Program.form_aspek_kelincahan = newFormAspekKelincahan(); }
Program.form_aspek_kelincahan.MdiParent = this; Program.form_aspek_kelincahan.Show();
}
privatevoid penilaianToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaian == null || Program.form_penilaian.IsDisposed) {
Program.form_penilaian = newFormPenilaian(); }
Program.form_penilaian.MdiParent = this; Program.form_penilaian.Show();
}
privatevoid perhitunganToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan == null || Program.form_perhitungan.IsDisposed) {
Program.form_perhitungan = newFormPerhitungan(); }
Program.form_perhitungan.MdiParent = this; Program.form_perhitungan.Show();
}
privatevoid toolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_master_kriteria == null || Program.form_master_kriteria.IsDisposed) {
Program.form_master_kriteria = newFormMasterKriteria(); }
Program.form_master_kriteria.MdiParent = this; Program.form_master_kriteria.Show();
}
privatevoid dataPemainToolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_pemain == null || Program.form_pemain.IsDisposed) {
Program.form_pemain = newFormPemain(); }
Program.form_pemain.Show(); }
privatevoid dataKriteriaToolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_master_kriteria == null || Program.form_master_kriteria.IsDisposed) {
Program.form_master_kriteria = newFormMasterKriteria(); }
Program.form_master_kriteria.MdiParent = this; Program.form_master_kriteria.Show();
}
privatevoid perhitunganKriteriaToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan_kriteria == null || Program.form_perhitungan_kriteria.IsDisposed) {
Program.form_perhitungan_kriteria = newFormPerhitunganKriteria(); }
Program.form_perhitungan_kriteria.MdiParent = this; Program.form_perhitungan_kriteria.Show();
}
privatevoid penilaianKriteriaToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaian_kriteria == null || Program.form_penilaian_kriteria.IsDisposed) {
Program.form_penilaian_kriteria = newFormPenilaianKriteria(); }
Program.form_penilaian_kriteria.MdiParent = this; Program.form_penilaian_kriteria.Show();
}
privatevoid penilaianPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaain_pemain == null || Program.form_penilaain_pemain.IsDisposed) {
Program.form_penilaain_pemain = newFormPenilaianPemain(); }
Program.form_penilaain_pemain.MdiParent = this; Program.form_penilaain_pemain.Show();
}
privatevoid perhitunganPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan_pemain == null || Program.form_perhitungan_pemain.IsDisposed) {
Program.form_perhitungan_pemain = newFormPerhitunganPemain(); }
Program.form_perhitungan_pemain.MdiParent = this; Program.form_perhitungan_pemain.Show();
}
privatevoid tentangToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_tentang == null || Program.form_tentang.IsDisposed) {
Program.form_tentang = newFormAbout(); }
Program.form_tentang.ShowDialog(); }
} }
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 AHPPM
{
publicpartialclassFormPemain : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormPemain() {
InitializeComponent(); }
privatevoid FormPemain_Load(object sender, EventArgs e) {
query = "select * from table_pemain order by nama ASC"; data = database.GetDataTable(query, null);
data = Utility.AutoNumberedTable(data); dataview_pemain.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_pemain.DataSource;
bool isSuccess = database.SaveDataTable("table_pemain", data, null, null);
if (isSuccess) {
query = "select * from table_pemain order by nama ASC"; data = database.GetDataTable(query, null);
data = Utility.AutoNumberedTable(data); dataview_pemain.DataSource = data; MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
3. Listing Program Form Master Kriteria
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
namespace AHPPM
{
publicpartialclassFormMasterKriteria : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormMasterKriteria() {
InitializeComponent(); }
privatevoid FormMasterKriteria_Load(object sender, EventArgs e) {
query = "select * from table_master_kriteria order by kriteria ASC"; parameters = newList<SqlCeParameter>();
data = database.GetDataTable(query, parameters); data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource;
bool isSuccess = database.SaveDataTable("table_master_kriteria", data, null, null);
if (isSuccess) {
query = "select * from table_master_kriteria order by kriteria ASC"; parameters = newList<SqlCeParameter>();
data = database.GetDataTable(query, parameters); data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
4. Listing Program Form Aspek Dribling
using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
namespace AHPPM
{
publicpartialclassFormAspekDribbling : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormAspekDribbling() {
InitializeComponent(); }
privatevoid FormAspekDribbling_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Dribble")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource;
foreach(DataRow row in data.Rows) {
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Dribble";
}
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
if (isSuccess) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Dribble")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
} } }
5. Listing Program Form Aspek Kelincahan
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 AHPPM
{
publicpartialclassFormAspekKelincahan : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormAspekKelincahan() {
InitializeComponent(); }
privatevoid FormAspekKelincahan_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource;
foreach (DataRow row in data.Rows) {
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Kelincahan";
}
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
if (isSuccess) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid dataview_kriteria_CellContentClick(object sender, DataGridViewCellEventArgs e) {
} } }
6. Listing Program Form Aspek Passing
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 AHPPM
{
publicpartialclassFormAspekPassing : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormAspekPassing() {
InitializeComponent(); }
privatevoid FormAspekPassing_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Passing")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource;
foreach (DataRow row in data.Rows) {
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Passing";
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
if (isSuccess) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Passing")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
7. Listing Program Form Aspek Shooting
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 AHPPM
{
publicpartialclassFormAspekShooting : Form {
Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormAspekShooting() {
InitializeComponent(); }
privatevoid FormAspekShooting_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Shooting")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource;
foreach (DataRow row in data.Rows) {
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Shooting";
}
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
if (isSuccess) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Shooting")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");
}
else
{
MessageBox.Show("Failed"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid label1_Click(object sender, EventArgs e) {
} } }
8. Listing Program Form 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 AHPPM
{
publicpartialclassFormPenilaianKriteria : Form {
conststring JenisPenilaian = "Kriteria"; Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormPenilaianKriteria() {
}
privatevoid FormPenilaianKriteria_Load(object sender, EventArgs e) {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
DataTable data_penilaian = (DataTable)dataview_nilai.DataSource;
foreach (DataRow row in data_penilaian.Rows) {
if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = JenisPenilaian; }
bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);
if (isSuccess) {
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data;
MessageBox.Show("Success Saving table Penilaian"); }
else
{
MessageBox.Show("Failed Saving table Penilaian"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
9. Listing Program Form Penilaian Pemain
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 AHPPM
{
{
conststring JenisPenilaian = "Pemain"; Database database = newDatabase("CEConn"); DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
string query = "";
public FormPenilaianPemain() {
InitializeComponent(); }
privatevoid FormPenilaianPemain_Load(object sender, EventArgs e) {
//loading data penilaian dribble
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Dribble")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_dribble.DataSource = data;
//loading data penilaian passing
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Passing")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_passing.DataSource = data;
//loading data penilaian shooting
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Shooting")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_shooting.DataSource = data;
//loading data penilaian kelincahan
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Kelincahan")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kelincahan.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
SaveDribble("Dribble", dataview_dribble); SaveDribble("Passing", dataview_passing); SaveDribble("Shooting", dataview_shooting); SaveDribble("Kelincahan", dataview_kelincahan); }
privatevoid SaveDribble(string penilaian, DataGridView dataview) {
database = newDatabase("CEConn");
DataTable data_penilaian = (DataTable)dataview.DataSource;
if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = "Pemain" + penilaian; }
bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);
if (isSuccess) {
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", "Pemain" + penilaian)); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview.DataSource = data;
MessageBox.Show("Success Saving table Penilaian " + penilaian); }
else
{
MessageBox.Show("Failed Saving table Penilaian " + penilaian); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
10. Listing Program Form Perhitungan 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;
using System.Diagnostics;
namespace AHPPM
{
publicpartialclassFormPerhitunganKriteria : Form {
conststring JenisPenilaian = "Kriteria";
constdouble IRValue = 0.9; // 4 kriteria
Database database = newDatabase("CEConn"); DataTable Data = newDataTable();
DataTable Data_kriteria = newDataTable(); DataTable DistinctSumber = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>(); Stopwatch stopwatch = newStopwatch();
string query = "";
public FormPerhitunganKriteria() {
InitializeComponent(); }
privatevoid FormPerhitunganKriteria_Load(object sender, EventArgs e) {
privatevoid LoadData() {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); Data = database.GetDataTable(query, parameters);
//loading data kriteria
query = "select * from table_master_kriteria ORDER BY Kriteria ASC"; parameters = newList<SqlCeParameter>();
Data_kriteria = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
DistinctSumber = dataview.ToTable(true, "Sumber"); GenerateView(DistinctSumber);
DataTable table_consolidated = newDataTable();
foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_data_" + sumber, true);
if (ctls.Length > 0) {
dataview = newDataView(Data);
dataview.RowFilter = "Sumber = '" + sumber + "'"; DataTable table = dataview.ToTable();
table.Columns.Remove("Id");
((DataGridView)ctls[0]).DataSource = table;
ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true);
if (ctls.Length > 0) {
DataTable table_matriks = ConvertToMatriks(table, Data_kriteria); ((DataGridView)ctls[0]).DataSource = table_matriks;
if (table_consolidated.Rows.Count <= 0) {
table_consolidated = table_matriks.Copy(); }
} } }
if (DistinctSumber.Rows.Count > 1) {
// init table consolidated
for (int i = 0; i < table_consolidated.Rows.Count; i++) {
for (int j = 1; j < table_consolidated.Columns.Count; j++) {
table_consolidated.Rows[i][j] = i + 1 == j ? 1 : 0; }
}
// hitung consolidated matriks
foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true);
if (ctls.Length > 0) {
DataTable table = (DataTable)((DataGridView)ctls[0]).DataSource;
}
table_consolidated = CalculatePair(table_consolidated);
Control[] ctlconsol = tabData.Controls.Find("dataview_matriks_Consolidated", true);
if (ctlconsol.Length > 0) {
((DataGridView)ctlconsol[0]).DataSource = table_consolidated; }
} }
privateDataTable CalculateData(DataTable data, DataTable dataAdd) {
for (int i = 0; i < data.Rows.Count; i++) {
for (int j = i + 1; j < data.Columns.Count ; j++) {
double d = (double)dataAdd.Rows[i][j];
data.Rows[i][j] = (double)data.Rows[i][j] + ( d == 0 ? 0 : Math.Log(d)); }
}
return data; }
privateDataTable CalculatePair(DataTable data) {
for (int i = 0; i < data.Rows.Count; i++) {
for (int j = 0; j <= i; j++) {
if (i == j) continue;
double dup = (double)data.Rows[j][i + 1] / (double)DistinctSumber.Rows.Count; dup = Math.Exp(dup);
data.Rows[j][i + 1] = dup; data.Rows[i][j+1] = 1 / dup; }
}
return data; }
privatevoid GenerateView(DataTable distinctSumber) {
foreach (DataRow rowSumber in distinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString(); TabPage new_page = newTabPage(sumber); TabControl new_tab;
if (distinctSumber.Rows.Count > 1)
new_tab = GenerateDetail2(sumber);
else
new_tab = GenerateDetail(sumber); new_page.Controls.Add(new_tab); tabData.Controls.Add(new_page); }
if (distinctSumber.Rows.Count > 1) {
TabPage new_page2 = newTabPage("Consolidated"); TabControl new_tab2 = GenerateDetail3("Consolidated"); new_page2.Controls.Add(new_tab2);
tabData.Controls.Add(new_page2); }
}
{
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_data = newTabPage("Data"); TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil");
TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_data = newDataGridView();
DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_consistency = newDataGridView();
new_view_data.Dock = DockStyle.Fill; new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;
new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_data.Name = "dataview_data_" + name; new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;
new_view_consistency.Name = "dataview_consistency_" + name; new_page_data.Controls.Add(new_view_data);
new_page_matriks.Controls.Add(new_view_matriks); new_page_hasil.Controls.Add(new_view_hasil);
new_page_consistency.Controls.Add(new_view_consistency);
new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_consistency);
return new_tab; }
privateTabControl GenerateDetail2(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_data = newTabPage("Data"); TabPage new_page_matriks = newTabPage("Matriks"); DataGridView new_view_data = newDataGridView(); DataGridView new_view_matriks = newDataGridView();
new_view_data.Dock = DockStyle.Fill; new_view_matriks.Dock = DockStyle.Fill;
new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_data.Name = "dataview_data_" + name; new_view_matriks.Name = "dataview_matriks_" + name; new_page_data.Controls.Add(new_view_data);
new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks);
return new_tab; }
privateTabControl GenerateDetail3(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil");
TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_consistency = newDataGridView();
new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;
new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;
new_view_consistency.Name = "dataview_consistency_" + name; new_page_matriks.Controls.Add(new_view_matriks);
new_page_hasil.Controls.Add(new_view_hasil);
new_page_consistency.Controls.Add(new_view_consistency);
new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_consistency);
return new_tab; }
privateDictionary<string, DataTable> HitungAHP(DataTable data_nilai_matriks, DataTable data_kriteria) {
Dictionary<string, DataTable> hasil_hitung = newDictionary<string, DataTable>(); DataTable data_matriks = newDataTable("Matriks");
DataTable data_jumlah_kolom = newDataTable("TableJumlahKolom"); DataTable data_akhir = newDataTable("TableAkhir");
double lamda = 0;
double nilaiCI = 0;
double nilaiCR = 0;
double NilaiIR = IRValue;
double JumlahKriteria = data_kriteria.Rows.Count;
data_jumlah_kolom = data_nilai_matriks.Copy(); data_matriks = data_nilai_matriks.Copy();
// hitung total kolom dan baris
Dictionary<string, double> total_kolom = newDictionary<string, double>(); Dictionary<string, double> total_baris = newDictionary<string, double>();
foreach (DataRow kriteria in data_kriteria.Rows) {
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
total_kolom[namakriteria] += (double)row[namakriteria]; }
}
DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Kriteria"] = "Total Kolom";
foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
new_row[namakriteria] = total_kolom[namakriteria]; }
data_jumlah_kolom.Rows.Add(new_row);
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
row[namakriteria] = (double)row[namakriteria] / total_kolom[namakriteria]; }
}
foreach (DataRow row in data_matriks.Rows) {
String namakriteria = row["Kriteria"].ToString();
if (namakriteria == "Total Kolom") continue;
for (int i = 1; i < data_matriks.Columns.Count; i++) {
total_baris[namakriteria] += (double)row[i]; }
}
data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));
Dictionary<string, double> eigenVector = newDictionary<string, double>();
foreach (DataRow row in data_matriks.Rows) {
String namakriteria = row["Kriteria"].ToString();
if (namakriteria == "Total Kolom") continue;
row["Total Baris"] = total_baris[namakriteria];
row["Eigen Vector"] = total_baris[namakriteria] / JumlahKriteria;
row["Eigen Max"] = total_baris[namakriteria] / JumlahKriteria * total_kolom[namakriteria]; }
foreach (DataRow row in data_matriks.Rows) {
String namakriteria = row["Kriteria"].ToString();
if (namakriteria == "Total Kolom") continue; lamda += (double)row["Eigen Max"]; }
nilaiCI = ((lamda) - JumlahKriteria) / (JumlahKriteria - 1); nilaiCR = nilaiCI / NilaiIR;
data_akhir.Columns.Add("Desc", typeof(string)); data_akhir.Columns.Add("Value", typeof(double)); new_row = data_akhir.NewRow();
new_row["Value"] = lamda; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CI"; new_row["Value"] = nilaiCI; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai IR"; new_row["Value"] = NilaiIR; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CR (CI/IR)"; new_row["Value"] = nilaiCR;
data_akhir.Rows.Add(new_row);
hasil_hitung.Add("TableJumlahKolom", data_jumlah_kolom); hasil_hitung.Add("Matriks", data_matriks);
hasil_hitung.Add("TableAkhir", data_akhir);
return hasil_hitung; }
privateDataTable ConvertToMatriks(DataTable data_nilai, DataTable data_kriteria) {
DataTable matriks = newDataTable("Matriks"); matriks.Columns.Add("Kriteria", typeof(string));
foreach (DataRow row in data_kriteria.Rows) {
matriks.Columns.Add(row["Kriteria"].ToString(), typeof(double)); }
foreach (DataRow row in data_kriteria.Rows) {
DataRow new_row = matriks.NewRow(); new_row["Kriteria"] = row["Kriteria"]; matriks.Rows.Add(new_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_nilai.Select("(BandingA = '" + column + "' AND BandingB = '" + row + "')");
double nilai = 0;
string dominan = "";
if (rows.Length == 1) {
nilai = (double)rows[0]["Nilai"];
dominan = rows[0]["Dominan"].ToString(); }
else
{
if (rows.Length == 1) {
nilai = (double)rows[0]["Nilai"];
dominan = rows[0]["Dominan"].ToString(); }
else
{
nilai = 0; }
}
if (row == dominan) {
matriks.Rows[i][j] = nilai; }
elseif (column == dominan) {
matriks.Rows[i][j] = nilai == 0 ? 0 : 1 / nilai; }
else
{
matriks.Rows[i][j] = 0; }
} } }
return matriks; }
privatevoid BtnProses_Click(object sender, EventArgs e) {
stopwatch = newStopwatch(); stopwatch.Start();
Hitung(); stopwatch.Stop();
MessageBox.Show("Calculating is Finish. (elapsed time : " + stopwatch.ElapsedMilliseconds + " ms)"); }
privatevoid Hitung() {
DataView dataview = newDataView(Data);
DataTable distinctSumber = dataview.ToTable(true, "Sumber");
Dictionary<string, DataTable> result = newDictionary<string, DataTable>();
string sumber = "Consolidated";
if (distinctSumber.Rows.Count <= 1) {
sumber = distinctSumber.Rows[0]["Sumber"].ToString(); }
Control[] ctl02 = tabData.Controls.Find("dataview_matriks_" + sumber, true); Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true); Control[] ctl04 = tabData.Controls.Find("dataview_consistency_" + sumber, true);
if (ctl02.Length > 0) {
DataTable table = (DataTable)((DataGridView)ctl02[0]).DataSource; result = HitungAHP(table, Data_kriteria);
DataTable data_jumlah_kolom = result["TableJumlahKolom"]; DataTable data_matriks = result["Matriks"];
DataTable data_akhir = result["TableAkhir"];
((DataGridView)ctl02[0]).DataSource = data_jumlah_kolom; }
if (ctl03.Length > 0) {
((DataGridView)ctl03[0]).DataSource = data_matriks; }
if (ctl04.Length > 0) {
((DataGridView)ctl04[0]).DataSource = data_akhir; }
} }
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid buttonRefresh_Click(object sender, EventArgs e) {
LoadData(); }
privatevoid BSimpan_Click(object sender, EventArgs e) {
string sumber = "Consolidated";
if (DistinctSumber.Rows.Count <= 1) {
sumber = DistinctSumber.Rows[0]["Sumber"].ToString(); }
Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true);
foreach(DataRow kriteria in Data_kriteria.Rows) {
if (ctl03.Length > 0) {
DataTable table = (DataTable)((DataGridView)ctl03[0]).DataSource;
string namakriteria = kriteria["Kriteria"].ToString();
DataRow[] rows = table.Select("Kriteria = '" + namakriteria +"'");
if (rows.Length > 0) {
kriteria["EigenVector"] = rows[0]["Eigen Vector"]; }
} }
bool isSuccess = database.SaveDataTable("table_master_kriteria", Data_kriteria, null, null);
if (isSuccess) {
MessageBox.Show("Success"); }
else
{
MessageBox.Show("Failed"); }
} } }
11. Listing Program Form Perhitungan Pemain
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
using System.Diagnostics;
namespace AHPPM
{
publicpartialclassFormPerhitunganPemain : Form {
conststring JenisPenilaian = "Pemain";
constdouble IRValue = 0.9; // 4 kriteria
Database database = newDatabase("CEConn"); DataTable Data_pemain = newDataTable(); DataTable Data_kriteria = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>(); Stopwatch stopwatch = newStopwatch();
string query = "";
public FormPerhitunganPemain() {
InitializeComponent(); }
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid FormPerhitunganPemain_Load(object sender, EventArgs e) {
LoadData("Dribble"); LoadData("Passing"); LoadData("Shooting"); LoadData("Kelincahan");
//loading data kriteria
query = "select * from table_master_kriteria ORDER BY Kriteria ASC"; parameters = newList<SqlCeParameter>();
Data_kriteria = database.GetDataTable(query, parameters); }
privateDataTable GetDataPenilaian(string kriteria) {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + kriteria)); DataTable Data = database.GetDataTable(query, parameters);
return Data; }
privatevoid LoadData(string kriteria) {
DataTable Data = GetDataPenilaian(kriteria);
//loading data pemain
query = "select * from table_pemain ORDER BY Nama ASC"; parameters = newList<SqlCeParameter>();
Data_pemain = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
Control[] tabs = tabData.Controls.Find("tab" + kriteria, true);
if (tabs.Length > 0) {
tabs[0].Controls.Add(GenerateView(DistinctSumber, kriteria)); }
DataTable table_consolidated = newDataTable();
foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_data_" + kriteria + sumber, true);
if (ctls.Length > 0) {
dataview = newDataView(Data);
dataview.RowFilter = "Sumber = '" + sumber + "'"; DataTable table = dataview.ToTable();
table.Columns.Remove("Id");
((DataGridView)ctls[0]).DataSource = table;
ctls = tabData.Controls.Find("dataview_matriks_" + kriteria + sumber, true);
if (ctls.Length > 0) {
DataTable table_matriks = ConvertToMatriks(table, Data_pemain); ((DataGridView)ctls[0]).DataSource = table_matriks;
if (table_consolidated.Rows.Count <= 0) {
table_consolidated = table_matriks.Copy(); }
} } }
if (DistinctSumber.Rows.Count > 1) {
// init table consolidated
for (int i = 0; i < table_consolidated.Rows.Count; i++) {
for (int j = 1; j < table_consolidated.Columns.Count; j++) {
table_consolidated.Rows[i][j] = i + 1 == j ? 1 : 0; }
}
// hitung consolidated matriks
foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_matriks_" + kriteria + sumber, true);
if (ctls.Length > 0) {
DataTable table = (DataTable)((DataGridView)ctls[0]).DataSource;
table_consolidated = CalculateData(table_consolidated, table); }
}
table_consolidated = CalculatePair(table_consolidated, DistinctSumber.Rows.Count);
Control[] ctlconsol = tabData.Controls.Find("dataview_matriks_" + kriteria + "Consolidated", true);
if (ctlconsol.Length > 0) {
((DataGridView)ctlconsol[0]).DataSource = table_consolidated; }
privateDataTable CalculateData(DataTable data, DataTable dataAdd) {
for (int i = 0; i < data.Rows.Count; i++) {
for (int j = i + 1; j < data.Columns.Count; j++) {
double d = (double)dataAdd.Rows[i][j];
data.Rows[i][j] = (double)data.Rows[i][j] + (d == 0 ? 0 : Math.Log(d)); }
}
return data; }
privateDataTable CalculatePair(DataTable data, Int32 numberParticipant) {
for (int i = 0; i < data.Rows.Count; i++) {
for (int j = 0; j <= i; j++) {
if (i == j) continue;
double dup = (double)data.Rows[j][i + 1] / (double)numberParticipant; dup = Math.Exp(dup);
data.Rows[j][i + 1] = dup; data.Rows[i][j + 1] = 1 / dup; }
}
return data; }
privateControl GenerateView(DataTable distinctSumber, string kriteria) {
TabControl newTab = newTabControl();
foreach (DataRow rowSumber in distinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString(); TabPage new_page = newTabPage(sumber); TabControl new_tab;
if (distinctSumber.Rows.Count > 1)
new_tab = GenerateDetail2(kriteria + sumber);
else
new_tab = GenerateDetail(kriteria + sumber); new_page.Controls.Add(new_tab);
newTab.Controls.Add(new_page); }
if (distinctSumber.Rows.Count > 1) {
TabPage new_page2 = newTabPage("Consolidated");
TabControl new_tab2 = GenerateDetail3(kriteria + "Consolidated"); new_page2.Controls.Add(new_tab2);
newTab.Controls.Add(new_page2); }
newTab.Dock = DockStyle.Fill;
return newTab; }
privateTabControl GenerateDetail2(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
DataGridView new_view_data = newDataGridView(); DataGridView new_view_matriks = newDataGridView();
new_view_data.Dock = DockStyle.Fill; new_view_matriks.Dock = DockStyle.Fill;
new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_data.Name = "dataview_data_" + name; new_view_matriks.Name = "dataview_matriks_" + name; new_page_data.Controls.Add(new_view_data);
new_page_matriks.Controls.Add(new_view_matriks);
new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks);
return new_tab; }
privateTabControl GenerateDetail3(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil"); TabPage new_page_ranking = newTabPage("Ranking"); TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_page_ranking = newDataGridView(); DataGridView new_view_consistency = newDataGridView();
new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_page_ranking.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;
new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_page_ranking.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name; new_view_page_ranking.Name = "dataview_hasil_" + name; new_view_consistency.Name = "dataview_consistency_" + name; new_page_matriks.Controls.Add(new_view_matriks);
new_page_hasil.Controls.Add(new_view_hasil); new_page_ranking.Controls.Add(new_view_hasil);
new_page_consistency.Controls.Add(new_view_consistency);
new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_ranking); new_tab.Controls.Add(new_page_consistency);
return new_tab;
privateTabControl GenerateDetail(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_data = newTabPage("Data"); TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil");
TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_data = newDataGridView();
DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_consistency = newDataGridView();
new_view_data.Dock = DockStyle.Fill; new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;
new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
new_view_data.Name = "dataview_data_" + name; new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;
new_view_consistency.Name = "dataview_consistency_" + name; new_page_data.Controls.Add(new_view_data);
new_page_matriks.Controls.Add(new_view_matriks); new_page_hasil.Controls.Add(new_view_hasil);
new_page_consistency.Controls.Add(new_view_consistency);
new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_consistency);
return new_tab; }
privateDictionary<string, DataTable> HitungAHP(DataTable data_nilai_matriks, DataTable data_pemain) {
Dictionary<string, DataTable> hasil_hitung = newDictionary<string, DataTable>(); DataTable data_matriks = newDataTable("Matriks");
DataTable data_jumlah_kolom = newDataTable("TableJumlahKolom"); DataTable data_akhir = newDataTable("TableAkhir");
double lamda = 0;
double nilaiCI = 0;
double nilaiCR = 0;
double NilaiIR = IRValue;
double JumlahPemain = data_pemain.Rows.Count;
data_jumlah_kolom = data_nilai_matriks.Copy(); data_matriks = data_nilai_matriks.Copy();
// hitung total kolom dan baris
Dictionary<string, double> total_kolom = newDictionary<string, double>(); Dictionary<string, double> total_baris = newDictionary<string, double>();
foreach (DataRow pemain in data_pemain.Rows) {
}
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
total_kolom[namapemain] += (double)row[namapemain]; }
}
DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Nama"] = "Total Kolom";
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
new_row[namapemain] = total_kolom[namapemain]; }
data_jumlah_kolom.Rows.Add(new_row);
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
row[namapemain] = (double)row[namapemain] / total_kolom[namapemain]; }
}
foreach (DataRow row in data_matriks.Rows) {
String namapemain = row["Nama"].ToString();
if (namapemain == "Total Kolom") continue;
for (int i = 1; i < data_matriks.Columns.Count; i++) {
total_baris[namapemain] += (double)row[i]; }
}
data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));
Dictionary<string, double> eigenVector = newDictionary<string, double>();
foreach (DataRow row in data_matriks.Rows) {
String namapemain = row["Nama"].ToString();
if (namapemain == "Total Kolom") continue;
row["Total Baris"] = total_baris[namapemain];
row["Eigen Vector"] = total_baris[namapemain] / JumlahPemain;
row["Eigen Max"] = total_baris[namapemain] / JumlahPemain * total_kolom[namapemain]; }
foreach (DataRow row in data_matriks.Rows) {
String namapemain = row["Nama"].ToString();
if (namapemain == "Total Kolom") continue; lamda += (double)row["Eigen Max"]; }
nilaiCI = ((lamda) - JumlahPemain) / (JumlahPemain - 1); nilaiCR = nilaiCI / NilaiIR;
new_row["Desc"] = "Lamda"; new_row["Value"] = lamda; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CI"; new_row["Value"] = nilaiCI; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai IR"; new_row["Value"] = NilaiIR; data_akhir.Rows.Add(new_row);
new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CR (CI/IR)"; new_row["Value"] = nilaiCR;
data_akhir.Rows.Add(new_row);
hasil_hitung.Add("TableJumlahKolom", data_jumlah_kolom); hasil_hitung.Add("Matriks", data_matriks);
hasil_hitung.Add("TableAkhir", data_akhir);
return hasil_hitung; }
privateDataTable ConvertToMatriks(DataTable data_nilai, DataTable data_pemain) {
DataTable matriks = newDataTable("Matriks"); matriks.Columns.Add("Nama", typeof(string));
foreach (DataRow row in data_pemain.Rows) {
matriks.Columns.Add(row["Nama"].ToString(), typeof(double)); }
foreach (DataRow row in data_pemain.Rows) {
DataRow new_row = matriks.NewRow(); new_row["Nama"] = row["Nama"]; matriks.Rows.Add(new_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]["Nama"].ToString();
if (column == row) {
matriks.Rows[i][j] = 1; }
else
{
DataRow[] rows = data_nilai.Select("(BandingA = '" + column + "' AND BandingB = '" + row + "')");
double nilai = 0;
string dominan = "";
if (rows.Length == 1) {
nilai = (double)rows[0]["Nilai"];
dominan = rows[0]["Dominan"].ToString(); }
{
rows = data_nilai.Select("(BandingB = '" + column + "' AND BandingA = '" + row + "')");
if (rows.Length == 1) {
nilai = (double)rows[0]["Nilai"];
dominan = rows[0]["Dominan"].ToString(); }
else
{
nilai = 0; }
}
if (row == dominan) {
matriks.Rows[i][j] = nilai; }
elseif (column == dominan) {
matriks.Rows[i][j] = nilai == 0 ? 0 : 1 / nilai; }
else
{
matriks.Rows[i][j] = 0; }
} } }
return matriks; }
privatevoid BtnProses_Click(object sender, EventArgs e) {
stopwatch = newStopwatch(); stopwatch.Start();
Proses("Dribble"); Proses("Shooting"); Proses("Passing"); Proses("Kelincahan"); Perangkingan(); stopwatch.Stop();
MessageBox.Show("Calculating is Finish. (elapsed time : " + stopwatch.ElapsedMilliseconds + " ms)"); }
privatevoid Proses(string kriteria) {
DataTable Data = GetDataPenilaian(kriteria); DataView dataview = newDataView(Data);
DataTable distinctSumber = dataview.ToTable(true, "Sumber");
Dictionary<string, DataTable> result = newDictionary<string, DataTable>();
string sumber = kriteria + "Consolidated";
if (distinctSumber.Rows.Count <= 1) {
sumber = kriteria + distinctSumber.Rows[0]["Sumber"].ToString(); }
Control[] ctl02 = tabData.Controls.Find("dataview_matriks_" + sumber, true); Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true); Control[] ctl04 = tabData.Controls.Find("dataview_consistency_" + sumber, true);
if (ctl02.Length > 0) {
DataTable data_jumlah_kolom = result["TableJumlahKolom"]; DataTable data_matriks = result["Matriks"];
DataTable data_akhir = result["TableAkhir"];
if (ctl02.Length > 0) {
((DataGridView)ctl02[0]).DataSource = data_jumlah_kolom; }
if (ctl03.Length > 0) {
((DataGridView)ctl03[0]).DataSource = data_matriks; }
if (ctl04.Length > 0) {
((DataGridView)ctl04[0]).DataSource = data_akhir; }
} }
privatevoid Perangkingan() {
DataTable table_rangking = newDataTable();
table_rangking.Columns.Add("Kriteria", typeof(string)); table_rangking.Columns.Add("Prioritas", typeof(double));
Dictionary<String, DataTable> datas = newDictionary<string, DataTable>();
foreach (DataRow kriteria in Data_kriteria.Rows) {
string namakriteria = kriteria["Kriteria"].ToString(); DataTable table_nilai = GetDataPenilaian(namakriteria);
Control[] ctls = tabData.Controls.Find("dataview_hasil_" + namakriteria + "Consolidated", true);
if (ctls.Length > 0) {
table_nilai = (DataTable)((DataGridView)(ctls[0])).DataSource; }
else
{
ctls = tabData.Controls.Find("dataview_hasil_" + namakriteria + table_nilai.Rows[0]["Sumber"].ToString(), true);
if (ctls.Length > 0) {
table_nilai = (DataTable)((DataGridView)(ctls[0])).DataSource; }
}
datas.Add(namakriteria, table_nilai); }
foreach (DataRow pemain in Data_pemain.Rows) {
string namapemain = pemain["Nama"].ToString();
table_rangking.Columns.Add(namapemain, typeof(double)); }
foreach (DataRow kriteria in Data_kriteria.Rows) {
string namakriteria = kriteria["Kriteria"].ToString();
double eigenvector = String.IsNullOrEmpty(kriteria["EigenVector"].ToString()) ? 0 : (double)(kriteria["EigenVector"]); ;
DataRow row_total = table_rangking.NewRow(); row_total["Kriteria"] = "Total";
foreach (DataRow rank in table_rangking.Rows) {
string namakriteria = rank["Kriteria"].ToString();
double eigenvectorkriteria = (double)rank["Prioritas"];
foreach (DataRow pemain in Data_pemain.Rows) {
string namapemain = pemain["Nama"].ToString();
DataRow[] rows = datas[namakriteria].Select("Nama ='" + namapemain + "'");
double eigenvectorpemain = rows.Length > 0 ? (double)rows[0]["Eigen Vector"] : 1; rank[namapemain] = eigenvectorkriteria * eigenvectorpemain;
if (String.IsNullOrEmpty(row_total[namapemain].ToString())) row_total[namapemain] = 0;
row_total[namapemain] = (double)row_total[namapemain] + (double)rank[namapemain];
} }
table_rangking.Rows.Add(row_total);
DataGridView dataview_hasilhitung = newDataGridView(); dataview_hasilhitung.DataSource = table_rangking; dataview_hasilhitung.Dock = DockStyle.Fill; tabHasilHitung.Controls.Add(dataview_hasilhitung);
// data ranking
DataTable ranking = newDataTable(); ranking = Data_pemain.Copy(); ranking.Columns.Remove("Id");
ranking.Columns.Add("Rank", typeof(double));
foreach (DataRow pemain in ranking.Rows) {
pemain["Rank"] = row_total[pemain["Nama"].ToString()]; }
DataView dv = newDataView(ranking); dv.Sort = "Rank DESC"; ranking = dv.ToTable();
for (int i = 0; i < ranking.Rows.Count; i++) {
ranking.Rows[i]["Rank"] = i + 1; }
DataGridView dataview_ranking = newDataGridView(); dataview_ranking.DataSource = ranking; dataview_ranking.Dock = DockStyle.Fill; tabRanking.Controls.Add(dataview_ranking);
}
privatevoid buttonRefresh_Click(object sender, EventArgs e) {
LoadData("Dribble"); }
12. Listing Program Form About
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;
namespace AHPPM
{
publicpartialclassFormAbout : Form {
public FormAbout() {
InitializeComponent(); }
privatevoid button1_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid label1_Click(object sender, EventArgs e) {