• Tidak ada hasil yang ditemukan

Sistem Pendukung Keputusan Dalam Menentukan Pemain Basket Terbaik Menggunakan Algoritma Analytical Hierarchy Process (AHP) Dan Profile Matching (Studi Kasus : SMA Santo Thomas 1 Medan )

N/A
N/A
Protected

Academic year: 2018

Membagikan "Sistem Pendukung Keputusan Dalam Menentukan Pemain Basket Terbaik Menggunakan Algoritma Analytical Hierarchy Process (AHP) Dan Profile Matching (Studi Kasus : SMA Santo Thomas 1 Medan )"

Copied!
36
0
0

Teks penuh

(1)

Survei Penentuan Urutan Prioritas Kriteria Dalam

Menentukan Pemain Basket Terbaik

Oleh : Ivana Lisa br Sitepu

Mahasiswa S-1 Ilmu Komputer

Universitas Sumatera Utara

Identitas Responden

Nama

tanda tangan

NIM Fakultas :

Jenis Kelamin Laki-laki Perempuan

Petunjuk Pengisian

Berilah tanda ceklish (√) pada kolom skala yang sesuai dengan pendapat anda

Definisi Kode

1 Kedua kriteria yang sama penting (equal)

3 kriteria sedikit lebih penting (slightly) dari kriteria pembandingnya

5 kriteria yang lebih penting (strongly) dari kriteria pembandignya

7 kriteria yang sangat lebih penting (very strong) dari kriteria pembandingnya

9 kriteria yang mutlak lebih penting (extreme) dari kriteria pembandingnya

(2)

Contoh

Dalam memilih pemain basket, seberapa pentingkah :

Jika menurut Anda dribling lebih penting dibanding shooting, maka Anda dapat memberi tanda ceklish (√) pada kolom Skala 5 sebelah kiri.

No

Kriteria Skala Kriteria Kriteria

A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B

1 Dribling                  shooting

atau sebaliknya ...

Jika menurut Anda shooting lebih penting dibanding dribling, maka Anda dapat memberi tanda ceklish (√)

pada kolom Skala 5 sebelah kanan.

No

Kriteria Skala Kriteria Kriteria

A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B

(3)

Pertanyaan :

Dalam memilih sebuah pemain basket, menurut Anda seberapa pentingkah :

No

Kriteria Skala Kriteria Kriteria

A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B

1 Dribling                  Shooting

2 Dribling                  Passing

3 Dribling                  Kelincahan

No

Kriteria Skala Kriteria Kriteria

A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B

1 Shooting                  Passing

2 Shooting                  kelincahan

No

Kriteria Skala Kriteria Kriteria

A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B

(4)

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();

}

(5)

{

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(); }

(6)

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(); }

} }

(7)

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormPemain : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormPemain() {

InitializeComponent(); }

privatevoid FormPemain_Load(object sender, EventArgs e) {

query = "select * from table_pemain order by nama ASC"; data = database.GetDataTable(query, null);

data = Utility.AutoNumberedTable(data); dataview_pemain.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

data = (DataTable)dataview_pemain.DataSource;

bool isSuccess = database.SaveDataTable("table_pemain", data, null, null);

if (isSuccess) {

query = "select * from table_pemain order by nama ASC"; data = database.GetDataTable(query, null);

data = Utility.AutoNumberedTable(data); dataview_pemain.DataSource = data; MessageBox.Show("Success");

}

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); } } }

3. Listing Program Form Master Kriteria

using System;

using System.Collections.Generic;

using System.ComponentModel;

(8)

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormMasterKriteria : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormMasterKriteria() {

InitializeComponent(); }

privatevoid FormMasterKriteria_Load(object sender, EventArgs e) {

query = "select * from table_master_kriteria order by kriteria ASC"; parameters = newList<SqlCeParameter>();

data = database.GetDataTable(query, parameters); data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

data = (DataTable)dataview_kriteria.DataSource;

bool isSuccess = database.SaveDataTable("table_master_kriteria", data, null, null);

if (isSuccess) {

query = "select * from table_master_kriteria order by kriteria ASC"; parameters = newList<SqlCeParameter>();

data = database.GetDataTable(query, parameters); data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");

}

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); } } }

4. Listing Program Form Aspek Dribling

using System;

(9)

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormAspekDribbling : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormAspekDribbling() {

InitializeComponent(); }

privatevoid FormAspekDribbling_Load(object sender, EventArgs e) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Dribble")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

data = (DataTable)dataview_kriteria.DataSource;

foreach(DataRow row in data.Rows) {

if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Dribble";

}

bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);

if (isSuccess) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Dribble")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");

}

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

(10)

} } }

5. Listing Program Form Aspek Kelincahan

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormAspekKelincahan : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormAspekKelincahan() {

InitializeComponent(); }

