Perbandingan Metode Profile Matching dan Topsis Dalam Sistem Pendukung Keputusan Untuk Menentukan Tempat Gym Terbaik di Kota Medan

(1)

Form Mainform

/*

* Created by SharpDevelop. * User: Roni Anggara

* Date: 5/17/2016 * Time: 8:52 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

using System;

using System.Collections.Generic; using System.Drawing;

using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data;

namespace ronianggara {

/// <summary>

/// Description of MainForm. /// </summary>

public partial class MainForm : Form {

MySqlConnection c

= new MySqlConnection("Server=localhost;Database=gym;Uid=root;"); public MainForm()

{ //

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

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

call. // }

void BAYESToolStripMenuItemClick(object sender, EventArgs e) {

Form pindah = new ProfileMatching(); pindah.ShowDialog();

}


(2)

}

void MainFormLoad(object sender, EventArgs e) {

segar(); }

public void segar() {

c.Open();

dataGridView1.Columns.Clear(); DataTable dt = new DataTable();

MySqlDataAdapter da = new MySqlDataAdapter("select * from data", c);

da.Fill(dt);

dataGridView1.DataSource = dt.DefaultView; dataGridView1.Columns[0].Width = 50;

dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[1].Width = 150;

dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

dataGridView1.Columns[2].Width = 50;

dataGridView1.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[3].Width = 40;

dataGridView1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[4].Width = 70;

dataGridView1.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

dataGridView1.Columns[5].Width = 60;

dataGridView1.Columns[5].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

DataGridViewButtonColumn tambah_jumlah = new DataGridViewButtonColumn();

tambah_jumlah.Text = "Edit Data";

tambah_jumlah.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(tambah_jumlah);

DataGridViewButtonColumn tambah_jumlahh = new DataGridViewButtonColumn();

tambah_jumlahh.Text = "Delete Data";

tambah_jumlahh.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(tambah_jumlahh);

c.Close();

}


(3)

}

void Button3Click(object sender, EventArgs e) {

Form pindah = new editdata(); pindah.ShowDialog();

}

void PictureBox1Click(object sender, EventArgs e) {

}

void Button1Click(object sender, EventArgs e) {

Form pindah = new inputdata(); pindah.ShowDialog();

segar(); }

void Button2Click(object sender, EventArgs e) {

Form pindah = new deletedata(); pindah.ShowDialog();

}

void PerbandinganToolStripMenuItemClick(object sender, EventArgs e) {

Form pindah = new Perbandingan();

pindah.ShowDialog(); }

void DataGridView1CellContentClick(object sender, DataGridViewCellEve ntArgs e)

{

c.Open();

int col = e.ColumnIndex, row = e.RowIndex;

DialogResult dialogResult = MessageBox.Show("Sure", "Some Title", MessageBoxButtons.YesNo);

if(col.Equals(6)) {

if(dialogResult == DialogResult.Yes) {

MySqlCommand cmd = new MySqlCommand("update data set nama_gym ='" + dataGridView1[1, row].Value.ToString() + "', fasilitas =

'" + dataGridView1[2, row].Value.ToString() + "', harga

='" + dataGridView1[3, row].Value.ToString() + "', kenyamanan ='" + dataGridView1[4, row].Value.ToString() + "',

keamanan='" + dataGridView1[5, row].Value.ToString() + "'where no ='"+dataGridView1[0, row].Value.ToString()+"'", c);

cmd.ExecuteNonQuery();


(4)

{

//do something else }

}

else if(col.Equals(7)) {

if(dialogResult == DialogResult.Yes) {

MySqlCommand cmd = new MySqlCommand("delete from data where no ='"+dataGridView1[0, row].Value.ToString()+"'", c);

cmd.ExecuteNonQuery(); }

else if (dialogResult == DialogResult.No) {

//do something else }

}

c.Close();

segar(); }

void MenuStrip1ItemClicked(object sender, ToolStripItemClickedEventAr gs e)

{ }

void ContextMenuStrip1Opening(object sender, System.ComponentModel.Ca ncelEventArgs e) { } } } Form Inputdata /*

* Created by SharpDevelop. * User: Roni Anggara

* Date: 5/21/2016 * Time: 8:33 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

using System;


(5)

using MySql.Data.MySqlClient; using System.Data;

namespace ronianggara {

/// <summary>

/// Description of inputdata. /// </summary>

public partial class inputdata : Form {

MySqlConnection c

= new MySqlConnection("Server=localhost;Database=gym;Uid=root;"); public inputdata()

{ //

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

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

call.

// }

void Button1Click(object sender, EventArgs e) {

if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "" || textBox6.Text == "") {

MessageBox.Show("ada data yang belum terisi"); }

else {

c.Open();

MySqlCommand cmd = new MySqlCommand("insert into data

values('"+textBox1.Text+"','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "')", c); cmd.ExecuteNonQuery();

MessageBox.Show("data berhasil disimpan"); c.Close();

textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = "";

} } } }


(6)

* User: Roni Anggara * Date: 11/3/2016 * Time: 7:53 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

namespace ronianggara {

partial class ProfileMatching {

/// <summary>

/// Designer variable used to keep track of non-visual components. /// </summary>

private System.ComponentModel.IContainer components = null;

/// <summary>

/// Disposes resources used by the form. /// </summary>

/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

protected override void Dispose(bool disposing) {

if (disposing) {

if (components != null) { components.Dispose(); }

}

base.Dispose(disposing); }

/// <summary>

/// This method is required for Windows Forms designer support.

/// Do not change the method contents inside the source code editor. The Forms designer might

/// not be able to load this method if it was changed manually. /// </summary>

private void InitializeComponent() {

this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.textBox2 = new System.Windows.Forms.TextBox(); this.textBox3 = new System.Windows.Forms.TextBox(); this.textBox4 = new System.Windows.Forms.TextBox(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.textBox5 = new System.Windows.Forms.TextBox();


(7)

this.label8 = new System.Windows.Forms.Label();

this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.button1 = new System.Windows.Forms.Button();

this.dataGridView2 = new System.Windows.Forms.DataGridView(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)). BeginInit();

((System.ComponentModel.ISupportInitialize)(this.dataGridView2)). BeginInit();

this.SuspendLayout(); //

// label1 //

this.label1.Location = new System.Drawing.Point(36, 89); this.label1.Name = "label1";

this.label1.Size = new System.Drawing.Size(72, 23); this.label1.TabIndex = 0;

this.label1.Text = "fasilitas"; //

// textBox1 //

this.textBox1.Location = new System.Drawing.Point(164, 83); this.textBox1.Name = "textBox1";

this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 1;

this.textBox1.Text = "8"; //

// label2 //

this.label2.Location = new System.Drawing.Point(36, 112); this.label2.Name = "label2";

this.label2.Size = new System.Drawing.Size(72, 23); this.label2.TabIndex = 2;

this.label2.Text = "harga"; //

// label3 //

this.label3.Location = new System.Drawing.Point(36, 135); this.label3.Name = "label3";

this.label3.Size = new System.Drawing.Size(72, 23); this.label3.TabIndex = 3;

this.label3.Text = "kenyamanan"; //

// label4 //

this.label4.Location = new System.Drawing.Point(36, 158); this.label4.Name = "label4";

this.label4.Size = new System.Drawing.Size(72, 23); this.label4.TabIndex = 4;

this.label4.Text = "keamanan"; //

// textBox2 //

this.textBox2.Location = new System.Drawing.Point(164, 109); this.textBox2.Name = "textBox2";


(8)

// textBox3 //

this.textBox3.Location = new System.Drawing.Point(164, 135); this.textBox3.Name = "textBox3";

this.textBox3.Size = new System.Drawing.Size(100, 20); this.textBox3.TabIndex = 6;

this.textBox3.Text = "7"; //

// textBox4 //

this.textBox4.Location = new System.Drawing.Point(164, 161); this.textBox4.Name = "textBox4";

this.textBox4.Size = new System.Drawing.Size(100, 20); this.textBox4.TabIndex = 7;

this.textBox4.Text = "6"; //

// label5 //

this.label5.Location = new System.Drawing.Point(36, 267); this.label5.Name = "label5";

this.label5.Size = new System.Drawing.Size(100, 23); this.label5.TabIndex = 8;

this.label5.Text = "core factor"; //

// label6 //

this.label6.Location = new System.Drawing.Point(36, 304); this.label6.Name = "label6";

this.label6.Size = new System.Drawing.Size(100, 23); this.label6.TabIndex = 9;

this.label6.Text = "secondary factor"; //

// textBox5 //

this.textBox5.Location = new System.Drawing.Point(164, 270); this.textBox5.Name = "textBox5";

this.textBox5.Size = new System.Drawing.Size(100, 20); this.textBox5.TabIndex = 10;

this.textBox5.Text = "60"; //

// textBox6 //

this.textBox6.Location = new System.Drawing.Point(164, 307); this.textBox6.Name = "textBox6";

this.textBox6.Size = new System.Drawing.Size(100, 20); this.textBox6.TabIndex = 11;

this.textBox6.Text = "40"; //

// label7 //


(9)

this.label7.Size = new System.Drawing.Size(100, 23); this.label7.TabIndex = 12;

this.label7.Text = "Nilai Ideal"; //

// label8 //

this.label8.Location = new System.Drawing.Point(82, 227); this.label8.Name = "label8";

this.label8.Size = new System.Drawing.Size(100, 23); this.label8.TabIndex = 13;

this.label8.Text = "Persentase"; //

// dataGridView1 //

this.dataGridView1.ColumnHeadersHeightSizeMode =

System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;

this.dataGridView1.Location = new System.Drawing.Point(287, 12); this.dataGridView1.Name = "dataGridView1";

this.dataGridView1.Size = new System.Drawing.Size(439, 198); this.dataGridView1.TabIndex = 14;

//

// button1 //

this.button1.Location = new System.Drawing.Point(426, 244); this.button1.Name = "button1";

this.button1.Size = new System.Drawing.Size(120, 46); this.button1.TabIndex = 15;

this.button1.Text = "hitung";

this.button1.UseVisualStyleBackColor = true;

this.button1.Click += new System.EventHandler(this.Button1Click); //

// dataGridView2 //

this.dataGridView2.AllowUserToAddRows = false; this.dataGridView2.AllowUserToDeleteRows = false; this.dataGridView2.ColumnHeadersHeightSizeMode =

System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView2.Location = new System.Drawing.Point(12, 12); this.dataGridView2.Name = "dataGridView2";

this.dataGridView2.Size = new System.Drawing.Size(10, 10); this.dataGridView2.TabIndex = 16;

this.dataGridView2.Visible = false; //

// ProfileMatching //

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(754, 336);

this.Controls.Add(this.dataGridView2); this.Controls.Add(this.button1);

this.Controls.Add(this.dataGridView1); this.Controls.Add(this.label8);

this.Controls.Add(this.label7); this.Controls.Add(this.textBox6);


(10)

this.Controls.Add(this.textBox3); this.Controls.Add(this.textBox2); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Name = "ProfileMatching"; this.Text = "ProfileMatching";

((System.ComponentModel.ISupportInitialize)(this.dataGridView1)). EndInit();

((System.ComponentModel.ISupportInitialize)(this.dataGridView2)). EndInit();

this.ResumeLayout(false); this.PerformLayout(); }

private System.Windows.Forms.DataGridView dataGridView2; private System.Windows.Forms.Button button1;

private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.Label label8;

private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox textBox6; private System.Windows.Forms.TextBox textBox5; private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label5; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label1; }

}

Form TOPSIS

/*

* Created by SharpDevelop. * User: Roni Anggara

* Date: 5/19/2016 * Time: 8:52 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.


(11)

using System.Windows.Forms; using System.ComponentModel; using System.Data;

using MySql.Data.MySqlClient; namespace ronianggara

{

/// <summary>

/// Description of TOPSIS. /// </summary>

public partial class TOPSIS : Form {

string[] nama;

double[] fasilitas,harga,kenyamanan,keamanan; MySqlConnection c

= new MySqlConnection("Server=localhost;Database=gym;Uid=root;"); public TOPSIS()

{ //

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

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

// }

void Button1Click(object sender, EventArgs e) {

dataGridView1.Columns.Clear(); c.Open();

DataTable dt = new DataTable();

MySqlDataAdapter da = new MySqlDataAdapter("select nama_gym,fasilitas,harga,kenyamanan,keamanan from data", c); da.Fill(dt);

dataGridView2.Columns.Clear();

dataGridView2.DataSource = dt.DefaultView; c.Close();

nama = new string[dataGridView2.Rows.Count]; fasilitas = new double[dataGridView2.Rows.Count]; harga = new double[dataGridView2.Rows.Count]; kenyamanan = new double[dataGridView2.Rows.Count]; keamanan = new double[dataGridView2.Rows.Count]; for (int i = 0; i < dataGridView2.Rows.Count; i++) {

nama[i] = dataGridView2[0, i].Value.ToString(); fasilitas[i] =

Convert.ToDouble(dataGridView2[1, i].Value.ToString()); harga[i] =

Convert.ToDouble(dataGridView2[2, i].Value.ToString()); kenyamanan[i] =


(12)

//membangun matriks

double[,] x = new double[nama.Length,4]; for (int i = 0; i < nama.Length; i++) {

x[i,0] = fasilitas[i]; x[i,1] = harga[i]; x[i,2] = kenyamanan[i]; x[i,3] = keamanan[i];

}

//normalisasi matriks

double[,] r = new double[nama.Length,4]; for (int j = 0; j < 4; j++)

{

double sigma=0;

for (int i = 0; i < nama.Length; i++) {

sigma = sigma + Math.Pow(x[i,j],2); }

for (int i = 0; i < nama.Length; i++) {

r[i,j] = Math.Round(x[i,j]/Math.Sqrt(sigma),3); }

}

//normalisasi bobot

double[] bobot = {2,3,2,1};

for (int i = 0; i < nama.Length; i++) {

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

r[i,j] = Math.Round(r[i,j] * bobot[j],3); }

}

//v- dan v+

double[] vmin = new double[4], vmax = new double[4]; for (int j = 0; j < 4; j++)

{

vmin[j] = r[0,j]; vmax[j] = r[0,j];

for (int i = 1; i < nama.Length; i++) {

if (vmin[j]>r[i,j]) vmin[j] = r[i,j]; if (vmax[j]<r[i,j])


(13)

}

//d- dan d+

double[] dmin = new double[nama.Length], dmax = new double[nama.Length];

for (int i = 0; i < nama.Length; i++) {

double totaldmax=0, totaldmin=0; for (int j = 0; j < 4; j++) {

totaldmax = totaldmax + Math.Pow(vmax[j]-r[i,j],2); totaldmin = totaldmin + Math.Pow(r[i,j]-vmin[j],2); }

dmax[i] = Math.Round(Math.Sqrt(totaldmax),3); dmin[i] = Math.Round(Math.Sqrt(totaldmin),3); }

//RPI

double[] rpi = new double[nama.Length]; for (int i = 0; i < nama.Length; i++) {

rpi[i] = Math.Round(dmin[i]/(dmax[i]+dmin[i]),3); }

dataGridView1.ColumnCount = 4;

dataGridView1.Columns[0].Name = "Nama"; dataGridView1.Columns[1].Name = "d+"; dataGridView1.Columns[2].Name = "d-"; dataGridView1.Columns[3].Name = "RPI";

for (int i = 0; i < nama.Length; i++) {

dataGridView1.Rows.Add(nama[i],dmax[i],dmin[i],rpi[i]); }

dataGridView1.Sort(dataGridView1.Columns[3], ListSortDirection.De scending); } } } Form Perbandingan /*

* Created by SharpDevelop. * User: Roni Anggara

* Date: 10/20/2016 * Time: 8:38 PM *

* To change this template use Tools | Options | Coding | Edit Standard Headers.

*/

