Sistem Pendukung Keputusan Dalam Menentukan Pemain Basket Terbaik Menggunakan Algoritma Analytical Hierarchy Process (AHP) Dan Profile Matching (Studi Kasus : SMA Santo Thomas 1 Medan )
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
NIM
Fakultas :
Jenis Kelamin
Laki-laki
Perempuan
tanda tangan
Petunjuk Pengisian
Berilah tanda ceklish (√) pada kolom skala yang sesuai dengan pendapat anda
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
Definisi Kode
2,4,6,8
nilai diantara (intermediate values between) 2 pilihan didekatnya
Universitas Sumatera Utara
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.
Kriteria
Skala Kriteria
Kriteria
No
A
1
9
8
Dribling
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
shooting
atau sebaliknya ...
Jika menurut Anda shooting lebih penting dibanding dribling, maka Anda dapat memberi tanda ceklish (√)
pada kolom Skala 5 sebelah kanan.
Kriteria
Skala Kriteria
Kriteria
No
A
1
Dribling
9
8
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
Universitas Sumatera Utara
Shooting
Pertanyaan :
Dalam memilih sebuah pemain basket, menurut Anda seberapa pentingkah :
Kriteria
Skala Kriteria
Kriteria
No
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
Kriteria
Skala Kriteria
Kriteria
No
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
Kriteria
Skala Kriteria
Kriteria
No
A
1
Passing
9
8
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
Universitas Sumatera Utara
Kelincahan
LISTING PROGRAM
1. Listing Program Form Utama
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
{
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();
}
privatevoid kriteriaShootingToolStripMenuItem_Click(object sender, EventArgs e)
Universitas Sumatera Utara
{
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.MdiParent = this;
Universitas Sumatera Utara
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();
}
}
}
2. Listing Program Form DataPemain
Universitas Sumatera Utara
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 parameters = newList();
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.Data;
Universitas Sumatera Utara
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 parameters = newList();
string query = "";
public FormMasterKriteria()
{
InitializeComponent();
}
privatevoid FormMasterKriteria_Load(object sender, EventArgs e)
{
query = "select * from table_master_kriteria order by kriteria ASC";
parameters = newList();
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();
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.Collections.Generic;
Universitas Sumatera Utara
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 parameters = newList();
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();
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();
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)
{
this.Close();
Universitas Sumatera Utara
}
}
}
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 parameters = newList();
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();
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();
parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan"));
data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data);
dataview_kriteria.DataSource = data;
MessageBox.Show("Success");
}
Universitas Sumatera Utara
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 parameters = newList();
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();
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";
}
Universitas Sumatera Utara
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();
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 parameters = newList();
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();
parameters.Add(newSqlCeParameter("Kriteria", "Shooting"));
data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data);
dataview_kriteria.DataSource = data;
}
privatevoid BtnSave_Click(object sender, EventArgs e)
{
Universitas Sumatera Utara
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();
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 parameters = newList();
string query = "";
public FormPenilaianKriteria()
{
InitializeComponent();
Universitas Sumatera Utara
}
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();
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();
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
{
publicpartialclassFormPenilaianPemain : Form
Universitas Sumatera Utara
{
conststring JenisPenilaian = "Pemain";
Database database = newDatabase("CEConn");
DataTable data = newDataTable();
List parameters = newList();
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();
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();
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();
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();
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;
foreach (DataRow row in data_penilaian.Rows)
{
Universitas Sumatera Utara
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();
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 parameters = newList();
Stopwatch stopwatch = newStopwatch();
string query = "";
public FormPerhitunganKriteria()
{
InitializeComponent();
}
privatevoid FormPerhitunganKriteria_Load(object sender, EventArgs e)
{
LoadData();
}
Universitas Sumatera Utara
privatevoid LoadData()
{
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber
ASC, BandingA ASC, BandingB ASC";
parameters = newList();
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();
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 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 = CalculateData(table_consolidated, table);
}
Universitas Sumatera Utara
}
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 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);
}
}
privateTabControl GenerateDetail(string name)
Universitas Sumatera Utara
{
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_page_matriks.Controls.Add(new_view_matriks);
Universitas Sumatera Utara
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 HitungAHP(DataTable data_nilai_matriks, DataTable data_kriteria)
{
Dictionary hasil_hitung = newDictionary();
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 total_kolom = newDictionary();
Dictionary total_baris = newDictionary();
foreach (DataRow kriteria in data_kriteria.Rows)
{
total_kolom.Add(kriteria["Kriteria"].ToString(), 0);
total_baris.Add(kriteria["Kriteria"].ToString(), 0);
}
Universitas Sumatera Utara
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 eigenVector = newDictionary();
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["Desc"] = "Lamda";
Universitas Sumatera Utara
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
{
rows = data_nilai.Select("(BandingB = '" + column + "' AND BandingA = '" + row + "')");
Universitas Sumatera Utara
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 result = newDictionary();
string sumber = "Consolidated";
if (distinctSumber.Rows.Count 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"];
if (ctl02.Length > 0)
{
Universitas Sumatera Utara
((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 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.Data;
Universitas Sumatera Utara
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 parameters = newList();
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();
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();
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();
Data_pemain = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
DataTable DistinctSumber = dataview.ToTable(true, "Sumber");
Universitas Sumatera Utara
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 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;
}
}
}
Universitas Sumatera Utara
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 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;
TabPage new_page_data = newTabPage("Data");
TabPage new_page_matriks = newTabPage("Matriks");
Universitas Sumatera Utara
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;
}
Universitas Sumatera Utara
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 HitungAHP(DataTable data_nilai_matriks, DataTable data_pemain)
{
Dictionary hasil_hitung = newDictionary();
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 total_kolom = newDictionary();
Dictionary total_baris = newDictionary();
foreach (DataRow pemain in data_pemain.Rows)
{
total_kolom.Add(pemain["Nama"].ToString(), 0);
total_baris.Add(pemain["Nama"].ToString(), 0);
Universitas Sumatera Utara
}
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] = (d
Menentukan Pemain Basket Terbaik
Oleh : Ivana Lisa br Sitepu
Mahasiswa S-1 Ilmu Komputer
Universitas Sumatera Utara
Identitas Responden
Nama
NIM
Fakultas :
Jenis Kelamin
Laki-laki
Perempuan
tanda tangan
Petunjuk Pengisian
Berilah tanda ceklish (√) pada kolom skala yang sesuai dengan pendapat anda
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
Definisi Kode
2,4,6,8
nilai diantara (intermediate values between) 2 pilihan didekatnya
Universitas Sumatera Utara
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.
Kriteria
Skala Kriteria
Kriteria
No
A
1
9
8
Dribling
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
shooting
atau sebaliknya ...
Jika menurut Anda shooting lebih penting dibanding dribling, maka Anda dapat memberi tanda ceklish (√)
pada kolom Skala 5 sebelah kanan.
Kriteria
Skala Kriteria
Kriteria
No
A
1
Dribling
9
8
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
Universitas Sumatera Utara
Shooting
Pertanyaan :
Dalam memilih sebuah pemain basket, menurut Anda seberapa pentingkah :
Kriteria
Skala Kriteria
Kriteria
No
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
Kriteria
Skala Kriteria
Kriteria
No
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
Kriteria
Skala Kriteria
Kriteria
No
A
1
Passing
9
8
7
6
5
4
3
2
1
2
3
4
5
6
7
8
9
B
Universitas Sumatera Utara
Kelincahan
LISTING PROGRAM
1. Listing Program Form Utama
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
{
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();
}
privatevoid kriteriaShootingToolStripMenuItem_Click(object sender, EventArgs e)
Universitas Sumatera Utara
{
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.MdiParent = this;
Universitas Sumatera Utara
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();
}
}
}
2. Listing Program Form DataPemain
Universitas Sumatera Utara
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 parameters = newList();
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.Data;
Universitas Sumatera Utara
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 parameters = newList();
string query = "";
public FormMasterKriteria()
{
InitializeComponent();
}
privatevoid FormMasterKriteria_Load(object sender, EventArgs e)
{
query = "select * from table_master_kriteria order by kriteria ASC";
parameters = newList();
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();
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.Collections.Generic;
Universitas Sumatera Utara
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 parameters = newList();
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();
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();
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)
{
this.Close();
Universitas Sumatera Utara
}
}
}
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 parameters = newList();
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();
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();
parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan"));
data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data);
dataview_kriteria.DataSource = data;
MessageBox.Show("Success");
}
Universitas Sumatera Utara
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 parameters = newList();
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();
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";
}
Universitas Sumatera Utara
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();
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 parameters = newList();
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();
parameters.Add(newSqlCeParameter("Kriteria", "Shooting"));
data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data);
dataview_kriteria.DataSource = data;
}
privatevoid BtnSave_Click(object sender, EventArgs e)
{
Universitas Sumatera Utara
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();
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 parameters = newList();
string query = "";
public FormPenilaianKriteria()
{
InitializeComponent();
Universitas Sumatera Utara
}
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();
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();
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
{
publicpartialclassFormPenilaianPemain : Form
Universitas Sumatera Utara
{
conststring JenisPenilaian = "Pemain";
Database database = newDatabase("CEConn");
DataTable data = newDataTable();
List parameters = newList();
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();
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();
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();
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();
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;
foreach (DataRow row in data_penilaian.Rows)
{
Universitas Sumatera Utara
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();
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 parameters = newList();
Stopwatch stopwatch = newStopwatch();
string query = "";
public FormPerhitunganKriteria()
{
InitializeComponent();
}
privatevoid FormPerhitunganKriteria_Load(object sender, EventArgs e)
{
LoadData();
}
Universitas Sumatera Utara
privatevoid LoadData()
{
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber
ASC, BandingA ASC, BandingB ASC";
parameters = newList();
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();
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 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 = CalculateData(table_consolidated, table);
}
Universitas Sumatera Utara
}
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 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);
}
}
privateTabControl GenerateDetail(string name)
Universitas Sumatera Utara
{
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_page_matriks.Controls.Add(new_view_matriks);
Universitas Sumatera Utara
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 HitungAHP(DataTable data_nilai_matriks, DataTable data_kriteria)
{
Dictionary hasil_hitung = newDictionary();
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 total_kolom = newDictionary();
Dictionary total_baris = newDictionary();
foreach (DataRow kriteria in data_kriteria.Rows)
{
total_kolom.Add(kriteria["Kriteria"].ToString(), 0);
total_baris.Add(kriteria["Kriteria"].ToString(), 0);
}
Universitas Sumatera Utara
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 eigenVector = newDictionary();
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["Desc"] = "Lamda";
Universitas Sumatera Utara
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
{
rows = data_nilai.Select("(BandingB = '" + column + "' AND BandingA = '" + row + "')");
Universitas Sumatera Utara
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 result = newDictionary();
string sumber = "Consolidated";
if (distinctSumber.Rows.Count 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"];
if (ctl02.Length > 0)
{
Universitas Sumatera Utara
((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 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.Data;
Universitas Sumatera Utara
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 parameters = newList();
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();
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();
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();
Data_pemain = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
DataTable DistinctSumber = dataview.ToTable(true, "Sumber");
Universitas Sumatera Utara
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 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;
}
}
}
Universitas Sumatera Utara
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 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;
TabPage new_page_data = newTabPage("Data");
TabPage new_page_matriks = newTabPage("Matriks");
Universitas Sumatera Utara
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;
}
Universitas Sumatera Utara
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 HitungAHP(DataTable data_nilai_matriks, DataTable data_pemain)
{
Dictionary hasil_hitung = newDictionary();
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 total_kolom = newDictionary();
Dictionary total_baris = newDictionary();
foreach (DataRow pemain in data_pemain.Rows)
{
total_kolom.Add(pemain["Nama"].ToString(), 0);
total_baris.Add(pemain["Nama"].ToString(), 0);
Universitas Sumatera Utara
}
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] = (d