privatevoid FormAspekKelincahan_Load(object sender, EventArgs e) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

data = (DataTable)dataview_kriteria.DataSource;

foreach (DataRow row in data.Rows) {

if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Kelincahan";

}

bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);

if (isSuccess) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Kelincahan")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");

(11)

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); }

privatevoid dataview_kriteria_CellContentClick(object sender, DataGridViewCellEventArgs e) {

} } }

6. Listing Program Form Aspek Passing

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormAspekPassing : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormAspekPassing() {

InitializeComponent(); }

privatevoid FormAspekPassing_Load(object sender, EventArgs e) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Passing")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

data = (DataTable)dataview_kriteria.DataSource;

foreach (DataRow row in data.Rows) {

if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Passing";

(12)

bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);

if (isSuccess) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Passing")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");

}

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); } } }

7. Listing Program Form Aspek Shooting

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormAspekShooting : Form {

Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormAspekShooting() {

InitializeComponent(); }

privatevoid FormAspekShooting_Load(object sender, EventArgs e) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Shooting")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }

(13)

database = newDatabase("CEConn");

data = (DataTable)dataview_kriteria.DataSource;

foreach (DataRow row in data.Rows) {

if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Shooting";

}

bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);

if (isSuccess) {

query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("Kriteria", "Shooting")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; MessageBox.Show("Success");

}

else

{

MessageBox.Show("Failed"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); }

privatevoid label1_Click(object sender, EventArgs e) {

} } }

8. Listing Program Form Penilaian Kriteria

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

publicpartialclassFormPenilaianKriteria : Form {

conststring JenisPenilaian = "Kriteria"; Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormPenilaianKriteria() {

(14)

}

privatevoid FormPenilaianKriteria_Load(object sender, EventArgs e) {

//loading data penilaian

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

database = newDatabase("CEConn");

DataTable data_penilaian = (DataTable)dataview_nilai.DataSource;

foreach (DataRow row in data_penilaian.Rows) {

if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = JenisPenilaian; }

bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);

if (isSuccess) {

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data;

MessageBox.Show("Success Saving table Penilaian"); }

else

{

MessageBox.Show("Failed Saving table Penilaian"); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); } } }

9. Listing Program Form Penilaian Pemain

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

namespace AHPPM

{

(15)

{

conststring JenisPenilaian = "Pemain"; Database database = newDatabase("CEConn"); DataTable data = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>();

string query = "";

public FormPenilaianPemain() {

InitializeComponent(); }

privatevoid FormPenilaianPemain_Load(object sender, EventArgs e) {

//loading data penilaian dribble

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Dribble")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_dribble.DataSource = data;

//loading data penilaian passing

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Passing")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_passing.DataSource = data;

//loading data penilaian shooting

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Shooting")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_shooting.DataSource = data;

//loading data penilaian kelincahan

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + "Kelincahan")); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview_kelincahan.DataSource = data; }

privatevoid BtnSave_Click(object sender, EventArgs e) {

SaveDribble("Dribble", dataview_dribble); SaveDribble("Passing", dataview_passing); SaveDribble("Shooting", dataview_shooting); SaveDribble("Kelincahan", dataview_kelincahan); }

privatevoid SaveDribble(string penilaian, DataGridView dataview) {

database = newDatabase("CEConn");

DataTable data_penilaian = (DataTable)dataview.DataSource;

(16)

if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = "Pemain" + penilaian; }

bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);

if (isSuccess) {

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", "Pemain" + penilaian)); data = database.GetDataTable(query, parameters);

data = Utility.AutoNumberedTable(data); dataview.DataSource = data;

MessageBox.Show("Success Saving table Penilaian " + penilaian); }

else

{

MessageBox.Show("Failed Saving table Penilaian " + penilaian); }

}

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); } } }

10. Listing Program Form Perhitungan Kriteria

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

using System.Diagnostics;

namespace AHPPM

