Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

(1)

LISTING PROGRAM 1. Program.cs

namespace padi {

/// <summary>

/// Class with program entry point.

/// </summary>

internal sealed class Program {

/// <summary>

/// Program entry point.

/// </summary>

[STAThread]

private static void Main(string[] args) {

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm());

} } } 2. Mainform.cs using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data; using System.Data.OleDb; namespace padi {

/// <summary>

/// Description of MainForm.

/// </summary>

public partial class MainForm : Form

{

MySqlConnection koneksi2 =

new MySqlConnection("server=localhost;port=3306;username=root;password=" );

double c1,c2,c3,c4,c5;

double maxc1,maxc2,minc3,maxc4,maxc5; public string MyProperty { get; set; } public string MyProperty2 { get; set; }

public MainForm() {

//

// The InitializeComponent() call is required for Windows Forms

designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

void TabPage7Click(object sender, EventArgs e)

{ }

void Button17Click(object sender, EventArgs e)


(2)

try{

DialogResult dialogResult = MessageBox.Show("Apakah anda ingin memulai proses yang baru ?", "Pilihan", MessageBoxButtons.YesNo);

if(dialogResult == DialogResult.Yes)

{

Form prom = new Form_prometheehibrida(); this.Hide();

prom.ShowDialog();

}

else if (dialogResult == DialogResult.No)

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.promethee_hibrida ORDER BY

net_flow DESC;";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView6.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

string nama1 =

dataGridView6.CurrentRow.Cells[0].Value.ToString(); //textBox9.Text=nama1;

urutkanprometheehibrida(); MyConn2.Close();

}

}catch(Exception){

MessageBox.Show("Belum ada data yang diproses, silahkan tekan OK

untuk melakukan proses","Peringatan");

Form prom = new Form_prometheehibrida();

prom.ShowDialog(); this.Hide(); }

}

void Button4Click(object sender, EventArgs e)

{ try

{

string MyConnection2

= "datasource=localhost;port=3306;username=root;password=";

string Query = "insert into

db_padi.padisawah(nama,C1,C2,C3,C4,C5)

values('" +this.namapadisawah.Text+ "','" +c1+ "','" +c2+ "','" +c3+ "','" +c4+ "','" +c5+ "');";

//string query2="insert into db_padi.rankingpadisawah(nama,skor) values ('" +this.namapadisawah.Text+ "','0');";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2); //MySqlCommand MyCommand3 = new MySqlCommand(query2, MyConn2);

MySqlDataReader MyReader2;

MyConn2.Open();

MyReader2 = MyCommand2.ExecuteReader(); // Here our query will be executed and data saved into the database.

// MyReader2 = MyCommand3.ExecuteReader();

MessageBox.Show("Save Data");

MyConn2.Close(); insertpadisawah(); }


(3)

catch (Exception ex) {

MessageBox.Show(ex.Message); }

}

void UmurpadisawahSelectedIndexChanged(object sender, EventArgs e) {

if (umurpadisawah.SelectedIndex==0){ c1=0.2;

}

else if (umurpadisawah.SelectedIndex==1){ c1=0.4;

}

else if (umurpadisawah.SelectedIndex==2){ c1=0.6;

}

else if (umurpadisawah.SelectedIndex==3){ c1=0.8;

}

else if (umurpadisawah.SelectedIndex==4){ c1=1;

} }

void TinggipadisawahSelectedIndexChanged(object sender, EventArgs e) {

if (tinggipadisawah.SelectedIndex==0){ c2=0.2;

}

else if (tinggipadisawah.SelectedIndex==1){ c2=0.4;

}

else if (tinggipadisawah.SelectedIndex==2){ c2=0.6;

}

else if (tinggipadisawah.SelectedIndex==3){ c2=0.8;

}

else if (tinggipadisawah.SelectedIndex==4){ c2=1;

} }

void KerontokanpadisawahSelectedIndexChanged(object sender, EventArgs e) {

if (kerontokanpadisawah.SelectedIndex==0){ c3=0.25;

}

else if (kerontokanpadisawah.SelectedIndex==1){ c3=0.5;

}

else if (kerontokanpadisawah.SelectedIndex==2){ c3=0.75;

}

else if (kerontokanpadisawah.SelectedIndex==3){ c3=1;

} }

void RatapadisawahSelectedIndexChanged(object sender, EventArgs e) {

if (ratapadisawah.SelectedIndex==0){ c4=0.25;

}

else if (ratapadisawah.SelectedIndex==1){ c4=0.5;

}

else if (ratapadisawah.SelectedIndex==2){ c4=0.75;


(4)

}

else if (ratapadisawah.SelectedIndex==3){ c4=1;

} }

void HasilpadisawahSelectedIndexChanged(object sender, EventArgs e) {

if (hasilpadisawah.SelectedIndex==0){ c5=0.2;

}

else if (hasilpadisawah.SelectedIndex==1){ c5=0.4;

}

else if (hasilpadisawah.SelectedIndex==2){ c5=0.6;

}

else if (hasilpadisawah.SelectedIndex==3){ c5=0.8;

}

else if (hasilpadisawah.SelectedIndex==4){ c5=1;

} }

void Button3Click(object sender, EventArgs e)

{ try

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.padisawah;"; MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView1.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

MyConn2.Close(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message); } }

void Button5Click(object sender, EventArgs e)

{

namapadisawah.Text=""; }

void Button9Click(object sender, EventArgs e)

{

}

void lihatperangkinganpadisawah() {

try{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";


(5)

string Query = "select * from db_padi.rankingpadisawah ORDER BY

skor DESC;";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView2.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

string nama1 =

dataGridView2.CurrentRow.Cells[0].Value.ToString(); //textBox1.Text=nama1;

MyConn2.Close();

}catch(Exception){

MessageBox.Show("Ada Error");

} }

void lihatperangkinganpadihibrida() {

try{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.rankingpadihibrida ORDER

BY skor DESC;";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView4.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

string nama1 =

dataGridView4.CurrentRow.Cells[0].Value.ToString(); //textBox10.Text=nama1;

MyConn2.Close();

}catch(Exception){

MessageBox.Show("Ada Error");

} }

void insertpadisawah() {

try

{

string MyConnection2

= "datasource=localhost;port=3306;username=root;password=";

//string Query = "insert into

db_padi.padisawah(nama,C1,C2,C3,C4,C5) values('" +this.namapadisawah.Text+ "','" +c1+ "','" +c2+ "','" +c3+ "','" +c4+ "','" +c5+ "');";

string query2="insert into db_padi.rankingpadisawah(nama,skor) values ('" +this.namapadisawah.Text+ "','0');"; MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);


(6)

MySqlCommand MyCommand3 = new MySqlCommand(query2, MyConn2);

MySqlDataReader MyReader2;

MyConn2.Open();

//MyReader2 = MyCommand2.ExecuteReader(); // Here our query will be executed and data saved into the database.

MyReader2 = MyCommand3.ExecuteReader();

// MessageBox.Show("Save Data");

MyConn2.Close(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void insertpadihibrida() {

try

{

string MyConnection2

= "datasource=localhost;port=3306;username=root;password=";

//string Query = "insert into

db_padi.padisawah(nama,C1,C2,C3,C4,C5) values('" +this.namapadisawah.Text+ "','" +c1+ "','" +c2+ "','" +c3+ "','" +c4+ "','" +c5+ "');";

string query2="insert into db_padi.rankingpadihibrida(nama,skor) values ('" +this.namapadihibridatext.Text+ "','0');"; MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MySqlCommand MyCommand3 = new MySqlCommand(query2, MyConn2);

MySqlDataReader MyReader2;

MyConn2.Open();

//MyReader2 = MyCommand2.ExecuteReader(); // Here our query will be executed and data saved into the database.

MyReader2 = MyCommand3.ExecuteReader();

// MessageBox.Show("Save Data");

MyConn2.Close(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void updateskor(string nama, double skorsawah) {

try{

MySqlCommand kueri2 = new MySqlCommand();

kueri2.Connection = koneksi2;

string qww="update db_padi.rankingpadisawah set skor='" + skorsawah.ToString() + "' where nama='" + nama+ "';";

kueri2.CommandText = qww;

koneksi2.Open();

MySqlDataReader dr2;

dr2 = kueri2.ExecuteReader();

koneksi2.Close();

}catch(Exception){

MessageBox.Show("Ada Error");

} }

void updateskorhibirda(string nama, double skorhibrida) {

try{


(7)

MySqlCommand kueri2 = new MySqlCommand();

kueri2.Connection = koneksi2;

string qww="update db_padi.rankingpadihibrida set skor='" + skorhibrida.ToString() + "' where nama='" + nama+ "';";

kueri2.CommandText = qww;

koneksi2.Open();

MySqlDataReader dr2;

dr2 = kueri2.ExecuteReader();

koneksi2.Close();

}catch(Exception){

MessageBox.Show("Ada Error");

} }

void Button27Click(object sender, EventArgs e)

{

DateTime waktuawal,waktuakhir;

waktuawal = DateTime.Now;

try

{

double sawahc1,sawahc2,sawahc3,sawahc4,sawahc5; string MyConnection2

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand command1 = new MySqlCommand("select max(C1) from db_padi.padisawah",MyConn2);

maxc1=Convert.ToDouble(command1.ExecuteScalar().ToString());

MySqlCommand command2 = new MySqlCommand("select max(C2) from db_padi.padisawah",MyConn2);

maxc2=Convert.ToDouble(command2.ExecuteScalar().ToString());

MySqlCommand command3 = new MySqlCommand("select min(C3) from db_padi.padisawah",MyConn2);

minc3=Convert.ToDouble(command3.ExecuteScalar().ToString()); //MessageBox.Show("min" + minc3.ToString());

MySqlCommand command4 = new MySqlCommand("select max(C4) from db_padi.padisawah",MyConn2);

maxc4=Convert.ToDouble(command4.ExecuteScalar().ToString());

MySqlCommand command5 = new MySqlCommand("select max(C5) from db_padi.padisawah",MyConn2);

maxc5=Convert.ToDouble(command5.ExecuteScalar().ToString());

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.padisawah",MyConn2);

string temp;

//kueri.CommandText = qw;

//koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

sawahc1 = (Convert.ToDouble(dr["C1"]))/maxc1; sawahc2 = (Convert.ToDouble(dr["C2"]))/maxc2; sawahc3 = (Convert.ToDouble(dr["C3"]))/minc3; sawahc4 = (Convert.ToDouble(dr["C4"]))/maxc4; sawahc5 = (Convert.ToDouble(dr["C5"]))/maxc5;


(8)

//perkalian dengan w

double skor

= (sawahc1*0.3)+(sawahc2*0.15)+(sawahc3*0.5)+(sawahc4*0.2)+(sawahc5*0.2); //skortemp.Text=skor.ToString();

//MessageBox.Show("skornya "+ skor.ToString(), temp);

/*String kuerilagi="update db_padi.rankingpadisawah set skor='" + this.skortemp.Text + "' where nama='" + temp+ "';";

MySqlCommand MyCommand2 = new

MySqlCommand(kuerilagi,MyConn2);

MySqlDataReader dr1;

dr1 = MyCommand2.ExecuteReader();*/

updateskor(temp,skor);

//MessageBox.Show("skornya "+ skor.ToString(), temp);

}

//koneksi.Close();

MyConn2.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

lihatperangkinganpadisawah(); urutkansawah();

waktuakhir= DateTime.Now;

TimeSpan selisihwaktusawah=waktuakhir.Subtract(waktuawal); MessageBox.Show(selisihwaktusawah.TotalMilliseconds.ToString()+"

MilliSeconds","Lama Proses" );

textBox23.Text=selisihwaktusawah.TotalMilliseconds.ToString()+" MilliSeconds";

}

void urutkansawah() {

try

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.rankingpadisawah ORDER BY skor DESC;",MyConn2); string temp;

int i=1;

//kueri.CommandText = qw;

//koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

if(i==1){

textBox1.Text=temp; }

else if (i==2){

textBox2.Text=temp; }

else if(i==3){

textBox3.Text=temp; }

else if(i==4){

textBox4.Text=temp; }


(9)

//perkalian dengan w

i++; }

//koneksi.Close();

MyConn2.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void urutkanprometheesawah() {

try

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.promethee_sawah ORDER BY net_flow DESC;",MyConn2); string temp;

int i=1;

//kueri.CommandText = qw;

//koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

if(i==1){

textBox8.Text=temp; }

else if (i==2){

textBox7.Text=temp; }

else if(i==3){

textBox6.Text=temp; }

else if(i==4){

textBox5.Text=temp; }

//perkalian dengan w

i++; }

//koneksi.Close();

MyConn2.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void urutkanhibrida() {

try

{


(10)

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.rankingpadihibrida ORDER BY skor DESC;",MyConn2); string temp;

int i=1;

//kueri.CommandText = qw;

//koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

if(i==1){

textBox10.Text=temp; }

else if (i==2){

textBox12.Text=temp; }

else if(i==3){

textBox13.Text=temp; }

else if(i==4){

textBox14.Text=temp; }

//perkalian dengan w

i++; }

//koneksi.Close();

MyConn2.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void urutkanprometheehibrida() {

try

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.promethee_hibrida ORDER BY net_flow DESC;",MyConn2); string temp;

int i=1;

//kueri.CommandText = qw;

//koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

if(i==1){

textBox9.Text=temp; }


(11)

else if (i==2){

textBox18.Text=temp; }

else if(i==3){

textBox17.Text=temp; }

else if(i==4){

textBox16.Text=temp; }

//perkalian dengan w

i++; }

//koneksi.Close();

MyConn2.Close();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void Button6Click(object sender, EventArgs e)

{ try

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.padihibrida;"; MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView3.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

MyConn2.Close(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message);

} }

void ComboBox5SelectedIndexChanged(object sender, EventArgs e) {

if (umurpadihibrida.SelectedIndex==0){ c1=0.2;

}

else if (umurpadihibrida.SelectedIndex==1){ c1=0.4;

}

else if (umurpadihibrida.SelectedIndex==2){ c1=0.6;

}

else if (umurpadihibrida.SelectedIndex==3){ c1=0.8;

}

else if (umurpadihibrida.SelectedIndex==4){ c1=1;

} }


(12)

{

if (tinggipadihibrida.SelectedIndex==0){ c2=0.2;

}

else if (tinggipadihibrida.SelectedIndex==1){ c2=0.4;

}

else if (tinggipadihibrida.SelectedIndex==2){ c2=0.6;

}

else if (tinggipadihibrida.SelectedIndex==3){ c2=0.8;

}

else if (tinggipadihibrida.SelectedIndex==4){ c2=1;

} }

void KerontokanpadihibridaSelectedIndexChanged(object sender, EventArgs e)

{

if (kerontokanpadihibrida.SelectedIndex==0){ c3=0.25;

}

else if (kerontokanpadihibrida.SelectedIndex==1){ c3=0.5;

}

else if (kerontokanpadihibrida.SelectedIndex==2){ c3=0.75;

}

else if (kerontokanpadihibrida.SelectedIndex==3){ c3=1;

} }

void RatapadihibridaSelectedIndexChanged(object sender, EventArgs e) {

if (ratapadihibrida.SelectedIndex==0){ c4=0.25;

}

else if (ratapadihibrida.SelectedIndex==1){ c4=0.5;

}

else if (ratapadihibrida.SelectedIndex==2){ c4=0.75;

}

else if (ratapadihibrida.SelectedIndex==3){ c4=1;

} }

void HasilpadihibridaSelectedIndexChanged(object sender, EventArgs e) {

if (hasilpadihibrida.SelectedIndex==0){ c5=0.2;

}

else if (hasilpadihibrida.SelectedIndex==1){ c5=0.4;

}

else if (hasilpadihibrida.SelectedIndex==2){ c5=0.6;

}

else if (hasilpadihibrida.SelectedIndex==3){ c5=0.8;

}

else if (hasilpadihibrida.SelectedIndex==4){ c5=1;

} }

void Button8Click(object sender, EventArgs e)


(13)

try

{

string MyConnection2

= "datasource=localhost;port=3306;username=root;password=";

string Query = "insert into

db_padi.padihibrida(nama,C1,C2,C3,C4,C5)

values('" +this.namapadihibridatext.Text+ "','" +c1+ "','" +c2+ "','" +c3+ "','" +c4+ "','" +c5+ "');";

//string query2="insert into db_padi.rankingpadisawah(nama,skor) values ('" +this.namapadisawah.Text+ "','0');";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2); //MySqlCommand MyCommand3 = new MySqlCommand(query2, MyConn2);

MySqlDataReader MyReader2;

MyConn2.Open();

MyReader2 = MyCommand2.ExecuteReader(); // Here our query will be executed and data saved into the database.

// MyReader2 = MyCommand3.ExecuteReader();

MessageBox.Show("Save Data");

MyConn2.Close(); insertpadihibrida(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

}

void Button2Click(object sender, EventArgs e)

{

DateTime waktuawalhibrida,waktuakhirhibrida;

waktuawalhibrida = DateTime.Now;

try

{

double sawahc1,sawahc2,sawahc3,sawahc4,sawahc5; string MyConnection2

= "server=localhost;port=3306;username=root;password=";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2); //MySqlCommand MyCommand2 = new MySqlCommand(Query, MyConn2);

MyConn2.Open();

MySqlCommand command1 = new MySqlCommand("select max(C1) from db_padi.padihibrida",MyConn2);

maxc1=Convert.ToDouble(command1.ExecuteScalar().ToString());

MySqlCommand command2 = new MySqlCommand("select max(C2) from db_padi.padihibrida",MyConn2);

maxc2=Convert.ToDouble(command2.ExecuteScalar().ToString());

MySqlCommand command3 = new MySqlCommand("select min(C3) from db_padi.padihibrida",MyConn2);

minc3=Convert.ToDouble(command3.ExecuteScalar().ToString()); //MessageBox.Show("min" + minc3.ToString());

MySqlCommand command4 = new MySqlCommand("select max(C4) from db_padi.padihibrida",MyConn2);

maxc4=Convert.ToDouble(command4.ExecuteScalar().ToString());

MySqlCommand command5 = new MySqlCommand("select max(C5) from db_padi.padihibrida",MyConn2);

maxc5=Convert.ToDouble(command5.ExecuteScalar().ToString());

MySqlCommand kueri = new MySqlCommand("SELECT * FROM db_padi.padihibrida",MyConn2);

string temp;

//kueri.CommandText = qw;

//koneksi.Open();


(14)

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

//matriks normalisasi

sawahc1 = (Convert.ToDouble(dr["C1"]))/maxc1; sawahc2 = (Convert.ToDouble(dr["C2"]))/maxc2; sawahc3 = (Convert.ToDouble(dr["C3"]))/minc3; sawahc4 = (Convert.ToDouble(dr["C4"]))/maxc4; sawahc5 = (Convert.ToDouble(dr["C5"]))/maxc5;

//perkalian dengan w

double skor

= (sawahc1*0.3)+(sawahc2*0.15)+(sawahc3*0.5)+(sawahc4*0.2)+(sawahc5*0.2); //skortemp.Text=skor.ToString();

//MessageBox.Show("skornya "+ skor.ToString(), temp);

/*String kuerilagi="update db_padi.rankingpadisawah set skor='" + this.skortemp.Text + "' where nama='" + temp+ "';";

MySqlCommand MyCommand2 = new

MySqlCommand(kuerilagi,MyConn2);

MySqlDataReader dr1;

dr1 = MyCommand2.ExecuteReader();*/

updateskorhibirda(temp,skor);

//MessageBox.Show("skornya "+ skor.ToString(), temp);

}

//koneksi.Close();

MyConn2.Close(); }

catch (Exception ex)

{

MessageBox.Show(ex.Message); }

lihatperangkinganpadihibrida(); urutkanhibrida();

waktuakhirhibrida=DateTime.Now;

TimeSpan selisihwaktuhibrida =

waktuakhirhibrida.Subtract(waktuawalhibrida);

MessageBox.Show(selisihwaktuhibrida.TotalMilliseconds.ToString()+"

MilliSeconds","Lama Proses");

textBox99.Text=selisihwaktuhibrida.TotalMilliseconds.ToString()+" MilliSeconds";

}

void Button18Click(object sender, EventArgs e)

{

try{

DialogResult dialogResult = MessageBox.Show("Apakah anda ingin memulai proses yang baru ?", "Pilihan", MessageBoxButtons.YesNo);

if(dialogResult == DialogResult.Yes)

{

Form prom = new Form_promethee();

this.Hide();

prom.ShowDialog();

}

else if (dialogResult == DialogResult.No)

{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.promethee_sawah ORDER BY

net_flow DESC;";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.


(15)

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView5.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

string nama1 =

dataGridView5.CurrentRow.Cells[0].Value.ToString(); //textBox8.Text=nama1;

urutkanprometheesawah(); //disini

MyConn2.Close(); }

}catch(Exception){

MessageBox.Show("Belum ada data yang diproses, silahkan tekan OK

untuk melakukan proses","Peringatan");

Form prom = new Form_promethee();

prom.ShowDialog(); this.Hide();

}

}

void MainFormLoad(object sender, EventArgs e)

{

textBox11.Text=this.MyProperty;

textBox15.Text=this.MyProperty2; }

void Button1Click(object sender, EventArgs e)

{ }

void lihatperangkinganpadihibridaa() {

try{

string MyConnection2

= "server=localhost;port=3306;username=root;password=";

//Display query

string Query = "select * from db_padi.rankingpadihibrida ORDER

BY skor DESC;";

MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);

MySqlCommand MyCommand2

= new MySqlCommand(Query, MyConn2); MyConn2.Open();

//For offline connection we weill use MySqlDataAdapter class.

MySqlDataAdapter MyAdapter = new MySqlDataAdapter();

MyAdapter.SelectCommand = MyCommand2;

//DataTable dTable = new DataTable();

DataTable dTable = new DataTable();

MyAdapter.Fill(dTable);

dataGridView3.DataSource = dTable; // here i have assign dTable object to the dataGridView1 object to display data.

string nama1 =

dataGridView3.CurrentRow.Cells[0].Value.ToString(); //textBox1.Text=nama1;

MyConn2.Close(); }catch(Exception){

MessageBox.Show("Ada Error");

} }

void PictureBox2Click(object sender, EventArgs e)

{ }

void Button10Click(object sender, EventArgs e)

{


(16)

tagpage1.Show() ; this.Dispose(); }

void DataGridView3CellContentClick(object sender, DataGridViewCellEventA

rgs e)

{ }

void TextBox1TextChanged(object sender, EventArgs e)

{ } } } 3. Form_prometheesawah.cs using System; using System.Drawing; using System.Windows.Forms; using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data; using MySql.Data; namespace padi {

/// <summary>

/// Description of Form_promethee.

/// </summary>

public partial class Form_promethee : Form

{

MySqlCommand perintah;

MySqlConnection koneksi =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

MySqlConnection koneksi2 =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

MySqlConnection koneksi3 =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

TimeSpan selisihwaktu;

public Form_promethee() {

//

// The InitializeComponent() call is required for Windows Forms

designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

void BtnKembaliClick(object sender, EventArgs e)

{

string lamawaktusawah =

selisihwaktu.TotalMilliseconds.ToString();

MainForm main = new MainForm();

main.MyProperty=lamawaktusawah; main.Show();

this.Hide(); }


(17)

void Button3Click(object sender, EventArgs e)

{ try

{

koneksi.Open();

perintah = new MySqlCommand();

perintah.Connection = koneksi;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "DROP TABLE

indeks_preferensi_sawah;";

perintah.ExecuteNonQuery();

perintah.CommandText = "DROP TABLE promethee_sawah;"; perintah.ExecuteNonQuery();

koneksi.Close();

MessageBox.Show("Berhasil DROP TABLE"); }

catch (MySqlException) {

MessageBox.Show("DROP gagal");

} }

void Button2Click(object sender, EventArgs e)

{ try

{

koneksi.Open();

perintah = new MySqlCommand();

perintah.Connection = koneksi;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "CREATE table

indeks_preferensi_sawah (alternatif varchar(50));"; perintah.ExecuteNonQuery();

perintah.CommandText = "CREATE table promethee_sawah (nama varchar(50), leaving_flow double, entering_flow double, net_flow double);";

perintah.ExecuteNonQuery(); koneksi.Close();

MessageBox.Show("Berhasil CREATE TABLE"); }

catch (MySqlException) {

MessageBox.Show("CREATE gagal"); }

}

void add_Table(string s) {

try{

koneksi2.Open();

perintah = new MySqlCommand();

perintah.Connection = koneksi2;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "ALTER TABLE

`indeks_preferensi_sawah` ADD `"+s+"` DOUBLE"; perintah.ExecuteNonQuery();

perintah.CommandText =

"INSERT INTO `db_padi`.`indeks_preferensi_sawah` (`alternatif`)"+

"VALUES ('"+s+"')";

perintah.ExecuteNonQuery();

perintah.CommandText =

"INSERT INTO `db_padi`.`promethee_sawah` (`nama`)"+

"VALUES ('"+s+"')";

perintah.ExecuteNonQuery(); koneksi2.Close();

}catch(Exception){ MessageBox.Show("Ada error add table!") ;} }

void fill_preferensi() {


(18)

try{

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT * FROM padisawah"; string temp;

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

c1 = Convert.ToDouble(dr["C1"]); c2 = Convert.ToDouble(dr["C2"]); c3 = Convert.ToDouble(dr["C3"]); c4 = Convert.ToDouble(dr["C4"]); c5 = Convert.ToDouble(dr["C5"]); get_pasangan(temp, c1, c2, c3, c4, c5);

}

koneksi.Close(); }catch(Exception){

MessageBox.Show("Ada Error fill PREFERENSI!"); }

}

void get_pasangan(string nama, double c1, double c2, double c3, doub le c4, double c5)

{

double e1, e2, e3, e4, e5; try{

MySqlCommand kueri2 = new MySqlCommand();

kueri2.Connection = koneksi2;

string qww= "SELECT * FROM padisawah";

kueri2.CommandText = qww;

koneksi2.Open();

MySqlDataReader dr2;

dr2 = kueri2.ExecuteReader();

int jum=0;

double sum =0;

while(dr2.Read()) {

if( dr2["nama"].ToString().Equals(nama) ){

Query("UPDATE `db_padi`.`indeks_preferensi_sawah`

SET `"+nama+

"` = '0' WHERE

`indeks_preferensi_sawah`.`alternatif` = '"+nama+"'"); }

else {

double F_preferensi;

e1 = Convert.ToDouble(dr2["C1"]); e2 = Convert.ToDouble(dr2["C2"]); e3 = Convert.ToDouble(dr2["C3"]); e4 = Convert.ToDouble(dr2["C4"]); e5 = Convert.ToDouble(dr2["C5"]);

F_preferensi =

Math.Round((1/5.0)*(H(c1,e1)+H(c2,e2)+H(c3,e3)+H(c4,e4)+H(c4,e4)),5);

sum = sum + F_preferensi;

//MessageBox.Show(F_preferensi.ToString());

jum++;

Query("UPDATE `db_padi`.`indeks_preferensi_sawah`

SET `"+dr2["nama"].ToString()+

"` = '"+F_preferensi.ToString()+"' WHERE `indeks_preferensi_sawah`.`alternatif` = '"+nama+"'"); }

}

koneksi2.Close();

Query("UPDATE `db_padi`.`promethee_sawah` SET `leaving_flow"+

"` = '"+Math.Round((sum/jum),2).ToString()+"' WHERE `promethee_sawah`.`nama` = '"+nama+"'");


(19)

}catch(Exception){

MessageBox.Show("Ada Error get pasangan!"); }

}

void fill_entering_flow() {

try{

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT nama FROM padisawah";

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

fill_entering_flow2(dr["nama"].ToString()); }

koneksi.Close(); }catch(Exception){

MessageBox.Show("Ada Error entering flow!"); }

}

void fill_entering_flow2( string s) {

Query("UPDATE `db_padi`.`promethee_sawah` SET `entering_flow` =

(SELECT ROUND(sum(`"+s+"`),2) " +

"FROM indeks_preferensi_sawah ) WHERE

`promethee_sawah`.`nama` = '"+s+"'"); Query("UPDATE `db_padi`.`promethee_sawah` SET `net_flow` =

ROUND(leaving_flow-entering_flow,2) " +

" WHERE `promethee_sawah`.`nama` = '"+s+"'"); }

void fill_tabel_kesimpulan() {

string konfigurasi

= "server=localhost;uid=root;password=;database=db_padi;";

string sql = "select * from promethee_sawah ORDER BY

net_flow DESC";

MySqlConnection MyCon2 = new MySqlConnection(konfigurasi); MySqlCommand MyCom2 = new MySqlCommand(sql, MyCon2); MyCon2.Open();

MySqlDataAdapter mda = new MySqlDataAdapter();

mda.SelectCommand = MyCom2;

DataTable dt = new DataTable();

mda.Fill(dt);

dataGridView1.DataSource= dt;

MyCon2.Close(); }

void fill_dt() {

string konfigurasi

= "server=localhost;uid=root;password=;database=db_padi;";

string sql = "select * from indeks_preferensi_sawah"; MySqlConnection MyCon2 = new MySqlConnection(konfigurasi); MySqlCommand MyCom2 = new MySqlCommand(sql, MyCon2); MyCon2.Open();

MySqlDataAdapter mda = new MySqlDataAdapter();

mda.SelectCommand = MyCom2;

DataTable dt = new DataTable();

mda.Fill(dt);

dataGridView2.DataSource= dt;

MyCon2.Close();

string nama =

dataGridView1.CurrentRow.Cells[0].Value.ToString();

//MessageBox.Show(nama + " nomor satu", "judul");

}


(20)

{ try

{

koneksi3.Open();

MySqlCommand perintah3;

perintah3 = new MySqlCommand();

perintah3.Connection = koneksi3;

perintah3.CommandType = CommandType.Text;

perintah3.CommandText = s;

perintah3.ExecuteNonQuery(); koneksi3.Close();

}

catch (MySqlException) {

MessageBox.Show("Ada error di QUERY"); }

}

double H(double a, double b) {

if(a-b <= 0 ) return 0; else return 1;

}

void Button1Click(object sender, EventArgs e)

{

try{

DateTime waktuawal,waktuakhir;

waktuawal = DateTime.Now;

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT * FROM padisawah";

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

add_Table(dr["nama"].ToString()); }

koneksi.Close(); fill_preferensi(); fill_entering_flow(); fill_tabel_kesimpulan(); fill_dt();

waktuakhir=DateTime.Now;

selisihwaktu = waktuakhir.Subtract(waktuawal);

MessageBox.Show("Lama Proses

"+selisihwaktu.TotalMilliseconds.ToString()+ " MilliSeconds","Berhasil"); //waktuprosawah.Text=selisihwaktu.TotalMilliseconds.ToString ();

}catch(Exception){

MessageBox.Show("Ada Error!");

} }

void waktuprosawah(object sender, EventArgs e)

{ } } } 4. Form_prometheehibrida.cs using System; using System.Drawing; using System.Windows.Forms; using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using MySql.Data.MySqlClient;


(21)

using System.Data; using MySql.Data;

namespace padi {

/// <summary>

/// Description of Form_prometheehibrida.

/// </summary>

public partial class Form_prometheehibrida : Form

{

MySqlCommand perintah;

MySqlConnection koneksi =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

MySqlConnection koneksi2 =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

MySqlConnection koneksi3 =

new MySqlConnection("server=localhost;uid=root;password=;database=db _padi;");

TimeSpan selisihwaktu;

public Form_prometheehibrida() {

//

// The InitializeComponent() call is required for Windows Forms

designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

//

}

void BtnKembaliClick(object sender, EventArgs e)

{

string lamawaktuhibrida =

selisihwaktu.TotalMilliseconds.ToString();

MainForm main = new MainForm();

main.MyProperty2=lamawaktuhibrida; main.Show();

this.Hide(); }

void Button3Click(object sender, EventArgs e)

{ try

{

koneksi.Open();

perintah = new MySqlCommand();

perintah.Connection = koneksi;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "DROP TABLE

indeks_preferensi_hibrida;";

perintah.ExecuteNonQuery();

perintah.CommandText = "DROP TABLE promethee_hibrida;"; perintah.ExecuteNonQuery();

koneksi.Close();

MessageBox.Show("Berhasil DROP TABLE"); }

catch (MySqlException) {

MessageBox.Show("DROP gagal");

} }

void Button2Click(object sender, EventArgs e)

{ try

{


(22)

perintah = new MySqlCommand();

perintah.Connection = koneksi;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "CREATE table

indeks_preferensi_hibrida (alternatif varchar(50));"; perintah.ExecuteNonQuery();

perintah.CommandText = "CREATE table promethee_hibrida (nama varchar(50), leaving_flow double, entering_flow double, net_flow double);";

perintah.ExecuteNonQuery(); koneksi.Close();

MessageBox.Show("Berhasil CREATE TABLE"); }

catch (MySqlException) {

MessageBox.Show("CREATE gagal"); }

}

void add_Table(string s) {

try{

koneksi2.Open();

perintah = new MySqlCommand();

perintah.Connection = koneksi2;

perintah.CommandType = CommandType.Text;

perintah.CommandText = "ALTER TABLE

`indeks_preferensi_hibrida` ADD `"+s+"` DOUBLE"; perintah.ExecuteNonQuery();

perintah.CommandText =

"INSERT INTO `db_padi`.`indeks_preferensi_hibrida` (`alternatif`)"+

"VALUES ('"+s+"')";

perintah.ExecuteNonQuery();

perintah.CommandText =

"INSERT INTO `db_padi`.`promethee_hibrida` (`nama`)"+

"VALUES ('"+s+"')";

perintah.ExecuteNonQuery(); koneksi2.Close();

}catch(Exception){ MessageBox.Show("Ada error add table!") ;} }

void fill_preferensi() {

double c1, c2, c3,c4,c5; try{

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT * FROM padihibrida"; string temp;

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

temp = dr["nama"].ToString();

c1 = Convert.ToDouble(dr["C1"]); c2 = Convert.ToDouble(dr["C2"]); c3 = Convert.ToDouble(dr["C3"]); c4 = Convert.ToDouble(dr["C4"]); c5 = Convert.ToDouble(dr["C5"]); get_pasangan(temp, c1, c2, c3, c4, c5);

}

koneksi.Close(); }catch(Exception){

MessageBox.Show("Ada Error fill PREFERENSI!"); }

}


(23)

le c4, double c5) {

double e1, e2, e3, e4, e5; try{

MySqlCommand kueri2 = new MySqlCommand();

kueri2.Connection = koneksi2;

string qww= "SELECT * FROM padihibrida";

kueri2.CommandText = qww;

koneksi2.Open();

MySqlDataReader dr2;

dr2 = kueri2.ExecuteReader();

int jum=0;

double sum =0;

while(dr2.Read()) {

if( dr2["nama"].ToString().Equals(nama) ){

Query("UPDATE `db_padi`.`indeks_preferensi_hibrida`

SET `"+nama+

"` = '0' WHERE

`indeks_preferensi_hibrida`.`alternatif` = '"+nama+"'"); }

else {

double F_preferensi;

e1 = Convert.ToDouble(dr2["C1"]); e2 = Convert.ToDouble(dr2["C2"]); e3 = Convert.ToDouble(dr2["C3"]); e4 = Convert.ToDouble(dr2["C4"]); e5 = Convert.ToDouble(dr2["C5"]);

F_preferensi =

Math.Round((1/5.0)*(H(c1,e1)+H(c2,e2)+H(c3,e3)+H(c4,e4)+H(c4,e4)),5);

sum = sum + F_preferensi;

//MessageBox.Show(F_preferensi.ToString());

jum++;

Query("UPDATE `db_padi`.`indeks_preferensi_hibrida`

SET `"+dr2["nama"].ToString()+

"` = '"+F_preferensi.ToString()+"' WHERE `indeks_preferensi_hibrida`.`alternatif` = '"+nama+"'"); }

}

koneksi2.Close();

Query("UPDATE `db_padi`.`promethee_hibrida` SET `leaving_flow"+

"` = '"+Math.Round((sum/jum),2).ToString()+"' WHERE `promethee_hibrida`.`nama` = '"+nama+"'");

}catch(Exception){

MessageBox.Show("Ada Error get pasangan!"); }

}

void fill_entering_flow() {

try{

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT nama FROM padihibrida";

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

fill_entering_flow2(dr["nama"].ToString()); }

koneksi.Close(); }catch(Exception){

MessageBox.Show("Ada Error entering flow!"); }

}

void fill_entering_flow2( string s) {


(24)

Query("UPDATE `db_padi`.`promethee_hibrida` SET `entering_flow` = (SELECT ROUND(sum(`"+s+"`),2) " +

"FROM indeks_preferensi_hibrida ) WHERE

`promethee_hibrida`.`nama` = '"+s+"'"); Query("UPDATE `db_padi`.`promethee_hibrida` SET `net_flow` =

ROUND(leaving_flow-entering_flow,2) " +

" WHERE `promethee_hibrida`.`nama` = '"+s+"'"); }

void fill_tabel_kesimpulan() {

string konfigurasi

= "server=localhost;uid=root;password=;database=db_padi;";

string sql = "select * from promethee_hibrida ORDER BY

net_flow DESC";

MySqlConnection MyCon2 = new MySqlConnection(konfigurasi); MySqlCommand MyCom2 = new MySqlCommand(sql, MyCon2); MyCon2.Open();

MySqlDataAdapter mda = new MySqlDataAdapter();

mda.SelectCommand = MyCom2;

DataTable dt = new DataTable();

mda.Fill(dt);

dataGridView1.DataSource= dt;

MyCon2.Close(); }

void fill_dt() {

string konfigurasi

= "server=localhost;uid=root;password=;database=db_padi;";

string sql = "select * from indeks_preferensi_hibrida"; MySqlConnection MyCon2 = new MySqlConnection(konfigurasi); MySqlCommand MyCom2 = new MySqlCommand(sql, MyCon2); MyCon2.Open();

MySqlDataAdapter mda = new MySqlDataAdapter();

mda.SelectCommand = MyCom2;

DataTable dt = new DataTable();

mda.Fill(dt);

dataGridView2.DataSource= dt;

MyCon2.Close();

string nama =

dataGridView1.CurrentRow.Cells[0].Value.ToString();

//MessageBox.Show(nama + " Nomor satu", "judul");

}

void Query(string s) {

try

{

koneksi3.Open();

MySqlCommand perintah3;

perintah3 = new MySqlCommand();

perintah3.Connection = koneksi3;

perintah3.CommandType = CommandType.Text;

perintah3.CommandText = s;

perintah3.ExecuteNonQuery(); koneksi3.Close();

}

catch (MySqlException) {

MessageBox.Show("Ada error di QUERY"); }

}

double H(double a, double b) {

if(a-b <= 0 ) return 0; else return 1;

}

void Button1Click(object sender, EventArgs e)

{

try{


(25)

waktuawal= DateTime.Now;

MySqlCommand kueri = new MySqlCommand();

kueri.Connection = koneksi;

string qw= "SELECT * FROM padihibrida";

kueri.CommandText = qw;

koneksi.Open();

MySqlDataReader dr;

dr = kueri.ExecuteReader();

while(dr.Read()) {

add_Table(dr["nama"].ToString()); }

koneksi.Close(); fill_preferensi(); fill_entering_flow(); fill_tabel_kesimpulan(); fill_dt();

waktuakhir=DateTime.Now;

selisihwaktu=waktuakhir.Subtract(waktuawal);

MessageBox.Show("Lama Proses

"+selisihwaktu.TotalMilliseconds.ToString()+" MilliSeconds","Berhasil"); }catch(Exception){

MessageBox.Show("Ada Error!");

} }

void Form_prometheehibridaLoad(object sender, EventArgs e) {

} } }


(26)

CURRICULUM VITAE

Nama : Fatma Sari Hutagalung

Alamat Sekarang : Perumahan Srigunting Blok 1A No.21 Alamat Orang Tua : Perumahan Srigunting Blok 1A No.21

Telp/HP : 082272165757

Email : fatmahutagalung17@gmail.com

Riwayat Pendidikan

2011-2015 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2008-2011 : SMA Negeri 15 Medan

2005-2008 : SMP Negeri 9 Medan


(27)

DAFTAR PUSTAKA

Andoko, A. 2010. Budidaya Padi Secara Organik. Penebar Swadaya . Jakarta.

Ariansyah , sigit . Aknuranda , Ismiarta . Rachmadi , Aditya. Sistem Pendukung Keputusan Evaluasi Kinerja Penyidik Anggota Polri dengan menggugunakan Metode Promethee. (Studi Kasus: Direktorat Reserse Kriminal Umun Polda Jatim Surabaya) . Jurnal. Universitas Brawijaya. Malang . pp : 2-4 .

Amrizal, Yusuf. Akmal. & Catur Hermanto. 2013 . Pendekatan Pengolahan Tanaman Terpadu Pada Pendampingan Sektor Pembenihan. Balai Teknologi Pertanian Sumatera Utara. Medan.

Islami, Dini . 2014 . Analisis Kelayakan Kredit Kepemilikan Rumah Dengan Metode Profile Matching dan Promethee (Studi kasus : CV. Karya Bersama ) . Skripsi . Universitas Sumatera Utara .

Kusrini. 2007. Konsep dan Aplikasi Sistem Pendukung Keputusan. CV.Andi: Yogyakarta.

Kusumadewi, Sri . 2006 . Fuzzy Multi-Attribute Decision Making (Fuzzy MADM). Graha Ilmu,Yogyakarta.

Lumbantoruan, H.C. 2014. Sistem Pendukung Keputusan Menentukan Biji

Kopi Berkualitas Ekspor Dengan Metode Simple Additive Weight (SAW). (Studi Kasus : PT. Volkopi Indonesia Lintongnihuta Humbang Hasudutan) ISSN : 2301-9425. Jurnal . STMIK Budi Dharma, Medan . pp : 64 .

Novaliendry, Dony . 2009 . Aplikasi Penggunaan Metode Promethee dalam Sistem Pendukung Keputusan untuk Penentuan Media Promosi. Jurnal Ilmiah. Universitas Negeri Padang . pp : 105-107 .

Pradita, Ranida. Hidayat, Nurul. 2013. Sistem Pendukung Keputusan Pemilihan Guru Berprestasi Menggunakan Metode Promethee. Jurnal Sains dan Seni Pomits Vol2, No.1 . Institut Teknologi Sepuluh November Surabaya . pp : 2-3.

Romidhoni , Fery. Sagirana, Tri. Amelia , Tan . Sistem Pendukung Keputusan Pemberian Beasiswa Menggunakan Metode Simple Additive Weighting


(28)

(SAW) di Universitas Panca Marga Probolinggo. Jurnal . Sistem Informasi. Sekolah Tinggi Manajemen Informatika & Teknik Komputer Surabaya. pp: 5.

Sinaga, Teti . 2014. Sistem Pendukung Keputusan Untuk Menentukan Peminjaman dan Besar Peminjaman Dana PNMP Mandiri dengan Kombinasi Metode Multivactor Evaluation Process (MEV) dan Weighted Product (WP) . (Studi Kasus : Desa Hutagalung, Kec : Harian, Kabupaten : Samosir ) . Skripsi . Universitas Sumatera Utara . Usito , N . J. 2013. Sistem Pendukung Keputusan Penilaian Proses Belajar

Mengajar Menggunakan Metode Simple Additive Weight (SAW) . Tesis . Universitas Dipenogoro Semarang.


(29)

BAB 3

ANALISIS DAN PERANCANGAN

3.1 Analisis Sistem

Suatu sistem yang utuh diuraikan kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasi dan mengevaluasi permasalahan-permasalahan, kesempatan dan kebutuhan disebut sebagai analisis sistem. Analisis sistem pada dasarnya merupakan tahapan yang dilakukan untuk menghasilkan pemahaman yang menyeluruh terhadap kebutuhan sistem. Analisis sistem meliputi tiga tahapan yaitu analisis masalah, analisis kebutuhan dan analisis proses.

3.1.1 Analisis Masalah

Masalah yang akan dibahas dalam penelitian ini adalah bagaimana mendapatkan hasil padi yang berkualiats yang sesuai dengan kriteria yang telah ditentukan dengan membandingkan algoritma Simpe Additive Weighting (SAW) dan PROMETHEE. Salah satu cara menganalisis masalah dalam suatu penelitian adalah dengan menggunakan diagram Ishikawa.

Diagram Ishikawa adalah alat yang membantu mengidentifikasi penyebab dari masalah. Pada diagram Ishikawa masalah berada di kanan (kepala), penyebab masalah digambarkan sebagai tulang seperti pada gambar 3.1


(30)

Gambar 3.1 Diagram Ishikawa

Dalam diagram ishikawa pada gambar 3.1 menjelaskan bahwa masalah yang terjadi adalah bingungnya petani dalam memilih jenis varietas padi yang akan mereka tanam, karena banyaknya jenis varietas baru yang muncul setiap tahunnya, tidak jarang varetas padi yang petani tanam menghasilkan padi yang berkualitas buruk. Sulit untuk menemukan system yang membantu dalam pemilihan kualiatas padi. System dibuat untuk membatu petani dalam memilih jenis padi mana yang akan mereka tanam dengan menggunakan metode Simpe Additive Weighting (SAW) dan PROMETHEE.

3.1.2 Analisis kebutuhan sistem

Dalam membagun sistem perlu melewati tahapan analisis kebutuhan sistem. Analisis kebutuhan sistem dibagi menjadi 2 bagian yaitu kebutuhan fungsional dan kebutuhan non fungsional.


(31)

Merupakan persyaratan yang harus dimiliki sistem pendukung keputusan pemilihan kualitas padi yaitu:

a. Menerapkan algoritma Simple Additive Weighting (SAW) dalam pemilihan kualitas padi

b. Menerapkan algoritma PROMETHEE dalam pemilihan kualitas padi

c. Sistem dapat menampilkan hasil rangking dari masing-masing jenis padi, dan menampilkan kualitas padi super, premium, medium dan rendah.

d. Sistem dapat memasukan data jenis varietas padi yang baru dengan memasukan kriteria-kriteria padi yang telah ditentukan.

e. Menggunakan parameter running time (waktu akses dalam millisecond)

2. Kebutuhan non fungsional

Kebutuhan non fungsional merupakan deskripsi dari aktivitas dan layanan yang sistem harus berikan. Hal yang menjadi kebutuhan fungsional ialah input, outputs, processes, yaitu antara lain :

1. Sistem harus mampu memberikan solusi terhadap sistem pendukung keputusan pemilihan kualitas padi (padi sawah dan padi hibrida) dengan

mengimplementasikan algoritma Simple Additive Weighting (SAW).

2. Sistem harus mampu memberikan solusi terhadap sistem pendukung keputusan pemilihan kualitas padi (padi sawah dan padi hibrida) dengan

mengimplementasikan algoritma PROMETHEE.

3. Menggunakan parameter running time (waktu akses dalam millisecond) untuk mengukur kerja algoritma.

4. Dalam menentukan nilai perbandingan kriteria dan alternative digunakan dari data kantor penyuluh pertanian.


(32)

3.1.3 Analisis Proses

Untuk menentukan keputusan metode Metode Simple Additive Weighting (SAW) akan dibandingkan dengan metode PROMETHEE. Dimana menggunakan data berupa kriteria yang mempunyai prioritas berbeda. Kedua metode akan menggunakan data yang sama, untuk metode SAW yang pertama kali dilakukan adalah menentukan bobot dari masing-masing kriteria, setelah itu dilakukan proses normalisasi matriks dan faktor ternormalisasi, maka akan didapatkan hasil akhir. Sedangkan metode PROMETHEE yang dilakukan pertama menentukan beberapa alternatif dengan beberapa kriteria, setelah menentukan tipe apakah minimum atau maksimum maka akan didapat nilai prefrensinya. Setelah itu akan diberi nilai threshold dan didaptkan hasil akhir. Nantinya sistem menggunakan bahasa pemograman C# dan MySQL sebagai sistem manajemen data, parameter yang dibandingkan adalah running time dan tingkat keberhasilan dalam memilih kualitas padi.

3.1.4 Analisis Kriteria

Setelah mendapatkan data dari Balai Penyuluhan Pertanian (BPP) Medan krio, dan melakukan wawancara kepada PPL yang bertugas disana makan didapat kritera-kriteria yang berpengaruh terhadap proses pertumbuhan padi yang baik yaitu umur tanaman, tinggi tanaman, kerontokan, rata-rata hasil, dan potensi hasil. Kriteria umur tanaman, tinggi tanaman dan kerontokan dianggap sebagai kriteria yang paling mempengaruhi. Kriteria ini kemudian dikelompokan kedalam rentang bobot 0,1 sampai 1 dapat dilihat pada tabel 3.1 – tabel 3.6

Tabel 3.1. Tabel Bobot masing-masing kriteria Kriteria Bobot

Umur Tanaman (C1) 0,3 Tinggi Tanaman (C2) 0,2 Kerontokan (C3) 0,2


(33)

Rata-rata Hasil (C4) 0,15 Potensi Hasil (C5) 0,15

1. Standar penilaian untuk umur tanaman

Tabel 3.2. Tabel Standar penialian umur tanaman Parameter Bilangan Fuzy Nilai

90 - 100 hari Rendah 0,2 101 - 111 hari Sedang 0,4 112 - 122 hari Tengah 0,6 123 - 133 hari Tinggi 0,8 134 - 144 hari Sangat Tinggi 1

2. Standar penilaian untuk tinggi tanaman

Tabel 3.3. Tabel Standar penilaian tinggi tanaman Parameter Bilangan Fuzzy Nilai

70 - 80 cm Rendah 0,2

81 - 91 cm Sedang 0,4

92 - 102 cm Tengan 0,6

103 - 113 cm Tinggi 0,8

114 - 124 cm Sangat Tinggi 1

3. Standar penilain untuk kerontokan

Tabel 3.4. Tabel Standar penilaian kerontokan Parameter Bilangan fuzzy Nilai

Mudah Rontok Rendah 0,25

Sedang Sedang 0,50

Agak Tahan Tinggi 0,75


(34)

4. Standar penilain rata-rata hasil

Tabel 3.5. Tabel Standar penilaian rata-rata hasil Parameter Bilangan Fuzzy Nilai

4,5 - 5,5 Kurang 0,25

5,6 - 6,6 Sedang 0,50

6,7 - 7,7 Baik 0,75

7,8 - 8,8 Sangan Baik 1

5. Standar penilaian potensi hasil

Table 3.6. Tabel penilaian Standar Potensi Hasil Parameter Bilangan Fuzzy Nilai

5,0 - 6,0 Sangat Rendah 0

6,1 - 7,1 Rendah 0,2

7,2 - 8,2 Sedang 0,4

8,3 - 9,3 Rendah 0,6

9,4 - 10,4 Tengah 0,8

10,5 - 11,5 Tinggi 1

3.1.4.1 Perhitungan Menggunakan Simple Additive Weinghting (SAW)

Seperti dijelaskan di awal bahwa penentuan kualitas padi dipengaruhi oleh beberapa kriteria dengan bobot yang berbeda. Untuk menghitung kualitas padi menggunakan metode SAW yang pertama dilakukan adalah menentukan bobot nilai dari suatu alternatif dengan kriteria yang telah dijelaskan sebelumnya, nilai maksimal dari pembobotan adalah ‘1’.

Perhitungan Varietas Padi Sawah

Alternatif yang digunakan dalam penelitian :


(35)

Tinggi : 70-80 cm Kerontokan : mudah Rata-rata hasil : 4,5 t/ha Potensi hasil : 5,8 t/ha 2. Silugonggo : Umur tanaman : 85-90 hari

Tinggi : 80-85 cm Kerontokan : sedang Rata-rata hasil : 4,5 t/ha Potensi hasil : 5,5 t/ha

3. Cibodas : Umur tanaman : 117-126 hari Tinggi : 105-115 cm

Kerontokan : sedang Rata-rata hasil : 6,0 t/ha Potensi hasil : 7,0 t/ha

4. Digal : Umur tanaman : 115-125 hari Tinggi : 95-100 cm

Kerontokan : sedang Rata-rata hasil : 5,0 t/ha Potensi hasil : 7,0 t/ha 5. Cimalaya : Umur tanaman : 126-130 hari

Tinggi : 90-105 cm Kerontokan : agak tahan Rata-rata hasil : 6,0 t/ha Potensi hasil : 7,0 t/ha 6. Tuket petuna : Umur tanaman : 115-125 hari

Tinggi : 115-120 cm Kerontokan : mudah Rata-rata hasil : 4,0 t/ha


(36)

Potensi hasil : 7,0 t/ha 7. Sunggal : Umur tanaman : 115-125 hari

Tinggi : 99-110 cm Kerontokan : sedang Rata-rata hasil : 5,0 t/ha Potensi hasil : 8,0 t/ha 8. Batang gadis : Umur tanaman : 108-112 hari

Tinggi : 110-120 cm Kerontokan : sedang Rata-rata hasil : 6,0 t/ha Potensi hasil : 7,5 t/ha 9. Angke : Umur tanaman : 110-120 hari

Tinggi : 87-93 cm Kerontokan : tahan Rata-rata hasil : 6,0 t/ha Potensi hasil : 7,5 t/ha 10.Cisadane : Umur tanaman : 135-140 hari

Tinggi : 105-120 cm Kerontokan : sedang Rata-rata hasil : 5,0 t/ha Potensi hasil : 7,0 t/ha

Pada metode Simple Additive Weighting (SAW) yang pertama dilakukan adalah melakukan pembobotan, proses pembobotan dapat dilihat pada tabel 3.7


(37)

Tabel 3.7. Tabel Proses pembobotan

Varietas

Kriteria

C1 C2 C3 C4 C5

Ir 36 0.6 0.2 0.25 0.25 0.2

Silugonggo 0.2 0.4 0.5 0.25 0.2

Cibodas 0.8 1 0.5 0.5 0.4

Digal 0.8 0.6 0.5 0.25 0.4

Cimalaya Muncul 0.8 0.8 0.75 0.5 0.4

Cuket petuna 0.8 1 0.25 0.25 0.4

Sunggal 0.8 0.8 0.5 0.25 0.6

Batang Gadis 0.6 1 0.5 0.5 0.4

Angke 0.6 1 1 0.5 0.4

Cisadane 0.6 1 0.5 0.25 0.4

Setelah dilakukan pembobotan, ubah bobot kedalam bentuk matriks seperti pada tabel 3.

Tabel 3.8. Tabel Perubahan dalam bentuk matriks

0.6 0.2 0.25 0.25 0.2

0.2 0.4 0.5 0.25 0.2

0.8 1 0.5 0.5 0.4

0.8 0.6 0.5 0.25 0.4

0.8 0.8 0.75 0.5 0.4

0.8 1 0.25 0.25 0.4

0.8 0.8 0.5 0.25 0.6

0.6 1 0.5 0.5 0.4

0.6 1 1 0.5 0.4

0.6 1 0.5 0.25 0.4

Kriteria benefitnya adalah C1, C2, dan C4 dan C5. Untuk normalisasi nilai digunakan


(38)

Dari kolom C1, Nilai maksimalnya adalah 0,8, maka setiap baris dari kolom C1 dibagi oleh nilai maksimal C1

R11 =

,

max .

=

,

. = 0,75 R12 = 0,2/0,8 = 0,25

R13 = 0,8/0,8 = 1

R14 = 0,8/0,8 = 1

R15 = 0,8/0,8 = 1

R16 = 0,8/0,8 = 1

R17 = 0,8/0,8 = 1

R18= 0,6/0,8 = 0,75

R19 = 0,6/0,8 = 0,75

R110 = 0,6/0,8 = 0,75

Dari kolom C2, nilai maksimalnya adalah 1, maka setiap baris kolom C2 dibagi oleh nilai maksimal C2

R21 =

,

max

=

,

= 0,2 R22 = 0,4/1 = 0,4

R23 = 1/1 = 1

R24 = 0,6/1 = 0,6

R25 = 0,8/1 = 0,8

R26 = 1/1 = 1

R27 = 0,8/1 = 0,8

R28= 1/1 = 1

R29 = 1/1 = 1

R210 = 1/1 = 1

Kriteria costnya yaitu C3, untuk normalisasi nilai digunakan


(39)

Dari kolom C3, nilai minimalnya adalah 0,25, maka setiap baris kolom C3 dibagi oleh nilai minimal C3

R31 =

,

max ,

=

,

, = 1 R32 = 0,50/0,25 = 2

R33 = 0,50/0,25 = 2

R34 = 0,50/0,25 = 2

R35 = 0,75/0,25 = 3

R36 = 0,25/0,25 = 1

R37 = 0,50/0,25 = 2

R38= 0,50/0,25 = 2

R39 = 0,50/0,25 = 2

R310 = 0,50/0,25 = 2

Dari kolom C4, nilai maksimalnya adalah 0,50 maka setiap baris kolom C4 dibagi oleh nilai minimal C4

R41 =

,

max ,

=

,

, = 0,5 R42 = 0,25/0,50 = 0,5

R43 = 0,50/0,50 = 1

R44 = 0,25/0,50 = 0,5

R45 = 0,50/0,50 = 1

R46 = 0,25/0,50 = 0,5

R47 = 0,25/0,50 = 0,5

R48= 0,50 / 0,50 = 1

R49 = 0,50 / 0,50 = 1

R410 = 0,50 / 0,50 = 1

Dari kolom C5, nilai maksimalnya adalah 0,6 maka setiap baris kolom C5 dibagi oleh nilai maksimal C5


(40)

R51 =

,

max ,

=

,

, = 0,33 R52 = 0,2 / 0,6 = 0,33

R53 = 0,4 / 0,6 = 0,66

R54 = 0,4 / 0,6 = 0,66

R55 = 0,4 / 0,6 = 0,66

R56 = 0,4 / 0,6 = 0,66

R57 = 0,6 / 0,6 = 1

R58= 0,4 / 0,6 = 0,66

R59 = 0,4 / 0,6 = 0,66

R510 = 0,4 / 0,6 = 0,66

Setelah proses perhitungan selesai, masukan perhitungan kedalam tabel normalisasi, dapat dilihat pada tabel 3.9

Tabel 3.9. Tabel Normalisasi Matriks

0,75 0,2 1 0,5 0,33

0,25 0,4 2 0,5 0,33

1 1 2 1 0,66

1 0,6 2 0,5 0,66

1 0,8 3 1 0,66

1 1 1 0,5 0,66

1 0,8 2 0,5 1

0,75 1 2 1 0,66

0,75 1 2 1 0,66

0,75 1 2 1 0,66

Setelah didapat tabel normalisasi, maka dihitung dengan mengalikan setiap kolom ditabel dengan bobot kriteria yang telah dideklarasi sebelumnya


(41)

A1 = ( 0,3 * 0,75) + ( 0,15 * 0,2 ) + ( 0,15 * 1 ) + ( 0,2 * 0,5 ) + ( 0,2 * 0,33 ) = 0.841

A2 = ( 0,3 * 0,25 ) + ( 0,15 * 0,4 ) + ( 0,15 *0,2 ) + ( 0,2 * 0,5 ) + ( 0,2 * 0,33 ) = 0,751

A3 = ( 0,3 * 1 ) + ( 0,15 * 1) + ( 0,15 * 2 ) + ( 0,2 * 1 ) + ( 0,2 * 0,66 ) = 1,082

A4 = ( 0,3 * 1 ) + ( 0,15 * 0,6 ) + ( 0,15 *0,2 ) + ( 0,2 * 0,5 ) + ( 0,2 * 0,66 ) = 0,852

A5 = ( 0,3 * 1 ) + ( 0,15 * 0,8 ) + ( 0,15 * 0,3 ) + ( 0,2 * 1 ) + ( 0,2 * 0,66 ) = 1,202

A6 = ( 0,3 * 1 ) + ( 0,15* 1 ) + ( 0,15 * 1 ) + ( 0,2 * 0,5) + ( 0,2 * 0,66 ) = 0,823

A7 = ( 0,3 * 1 ) + ( 0,15 * 0,8 ) + ( 0,15 * 2 ) + ( 0,2 * 0,5 ) + ( 0,2 * 1 ) = 1,02

A8 = ( 0,3 * 0,75 ) + ( 0,15 * 1 ) + ( 0,15 * 2 ) + ( 0,2 * 1 ) + ( 0,2 * 0,66 ) = 1,007

A9 = ( 0,3 * 0,75 ) + ( 0,15 * 1 ) + ( 0,15* 4) + ( 0,2 * 1 ) + ( 0,2 * 0,66 ) = 1,307

A10 = ( 0,3 * 0,75 ) + ( 0,15 * 1) + ( 0,15 * 2 ) + ( 0,2 * 0,5 ) + ( 0,2 * 0,66 ) = 0,907

Dari hasil perhitungan maka alternatif yang memiliki nilai tertinggi dan bisa dipilih adalah alternatif A9 dengan nilai 1,307, A5 dengan nilai 1,202, A3 dengan nilai 1,082 dan A2 adalah alternatif yang paling rendah dengan nilai 0,751

Perhitungan Varietas padi Hibrida

Alternatif yang digunakan dalam penilitian :

1. Maro : Umur tanaman : 114-120 hari Tinggi : 105-110 cm


(42)

Rata-rata hasil : 6,4 t/ha Potensi hasil : 9,5 t/ha

2. Rokan: Umur tanaman : 110-116 hari Tinggi : 108-115 cm

Kerontokan : sedang Rata-rata hasil : 6,0 t/ha

Potensi hasil : 9,0 t/ha 3. Hipa 3 : Umur tanaman : 114-120 hari

Tinggi : 105-110 cm Kerontokan : sedang Rata-rata hasil : 6,4 t/ha Potensi hasil : 9,5 t/ha

4. Hipa 4 : Umur tanaman : 116-120 hari Tinggi : 96-105 cm

Kerontokan : mudah Rata-rata hasil : 8,0 t/ha Potensi hasil : 11,0 t/ha 5. Hipa 5 ceva : Umur tanaman : 114-129 hari

Tinggi : 94-121 cm Kerontokan : mudah Rata-rata hasil : 7,3 t/ha Potensi hasil : 8,4 t/ha

6. Hipa 6 jate : Umur tanaman : 101-128 hari Tinggi : 90-120 cm

Kerontokan : sedang Rata-rata hasil : 7,4 t/ha Potensi hasil : 10,6 t/ha 7. Hipa 7 : Umur tanaman : 112 hari


(1)

2.4.1 Nilai Treshold atau Kecenderungan 15

2.4.2 Arah dalam grafik nilai outrangking 16

Bab III Analisis dan Perancangan 3.1 Analisis Sistem 3.1.1 Analisis Masalah 18

3.1.2 Analisis Kebutuhan 19

3.1.3 Analisis Proses 20

3.1.4 Analisis Kriteria 20

3.1.4.1 Perhitungan Menggunakan SAW 23

3.1.4.2 Perhitungan Promethee 35

3.1.5 Pemodelan Sistem 51

3.2 Perancangan Sistem 57

3.2.1 Perancangan Interface Form Home 57

3.2.2 Perancangan Interface Form Data Padi 57

3.2.3 Perancangan Interface Form Kriteria 58

Bab IV Implementasi dan Pengujian 4.1 Implementasi 61

4.1.1 Form Home 62

4.1.2 Form Data Padi 63

4.1.3 Form Menu SPK 64

4.1.4 Form About 65

4.1.5 Form Help 66

4.2 Pengujian 66

4.2.1 Proses Perangkingann kualitas padi sawah dan padi hibrida menggunaka metode SAW 66

4.2.2 Proses Perangkingann kualitas padi sawah dan padi hibrida menggunaka metode SAW 68


(2)

4.2.3 Perbandingan hasil pengujian kualitas padi sawah dan hibrida menggunakan Metode SAW dan PROMETHEE 72 Bab V Kesimpulan dan Saran

5.1 Kesimpulan 75 5.2 Saran 76 Daftar Pustaka 77 Lampiran


(3)

DAFTAR TABEL

Nomor Tabel

Nama Tabel Halaman

2.1 Dasar – dasar analisis promethee 13

2.2 Tipe – tipe kriteria dasar ( P(d) : fungsi prefrensi) 14

3.1 Tabel masing-masing kriteria 21

3.2 Tabel standar penilain umur tanama 21

3.3 Tabel Standar penilaian tinggi tanaman 21

3.4 Tabel Standar penilain kerontokan 22

3.5 Tabel Standar penilain Rata-rata hasil 22 3.6 Tabel Standar penilain Potensi hasil 22

3.7 Tabel Proses pembobotan 25

3.8 Perubahan dalam bentuk matriks 25

3.9 Normalisasi Matriks 28

3.10 Proses Pembobotan 31

3.11 Perubahan dalam bentuk matriks 31

3.12 Normalisasi matriks 33

3.13 Tabel Data 36

3.14 Promethee tahap 1 36

3.15 Tabel Nilai H(d) dari alternative A 37

3.16 Tabel Nilai H(d) dari alternative B 38

3.17 Tabel Nilai H(d) dari alternative C 38

3.18 Tabel Nilai H(d) dari alternative D 39

3.19 Tabel Nilai H(d) dari alternative E 39

3.20 Tabel Nilai H(d) dari alternative F 40

3.21 Tabel Nilai H(d) dari alternative G 40

3.22 Tabel Nilai H(d) dari alternative H 41


(4)

3.24 Tabel Nilai H(d) dari alternative J 42

3.25 Promethee tahap 2 42

3.26 Hasil Nilai leaving flow 43

3.27 Hasil entering flow 44

3.28 Hasil net flow 44

3.29 Hasil rangking 45

3.30 Data padi hibrida 45

3.32 Promethee tahap 1 46

3.33 Tabel Nilai H(d) dari alternative A 46

3.34 Tabel Nilai H(d) dari alternative B 46

3.35 Tabel Nilai H(d) dari alternative C 47

3.36 Tabel Nilai H(d) dari alternative D 47

3.37 Tabel Nilai H(d) dari alternative E 48

3.38 Tabel Nilai H(d) dari alternative F 48

3.39 Tabel Nilai H(d) dari alternative G 48

3.40 Tabel Nilai H(d) dari alternative H 48

3.41 Promethee tahap 2 49

3.42 Hasil Nilai leaving flow 49

3.43 Hasil entering flow 50

3.44 Hasil net flow 50


(5)

DAFTAR GAMBAR

Nomor Gambar

Nama Gambar Halaman

2.1 Varietas ir64 8

2.2 Varietas ciherang 8

2.3 Varietas angke 8

2.4 Arsitektur sistem pendukung keputusan 11 3.1 Diagram ishikawa Analisis Permasalahan 19

3.2 Use case 51

3.3 Activity diagram SAW 52

3.4 Activity diagram Promethee 52

3.5 Sequence diagram SAW 53

3.6 Sequence diagram Promethee 54

3.7 Flowchart SAW 55

3.8 Flowchart Promethee 56

3.9 Rancangan Interface Home 57

3.10 Rancangan form data padi 58

3.11 Rancangan form kriteria 58

3.12 Rancangan form perhitungan metode 59

4.1 Tampilan form menu home 62

4.2 Tampilan form menu data padi sawah 63

4.3 Tampilan form menu data padi hibrida 63

4.4 Tampilan form menu SPK padi sawah 64

4.5 Tampilan form menu SPK padi Hibrida 65

4.6 Tampilan form menu about 66

4.7 Tampilan form menu help 67

4.8 Hasil rangking padi sawah menggunakan metode SAW 68 4.9 Hasil rangking hibrida menggunakan metode SAW 69


(6)

4.10 Perhitungan promethee padi sawah 70 4.11 Hasil rangking promethee padi sawah 71 4.12 Perhitungan promethee padi hibrida 72 4.13 Hasil rangking promethee padi hibrida 72 4.14 Perbandingan hasil promethee dan SAW padi sawah 73 4.15 Perbandingan hasil promethee dan SAW padi hibrida 73


Dokumen yang terkait

Perbandingan Algoritma Simple Additive Weighting (SAW) dan Preference Ranking Organization for Enrichment Evaluation (PROMETHEE) Dalam Pemilihan Sepeda Motor

18 100 121

Perbandingan Algoritma Simple Additive Weighting (SAW) dan Preference Ranking Organization for Enrichment Evaluation (PROMETHEE) Dalam Pemilihan Sepeda Motor

0 0 17

Perbandingan Algoritma Simple Additive Weighting (SAW) dan Preference Ranking Organization for Enrichment Evaluation (PROMETHEE) Dalam Pemilihan Sepeda Motor

0 0 1

Perbandingan Algoritma Simple Additive Weighting (SAW) dan Preference Ranking Organization for Enrichment Evaluation (PROMETHEE) Dalam Pemilihan Sepeda Motor

0 0 30

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 0 12

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 0 2

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 0 5

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 0 12

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 8 2

Perbandingan Metode Simple Additive Weighting (Saw) Dan Promethee Dalam Pemilihan Kualitas Padi ( Studi Kasus : Balai Penyuluhan Pertanian Medan Krio Kecamatan : Sunggal )

0 0 26