using System;

using System.Drawing;


(14)

namespace ronianggara {

/// <summary>

/// Description of Perbandingan. /// </summary>

public partial class Perbandingan : Form {

string[] nama;

double[] fasilitas,harga,kenyamanan,keamanan; MySqlConnection c

= new MySqlConnection("Server=localhost;Database=gym;Uid=root;"); public Perbandingan()

{ //

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

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

// }

public double bobota(double n) {

if (n == 0) return 5; else if(n == 1) return 4.5; else if(n == -1) return 4; else if(n == 2) return 3.5; else if(n == -2) return 3; else if(n == 3) return 2.5; else if(n == -3) return 2; else if(n == 4) return 1.5; else

return 1; }

void Button1Click(object sender, EventArgs e) {


(15)

dataGridView1.Columns.Clear(); c.Open();

DataTable dt = new DataTable();

MySqlDataAdapter da = new MySqlDataAdapter("select nama_gym,fasilitas,harga,kenyamanan,keamanan from data", c); da.Fill(dt);

dataGridView3.Columns.Clear();

dataGridView3.DataSource = dt.DefaultView; c.Close();

nama = new string[banyakdata]; fasilitas = new double[banyakdata]; harga = new double[banyakdata]; kenyamanan = new double[banyakdata]; keamanan = new double[banyakdata]; for (int i = 0; i < banyakdata; i++) {

nama[i] = dataGridView3[0, i].Value.ToString(); fasilitas[i] =

Convert.ToDouble(dataGridView3[1, i].Value.ToString()); harga[i] =

Convert.ToDouble(dataGridView3[2, i].Value.ToString()); kenyamanan[i] =

Convert.ToDouble(dataGridView3[3, i].Value.ToString()); keamanan[i] =

Convert.ToDouble(dataGridView3[4, i].Value.ToString()); }

watch1.Restart(); dataGridView1.ColumnCount = 2;

dataGridView1.Columns[0].Name = "Nama";

dataGridView1.Columns[1].Name = "Nilai Akhir";

//gap

for (int i = 0; i < nama.Length; i++) {

fasilitas[i] = fasilitas[i] - 8; harga[i] = harga[i] - 7;

kenyamanan[i] = kenyamanan[i] - 7; keamanan[i] = keamanan[i] - 6; }

//bobot

for (int i = 0; i < nama.Length; i++) {

fasilitas[i] = bobota(fasilitas[i]); harga[i] = bobota(harga[i]);

kenyamanan[i] = bobota(kenyamanan[i]); keamanan[i] = bobota(keamanan[i]); }

//nilai total

double[] na = new double[nama.Length], ni = new double[nama.Length];

for (int i = 0; i < nama.Length; i++) {


(16)

//nilai akhir

double[] nt = new double[nama.Length]; for (int i = 0; i < nama.Length; i++) {

nt[i] = 0.6*na[i] + 0.4*ni[i]; }

for (int i = 0; i < nama.Length; i++) {

dataGridView1.Rows.Add(nama[i],nt[i]); }

dataGridView1.Sort(dataGridView1.Columns[1], ListSortDirection.De scending);

watch1.Stop(); textBox3.Text =

Math.Round(Convert.ToDecimal(watch1.Elapsed.TotalMilliseconds),4).ToString();

dataGridView2.Columns.Clear(); nama = new string[banyakdata]; fasilitas = new double[banyakdata]; harga = new double[banyakdata]; kenyamanan = new double[banyakdata]; keamanan = new double[banyakdata]; for (int i = 0; i < banyakdata; i++) {

nama[i] = dataGridView3[0, i].Value.ToString(); fasilitas[i] =

Convert.ToDouble(dataGridView3[1, i].Value.ToString()); harga[i] =

Convert.ToDouble(dataGridView3[2, i].Value.ToString()); kenyamanan[i] =

Convert.ToDouble(dataGridView3[3, i].Value.ToString()); keamanan[i] =

Convert.ToDouble(dataGridView3[4, i].Value.ToString()); }

watch1.Restart();

//membangun matriks

double[,] x = new double[nama.Length,4]; for (int i = 0; i < nama.Length; i++) {

x[i,0] = fasilitas[i]; x[i,1] = harga[i]; x[i,2] = kenyamanan[i]; x[i,3] = keamanan[i];

}


(17)

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

double sigma=0;

for (int i = 0; i < nama.Length; i++) {

sigma = sigma + Math.Pow(x[i,j],2); }

for (int i = 0; i < nama.Length; i++) {

r[i,j] = Math.Round(x[i,j]/Math.Sqrt(sigma),3); }

}

//normalisasi bobot

double[] bobot = {2,3,2,1};

for (int i = 0; i < nama.Length; i++) {

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

r[i,j] = Math.Round(r[i,j] * bobot[j],3); }

}

//v- dan v+

double[] vmin = new double[4], vmax = new double[4]; for (int j = 0; j < 4; j++)

{

vmin[j] = r[0,j]; vmax[j] = r[0,j];

for (int i = 1; i < nama.Length; i++) {

if (vmin[j]>r[i,j]) vmin[j] = r[i,j]; if (vmax[j]<r[i,j]) vmax[j] = r[i,j]; }

}

//d- dan d+

double[] dmin = new double[nama.Length], dmax = new double[nama.Length];

for (int i = 0; i < nama.Length; i++) {

double totaldmax=0, totaldmin=0; for (int j = 0; j < 4; j++) {

totaldmax = totaldmax + Math.Pow(vmax[j]-r[i,j],2); totaldmin = totaldmin + Math.Pow(r[i,j]-vmin[j],2); }

dmax[i] = Math.Round(Math.Sqrt(totaldmax),3); dmin[i] = Math.Round(Math.Sqrt(totaldmin),3); }

//RPI


(18)

}

dataGridView2.ColumnCount = 2;

dataGridView2.Columns[0].Name = "Nama"; dataGridView2.Columns[1].Name = "RPI";

for (int i = 0; i < nama.Length; i++) {

dataGridView2.Rows.Add(nama[i],rpi[i]); }

dataGridView2.Sort(dataGridView2.Columns[1], ListSortDirection.De scending);

watch1.Stop(); textBox2.Text =

Math.Round(Convert.ToDecimal(watch1.Elapsed.TotalMilliseconds),4).ToString(); }

} }