{

publicpartialclassFormPerhitunganKriteria : Form {

conststring JenisPenilaian = "Kriteria";

constdouble IRValue = 0.9; // 4 kriteria

Database database = newDatabase("CEConn"); DataTable Data = newDataTable();

DataTable Data_kriteria = newDataTable(); DataTable DistinctSumber = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>(); Stopwatch stopwatch = newStopwatch();

string query = "";

public FormPerhitunganKriteria() {

InitializeComponent(); }

privatevoid FormPerhitunganKriteria_Load(object sender, EventArgs e) {

(17)

privatevoid LoadData() {

//loading data penilaian

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); Data = database.GetDataTable(query, parameters);

//loading data kriteria

query = "select * from table_master_kriteria ORDER BY Kriteria ASC"; parameters = newList<SqlCeParameter>();

Data_kriteria = database.GetDataTable(query, parameters);

DataView dataview = newDataView(Data);

DistinctSumber = dataview.ToTable(true, "Sumber"); GenerateView(DistinctSumber);

DataTable table_consolidated = newDataTable();

foreach (DataRow rowSumber in DistinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString();

Control[] ctls = tabData.Controls.Find("dataview_data_" + sumber, true);

if (ctls.Length > 0) {

dataview = newDataView(Data);

dataview.RowFilter = "Sumber = '" + sumber + "'"; DataTable table = dataview.ToTable();

table.Columns.Remove("Id");

((DataGridView)ctls[0]).DataSource = table;

ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true);

if (ctls.Length > 0) {

DataTable table_matriks = ConvertToMatriks(table, Data_kriteria); ((DataGridView)ctls[0]).DataSource = table_matriks;

if (table_consolidated.Rows.Count <= 0) {

table_consolidated = table_matriks.Copy(); }

} } }

if (DistinctSumber.Rows.Count > 1) {

// init table consolidated

for (int i = 0; i < table_consolidated.Rows.Count; i++) {

for (int j = 1; j < table_consolidated.Columns.Count; j++) {

table_consolidated.Rows[i][j] = i + 1 == j ? 1 : 0; }

}

// hitung consolidated matriks

foreach (DataRow rowSumber in DistinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString();

Control[] ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true);

if (ctls.Length > 0) {

DataTable table = (DataTable)((DataGridView)ctls[0]).DataSource;

(18)

}

table_consolidated = CalculatePair(table_consolidated);

Control[] ctlconsol = tabData.Controls.Find("dataview_matriks_Consolidated", true);

if (ctlconsol.Length > 0) {

((DataGridView)ctlconsol[0]).DataSource = table_consolidated; }

} }

privateDataTable CalculateData(DataTable data, DataTable dataAdd) {

for (int i = 0; i < data.Rows.Count; i++) {

for (int j = i + 1; j < data.Columns.Count ; j++) {

double d = (double)dataAdd.Rows[i][j];

data.Rows[i][j] = (double)data.Rows[i][j] + ( d == 0 ? 0 : Math.Log(d)); }

}

return data; }

privateDataTable CalculatePair(DataTable data) {

for (int i = 0; i < data.Rows.Count; i++) {

for (int j = 0; j <= i; j++) {

if (i == j) continue;

double dup = (double)data.Rows[j][i + 1] / (double)DistinctSumber.Rows.Count; dup = Math.Exp(dup);

data.Rows[j][i + 1] = dup; data.Rows[i][j+1] = 1 / dup; }

}

return data; }

privatevoid GenerateView(DataTable distinctSumber) {

foreach (DataRow rowSumber in distinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString(); TabPage new_page = newTabPage(sumber); TabControl new_tab;

if (distinctSumber.Rows.Count > 1)

new_tab = GenerateDetail2(sumber);

else

new_tab = GenerateDetail(sumber); new_page.Controls.Add(new_tab); tabData.Controls.Add(new_page); }

if (distinctSumber.Rows.Count > 1) {

TabPage new_page2 = newTabPage("Consolidated"); TabControl new_tab2 = GenerateDetail3("Consolidated"); new_page2.Controls.Add(new_tab2);

tabData.Controls.Add(new_page2); }

}

(19)

{

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);

(20)

new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks);

return new_tab; }

privateTabControl GenerateDetail3(string name) {

TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;

TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil");

TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_consistency = newDataGridView();

new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;

new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;

new_view_consistency.Name = "dataview_consistency_" + name; new_page_matriks.Controls.Add(new_view_matriks);

new_page_hasil.Controls.Add(new_view_hasil);

new_page_consistency.Controls.Add(new_view_consistency);

new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_consistency);

return new_tab; }

privateDictionary<string, DataTable> HitungAHP(DataTable data_nilai_matriks, DataTable data_kriteria) {

Dictionary<string, DataTable> hasil_hitung = newDictionary<string, DataTable>(); DataTable data_matriks = newDataTable("Matriks");

DataTable data_jumlah_kolom = newDataTable("TableJumlahKolom"); DataTable data_akhir = newDataTable("TableAkhir");

double lamda = 0;

double nilaiCI = 0;

double nilaiCR = 0;

double NilaiIR = IRValue;

double JumlahKriteria = data_kriteria.Rows.Count;

data_jumlah_kolom = data_nilai_matriks.Copy(); data_matriks = data_nilai_matriks.Copy();

// hitung total kolom dan baris

Dictionary<string, double> total_kolom = newDictionary<string, double>(); Dictionary<string, double> total_baris = newDictionary<string, double>();

foreach (DataRow kriteria in data_kriteria.Rows) {

(21)

foreach (DataRow row in data_matriks.Rows) {

foreach (DataRow kriteria in data_kriteria.Rows) {

String namakriteria = kriteria["Kriteria"].ToString();

total_kolom[namakriteria] += (double)row[namakriteria]; }

}

DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Kriteria"] = "Total Kolom";

foreach (DataRow kriteria in data_kriteria.Rows) {

String namakriteria = kriteria["Kriteria"].ToString();

new_row[namakriteria] = total_kolom[namakriteria]; }

data_jumlah_kolom.Rows.Add(new_row);

foreach (DataRow row in data_matriks.Rows) {

foreach (DataRow kriteria in data_kriteria.Rows) {

String namakriteria = kriteria["Kriteria"].ToString();

row[namakriteria] = (double)row[namakriteria] / total_kolom[namakriteria]; }

}

foreach (DataRow row in data_matriks.Rows) {

String namakriteria = row["Kriteria"].ToString();

if (namakriteria == "Total Kolom") continue;

for (int i = 1; i < data_matriks.Columns.Count; i++) {

total_baris[namakriteria] += (double)row[i]; }

}

data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));

