BAB V IMPLEMENTASI SISTEM DAN ANALISIS HASIL
5.2 Implementasi Subsistem Manajemen Model
Sesuai dengan perancangan umum yang telah dibuat sebelumnya, sistem yang dibuat ini dimulai dari input bobot faktor tujuan setiap kriteria. Kemudian dilakukan perhitungan normalisasi bobot faktor tujuan setiap kriteria. Setelah itu, setelah itu dilakukan perhitungan nilai interval setiap kriteria lalu menghitung normalisasi skor setiap kriteria. Kemudian dilakukan konversi nilai normalisasi skor menjadi nilai utility score dan setelah itu dilakukan perhitungan skor total setiap alternatif. Berdasarkan perancangan sistem yang telah dibuat, berikut disajikan beberapa potongan kode program intinya.
1) Input Bobot Faktor Tujuan Setiap Kriteria
string simpanbft = "", simpanbft1 = "", simpanbft2 = "", simpanbft3 =
"", simpanbft4 = "", simpanbft5 = "", simpanbft6 = "", simpanbft7 = "", simpanbft8 = "", simpanbft9 = "";
//Buat koneksi ke database MySqlConnection db = new
MySqlConnection("datasource=localhost;database=skripsi-
sppk;port=3306;username=root;password=");
MySqlDataAdapter data = new MySqlDataAdapter(); MySqlCommand command = db.CreateCommand(); DataSet dataset = new DataSet();
//Kueri untuk menghitung jumlah baris data dalam tabel bft command.CommandText = "SELECT COUNT(*) FROM bft";
db.Open();
double countBFT =
Double.Parse(command.ExecuteScalar().ToString());
db.Close();
//Jika jumlah baris data dalam tabel bft kosong: if (countBFT == 0)
{
//Siapkan beberapa kueri untuk insert data ke tabel bft //Simpan tiap nilai inputan
simpanbft = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Posisi.Text + "','" + comboTujuanPosisi.Text + "','" + ComboBobotGawang.Text + "','" + ComboBobotBelakang.Text + "','" + ComboBobotTengah.Text + "','" + ComboBobotDepan.Text + "')"; simpanbft1 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Teknik.Text + "','" + ComboTujuanTeknik.Text + "','" + ComboBobotGawangTeknik.Text + "','" + ComboBobotBelakangTeknik.Text +
"','" + ComboBobotTengahTeknik.Text + "','" + ComboBobotDepanTeknik.Text + "')";
simpanbft2 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Taktik.Text + "','" + ComboTujuanTaktik.Text + "','" + ComboBobotGawangTaktik.Text + "','" + ComboBobotBelakangTaktik.Text +
"','" + ComboBobotTengahTaktik.Text + "','" + ComboBobotDepanTaktik.Text + "')";
simpanbft3 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Fisik.Text + "','" + ComboTujuanFisik.Text + "','" + ComboBobotGawangFisik.Text + "','" + ComboBobotBelakangFisik.Text +
"','" + ComboBobotTengahFisik.Text + "','" + ComboBobotDepanFisik.Text + "')";
simpanbft4 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Psikologi.Text + "','" + ComboTujuanPsikologi.Text + "','"
+ ComboBobotGawangPsikologi.Text + "','" + ComboBobotBelakangPsikologi.Text + "','" +
ComboBobotTengahPsikologi.Text + "','" + ComboBobotDepanPsikologi.Text + "')";
simpanbft5 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Tahan.Text + "','" + ComboTujuanTahan.Text + "','" + ComboBobotGawangTahan.Text + "','" + ComboBobotBelakangTahan.Text +
"','" + ComboBobotTengahTahan.Text + "','" + ComboBobotDepanTahan.Text + "')";
simpanbft6 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Serang.Text + "','" + ComboTujuanSerang.Text + "','" + ComboBobotGawangSerang.Text + "','" + ComboBobotBelakangSerang.Text +
"','" + ComboBobotTengahSerang.Text + "','" + ComboBobotDepanSerang.Text + "')";
simpanbft7 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Transisi.Text + "','" + ComboTujuanTransisi.Text + "','" + ComboBobotGawangTransisi.Text + "','" + ComboBobotBelakangTransisi.Text + "','" + ComboBobotTengahTransisi.Text + "','" +
ComboBobotDepanTransisi.Text + "')";
simpanbft8 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + Tinggi.Text + "','" + ComboTujuanTinggi.Text + "','" + ComboBobotGawangTinggi.Text + "','" + ComboBobotBelakangTinggi.Text +
"','" + ComboBobotTengahTinggi.Text + "','" + ComboBobotDepanTinggi.Text + "')";
simpanbft9 = "insert into bft
(kriteria,faktor_tujuan,bft_depan,bft_tengah,bft_belakang,bft_gawang) values('" + berat.Text + "','" + ComboTujuanBerat.Text + "','" + ComboBobotGawangBerat.Text + "','" + ComboBobotBelakangBerat.Text +
"','" + ComboBobotTengahBerat.Text + "','" + ComboBobotDepanBerat.Text + "')";
}
//Jika jumlah baris tidak kosong (berarti sudah ada data tersimpan)
else
{
//Siapkan beberapa kueri untuk update data pada tabel bft
//Simpan tiap nilai inputan
simpanbft = "update bft set faktor_tujuan='" + comboTujuanPosisi.Text + "',bft_gawang='" + ComboBobotGawang.Text +
"',bft_belakang='" + ComboBobotBelakang.Text + "',bft_tengah='" + ComboBobotTengah.Text + "',bft_depan='" + ComboBobotDepan.Text + "' WHERE kriteria='" + Posisi.Text + "'";
simpanbft1 = "update bft set faktor_tujuan='" +
ComboTujuanTeknik.Text + "',bft_gawang='" + ComboBobotGawangTeknik.Text + "',bft_belakang='" + ComboBobotBelakangTeknik.Text + "',bft_tengah='"
+ ComboBobotTengahTeknik.Text + "',bft_depan='" +
ComboBobotDepanTeknik.Text + "' WHERE kriteria='" + Teknik.Text + "'"; simpanbft2 = "update bft set faktor_tujuan='" +
ComboTujuanTaktik.Text + "',bft_gawang='" + ComboBobotGawangTaktik.Text + "',bft_belakang='" + ComboBobotBelakangTaktik.Text + "',bft_tengah='"
+ ComboBobotTengahTaktik.Text + "',bft_depan='" +
ComboBobotDepanTaktik.Text + "' WHERE kriteria='" + Taktik.Text + "'"; simpanbft3 = "update bft set faktor_tujuan='" +
ComboTujuanFisik.Text + "',bft_gawang='" + ComboBobotGawangFisik.Text +
"',bft_belakang='" + ComboBobotBelakangFisik.Text + "',bft_tengah='" + ComboBobotTengahFisik.Text + "',bft_depan='" +
ComboBobotDepanFisik.Text + "' WHERE kriteria='" + Fisik.Text + "'"; simpanbft4 = "update bft set faktor_tujuan='" + ComboTujuanPsikologi.Text + "',bft_gawang='" +
ComboBobotBelakangPsikologi.Text + "',bft_tengah='" + ComboBobotTengahPsikologi.Text + "',bft_depan='" +
ComboBobotDepanPsikologi.Text + "' WHERE kriteria='" + Psikologi.Text +
"'";
simpanbft5 = "update bft set faktor_tujuan='" +
ComboTujuanTahan.Text + "',bft_gawang='" + ComboBobotGawangTahan.Text +
"',bft_belakang='" + ComboBobotBelakangTahan.Text + "',bft_tengah='" + ComboBobotTengahTahan.Text + "',bft_depan='" +
ComboBobotDepanTahan.Text + "' WHERE kriteria='" + Tahan.Text + "'"; simpanbft6 = "update bft set faktor_tujuan='" +
ComboTujuanSerang.Text + "',bft_gawang='" + ComboBobotGawangSerang.Text + "',bft_belakang='" + ComboBobotBelakangSerang.Text + "',bft_tengah='"
+ ComboBobotTengahSerang.Text + "',bft_depan='" +
ComboBobotDepanSerang.Text + "' WHERE kriteria='" + Serang.Text + "'"; simpanbft7 = "update bft set faktor_tujuan='" +
ComboTujuanTransisi.Text + "',bft_gawang='" +
ComboBobotGawangTransisi.Text + "',bft_belakang='" + ComboBobotBelakangTransisi.Text + "',bft_tengah='" + ComboBobotTengahTransisi.Text + "',bft_depan='" +
ComboBobotDepanTransisi.Text + "' WHERE kriteria='" + Transisi.Text +
"'";
simpanbft8 = "update bft set faktor_tujuan='" +
ComboTujuanTinggi.Text + "',bft_gawang='" + ComboBobotGawangTinggi.Text + "',bft_belakang='" + ComboBobotBelakangTinggi.Text + "',bft_tengah='"
+ ComboBobotTengahTinggi.Text + "',bft_depan='" +
ComboBobotDepanTinggi.Text + "' WHERE kriteria='" + Tinggi.Text + "'"; simpanbft9 = "update bft set faktor_tujuan='" +
ComboTujuanBerat.Text + "',bft_gawang='" + ComboBobotGawangBerat.Text +
"',bft_belakang='" + ComboBobotBelakangBerat.Text + "',bft_tengah='" + ComboBobotTengahBerat.Text + "',bft_depan='" +
ComboBobotDepanBerat.Text + "' WHERE kriteria='" + berat.Text + "'"; }
//Eksekusi kueri yang sudah ditetapkan ExecuteQuery(simpanbft); ExecuteQuery(simpanbft1); ExecuteQuery(simpanbft2); ExecuteQuery(simpanbft3); ExecuteQuery(simpanbft4); ExecuteQuery(simpanbft5); ExecuteQuery(simpanbft6); ExecuteQuery(simpanbft7); ExecuteQuery(simpanbft8); ExecuteQuery(simpanbft9);
MessageBox.Show("Data bobot faktor tujuan berhasil disimpan");
//Setelah disimpan, tampilkan kotak dialog Tabel_Normalisasi_BFT
Tabel_Normalisasi_BFT form = new Tabel_Normalisasi_BFT(); form.ShowDialog();
2) Hitung Normalisasi Bobot Faktor Tujuan Setiap Kriteria //Buat koneksi ke database
MySqlConnection db = new
MySqlConnection("datasource=localhost;database=skripsi-
sppk;port=3306;username=root;password=");
MySqlDataAdapter data = new MySqlDataAdapter(); MySqlCommand command = db.CreateCommand(); DataSet dataset = new DataSet();
//Kueri untuk menampilkan semua data dari tabel bft command.CommandText = "SELECT * FROM bft";
db.Open();
MySqlDataReader read = command.ExecuteReader();
//Buat beberapa list untuk menampung data dari database List<string> hasilKriteria = new List<string>(); List<string> hasilFaktor = new List<string>(); List<string> hasilBobot_depan = new List<string>(); List<string> hasilBobot_tengah = new List<string>(); List<string> hasilBobot_belakang = new List<string>(); List<string> hasilBobot_gawang = new List<string>(); //Lakukan perulangan selama masih ada data yang belum dibaca
while (read.Read()) {
//Simpan data dari database ke tiap list hasilKriteria.Add(read[0].ToString()); hasilFaktor.Add(read[1].ToString()); hasilBobot_depan.Add(read[2].ToString()); hasilBobot_tengah.Add(read[3].ToString()); hasilBobot_belakang.Add(read[4].ToString()); hasilBobot_gawang.Add(read[5].ToString()); } db.Close();
//Konversikan semua list ke array string
string[] HasilKriteria = hasilKriteria.ToArray(); string[] HasilFaktor = hasilFaktor.ToArray();
string[] HasilBobot_Depan = hasilBobot_depan.ToArray(); string[] HasilBobot_Tengah = hasilBobot_tengah.ToArray(); string[] HasilBobot_Belakang = hasilBobot_belakang.ToArray(); string[] HasilBobot_Gawang = hasilBobot_gawang.ToArray();
//Konversikan beberapa array string (yang diperlukan) menjadi array integer
int[] hasilINT_Depan =
Array.ConvertAll(HasilBobot_Depan, int.Parse);
int[] hasilINT_Tengah =
Array.ConvertAll(HasilBobot_Tengah, int.Parse);
int[] hasilINT_Belakang =
Array.ConvertAll(HasilBobot_Belakang, int.Parse);
int[] hasilINT_Gawang =
Array.ConvertAll(HasilBobot_Gawang, int.Parse);
//Hitung masing-masing total untuk tiap posisi
int total_Depan = hasilINT_Depan[0] + hasilINT_Depan[1] + hasilINT_Depan[2] + hasilINT_Depan[3] + hasilINT_Depan[4] +
hasilINT_Depan[5] + hasilINT_Depan[6] + hasilINT_Depan[7] + +hasilINT_Depan[8] + +hasilINT_Depan[9];
int total_Tengah = hasilINT_Tengah[0] +
hasilINT_Tengah[4] + hasilINT_Tengah[5] + hasilINT_Tengah[6] + hasilINT_Tengah[7] + +hasilINT_Tengah[8] + +hasilINT_Tengah[9]; int total_Belakang = hasilINT_Belakang[0] +
hasilINT_Belakang[1] + hasilINT_Belakang[2] + hasilINT_Belakang[3] + hasilINT_Belakang[4] + hasilINT_Belakang[5] + hasilINT_Belakang[6] + hasilINT_Belakang[7] + +hasilINT_Belakang[8] + +hasilINT_Belakang[9]; int total_Gawang = hasilINT_Gawang[0] +
hasilINT_Gawang[1] + hasilINT_Gawang[2] + hasilINT_Gawang[3] + hasilINT_Gawang[4] + hasilINT_Gawang[5] + hasilINT_Gawang[6] + hasilINT_Gawang[7] + +hasilINT_Gawang[8] + +hasilINT_Gawang[9]; //Konversikan tiap nilai total ke tipe float float[] hasilFLOAT_Depan =
Array.ConvertAll(HasilBobot_Depan, float.Parse);
float[] hasilFLOAT_Tengah =
Array.ConvertAll(HasilBobot_Tengah, float.Parse);
float[] hasilFLOAT_Belakang =
Array.ConvertAll(HasilBobot_Belakang, float.Parse);
float[] hasilFLOAT_Gawang =
Array.ConvertAll(HasilBobot_Gawang, float.Parse);
//Tampilkan nilai total tiap posisi
tbTotalBFT.Text = "" + total_Depan.ToString();
tbTotalBFTTengah.Text = "" + total_Tengah.ToString(); tbTotalBFTBelakang.Text = "" +
total_Belakang.ToString();
tbTotalBFTGawang.Text = "" + total_Gawang.ToString(); //Lakukan perulangan i dari 0 sampai panjangnya array HasilKriteria
for (int i = 0; i < HasilKriteria.Length; i++) {
//Tetapkan nilai normalisasi untuk tiap posisi //Nilai normalisasi untuk tiap posisi adalah hasil bagi nilai dengan total tiap posisinya
float normalisasi_Depan = hasilFLOAT_Depan[i] / total_Depan;
float normalisasi_Tengah = hasilFLOAT_Tengah[i] / total_Tengah;
float normalisasi_Belakang = hasilFLOAT_Belakang[i] / total_Belakang;
float normalisasi_Gawang = hasilFLOAT_Gawang[i] / total_Gawang;
//Jika kriterianya adalah Posisi if (HasilKriteria[i] == "Posisi") {
//Tetapkan nilai Posisi untuk tiap posisi kemudian tampilkan tbBFTPosisi.Text = HasilBobot_Depan[i] + ""; tbBFTTengahPosisi.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangPosisi.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangPosisi.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTPosisi.Text = normalisasi_Depan + ""; tbNormBFTTengahPosisi.Text = normalisasi_Tengah + ""; tbNormBFTBelakangPosisi.Text =
normalisasi_Belakang + "";
tbNormBFTGawangPosisi.Text = normalisasi_Gawang + "";
}
//selain itu, jika kriterianya adalah Teknik: else if (HasilKriteria[i] == "Teknik") {
//Tetapkan nilai Teknik untuk tiap posisi kemudian tampilkan tbBFTTeknik.Text = HasilBobot_Depan[i] + ""; tbBFTTengahTeknik.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangTeknik.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangTeknik.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTTeknik.Text = normalisasi_Depan + ""; tbNormBFTTengahTeknik.Text = normalisasi_Tengah + ""; tbNormBFTBelakangTeknik.Text = normalisasi_Belakang + ""; tbNormBFTGawangTeknik.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Taktik: else if (HasilKriteria[i] == "Taktik") {
//Tetapkan nilai Taktik untuk tiap posisi kemudian tampilkan tbBFTTaktik.Text = HasilBobot_Depan[i] + ""; tbBFTTengahTaktik.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangTaktik.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangTaktik.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTTaktik.Text = normalisasi_Depan + ""; tbNormBFTTengahTaktik.Text = normalisasi_Tengah + ""; tbNormBFTBelakangTaktik.Text = normalisasi_Belakang + ""; tbNormBFTGawangTaktik.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Fisik: else if (HasilKriteria[i] == "Fisik") {
//Tetapkan nilai Fisik untuk tiap posisi kemudian tampilkan tbBFTFisik.Text = HasilBobot_Depan[i] + ""; tbBFTTengahFisik.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangFisik.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangFisik.Text = HasilBobot_Gawang[i] +
""; tbNormalisasiBFTFisik.Text = normalisasi_Depan + ""; tbNormBFTTengahFisik.Text = normalisasi_Tengah + ""; tbNormBFTBelakangFisik.Text = normalisasi_Belakang + ""; tbNormBFTGawangFisik.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Psikologi: else if (HasilKriteria[i] == "Psikologi") {
//Tetapkan nilai Psikologi untuk tiap posisi kemudian tampilkan tbBFTPsikologi.Text = HasilBobot_Depan[i] + ""; tbBFTTengahPsikologi.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangPsikologi.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangPsikologi.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTPsikologi.Text = normalisasi_Depan + ""; tbNormBFTTengahPsikologi.Text = normalisasi_Tengah + ""; tbNormBFTBelakangPsikologi.Text = normalisasi_Belakang + ""; tbNormBFTGawangPsikologi.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Tahan: else if (HasilKriteria[i] == "Tahan") {
//Tetapkan nilai Tahan untuk tiap posisi kemudian tampilkan tbBFTTahan.Text = HasilBobot_Depan[i] + ""; tbBFTTengahTahan.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangTahan.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangTahan.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTTahan.Text = normalisasi_Depan + ""; tbNormBFTTengahTahan.Text = normalisasi_Tengah + ""; tbNormBFTBelakangTahan.Text = normalisasi_Belakang + ""; tbNormBFTGawangTahan.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Serang: else if (HasilKriteria[i] == "Serang") {
//Tetapkan nilai Serang untuk tiap posisi kemudian tampilkan
tbBFTSerang.Text = HasilBobot_Depan[i] + ""; tbBFTTengahSerang.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangSerang.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangSerang.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTSerang.Text = normalisasi_Depan + ""; tbNormBFTTengahSerang.Text = normalisasi_Tengah + ""; tbNormBFTBelakangSerang.Text = normalisasi_Belakang + ""; tbNormBFTGawangSerang.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Transisi: else if (HasilKriteria[i] == "Transisi") {
//Tetapkan nilai Transisi untuk tiap posisi kemudian tampilkan tbBFTTransisi.Text = HasilBobot_Depan[i] + ""; tbBFTTengahTransisi.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangTransisi.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangTransisi.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTTransisi.Text = normalisasi_Depan + ""; tbNormBFTTengahTransisi.Text = normalisasi_Tengah + ""; tbNormBFTBelakangTransisi.Text = normalisasi_Belakang + ""; tbNormBFTGawangTransisi.Text = normalisasi_Gawang + ""; }
//selain itu, jika kriterianya adalah Tinggi: else if (HasilKriteria[i] == "Tinggi") {
//Tetapkan nilai Tinggi untuk tiap posisi kemudian tampilkan tbBFTTinggi.Text = HasilBobot_Depan[i] + ""; tbBFTTengahTinggi.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangTinggi.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangTinggi.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTTinggi.Text = normalisasi_Depan + ""; tbNormBFTTengahTinggi.Text = normalisasi_Tengah + ""; tbNormBFTBelakangTinggi.Text = normalisasi_Belakang + ""; tbNormBFTGawangTinggi.Text = normalisasi_Gawang + "";
}
//selain itu, jika kriterianya adalah Berat: else if (HasilKriteria[i] == "Berat") {
//Tetapkan nilai Berat untuk tiap posisi kemudian tampilkan tbBFTBerat.Text = HasilBobot_Depan[i] + ""; tbBFTTengahBerat.Text = HasilBobot_Tengah[i] + ""; tbBFTBelakangBerat.Text = HasilBobot_Belakang[i] + ""; tbBFTGawangBerat.Text = HasilBobot_Gawang[i] + ""; tbNormalisasiBFTBerat.Text = normalisasi_Depan + ""; tbNormBFTTengahBerat.Text = normalisasi_Tengah + ""; tbNormBFTBelakangBerat.Text = normalisasi_Belakang + ""; tbNormBFTGawangBerat.Text = normalisasi_Gawang + ""; } }
3) Hitung nilai interval setiap kriteria //Buat koneksi ke database
MySqlConnection db = new
MySqlConnection("datasource=localhost;database=skripsi-
sppk;port=3306;username=root;password=");
MySqlDataAdapter data = new MySqlDataAdapter(); MySqlCommand command1 = db.CreateCommand(); MySqlCommand command2 = db.CreateCommand(); DataSet dataset = new DataSet();
//Kueri untuk menampilkan nilai maksimal dan minimal tiap atribut pemain
command1.CommandText = "select max(tinggi), max(berat), max(teknik), max(taktik), max(fisik), max(psikologi), max(menyerang), "
+
"max(bertahan), max(transisi), max(gawang), max(belakang), max(tengah), max(depan) from list_pemain";
command2.CommandText = "select min(tinggi), min(berat), min(teknik), min(taktik), min(fisik), min(psikologi), min(menyerang), "
+
"min(bertahan), min(transisi), min(gawang), min(belakang), min(tengah), min(depan) from list_pemain";
//CARI NILAI MAX db.Open();
MySqlDataReader read1 = command1.ExecuteReader(); List<string> hslMax = new List<string>();
double max_tinggi = 0, max_berat = 0, max_teknik = 0, max_taktik = 0, max_fisik = 0, max_psikologi = 0, max_menyerang = 0,
max_bertahan = 0, max_transisi = 0, max_gawang = 0, max_belakang = 0, max_tengah = 0, max_depan = 0;
//Lakukan perulangan selama masih ada data yang akan dibaca while (read1.Read())
{
//Simpan semua hasil eksekusi kueri ke tiap variabel max_tinggi = Double.Parse(read1[0].ToString()); max_berat = Double.Parse(read1[1].ToString()); max_teknik = Double.Parse(read1[2].ToString()); max_taktik = Double.Parse(read1[3].ToString()); max_fisik = Double.Parse(read1[4].ToString()); max_psikologi = Double.Parse(read1[5].ToString()); max_menyerang = Double.Parse(read1[6].ToString()); max_bertahan = Double.Parse(read1[7].ToString()); max_transisi = Double.Parse(read1[8].ToString()); max_gawang = Double.Parse(read1[9].ToString()); max_belakang = Double.Parse(read1[10].ToString()); max_tengah = Double.Parse(read1[11].ToString()); max_depan = Double.Parse(read1[12].ToString()); }
db.Close();
//CARI NILAI MIN db.Open();
MySqlDataReader read2 = command2.ExecuteReader(); List<string> hslMin = new List<string>();
double min_tinggi = 0, min_berat = 0, min_teknik = 0, min_taktik = 0, min_fisik = 0, min_psikologi = 0, min_menyerang = 0, min_bertahan = 0, min_transisi = 0, min_gawang = 0, min_belakang = 0, min_tengah = 0, min_depan = 0;
//Lakukan perulangan selama masih ada data yang akan dibaca while (read2.Read())
{
//Simpan semua hasil eksekusi kueri ke tiap variabel min_tinggi = Double.Parse(read2[0].ToString()); min_berat = Double.Parse(read2[1].ToString()); min_teknik = Double.Parse(read2[2].ToString()); min_taktik = Double.Parse(read2[3].ToString()); min_fisik = Double.Parse(read2[4].ToString()); min_psikologi = Double.Parse(read2[5].ToString()); min_menyerang = Double.Parse(read2[6].ToString()); min_bertahan = Double.Parse(read2[7].ToString()); min_transisi = Double.Parse(read2[8].ToString()); min_gawang = Double.Parse(read2[9].ToString()); min_belakang = Double.Parse(read2[10].ToString()); min_tengah = Double.Parse(read2[11].ToString()); min_depan = Double.Parse(read2[12].ToString()); }
db.Close();
//Cari Nilai Interval Masing-Masing Kriteria (5 = Skala) double interval_tinggi = (max_tinggi - min_tinggi) / 5; double interval_berat = (max_berat - min_berat) / 5; double interval_teknik = (max_teknik - min_teknik) / 5; double interval_taktik = (max_taktik - min_taktik) / 5; double interval_fisik = (max_fisik - min_fisik) / 5;
/ 5;
double interval_menyerang = (max_menyerang - min_menyerang) / 5;
double interval_bertahan = (max_bertahan - min_bertahan) / 5;
double interval_transisi = (max_transisi - min_transisi) / 5;
double interval_gawang = (max_gawang - min_gawang) / 5; double interval_belakang = (max_belakang - min_belakang) / 5;
double interval_tengah = (max_tengah - min_tengah) / 5; double interval_depan = (max_depan - min_depan) / 5;
4) Hitung Normalisasi Skor Setiap Kriteria dan Konversi Nilai Normalisasi Skor Tersebut Menjadi Utility Score
//Method untuk mengembalikan nilai normalisasi dari suatu nilai
public double cekNormSkor(double nilai, double interval, double
min, double max) {
//Tetapkan beberapa variabel yang diperlukan
//x adalah nilai min dan y adalah nilai min+interval double norm_skor = 0, x = min, y = min + interval;
//Lakukan perulangan i dari 0 sampai 100 dengan penambahan nilai i sebesar 25
for (double i = 0; i <= 100; i=i+25) { if (nilai == min) { norm_skor = 0; break; }
else if (nilai == max) {
norm_skor = 1; break;
}
//Jika norm_skor masih 0 dan nilainya berada di antara x dan y:
else if (nilai >= x && nilai <= y && norm_skor == 0) {
//Tetapkan nilai untuk norm_skor = i / 100 norm_skor = i / 100;
break; }
//Selain itu, jika nilainya sama dengan y: else if (nilai == y)
{
//Tetapkan nilai untuk norm_skor = 1 (maksimal) norm_skor = 1;
}
//Ganti nilai x dengan y x = y;
y = y + interval; }
//Kembalikan nilai norm_skor sebagai nilai balik dari pemanggilan method ini
return norm_skor; }
//Proses Hitung Normalisasi
double nilai_gawang = 0, nilai_belakang = 0, nilai_tengah = 0, nilai_depan = 0;
MySqlCommand command3 = db.CreateCommand();
//isi notepad
//Untuk cek pertambahan nilai;
//INSERT nilai akhir ke database lalu tampilkan pesan berhasil jika data bertambah
//Kueri untuk menghitung jumlah baris data pada tabel nilai_akhir
MySqlCommand commandCount1 = db.CreateCommand(); commandCount1.CommandText = "SELECT COUNT(*) FROM nilai_akhir";
db.Open(); int countNA1 =
Int32.Parse(commandCount1.ExecuteScalar().ToString());
db.Close();
//Kueri untuk menampilkan tiap atribut pemain dari tabel list_pemain
db.Open();
command3.CommandText = "SELECT tinggi, berat, teknik, taktik, fisik, psikologi, menyerang, " +
"bertahan, transisi, gawang, belakang, tengah, depan, pemain, kode_alternatif " +
"FROM list_pemain ORDER BY kode_alternatif";
MySqlDataReader read3 = command3.ExecuteReader();
//Lakukan perulangan selama masih ada data yang akan dibaca while (read3.Read())
{
//UNTUK SEORANG PEMAIN:
//Hitung nilai untuk posisi Gawang (G) double G_tinggi =
Double.Parse(tbNormBFTGawangTinggi.Text) *
cekNormSkor(Double.Parse(read3[0].ToString()), interval_tinggi, min_tinggi, max_tinggi); //
double G_berat =
Double.Parse(tbNormBFTGawangBerat.Text) *
cekNormSkor(Double.Parse(read3[1].ToString()), interval_berat, min_berat, max_berat);
double G_teknik =
Double.Parse(tbNormBFTGawangTeknik.Text) *
cekNormSkor(Double.Parse(read3[2].ToString()), interval_teknik, min_teknik, max_teknik);
double G_taktik =
Double.Parse(tbNormBFTGawangTaktik.Text) *
cekNormSkor(Double.Parse(read3[3].ToString()), interval_taktik, min_taktik, max_taktik);
double G_fisik =
Double.Parse(tbNormBFTGawangFisik.Text) *
cekNormSkor(Double.Parse(read3[4].ToString()), interval_fisik, min_fisik, max_fisik);
double G_psikologi =
Double.Parse(tbNormBFTGawangPsikologi.Text) *
cekNormSkor(Double.Parse(read3[5].ToString()), interval_psikologi, min_psikologi, max_psikologi);
double G_menyerang =
Double.Parse(tbNormBFTGawangSerang.Text) *
cekNormSkor(Double.Parse(read3[6].ToString()), interval_menyerang, min_menyerang, max_menyerang);
double G_bertahan =
Double.Parse(tbNormBFTGawangTahan.Text) *
cekNormSkor(Double.Parse(read3[7].ToString()), interval_bertahan, min_bertahan, max_bertahan);
double G_transisi =
Double.Parse(tbNormBFTGawangTransisi.Text) *
cekNormSkor(Double.Parse(read3[8].ToString()), interval_transisi, min_transisi, max_transisi);
double G_gawang =
Double.Parse(tbNormBFTGawangPosisi.Text) *
cekNormSkor(Double.Parse(read3[9].ToString()), interval_gawang, min_gawang, max_gawang);
//Hitung nilai untuk posisi Belakang double B_tinggi =
Double.Parse(tbNormBFTBelakangTinggi.Text) *
cekNormSkor(Double.Parse(read3[0].ToString()), interval_tinggi, min_tinggi, max_tinggi); //
double B_berat =
Double.Parse(tbNormBFTBelakangBerat.Text) *
cekNormSkor(Double.Parse(read3[1].ToString()), interval_berat, min_berat, max_berat);
double B_teknik =
Double.Parse(tbNormBFTBelakangTeknik.Text) *
cekNormSkor(Double.Parse(read3[2].ToString()), interval_teknik, min_teknik, max_teknik);
double B_taktik =
Double.Parse(tbNormBFTBelakangTaktik.Text) *
cekNormSkor(Double.Parse(read3[3].ToString()), interval_taktik, min_taktik, max_taktik);
double B_fisik =
Double.Parse(tbNormBFTBelakangFisik.Text) *
cekNormSkor(Double.Parse(read3[4].ToString()), interval_fisik, min_fisik, max_fisik);
double B_psikologi =
Double.Parse(tbNormBFTBelakangPsikologi.Text) *
cekNormSkor(Double.Parse(read3[5].ToString()), interval_psikologi, min_psikologi, max_psikologi);
double B_menyerang =
Double.Parse(tbNormBFTBelakangSerang.Text) *
min_menyerang, max_menyerang); double B_bertahan =
Double.Parse(tbNormBFTBelakangTahan.Text) *
cekNormSkor(Double.Parse(read3[7].ToString()), interval_bertahan, min_bertahan, max_bertahan);
double B_transisi =
Double.Parse(tbNormBFTBelakangTransisi.Text) *
cekNormSkor(Double.Parse(read3[8].ToString()), interval_transisi, min_transisi, max_transisi);
double B_belakang =
Double.Parse(tbNormBFTBelakangPosisi.Text) *
cekNormSkor(Double.Parse(read3[10].ToString()), interval_belakang, min_belakang, max_belakang);
//Hitung nilai untuk posisi Tengah double T_tinggi =
Double.Parse(tbNormBFTTengahTinggi.Text) *
cekNormSkor(Double.Parse(read3[0].ToString()), interval_tinggi, min_tinggi, max_tinggi); //
double T_berat =
Double.Parse(tbNormBFTTengahBerat.Text) *
cekNormSkor(Double.Parse(read3[1].ToString()), interval_berat, min_berat, max_berat);
double T_teknik =
Double.Parse(tbNormBFTTengahTeknik.Text) *
cekNormSkor(Double.Parse(read3[2].ToString()), interval_teknik, min_teknik, max_teknik);
double T_taktik =
Double.Parse(tbNormBFTTengahTaktik.Text) *
cekNormSkor(Double.Parse(read3[3].ToString()), interval_taktik, min_taktik, max_taktik);
double T_fisik =
Double.Parse(tbNormBFTTengahFisik.Text) *
cekNormSkor(Double.Parse(read3[4].ToString()), interval_fisik, min_fisik, max_fisik);
double T_psikologi =
Double.Parse(tbNormBFTTengahPsikologi.Text) *
cekNormSkor(Double.Parse(read3[5].ToString()), interval_psikologi, min_psikologi, max_psikologi);
double T_menyerang =
Double.Parse(tbNormBFTTengahSerang.Text) *
cekNormSkor(Double.Parse(read3[6].ToString()), interval_menyerang, min_menyerang, max_menyerang);
double T_bertahan =
Double.Parse(tbNormBFTTengahTahan.Text) *
cekNormSkor(Double.Parse(read3[7].ToString()), interval_bertahan, min_bertahan, max_bertahan);
double T_transisi =
Double.Parse(tbNormBFTTengahTransisi.Text) *
cekNormSkor(Double.Parse(read3[8].ToString()), interval_transisi, min_transisi, max_transisi);
double T_tengah =
Double.Parse(tbNormBFTTengahPosisi.Text) *
cekNormSkor(Double.Parse(read3[11].ToString()), interval_tengah, min_tengah, max_tengah);
double D_tinggi =
Double.Parse(tbNormalisasiBFTTinggi.Text) *
cekNormSkor(Double.Parse(read3[0].ToString()), interval_tinggi, min_tinggi, max_tinggi); //
double D_berat =
Double.Parse(tbNormalisasiBFTBerat.Text) *
cekNormSkor(Double.Parse(read3[1].ToString()), interval_berat, min_berat, max_berat);
double D_teknik =
Double.Parse(tbNormalisasiBFTTeknik.Text) *
cekNormSkor(Double.Parse(read3[2].ToString()), interval_teknik, min_teknik, max_teknik);
double D_taktik =
Double.Parse(tbNormalisasiBFTTaktik.Text) *
cekNormSkor(Double.Parse(read3[3].ToString()), interval_taktik, min_taktik, max_taktik);
double D_fisik =
Double.Parse(tbNormalisasiBFTFisik.Text) *
cekNormSkor(Double.Parse(read3[4].ToString()), interval_fisik, min_fisik, max_fisik);
double D_psikologi =
Double.Parse(tbNormalisasiBFTPsikologi.Text) *
cekNormSkor(Double.Parse(read3[5].ToString()), interval_psikologi, min_psikologi, max_psikologi);
double D_menyerang =
Double.Parse(tbNormalisasiBFTSerang.Text) *
cekNormSkor(Double.Parse(read3[6].ToString()), interval_menyerang, min_menyerang, max_menyerang);
double D_bertahan =
Double.Parse(tbNormalisasiBFTTahan.Text) *
cekNormSkor(Double.Parse(read3[7].ToString()), interval_bertahan, min_bertahan, max_bertahan);
double D_transisi =
Double.Parse(tbNormalisasiBFTTransisi.Text) *
cekNormSkor(Double.Parse(read3[8].ToString()), interval_transisi, min_transisi, max_transisi);
double D_depan =
Double.Parse(tbNormalisasiBFTPosisi.Text) *
cekNormSkor(Double.Parse(read3[12].ToString()), interval_depan, min_depan, max_depan);
5) Hitung Skor Total Setiap Alternatif
//Simpan total nilai untuk tiap posisi
nilai_depan = D_tinggi + D_berat + D_teknik + D_taktik + D_fisik + D_psikologi + D_menyerang + D_bertahan + D_transisi + D_depan;
nilai_tengah = T_tinggi + T_berat + T_teknik + T_taktik + T_fisik + T_psikologi + T_menyerang + T_bertahan + T_transisi + T_tengah;
nilai_belakang = B_tinggi + B_berat + B_teknik + B_taktik + B_fisik + B_psikologi + B_menyerang + B_bertahan +
B_transisi + B_belakang;
nilai_gawang = G_tinggi + G_berat + G_teknik + G_taktik + G_fisik + G_psikologi + G_menyerang + G_bertahan + G_transisi + G_gawang;
//Kueri untuk simpan atau update nilai akhir ke tabel nilai_akhir
string q_insert_nilai_akhir = "INSERT INTO nilai_akhir (kode_pemain, nilai_gawang, nilai_belakang, nilai_tengah, nilai_depan) " +
"VALUES ('" + read3[14].ToString() + "','" + nilai_gawang + "','" + nilai_belakang + "','" +
nilai_tengah + "','" + nilai_depan +"')";
string q_update_nilai_akhir = "UPDATE nilai_akhir SET "
+
"nilai_gawang='" + nilai_gawang + "', nilai_belakang='" + nilai_belakang + "', " +
"nilai_tengah='" + nilai_tengah + "', nilai_depan='" + nilai_depan + "' " +
"WHERE kode_pemain='" + read3[14].ToString() + "'"; MySqlConnection db2 = new
MySqlConnection("datasource=localhost;database=skripsi-
sppk;port=3306;username=root;password=");
//Kueri untuk menghitung jumlah baris data pada tabel nilai_akhir
db2.Open();
MySqlCommand commandCountPemain = db2.CreateCommand(); commandCountPemain.CommandText = "SELECT COUNT(*) FROM nilai_akhir WHERE kode_pemain='" + read3[14].ToString() + "'";
int countNApemain =
Int32.Parse(commandCountPemain.ExecuteScalar().ToString());
db2.Close();
//Jika jumlah baris data=0 (kosong): if (countNApemain == 0)
{
//Eksekusi kueri insert
ExecuteQuery(q_insert_nilai_akhir); }
//Selain itu, jika jumlah baris data tidak kosong (sudah terisi)
else
{
//Eksekusi kueri update
ExecuteQuery(q_update_nilai_akhir); }
6) Output Nilai Pemain Setiap Posisi
papantulis.Text += "[" + read3[14].ToString() + "] " + read3[13].ToString() + "\n";
papantulis.Text += "Gawang\t: " + nilai_gawang + "\n"; papantulis.Text += "Belakang\t: " + nilai_belakang +
"\n";
papantulis.Text += "Tengah\t: " + nilai_tengah + "\n"; papantulis.Text += "Depan\t: " + nilai_depan + "\n"; papantulis.Text += "\n Tinggi= " + D_tinggi + " - Norm=" + Double.Parse(tbNormalisasiBFTTinggi.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[0].ToString()), interval_tinggi, min_tinggi, max_tinggi);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[0].ToString()) + " - Interval=" + interval_tinggi +
" - Min=" + min_tinggi + " - Max=" + max_tinggi;
papantulis.Text += "\n Berat=" + D_berat + " - Norm=" + Double.Parse(tbNormalisasiBFTBerat.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[1].ToString()), interval_berat, min_berat, max_berat);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[1].ToString()) + " - Interval=" + interval_berat + "
- Min=" + min_berat + " - Max=" + max_berat;
papantulis.Text += "\n Teknik=" + D_teknik + " - Norm=" + Double.Parse(tbNormalisasiBFTTeknik.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[2].ToString()), interval_teknik, min_teknik, max_teknik);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[2].ToString()) + " - Interval=" + interval_teknik +
" - Min=" + min_teknik + " - Max=" + max_teknik;
papantulis.Text += "\n Taktik=" + D_taktik + " - Norm=" + Double.Parse(tbNormalisasiBFTTaktik.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[3].ToString()), interval_taktik, min_taktik, max_taktik);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[3].ToString()) + " - Interval=" + interval_taktik +
" - Min=" + min_taktik + " - Max=" + max_taktik;
papantulis.Text += "\n Psklogi=" + D_psikologi + " - Norm=" + Double.Parse(tbNormalisasiBFTPsikologi.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[5].ToString()), interval_psikologi, min_psikologi, max_psikologi);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[5].ToString()) + " - Interval=" + interval_psikologi
+ " - Min=" + min_psikologi + " - Max=" + max_psikologi;
papantulis.Text += "\n Fisik=" + D_fisik + " - Norm=" + Double.Parse(tbNormalisasiBFTFisik.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[4].ToString()), interval_fisik, min_fisik, max_fisik);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[4].ToString()) + " - Interval=" + interval_fisik + "
- Min=" + min_fisik + " - Max=" + max_fisik;
papantulis.Text += "\n Mnyrang=" + D_menyerang + " - Norm=" + Double.Parse(tbNormalisasiBFTSerang.Text) + " - Skor=" + cekNormSkor(Double.Parse(read3[6].ToString()), interval_menyerang, min_menyerang, max_menyerang);
papantulis.Text += " - Nilai=" +
Double.Parse(read3[6].ToString()) + " - Interval=" + interval_menyerang
+ " - Min=" + min_menyerang + " - Max=" + max_menyerang;