Implementasi Metode Multifactor Evaluation Process (MFEP) dan Metode Elimination et choix Traduisant la Realite (ELECTRE) pada Sistem Pendukung Keputusan untuk Memilih Tabungan Syariah
Form1.cs using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms;
namespace WindowsFormsApplication3 {
public partial class Form1 : Form
{
public Form1() {
InitializeComponent(); this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedSingle; }
private void mFEPToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Mfep newmfep = new Mfep(); newmfep.Show();
}
private void eLECTREToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Electre newelectre = new Electre(); newelectre.Show();
}
private void closeToolStripMenuItem_Click(object sender, EventArgs e) {
Application.Exit(); }
private void perbandinganToolStripMenuItem_Click(object sender,
EventArgs e) {
this.Hide();
Perbandingan newperbandingan = new Perbandingan(); newperbandingan.Show();
} } }
(2)
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Diagnostics;
namespace WindowsFormsApplication3 {
public partial class Mfep : Form
{
public MySqlConnection koneksi = new
MySqlConnection("server=localhost;database=skripsi;uid=root;pwd=''"); Stopwatch sw = new Stopwatch();
public Mfep() {
InitializeComponent(); this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedSingle; }
double hasil, unitATM, nisbah, admin, jsm, kb, pelayanan, nbf_unitAtm, nbf_nisbah, nbf_admin, nbf_jsm, nbf_kb, nbf_pelayanan;
string[] namaBank = new string[8]; double[,] nef = new double[8, 7]; double[,] nbe = new double[8, 7]; double[] tne = new double[8];
private void proses_Click(object sender, EventArgs e) {
sw.Reset(); sw.Start();
bagiKriteria();
hasil = (unitATM + nisbah + admin + jsm + kb + pelayanan)/100; if (hasil != 1)
MessageBox.Show("Total pembobotan harus sama dengan 100"); else if (hasil==1)
{
dataGridView1.Visible = true; dataGridView3.Visible = false;
dataGridView1.Columns[0].Name = "Jumlah Unit/Counter ATM"; dataGridView1.Columns[1].Name = "Nisbah/Bagi Hasil"; dataGridView1.Columns[2].Name = "Biaya Administrasi"; dataGridView1.Columns[3].Name = "Jumlah Setoran Minimum"; dataGridView1.Columns[4].Name = "Kemudahan Bertransaksi"; dataGridView1.Columns[5].Name = "Pelayanan";
dataGridView1.Rows[0].Cells[0].Value = nbf_unitAtm; dataGridView1.Rows[0].Cells[1].Value = nbf_nisbah;
(3)
dataGridView1.Rows[0].Cells[5].Value = nbf_pelayanan; }
sw.Stop(); koneksi.Open();
MySqlCommand cmd = new MySqlCommand("UPDATE waktu SET
mfep='"+sw.Elapsed.Seconds+" Detik, "+sw.Elapsed.Milliseconds+" Milidetik '", koneksi);
cmd.ExecuteNonQuery(); koneksi.Close(); }
void ambilKriteria() {
unitATM = Convert.ToDouble(textBox1.Text); nisbah = Convert.ToDouble(textBox2.Text); admin = Convert.ToDouble(textBox3.Text); jsm = Convert.ToDouble(textBox4.Text); kb = Convert.ToDouble(textBox5.Text);
pelayanan = Convert.ToDouble(textBox6.Text); }
void bagiKriteria() {
ambilKriteria();
nbf_unitAtm = unitATM / 100; nbf_nisbah = nisbah / 100; nbf_admin = admin / 100; nbf_jsm = jsm / 100; nbf_kb = kb / 100;
nbf_pelayanan = pelayanan / 100; }
private void reset_Click(object sender, EventArgs e) {
sw.Start();
textBox1.Text = "0"; textBox2.Text = "0"; textBox3.Text = "0"; textBox4.Text = "0"; textBox5.Text = "0"; textBox6.Text = "0"; sw.Stop();
koneksi.Open();
MySqlCommand cmd = new MySqlCommand("UPDATE waktu SET mfep='" + sw.Elapsed.Seconds + " Detik, " + sw.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd.ExecuteNonQuery(); koneksi.Close(); }
private void hitung_Click(object sender, EventArgs e) {
label2.Text = "3. Setiap nilai bobot faktor dikalikan evaluasi faktor";
sw.Start();
dataGridView2.Rows.Clear(); koneksi.Open();
(4)
dataGridView2.Columns[2].Name = "Biaya Administrasi"; dataGridView2.Columns[2].Width = 75;
dataGridView2.Columns[3].Name = "Jumlah Setoran Minimum"; dataGridView2.Columns[3].Width = 60;
dataGridView2.Columns[4].Name = "Kemudahan Bertransaksi"; dataGridView2.Columns[4].Width = 80;
dataGridView2.Columns[5].Name = "Pelayanan"; dataGridView2.Columns[5].Width = 70;
dataGridView2.Columns[6].Name = "Hasil"; dataGridView2.Columns[6].Width = 53;
MySqlCommand cm = new MySqlCommand("select unitatm, nisbah, admin, jsm, kb, pelayanan, hasil from tb_alternatif", koneksi);
MySqlDataReader dr = cm.ExecuteReader(); while (dr.Read())
{
String[] row = new String[] { dr[0].ToString(),
dr[1].ToString(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString(), dr[6].ToString(), };
dataGridView2.Rows.Add(row); }
dr.Close(); koneksi.Close();
for (int i = 0; i <= 7; i++) for (int j = 0; j <= 6; j++ ) nef[i, j] =
Convert.ToDouble(dataGridView2.Rows[i].Cells[j].Value); for (int i = 0; i <= 7; i++)
for (int j = 0; j <= 6; j++) if (j == 0)
nbe[i, j] = nef[i, j] * nbf_unitAtm; else if (j == 1)
nbe[i, j] = nef[i, j] * nbf_nisbah; else if (j == 2)
nbe[i, j] = nef[i, j] * nbf_admin; else if (j == 3)
nbe[i, j] = nef[i, j] * nbf_jsm; else if (j == 4)
nbe[i, j] = nef[i, j] * nbf_kb; else if (j == 5)
nbe[i, j] = nef[i, j] * nbf_pelayanan;
for (int i = 0; i <= 7; i++) for (int j = 0; j <= 6; j++)
tne[i] = nbe[i, 0] + nbe[i, 1] + nbe[i, 2] + nbe[i, 3] + nbe[i, 4] + nbe[i, 5];
for (int i = 0; i <= 7; i++) for (int j = 0; j <= 6; j++) if (j==6)
dataGridView2.Rows[i].Cells[6].Value = System.Math.Round(tne[i],2);
else
dataGridView2.Rows[i].Cells[j].Value = System.Math.Round(nbe[i, j],2);
(5)
sw.Elapsed.Seconds + " Detik, " + sw.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd.ExecuteNonQuery(); koneksi.Close(); }
private void tampil_Click(object sender, EventArgs e) {
label2.Text = "2. Memberikan nilai bobot untuk setiap alternatif"; sw.Start();
dataGridView1.Visible = false; dataGridView3.Visible = true; koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("select*from tb_alternatif", koneksi);
da.Fill(dt);
dataGridView3.DataSource = dt.DefaultView; koneksi.Close();
sw.Stop(); koneksi.Open();
MySqlCommand cmd = new MySqlCommand("UPDATE waktu SET mfep='" + sw.Elapsed.Seconds + " Detik, " + sw.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd.ExecuteNonQuery(); koneksi.Close(); }
private void simpan_Click(object sender, EventArgs e) {
string[] namaBank = new string[8]; double[] hasil = new double[8]; sw.Start();
koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("delete from tb_mfep", koneksi);
da.Fill(dt); koneksi.Close();
for (int i = 0; i <= 7; i++) {
hasil[i] = tne[i]; if (i == 0)
namaBank[i] = "BRI Syariah"; else if (i == 1)
namaBank[i] = "BNI Syariah"; else if (i == 2)
namaBank[i] = "Bank Syariah Bukopin"; else if (i == 3)
namaBank[i] = "BTN Syariah"; else if (i == 4)
namaBank[i] = "Bank SUMUT Syariah"; else if (i == 5)
(6)
else if (i == 7)
namaBank[i] = "Bank Syariah Mandiri"; koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("Insert into tb_mfep values(@namabank,@hasil)", koneksi);
cmd1.Parameters.Add(@"namabank", namaBank[i]);
cmd1.Parameters.Add(@"hasil", System.Math.Round(hasil[i],2)); cmd1.ExecuteNonQuery();
koneksi.Close(); }
MessageBox.Show("Data Berhasil Disimpan", MessageBoxButtons.OK,
MessageBoxIcon.None, MessageBoxDefaultButton.Button1); sw.Stop();
koneksi.Open();
MySqlCommand cmd = new MySqlCommand("UPDATE waktu SET mfep='" + sw.Elapsed.Seconds + " Detik, " + sw.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd.ExecuteNonQuery(); koneksi.Close(); }
private void textBox1_Leave(object sender, EventArgs e) {
ambilKriteria();
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
private void textBox2_Leave(object sender, EventArgs e) {
ambilKriteria();
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
private void textBox3_Leave(object sender, EventArgs e) {
ambilKriteria();
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
private void textBox4_Leave(object sender, EventArgs e) {
ambilKriteria();
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
private void textBox5_Leave(object sender, EventArgs e) {
ambilKriteria();
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
(7)
double total = unitATM + nisbah + admin + jsm + kb + pelayanan; lblJlh.Text = Convert.ToString("Jumlah Bobot: " + total); }
private void mFEPToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Mfep newmfep = new Mfep(); newmfep.Show();
}
private void eLECTREToolStripMenuItem_Click_1(object sender, EventArgs
e)
{
this.Hide();
Electre newelectre = new Electre(); newelectre.Show();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Form1 newform = new Form1(); newform.Show();
}
private void perbandinganToolStripMenuItem_Click(object sender,
EventArgs e) {
this.Hide();
Perbandingan newperbandingan = new Perbandingan(); newperbandingan.Show();
} } }
(8)
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Diagnostics;
namespace WindowsFormsApplication3 {
public partial class Electre : Form
{
public MySqlConnection koneksi = new
MySqlConnection("server=localhost;database=skripsi;uid=root;pwd=''"); Stopwatch sw1 = new Stopwatch();
public Electre() {
InitializeComponent(); this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedSingle; }
double wCounterAtm, wBagiHasil, wAdmin, wJsm, wKb, wPelayanan; int z = 0;
double conc, disc, perdisc,disc1,perdisc1,totalC,totalD=0; double w, cThres, dThres;
double[,] G = new double[8,8]; double[,] F = new double[8,8]; double[,] E = new double[8,8]; double[,] C = new double[8,8]; double[,] D = new double[8,8]; double[] x = new double[6];
double[] hasilAkhir = new double[8]; string[] namaBank = new string[8]; double[,] k = new double[8,6]; double[,] r = new double[8,6]; double[,] v = new double[8,6];
private void eLECTREToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Electre newelectre = new Electre(); newelectre.Show();
}
private void mFEPToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Mfep newmfep = new Mfep(); newmfep.Show();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
(9)
}
private void proses_Click(object sender, EventArgs e) {
sw1.Reset(); sw1.Start(); //comboBox1
if (comboBox1.SelectedItem == "Sedikit") wCounterAtm = 1;
else if (comboBox1.SelectedItem == "Sedang") wCounterAtm = 2;
else if (comboBox1.SelectedItem == "Banyak") wCounterAtm = 3;
//comboBox2
if (comboBox2.SelectedItem == "Rendah") wBagiHasil = 1;
else if (comboBox2.SelectedItem == "Sedang") wBagiHasil = 2;
else if (comboBox2.SelectedItem == "Tinggi") wBagiHasil = 3;
//comboBox3
if (comboBox3.SelectedItem == "Kecil") wAdmin = 3;
else if (comboBox3.SelectedItem == "Sedang") wAdmin = 2;
else if (comboBox3.SelectedItem == "Besar") wAdmin = 1;
//comboBox4
if (comboBox4.SelectedItem == "Kecil") wJsm = 3;
else if (comboBox4.SelectedItem == "Sedang") wJsm = 2;
else if (comboBox4.SelectedItem == "Besar") wJsm = 1;
//comboBox5
if (comboBox5.SelectedItem == "Sulit") wKb = 1;
else if (comboBox5.SelectedItem == "Mudah") wKb = 2;
//comboBox6
if (comboBox6.SelectedItem == "Sedikit") wPelayanan = 1;
else if (comboBox6.SelectedItem == "Sedang") wPelayanan = 2;
else if (comboBox6.SelectedItem == "Banyak") wPelayanan = 3;
dataGridView1.Visible = true; dataGridView10.Visible = false;
dataGridView1.Columns[0].Name = "Jumlah Unit/Counter ATM"; dataGridView1.Columns[1].Name = "Nisbah/Bagi Hasil"; dataGridView1.Columns[2].Name = "Biaya Administrasi"; dataGridView1.Columns[3].Name = "Jumlah Setoran Minimum"; dataGridView1.Columns[4].Name = "Kemudahan Bertransaksi"; dataGridView1.Columns[5].Name = "Pelayanan";
(10)
dataGridView1.Rows[0].Cells[4].Value = wKb;
dataGridView1.Rows[0].Cells[5].Value = wPelayanan; sw1.Stop();
koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void tampil_Click(object sender, EventArgs e) {
label2.Text = "Rating Kecocokan dari setiap alternatif pada setiap kriteria";
sw1.Start();
dataGridView1.Visible = false; dataGridView10.Visible = true; koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("select*from tb_alternatif2", koneksi);
da.Fill(dt);
dataGridView10.DataSource = dt.DefaultView; koneksi.Close();
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void normalisasi_Click(object sender, EventArgs e) {
label2.Text = "Normalisasi matriks keputusan"; sw1.Start();
dataGridView2.Visible = true; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = false; dataGridView9.Visible = false; textBox1.Visible = false; dataGridView2.Rows.Clear(); koneksi.Open();
dataGridView2.Columns[0].Name = "Jumlah Unit/Counter ATM"; dataGridView2.Columns[0].Width = 80;
dataGridView2.Columns[1].Name = "Nisbah/Bagi Hasil"; dataGridView2.Columns[1].Width = 75;
(11)
dataGridView2.Columns[3].Width = 60;
dataGridView2.Columns[4].Name = "Kemudahan Bertransaksi"; dataGridView2.Columns[4].Width = 80;
dataGridView2.Columns[5].Name = "Pelayanan"; dataGridView2.Columns[5].Width = 70;
MySqlCommand cm = new MySqlCommand("select
counteratm,bagihasil,admin,jsm,kb,pelayanan from tb_alternatif2", koneksi); MySqlDataReader dr = cm.ExecuteReader();
while (dr.Read()) {
String[] row = new String[] { dr[0].ToString(),
dr[1].ToString(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString(), };
dataGridView2.Rows.Add(row); }
dr.Close(); koneksi.Close();
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 5; c++) k[a, c] =
Convert.ToDouble(dataGridView2.Rows[a].Cells[c].Value); for (int c = 0; c <= 5; c++)
x[c] = Math.Abs(Math.Pow(Math.Pow(k[0, c], 2) + Math.Pow(k[1, c], 2) + Math.Pow(k[2, c], 2) + Math.Pow(k[3, c], 2) + Math.Pow(k[4, c], 2) +
Math.Pow(k[5, c], 2) + Math.Pow(k[6, c], 2) + Math.Pow(k[7, c], 2), 0.5)); for (int a = 0; a <= 7; a++)
for (int c = 0; c <= 5; c++) r[a, c] = k[a, c] / x[c]; for (int a = 0; a <= 7; a++) for (int c = 0; c <= 5; c++)
dataGridView2.Rows[a].Cells[c].Value = System.Math.Round(r[a,c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void pembobotan_Click(object sender, EventArgs e) {
label2.Text = "Pembobotan pada matriks yang telah dinormalisasi"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = true; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = false;
(12)
dataGridView3.Rows.Clear();
dataGridView3.Columns[0].Name = "Jumlah Unit/Counter ATM"; dataGridView3.Columns[0].Width = 80;
dataGridView3.Columns[1].Name = "Nisbah/Bagi Hasil"; dataGridView3.Columns[1].Width = 75;
dataGridView3.Columns[2].Name = "Biaya Administrasi"; dataGridView3.Columns[2].Width = 75;
dataGridView3.Columns[3].Name = "Jumlah Setoran Minimum"; dataGridView3.Columns[3].Width = 60;
dataGridView3.Columns[4].Name = "Kemudahan Bertransaksi"; dataGridView3.Columns[4].Width = 80;
dataGridView3.Columns[5].Name = "Pelayanan"; dataGridView3.Columns[5].Width = 70;
DataGridViewRow a1 = new DataGridViewRow(); dataGridView3.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView3.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView3.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView3.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView3.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView3.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView3.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 5; c++) if (c == 0)
v[a, c] = r[a, c] * wCounterAtm; else if (c == 1)
v[a, c] = r[a, c] * wBagiHasil; else if (c == 2)
v[a, c] = r[a, c] * wAdmin; else if (c == 3)
v[a, c] = r[a, c] * wJsm; else if (c == 4)
v[a, c] = r[a, c] * wKb; else
v[a, c] = r[a, c] * wPelayanan; for (int a = 0; a <= 7; a++)
for (int c = 0; c <= 5; c++)
dataGridView3.Rows[a].Cells[c].Value = System.Math.Round(v[a, c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
(13)
label2.Text = "Menghitung matriks concordance"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = true; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = false; dataGridView9.Visible = false; textBox1.Visible = false; dataGridView4.Rows.Clear(); for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
conc = 0; if(a == c) C[a, c] = 0; else
{
for (int z = 0; z <= 5; z++) {
if (z == 0)
w = wCounterAtm; else if (z == 1) w = wBagiHasil; else if (z == 2) w = wAdmin; else if (z == 3) w = wJsm; else if (z == 4) w = wKb; else
w = wPelayanan; if (v[a, z] >= v[c, z]) conc = conc + w; }
C[a, c] = conc; totalC += C[a, c]; }
}
dataGridView4.Columns[0].Name = "BRI Syariah"; dataGridView4.Columns[0].Width = 50;
dataGridView4.Columns[1].Name = "BNI Syariah"; dataGridView4.Columns[1].Width = 50;
dataGridView4.Columns[2].Name = "Bank Syariah Bukopin"; dataGridView4.Columns[2].Width = 50;
dataGridView4.Columns[3].Name = "BTN Syariah"; dataGridView4.Columns[3].Width = 50;
dataGridView4.Columns[4].Name = "Bank SUMUT Syariah"; dataGridView4.Columns[4].Width = 50;
dataGridView4.Columns[5].Name = "Bank Muamalat"; dataGridView4.Columns[5].Width = 60;
dataGridView4.Columns[6].Name = "Bank Mega Syariah"; dataGridView4.Columns[6].Width = 50;
(14)
DataGridViewRow a1 = new DataGridViewRow(); dataGridView4.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView4.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView4.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView4.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView4.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView4.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView4.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++)
dataGridView4.Rows[a].Cells[c].Value = C[a, c];
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void disc_Click(object sender, EventArgs e) {
label2.Text = "Menghitung matriks discordance"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = true; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = false; dataGridView9.Visible = false; textBox1.Visible = false; dataGridView5.Rows.Clear(); for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
disc = 0; z = 0; perdisc = 0; disc1 = 0; perdisc1 = 0;
if (a == c) C[a, c] = 0; else
(15)
if (perdisc > perdisc1) perdisc1 = perdisc; if (v[a, z] < v[c, z]) {
disc = Math.Abs(v[a, z] - v[c, z]); if (disc > disc1)
disc1 = disc; }
z++; }
D[a, c] = disc1/perdisc1; totalD += D[a, c];
} }
dataGridView5.Columns[0].Name = "BRI Syariah"; dataGridView5.Columns[0].Width = 50;
dataGridView5.Columns[1].Name = "BNI Syariah"; dataGridView5.Columns[1].Width = 50;
dataGridView5.Columns[2].Name = "Bank Syariah Bukopin"; dataGridView5.Columns[2].Width = 50;
dataGridView5.Columns[3].Name = "BTN Syariah"; dataGridView5.Columns[3].Width = 50;
dataGridView5.Columns[4].Name = "Bank SUMUT Syariah"; dataGridView5.Columns[4].Width = 50;
dataGridView5.Columns[5].Name = "Bank Muamalat"; dataGridView5.Columns[5].Width = 60;
dataGridView5.Columns[6].Name = "Bank Mega Syariah"; dataGridView5.Columns[6].Width = 50;
dataGridView5.Columns[7].Name = "Bank Syariah Mandiri"; dataGridView5.Columns[7].Width = 50;
DataGridViewRow a1 = new DataGridViewRow(); dataGridView5.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView5.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView5.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView5.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView5.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView5.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView5.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++)
dataGridView5.Rows[a].Cells[c].Value = System.Math.Round(D[a, c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
(16)
private void dconc_Click(object sender, EventArgs e) {
label2.Text = "Menentukan matriks dominan concordance"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = true; dataGridView7.Visible = false; dataGridView8.Visible = false; dataGridView9.Visible = false; textBox1.Visible = false;
dataGridView6.Rows.Clear(); cThres = totalC / (8 * (8 - 1)); for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
if (C[a,c] >= cThres) E[a,c] = 1; else
E[a,c] = 0; }
dataGridView6.Columns[0].Name = "BRI Syariah"; dataGridView6.Columns[0].Width = 50;
dataGridView6.Columns[1].Name = "BNI Syariah"; dataGridView6.Columns[1].Width = 50;
dataGridView6.Columns[2].Name = "Bank Syariah Bukopin"; dataGridView6.Columns[2].Width = 50;
dataGridView6.Columns[3].Name = "BTN Syariah"; dataGridView6.Columns[3].Width = 50;
dataGridView6.Columns[4].Name = "Bank SUMUT Syariah"; dataGridView6.Columns[4].Width = 50;
dataGridView6.Columns[5].Name = "Bank Muamalat"; dataGridView6.Columns[5].Width = 60;
dataGridView6.Columns[6].Name = "Bank Mega Syariah"; dataGridView6.Columns[6].Width = 50;
dataGridView6.Columns[7].Name = "Bank Syariah Mandiri"; dataGridView6.Columns[7].Width = 50;
DataGridViewRow a1 = new DataGridViewRow(); dataGridView6.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView6.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView6.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView6.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView6.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView6.Rows.Add(a6);
(17)
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++)
dataGridView6.Rows[a].Cells[c].Value = System.Math.Round(E[a,c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void ddisc_Click(object sender, EventArgs e) {
label2.Text = "Menentukan matriks dominan discordance"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = true; dataGridView8.Visible = false; dataGridView9.Visible = false; textBox1.Visible = false;
dataGridView7.Rows.Clear(); dThres = totalD / (8 * (8 - 1)); for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
if (D[a, c] >= dThres) F[a, c] = 1; else
F[a, c] = 0; }
dataGridView7.Columns[0].Name = "BRI Syariah"; dataGridView7.Columns[0].Width = 50;
dataGridView7.Columns[1].Name = "BNI Syariah"; dataGridView7.Columns[1].Width = 50;
dataGridView7.Columns[2].Name = "Bank Syariah Bukopin"; dataGridView7.Columns[2].Width = 50;
dataGridView7.Columns[3].Name = "BTN Syariah"; dataGridView7.Columns[3].Width = 50;
dataGridView7.Columns[4].Name = "Bank SUMUT Syariah"; dataGridView7.Columns[4].Width = 50;
dataGridView7.Columns[5].Name = "Bank Muamalat"; dataGridView7.Columns[5].Width = 60;
dataGridView7.Columns[6].Name = "Bank Mega Syariah"; dataGridView7.Columns[6].Width = 50;
dataGridView7.Columns[7].Name = "Bank Syariah Mandiri"; dataGridView7.Columns[7].Width = 50;
(18)
DataGridViewRow a2 = new DataGridViewRow(); dataGridView7.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView7.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView7.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView7.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView7.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView7.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++)
dataGridView7.Rows[a].Cells[c].Value = System.Math.Round(F[a, c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void aggregate_Click(object sender, EventArgs e) {
label2.Text = "Menentukan aggregate dominan matriks"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = true; dataGridView9.Visible = false; textBox1.Visible = false;
dataGridView8.Rows.Clear(); for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
G[a, c] = E[a, c] * F[a, c]; }
dataGridView8.Columns[0].Name = "BRI Syariah"; dataGridView8.Columns[0].Width = 50;
dataGridView8.Columns[1].Name = "BNI Syariah"; dataGridView8.Columns[1].Width = 50;
dataGridView8.Columns[2].Name = "Bank Syariah Bukopin"; dataGridView8.Columns[2].Width = 50;
(19)
dataGridView8.Columns[5].Name = "Bank Muamalat"; dataGridView8.Columns[5].Width = 60;
dataGridView8.Columns[6].Name = "Bank Mega Syariah"; dataGridView8.Columns[6].Width = 50;
dataGridView8.Columns[7].Name = "Bank Syariah Mandiri"; dataGridView8.Columns[7].Width = 50;
DataGridViewRow a1 = new DataGridViewRow(); dataGridView8.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView8.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView8.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView8.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView8.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView8.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView8.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++)
dataGridView8.Rows[a].Cells[c].Value = System.Math.Round(G[a, c],2);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void eliminasi_Click(object sender, EventArgs e) {
label2.Text = "Eliminasi alternatif yang less favorable"; sw1.Start();
dataGridView2.Visible = false; dataGridView3.Visible = false; dataGridView4.Visible = false; dataGridView5.Visible = false; dataGridView6.Visible = false; dataGridView7.Visible = false; dataGridView8.Visible = false; dataGridView9.Visible = true; textBox1.Visible = true; dataGridView9.Rows.Clear(); for (int a = 0; a <= 7; a++) {
hasilAkhir[a] = 0;
for (int c = 0; c <= 7; c++) hasilAkhir[a] += G[a, c];
(20)
dataGridView9.Columns[1].Name = "Hasil"; DataGridViewRow a1 = new DataGridViewRow(); dataGridView9.Rows.Add(a1);
DataGridViewRow a2 = new DataGridViewRow(); dataGridView9.Rows.Add(a2);
DataGridViewRow a3 = new DataGridViewRow(); dataGridView9.Rows.Add(a3);
DataGridViewRow a4 = new DataGridViewRow(); dataGridView9.Rows.Add(a4);
DataGridViewRow a5 = new DataGridViewRow(); dataGridView9.Rows.Add(a5);
DataGridViewRow a6 = new DataGridViewRow(); dataGridView9.Rows.Add(a6);
DataGridViewRow a7 = new DataGridViewRow(); dataGridView9.Rows.Add(a7);
for (int a = 0; a <= 7; a++) for (int c = 0; c <= 7; c++) {
if (a == 0)
namaBank[a] = "BRI Syariah"; else if (a == 1)
namaBank[a] = "BNI Syariah"; else if (a == 2)
namaBank[a] = "Bank Syariah Bukopin"; else if (a == 3)
namaBank[a] = "BTN Syariah"; else if (a == 4)
namaBank[a] = "Bank SUMUT Syariah"; else if (a == 5)
namaBank[a] = "Bank Muamalat"; else if (a == 6)
namaBank[a] = "Bank Mega Syariah"; else if (a == 7)
namaBank[a] = "Bank Syariah Mandiri"; dataGridView9.Rows[a].Cells[1].Value = System.Math.Round(hasilAkhir[a],2);
dataGridView9.Rows[a].Cells[0].Value = namaBank[a]; double maxValue = hasilAkhir.Max();
int maxIndex = hasilAkhir.ToList().IndexOf(maxValue); string lf = "";
for (int i = 0; i <= 7; i++) if (G[maxIndex, i] != 0)
lf = lf + namaBank[i] + " | ";
textBox1.Text = "Alternatif "+namaBank[maxIndex]+", Lebih Baik Daripada "+lf;
} sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
(21)
private void simpan_Click(object sender, EventArgs e) {
sw1.Start(); koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("delete from tb_electre", koneksi);
da.Fill(dt); koneksi.Close();
for (int a = 0; a <= 7; a++) {
koneksi.Open();
MySqlCommand cmd = new MySqlCommand("Insert into tb_electre values(@namabank,@hasil)", koneksi);
cmd.Parameters.Add(@"namabank", namaBank[a]); cmd.Parameters.Add(@"hasil",
System.Math.Round(hasilAkhir[a],2)); cmd.ExecuteNonQuery(); koneksi.Close(); }
MessageBox.Show("Data Berhasil Disimpan", MessageBoxButtons.OK,
MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
sw1.Stop(); koneksi.Open();
MySqlCommand cmd1 = new MySqlCommand("UPDATE waktu SET electre='" + sw1.Elapsed.Seconds + " Detik, " + sw1.Elapsed.Milliseconds + " Milidetik '", koneksi);
cmd1.ExecuteNonQuery(); koneksi.Close(); }
private void perbandingaToolStripMenuItem_Click(object sender,
EventArgs e) {
this.Hide();
Perbandingan newperbandingan = new Perbandingan(); newperbandingan.Show();
} } }
Perbandingan.cs using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Drawing; using System.Linq; using System.Text;
using System.Threading.Tasks; using System.Windows.Forms; using MySql.Data.MySqlClient;
(22)
{
public MySqlConnection koneksi = new
MySqlConnection("server=localhost;database=skripsi;uid=root;pwd=''"); public Perbandingan()
{
InitializeComponent(); this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.FixedSingle; }
private void mFEPToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Mfep newmfep = new Mfep(); newmfep.Show();
}
private void eLECTREToolStripMenuItem_Click_1(object sender, EventArgs
e)
{
this.Hide();
Electre newelectre = new Electre(); newelectre.Show();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e) {
this.Hide();
Form1 newform = new Form1(); newform.Show();
}
private void perbandinganToolStripMenuItem_Click(object sender,
EventArgs e) {
this.Hide();
Perbandingan newform = new Perbandingan(); newform.Show();
}
private void mfep_Click(object sender, EventArgs e) {
koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("select*from tb_mfep", koneksi);
da.Fill(dt);
dataGridView1.DataSource = dt.DefaultView; koneksi.Close();
koneksi.Open();
MySqlCommand cm = new MySqlCommand("select*from waktu", koneksi); MySqlDataReader dr = cm.ExecuteReader();
while (dr.Read()) {
textBox1.Text = dr["mfep"].ToString(); }
(23)
private void electre_Click(object sender, EventArgs e) {
koneksi.Open();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter("select*from tb_electre", koneksi);
da.Fill(dt);
dataGridView2.DataSource = dt.DefaultView; koneksi.Close();
koneksi.Open();
MySqlCommand cm = new MySqlCommand("select*from waktu", koneksi); MySqlDataReader dr = cm.ExecuteReader();
while (dr.Read()) {
textBox2.Text = dr["electre"].ToString(); }
dr.Close(); koneksi.Close(); }
} }
(24)
DAFTAR RIWAYAT HIDUP
Nama : Rezky Ariestia
Tempat, Tanggal Lahir : Medan, 18 April 1993 Jenis Kelamin : Perempuan
Alamat Sekarang : Jl. HM. Joni Lr. H No. 8 Medan Alamat Orang Tua : Jl. HM. Joni Lr. H No. 8 Medan
Hp : 081397001801
Email : rezkyariestia@gmail.com
PENDIDIKAN FORMAL
2011 – 2016 : S1 Ilmu Komputer Universitas Sumatera Utara, Medan 2008 – 2011 : SMA Negeri 6 Medan
2005 – 2008 : SMP Negeri 6 Medan 1999 – 2005 : SD Swasta Ksatria Medan 1998 – 1999 :TK Aisyiyah Bustanul Athfal
(25)
DAFTAR PUSTAKA
Anonim. 2012. Data ATM Tahun 2012. (Online) http://www.pemkomedan.go.id/databaru/data_atm_semua.pdf (13 Juni 2015)
Cormen, Thomas H, et all. 2009. Introduction to Algorithms Third Edition. London: MIT Press
Dahria, M., Ishak & Umi, F.Y. 2014. Pendukung Keputusan Seleksi Calon Polri Baru di Polda Kota Medan Menggunakan Metode Multifactor Evaluation Process (MFEP). Jurnal SAINTIKOM 13(2): 88-91
Jauhari, Jaidan. 2014. Sistem Pendukung Keputusan Berbasis Mobile untuk Penentuan Kredit Modal Kerja (KMK) Pada Suatu Bank. (Online) http://ejournal.unsri.ac.id/index.php/jsi/article/view/733 (31 Maret 2015)
Junindar. 2008. Panduan Lengkap Menjadi Programmer. Mediakita: Jakarta
Konidari, P. & Mavrakis, D. 2007. A multi-criteria evaluation method for climate change mitigation policy instruments. Energy Policy, 35(12): 6235-6257.
Kusrini. 2007. Konsep dan Aplikasi Sistem Pendukung Keputusan. Andi Offset: Yogyakarta
Kusumadewi, S., Sri Hartanti, Agus Hardjoko & Retantyo Wardoyo. 2006. Fuzzy Multiple Attribut Decision Making (Fuzzy MADM). Graha Ilmu: Yogyakarta
Kusumo, P.T. 2013. Penerapan Metode Electre untuk Penentuan Lokasi Pembangunan Menara BTS (Base Transceiver Station) pada PT. Indosat
Tbk-Solo. (Online)
http://repository.uksw.edu/bitstream/handle/123456789/2826/T1_68200705 0_FullText.pdf?sequence=2 (11 Maret 2015)
(26)
Mark V. & Hester P.T. 2013. An Analysis of Multi-Criteria Decision Making Methods. International Journal of Operations Research. 10(2): 62
Munawar, F. 2012. Ekonomi Syariah Perbankan Islam dan Manajemen Pendidikan di Era Global. Jurnal Pendidikan Agama Islam-Ta’lim 10(2): 178-181
Nasution, L.F. 2009. Perancangan Sistem Pendukung Keputusan Kredit Kepemilikan Rumah di Bank Syariah Cabang Medan. Skripsi. Universitas Sumatera Utara
Pinem, Adelina. 2014. Analisis dan Perbandingan Algoritma A* dan Kombinasi Floyd-Warsshall dengan Brute-Force pada Penentuan Jalur Monitoring di Badan Penanaman Modal Kota Medan. Skripsi. Universitas Sumatera Utara
Praditya, R.W. 2013. Sistem Pendukung Keputusan untuk Memilih Bank dengan Logika Fuzzy. Skripsi. Universitas STIKUBANK Semarang
Pratikto, Heri & Iis Sugianto. 2011. Kinerja Efisiensi Bank Syariah Sebelum dan Sesudah Krisis Global Berdasarkan Data Envelopment Analysis. (Online) http://fe.um.ac.id/wp-content/uploads/2009/10/4-Heri-Pratikto.pdf (9 April 2015)
Purwanto, Eko Budi. 2008. Perancangan & Analisis Algoritma. Yogyakarta: Graha Ilmu
Putra, A.G. 2014. Analisis Perbandingan Algoritma Greedy & Brute Force dalam Pencarian Kartu Tertinggi pada Kartu Remi. Skripsi. Universitas Sumatera Utara
Render, B. & Stair, M. R. Jr. 2002, Quanitative Analysis for Management, 7th Edition, Prentice Hall.
(27)
Salviana, Resvi. 2014. Analisis Segmentasi Nasabah Tabungan Berdasarkan Manfaat pada Bank Syariah Mandiri Cabng Padang. Skripsi. Universitas Negeri Padang
Setiyawati, A.D., Sulis, J.H. & Yoppy, M.M. 2014. Sistem Pendukung Keputusan Pembelian Barang Menggunakan Metode Electre. (Online) http://ppta.stikom.edu/upload/upload/file/04410100017Makalah.pdf (11 Maret 2015)
Siang, Jong Jek. 2006. Matematika Diskrit dan Aplikasinya pada Ilmu Komputer.
Yogyakarta: Andi
Tabungan BSM. 2010. http://www.syariahmandiri.co.id/category/consumer-banking/ (diakses 13 Juni 2015)
Tabungan BTN Batara iB. 2009. http://www.btn.co.id/id/Syariah/Produk/Produk-Dana/Tabungan-Batara-iB (diakses 13 Juni 2015)
Tabungan Faedah BRISyariah iB. 2011. http://brisyariah.co.id/?q=tabungan-brisyariah (diakses 13 Juni 2015)
Tabungan iB Baitullah Hasanah. 2011. http://www.bnisyariah.co.id/produk/bni-syariah-tabungan-haji-2 (diakses 13 Juni 2015)
Tabungan iB Martabe Wadiah. 2014. http://www.banksumut.com/statis-37-tabunganibmartabewadiah.html, 15 Desember 2014 (diakses 13 Juni 2015)
Tabungan Muamalat iB. 2013. http://bankmuamalat.co.id/produk/tabungan-muamalat-ib#.VtTE_n197IU (diakses 13 Juni 2015)
Tabungan iB Siaga. 2012. http://www.syariahbukopin.co.id/id/produk-dan-jasa/pendanaan/tabungan-ib-siaga (diakses 13 Juni 2015)
Tabungan Utama iB. 2012. http://megasyariah.co.id/#.funding-content1=product-and-services/funding/tabungan-utama-ib (diakses 13 Juni 2015)
(28)
Telaumbanua, P. 2011. Analisis Perbandingan Algoritma Kompresi Lempel Ziv Welch, Arithmetic Coding dan Run-Length Encoding pada File Teks. Universitas Sumatera Utara
Turban, Efraim. 2005. Sistem Pendukung Keputusan dan Sistem Cerdas. Andi: Yogyakarta
Ulfah, Maria. 2010. Analisa Perkembangan Asset, Dana Pihak Ketiga (DPK) dan Pembiayaan Perbankan Syariah di Indonesia. Skripsi. Universitas Gunadarma
(29)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem merupakan tahapan proses langkah demi langkah dalam pengembangan sistem yang berkualitas baik. Hasil analisis sistem nantinya akan menjadi dasar untuk melakukan perancangan atau desain perangkat lunak sesuai dengan kebutuhan sistem. Dengan adanya analisis sistem, sistem yang dirancang diharapkan akan lebih baik dan memudahkan dalam pengembangan sistem selanjutnya.
Pada penelitian ini, sistem yang akan dibangun adalah implementasi dari metode
Multifactor Evaluation Process (MFEP) dan metode ELimination Et Choix Traduisant la RealitE (ELECTRE) sebagai metode dalam sistem pendukung keputusan dimana sistem ini digunakan sebagai alat bantu (tools) dalam memilih bank syariah sebagai tempat untuk menabung.
3.2. Analisis Masalah
Banyaknya jumlah bank syariah yang menawarkan keunggulan yang berbeda-beda menyebabkan munculnya kriteria yang harus dipertimbangkan dalam memilih bank syariah sebagai tempat untuk menabung. Selain itu, nasabah selalu memiliki pertimbangan atau faktor-faktor sebelum mengambil suatu keputusan. Mulai dari jumlah unit counter ATM, nisbah/bagi hasil, biaya administrasi, jumlah setoran minimum, kemudahan bertransaksi sampai pelayanan merupakan kriteria yang harus dipertimbangkan dalam memilih bank syariah. Dalam hal ini nasabah harus jeli dalam memilh jenis tabungan syariah yang sesuai dengan kebutuhannya.
Penulis menggunakan diagram Ishikawa (fishbone diagram) sebagai alat bantu untuk menganalisis masalah dan kemungkinan penyebab masalah. Diagram ini juga
(30)
sering disebut sebagai diagram sebab-akibat atau diagram tulang ikan. Dengan menganalisis masalah dan kemungkinan penyebab masalah nantinya akan membantu dalam menganalisis kebutuhan sistem yang akan dikembangkan.
Gambar 3.1. Diagram Ishikawa untuk analisis masalah
Pada gambar 3.1. bagian kepala atau segiempat yang berada di sebelah kanan merupakan masalah. Sementara pada bagian tulang merupakan kemungkinan penyebab masalah. Selain itu, dapat dilihat bahwa Man (dalam penelitian ini Nasabah) sulit melakukan pemilihan tabungan syariah yang sesuai dengan kebutuhannya dikarenakan banyaknya alternatif dan kriteria yang harus dipertimbangkan dan belum tersedianya sistem yang dapat menjadi alat bantu (tools) untuk nasabah dalam memilih tabungan syariah.
Pada Diagram Ishikawa untuk analisis masalah, Machine (dalam penelitian ini Sistem Pendukung Keputusan) akan memberikan hasil pemilihan tabungan syariah yang sesuai dengan kebutuhan nasabah dan hasil perhitungan waktu kedua metode untuk mengetahui metode mana yang paling cepat dalam proses perhitungan. Metode yang diimplementasikan sebagai solusi untuk mengatasi masalah dalam penelitian ini adalah Metode Multifactor Evaluation Process (MFEP) dan Metode ELimination Et Choix Traduisant la RealiE (ELECTRE).
(31)
3.3. Analisis Kebutuhan Sistem
Tahap analisis kebutuhan sistem merupakan tahap lanjutan setelah tahap analisis masalah dan kemungkinan penyebab masalah dilakukan. Analisis kebutuhan sistem terdiri dari kebutuhan fungsional dan kebutuhan non-fungsional.
3.3.1. Kebutuhan fungsional
Kebutuhan fungsional merupakan kebutuhan yang harus dipenuhi oleh sistem. Pada penelitian ini, kebutuhan fungsional sistem yang akan dirancang adalah:
1. Sistem harus mampu memberikan solusi terhadap sistem pendukung keputusan dalam memilih tabungan syariah dengan mengimplementasikan metode MFEP
dan metode ELECTRE.
2. Menggunakan parameter running time (satuan waktu akses dalam detik dan milidetik).
3.3.2. Kebutuhan non-fungsional
Kebutuhan non-fungsional adalah kebutuhan yang dipenuhi oleh sistem dengan tujuan untuk mendukung kebutuhan fungsional yang sudah ditentukan. Pada penelitian ini, kebutuhan non-fungsional sistem yang akan dirancang adalah:
1. Sistem yang akan dibangun harus mudah digunakan oleh user dengan tampilan
(interface) yang sederhana dan mudah dimengerti sehingga dapat dioperasikan dengan baik oleh pengguna.
2. Sistem yang akan dibangun diharapkan mampu menjadi alat bantu (tools) bagi
user dalam memilih tabungan syariah yang sesuai dengan kebutuhan user.
3. Sistem yang telah dirancang diharapkan dapat dikembangkan kembali oleh pihak tertentu yang ingin mengembangkan sistem, sehingga solusi yang diberikan lebih efektif dan dapat melengkapi kekurangan yang ada pada sistem.
3.4. Analisis Kriteria
Dalam sistem pendukung keputusan ini, penulis mengambil data tabungan syariah yang terdapat di Medan, seperti data yang terdapat pada BRI Syariah, BNI Syariah, Bank Syariah Bukopin, BTN Syariah, Bank SUMUT Syariah, Bank Muamalat, Bank Mega Syariah dan Bank Syariah Mandiri. Kriteria yang digunakan dalam memilih
(32)
tabungan syariah adalah jumlah unit counter ATM, nisbah/bagi hasil, biaya administrasi, jumlah setoran minimum, kemudahan bertransaksi dan pelayanan.
3.4.1. Kriteria jumlah unit counter ATM
Jumlah unit counter ATM merupakan jumlah banyaknya tempat untuk mengambil uang secara tunai dari mesin atm maupun melalui teller. ATM yang dimaksudkan disini adalah ATM yang dimiliki oleh pihak bank. Kriteria jumlah unit counter ATM dibagi menjadi 3, yaitu: bernilai 1 jika sedikit (3-9 unit), bernilai 2 jika sedang (10-18 unit) dan bernilai 3 jika banyak (19-27 unit).
Tabel 3.1. Kriteria jumlah unit counter ATM
No. Nama bank syariah Jumlah unit counter ATM Nilai Keterangan
1. BRI Syariah 10 unit 2 Sedikit
2. BNI Syariah 3 unit 1 Sedikit
3. Bank Syariah Bukopin 4 unit 1 Sedikit
4. BTN Syariah 3 unit 1 Sedikit
5. Bank SUMUT Syariah 10 unit 2 Sedikit
6. Bank Muamalat 7 unit 1 Sedikit
7. Bank Mega syariah 8 unit 1 Sedikit
8. Bank Syariah Mandiri 27 unit 3 Banyak
Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.1 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk kriteria jumlah unit counter ATM. Pada Tabel 3.1 dapat dilihat bahwa Bank Syariah Mandiri memiliki jumlah unit counter ATM terbanyak, yaitu 27 unit.
3.4.2. Kriteria nisbah/bagi hasil
Nisbah/bagi hasil merupakan nisbah/sistem bagi hasil yang ditetapkan oleh bank, yang nantinya akan diterima oleh nasabah setiap bulannya. Kriteria nisbah/bagi hasil dibagi menjadi 3, yaitu: bernilai 1 jika rendah (2-10%), bernilai 2 jika sedang (11-19%) dan bernilai 3 jika tinggi (20-27%).
Tabel 3.2. Kriteria nisbah/bagi hasil
No. Nama bank syariah Nisbah/bagi hasil Nilai Keterangan
1. BRI Syariah 25 % 3 Tinggi
2. BNI Syariah 22 % 3 Tinggi
3. Bank Syariah Bukopin 2 % 1 Rendah
4. BTN Syariah 25 % 3 Tinggi
(33)
Tabel 3.2. Kriteria nisbah/bagi hasil (lanjutan)
No. Nama bank syariah Nisbah/bagi hasil Nilai Keterangan
5. Bank SUMUT Syariah 5 % 1 Rendah
6. Bank Muamalat 7,5 % 1 Rendah
7. Bank Mega syariah 9 % 1 Rendah
8. Bank Syariah Mandiri 27 % 3 Tinggi
Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.2 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk kriteria nisbah/bagi hasil. Pada Tabel 3.2 dapat dilihat bahwa BRI Syariah, BNI Syariah, BTN Syariah dan Bank Syariah Mandiri memiliki kriteria nisbah/bagi hasil yang tinggi.
3.4.3. Kriteria biaya administrasi
Biaya administrasi merupakan biaya potongan yang dibebankan kepada nasabah setiap bulannya. Kriteria biaya administrasi dibagi menjadi 3, yaitu: bernilai 1 jika besar (Rp. 11.000 – Rp.15.000), bernilai 2 jika sedang (Rp. 6.000 – Rp. 10.000) dan bernilai 3 jika kecil (Rp.0 – Rp. 5.000).
Tabel 3.3. Kriteria biaya administrasi
No. Nama bank syariah Biaya administrasi Nilai Keterangan
1. BRI Syariah Rp. 12.500 1 Besar
2. BNI Syariah Rp. 5.000 3 Kecil
3. Bank Syariah Bukopin Bebas Biaya 3 Kecil
4. BTN Syariah Rp. 10.000 2 Sedang
5. Bank SUMUT Syariah Rp. 2.000 3 Kecil
6. Bank Muamalat Rp. 15.000 1 Besar
7. Bank Mega syariah Rp. 3.500 3 Kecil
8. Bank Syariah Mandiri Rp. 6.000 2 Sedang Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.3 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk kriteria biaya administrasi. Pada Tabel 3.3 dapat dilihat bahwa BRI Syariah dan Bank Muamalat memiliki kriteria biaya administrasi yang besar.
3.4.4. Kriteria jumlah setoran minimum
Jumlah setoran minimum merupakan biaya awal yang dibebankan kepada nasabah sebelum membuka rekening tabungan. Kriteria jumlah setoran minimum dibagi
(34)
menjadi 3, yaitu: bernilai 1 jika besar (Rp. 81.000 – Rp.100.000), bernilai 2 jika sedang (Rp. 61.000 – Rp. 80.000) dan bernilai 3 jika kecil (Rp. 50.000 – Rp. 60.000).
Tabel 3.4. Kriteria jumlah setoran minimum
No. Nama bank syariah Jumlah setoran minimum Nilai Keterangan
1. BRI Syariah Rp. 100.000 1 Besar
2. BNI Syariah Rp. 100.000 1 Besar
3. Bank Syariah Bukopin Rp. 50.000 3 Kecil
4. BTN Syariah Rp. 50.000 3 Kecil
5. Bank SUMUT Syariah Rp. 100.000 1 Besar
6. Bank Muamalat Rp. 100.000 1 Besar
7. Bank Mega syariah Rp. 100.000 1 Besar
8. Bank Syariah Mandiri Rp. 80.000 2 Sedang Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.4 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk kriteria jumlah setoran minimum. Pada Tabel 3.4 dapat dilihat bahwa Bank Syariah Mandiri memiliki kriteria jumlah setoran minimum yang sedang.
3.4.5. Kriteria kemudahan bertransaksi
Kemudahan bertransaksi merupakan fasilitas yang disediakan oleh pihak bank untuk memudahkan nasabah dalam melakukan transaksi, seperti: fasilitas Mobile Banking, SMS Banking, dan Internet Banking. Kriteria kemudahan bertransaksi dibagi menjadi 2, yaitu: bernilai 1 jika sulit (belum tersedia) dan bernilai 2 jika mudah (sudah tersedia).
Tabel 3.5. Kriteria kemudahan bertransaksi
No. Nama bank syariah Kemudahan bertransaksi Nilai Keterangan
1. BRI Syariah Sudah tersedia 2 Mudah
2. BNI Syariah Sudah tersedia 2 Mudah
3. Bank Syariah Bukopin Belum tersedia 1 Sulit
4. BTN Syariah Belum tersedia 1 Sulit
5. Bank SUMUT Syariah Belum tersedia 1 Sulit
6. Bank Muamalat Sudah tersedia 2 Mudah
7. Bank Mega syariah Belum tersedia 1 Sulit 8. Bank Syariah Mandiri Sudah tersedia 2 Mudah
Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.5 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk kriteria kemudahan bertransaksi. Pada Tabel 3.5 dapat dilihat bahwa
(35)
BRI Syariah, BNI Syariah, Bank Muamalat dan Bank Syariah Mandiri memiliki kriteria kemudahan bertransaksi yang mudah, dimana keempat bank syariah tersebut sudah mendukung tersedianya fasilitas Mobile Banking, SMS Banking, dan Internet Banking.
.
3.4.6. Kriteria pelayanan
Pelayanan merupakan jumlah customer service dan teller yang disediakan oleh pihak bank untuk melayani nasabah. Kriteria pelayanan dibagi menjadi 3, yaitu: bernilai 1 jika sedikit (2-4 orang), bernilai 2 jika sedang (4-5 orang) dan bernilai 3 jika banyak (6 orang).
Tabel 3.6. Kriteria pelayanan
No. Nama bank syariah Pelayanan Nilai Keterangan
1. BRI Syariah 2 – 4 orang 1 Sedikit
2. BNI Syariah 2 – 4 orang 1 Sedikit
3. Bank Syariah Bukopin 2 – 4 orang 1 Sedikit
4. BTN Syariah 2 – 5 orang 2 Sedang
5. Bank SUMUT Syariah 2 – 4 orang 1 Sedikit 6. Bank Muamalat 3 – 6 orang 3 Banyak 7. Bank Mega syariah 2 – 4 orang 1 Sedikit 8. Bank Syariah Mandiri 2 – 5 orang 2 Sedang Sumber: website masing-masing bank syariah per tanggal 13 Juni 2015
Tabel 3.6 merupakan nilai masing-masing alternatif (dalam penelitian ini bank syariah) untuk pelayanan. Pada Tabel 3.6 dapat dilihat bahwa Bank Muamalat memiliki jumlah customer service dan teller yang terbanyak, yaitu 3-6 orang.
3.5. Analisis Proses
3.5.1. Analisis proses penyelesaian masalah metode MFEP
Langkah pertama yang dilakukan dalam proses penyelesaian masalah dengan metode
MFEP adalah menentukan nilai bobot faktor dimana total pembobotan harus sama dengan 1. Pada penelitian ini, contoh nilai bobot faktor akan diinputkan oleh user ke dalam sistem dapat dilihat pada Tabel 3.7.
(36)
Tabel 3.7. Nilai bobot faktor
No. Kriteria Nilai bobot faktor 1. Jumlah unit counter ATM 0,2
2. Nisbah/bagi hasil 0,1
3. Biaya administrasi 0,1
4. Jumlah setoran minimum 0,1 5. Kemudahan bertransaksi 0,3
6. Pelayanan 0,2
Total pembobotan 1
Tabel 3.7 menunjukkan bahwa user menetapkan kriteria kemudahan bertransaksi merupakan faktor yang paling penting, sedangkan kriteria jumlah unit counter ATM dan kriteria pelayanan merupakan faktor kedua terpenting, dan seterusnya.
Langkah kedua dalam proses penyelesaian masalah dengan metode MFEP adalah memberikan nilai bobot untuk setiap alternatif pada setiap kriteria. Nilai bobot untuk setiap alternatif pada setiap kriteria dapat dilihat pada tabel 3.8.
Tabel 3.8. Nilai bobot untuk setiap alternatif pada setiap kriteria
Alternatif Kriteria yang digunakan
C1 C2 C3 C4 C5 C6
A1 2 3 1 1 2 1
A2 1 3 3 1 2 1
A3 1 1 3 3 1 1
A4 1 3 2 3 1 2
A5 2 1 3 1 1 1
A6 1 1 1 1 2 3
A7 1 1 3 1 1 1
A8 3 3 2 2 2 2
Tabel 3.8 merupakan nilai bobot untuk setiap alternatif pada setiap kriteria dimana A1 merupakan BRI Syariah, A2 merupakan BNI Syariah, A3 merupakan Bank Syariah Bukopin, A4 merupakan BTN Syariah, A5 merupakan Bank SUMUT Syariah, A6 merupakan Bank Muamalat, A7 merupakan Bank Mega Syariah, A8 merupakan Bank Syariah Mandiri dan C1 merupakan jumlah unit counter ATM, C2 merupakan nisbah/bagi hasil, C3 merupakan biaya administrasi, C4 merupakan jumlah setoran minimum, C5 merupakan kemudahan bertransaksi, C6 merupakan pelayanan.
(37)
Langkah selanjutnya dalam proses penyelesaian masalah dengan metode MFEP
adalah setiap nilai bobot faktor dikalikan evaluasi faktor.
A1 = (0,2 x 2) + (0,1 x 3) + (0,1 x 1) + (0,1 x 1) + (0,3 x 2) + (0,2 x 1) = 0.4 + 0.3 + 0.1 + 0.1 + 0.6 + 0.2
= 1.7
A2 = (0,2 x 1) + (0,1 x 3) + (0,1 x 3) + (0,1 x 1) + (0,3 x 2) + (0,2 x 1) = 0.2 + 0.3 + 0.3 + 0.1 + 0.6 + 0.2
= 1.7
A3 = (0,2 x 1) + (0,1 x 1) + (0,1 x 3) + (0,1 x 3) + (0,3 x 1) + (0,2 x 1) = 0,2 + 0,1 + 0,3 + 0,3 + 0,3+ 0,2
= 1,4
A4 = (0,2 x 1) + (0,1 x 3) + (0,1 x 2) + (0,1 x 3) + (0,3 x 1) + (0,2 x 2) = 0,2 + 0,3 + 0,2 + 0,3 + 0,3 + 0,4
= 1,7
A5 = (0,2 x 2) + (0,1 x 1) + (0,1 x 3) + (0,1 x 1) + (0,3 x 1) + (0,2 x 1) = 0,4 + 0,1 + 0,3 + 0,1 + 0,3 + 0,2
= 1,4
A6 = (0,2 x 1) + (0,1 x 1) + (0,1 x 1) + (0,1 x 1) + (0,3 x 2) + (0,2 x 3) = 0,2 + 0,1 + 0,1 + 0,1 + 0,6 + 0,6
= 1,7
A7 = (0,2 x 1) + (0,1 x 1) + (0,1 x 3) + (0,1 x 1) + (0,3 x 1) + (0,2 x 1) = 0,2 + 0,1 + 0,3 + 0,1 + 0,3 + 0,2
= 1,2
A8 = (0,2 x 3) + (0,1 x 3) + (0,1 x 2) + (0,1 x 2) + (0,3 x 2) + (0,2 x 2) = 0,6 + 0,3 + 0,2 + 0,2 + 0,6 + 0,4
= 2,3
Dari kedelapan alternatif, Bank Syariah Mandiri mendapat bobot faktor yang paling tinggi yaitu 2,3.
(38)
3.5.2. Analisis proses penyelesaian masalah metode ELECTRE
Langkah pertama yang dilakukan dalam proses penyelesaian masalah dengan metode
ELECTRE adalah menentukan nilai untuk pembobotan (w). Pada penelitian ini, contoh nilai untuk pembobotan (w) yang akan diinputkan oleh user ke dalam sistem adalah sebagai berikut:
W = (3, 2, 2, 2, 2, 3) (3.1)
Nilai untuk pembobotan (w) pada persamaan (3.1) menunjukkan bahwa user
menginginkan bahwa pada bank syariah tempat user akan menabung memiliki jumlah unit counter ATM yang banyak, mendukung fasilitas yang akan memudahkan dalam melakukan transaksi dan jumlah customer service dan teller yang banyak.
Langkah selanjutnya dalam proses penyelesaian masalah dengan metode
ELECTRE adalah membuat rating kecocokan dari setiap alternatif pada setiap kriteria. Rating kecocokan dari setiap alternatif pada setiap kriteria yang digunakan dalam penelitian ini sama dengan nilai bobot untuk setiap alternatif pada setiap kriteria dalam metode MFEP. Rating kecocokan dari setiap alternatif pada setiap kriteria dapat dilihat pada Tabel 3.8.
a. Normalisasi matriks keputusan
Matriks R merupakan normalisasi dari matriks X atau matriks keputusan yaitu dengan cara sebagai berikut:
|X1| =√ = 4,69 r11 =
= 0,43 r41 =
= 0,21 r71 =
= 0,21 r21 =
= 0,21 r51 =
= 0,43 r81 =
= 0,64 r31 =
= 0,21 r61 =
= 0,21
|X2| =√ = 6,32 r12 =
= 0,47 r42 =
= 0,47 r72 =
= 0,16 r22 =
= 0,47 r52 =
= 0,16 r82 =
(39)
r32 =
= 0,16 r62 =
= 0,16
|X3| =√ = 6,78 r13 =
= 0,15 r43 =
= 0,29 r73 =
= 0,44 r23 =
= 0,44 r53 =
= 0,44 r83 =
= 0,29 r33 =
= 0,44 r63 =
= 0,15
|X4| =√ = 5,20 r14 =
= 0,19 r44 =
= 0,58 r74 =
= 0,19 r24 =
= 0,19 r54 =
= 0,19 r84 =
= 0,38 r34 =
= 0,58 r64 =
= 0,19
|X5| =√ = 4,47 r15 =
= 0,45 r45 =
= 0,22 r75 =
= 0,22 r25 =
= 0,45 r55 =
= 0,22 r85 =
= 0,45 r35 =
= 0,22 r65 =
= 0,45
|X6| =√ = 4,69 r16 =
= 0,21 r46 =
= 0,43 r76 =
= 0,21 r26 =
= 0,21 r56 =
= 0,21 r86 =
= 0,43 r36 =
= 0,21 r66 =
= 0,64
(40)
R = [ ]
b. Pembobotan pada matriks yang telah dinormalisasi
Matriks V, dihitung dengan Persamaan (2.2) yaitu sebagai berikut: V11 = w1r11 = (3) (0,43) = 1,28
V21 = w1r21 = (3) (0,21) = 0,64 V31 = w1r31 = (3) (0,21) = 0,64 V41 = w1r41 = (3) (0,21) = 0,64 V51 = w1r51 = (3) (0,43) = 1,28 V61 = w1r61 = (3) (0,21) = 0,64 V71 = w1r71 = (3) (0,21) = 0,64 V81 = w1r81 = (3) (0,64) = 1,92 V12 = w2r12 = (2) (0,47) = 0,95 V22 = w2r22 = (2) (0,47) = 0,95 V32 = w2r32 = (2) (0,16) = 0,32 V42 = w2r42 = (2) (0,47) = 0,95 V52 = w2r52 = (2) (0,16) = 0,32 V62 = w2r62 = (2) (0,16) = 0,32 V72 = w2r72 = (2) (0,16) = 0,32 V82 = w2r82 = (2) (0,47) = 0,95 V13 = w3r13 = (2) (0,15) = 0,29 V23 = w3r23 = (2) (0,44) = 0,88 V33 = w3r33 = (2) (0,44) = 0,88 V43 = w3r43 = (2) (0,29) = 0,59 V53 = w3r53 = (2) (0,44) = 0,88 V63 = w3r63 = (2) (0,15) = 0,29 V73 = w3r73 = (2) (0,44) = 0,88 V83 = w3r83 = (2) (0,29) = 0,59
V14 = w4r14 = (2) (0,19) = 0,38 V24 = w4r24 = (2) (0,19) = 0,38 V34 = w4r34 = (2) (0,58) = 1,15 V44 = w4r44 = (2) (0,58) = 1,15 V54 = w4r54 = (2) (0,19) = 0,38 V64 = w4r64 = (2) (0,19) = 0,38 V74 = w4r74 = (2) (0,19) = 0,38 V84 = w4r84 = (2) (0,38) = 0,77 V15 = w5r15 = (2) (0,45) = 0,89 V25 = w5r25 = (2) (0,45) = 0,89 V35 = w5r35 = (2) (0,22) = 0,45 V45 = w5r45 = (2) (0,22) = 0,45 V55 = w5r55 = (2) (0,22) = 0,45 V65 = w5r65 = (2) (0,45) = 0,89 V75 = w5r75 = (2) (0,22) = 0,45 V85 = w5r85 = (2) (0,45) = 0,89 V16 = w6r16 = (3) (0,21) = 0,64 V26 = w6r26 = (3) (0,21) = 0,64 V36 = w6r36 = (3) (0,21) = 0,64 V46 = w6r46 = (3) (0,43) = 1,28 V56 = w6r56 = (3) (0,21) = 0,64 V66 = w6r66 = (3) (0,64) = 1,92 V76 = w6r76 = (3) (0,21) = 0,64 V86 = w6r86 = (3) (0,43) = 1,28
(41)
Maka, hasil dari matriks V adalah sebagai berikut: V = [ ]
c. Menentukan concordance dan discordance set Himpunan concordance dapat dilihat pada Tabel 3.9.
Tabel 3.9. Himpunan concordance
Ckl Himpunan c12 {1,2,4,5,6} c13 {1,2,5,6} c14 {1,2,5} c15 {1,2,4,5,6} c16 {1,2,3,4,5} c17 {1,2,4,5,6} c18 {2,5} c21 {2,3,4,5,6} c23 {1,2,3,5,6} c24 {1,2,3,5} c25 {2,3,4,5,6} c26 {1,2,3,4,5} c27 {1,2,3,4,5,6} c28 {2,3,5} c31 {3,4,6} c32 {1,3,4,6} c34 {1,3,4,5} c35 {2,3,4,5,6} c36 {1,2,3,4} c37 {1,2,3,4,5,6} c38 {3,4}
c41 {2,3,4,6} c42 {1,2,4,6} c43 {1,2,4,5,6} c45 {2,4,5,6} c46 {1,2,3,4} c47 {1,2,4,5,6} c48 {2,3,4,6} c51 {1,3,4,6}
(42)
Tabel 3.9. Himpunan concordance (lanjutan) Ckl Himpunan
c52 {1,3,4,6} c53 {1,2,3,5,6} c54 {1,3,5} c56 {1,2,3,4} c57 {1,2,3,4,5,6} c58 {3}
c61 {3,4,5,6} c62 {1,4,5,6} c63 {1,2,5,6} c64 {1,5,6} c65 {2,4,5,6} c67 {1,2,4,5,6} c68 {5,6} c71 {3,4,6} c72 {1,3,4,6} c73 {1,2,3,5,6} c74 {1,3,5} c75 {2,3,4,5,6} c76 {1,2,3,4} c78 {3}
c81 {1,2,3,4,5,6} c82 {1,2,4,5,6} c83 {1,2,5,6} c84 {1,2,3,5,6} c85 {1,2,4,5,6} c86 {1,2,3,4,5} c87 {1,2,4,5,6}
Tabel 3.9 merupakan hasil perhitungan himpunan concordance. Himpunan
concordance ditentukan dari matriks V sesuai dengan Persamaan (2.3), setelah itu untuk himpunan discordance ditentukan sesuai dengan Persamaan (2.4). Himpunan
discordance dapat dilihat pada tabel 3.10.
Tabel 3.10. Himpunan discordance Dkl Himpunan
d12 {3} d13 {3,4} d14 {3,4,6} d15 {3} d16 {6} d17 {3} d18 {1,3,4,6}
(43)
Tabel 3.10. Himpunan discordance (lanjutan) Dkl Himpunan
d21 {1} d23 {4} d24 {4,6} d25 {1} d26 {6} d27 {} d28 {1,4,6} d31 {1,2,5} d32 {2,5} d34 {2,6} d35 {1} d36 {5,6} d37 {} d38 {1,2,5,6} d41 {1,5} d42 {3,5} d43 {3} d45 {1,3} d46 {5,6} d47 {3} d48 {1,5} d51 {2,5} d52 {2,5} d53 {4} d54 {2,4,6} d56 {5,6} d57 {}
d58 {1,2,4,5,6} d61 {1,2} d62 {2,3} d63 {3,4} d64 {2,3,4} d65 {1,3} d67 {3} d68 {1,2,3,4} d71 {1,2,5} d72 {2,5} d73 {4} d74 {2,4,6} d75 {1} d76 {5,6} d78 {1,2,4,5,6} d81 {}
d82 {3} d83 {3,4}
(44)
Tabel 3.10. Himpunan discordance (lanjutan) Dkl Himpunan
d84 {4} d85 {3} d86 {6} d87 {3}
Tabel 3.10 merupakan hasil perhitungan himpunan discordance. Himpunan
discordance juga ditentukan dari matriks V sesuai dengan Persamaan (2.4).
d. Hitung matriks concordance dan discordance
Untuk menentukan matriks c sesuai Persamaan (2.5) yaitu sebagai berikut:
C12 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C13 = w1 + w2 + w5 + w6 = 3 + 2 + 2 + 3 = 10
C14 = w1 + w2 + w5 = 3 + 2 + 2 = 7
C15 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C16 = w1 + w2 + w3 + w4 + w5 = 3 + 2 + 2 + 2 + 2 = 11 C17 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C18 = w2 + w5 = 2 + 2 = 4
C21 = w2 + w3 + w4 + w5 + w6 = 2 + 2 + 2 + 2 + 3 = 11 C23 = w1 + w2 + w3 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C24 = w1 + w2 + w3 + w5 = 3 + 2 + 2 + 2 = 9
C25 = w2 + w3 + w4 + w5 + w6 = 2 + 2 + 2 + 2 + 3 = 11 C26 = w1 + w2 + w3 + w4 + w5 = 3 + 2 + 2 + 2 + 2 = 11
C27 = w1 + w2 + w3 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 2 + 3 = 14 C28 = w2 + w3 + w5 = 2 + 2 + 2 = 6
C31 = w3 + w4 + w6 = 2 + 2 + 3 = 7
C32 = w1 + w3 + w4 + w6 = 3 + 2 + 2 + 3 = 10 C34 = w1 + w3 + w4 + w5 = 3 + 2 + 2 + 2 = 9
C35 = w2 + w3 + w4 + w5 + w6 = 2 + 2 + 2 + 2 + 3 = 11 C36 = w1 + w2 + w3 + w4 = 3 + 2 + 2 + 2 = 9
(45)
C38 = w3 + w4 = 2 + 2 + 2 = 4
C41 = w2 + w3 + w4 + w6 = 2 + 2 + 2 + 3 = 9 C42 = w1 + w2 + w4 + w6 = 3 + 2 + 2 + 3 = 10
C43 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C45 = w2 + w4 + w5 + w6 = 2 + 2 + 2 + 3 = 9
C46 = w1 + w2 + w3 + w4 = 3 + 2 + 2 + 2 = 9
C47 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C48 = w2 + w3 + w4 + w6 = 2 + 2 + 2 + 3 = 9
C51 = w1 + w3 + w4 + w6 = 3 + 2 + 2 + 3 = 10 C52 = w1 + w3 + w4 + w6 = 3 + 2 + 2 + 3 = 10
C53 = w1 + w2 + w3 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C54 = w1 + w3 + w5 = 3 + 2 + 2 = 7
C56 = w1 + w2 + w3 + w4 = 3 + 2 + 2 + 2 = 9
C57 = w1 + w2 + w3 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 2 + 3 = 14 C58 = w3 = 2
C61 = w3 + w4 + w5 + w6 = 2 + 2 + 2 + 3 = 9 C62 = w1 + w4 + w5 + w6 = 3 + 2 + 2 + 3 = 10 C63 = w1 + w2 + w5 + w6 = 3 + 2 + 2 + 3 = 10 C64 = w1 + w5 + w6 = 3 + 2 + 3 = 8
C65 = w2 + w4 + w5 + w6 = 2 + 2 + 2 + 3 = 9
C67 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C68 = w5 + w6 = 2 + 3 = 5
C71 = w3 + w4 + w6 = 3 + 2 + 2 + 3 = 7 C72 = w1 + w3 + w4 + w6 = 3 + 2 + 2 + 3 = 10
C73 = w1 + w2 + w3 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C74 = w1 + w3 + w5 = 3 + 2 + 2 = 7
C75 = w2 + w3 + w4 + w5 + w6 = 2 + 2 + 2 + 2 + 3 = 11 C76 = w1 + w2 + w3 + w4 = 3 + 2 + 2 + 2 = 9
(46)
C81 = w1 + w2 + w3 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 2 + 3 = 14 C82 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12
C83 = w1 + w2 + w5 + w6 = 3 + 2 + 2 + 3 = 10
C84 = w1 + w2 + w3 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C85 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12 C86 = w1 + w2 + w3 + w4 + w5 = 3 + 2 + 2 + 2 + 2 = 11 C87 = w1 + w2 + w4 + w5 + w6 = 3 + 2 + 2 + 2 + 3 = 12
Maka, hasil dari matriks C adalah sebagai berikut:
C =
[
]
Matriks C merupakan matriks concordance. Matriks C diperoleh dari himpunan
concordance dengan menambah bobot yang termasuk dalam himpunan concordance
sehingga diperoleh nilai-nilai seperti pada Matriks C tersebut. Sedangkan matriks D merupakan matriks discordance, untuk menentukan matriks D diperoleh dari himpunan discordance dengan menggunakan elemen dkl berdasarkan Persamaan (2.6) yaitu sebagai berikut:
d12 =
{| |}
{| | | | | | | | | | | |}
= {| |}
{| | | | | | | | | | | |}
= 0,92
d13 =
{| | | |}
{| | | | | | | | | | | |}
= {| | | |}
{| | | | | | | | | | | |}
= 1
d14 =
{| | | | | |}
{| | | | | | | | | | | |}
= {| | | | | |}
{| | | | | | | | | | | |}
= 1
d15 =
{| |}
(47)
= {| |}
{| | | | | | | | | | | |}
= 0,93
d16 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 1
d17 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 0,92
d18 =
{| | | | | | | |} {| | | | | | | | | | | |}
= {| | | | | | | |} {| | | | | | | | | | | |}
= 1
d21 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 1
d23 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 1
d24 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 1
d25 =
{| |} {| | | | | | | | | | | |}
= { } {| | | | | | | | | | | |}
= 1
d26 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 1
d27 =
{ }
{| | | | | | | | | | | |}
= {| |}
{| | | | | | | | | | | |}
= 0
d28 =
{| | | | | |} {| | | | | | | | | | | |}
= {| | | | | |} {| | | | | | | | | | | |}
= 1
(48)
d31 = {| | | | | |} {| | | | | | | | | | | |}
= {| | | | | |} {| | | | | | | | | | | |}
= 0,83
d32 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 0,82
d34 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 1
d35 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 0,83
d36 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 1
d37 =
{ }
{| | | | | | | | | | | |}
= {| |}
{| | | | | | | | | | | |}
= 0
d38 =
{| | | | | | | |} {| | | | | | | | | | | |}
= {| | | | | | | |} {| | | | | | | | | | | |}
= 1
d41 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 0,83
d42 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 0,58
d43 =
{| |} {| | | | | | | | | | | |}
= {| |} {| | | | | | | | | | | |}
= 0,46
d45 =
{| | | |} {| | | | | | | | | | | |}
= {| | | |} {| | | | | | | | | | | |}
= 0,83
(1)
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xii
Daftar Lampiran xiii
Bab I Pendahuluan
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan / Ruang Lingkup Penelitian 2
1.4. Tujuan Penelitian 3
1.5. Manfaat Penelitian 3
1.6. Metode Penelitian 3
1.7. Sistematika Penulisan 5
Bab II Tinjauan Pustaka
2.1. Bank Syariah 6
2.2. Bank Syariah vs Bank Konvensional 6
2.3. Sistem Pendukung Keputusan 8
2.3.1. Pengertian Sistem Pendukung Keputusan 8
2.3.2. Tujuan Sistem Pendukung Keputusan 9
2.3.2. Kompnen Sistem Pendukung Keputusan 9
2.4. Metode MFEP 10
2.4.1. Langkah-langkah Metode MFEP 10
(2)
2.5. Metode ELECTRE 11
2.5.1. Langkah-langkah Metode ELECTRE 12
2.6. Analisis Algoritma 15
2.6.1. Defenisi Analisis Algoritma 16
2.7. Kompleksitas Algoritma 17
2.7.1. Kompleksitas Waktu Algoritma dan Masalah 19
2.7. Database (Basis Data) 19
Bab III Analisis dan Perancangan Sistem
3.1. Analisis Sistem 20
3.2. Analisis Masalah 20
3.3. Analisis Kebutuhan Sistem 22
3.3.1. Kebutuhan fungsional 22
3.3.2. Kebutuhan non-fungsional 22
3.4. Analisis Kriteria 22
3.4.1. Kriteria jumlah unit counter ATM 23
3.4.2. Kriteria nisbah/bagi hasil 23
3.4.3. Kriteria biaya administrasi 24
3.4.4. Kriteria jumlah setoran minimum 24
3.4.5. Kriteria kemudahan bertransaksi 25
3.4.6. Kriteria pelayanan 26
3.5. Analisis Proses 26
3.5.1. Analisis proses penyelesaian masalah metode MFEP 26 3.5.2. Analisis proses penyelesaian masalah metode ELECTRE 29
3.6. Pemodelan Sistem 45
3.6.1. Use case diagram 45
3.6.2. Activity diagram 46
3.6.3. Sequence diagram 48
3.7. Perancangan Sistem 51
3.7.1. Perancangan algoritma program 51
3.7.2. Alur proses sistem secara umum 51
3.8. Perancangan Antarmuka Sistem 53
3.8.1. Halaman menu utama 53
(3)
3.8.2. Halaman sub-menu Metode MFEP 55
3.8.3. Halaman sub-menu Metode ELECTRE 56
3.8.3. Halaman menu perbandingan 58
3.9. ERD (Entity Relationship Diagram) dan Kamus Data 59
3.9.1. ERD (Entity Relationship Diagram) 59
3.9.2. Kamus Data 59
Bab IV Implementasi dan Pengujian Sistem
4.1. Implementasi Sistem 64
4.1.1. Halaman menu utama 64
4.1.2. Halaman sub-menu Metode MFEP 65
4.1.2. Halaman sub-menu Metode ELECTRE 66
4.2. Pengujian Sistem 67
4.2.1. Analisis Kompleksitas Waktu Metode MFEP 69 4.2.2. Analisis Kompleksitas Waktu Metode ELECTRE 78
Bab V Kesimpulan dan Saran
5.1. Kesimpulan 101
5.2. Saran 101
Daftar Pustaka 102
(4)
DAFTAR TABEL
Halaman Tabel 2.1. Perbedaan Bank Syariah dengan Bank Konvensional 7 Tabel 2.2. Perbedaan Bunga Bank dengan “Bagi Hasil” 7
Tabel 3.1. Kriteria jumlah unit counter ATM 23
Tabel 3.2. Kriteria nisbah/bagi hasil 23
Tabel 3.3. Kriteria biaya administrasi 24
Tabel 3.4. Kriteria jumlah setoran minimum 25
Tabel 3.5. Kriteria kemudahan bertransaksi 25
Tabel 3.6. Kriteria pelayanan 26
Tabel 3.7. Nilai bobot faktor 27
Tabel 3.8. Nilai bobot untuk setiap alternatif pada setiap kriteria 27
Tabel 3.9. Himpunan concordance 32
Tabel 3.10. Himpunan discordance 33
Tabel 3.11. Keterangan rancangan halaman menu utama 54 Tabel 3.12. Keterangan rancangan halaman sub-menu Metode MFEP 55 Tabel 3.13. Keterangan rancangan halaman sub-menu Metode ELECTRE 56 Tabel 3.14. Keterangan rancangan halaman menu perbandingan 58
Tabel 3.15. Tabel Alternatif MFEP 60
Tabel 3.16. Tabel Alternatif ELECTRE 61
Tabel 3.17. Tabel Hasil MFEP 62
Tabel 3.18. Tabel Hasil ELECTRE 63
Tabel 3.18. Tabel Waktu 63
Tabel 4.1. Data pengujian waktu perhitungan kedua metode 68 Tabel 4.2. Analisis Kompleksitas Waktu Metode MFEP 64 Tabel 4.3. Analisis Kompleksitas Waktu Metode ELECTRE 78
(5)
DAFTAR GAMBAR
Halaman Gambar 2.1. Komponen Utama Sistem Pendukung Keputusan 10
Gambar 2.2. Grafik Fungsi f(n) = θ(g(n)) 18
Gambar 3.1. Diagram Ishikawa untuk analisis masalah 21
Gambar 3.2. Use Case Diagram 45
Gambar 3.3. Activity diagram untuk Metode MFEP 46
Gambar 3.4. Activity diagram untuk Metode ELECTRE 47
Gambar 3.5. Activity diagram perbandingan 48
Gambar 3.6. Sequence diagram Metode MFEP 49
Gambar 3.7. Sequence diagram Metode ELECTRE 50
Gambar 3.8. Sequence Diagram perbandingan 51
Gambar 3.9. Flowchart Metode MFEP 52
Gambar 3.10. Flowchart Metode ELECTRE 53
Gambar 3.11. Rancangan halaman menu utama 54
Gambar 3.12. Rancangan halaman sub-menu Metode MFEP 55 Gambar 3.13. Rancangan halaman sub-menu Metode ELECTRE 56 Gambar 3.14. Rancangan halaman menu perbandingan 58
Gambar 3.15. ERD (Entity Relationship Diagram) 59
Gambar 4.1. Tampilan halaman menu utama 64
Gambar 4.2. Tampilan hasil perhitungan menggunakan metode MFEP 65 Gambar 4.3. Tampilan hasil perhitungan menggunakan metode ELECTRE 66
Gambar 4.4. Tampilan menu perbandingan 67
Gambar 4.5. Grafik data pengujian waktu perhitungan kedua metode 69
(6)
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
B. Curriculum Vitae B-1