Dictionary<string, double> eigenVector = newDictionary<string, double>();

foreach (DataRow row in data_matriks.Rows) {

String namakriteria = row["Kriteria"].ToString();

if (namakriteria == "Total Kolom") continue;

row["Total Baris"] = total_baris[namakriteria];

row["Eigen Vector"] = total_baris[namakriteria] / JumlahKriteria;

row["Eigen Max"] = total_baris[namakriteria] / JumlahKriteria * total_kolom[namakriteria]; }

foreach (DataRow row in data_matriks.Rows) {

String namakriteria = row["Kriteria"].ToString();

if (namakriteria == "Total Kolom") continue; lamda += (double)row["Eigen Max"]; }

nilaiCI = ((lamda) - JumlahKriteria) / (JumlahKriteria - 1); nilaiCR = nilaiCI / NilaiIR;

data_akhir.Columns.Add("Desc", typeof(string)); data_akhir.Columns.Add("Value", typeof(double)); new_row = data_akhir.NewRow();

(22)

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

{

(23)

if (rows.Length == 1) {

nilai = (double)rows[0]["Nilai"];

dominan = rows[0]["Dominan"].ToString(); }

else

{

nilai = 0; }

}

if (row == dominan) {

matriks.Rows[i][j] = nilai; }

elseif (column == dominan) {

matriks.Rows[i][j] = nilai == 0 ? 0 : 1 / nilai; }

else

{

matriks.Rows[i][j] = 0; }

} } }

return matriks; }

privatevoid BtnProses_Click(object sender, EventArgs e) {

stopwatch = newStopwatch(); stopwatch.Start();

Hitung(); stopwatch.Stop();

MessageBox.Show("Calculating is Finish. (elapsed time : " + stopwatch.ElapsedMilliseconds + " ms)"); }

privatevoid Hitung() {

DataView dataview = newDataView(Data);

DataTable distinctSumber = dataview.ToTable(true, "Sumber");

Dictionary<string, DataTable> result = newDictionary<string, DataTable>();

string sumber = "Consolidated";

if (distinctSumber.Rows.Count <= 1) {

sumber = distinctSumber.Rows[0]["Sumber"].ToString(); }

Control[] ctl02 = tabData.Controls.Find("dataview_matriks_" + sumber, true); Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true); Control[] ctl04 = tabData.Controls.Find("dataview_consistency_" + sumber, true);

if (ctl02.Length > 0) {

DataTable table = (DataTable)((DataGridView)ctl02[0]).DataSource; result = HitungAHP(table, Data_kriteria);

DataTable data_jumlah_kolom = result["TableJumlahKolom"]; DataTable data_matriks = result["Matriks"];

DataTable data_akhir = result["TableAkhir"];

(24)

((DataGridView)ctl02[0]).DataSource = data_jumlah_kolom; }

if (ctl03.Length > 0) {

((DataGridView)ctl03[0]).DataSource = data_matriks; }

if (ctl04.Length > 0) {

((DataGridView)ctl04[0]).DataSource = data_akhir; }

} }

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); }

privatevoid buttonRefresh_Click(object sender, EventArgs e) {

LoadData(); }

privatevoid BSimpan_Click(object sender, EventArgs e) {

string sumber = "Consolidated";

if (DistinctSumber.Rows.Count <= 1) {

sumber = DistinctSumber.Rows[0]["Sumber"].ToString(); }

Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true);

foreach(DataRow kriteria in Data_kriteria.Rows) {

if (ctl03.Length > 0) {

DataTable table = (DataTable)((DataGridView)ctl03[0]).DataSource;

string namakriteria = kriteria["Kriteria"].ToString();

DataRow[] rows = table.Select("Kriteria = '" + namakriteria +"'");

if (rows.Length > 0) {

kriteria["EigenVector"] = rows[0]["Eigen Vector"]; }

} }