(19)

CURRICULUM VITAE

Data Pribadi

Nama : Roni Anggara Sipahutar Jenis Kelamin : Laki-laki

Tempat,Tanggal Lahir : Medan, 14 September 1993 Kewarganegaraan : Indonesia

Agama : Islam

Alamat Sekarang : Jl. K.S.Ketaren g.maninjau no.11a

Telp/Hp : 082369063906

Email : roni.anggara35@yahoo.com

Riwayat Pendidikan

2011 – 2015 : S1 Ilmu Komputer Universitas Sumatera Utara 2008 – 2011 : SMA Negeri 7 Medan

2005 – 2008 : SMP Negri 13 Medan 1999 – 2005 : SD Swasta Budi Satria

Keahlian

Bahasa : Indonesia, Inggris Bahasa Pemrograman : C#, Jaringan

Database : MySql

Pengalaman Organisasi

2010 – 2011 : Anggota Pramuka SMA N 7 Medan 2011 – 2013 : UKMI AL-QUARISMI

2012 – 2015 : Anggota IMILKOM

2014 – 2015 : Sekretaris Jendral Sapma PP Sub-komisariat FASILKOM-TI

Pengalaman Kepanitiaan

2011 : Panitia Dies Natalis Ilmu Komputer ke-10

2012 : Ketua Panitia Acara Ilmu Komputer Goes to School 2013 : Panitia Pelatihan Dasar Organisasi IMILKOM 2012 2013 : Anggota HUMAS Porseni IMILKOM

2013 : Koordinator Dana PMB Ilmu Komputer USU

2013 : Koordinator Keamanan PMB Fakultas FASILKOM-TI USU 2013 : Panitia Pemilihan Umum Ketua IMILKOM

2014 : Koordinator Keamanan PMB Fakultas FASILKOM-TI USU 2014 : Panitia SENARAI 2014


(20)

DAFTAR PUSTAKA

Kusumasari, D.W. 2013.Analisis Pengaruh Motivasi, Lokasi, Dan Kualitas Layanan Terhadap Keputusan Pemilihan Fitness CenterSebagai Tempat Melatih Kebugaran Tubuh.Skripsi. UNIVERSITAS DIPONEGORO :SEMARANG.

Power. J, Daniel. 2009. Decision Support Basics. Bussines Expert Press: New York. Harahap.F.K. 2013.Aplikasi Metode Topsis Dalam Menentukan Pembangunan

Daerah Kabupaten/Kota Di Provinsi Sumatera Utara.Skripsi. UNIVERSITAS SUMATERA UTARA: MEDAN.

Islami, D. 2015. Analisis Kelayakan Penerima Kredit Pemilikan Rumah Dengan Metode Profile Matching Dan Promethee.Skripsi.UNIVERSITAS SUMATERA UTARA: MEDAN.

Kusumadewi. 2006. Fuzzy Multi-Atribute Decision Making (MADM). Yogyakarta: Graha Ilmu.

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

Susanti, N.,WIniarti, S. 2013. Sistem Penduung Keputusan Penentuan Kualitas Kayu Untuk Kerajinan Meubel. Jurnal Sarjana Teknik Informatika Volume 1 Nomor 1, Juni 2013

Napitu, V.S. 2014. Analisis Pemilihan Supplier Dengan Metode Analtytical Hierarchy Process (AHP) Dan Technique For Order Preference By Similarity To Ideal Solution (TOPSIS) Di PT. INDO CAFCO.Skripsi.UNIVERSITAS SUMATERA UTARA: MEDAN

Ilyas, M.I.Z. 2016. Sistem Pendukung Keputusan Untuk Meranking Lapangan Futsal Terbaik Di Kota MEDAN Dengan Menguunakan Metode AHP dan


(21)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Masalah

Dalam memilih tempat gym terbaik selama ini hanya dengan cara manual yaitu langsung ke lokasi tempat gym yang diinginkan. Seiring dengan perkembangan teknologi, maka dirancang suatu aplikasi yang memudahkan calon para pemain dalam memilih tempat gym agar hasilnya sesuai dengan yang diharapkan.

Pada gambar 3.1.1.merupakan diagram Ishikawa yang dapat digunakan untuk menganalisis masalah. Bagian kepada atau segiempat yang berada di sebelah kanan merupakan masalah.Sementara pada bagian tulang merupakan penyebab.

Gambar 3.1.1. Diagram Ishikawa untuk analisis masalah Menghitung

running time Menggunakan sistem

Menghitung kriteria dan alternatif

METHOD

Merankingtempat gym terbaik

MACHINE Data kriteria

Data alternatif

MATERIAL

Ranking tempat gym terbaik

Metode TOPSIS Metode Profile Matching


(22)

3.2. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem merupakan salah satu tahap dimana pada tahap ini akan dibahas tentang kebutuhan dalam membangun sebuah sistem. Analisis kebutuhan sistem dapat dikelompokkan menjadi dua bagian, yaitu kebutuhan fungsional dan kebutuhan non-fungsional.

3.2.1. Kebutuhan fungsional

Kebutuhan fungsional merupakan kebutuhan yang harus diberikan oleh sistem. Hal yang menjadi kebutuhan fungsional ialah input, output, process, yaitu antara lain adalah:

1. Sistem harus mampu memberi solusi terhadap sistem pendukung keputusan dalam memilih tempat gym terbaik di kota Medan dengan mengimplementasikan metode

Profile Matching dan TOPSIS.

2. Sistem dapat menarik kesimpulan dengan output tempat gym yang terbaik.

3. Sistem dapat mengubah kesalahan dalam penginputan dengan menambahkan

button edit dan simpan pada saat penginputan data.

4. Sistem akan menampilkan running time (waktu akses dalam millisecond).

3.2.2. Kebutuhan non-fungsional

Kebutuhan non-fungsional adalah kebutuhan yang diberikan oleh sistem yang bertujuan untuk mendukung kebutuhan fungsional yang sudah ditentukan. Kebutuhan non-fungsional dari sistem adalah:

1. Hasil kuisioner

Dalam menentukan nilai perbandingan kriteria global dan alternatif digunakan hasil kuisioner.

2. Mudah digunakan (user friendly)

Sistem yang akan dibangun harus user friendly, artinya bahwa sistem mudah digunakan oleh user dengan tampilan (interface) yang sederhana dan mudah dimengerti.


(23)

Sistem yang akan dibangun diharapkan mampu menjadi referensi bagi user untuk memilih tempat gym terbaik yang ada di kota Medan.

3.3. Analisis Proses

Analisis sistem dilakukan untuk mengidentifikasi masalah dan kebutuhan dari sistem yang akan dibangun, sebelum membangun sistem terlebih dahulu dilakukan beberapa tahap analisis untuk mengidentifikasi segala kebutuhan yang akan diterapkan dalam sistem agar tidak terjadi kesalahan dan sistem yang dibangun akan optimal.

Sistem yang akan dibangun adalah sistem dengan nama sistem pendukung keputusan pemilihan gym terbaik di kota Medan. Sistem ini menggunakan dua metode yaitu metode Profile Matching dan Profile TOPSIS. Kedua metode tersebut akan dibandingkan dengan menggunakan 10 sampel ,4 kriteria dan running time process. Sistem ini nantinya akan memberikan alternatif pemilihan tempat gym terbaik di kota Medan.Pemilihan ini berdasarkan kriteria yang telah ditentukan yaitu harga, fasilitas, kenyamanan dan keamanan.

3.4. Pemodelan Sistem

