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 ta da eklish √ pada kolo skala ya g sesuai de ga pe dapat a da
Definisi Kode
1 Kedua kriteria yang sama penting (equal)
3 kriteria sedikit lebih penting (slightly) dari kriteria pembandingnya
5 kriteria yang lebih penting (strongly) dari kriteria pembandignya
7 kriteria yang sangat lebih penting (very strong) dari kriteria pembandingnya
9 kriteria yang mutlak lebih penting (extreme) dari kriteria pembandingnya
Contoh
Dalam memilih pemain basket, seberapa pentingkah :
Jika menurut Anda dribling lebih penting dibanding shooti g, aka A da dapat e eri ta da eklish √ pada kolo Skala 5 se elah 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 di a di g dri li g, aka A da dapat e eri ta da eklish √
pada kolom Skala 5 sebelah kanan.
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
Pertanyaan :
Dalam memilih sebuah pemain basket, menurut Anda seberapa pentingkah :
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
1 Dribling Shooting
2 Dribling Passing
3 Dribling Kelincahan
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
1 Shooting Passing
2 Shooting kelincahan
No
Kriteria Skala Kriteria Kriteria
A 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 B
LISTING PROGRAM 1. Listing Program Form Utama
using System;
publicpartialclassFormUtama : Form
{
public FormUtama() {
InitializeComponent(); }
privatevoid exitToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit(); }
privatevoid FormUtama_Load(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = false; aHPToolStripMenuItem.Visible = false;
}
privatevoid algoritmaProfileMatchingToolStripMenuItem_Click(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = true; aHPToolStripMenuItem.Visible = false;
}
privatevoid algoritmaAHPToolStripMenuItem_Click(object sender, EventArgs e) {
profileMatchingToolStripMenuItem.Visible = false; aHPToolStripMenuItem.Visible = true;
}
privatevoid dataPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_pemain == null || Program.form_pemain.IsDisposed) {
Program.form_pemain = newFormPemain(); }
Program.form_pemain.MdiParent = this;
Program.form_pemain.Show(); }
privatevoid kriteriaDribbleToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_dribbling == null || Program.form_aspek_dribbling.IsDisposed) {
Program.form_aspek_dribbling = newFormAspekDribbling(); }
Program.form_aspek_dribbling.MdiParent = this;
Program.form_aspek_dribbling.Show(); }
{
if (Program.form_aspek_shooting == null || Program.form_aspek_shooting.IsDisposed) {
Program.form_aspek_shooting = newFormAspekShooting(); }
Program.form_aspek_shooting.MdiParent = this;
Program.form_aspek_shooting.Show(); }
privatevoid kriteriaPassingToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_passing == null || Program.form_aspek_passing.IsDisposed) {
Program.form_aspek_passing = newFormAspekPassing(); }
Program.form_aspek_passing.MdiParent = this;
Program.form_aspek_passing.Show(); }
privatevoid aspekKelincahanToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_aspek_kelincahan == null || Program.form_aspek_kelincahan.IsDisposed) {
Program.form_aspek_kelincahan = newFormAspekKelincahan(); }
Program.form_aspek_kelincahan.MdiParent = this;
Program.form_aspek_kelincahan.Show(); }
privatevoid penilaianToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaian == null || Program.form_penilaian.IsDisposed) {
Program.form_penilaian = newFormPenilaian(); }
Program.form_penilaian.MdiParent = this;
Program.form_penilaian.Show(); }
privatevoid perhitunganToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan == null || Program.form_perhitungan.IsDisposed) {
Program.form_perhitungan = newFormPerhitungan(); }
Program.form_perhitungan.MdiParent = this;
Program.form_perhitungan.Show(); }
privatevoid toolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_master_kriteria == null || Program.form_master_kriteria.IsDisposed) {
Program.form_master_kriteria = newFormMasterKriteria(); }
Program.form_master_kriteria.MdiParent = this;
Program.form_master_kriteria.Show(); }
privatevoid dataPemainToolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_pemain == null || Program.form_pemain.IsDisposed) {
Program.form_pemain = newFormPemain(); }
Program.form_pemain.Show(); }
privatevoid dataKriteriaToolStripMenuItem1_Click(object sender, EventArgs e) {
if (Program.form_master_kriteria == null || Program.form_master_kriteria.IsDisposed) {
Program.form_master_kriteria = newFormMasterKriteria(); }
Program.form_master_kriteria.MdiParent = this;
Program.form_master_kriteria.Show(); }
privatevoid perhitunganKriteriaToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan_kriteria == null || Program.form_perhitungan_kriteria.IsDisposed) {
Program.form_perhitungan_kriteria = newFormPerhitunganKriteria(); }
Program.form_perhitungan_kriteria.MdiParent = this;
Program.form_perhitungan_kriteria.Show(); }
privatevoid penilaianKriteriaToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaian_kriteria == null || Program.form_penilaian_kriteria.IsDisposed) {
Program.form_penilaian_kriteria = newFormPenilaianKriteria(); }
Program.form_penilaian_kriteria.MdiParent = this;
Program.form_penilaian_kriteria.Show(); }
privatevoid penilaianPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_penilaain_pemain == null || Program.form_penilaain_pemain.IsDisposed) {
Program.form_penilaain_pemain = newFormPenilaianPemain(); }
Program.form_penilaain_pemain.MdiParent = this;
Program.form_penilaain_pemain.Show(); }
privatevoid perhitunganPemainToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_perhitungan_pemain == null || Program.form_perhitungan_pemain.IsDisposed) {
Program.form_perhitungan_pemain = newFormPerhitunganPemain(); }
Program.form_perhitungan_pemain.MdiParent = this;
Program.form_perhitungan_pemain.Show(); }
privatevoid tentangToolStripMenuItem_Click(object sender, EventArgs e) {
if (Program.form_tentang == null || Program.form_tentang.IsDisposed) {
Program.form_tentang = newFormAbout(); }
Program.form_tentang.ShowDialog(); }
} }
using System;
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) {
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)
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
3. Listing Program Form Master Kriteria
using System;
using System.Drawing;
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) {
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)
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
4. Listing Program Form Aspek Dribling
using System;
using System.ComponentModel;
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)
privatevoid ButtonClose_Click(object sender, EventArgs e) {
} } }
5. Listing Program Form Aspek Kelincahan
using System;
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);
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;
publicpartialclassFormAspekPassing : Form
{
Database database = newDatabase("CEConn");
DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>(); string query = "";
public FormAspekPassing() {
InitializeComponent(); }
privatevoid FormAspekPassing_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Passing")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource; foreach (DataRow row in data.Rows)
{
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Passing";
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
7. Listing Program Form Aspek Shooting
using System;
publicpartialclassFormAspekShooting : Form
{
Database database = newDatabase("CEConn");
DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>(); string query = "";
public FormAspekShooting() {
InitializeComponent(); }
privatevoid FormAspekShooting_Load(object sender, EventArgs e) {
query = "select * from table_kriteria where Kriteria = @Kriteria order by kriteria ASC, subkriteriaID ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("Kriteria", "Shooting")); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_kriteria.DataSource = data; }
database = newDatabase("CEConn");
data = (DataTable)dataview_kriteria.DataSource; foreach (DataRow row in data.Rows)
{
if (row.RowState == DataRowState.Deleted) continue; row["Kriteria"] = "Shooting";
}
bool isSuccess = database.SaveDataTable("table_kriteria", data, null, null);
if (isSuccess)
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid label1_Click(object sender, EventArgs e) {
} } }
8. Listing Program Form Penilaian Kriteria
using System;
publicpartialclassFormPenilaianKriteria : Form
{
conststring JenisPenilaian = "Kriteria";
Database database = newDatabase("CEConn");
DataTable data = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>(); string query = "";
public FormPenilaianKriteria() {
}
privatevoid FormPenilaianKriteria_Load(object sender, EventArgs e) {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data; }
privatevoid BtnSave_Click(object sender, EventArgs e) {
database = newDatabase("CEConn");
DataTable data_penilaian = (DataTable)dataview_nilai.DataSource; foreach (DataRow row in data_penilaian.Rows)
{
if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = JenisPenilaian; }
bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);
if (isSuccess) {
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); data = database.GetDataTable(query, parameters);
data = Utility.AutoNumberedTable(data); dataview_nilai.DataSource = data;
MessageBox.Show("Success Saving table Penilaian"); }
else {
MessageBox.Show("Failed Saving table Penilaian"); }
}
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); } } }
9. Listing Program Form Penilaian Pemain
using System;
{
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) {
privatevoid SaveDribble(string penilaian, DataGridView dataview) {
database = newDatabase("CEConn");
DataTable data_penilaian = (DataTable)dataview.DataSource; foreach (DataRow row in data_penilaian.Rows)
if (row.RowState == DataRowState.Deleted) continue; row["JenisPenilaian"] = "Pemain" + penilaian; }
bool isSuccess = database.SaveDataTable("table_penilaian_ahp", data_penilaian, null, null);
if (isSuccess)
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;
publicpartialclassFormPerhitunganKriteria : Form
{
conststring JenisPenilaian = "Kriteria"; constdouble IRValue = 0.9; // 4 kriteria Database database = newDatabase("CEConn");
DataTable Data = newDataTable();
DataTable Data_kriteria = newDataTable();
DataTable DistinctSumber = newDataTable();
List<SqlCeParameter> parameters = newList<SqlCeParameter>();
Stopwatch stopwatch = newStopwatch(); string query = "";
public FormPerhitunganKriteria() {
InitializeComponent(); }
privatevoid FormPerhitunganKriteria_Load(object sender, EventArgs e) {
privatevoid LoadData() {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian)); Data = database.GetDataTable(query, parameters);
//loading data kriteria
query = "select * from table_master_kriteria ORDER BY Kriteria ASC"; parameters = newList<SqlCeParameter>();
Data_kriteria = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
DistinctSumber = dataview.ToTable(true, "Sumber");
GenerateView(DistinctSumber);
DataTable table_consolidated = newDataTable(); foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_data_" + sumber, true); if (ctls.Length > 0)
{
dataview = newDataView(Data);
dataview.RowFilter = "Sumber = '" + sumber + "'";
DataTable table = dataview.ToTable(); table.Columns.Remove("Id");
((DataGridView)ctls[0]).DataSource = table;
ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true); if (ctls.Length > 0)
{
DataTable table_matriks = ConvertToMatriks(table, Data_kriteria); ((DataGridView)ctls[0]).DataSource = table_matriks;
for (int i = 0; i < table_consolidated.Rows.Count; i++) {
for (int j = 1; j < table_consolidated.Columns.Count; j++) {
table_consolidated.Rows[i][j] = i + 1 == j ? 1 : 0; }
}
// hitung consolidated matriks
foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_matriks_" + sumber, true); if (ctls.Length > 0)
{
DataTable table = (DataTable)((DataGridView)ctls[0]).DataSource;
}
table_consolidated = CalculatePair(table_consolidated);
Control[] ctlconsol = tabData.Controls.Find("dataview_matriks_Consolidated", true); if (ctlconsol.Length > 0)
privateDataTable CalculateData(DataTable data, DataTable dataAdd) {
privateDataTable CalculatePair(DataTable data) {
double dup = (double)data.Rows[j][i + 1] / (double)DistinctSumber.Rows.Count; dup = Math.Exp(dup);
privatevoid GenerateView(DataTable distinctSumber) {
foreach (DataRow rowSumber in distinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
TabPage new_page = newTabPage(sumber);
TabControl new_tab;
TabPage new_page2 = newTabPage("Consolidated");
TabControl new_tab2 = GenerateDetail3("Consolidated"); new_page2.Controls.Add(new_tab2);
tabData.Controls.Add(new_page2); }
}
{
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_data = newTabPage("Data");
TabPage new_page_matriks = newTabPage("Matriks");
TabPage new_page_hasil = newTabPage("Hasil");
TabPage new_page_consistency = newTabPage("Consistency");
DataGridView new_view_data = newDataGridView();
DataGridView new_view_matriks = newDataGridView();
DataGridView new_view_hasil = newDataGridView();
DataGridView new_view_consistency = newDataGridView(); new_view_data.Dock = DockStyle.Fill;
new_view_matriks.Dock = DockStyle.Fill; new_view_hasil.Dock = DockStyle.Fill; new_view_consistency.Dock = DockStyle.Fill;
new_view_data.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_matriks.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_hasil.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_consistency.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; new_view_data.Name = "dataview_data_" + name;
new_view_matriks.Name = "dataview_matriks_" + name; new_view_hasil.Name = "dataview_hasil_" + name;
new_view_consistency.Name = "dataview_consistency_" + name;
new_page_data.Controls.Add(new_view_data); new_page_matriks.Controls.Add(new_view_matriks); new_page_hasil.Controls.Add(new_view_hasil);
new_page_consistency.Controls.Add(new_view_consistency);
new_tab.Controls.Add(new_page_data);
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_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;
// hitung total kolom dan baris
Dictionary<string, double> total_kolom = newDictionary<string, double>();
Dictionary<string, double> total_baris = newDictionary<string, double>(); foreach (DataRow kriteria in data_kriteria.Rows)
{
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
total_kolom[namakriteria] += (double)row[namakriteria]; }
}
DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Kriteria"] = "Total Kolom"; foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
new_row[namakriteria] = total_kolom[namakriteria]; }
data_jumlah_kolom.Rows.Add(new_row);
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow kriteria in data_kriteria.Rows) {
String namakriteria = kriteria["Kriteria"].ToString();
row[namakriteria] = (double)row[namakriteria] / total_kolom[namakriteria]; }
}
foreach (DataRow row in data_matriks.Rows) {
String namakriteria = row["Kriteria"].ToString(); if (namakriteria == "Total Kolom") continue; for (int i = 1; i < data_matriks.Columns.Count; i++) {
total_baris[namakriteria] += (double)row[i]; }
}
data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));
Dictionary<string, double> eigenVector = newDictionary<string, double>(); foreach (DataRow row in data_matriks.Rows)
{
String namakriteria = row["Kriteria"].ToString(); if (namakriteria == "Total Kolom") continue;
row["Total Baris"] = total_baris[namakriteria];
row["Eigen Vector"] = total_baris[namakriteria] / JumlahKriteria;
row["Eigen Max"] = total_baris[namakriteria] / JumlahKriteria * total_kolom[namakriteria]; }
foreach (DataRow row in data_matriks.Rows) {
new_row["Value"] = lamda;
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++) {
if (rows.Length == 1)
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"]; if (ctl02.Length > 0)
((DataGridView)ctl02[0]).DataSource = data_jumlah_kolom;
privatevoid ButtonClose_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid buttonRefresh_Click(object sender, EventArgs e) {
LoadData(); }
privatevoid BSimpan_Click(object sender, EventArgs e) {
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)
bool isSuccess = database.SaveDataTable("table_master_kriteria", Data_kriteria, null, null);
if (isSuccess)
11. Listing Program Form Perhitungan Pemain
using System;
using System.Drawing;
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) {
privateDataTable GetDataPenilaian(string kriteria) {
//loading data penilaian
query = "select * from table_penilaian_ahp where JenisPenilaian = @JenisPenilaian ORDER BY Sumber ASC, BandingA ASC, BandingB ASC";
parameters = newList<SqlCeParameter>();
parameters.Add(newSqlCeParameter("JenisPenilaian", JenisPenilaian + kriteria));
DataTable Data = database.GetDataTable(query, parameters); return Data;
}
privatevoid LoadData(string kriteria) {
DataTable Data = GetDataPenilaian(kriteria);
//loading data pemain
query = "select * from table_pemain ORDER BY Nama ASC"; parameters = newList<SqlCeParameter>();
Data_pemain = database.GetDataTable(query, parameters);
DataView dataview = newDataView(Data);
Control[] tabs = tabData.Controls.Find("tab" + kriteria, true); if (tabs.Length > 0)
{
tabs[0].Controls.Add(GenerateView(DistinctSumber, kriteria)); }
DataTable table_consolidated = newDataTable(); foreach (DataRow rowSumber in DistinctSumber.Rows) {
string sumber = rowSumber["Sumber"].ToString();
Control[] ctls = tabData.Controls.Find("dataview_data_" + kriteria + sumber, true); if (ctls.Length > 0)
{
dataview = newDataView(Data);
dataview.RowFilter = "Sumber = '" + sumber + "'";
DataTable table = dataview.ToTable(); table.Columns.Remove("Id");
((DataGridView)ctls[0]).DataSource = table;
ctls = tabData.Controls.Find("dataview_matriks_" + kriteria + sumber, true); if (ctls.Length > 0)
{
DataTable table_matriks = ConvertToMatriks(table, Data_pemain); ((DataGridView)ctls[0]).DataSource = table_matriks;
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);
privateDataTable CalculateData(DataTable data, DataTable dataAdd)
privateDataTable CalculatePair(DataTable data, Int32 numberParticipant) {
double dup = (double)data.Rows[j][i + 1] / (double)numberParticipant; dup = Math.Exp(dup);
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;
TabPage new_page2 = newTabPage("Consolidated");
TabControl new_tab2 = GenerateDetail3(kriteria + "Consolidated"); new_page2.Controls.Add(new_tab2);
privateTabControl GenerateDetail2(string name) {
TabControl new_tab = newTabControl(); new_tab.Name = "Tab" + name; new_tab.Dock = DockStyle.Fill;
TabPage new_page_data = newTabPage("Data");
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);
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);
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;
// hitung total kolom dan baris
Dictionary<string, double> total_kolom = newDictionary<string, double>();
Dictionary<string, double> total_baris = newDictionary<string, double>(); foreach (DataRow pemain in data_pemain.Rows)
{
}
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
total_kolom[namapemain] += (double)row[namapemain]; }
}
DataRow new_row = data_jumlah_kolom.NewRow(); new_row["Nama"] = "Total Kolom";
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
new_row[namapemain] = total_kolom[namapemain]; }
data_jumlah_kolom.Rows.Add(new_row);
foreach (DataRow row in data_matriks.Rows) {
foreach (DataRow pemain in data_pemain.Rows) {
String namapemain = pemain["Nama"].ToString();
row[namapemain] = (double)row[namapemain] / total_kolom[namapemain]; }
}
foreach (DataRow row in data_matriks.Rows) {
String namapemain = row["Nama"].ToString(); if (namapemain == "Total Kolom") continue; for (int i = 1; i < data_matriks.Columns.Count; i++) {
total_baris[namapemain] += (double)row[i]; }
}
data_matriks.Columns.Add("Total Baris", typeof(double)); data_matriks.Columns.Add("Eigen Vector", typeof(double)); data_matriks.Columns.Add("Eigen Max", typeof(double));
Dictionary<string, double> eigenVector = newDictionary<string, double>(); foreach (DataRow row in data_matriks.Rows)
{
String namapemain = row["Nama"].ToString(); if (namapemain == "Total Kolom") continue;
row["Total Baris"] = total_baris[namapemain];
row["Eigen Vector"] = total_baris[namapemain] / JumlahPemain;
row["Eigen Max"] = total_baris[namapemain] / JumlahPemain * total_kolom[namapemain]; }
foreach (DataRow row in data_matriks.Rows) {
new_row["Desc"] = "Lamda";
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++) {
{
privatevoid BtnProses_Click(object sender, EventArgs e) {
MessageBox.Show("Calculating is Finish. (elapsed time : " + stopwatch.ElapsedMilliseconds + " ms)"); }
privatevoid Proses(string kriteria) {
DataTable Data = GetDataPenilaian(kriteria);
DataView dataview = newDataView(Data);
DataTable distinctSumber = dataview.ToTable(true, "Sumber");
Dictionary<string, DataTable> result = newDictionary<string, DataTable>(); string sumber = kriteria + "Consolidated";
if (distinctSumber.Rows.Count <= 1) {
sumber = kriteria + distinctSumber.Rows[0]["Sumber"].ToString(); }
Control[] ctl02 = tabData.Controls.Find("dataview_matriks_" + sumber, true);
Control[] ctl03 = tabData.Controls.Find("dataview_hasil_" + sumber, true);
Control[] ctl04 = tabData.Controls.Find("dataview_consistency_" + sumber, true); if (ctl02.Length > 0)
{
DataTable data_jumlah_kolom = result["TableJumlahKolom"];
DataTable data_matriks = result["Matriks"];
DataTable data_akhir = result["TableAkhir"]; if (ctl02.Length > 0)
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)
foreach (DataRow pemain in Data_pemain.Rows) {
string namapemain = pemain["Nama"].ToString();
table_rangking.Columns.Add(namapemain, typeof(double)); }
foreach (DataRow kriteria in Data_kriteria.Rows) {
string namakriteria = kriteria["Kriteria"].ToString();
double eigenvector = String.IsNullOrEmpty(kriteria["EigenVector"].ToString()) ? 0 : (double)(kriteria["EigenVector"]); ;
DataRow row_total = table_rangking.NewRow(); row_total["Kriteria"] = "Total";
foreach (DataRow rank in table_rangking.Rows) {
string namakriteria = rank["Kriteria"].ToString(); double eigenvectorkriteria = (double)rank["Prioritas"];
foreach (DataRow pemain in Data_pemain.Rows) {
string namapemain = pemain["Nama"].ToString();
DataRow[] rows = datas[namakriteria].Select("Nama ='" + namapemain + "'"); double eigenvectorpemain = rows.Length > 0 ? (double)rows[0]["Eigen Vector"] : 1; rank[namapemain] = eigenvectorkriteria * eigenvectorpemain;
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";
DataGridView dataview_ranking = newDataGridView(); dataview_ranking.DataSource = ranking; dataview_ranking.Dock = DockStyle.Fill; tabRanking.Controls.Add(dataview_ranking);
}
privatevoid buttonRefresh_Click(object sender, EventArgs e) {
LoadData("Dribble"); }
12. Listing Program Form About
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace AHPPM {
publicpartialclassFormAbout : Form
{
public FormAbout() {
InitializeComponent(); }
privatevoid button1_Click(object sender, EventArgs e) {
this.Close(); }
privatevoid label1_Click(object sender, EventArgs e) {
Curriculum Vitae
Nama : Ivana Lisa Br Sitepu
Tanggal Lahir : 27 Oktober 1993
Jenis Kelamin : Perempuan
Alamat Sekarang : Jl. Prof.HM.Yamin.SH No 151c Medan
Alamat Orang Tua : Jl. Prof.HM.Yamin.SH No 151c Medan
Hp : 081362924727
Email : ivana.sitepu@gmail.com
Riwayat Pendidikan
2011-2015 : S1 Ilmu Komputer Universitas Sumatera Utara
2008-2011 : SMA Santo Thomas 1 Medan
2005-2008 : SMP Sutomo 1 Medan
1999-2005 : SD Methodist 7 Medan
DAFTAR PUSTAKA
[ARD13] Ardianto, S. 2013. Hubungan antar autropometri tubuh dengan kelincahan
(Agility) dan daya tahan kardiovaskulas (Vo2max) pada olahraga bola basket.
Skripsi. Universitas Pendidikan Indonesia.
[DAR12] Darmawan, A. S. 2012. Pemilihan beasiswa bagi mahasiswa Stmik widya
pratama dengan metode profile matching. Jurnal Ilmiah ICTech Vol X,No.1 ;
2-4.
[DEV13] Devita, A. 2013. Survey tes tingkat kemampuan teknik dasar bermain bola
basket (passing, dribbling, dan shooting) pada tim bola basket putra kelompok
umur 18 tahun Klub sahabat Semarang tahun 2012. Skripsi. Universitas Negri
Semarang.
[DWI15] Dwi. 2015. Perbandingan metode analytical hierarchy process dan weighted
sum model pada sistem pendukung keputusan. Skripsi. Universitas Sumatera
Utara.
[SIA14] Sianturi, J. 2014. Perancangan sistem pendukung keputusan dengan
menggabungkan metode SAW dan AHP untuk pemilihan bedah rumah (studi
kasus dinas pekerjaan umum cipta karya dan tata ruang Kabupaten Dairi).
Skripsi. Universitas Sumatera Utara.
[FAI14] Faisol A., Muhammad A. M. & Hadi S. 2014. Komparasi Fuzzy AHP dengan
AHP pada Sistem Pendukung Keputusan Investasi Properti. Jurnal EECCIS
[HAP13] Hapsari, A., T. 2013. Status Keterampilan Bermain Bola Basket Pada club
NBC (Ngaliyan Basketball Center) Kota Semarang. Skripsi. Universitas Negeri
Semarang.
[HAP14] Harahap, I. A. 2014. Implementasi Perbandingan metode Profile Matching dan
Simple Additive Weighting (SAW) dalam penilaian kinerja karyawan (studi
kasus dinas kebudayaan dan pariwisata Provinsi Sumatera Utara). Skripsi.
Universitas Sumatera Utara.
[IQB11] Iqbal & Hartati S. 2011. Aplikasi Sistem Pendukung Keputusan Penempatan
Bidan PTT (Pegawai Tidak Tetap) pada Kabupaten Bireuen. Prosiding –
Seminar Nasional Ilmu Komputer GAMA 2011.
[MAN10] Manurung, P. 2010. Sistem pendukung keputusan seleksi penerima beasiswa
dengan metode AHP dan Topsis (Stusi kasus: FMIPA USU). Skripsi.
Universitas Sumatera Utara.
[MIL14] Milala, 0. S. M. 2014. Implementasi color constancy pada citra digital
menggunakan logarithmic image processing. Skripsi. Universitas Sumatera
Utara.
[NAS09] Nasibu, I. Z. 2009. Penerapan metode AHP dalam sistem pendukung keputusan
penempatan karyawan menggunakan aplikasi Expert Choice . Jurnal Pelangi
Ilmu Vol 2 , No.5 : 185-187.
[NOV14] Novembri, F. 2014. Implementasi metode profile matching dan metode
Analytical Hierarchy Process (AHP) pada perekrutan tenaga kurir (studi kasus
PT.JNE cabang Medan). Skripsi. Universitas Sumatera Utara.
[NUG14] Nugraha, M. R. 2014. Implementasi sistem pendukung keputusan seleksi
sertifikasi guru sma menggunakan metode Analytical Hierarchy Process dan
[RAH14] Rahman, A. 2014. Implementasi metode Simple Additive Weighting (SAW) dan
Profile Matching dalam menentukan pejabat struktural pada pemerintah kota
tebing tinggi. Skripsi. Universitas Sumatera Utara.
[RAN15] Rangkuti, S. H. 2015. Implemetasi metode Simple Additive Weighting (SAW)
dan Analytical Hierarchy Process (AHP) untuk pemilihan sistem operasi pada
komputer. Skripsi. Universitas Sumatera Utara.
[SIA14] Sianturi, J. 2014. Perancangan sistem pendukung keputusan dengan
menggabungkan metode SAW dan AHP untuk pemilihan bedah rumah (studi
kasus dinas pekerjaan umum cipta karya dan tata ruang Kabupaten Dairi).
Skripsi. Universitas Sumatera Utara.
[SIA15] Siambaton, A. H. 2015. Sistem pendukung keputusan pemilihan gitar berbasis
android menggunakan metode weighted sum model. Skripsi. Universitas
Sumatera Utara.
[TOM12] Tominanto. 2012. Sistem Pendukung keputusan dengan metode Analytical
Hierarchy Process (AHP) untuk penentuan prestasi kinerja dokter pada RSUD
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Analisis sistem (system analysis) dapat didefinisikan sebagai penguraian dari suatu sistem
informasi yang utuh ke dalam bagian-bagian komponennya danganmaksud untuk
mengidentifikasikan dan mengevaluasikan permasalah-permasalahan,
kesempatan-kesempatan, hambatan-hambatan yang terjadi dan kebutuhan-kebutuhan yang diharapkan
sehingga dapat diusulkan perbaikan-perbaikan.
Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase
awal pengembangan sistem. Tahapan yang dilakukan untuk menghasilkan pemahaman
yang menyeluruh terhadap kebutuhan sistem sehingga diperoleh tugas-tugas yang akan
dikerjakan sistem disebut analisis system.
3.2Analisis Masalah
Analisis masalah adalah proses mengidentifikasi sebab dan akibat dibangunnya sebuah
sistem agar sistem yang akan dibangun tersebut dapat berjalan sebagaimana mestinya
sesuai dengan tujuan dari sistem itu. Masalah utama yang diangkat adalah pemilihan
pemain basket terbaik pada sistem pengambilan keputusan. Sistem pengambilan
keputusan ini menggunakan Algoritma Analytical Hierarchy Process
dan Profile Matching.
DiagramIshikawa adalah diagram yang menunjukkan penyebab-penyebab dari
sebuah event yang spesifik. Diagram ini juga disebut dengan diagram tulang ikan atau
cause-and-effect diagram. Pemakaian diagramIshikawa yang paling umum adalah untuk
mencegah efek serta mengembangkan kualitas produk. Analisa masalah lebih jelas
Gambar 3.1. Diagram Ishikawa analisis masalah sistem pemilihan pemain basket
3.3 Analisis Kebutuhan Sistem
Analisis Kebutuhan Sistem meliputi Kebutuhan Fungsional Sistem dan Kebutuhan
Non-Fungsional Sistem.
3.3.1 Kebutuhan Fungsional Sistem
Kebutuhan fungsional yang harus dimiliki oleh sistem pemilihan pemain basket adalah
sebagai berikut:
1. Sistem dapat menentukan prioritas setiap kriteria
2. Sistem dapat memberikan penilaian secara objektif setiap alternatif
3. Sistem dapat memilih 1 orang pemain basket terbaik dari 5 orang calon pemain
basket
3.3.2 Kebutuhan Non-Fungsional Sistem
Untuk mendukung kinerja sistem, sistem sebaiknya dapat berfungsi sebagai berikut:
1. Sistem harus dapat melakukan perhitungan untuk menentukan pemain, sesuai
dengan kriteria dari user dengan kecepatan komputasi yang tinggi.
2. Interface sistem mudah dipahami oleh user.
3.3Flowchart Sistem
3.4.1 Flowchart Sistem secara umum
3.4.2 Flowchart Algoritma AHP
3.4.3 Flowchart Algoritma Profile Matching
3.5 Perancangan Sistem
Proses perancangan antarmuka (interface) sebuah sistem adalah proses yang cukup
penting dalam perancangan sebuah sistem. Merancang antarmuka merupakan bagian
yang paling penting dari merancang sebuah sistem. Sebuah antarmuka harus dirancang
dengan memperhatikan faktor pengguna sehingga sistem yang dibangun dapat
memberikan kenyamanan dan kemudahan untuk digunakan oleh pengguna.
3.5.1 Antarmuka Perhitungan dengan Algoritma AHP
Pada tampilan perhitungan dengan metode AHP, akan ditampilkan form untuk mengisi
perbandingan berpasangan berdasarkan kriteria, kemudian dari perhitungan perbandingan
berpasangan akan ditampilkan bobot kriteria dan nilai kekonsistenan dari bobot tersebut,
seperti pada gambar 3.5 berikut.
Gambar 3.5 Antarmuka Perhitungan dengan Algoritma AHP
Keterangan :
1. Data Grid Kriteria
berfungsi untuk input perbandingan berpasangan antar kriteria.
2. Data Grid Ranking
Berfungsi untuk menampilkan ranking pemain basket.
3. Data Grid Nama pengisi kuesioner
Berfungsi untuk menampilkan data kriteria yang paling dominan sesuai hasil
4. Data Grid Cinsolidated
Berfungsi untuk menampilkan total data yang telah di dapat dari hasil kuesioner .
5. Data Grid Data
Berfungsi untuk menampilkan data kriteria sesuai nama pengisi kuesioner yang
diinginkan.
6. Data Grid Matriks
Berfungsi untuk menampilkan nilai matriks.
7. Data Grid Hasil
Berfungsi untuk menampilkanEigen Vector.
8. Data Grid Consitency
Berfungsi untuk menampilkan nilai CR.
9. Tabel Perbanding
Berfungsi untuk menampilkan data perbandingan yang diinginkan.
10. Tombol Close
Berfungsi untuk menutup form Perhitungan AHP.
11. Tombol Proses
Berfungsi untuk memproses data yang yang diinginkan.
3.5.2 Antarmuka Perhitungan dengan Algoritma Profile Matching
Keterangan :
1. Data Grid Data
Berfungsi untuk menampilkan data subkriteria setiap pemain.
2. Data Grid Gap Nilai
Berfungsi untuk menampilkan nilai Gap subkriteria setiap pemain.
3. Data Grid Pembobotan
Berfungsi untuk menampilkan bobot nilai.
4. Data Grid Perhitungan NCF/NSF
Berfungsi untuk menampilkan nilai NCF dan NSF.
5. Data Grid Ranking
Berfungsi untuk menampilkan ranking pemain basket.
6. Tabel Perbanding
Berfungsi untuk menampilkan data perbandingan yang diinginkan.
7. Tombol Refresh Data
Berfungsi untuk reset data.
8. Tombol Proses
Berfungsi untuk menproses data yang diinginkan.
9. Tombol Close
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Tahap implementasi sistem merupakan lanjutan dari tahap perancangan sistem. Pada
tahap ini dilakukan implementasi sistem ke dalam bahasa pemrograman berdasarkan hasil
analisis dan perancangan sistem. Pada tahap implementasi ini digunakan perangkat lunak
dan perangkat keras, sehingga sistem yang dibangun dapat diselesaikan dengan baik.
Sistem ini dibangun dengan menggunakan Software Microsoft Visual Studio 2010
Version 10.0.030319.1 RTMRel. Pada sistem terdapat 3 halaman utama yang digunakan,
terdiri dari:
1. Home
2. Perhitungan AHP
3. Perhitungan Profile Matching
4. Tentang
4.1.1 Tampilan Home
Home merupakan form yang pertama kali muncul pada saat aplikasi dijalankan. Form ini
terdiri dari dua TabMenu, yaitu Tab File dan Tentang. Halaman utama pada aplikasi
Gambar 4.1 FormHome
Tab File terdiri dari beberapa submenu yaitu Perhitungan AHP, Perhitungan
Profile Matching dan menu Keluar.Tab tentangmerupakan halaman yang digunakan
untuk melihat informasi tentang program dan programmer.
4.1.2 Perhitungan AHP
Perhitungan AHP merupakan submenu pada Tab File yang merupakan interface untuk
melakukan perhitungan dengan menggunakan Metode Analytical Hierarchy Proces,
dimana disediakan tabel untuk perbandingan berpasangan kriteria. Tampilan untuk form
Gambar 4.2 Form Perhitungan AHP
4.1.3 Perhitungan Profile Matching
Perhitungan Profile Matching merupakan submenu pada tab File yang merupakan
interface untuk melakukan perhitungan dengan menggunakan Profile Matching.
Tampilan untuk form ini dapat dilihat pada Gambar 4.3.
4.1.4 Tampilan Halaman Tentang
Halaman menu tentangmerupakan halaman yang digunakan untuk melihat informasi
tentang program dan programmer, tampilan Menu Tentang dapat dilihat pada Gambar 4.4
di bawah ini:
Gambar 4.4 Halaman FormTentang.
4.2 Pengujian Sistem
Pengujian sistem dilakukan untuk mengetahui bagaimana kinerja sistem dalam
pengimplementasian Algoritma Analytical Hierarchy Process dan Profile Matchinguntuk
melakukan proses menentukan pemain basket terbaik..
4.2.1 Pengujian Sistem dengan Algoritma Analytical Hierarchy Process
Untuk menentukan pemain basket terbaik dengan Algoritma Analytical Hierarchy
Process tahap awal yang dilakukan adalah memilih submenu Perhitungan AHP pada Tab
File. Setelah tampilan form Perhitungan AHP muncul maka lakukan langkah-langkah
berikut ini untuk melakukan proses pemilihan.
1. Mengisi formdata pemain pada tabel yang telah disediakan.
2. Mengisi form perbandingan berpasangan kriteria pada tabel yang telah disediakan.
3. Setelah mengisi tabel perbandingan berpasangan tekan tombol Proses untuk
mendapatkan bobot dari kriteria berdasarkan perbandingan berpasangan tadi yang
Gambar 4.5Form Perbandingan Berpasangan Kriteria
Pada gambar 4.5 ini terdapat nama sumber atau pengisi kuisioner yang telah
mengisi nilai dominan dari kriteria yang ditentukan, setelah si pengguna mengisi
tabel tersebut maka sistem akan memproses hasil consistency dari kriteria
tersebut.
4. Selanjutnya pilih submenu perhitungan pemain lalu hasil hitung kemudian pilih
proses untuk mendapatkan nilai setiap pemain sesuai kriteria yang ditentukan.
Pada form perhitngan pemain yang di ada pada gambar 4.6 untuk mengetahui urutan
kriteria yang lebih prioritas dan menghitung nilai yang di dapat pemain dari setiap
kriteria sehingga di dapat total nilai pemain dari setiap kriteria yang ditentukan
5. Setelah melakukan langkah-langkah terserbut maka untuk mendapatkan ranking
dari pemain basket dapat dilakukan dengan memilih ranking lalu klik tombol
proses.
Gambar 4.7FormRanking Pemain Basket AHP
Pada gambar 4.7 adalah untuk melihat ranking dari pemain basket, pada gambar ini
dapat di lihat siapa pemain basket terbaik dari calon-calon yang telah ditentukan.
4.2.2 Pengujian Sistem dengan Algoritma Profile Matching
Untuk menentukan pemain basket terbaik dengan Algoritma Profile Matching tahap awal
yang dilakukan adalah memilih submenu Perhitungan Profile Matching pada Tab File.
Setelah tampilan form Perhitungan Profile Matching muncul maka lakukan
langkah-langkah berikut ini untuk melakukan proses pemilihan.