bool isSuccess = database.SaveDataTable("table_master_kriteria", Data_kriteria, null, null);

if (isSuccess) {

MessageBox.Show("Success"); }

else

{

MessageBox.Show("Failed"); }

} } }

11. Listing Program Form Perhitungan Pemain

using System;

using System.Collections.Generic;

using System.ComponentModel;

(25)

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.SqlServerCe;

using System.Diagnostics;

namespace AHPPM

{

publicpartialclassFormPerhitunganPemain : Form {

conststring JenisPenilaian = "Pemain";

constdouble IRValue = 0.9; // 4 kriteria

Database database = newDatabase("CEConn"); DataTable Data_pemain = newDataTable(); DataTable Data_kriteria = newDataTable();

List<SqlCeParameter> parameters = newList<SqlCeParameter>(); Stopwatch stopwatch = newStopwatch();

string query = "";

public FormPerhitunganPemain() {

InitializeComponent(); }

privatevoid ButtonClose_Click(object sender, EventArgs e) {

this.Close(); }

privatevoid FormPerhitunganPemain_Load(object sender, EventArgs e) {

LoadData("Dribble"); LoadData("Passing"); LoadData("Shooting"); LoadData("Kelincahan");

//loading data kriteria

query = "select * from table_master_kriteria ORDER BY Kriteria ASC"; parameters = newList<SqlCeParameter>();

Data_kriteria = database.GetDataTable(query, parameters); }

privateDataTable GetDataPenilaian(string kriteria) {

//loading data penilaian

query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";

parameters = newList<SqlCeParameter>();

parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + kriteria)); DataTable Data = database.GetDataTable(query, parameters);

return Data; }