Pemodelan sistem yang dirancang bertujuan untuk menggambarkan kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan sistem dilakukan dengan membuat use case diagram, activity diagram dan sequence diagram.

3.4.1. Use case diagram

Diagram use case adalah fungsionalitas dari suatu sistem, sehingga pengguna sistem paham dan mengerti mengenai kegunaan sistem yang akan dibangun. Use caseberperan menggambarkan interaksi antar komponen-komponen yang berperan dalam sistem yang akan dirancang. Actor dalam use case merupakan user. Use casediagram dapat dilihat pada gambar 3.4.1. berikut ini:


(24)

Gambar 3.4.1.Use Case Diagram

3.4.2. Activity diagram

Diagram aktivitas merupakan diagram perilaku yang menunjukkan aliran kontrol dengan penekanan pada urutan dan kondisi arus. Tindakan dikoordinasikan oleh model kegiatan dapat dimulai karena tindakan lain selesai mengeksekusi. Untuk lebih jelasnya, dapat dilihat pada gambar 3.4.2.activity diagram mengolah data, pada gambar 3.4.3.activity diagram untuk meranking data. Dan pada gambar 3.4.4.untukactivity diagram formperbandingan.


(25)

(26)

(27)

Gambar 3.4.4.Activity diagram Form Perbandingan

3.4.3. Sequence diagram

Sequence diagram yaitujenis yang paling umum dari diagram interaksi, yang berfokus pada pertukaran pesan antara sejumlah jalur pesan. Sequence diagram menggambarkan interaksi dengan berfokus pada urutan pesan yang dipertukarkan, bersama dengan spesifikasinya. Pada gambar 3.4.5.adalahsequence diagram mengolah data, pada gambar 3.4.6.adalahsequence diagrammeranking data dan pada gambar 3.4.7. adalahsequence diagram formperbandingan.


(28)

Gambar 3.4.5.Sequencediagram mengolah data


(29)

Gambar 3.4.7.Sequence diagram formPerbandingan

3.5. Perancangan Sistem

3.5.1. Pembuatan algoritma program

Pembuatan algoritma program yaitu proses penerjemahan langkah-langkah metode

Profile Matching dan metode TOPSIS ke dalam sebuah bahasa pemrograman. Tahapan yang dilalui dalam pembuatan algoritma program,yaitu:

1. Pembuatan alur proses sistem secara umum.