privatevoid LoadData(string kriteria) {

DataTable Data = GetDataPenilaian(kriteria);

//loading data pemain

query = "select * from table_pemain ORDER BY Nama ASC"; parameters = newList<SqlCeParameter>();

Data_pemain = database.GetDataTable(query, parameters);

DataView dataview = newDataView(Data);

(26)

Control[] tabs = tabData.Controls.Find("tab" + kriteria, true);

if (tabs.Length > 0) {

tabs[0].Controls.Add(GenerateView(DistinctSumber, kriteria)); }

DataTable table_consolidated = newDataTable();

foreach (DataRow rowSumber in DistinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString();

Control[] ctls = tabData.Controls.Find("dataview_data_" + kriteria + sumber, true);

if (ctls.Length > 0) {

dataview = newDataView(Data);

dataview.RowFilter = "Sumber = '" + sumber + "'"; DataTable table = dataview.ToTable();

table.Columns.Remove("Id");

((DataGridView)ctls[0]).DataSource = table;

ctls = tabData.Controls.Find("dataview_matriks_" + kriteria + sumber, true);

if (ctls.Length > 0) {

DataTable table_matriks = ConvertToMatriks(table, Data_pemain); ((DataGridView)ctls[0]).DataSource = table_matriks;

if (table_consolidated.Rows.Count <= 0) {

table_consolidated = table_matriks.Copy(); }

} } }

if (DistinctSumber.Rows.Count > 1) {

// init table consolidated

for (int i = 0; i < table_consolidated.Rows.Count; i++) {

for (int j = 1; j < table_consolidated.Columns.Count; j++) {

table_consolidated.Rows[i][j] = i + 1 == j ? 1 : 0; }

}

// hitung consolidated matriks

foreach (DataRow rowSumber in DistinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString();

Control[] ctls = tabData.Controls.Find("dataview_matriks_" + kriteria + sumber, true);

if (ctls.Length > 0) {

DataTable table = (DataTable)((DataGridView)ctls[0]).DataSource;

table_consolidated = CalculateData(table_consolidated, table); }

}

table_consolidated = CalculatePair(table_consolidated, DistinctSumber.Rows.Count);

Control[] ctlconsol = tabData.Controls.Find("dataview_matriks_" + kriteria + "Consolidated", true);

if (ctlconsol.Length > 0) {

((DataGridView)ctlconsol[0]).DataSource = table_consolidated; }

(27)

privateDataTable CalculateData(DataTable data, DataTable dataAdd) {

for (int i = 0; i < data.Rows.Count; i++) {

for (int j = i + 1; j < data.Columns.Count; j++) {

double d = (double)dataAdd.Rows[i][j];

data.Rows[i][j] = (double)data.Rows[i][j] + (d == 0 ? 0 : Math.Log(d)); }

}

return data; }

privateDataTable CalculatePair(DataTable data, Int32 numberParticipant) {

for (int i = 0; i < data.Rows.Count; i++) {

for (int j = 0; j <= i; j++) {

if (i == j) continue;

double dup = (double)data.Rows[j][i + 1] / (double)numberParticipant; dup = Math.Exp(dup);

data.Rows[j][i + 1] = dup; data.Rows[i][j + 1] = 1 / dup; }

}

return data; }

privateControl GenerateView(DataTable distinctSumber, string kriteria) {

TabControl newTab = newTabControl();

foreach (DataRow rowSumber in distinctSumber.Rows) {

string sumber = rowSumber["Sumber"].ToString(); TabPage new_page = newTabPage(sumber); TabControl new_tab;

if (distinctSumber.Rows.Count > 1)

new_tab = GenerateDetail2(kriteria + sumber);

else

new_tab = GenerateDetail(kriteria + sumber); new_page.Controls.Add(new_tab);

newTab.Controls.Add(new_page); }

if (distinctSumber.Rows.Count > 1) {

TabPage new_page2 = newTabPage("Consolidated");

TabControl new_tab2 = GenerateDetail3(kriteria + "Consolidated"); new_page2.Controls.Add(new_tab2);

newTab.Controls.Add(new_page2); }

newTab.Dock = DockStyle.Fill;

return newTab; }

privateTabControl GenerateDetail2(string name) {

TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;

(28)

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;

(29)

privateTabControl GenerateDetail(string name) {

TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;

TabPage new_page_data = newTabPage("Data"); TabPage new_page_matriks = newTabPage("Matriks"); TabPage new_page_hasil = newTabPage("Hasil");

TabPage new_page_consistency = newTabPage("Consistency"); DataGridView new_view_data = newDataGridView();

DataGridView new_view_matriks = newDataGridView(); DataGridView new_view_hasil = newDataGridView(); DataGridView new_view_consistency = newDataGridView();

new_view_data.Dock = DockStyle.Fill; new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;

new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

new_view_data.Name = "dataview_data_" + name; new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;

new_view_consistency.Name = "dataview_consistency_" + name; new_page_data.Controls.Add(new_view_data);

new_page_matriks.Controls.Add(new_view_matriks); new_page_hasil.Controls.Add(new_view_hasil);

new_page_consistency.Controls.Add(new_view_consistency);

new_tab.Controls.Add(new_page_data); new_tab.Controls.Add(new_page_matriks); new_tab.Controls.Add(new_page_hasil); new_tab.Controls.Add(new_page_consistency);

return new_tab; }

privateDictionary<string, DataTable> HitungAHP(DataTable data_nilai_matriks, DataTable data_pemain) {

Dictionary<string, DataTable> hasil_hitung = newDictionary<string, DataTable>(); DataTable data_matriks = newDataTable("Matriks");

DataTable data_jumlah_kolom = newDataTable("TableJumlahKolom"); DataTable data_akhir = newDataTable("TableAkhir");

double lamda = 0;

double nilaiCI = 0;

double nilaiCR = 0;

double NilaiIR = IRValue;

double JumlahPemain = data_pemain.Rows.Count;

data_jumlah_kolom = data_nilai_matriks.Copy(); data_matriks = data_nilai_matriks.Copy();

// hitung total kolom dan baris

Dictionary<string, double> total_kolom = newDictionary<string, double>(); Dictionary<string, double> total_baris = newDictionary<string, double>();

foreach (DataRow pemain in data_pemain.Rows) {

(30)

}

foreach (DataRow row in data_matriks.Rows) {

foreach (DataRow pemain in data_pemain.Rows) {

String namapemain = pemain["Nama"].ToString();

total_kolom[namapemain] += (double)row[namapemain]; }

}

DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Nama"] = "Total Kolom";

foreach (DataRow pemain in data_pemain.Rows) {

String namapemain = pemain["Nama"].ToString();

new_row[namapemain] = total_kolom[namapemain]; }

data_jumlah_kolom.Rows.Add(new_row);

foreach (DataRow row in data_matriks.Rows) {

foreach (DataRow pemain in data_pemain.Rows) {

String namapemain = pemain["Nama"].ToString();

row[namapemain] = (double)row[namapemain] / total_kolom[namapemain]; }

}

foreach (DataRow row in data_matriks.Rows) {

String namapemain = row["Nama"].ToString();

if (namapemain == "Total Kolom") continue;

for (int i = 1; i < data_matriks.Columns.Count; i++) {

total_baris[namapemain] += (double)row[i]; }

}

data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));

Dictionary<string, double> eigenVector = newDictionary<string, double>();

foreach (DataRow row in data_matriks.Rows) {

String namapemain = row["Nama"].ToString();

if (namapemain == "Total Kolom") continue;

row["Total Baris"] = total_baris[namapemain];

row["Eigen Vector"] = total_baris[namapemain] / JumlahPemain;

row["Eigen Max"] = total_baris[namapemain] / JumlahPemain * total_kolom[namapemain]; }

foreach (DataRow row in data_matriks.Rows) {

String namapemain = row["Nama"].ToString();

if (namapemain == "Total Kolom") continue; lamda += (double)row["Eigen Max"]; }

nilaiCI = ((lamda) - JumlahPemain) / (JumlahPemain - 1); nilaiCR = nilaiCI / NilaiIR;

(31)

new_row["Desc"] = "Lamda"; new_row["Value"] = lamda; data_akhir.Rows.Add(new_row);

new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CI"; new_row["Value"] = nilaiCI; data_akhir.Rows.Add(new_row);

new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai IR"; new_row["Value"] = NilaiIR; data_akhir.Rows.Add(new_row);

new_row = data_akhir.NewRow(); new_row["Desc"] = "Nilai CR (CI/IR)"; new_row["Value"] = nilaiCR;

data_akhir.Rows.Add(new_row);

hasil_hitung.Add("TableJumlahKolom", data_jumlah_kolom); hasil_hitung.Add("Matriks", data_matriks);

hasil_hitung.Add("TableAkhir", data_akhir);

return hasil_hitung; }

privateDataTable ConvertToMatriks(DataTable data_nilai, DataTable data_pemain) {

DataTable matriks = newDataTable("Matriks"); matriks.Columns.Add("Nama", typeof(string));

foreach (DataRow row in data_pemain.Rows) {

matriks.Columns.Add(row["Nama"].ToString(), typeof(double)); }

foreach (DataRow row in data_pemain.Rows) {

DataRow new_row = matriks.NewRow(); new_row["Nama"] = row["Nama"]; matriks.Rows.Add(new_row); }

for (int i = 0; i < matriks.Rows.Count; i++) {

for (int j = 1; j < matriks.Columns.Count; j++) {

string column = matriks.Columns[j].ColumnName;

string row = matriks.Rows[i]["Nama"].ToString();

if (column == row) {

matriks.Rows[i][j] = 1; }

else

{

DataRow[] rows = data_nilai.Select("(BandingA = '" + column + "' AND BandingB = '" + row + "')");

double nilai = 0;

string dominan = "";

if (rows.Length == 1) {

nilai = (double)rows[0]["Nilai"];

dominan = rows[0]["Dominan"].ToString(); }

(32)

{

rows = data_nilai.Select("(BandingB = '" + column + "' AND BandingA = '" + row + "')");

if (rows.Length == 1) {

nilai = (double)rows[0]["Nilai"];

dominan = rows[0]["Dominan"].ToString(); }

else

{

nilai = 0; }

}

if (row == dominan) {

matriks.Rows[i][j] = nilai; }

elseif (column == dominan) {

matriks.Rows[i][j] = nilai == 0 ? 0 : 1 / nilai; }

else

{

matriks.Rows[i][j] = 0; }

} } }

return matriks; }

privatevoid BtnProses_Click(object sender, EventArgs e) {

stopwatch = newStopwatch(); stopwatch.Start();

Proses("Dribble"); Proses("Shooting"); Proses("Passing"); Proses("Kelincahan"); Perangkingan(); stopwatch.Stop();

MessageBox.Show("Calculating is Finish. (elapsed time : " + stopwatch.ElapsedMilliseconds + " ms)"); }

privatevoid Proses(string kriteria) {

DataTable Data = GetDataPenilaian(kriteria); DataView dataview = newDataView(Data);

DataTable distinctSumber = dataview.ToTable(true, "Sumber");

Dictionary<string, DataTable> result = newDictionary<string, DataTable>();

string sumber = kriteria + "Consolidated";

if (distinctSumber.Rows.Count <= 1) {

sumber = kriteria + distinctSumber.Rows[0]["Sumber"].ToString(); }

Control[] ctl02 = tabData.Controls.Find("dataview_matriks_" + sumber, true); Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true); Control[] ctl04 = tabData.Controls.Find("dataview_consistency_" + sumber, true);

if (ctl02.Length > 0) {

(33)

DataTable data_jumlah_kolom = result["TableJumlahKolom"]; DataTable data_matriks = result["Matriks"];

DataTable data_akhir = result["TableAkhir"];

if (ctl02.Length > 0) {

((DataGridView)ctl02[0]).DataSource = data_jumlah_kolom; }

if (ctl03.Length > 0) {

((DataGridView)ctl03[0]).DataSource = data_matriks; }

if (ctl04.Length > 0) {

((DataGridView)ctl04[0]).DataSource = data_akhir; }

} }

privatevoid Perangkingan() {

DataTable table_rangking = newDataTable();

table_rangking.Columns.Add("Kriteria", typeof(string)); table_rangking.Columns.Add("Prioritas", typeof(double));

Dictionary<String, DataTable> datas = newDictionary<string, DataTable>();

foreach (DataRow kriteria in Data_kriteria.Rows) {

string namakriteria = kriteria["Kriteria"].ToString(); DataTable table_nilai = GetDataPenilaian(namakriteria);

Control[] ctls = tabData.Controls.Find("dataview_hasil_" + namakriteria + "Consolidated", true);

if (ctls.Length > 0) {

table_nilai = (DataTable)((DataGridView)(ctls[0])).DataSource; }

else

{

ctls = tabData.Controls.Find("dataview_hasil_" + namakriteria + table_nilai.Rows[0]["Sumber"].ToString(), true);

if (ctls.Length > 0) {

table_nilai = (DataTable)((DataGridView)(ctls[0])).DataSource; }

}

datas.Add(namakriteria, table_nilai); }

foreach (DataRow pemain in Data_pemain.Rows) {

string namapemain = pemain["Nama"].ToString();

table_rangking.Columns.Add(namapemain, typeof(double)); }

foreach (DataRow kriteria in Data_kriteria.Rows) {

string namakriteria = kriteria["Kriteria"].ToString();

double eigenvector = String.IsNullOrEmpty(kriteria["EigenVector"].ToString()) ? 0 : (double)(kriteria["EigenVector"]); ;

(34)

DataRow row_total = table_rangking.NewRow(); row_total["Kriteria"] = "Total";

foreach (DataRow rank in table_rangking.Rows) {

string namakriteria = rank["Kriteria"].ToString();

double eigenvectorkriteria = (double)rank["Prioritas"];

foreach (DataRow pemain in Data_pemain.Rows) {

string namapemain = pemain["Nama"].ToString();

DataRow[] rows = datas[namakriteria].Select("Nama ='" + namapemain + "'");

double eigenvectorpemain = rows.Length > 0 ? (double)rows[0]["Eigen Vector"] : 1; rank[namapemain] = eigenvectorkriteria * eigenvectorpemain;

if (String.IsNullOrEmpty(row_total[namapemain].ToString())) row_total[namapemain] = 0;

row_total[namapemain] = (double)row_total[namapemain] + (double)rank[namapemain];

} }

table_rangking.Rows.Add(row_total);

DataGridView dataview_hasilhitung = newDataGridView(); dataview_hasilhitung.DataSource = table_rangking; dataview_hasilhitung.Dock = DockStyle.Fill; tabHasilHitung.Controls.Add(dataview_hasilhitung);

// data ranking

DataTable ranking = newDataTable(); ranking = Data_pemain.Copy(); ranking.Columns.Remove("Id");

ranking.Columns.Add("Rank", typeof(double));

foreach (DataRow pemain in ranking.Rows) {

pemain["Rank"] = row_total[pemain["Nama"].ToString()]; }

DataView dv = newDataView(ranking); dv.Sort = "Rank DESC"; ranking = dv.ToTable();

for (int i = 0; i < ranking.Rows.Count; i++) {

ranking.Rows[i]["Rank"] = i + 1; }

DataGridView dataview_ranking = newDataGridView(); dataview_ranking.DataSource = ranking; dataview_ranking.Dock = DockStyle.Fill; tabRanking.Controls.Add(dataview_ranking);

}

privatevoid buttonRefresh_Click(object sender, EventArgs e) {

LoadData("Dribble"); }

(35)

12. Listing Program Form About

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace AHPPM

{

publicpartialclassFormAbout : Form {

public FormAbout() {

InitializeComponent(); }

privatevoid button1_Click(object sender, EventArgs e) {

this.Close(); }

privatevoid label1_Click(object sender, EventArgs e) {

Referensi

Dokumen terkait

Kepuasan adalah perasaan senang atau kecewa seseorang yang diterima seseorang setelah mendapatkan pelayanan dan dilatarbelakangi dengan semakin pesatnya persaingan perusahaan

Untuk membuat aplikasi ini, penulis menggunakan PHP dalam pembuatannya, sehingga mahasiswa lain yang ingin mengembangkannya dapat dengan

Dari hasil analisa dapat disimpulkan bahwa Semakin lama benda yang diplating di celup pada larutan plating maka semakin tinggi tingkat ketahanan lapisan tersebut jika di uji

Hasil penelitian ini menunjukkan bahwa penghargaan, kompensasi, kepemimpinan, pengembangan karir, pelatihan dan pengembangan, serta kepuasan kerja berpengaruh secara

Menguasai materi, struktur, konsep, dan pola pikir Menganalisis materi, struktur, konsep, dan pola pikir Menerapkan intonasi yang baik pada praktek keilmuan yang mendukung

yang kuat dalam masyarakat, juga merupakan faktor yang dapat. membentuk negara-bangsa.

You’ve used aspects to have a nice separation of concerns: one class for reversing a string and one class for logging, but when it comes time to run the unit test,

His mother would have turned and asked the same thing, in fact, out of sheer stubbornness, a refusal to be dismissed, though Ned didn’t actually know that.. The man in the