2. Pembuatan alur proses sistem pendukung keputusan menggunakan metode Profile Matching dan TOPSIS ke dalam bahasa pemrogram C Sharp (C#).

3.5.2 Alur proses sistem secara umum

Alur proses dalam penentuan tempat gym terbaik di kota Medan dengan metode Profile Matching dan TOPSIS divisualisasikan dengan flowchart seperti pada gambar


(30)

3.5.1. flowchart metode Profile Matching dan gambar 3.5.2. flowchart metode

TOPSIS berikut ini:

Gambar 3.5.1.flowchart metode Profile Matching

Start

Masukkan kriteria

Menentukan kriteria Dengan bobot kriteria

Menentukan Core dan secondary

factor Menentukan Gap kopetensi Menggabungkan Sub criteria dengan

Secondary factor

Melakukan perhitungan Hasil ranking


(31)

Gambar 3.5.1.Flowchart metode Topsis

Start

Input kriteria Membangun matriks

keputusan Normalisasi

matriks Matriks ternormalisasi Matriks ternormalisasi

terbobot Matriks Solusi ideal +- Menghitung separasi

matriks Menghitung Solusi ideal +-

Menghitung alternatif


(32)

3.6. Perancangan Antarmuka Sistem (Interface) 3.6.1. Halaman menu utama

Tampilan utama yang muncul pertama kali saat sistem dijalankan.Halaman utama ini terdiri dari tiga menu, yaitu menu Data, menu Metode dan menu Perbandingan.Tampilan rancangan halaman utama dapat dilihat pada gambar 3.6.1.berikut ini:

Gambar 3.6.1.Rancangan halaman menu utama

Tabel 3.6.1. Keterangan bagian-bagian halaman menu utama

Keterangan:

No Jenis Objek Keterangan

1 Form Nama yang dibuat pada aplikasi yang akan dirancang 2 Menustrip Menampilkan menu pilihan

3 Menustrip Menampilkan menu pilihan 4 Picturebox Menampilkan logo USU 5 Datagridview Menampilkan table

6 Button Berfungsi untuk menginputkan data (5)

Logo usu(4)

Metode(2) Perbandingan(

Input data(6) Judul skripsi(1)


(33)

3.6.2. Halaman form input data

Gambar 3.6.2. Rancangan halaman form input data

Tabel 3.6.2. Keterangan bagian-bagian halaman form input data

Keterangan:

No Jenis Objek Keterangan

1 Form Berisi nama form yang dibuat 2 Label Nomor data responden

3 Label Nama gym

4 Label Fasilitas data responden 5 Label Harga data responden 6 Label Kenyamanan data responden 7 Label Keamanan data responden 8 Textbox Berisi nomor data responden 9 Textbox Berisi nama nama tempat gym

10 Textbox Berisi bobot nilai untuk kriteria fasilitas 11 Textbox Berisi bobot nilai untuk kriteria harga 12 Textbox Berisi bobot nilai untuk kriteria kenyamanan 13 Textbox Berisi bobot nilai untuk kriteria keamanan 14 Button Berfungsi untuk menyimpan data responden

Input data(1)

Nama(3)(((3)g Fasilitas(4) Harga(5) Kenyamanan( Keamanan(7)

Nomor(2) (8)

(9)

(10)

(11)

(12)

(13)


(34)

3.6.3. Form Profile matching

Gambar 3.6.3 Rancangan form metode profile matching

Tabel 3.6.3 Keterangan bagian-bagian form metode profile matching

Keterangan:

No Jenis Objek Keterangan

1 Form Berisi nama form yang dibuat

2 Label Nilai ideal

3 Label Fasilatas

4 Label Harga

5 Label Kenyamanan

6 Label Keamanan

7 Textbox Berisi nilai bobot fasilitas 8 Textbox Berisi nilai bobot harga 9 Textbox Berisi nilai bobot kenyamanan 10 Textbox Berisi nilai bobot keamanan

11 Label Persentase

12 Label Core factor

13 Label Secondary factor

14 Textbox Berisi nilai bobot core factor 15 Textbox Berisi nilai bobot secondary factor

Profile matching(1) Nilai Fasilitas(3) Harga(4) Kenyamanan Keamanan(6)

(7)

(8)

(9)

(10)

Persentase(11

Core factor(12) Secondary

(14)

(15)

Hitung(17)


(35)

16 Datagridview Menampilkan table

17 Button Memproses metode profile matching

3.6.4. Halaman form metode topsis

Gambar 3.6.4.Rancangan form metode TOPSIS

Tabel 3.6.4. Keterangan bagian-bagian form metode TOPSIS

Keterangan:

No Jenis Objek Keterangan

1 Form Berisi nama form yang dibuat 2 Datagridview Menampilkan table

3 Button Memproses metode topsis TOPSIS(1)

(2)


(36)

3.6.5. Halaman form Perbandingan

Gambar 3.6.6.Rancangan h alaman formPerbandingan

Tabel 3.6.5. Keterangan bagian-bagian halaman form Perbandingan

Keterangan:

No Jenis Objek Keterangan

1 Form Berisi nama form yang dibuat

2 Label Banyak sample

3 Textbox Tempat sample diinputkan

4 Button Hitung

5 Datagridview Menampilkan table

6 Label Running Time

7 Textbox Menampilkan hasil dari running time 8 Datagridview Menampilkan table

9 Label Running time

10 Textbox Menampilkan hasil dari running time

Perbandingan(1)

Banyak sample(2) (3) Hitung(

(5) (8)


(37)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi Sistem

Untuk mengembangkan suatu perangkat lunak tahapan selanjutnya adalah tahapan implementasi. Proses implementasi sistem yang terjadi di dalam aplikasi yang dirancang, yaitu implementasi sistem pendukung keputusan dengan menggunakan metode Profile matching dan TOPSIS untuk memilih tempat gym terbaik di kota Medan.

4.1.1. Form menu utama

Di dalam form menu data menampilkan data-data yang telah diinputkan oleh user.

Terdapat pula button input data untuk memasukkan data responden, button edit data untuk mengubah data jika ada kesalahan dalam penginputan data dan button delete

untuk menghapus data jika ada yang salah. Tampilan form menu utama dapat dilihat pada gambar 4.1.1. berikut ini:


(38)

Gambar 4.1.2. Tampilan form input data

4.1.3. Form Profile Matching


(39)

4.1.4. Form TOPSIS

Gambar 4.1.4. Tampilan form TOPSIS 4.1.5. Form Perbandingan

Gambar 4.1.5. Tampilan form Perbandingan 4.2. Pengujian Sistem

Pengujian sistem merupakan merepresentasikan tinjauan ulang yang menyeluruh terhadap spesifikasi, desain dan pengkodean. Glen Myers menetapkan beberapa aturan yang dapat dilihat sebagai tujuan dari ujicoba:


(40)

c. Ujicoba yang berhasil adalah mengungkap kesalahan yang belum ditemukan.

Dapat diartikan bahwa tujuan dari ujicoba tersebut adalah mendesain serangkaian tes yang secara sistematis mengungkap beberapa jenis kesalahan yang berbeda dan melakukannya dalam waktu dan usaha yang minim.Juga menunjukkan bahwa fungsi perangkat lunak telah bekerja sesuai spesifikasi dan kebutuhan fungsi telah tercapai.

Sebelum masuk ke proses pengujian kedua metode tersebut, berikut data-data responden. Data responden ini sama-sama digunakan kedalam kedua metode tersebut. Dapat dilihat seperti pada tabel 4.2 berikut ini:

Tabel 4.2. Data Responden

No Nama gym Fasilitas Harga Keamanan Kenyamanan

1 The gym center 7 8 8 8

2 Manurung gym 5 4 5 5

3 Antony futsal & gym 6 6 6 6

4 Olympus gym 8 8 8 8

5 Metro gym 7 5 6 6

6 Mandala gym 4 6 5 6

7 Body & fit gym 6 7 7 7

8 Gold gym 9 10 10 9

9 Milala gym 6 5 6 4

10 Tuasan gym 5 5 6 6

4.2.1. Pengujian proses Profile matching

Langkah-langkah pemecahan masalah untuk menentukan tempat gym terbaik di kota Medan dengan menggunakan metode Profile matching sebagai berikut:

Prosedur dalam metode profile matching adalah sebagai berikut (Kusrini, 2007) : 1. Pemetaan gap

Gap yang dimaksud adalah perbedaan antara profil pendaftar dengan profil ideal peserta didik atau bisa ditunjukkan pada rumus di bawah ini:

���=��������������� − �����������������������


(41)

Tabel 4.2.1. Perhitungan GAP

No Nama gym Fasilitas Harga Keamanan Kenyamanan

1 The gym center 7 8 8 8

2 Manurung gym 5 4 5 5

3 Antony futsal & gym 6 6 6 6

4 Olympus gym 8 8 8 8

5 Metro gym 7 5 6 6

6 Mandala gym 4 6 5 6

7 Body & fit gym 6 7 7 7

8 Gold gym 9 10 10 9

9 Milala gym 6 5 6 4

10 Tuasan gym 5 5 6 6

Nilai

Ideal 8 7 7 6

1 The gym center -1 1 1 2

2 Manurung gym -3 -3 -2 -1

3 Antony futsal & gym -2 -1 -1 0

4 Olympus gym 0 1 1 2

5 Metro gym -1 -2 -1 0

6 Mandala gym -4 -2 -1 -1

7 Body & fit gym -2 0 0 1

8 Gold gym 1 3 3 3

9 Milala gym -2 -2 -1 2

10 Tuasan gym -3 -2 -1 0

2. Pembobotan

Setelah diperoleh gappada masing-masing pendaftar, setiap profil diberi bobot nilai dengan patokan tabel bobot nilai gap.

Tabel berikut adalah tabel bobot nilai gap: dilihat pada tabel 4.2.2.berikut ini:

Tabel 4.2.2.Pembobotan

No Selisih Bobot Nilai

1 0 5

2 1 4,5

3 -1 4

4 2 3,5

5 -2 3

6 3 2,5

7 -3 2

8 4 1,5


(42)

1 The gym center 4 4,5 4,5 3,5

2 Manurung gym 2 2 3 4

3 Antony futsal & gym 3 4 4 5

4 Olympus gym 5 4,5 4,5 3,5

5 Metro gym 4 3 4 5

6 Mandala gym 1,5 3 4 4

7 Body & fit gym 3 5 5 4,5

8 Gold gym 4,5 2,5 2,5 2,5

9 Milala gym 3 3 4 3

10 Tuasan gym 2 3 4 5

3. Perhitungan dan pengelompokan core dan secondary factor

Setelah menentukan bobot nilai gap untuk seluruh kriteria, setiap subkriteria dikelompokkan menjadi dua kelompok, yaitu core factordan secondary factor. Perhitungan core factor ditunjukkan menggunakan rumus di bawah ini:

���= ∑ ��

∑ ��

Keterangan: NCF : nilai rata-rata core factor

NC : jumlah total nilai core factor

IC : jumlah item core factor

Sementara itu, perhitungan secondary factor bisa ditunjukkan dengan rumus berikut:

��� =∑ ��

∑ ��

Keterangan: NCF : nilai rata-rata secondary factor

NC : jumlah total nilai secondary factor

IC : jumlah item secondary factor


(43)

kriteria yang akan menjadi core factor adalah fasilitas dan harga. Sedangkan kenyamanan dan keamanan adalah secondary factor.

����ℎ������� ��� =

4,5 + 4

2 =

8,5

2 = 4,25

����ℎ������� ��� =

4,5 + 3,5

2 =

8 2= 4

Tabel 4.2.4.Perhitungan dan pengelompokan core dan secondary factor

No Nama gym Fasilitas Harga Keamanan Kenyamanan Core factor

Secondary factor

1 The gym center 4 4,5 4,5 3,5 4,35 4

2 Manurung gym 2 2 3 4 2 3,5

3 Antony futsal & gym 3 4 4 5 3,5 4,5

4 Olympus gym 5 4,5 4,5 3,5 4,75 4

5 Metro gym 4 3 4 5 3,5 4,5

6 Mandala gym 1,5 3 4 4 2,25 4

7 Body & fit gym 3 5 5 4,5 4 4,75

8 Gold gym 4,5 2,5 2,5 2,5 3,5 2,5

9 Milala gym 3 3 4 3 3 3,5

10 Tuasan gym 2 3 4 5 2,5 4,5

4. Perhitungan penentuan ranking

Perhitungan penentuan ranking dapat ditunjukkan dengan rumus berikut:

�������ℎ�� = ∑(�)%� (5)

Semakinbesar nilai akhir,maka akan semakin besar kesempatan untuk menjadi peringkat teratas.

Perhitungan nilai akhir dengan persentase kriteria 60% dan 40% adalah sebagai berikut:


(44)

Tabel 4.2.5.Perankingan metode Profile matching

No Nama gym 1 Olympus gym 2 Body & fit gym 3 The gym center 4 Metro gym 5 Antony futsal & gym 6 Milala gym 7 Tuasan gym 8 Gold gym 9 Mandala gym 10 Manurung gym

Gambar 4.2.1. Tampilan form Profile Matching

4.2.2. Pengujian proses metode TOPSIS

Metode TOPSIS merupakan sebuah teknik berdasarkan pada konsep dimana alternatif terpilih yang terbaik tidak hanya memiliki jarak terpendek dari solusi ideal positif, namun memiliki jarak terpanjangdarisolusi negatif (Kusumadewi, 2006).

Berikut adalah prosedur metode TOPSIS (Sachdeva, 2009): 1. Membangun matriks perbandingan kriteria pada TOPSIS

�= ����� (1)


(45)

Tabel 4.2.6.Data responden

No Nama gym Fasilitas Harga Keamanan Kenyamanan

1 The gym center 7 8 8 8

2 Manurung gym 5 4 5 5

3 Antony futsal & gym 6 6 6 6

4 Olympus gym 8 8 8 8

5 Metro gym 7 5 6 6

6 Mandala gym 4 6 5 6

7 Body & fit gym 6 7 7 7

8 Gold gym 9 10 10 9

9 Milala gym 6 5 6 4

10 Tuasan gym 5 5 6 6

X= ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢

⎡75 84 8 8

6 6 8 8 7 5 4 6 6 7 9 10 6 5 5 5 5 5 6 6 8 8 6 6 5 6 7 7 10 9 6 4

6 6⎦

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤

2. Normalisasi matriks perbandingan kriteria asli

Digunakan persamaan berikut untuk mengubah setiap elemen ����� yang diberikan di bawah ini:/

��� = ��� �∑� ���2

�=1

(2) �11 =

�11 �∑5�=1���2

= 7

√72+ 52+ 62+ 82 + 72+ 42 + 62+ 92+ 62+ 52

= 7

√417=

7

20,42= 0,343


(46)

rij= ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢

0,391 0,381

0,343 0,238 0,194 0,286 0,293 0,333 0,440 0,476 0,293 0,238 0,244 0,238 0,368 0,380 0,276 0,285 0,230 0,285 0,322 0,332 0,460 0,427 0,276 0,190 0,276 0,285⎦

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥

3. Membangun matriks ternormalisasi terbobot

Nilai bobot masing-masing kriteria ditentukan dengan skala satu sampai tiga berdasarkan prioritas tiap kriteria.

Tabel 4.2.6.Pembobotan

No Kriteria Nilai Bobot

(w)

1 Fasilitas 2

2 Harga 3

3 Kenyamanan 2

4 Keamanan 1

Digunakan persamaan berikut untuk mendapatkan elemen yij dari elemen rij yang

diberikan di bawah ini:

��� = ����� (3)

yij=

⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢

⎡0,6860,488 1,1430,576 0,736 0,380

0,586 0,858 0,782 1,143 0,686 0,741 0,388 0,858 0,586 0,999 0,880 1,428 0,586 0,714 0,488 0,714 0,460 0,237 0,552 0,285 0,736 0,380 0,552 0,285 0,460 0,285 0,644 0,332 0,920 0,427 0,552 0,190 0,552 0,285⎦

⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤

4. Penetapan solusi ideal positif (�+) dan solusi ideal negatif (�−)

Untuk untuk menghitung solusi ideal positif �+ dan solusi ideal negatif �− dari masing-masing kriteria digunakan persamaan berikut:


(47)

�+= (���(

�1), max(��2) , … , max⁡(���)) = (�1+,�2+, … ,��+) (4) �−= (���(

�1), min(��2) , … , min⁡(���)) = (�1−,�2−, … ,��−) (5) �+= (0,880 ; 1,428; 0,920; 0,427)

�−= (0,388; 0,576; 0,460; 0,190)

5. Perhitungan jarak pada setiap kriteria antara solusi ideal positif �+dan solusi ideal negatif �−.

Untuk menghitung jarak euclideandari setiap alternatif ke �1+ dan �1− menggunakan persamaan berikut:

�+= �∑ ��

�+− ����

2

�=1 (6)

�−=�∑ ��

�� − ��−�

2

�=1 (7)

Untuk pendaftar pertama: �+

=�(0,880−0,686)2+ (1,428−1,143)2+ (0,920−0,736)2+ (0,427−0,380)2 = �0,1942+ 0,2852+ 0,1842+ 0,0472 = 0,398

�−

=�(0,686−0,388)2+ (1,143−0,576)2+ (0,736−0,460)2+ (0,380−0,190)2 = �0,2982+ 0,5672+ 0,2762+ 0,1902 = 1,167


(48)

Gambar4.2.2. Tampilan form TOPSIS

4.2.3. Perbandingan

Pada form perbandingan ini, menampilkan hasil perbandingan perhitungan antara metode Profile Matching dan TOPSIS dengan membandingkan kecepatan perhitungan diantara kedua metode tersebut. Dapat dilihat pada gambar 4.2.11.berikut ini:

Gambar 4.2.3. Tampilan form perbandingan


(49)

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan teori dan pembahasan pada bab sebelumnya dan hasil dari implementasi sistem pendukung keputusan untuk memilih tempat gym terbaik di kota Medan menggunakan metode Profile matching dan TOPSIS maka dapat diambil kesimpulan: 1 Metode Profile matching dan TOPSIS telah berhasil diimplementasikan pada sebuah

aplikasi Sistem Pendukung Keputusan.

2. Berdasarkan implementasi dari aplikasi tersebut dalam memilih tempat gym dengan menggunakan metode Profile matching dan TOPSIS hasilnya yang didapatkan diantara kedua metode berbeda. Dimana pada metode Profile matching yang menjadi peringkat pertama adalah Olympus gym. Sedangkan pada metode TOPSIS,

Gold gym menjadi peringkat pertama.

3. Berdasarkan implementasi dengan metode Profile matching dan TOPSIS dalam memilih tempat gym, dimana dengan metode TOPSIS lebih cepat dalam proses perhitungannya. Pada perhitungan running time didapatkan bahwa dengan metode

Profile matching hasil tesnya adalah 4,3564 detik dan metode TOPSIS dengan hasil 3,7706 detik.Selisih diantara kedua metode tersebut dalam tiga kali pengujian adalah 0,5858 detik. Sehingga didapatkan metode TOPSIS merupakan metode yang lebih baik dibandingkan dengan metode Profile Matching.

4. Aplikasi yang dirancang mampu memberikan solusi dengan mengimplementasikan kedua metode. Pada metode Profile matching, hasil yang didapatkan diperoleh berdasarkan kriteria harga yang termurah, dalam proses perhitungannya. Gold gym menjadi pilihan pertama.


(50)

adalah sebagai berikut:

1. Pada penelitian ini, menggunakan empat kriteria dan sepuluh alternatif. Diharapkan kedepannya, ditambahkan jumlah jumlah kriteria dan alternatif lebih banyak lagi agar mendapatkan hasil yang lebih bagus dan pilihan gym yang direkomendasikan semakin banyak.

2. Pada bagian interface bisa disempurnakan dengan memasukkan unsur gambar 2D maupun 3D pada tiap-tiap tampilan tempat gym.

3. Penelitian selanjutnya, diharapkan aplikasi yang telah ada bisa dikembangkan menjadi aplikasi multi-platform.


(51)

BAB 2

LANDASAN TEORI

2.1. Sistem Pendukung Keputusan

Sistem adalah sekelompok unsur yang berhubungan erat satu dengan lainnya, yang berfungsi bersama-sama untuk mencapai tujuan tertentu.(Syahfitri . 2013).

Pada tahun 1970-an Michael S. Scott Morton pertama kali memperkenalkan Sistem Pendukung Keputusan, merupakan sistem informasi berbasis komputer interakfif, yang membantu para pengambil keputusan untuk menggunakan data dan berbagai model untuk memecahkan masalah-masalah tidak terstruktur. Pada proses pengambilan data dan pengolahan data dalam Sistem Pendukung Keputusan diperoleh hasil yang bersifat alternatif dan tidak diharuskan untuk mengikutinya. Sistem pendukung keputusan yang merupakan penerapan dari system informasi ditujukan hanya sebagai sebuah alat untuk membantu pengguna dalam mengambil keputusan. Sistem pendukung keputusan tidak dimaksudkan untuk menggantikan fungsi pengambil keputusan dalam membuat keputusan, melainkan hanyalah sebagai alat bantu pengambil keputusan dalam melaksanakan tugasnya. Sistem pendukung keputusan menurut Gorry Dan Scout Morton adalah sistem berbasis komputer interaktif, yang membantu para pengambil keputusan untuk menggunakan data dan berbagai model untuk memecahkan masalah-masalah tidak terstruktur.( Susanti, Winiarti, 2013). Saat ini, pengambilan keputusan dirasa lebih sulit karena kebutuhan akan kecepatan dalam pengambilan keputusan terus meningkat. kelebihan informasi merupakan masalah umum yang menyebabkan penyimpangan informasi. Sisi yang positif dalam permasalahan ini adalah harus adanya suatu penekanan lebih besar terhadap proses pengambilan keputusan. Dalam suatu pengambilan keputusan yang kompleks dibutuhkan suatu pendukung keputusan yang bersifat komputerisasi, yang menyediakan bukti yang dirancang sebaik mungkin sesuai dengan penyimpanan data sistem komputer yang membantu pengambilan keputusan agar dapat mendorong dan


(52)

meningkatkan kualitas suatu keputusan serta meningkatkan daya guna dan tepat guna dalam proses pengambilan keputusan. ( Power. J, Daniel. 2009)

2.2. Gym

Gym adalah kegiatan olahraga pembentukan otot-otot tubuh/fisik yang dilakukan secara rutin dan berkala, yang bertujuan untuk menjaga fitalitas tubuh dan berlatih disiplin.fitnes adalah aktivitas angkatangkat besi yang hanya dilakukan oleh pria berusia muda yang ingin membesarkan badan. Definisi kata Gym itu sendiri adalah "kebugaran" atau Gym juga berarti "lebih dari sekedar sehat". Latihan ( beban dan aerobic ) hanyalah salah satu elemen dari gaya hidup Gym. Dan gaya hidup Gym pada dasarnya adalah gaya hidup yang melibatkan kegiatan ataupun aktivitas yang membuat orang menjadi lebih bugar dan jarang sakit..(Kusumasari, D.W. 2013)

2.3. Metode Profile Matching

Penelitian ini menggunakan metode Profile matching, Profile matching merupakan suatu metode penelitian yang dapat digunakan pada sistem pendukung keputusan, proses penilaian kompetensi dilakukan dengan membandingkan antara satu profil nilai (nilai kebutuhan kompetensi) dengan beberapa profil nilai kompetensi lainnya, sehingga dapat diketahui hasil dari selisih kebutuhan kompetensi yang dibutuhkan, selisih dari kompetensi disebut gap, dimana gap yang semakin kecil memiliki nilai yang semakin tinggi. Pencocokan profil ( profile matching ) adalah sebuah mekanisme pengmbilan keputusan dengan mengamsusikan bahwa terdapat tingkat variabel predictor yang ideal yang harus dimiliki oleh pelamar, bukannya tingkat minimal yang harus dipenuhi atau dilewati. Dalam pencocokan profil, dilakukan identifikasi terhadap kelompok karyawan yang baik maupun buruk.


(53)

Proses perhitungan profile matching terdiri atas beberapa proses yaitu Pemetaan Gap, Penentuan Bobot Nilai Gap, Perhitungan Core factor dan Secondary factor.

Tahapan dalam profile matching yaitu :

1. Menentukan kriteria dengan nilai bobot kriteria, untuk nilai bobot criteria nantinya akan dihitung pada proses terakhir setelah didapatkan nilai dari tiap kriteria.

2. Penentuan core dan secondary faktor beserta parameter nilai subkriteria yang digunakan sebagai nilai kompetensi.

3. Perhitungan gap kompetensi yaitu proses pencocokan profil nilai bidan dengan profil nilai desa yang menghasilkan nilai gap dari kompetensi.

4. Penggabungan subkriteria core dan secondary factor untuk memperoleh perhitungan nilai total kriteria.

5. Tahapan terakhir dari profil matching yaitu melakukan perhitungan pada semua nilai total kriteria dan bobot kriteria, untuk menghasilkan perangkingan dari nilai kompetensi. Profile Matching adalah sebuah mekanisme pengambilan keputusan dengan mengasumsikan bahwa terdapat tingkat minimal yang harus dipenuhi atau dilewati.

Langkah-langkah dalam penyelesaian perhitungan dengan menggunakan metode Profile Matching yaitu :

1. Aspek-aspek penilaian.

Langkah pertama yang harus dilakukan yaitu menentukan aspek-aspek penilaian. 2. Pemetaan GAP kompetensi.

GAP kompetensi adalah perbedaan antara kriteria yang dimiliki seseorang dengan kriteria yang diinginkan. Rumus untuk mencari GAP kompetensi yaitu : GAP = Nilai Profil Konsumen – Nilai Minimal

3. Pembobotan GAP kompetensi

Apabila pemetaan GAP sudah selesai dilakukan, maka hasil dari pemetaan tersebut diberi bobot nilai sesuai dengan patokan tabel bobot nilai GAP. Seperti yang terlihat pada table 1.1


(54)

Tabel 2.1. Bobot Nilai

no selisih Bobot

nilai Keterangan

1 O 5 Tidak ada selisih

2 1 4,5 Kompetensi individu kelebihan 1 tingkat/level 3 -1 4 Kompetensi individu kekurangan 1 tingkat/lelvel 4 2 3,5 Kompetensi individu kelebihan 2 tingkat/level 5 -2 3 Kompetensi individu kekurangan 2 tingkat/level 6 3 2,5 Kompetensi individu kelebihan 3 tingkat/level 7 -3 2 Kompetensi individu kekurangan 3 tingkat/level 8 4 1,5 Kompetensi individu kelebihan 4 tingkat/level 9 -4 1 Kompetensi individu kekurangan 4 tingkat/level

4. Perhitungan dan pengelompokkan Core dan Secondary factor Setelah bobot nilai GAP ditentukan, maka dibagi menjadi 2 kelompok yaitu Core Factor dan

Secondary factor.

Rumus untuk menghitung CoreFactor yaitu sebagai berikut :

���= ∑��(�����) ∑��

Keterangan :

NCF = Nilai rata-rata corefactor. NC (aspek) = Jumlah total nilai corefactor. IC = Jumlah item corefactor.

Sedangkan rumus untuk menghitung secondary factor yaitu sebagai berikut:

���= ∑ ��(�����) ∑��

Keterangan :


(55)

NC(aspek) = Jumlah total nilai Secondary factor. IC = Jumlah item secondary factor. 5. Perhitungan Nilai Total

Untuk menghitung nilai total, rumus yang digunakan yaitu : (x)%NCF(aspek) + (x)%NSF(aspek) = Ntotal(aspek) Keterangan :

NCF(aspek) = nilai rata-rata core factor. NSF(aspek) = nilai rata-rata secondary factor. N(aspek) = nilai total dari aspek

(x)% = nilai persen yang diinputkan 6. Perhitungan Nilai Rangking

Untuk menentukan perankingan mengacu pada hasil perhitungan menggunakan rumus sebagai berikut :

Rangking = (x)% Ns Keterangan :

Ns = Nilai aspek

(x)% = Nilai persen yang diinputkan (Islami, 2015)

2.4. Metode TOPSIS

TOPSIS adalah salah satu metode pengambilan keputusan multikriteria atau alternatif pilihan yang merupakan alternatif yang mempunyai jarak terkecil dari solusi ideal positif dan jarak terbesar dari solusi ideal negatif dari sudut pandang geometris dengan menggunakan jarak Euclidean. Namun, alternatif yang mempunyai jarak terkecil dari solusi ideal positif, tidak harus mempunyai jarak terbesar dari solusi ideal negatif.Maka dari itu, TOPSIS mempetimbangkan keduanya, jarak terhadap solusi ideal


(56)

positif dan jarak terhadap solusi ideal negatif secara bersamaan.Solusi optimal dalam metode TOPSIS didapat dengan menentukan kedekatan relatif suatu altenatif terhadap solusi ideal positif. TOPSIS akan merangking alternatif berdasarkan prioritas nilai kedekatan relatif suatu alternatif terhadap solusi ideal positif. Alternatif-alternatif yang telah dirangking kemudian dijadikan sebagai referensi bagi pengambil keputusan untuk memilih solusi terbaik yang diinginkan.(Harahap F. K. 2013)

2.4.1.Kegunaan Metode TOPSIS

TOPSIS telah digunakan dalam banyak aplikasi termasuk keputusan investasi keuangan, perbandingan performansi dari perusahaan, pebandingan dalam suatu industri khusus, pemilihan sistem operasi, evaluasi pelanggan, dan perancangan robot.

(Harahap F. K. 2013)

2.4.2. Langkah-langkah Metode TOPSIS

Berikut adalah langkah-langkah dari metode TOPSIS

:

1. Membangun sebuah matriks keputusan.

Matriks keputusan X mengacu terhadap m alternatif yang akan dievaluasi berdasarkan n kriteria. Matriks keputusan Xdapat dilihat sebagai berikut :


(57)

keterangan:

ai( i = 1, 2, 3, . . . , m ) adalah alternatif-alternatif yang mungkin,

xj (j = 1, 2, 3, . . . ,n ) adalah atribut dimana performansi alternatif diukur,

xijadalah performansi alternatif ai dengan acuan atribut xj. 2. Membuat matriks keputusan yang ternormalisasi.

Persamaan yang digunakan untuk mentransformasikan setiap elemen xijadalah:

dengani = 1, 2, 3, . . . , m; dan j = 1, 2, 3, . . . , n; keterangan:

rijadalah elemen dari matriks keputusan yang ternormalisasi R,

xijadalah elemen dari matriks keputusan X.

3. Membuat matriks keputusan yang ternormalisasi tebobot.

Dengan bobot wj = ( w1, w2 , w3 , . . . , wn ), dimana wj adalah bobot dari kriteria ke-j dan ∑�=1 = 1 , maka normalisasi bobot matriks V adalah :

vij = wj rij

Dengan i = 1, 2, 3, . . . ,m; dan j = 1, 2, 3, . . . , n.


(58)

vijadalah elemen dari matriks keputusan yang ternormalisai terbobot V,

wjadalah bobot kriteria ke-j

rijadalah elemen dari matriks keputusan yang ternormalisasi R.

4. Menentukan matriks solusi ideal positif dan solusi ideal negatif. Solusi ideal positif dinotasikan A+, sedangkan solusi ideal negatif dinotasikan A-. Berikut ini adalah persamaan dari A+ dan A- :

a. A+ = {( maxvij | jJ ), ( min vij | jJ’ ), i = 1, 2, 3, …, m)

= { 1− ,�2− ,�3− , … ,��−}

b. A- = {( minvij | jJ ), ( max vij | jJ’ ), i = 1, 2, 3, …, m)

= { 1− ,�2− ,�3− , … ,�}

J = { j = 1, 2, 3, … n dan J merupakan himpunan kriteria keuntungan ( benefit criteria)}.

J’ = { j = 1, 2, 3, … n dan J’ merupakan himpunan kriteria biaya (costcriteria)

Keterangan:

vij adalah elemen dari matriks keputusan yang ternormalisasi terbobot V,

��+( j = 1, 2, 3, . . . , n ) adalah elemen matriks solusi ideal positif,

= ( j = 1, 2, 3, . . . , n ) adalah elemen matriks solusi ideal negatif.

5. Menghitung separasi

a.S+adalah jarak alternative dari solusi ideal positif didefenisikan sebagai:


(59)

b. S-adalah jarak alternative dari solusi ideal negatif didefenisikan sebagai:

��−=�∑��=1(��� −�−)2 , dengan i = 1, 2, 3, . . . ,m

keterangan:

+adalah jarak alternative ke-I dari solusi ideal positif,

��−adalah jarak alternative ke-I dari solusi ideal negatif,

vijadalah elemen dari matriks keputusan yang ternormalisasi terbobot V,

��+adalah elemen matriks solusi ideal positif,

��−adalah elemen matriks solusi ideal negative

6. Menghitung kedekatan terhadap solusi ideal positif.

Kedekatan relatif dari setiap alternative terhadap solusi ideal positif dapat dihitung dengan menggunakan persamaan berikut:

dengani = 1 ,2 , 3, . . . , m

keterangan :

��+adalah kedekatan relatif dari alternative ke-I tehadap solusi ideal positif,

+adalah jarak alternatif ke-I dari solusi ideal positif,

adalah jarak alternative ke-I dari solusi ideal negatif.

7. Merangking aternatif.

Alternative diurutkan dari nilai C+ terbear ke nilai terkecil.Alternatif dengan nilai C+ terbesar merupakan solusi terbaik.(Harahap F. K. 2013)


(60)

PENDAHULUAN

1.1. Latar Belakang

Dewasa ini perkembangan dan kemajuaan teknologi informasi dan komunikasi telah berkembang dengan sangat pesat. Berbagai kemudahan memperoleh informasi dari berbagai penjuru dunia dapat kita nikmati dalam hitungan detik. Komputer sangat membantu pekerjaan manusia sehari-hari. Mulai dari kegiatan perkantoran, perbankan, perdagangan, pendidikan, bisnis, dan sebagainya.

Sistem Pendukung Keputusan (SPK) merupakan suatu pendekatan atau metodelogi untuk mendukung keputusan. SPK menggunakan CBIS (Computer Based Information System) yang fleksibel, interaktif dan dapat diadaptasi, yang dikembangkan untuk mendukung solusi untuk masalah manajemen spesifik yang tidak terstruktur. SPK menggunakan data, memberikan antarmuka pengguna yang mudah dan dapat menggabungkan pemikiran pengambil keputusan. Sebagai tambahan, SPK biasanya menggunakan berbagai model dan dibangun oleh suatu proses interaktif dan iterative. Ia mendukung semua fase pengambilan keputusan dan dapat memasukkan suatu komponen pengetahuan. SPK dapat digunakan oleh pengguna tunggal pada satu PC atau bisa menjadi berbasis Web untuk digunakan oleh banyak orang pada beberapa lokasi.

Kata “Gymnastic” berasal dari Yunani Kuno, yang berarti suatu sarana yang baik untuk pendidikan melatih fisik dan intelektual orang muda. Di ruang gymnasium inilah pemuda-pemuda dilatih fisiknya untuk menanamkan rasa disiplin dan sportif di dalam berlagak di lomba olahraga. Bagi sebagian orang yang namanya gymnasium, yang terbayang adalah suatu ruangan yang dipenuhi oleh manusia-manusia berbadan kekar yang tengah melatih otot-ototnya dengan peralatan ‘pembentuk’ badan yang serba modern serta didampingi instruktur yang juga berbadan atletis. Padahal, Gym dalam arti yang lebih luas memiliki makna ruang atau gedung olahraga. Singkat kata, Gym adalah suatu wadah bagi mereka yang ingin menyegarkan badan dengan


(61)

melakukan olahraga, yang dapat melenturkan tubuh, mengencangkan otot dan membuat tubuh menjadi kekar.

Pengertian fitnes menurut Zal (2011) adalah kegiatan olahraga pembentukan otot-otot tubuh/fisik yang dilakukan secara rutin dan berkala, yang bertujuan untuk menjaga fitalitas tubuh dan berlatih disiplin .Ade Rai, Health Ambassador & Fitness Motivator, (2008) menyatakan bahwa banyak orang yang memiliki kesalah pahaman terhadap arti kata "fitnes". Asosiasi kelirumengenai arti kata inilah yang ironisnya lebih banyak beredar selama ini daripa daasosiasi sebenarnya. Oleh sebagian besar orang, fitnes adalah aktivitas angkat-angkat besi yang hanya dilakukan oleh pria berusia muda yang ingin membesarkan badan. Definisi kata "fitnes" itu sendiri adalah "kebugaran" atau fitnes juga berarti "lebih dari sekedar sehat". Latihan (beban dan aerobik) hanyalah salah satu elemen dari gaya hidup fitnes. Dan gaya hidup fitnes pada dasarnya adalah gaya hidup yang melibatkan kegiatan ataupun aktivitas yang membuat orang menjadi lebih bugar dan jarang sakit.(Kusumasari, D.W. 2013)

Di Indonesia , khususnya di kota Medan sudah banyak tempat gym bertebaran dimana-mana , dari tempat gym yang memiliki fasilitas yang lengkap dan menggunakan peralatan yang berkulitas tinggi seprti menggunakan ac, memiliki fasilitas spa, maupun kolam renang. Menggunakan alat gym yang berkualitas tinggi dan berada di tempat yang strategis atau mudah di jangkau oleh setiap orang. Adapun tempat gym yang memiliki kualitas medium ke bawah seperti tempat gym yang menggunakan alat gym yang seadanya , tempat yang kurang atau tidak strategis yang sulit untuk di jangkau dan sebagainya.

Saat ini belum ada aplikasi yang yang bisa digunakan oleh user atau pengguna untuk menentukan tempat gym terbaik atau sesuai dengan kebutuhannya. Oleh karena itu di buatlah sistem pendukung keputusan (spk) untuk menentukan tepat gym tersebut dimana dengan menggunakan aplikasi ini akan mempermudah user untuk menentukan tempat gym terbaik atau yang sesuai dengan kebutuhannya, tanpa harus mendatangi tempat gym yang ingin di ketahuinya satu persatu.(Kusumasari, D.W. 2013)


(62)

Rumusan masalah saya dalam penulisan skripsi ini adalah membandingkan dan menerapkan metode Profile Mathcing dengan metode TOPSIS dalam sistem pendukung keputusan untuk menentukan tempat gym terbaik di kota Medan.

1.3. Batasan Masalah

Agar fokus penelitian tidak menyimpang dari rumusan masalah yang telah ditetapkan, maka dibuat batasan masalah sebagai berikut:

1. Penelitian menggunakan kriteria fasilitas, harga, kenyamanan dan keamanan. 2. Penelitian dilakukan di kota Medan dengan jumlah sample sebanyak 10

tempat gym.

3. Program dibuat dengan menggunakan bahasa pemrograman C Sharp (C#).

1.4. Tujuan Penelitian

Tujuan Penelitian ini adalah untk menentukan metode mana yang terbaik yang digunakan dalam sistem pendukun keputusan dalam menentukan tempat gym terbaik di kota medan.

1.5. Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah :

1. Sebagai referensi untuk penelitian selanjutnya.

2. Aplikasi yang di hasilkan akan membantu masyarakat dalam memilih tempat gym yg sesuai.

1.6. Sistematika Penulisan


(1)

vi

ABSTRAK

Gym adalah suatu wadah bagi mereka yang ingin menyegarkan badan dengan melakukan olahraga, yang dapat melenturkan tubuh, mengencangkan otot dan membuat tubuh menjadi kekar. Profile matching adalah sebuah mekanisme pengmbilan keputusan dengan mengamsusikan bahwa terdapat tingkat variabel predictor yang ideal yang harus dimiliki oleh pelamar, bukannya tingkat minimal yang harus dipenuhi atau dilewati. TOPSIS adalah salah satu metode pengambilan keputusan multikriteria atau alternatif pilihan yang merupakan alternatif yang mempunyai jarak terkecil dari solusi ideal positif dan jarak terbesar dari solusi ideal negatif dari sudut pandang geometris dengan menggunakan jarak Euclidean. Dalam memilih tempat gym, masyarakat langsung mendatangi lokasi gym yang diinginkan dan terkadang hasilnya tidak memuaskan. Oleh karena itu, dibutuhkan suatu teknik sebagai sistem yang dapat membantu para pengguna dalam menentukan tempat gym terbaik di kota Medan dengan kriteria-kriteria yang telah ditentukan menggunakan metode Profile matching dan Topsis. Dari hasil penelitian di dapat Profile Matching: 4,3564 dan TOPSIS: 3,7706, sehingga metode yang terbaik adalah metode TOPSIS.

Kunci: Sistem Pendukung Keputusan, PROFILE MATCHING, TOPSIS, GYM.


(2)

vii

COMPARISON OF MATCHING PROFILE AND TOPSIS METHOD IN DECISION SUPPORT SYSTEM TO DETERMINE

THE BEST GYM IN MEDAN

ABSTRACT

Gym is place for those who want to refresh body with do exercise, which can flex the body, tighten the muscles and make body into stocky. Profile matching is a decision-making mechanism to assume any level of predictor variables that are ideal to be owned by the applicant, instead of the minimum rate that must be met or passed. TOPSIS is one of multiple criteria decision-making methods or alternative option is an alternative that has the smallest distance from the positive ideal solution and the greatest distance from the negative ideal solution from a geometrical point by using the Euclidean distance. In choosing a gym, people went straight to the gym desired location and sometimes the results are not satisfactory. Therefore, we need a technique as a system that can help the user in determining where the best gym in the city of Medan with the criteria that have been determined using the method of matching and TOPSIS Profile. From the results of research in the can Profile Matching: 4.3564 and TOPSIS: 3.7706, so the best method is a method TOPSIS. Keywords: Decision Support Sistem, Profile Matching, TOPSIS, Gym.


(3)

viii

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak vi

Abstract vii

Daftar Isi viii

Daftar Gambar xi

Daftar Tabel xii

Daftar Lampiran xiii

BABI Pendahuluan

1.1. Latar Belakang 1

1.2. Rumusan Masalah 3

1.3. Batasan Masalah 3

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Sistematika Penulisan 3

BABII Landasan Teori

2.1. Sistem Pendukung Keputusan 5

2.2. Gym 6

2.3. Metode Profile Matching 6

2.4. Metode TOPSIS 9

2.4.1. Kegunaan metode TOPSIS 10 2.4.2. Langkah-langkah metode TOPSIS 10

BABIII Analisis dan Perancangan Sistem

3.1. Analisis Masalah 14


(4)

ix

3.2.1. Kebutuhan Fungsional 15

3.2.2. Kebutuhan Non-fungsional 15

3.3. Analisis Proses 16

3.4. Pemodelan Sistem 16

3.4.1. Use Case Diagram 16

3.4.2. Activity Diagram 17

3.4.3. Sequence Diagram 20

3.5. Perancangan Sistem 22

3.5.1. Pembuatan Algoritma Program 22

3.5.2. Alur Proses Sistem Secara Umum 22

3.6. Perancangan Antarmuka Sistem (Interface) 25

3.6.1. Halaman Menu Utama 25

3.6.2. Halaman Form Input Data 26

3.6.3. Halaman Form Profile matching 27

3.6.4. Halaman Form metode TOPSIS 28

3.6.5. Halaman Form perbandingan 29

BABIV Implementasi dan Pengujian

4.1. Implementasi Sistem 30

4.1.1. Form Menu Utama 30

4.1.2. Form Input Data 31

4.1.3. Form Profile matching 31

4.1.4. Form TOPSIS 32

4.1.5. Form perbandingan 32

4.2. Pengujian system 32

4.2.1. Pengujian proses Profile matching 33

4.2.2. Pengujian proses metode TOPSIS 37

4.2.3. Perbandingan 42

BABV Kesimpulan dan saran

5.1. Kesimpulan 43

5.2. Saran 44


(5)

x

DAFTAR GAMBAR

Halaman Gambar 3.1.1. Diagram Ishikawa untuk Analisis Masalah 14

Gambar 3.4.1. Use Case Diagram 17

Gambar 3.4.2. Activity diagram mengolah data 18

Gambar 3.4.3. Activity diagram perangkingan data 19 Gambar 3.4.4. Activity diagram Form Perbandingan 20

Gambar 3.4.5. Sequencediagram mengolah data 21

Gambar 3.4.6. Sequence diagram meranking data 21

Gambar 3.4.7. Sequence diagram formPerbandingan 22 Gambar 3.5.1. flowchart metode Profile Matching 23

Gambar 3.5.2. Flowchart metode Topsis 24

Gambar 3.6.1. Rancangan halaman menu utama 25

Gambar 3.6.2. Rancangan halaman form input data 26 Gambar 3.6.3. Rancangan Form metode Profile Matching 27

Gambar 3.6.4. Rancangan Form metode TOPSIS 28

Gambar 3.6.5. Rancangan Form Perbandingan 29

Gambar 4.1.1. Tampilan Form menu utama 30

Gambar 4.1.2. Tampilan Form input data 31

Gambar 4.1.3. Tampilan Form Metode Profile Matching 31

Gambar 4.1.4. Tampilan Form metode TOPSIS 32

Gambar 4.1.5. Tampilan Form Perbandingan 32

Gambar 4.2.1. Tampilan Form Profile Matching 37

Gambar 4.2.2. Tampilan Form TOPSIS 41


(6)

xi

DAFTAR TABEL

Halaman

Tabel 2.1. Tabel Bobot nilai 8

Tabel 3.6.1. Keterangan Bagian-Bagian Halaman Menu Utama 25 Tabel 3.6.2. Keterangan Bagian-Bagian Halaman Form Input Data 26 Tabel 3.6.3. Keterangan Bagian-Bagian Form Metode Profile Matching 27 Tabel 3.6.4. Keterangan Bagian-Bagian Form Metode TOPSIS 28 Tabel 3.6.5. Keterangan Bagian-Bagian Halaman Form Perbandingan 29

Tabel 4.2. Data Responden 33

Tabel 4.2.1. Perhitungan GAP 34

Tabel 4.2.2. Pembobotan 34

Tabel 4.2.3. Normalisasi 35

Tabel 4.2.4. Perhitungan dan pengelompokan core dan secondary factor 36 Tabel 4.2.5. Perankingan metode Profile Matching 37

Tabel 4.2.6. Data responden 38