• Tidak ada hasil yang ditemukan

Implementasi Analytical Hierarchy Process Dan Algoritma Gale-Shapley Untuk Pemilihan Presidium Departemen UKMI AL-Khuwarizmi

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Analytical Hierarchy Process Dan Algoritma Gale-Shapley Untuk Pemilihan Presidium Departemen UKMI AL-Khuwarizmi"

Copied!
90
0
0

Teks penuh

(1)

A-1

Listing Program

1. Mainform.cs /*

* Created by SharpDevelop. * User: asus

* Date: 7/23/2014 * Time: 4:51 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;

namespace AHPTest {

/// <summary>

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

public partial class MainForm : Form {

string [] kriteria = new string[] {"IMK","Usia Mentoring","Training Pengurus","Hafalan Al-Qur'an","Jumlah

Kelompok Mentoring"};//poin-poin kriteria

string [] alternatif = new string[] {"Amat

Baik","Baik","Cukup","Kurang"};//poin-poin alternatif setiap kriteria

AHPTest.Data m_kriteria;//variabel yang menyimpan nilai matriks dan eigen vektor dari kriteria

List<Data> m_alternatif;//variabel yang menyimpan nilai matriks dan eigen vektor dari alternatif

float [][] matriks;//matriks sementara untuk menampung nilai yang diinput user

(2)

A-2

pengumpulan.hasil [] data_hasil; Nilai y;

public MainForm() {

//

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

//

InitializeComponent();

inisialisasi_tabel();//memulai membuat tabel sebagai tempat input nilai perbandingan

m_alternatif = new List<Data>();

data_sat = new MainForm.data_pen[2][]; bidang = new string[]{"Kaderisasi,",

"Syiar", "KW", "Akkom", "LSO-IT"}; //

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

// }

void inisialisasi_tabel() {

if (button1.Text == "Simpan Kriteria")//jika teks tombol seperti kondisi ini

{

dg.Columns.Add("C0","");//menambah 1 kolompada tabel,ada 2 parameter,nilai CO sebagai nama kolom, nilai "" sebagai headertext

dg.Rows.Insert(0,"");//menambah 1 baris pada tabel,ada 2 parameter, satu index baris, satu lagi nilai isi sel di kolom pertama di baris tersebut

dg[0,0].Value = "";//nilai dari sel [kolom ke-,baris ke-]

(3)

A-3

= 1;i<kriteria.Length+1;i++)//membuat tabel matriks dengan ukuran = jumlah kriteria

{

dg.Columns.Add("C"+i.ToString(),""); dg.Rows.Insert(i,kriteria[i-1]); dg[i,0].Value = kriteria[i-1]; dg[i,i].Value = "1";

} } else {

dg.Columns.Add("C0",""); dg.Rows.Insert(0,""); dg[0,0].Value = ""; for (int i

= 1;i<alternatif.Length+1;i++)//membuat tabel matriks dengan ukuran = jumlah poin alternatif

{

dg.Columns.Add("C"+i.ToString(),""); dg.Rows.Insert(i,alternatif[i-1]); dg[i,0].Value = alternatif[i-1]; dg[i,i].Value = "1";

} } }

void DgCellValidated(object sender, DataGridViewCellEv entArgs e)//ketika suatu user mengisi suatu sel, maka sel yang merupakan perbandingan terbalik dari sel tsb akan otomatis terisi dgn nilai 1/sel

{

try{

dg[e.RowIndex,e.ColumnIndex].Value

= (1/float.Parse(dg[e.ColumnIndex,e.RowIndex].Value.ToString() )).ToString();

(4)

A-4

}

void Button1Click(object sender, EventArgs e) {

if (button1.Text == "Simpan Kriteria") {

matriks

= new float[kriteria.Length][];//membuat ukuran matriks for (int i = 0;i<kriteria.Length;i++) {

matriks[i] = new float[kriteria.Length];// membuat ukuran sub matriks

for (int j = 0;j<kriteria.Length;j++) {

matriks[i][j] = float.Parse(dg[j+1,i+1

].Value.ToString());//memindahkan nilai dari tabel ke matriks dengan iterasi sebanyak poin poin yang dibandingkan

} }

m_kriteria

= new Data(kriteria,matriks);//membuat tempat baru bagi variable m_kriteria untuk menyimpan nilai matriks dan poin poin kriteria

dg.Rows.Clear();//membersihkan baris, agar bisa digunakan oleh alternatif

dg.Columns.Clear();//membersihkan kolom button1.Text = "Simpan Alternatif";//teks berganti

inisialisasi_tabel();//lakukan kembali inisialisasi

}

else if (button1.Text == "Simpan Alternatif") {

matriks

= new float[alternatif.Length][];//hampir sama, yang ini untuk menyimapn alternatif

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

(5)

A-5

for (int j = 0;j<alternatif.Length;j++) {

matriks[i][j] = float.Parse(dg[j+1,i+1

].Value.ToString()); } }

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

m_alternatif.Add(new Data(alternatif,matri ks));

}

button1.Text = "Selesai"; }

else if (button1.Text == "Selesai") {

pengumpulan x

= new pengumpulan(m_kriteria,m_alternatif);//membuat form untuk mengumpulkan data

x.ShowDialog();//menampilkannya

data_hasil = x.da;//variabel yang menyimpan data data calon

y

= new Nilai(data_hasil,m_kriteria,m_alternatif);//membuat form hasil menampilkan hasil dari peritungan AHP

y.ShowDialog();//menampilkannya. dg.Rows.Clear();

dg.Columns.Clear(); //dg.Rows.Add();

dg.Columns.Add("C","Nama/Bidang"); for (int i = 0;i<5;i++)

{

dg.Rows.Insert(i,data_hasil[(y.kandidat[i] .index/2)-1].nama);

dg.Columns.Add("C",bidang[i]); }

data_sat[0] = new data_pen[5]; button1.Text = "Tahap 2";

(6)

A-6

else if (button1.Text == "Tahap 2") {

for (int i = 0;i<5;i++) {

data_sat[0][i].nama = dg[0,i].Value.ToString();

data_sat[0][i].index = 0; data_sat[0][i].free = true;

data_sat[0][i].prio = new List<sbyte>(); int max;

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

max = 4-j;

for (int k = 0;k<5;k++) {

if (sbyte.Parse(dg[k+1,i].Value.To String()) == (sbyte)max)

{

data_sat[0][i].prio.Add((sbyte

)k); break; } } } }

dg.Rows.Clear(); dg.Columns.Clear();

dg.Columns.Add("C","Bidang/Nama"); for (int i = 0;i<5;i++)

{

dg.Columns.Add("C",data_hasil[(y.kandidat[ i].index/2)-1].nama);

dg.Rows.Insert(i,bidang[i]); }

data_sat[1] = new data_pen[5]; button1.Text = "Proses..."; }

(7)

A-7

{

for (int i = 0;i<5;i++) {

data_sat[1][i].nama = dg[0,i].Value.ToString();

data_sat[1][i].index = 0; data_sat[1][i].free = true;

data_sat[1][i].prio = new List<sbyte>(); int max;

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

max = 5-j;

for (int k = 0;k<5;k++) {

if (sbyte.Parse(dg[k+1,i].Value.To String()) == (sbyte)max)

{

data_sat[1][i].prio.Add((sbyte

)k); break; } } } } gale_shapley(); } }

public struct data_pen {

public string nama { get; set; } public List<sbyte> prio { get; set; } public sbyte index { get; set; } public bool free { get; set; } }

sbyte ind = 0; void gale_shapley() {

(8)

A-8

{

if (data_sat[1][data_sat[0][ind].prio[data_sat [0][ind].index]].free)

{

data_sat[1][data_sat[0][ind].prio[data_sat [0][ind].index]].index = ind;

data_sat[1][data_sat[0][ind].prio[data_sat [0][ind].index]].free = false;

data_sat[0][ind].free = false;

} else {

for (int i = 0;i<5;i++) {

if (data_sat[1][data_sat[0][ind].prio[ data_sat[0][ind].index]].prio[i] == ind)

{

data_sat[1][data_sat[0][ind].prio[ data_sat[0][ind].index]].index = ind;

data_sat[0][ind].free = false; break;

}

else if (data_sat[1][data_sat[0][ind]. prio[data_sat[0][ind].index]].prio[i] ==

data_sat[1][data_sat[0][ind].prio[data_sat[0][ind].index]].ind ex)

break; }

}

data_sat[0][ind].index++;

MessageBox.Show(data_sat[1][data_sat[0][ind].p rio[data_sat[0][ind].index]].index.ToString()+" :

"+data_sat[0][data_sat[1][data_sat[0][ind].prio[data_sat[0][in

d].index]].index].nama); }

dg.Columns.Clear(); dg.Rows.Clear();

(9)

A-9

dg.Columns.Add("C","Kandidat"); for (int i = 0;i<5;i++)

{

dg.Rows.Add();

dg[0,i].Value = data_sat[1][i].nama; dg[1,i].Value =

data_sat[0][data_sat[1][i].index].nama; }

}

bool t_hab() {

for (int i = 0;i<5;i++) {

if (data_sat[0][i].free == true) {

ind = (sbyte)i; return true; }

}

return false; }

} }

2. Pengumpulan.cs /*

* Created by SharpDevelop. * User: asus

* Date: 7/21/2014 * Time: 6:10 PM *

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

*/

using System;

using System.Drawing;

using System.Collections.Generic;

(10)

A-10

using System.Threading;

namespace AHPTest {

/// <summary>

/// Description of pengumpulan. /// </summary>

public partial class pengumpulan : Form {

Data krit;

List<Data>alternatif; int count = 1;

public hasil [] da;

public pengumpulan(Data krit,List<Data>alternatif) {

//

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

//

InitializeComponent(); this.krit = krit;

this.alternatif = alternatif; generate();

//

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

// }

void generate() {

DataGridViewComboBoxColumn x1;

dg.Columns.Insert(0,new DataGridViewTextBoxColumn( ));

dg.Columns[0].HeaderText = "No.";

dg.Columns.Insert(1,new DataGridViewTextBoxColumn( ));

(11)

A-11

x1 = new DataGridViewComboBoxColumn(); x1.DataSource = alternatif[i-2].keterangan; x1.FlatStyle = FlatStyle.Flat;

x1.HeaderText = krit.keterangan[i-2]; dg.Columns.Insert(i,x1);

//dg.Rows.Add(); }

/*x1 = new DataGridViewComboBoxColumn(); x1.DataSource = alternatif[alternatif.Count-1].keterangan;

x1.FlatStyle = FlatStyle.Flat; x1.HeaderText =

krit[0].keterangan[krit[0].keterangan.Length-1];

dg.Columns.Insert(alternatif.Count+1,x1);*/ /*string [] bidang = new

string[]{"Kaderisasi","Syiar","Kewirausahaan","Akkom","LSO-IT"};

string [] nomor = new string[]{"1","2","3","4","5"}; for (int i = 1;i<6;i++) {

x1 = new DataGridViewComboBoxColumn(); x1.DataSource = nomor;

x1.FlatStyle = FlatStyle.Flat; x1.HeaderText = bidang[i-1];

dg.Columns.Insert(alternatif.Count+i+1,x1); }*/

/*for (int i = 2;i<alternatif.Count+7;i++) {

dg.Columns[i].Width = 1107/(alternatif.Count+6);

}

dg.Columns[0].Width = 40; dg.Columns[1].Width = (2*(1107/(alternatif.Count+6)))-40;*/ dg.Rows.Add();

dg.Rows[0].Cells[0].Value = "1";

(12)

A-12

void Button1Click(object sender, EventArgs e) {

count++;

dg.Rows.Add();

dg.Rows[count-1].Cells[0].Value = count.ToString();

}

public struct hasil {

public string nama { get; set; } public int [] nilai_p { get; set; } /*public string [] minat { get; set; } public bool habis { get; set; }

public bool free { get; set; } public int index { get; set; }*/ }

void Button2Click(object sender, EventArgs e) {

DataGridViewComboBoxCell x1; //float jumlah = 0f;

da = new hasil[count];

for (int i = 0;i<count;i++) {

da[i].nilai_p = new int[krit.keterangan.Length]; da[i].nama =

dg.Rows[i].Cells[1].Value.ToString();

for (int j = 2;j<alternatif.Count+2;j++) {

x1 = (DataGridViewComboBoxCell)dg[j,i]; da[i].nilai_p[j-2] =

x1.Items.IndexOf(dg[j,i].Value.ToString());

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

(13)

A-13

}

/*da[i].minat = new string [] {dg[alternatif.Count+2,i].Value.ToString(), dg[alternatif. Count+3,i].Value.ToString(), dg[alternatif. Count+4,i].Value.ToString(), dg[alternatif. Count+5,i].Value.ToString(), dg[alternatif. Count+6,i].Value.ToString()}; //MessageBox.Show(i.ToString()); da[i].index = 0;

da[i].free = true; da[i].habis = false;

pb1.Value = (100*(i+1))/count; Thread.Sleep(300);*/ } } } } 3. Nilai.cs /*

* Created by SharpDevelop. * User: asus

* Date: 7/23/2014 * Time: 6:04 PM *

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

*/

using System;

using System.Drawing;

using System.Windows.Forms;

using System.Collections.Generic;

(14)

A-14

/// <summary>

/// Description of Nilai. /// </summary>

public partial class Nilai : Form {

pengumpulan.hasil [] data_hasil; Data m_krit;

List<Data> m_altern; public juara [] kandidat;

public Nilai(pengumpulan.hasil [] data_hasil,Data m_krit,List<Data> m_altern)

{ //

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

//

InitializeComponent();

this.data_hasil = data_hasil; this.m_krit = m_krit;

this.m_altern = m_altern; inisialisasi_tabel2(); //

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

// }

void inisialisasi_tabel() {

dg.Columns.Add("C0","Nama Kandidat"); int hitung = 0;

while (hitung < m_krit.keterangan.Length) {

dg.Columns.Add("C"+(hitung+1).ToString(),"Nila

i Alt"/*m_krit.keterangan[hitung]*/);

dg.Columns.Add("C"+(hitung+2).ToString(),"Nila i Alt");

hitung++; }

(15)

A-15

int hitung1; int bantu ;

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

dg.Rows.Add();

dg[0,i].Value = data_hasil[i].nama; hitung1 = 0;

bantu = 1;

while (hitung1 < hitung) {

dg[bantu++,i].Value = m_krit.prioritas[hitung1].ToString("N4"); dg[bantu++,i].Value =

m_altern[hitung1].prioritas[data_hasil[i].nilai_p[hitung1]].To String("N4");

//MessageBox.Show(bantu.ToString()); hitung1++; } } }

void inisialisasi_tabel2() {

dg.Columns.Add("C0","Peserta"); dg.Columns[0].Width = 120; dg.Columns.Add("C1",""); dg.Rows.Insert(0,"");

dg[0,0].Value = "Kriteria";

dg[1,0].Value = "Eigen Vector(e)";

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

dg.Rows.Insert(i,m_krit.keterangan[i-1]); dg[1,i].Value =

(m_krit.prioritas[i-1]*100f).ToString("N4"); }

dg.Rows.Insert(m_krit.keterangan.Length+1, "Total"

);

(16)

A-16

float jlh;

while (k<data_hasil.Length) {

jlh = 0;

dg.Columns.Add("C",data_hasil[k].nama); dg.Columns.Add("C","");

bantu+=2;

dg[bantu-1,0].Value = "Nilai Peserta(n)"; dg[bantu,0].Value = "e x n";

dg.Columns[bantu].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;

dg.Columns[bantu].Width = 50; for (int j

= 1;j<m_krit.keterangan.Length+1;j++) {

dg[bantu-1,j].Value =

(m_altern[j-1].prioritas[data_hasil[k].nilai_p[j-1

]]/m_altern[j-1].prioritas[0]).ToString("N4");

dg[bantu,j].Value =

((m_altern[j-1].prioritas[data_hasil[k].nilai_p[j-1

]]/m_altern[j-1].prioritas[0])*m_krit.prioritas[j-1]*100f).ToString("N2"); jlh += float.Parse(dg[bantu,j].Value.ToStr ing());

}

if (k%2 == 0) {

dg.Columns[bantu-1].DefaultCellStyle.BackColor = Color.Gray;

dg.Columns[bantu].DefaultCellStyle.BackCol or = Color.Gray;

} else {

dg.Columns[bantu-1].DefaultCellStyle.BackColor = Color.White;

dg.Columns[bantu].DefaultCellStyle.BackCol or = Color.White;

(17)

A-17

dg[bantu,6].Value = jlh.ToString(); k++;

}

kandidat = new juara[5]; for (int i =0;i<5;i++) {

kandidat[i].index = 0; kandidat[i].jumlah = 0f;

for (int j = 3;j<bantu+2;j+=2) if (i == 0)

{

if (float.Parse(dg[j,6].Value.ToString()) > kandidat[i].jumlah)

{

kandidat[i].jumlah = float.Parse(dg[j,6].Value.ToString());

kandidat[i].index = (sbyte)j; }

} else {

if ((float.Parse(dg[j,6].Value.ToString()) > kandidat[i].jumlah) && (float.Parse(dg[j,6].Value.ToString() ) <= kandidat[i-1].jumlah) && (sbyte)j !=

kandidat[i-1].index )

{

kandidat[i].jumlah = float.Parse(dg[j,6].Value.ToString());

kandidat[i].index = (sbyte)j; } } } //MessageBox.Show(juara[4].ToString());

dg.Columns[kandidat[0].index].DefaultCellStyle.Bac kColor = Color.DarkOrange;

(18)

].index-A-18

1].DefaultCellStyle.BackColor = Color.DarkOrange;

dg.Columns[kandidat[1].index].DefaultCellStyle.Bac kColor = Color.DodgerBlue;

dg.Columns[kandidat[1

].index-1].DefaultCellStyle.BackColor = Color.DodgerBlue;

dg.Columns[kandidat[2].index].DefaultCellStyle.Bac kColor = Color.DarkGray;

dg.Columns[kandidat[2

].index-1].DefaultCellStyle.BackColor = Color.DarkGray;

dg.Columns[kandidat[3].index].DefaultCellStyle.Bac kColor = Color.DarkOrchid;

dg.Columns[kandidat[3

].index-1].DefaultCellStyle.BackColor = Color.DarkOrchid;

dg.Columns[kandidat[4].index].DefaultCellStyle.Bac kColor = Color.DarkOliveGreen;

dg.Columns[kandidat[4

].index-1].DefaultCellStyle.BackColor = Color.DarkOliveGreen;

}

public struct juara {

public sbyte index; public float jumlah; }

} }

4. Data.cs /*

* Created by SharpDevelop. * User: asus

* Date: 7/23/2014 * Time: 5:39 PM *

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

*/

(19)

A-19

namespace AHPTest {

/// <summary>

/// Inilah variabel yang menyimpan nilai matriks, serta memunyai fungsi untuk memrosesnya dengan algoritma AHP. /// </summary>

public class Data {

public string [] keterangan;//variabel penyimpan bacaan keterangan

float [][] matriks;//variabel penympan matriks float [] kolom;//untuk menyimpan nilai setiap kolom public float [] prioritas;//menyiman nilai eigenvektor yang merupakan nilai prioritas

float [][] temp;//matriks pembantu mencari nilai cr public float CR;//variabel nilai inkonsistensi

public Data(string [] keterangan, float [][] matriks) {

this.keterangan = keterangan;//memindahkan nilai yang ada di parameter keterangan ke variabel keterangan form ini (nilai parameter ini adalah nilai dari form sebelumnya) this.matriks = matriks;//memindahkan nilai yang ada di parameter matriks ke matriks keterangan form ini kolom = new float[keterangan.Length];//membuat tempat nilai yang bisa ditampung kolom sepanjang jumlah poin-poin

prioritas = new float[keterangan.Length];//membuat tempat nilai bagi eigen vektor

temp = new float[keterangan.Length][]; for (int i= 0;i<keterangan.Length;i++) {

(20)

A-20

void proses()//algoritma AHP {

float jlh = 0f,eigen = 0f;//jlh sebagai penampung nilai setiap baris, eigen disini bukan eigen vektor, tapi eigen value

for (int i = 0;i<kolom.Length;i++)//proses untuk mencari jumlah nilai setiap kolom

{

for (int j =0;j<kolom.Length;j++) {

kolom[i] += float.Parse(matriks[j][i].ToSt ring("N4"));

} }

for (int i = 0;i<kolom.Length;i++)//proses membagi nilai setiap sel dengan jumlah nilai kolom yang bersesuaian {

for (int j =0;j<kolom.Length;j++) {

temp[j][i] = float.Parse((float.Parse((mat riks[j][i]).ToString("N4")) / kolom[i]).ToString("N4")); }

}

for (int i = 0;i<kolom.Length;i++)//proses untuk mencari jumlah nilai setiap baris

{

for (int j =0;j<kolom.Length;j++) {

jlh += temp[i][j]; }

prioritas[i] = float.Parse((jlh/(float)kolom.L ength).ToString("N4"));//Nilai eigen vektor dari suatu poin = nilai jumlah baris dari poin yang bersangkutan/banyaknya poin-poin

(21)

A-21

kolom[i] = 0f; }

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

for (int j =0;j<kolom.Length;j++) {

temp[j][i] = float.Parse ((matriks[j][i] * prioritas[i]).ToString("N4"));

} }

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

for (int j =0;j<kolom.Length;j++) {

kolom[i] += temp[i][j]; }

kolom[i] /= prioritas[i]; }

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

jlh += kolom[i]; }

eigen = jlh/(float)kolom.Length; float CI =

(eigen-(float)kolom.Length)/(float)kolom.Length; float RC = 0f;

if ((float)kolom.Length == 4f) RC = 0.9f;

else

(22)

A-22

CR = (CI/RC)*100f; //MessageBox.Show("CR =

"+CR.ToString()+"%",prioritas[0].ToString("N4"));

//MessageBox.Show((prioritas[0]).ToString("N4")+": "+(prioritas[1]).ToString("N4")+":"+(prioritas[2]).ToString("N 4")+":"+(prioritas[3]).ToString("N4"));

(23)

54

Daftar Pustaka

[1] Bong, Ivan. Sudirman, Dodick,Z. 2013. Implementasi Algoritma Gale-Shapley Pada Situs Jejaring Sosial Pencarian Kerja UMN Vacancy. Jurnal Teknik

Informatika, Fakultas Teknologi dan Komunikasi,Universitas Multimedia Nusantara.

[2] GBHO/AD/ART UKMI Al-Khuwarizmi

[3] Handoyo, Tri. 2013. Sistem Pendukung Keputusan Penerimaan Pegawai Dengan Metode AHP. Jurnal Transformasi Media Informasi dan Pengembangan Iptek, 9(2) : 1-24

[4] Haviluddin. Memahami Penggunaan UML (Unified Modelling Language). 2011. Jurnal Mulawarman. 6(1) : 1 – 15

[5] Huang, Chien-Chung. 2008. Cheating by Men in the Gale-Shapley Stable Matching Algorithm.. Jurnal Darmouth College

[6] Latifah, Siti. 2005. Prinsip-prinsip dasar Analytical Hierarchy Process. Jurusan Kehutanan,Universitas Sumatera Utara.

[7] Supriyono. 2007. Sistem Pemilihan Pejabat Struktural Dengan Metode AHP. Jurnal Sekolah Tinggi Teknologi Nuklir – BATAN. halaman 311 – 322

[8] Wahid, Abdul Asep. Sistem Pendukung Keputusan Penentuan Jumlah esanan Barang. Jurnal Algoritma Sekolah Tinggi Teknologi Garut 9(22) : 1-8

(24)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Masalah

Regenerasi merupakan hal yang sangat penting untuk menjaga keberlangsungan suatu organisasi, khususnya UKMI Al-Khuwarizmi. Namun terkadang sering sekali proses regenerasi tidak berjalan semestinya karena berbagai hal. Penyebab dan dampak dari permasalahan tersebut diperlihatkan pada diagram Ishikawa pada Gambar 3.1.

Kurang efektifnya pemilihan Presidium Staf

Prosedur

Material

Teknologi Kurang maksimalnya

kinerja pengurus

Belum adanya Indikator yang Jelas dalam Proses pemilihan

Proses musyawarah yang masih cenderung terlalu subyektif

Belum adanya teknologi dalam proses pemilihan

Gambar 3.1. Diagram Ishikawa Analisis Permasalahan

3.2. Analisis Kebutuhan Sistem

Analisis kebutuhan sistem meliputi analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.

3.2.1. Kebutuhan fungsional sistem

Kebutuhan fungsional yang harus dimiliki oleh sistem pemilihan presidium adalah sebagagi berikut :

1. Sistem dapat menetukan prioritas setiap kriteria

(25)

3. Sistem dapat memilih 5 orang calon presidium dari 20 orang bakal calon presidium yang direkomendasikan

4. Sistem dapat menciptakan pasangan yang stabil antara presidium dan departemen yang ada.

3.2.2. Kebutuhan non-fungsional sistem

Kebutuhan non-fungsional yang dimiliki oleh sistem adalah : 1. Interface sistem mudah dipahami oleh user (pengguna) 2. Sistem memiliki petunjuk penggunaan untuk user

3.3. Pemodelan Sistem

Secara umum, sistem pemilihan presidium ini memiliki dua proses, yaitu proses AHP dan proses Gale-Shapley. Pemodelan kedua proses tersebut akan digambarkan melalui UML (Unified Modelling Language) yang mencakup use case diagram dan sequence diagram. UML merupakan satu kumpulan konvensi pemodelan yang digunakan untuk menentukan atau menggambarkan sebuah sistem software yang terkait dengan objek.[9]

Usecase diagram adalah diagram yang menggambarkan aktor, use case dan

relasinya sebagai suatu urutan tindakan yang memberikan nilai terukur untuk aktor. Sequence diagram menjelaskan interaksi objek yang disusun berdasarkan urutan waktu. Secara mudahnya sequence diagram adalah gambaran tahap demi tahap, termasuk kronologi (urutan) perubahan secara logis dari sistem. [4.]

Pembuatan use case diagram dapat dimulai dengan menjawab pertanyaan berikut : 1. Siapa yang menggunakan sistem?

Jawaban : user

2. Siapa yang diperlukan untuk melaksanakan fungsi pada sistem? Jawaban : Pengurus UKMI Al-Khuwarizmi

3. Apa saja yang dapat dilakukan user pada sistem?

(26)

Gambar 3.2. Use case Diagram Sistem Pemilihan Presidium

User

: AHP : Gale Shapley

Input nilai Kriteria dan alternatif

Menampilkan nilai

Eigen Vector dan calon Presidium terpilih

Input Preference list

Calon presidium dan departemen

Pasangan yang stabil antara calom presidium

dan departermen

Gambar 3.3. Sequence Diagram untuk Sistem Pemilihan Presidium

Proses analytical

hierarchi process

Proses

Gale-Shapley <<extends>> <<extends>>

Sistem Pemilihan Presidium

user

Aplikasi

Pemilihan

(27)

Admin menginputkan kriteria dan alternatif

Inputan diproses dengn Algoritma AHP

Hasil dari AHP akan diproses dalam Algoritma Gale-SHaley

Menamilkan Hasil Pasangan Stabil

(28)

User

: Eigen Vector Kriteria

: Eigen Vector Alternatif

: Eigen Vector Akhir

Input daftar Kriteria dan nilai

Nilai Eigen Vector kriteria

Input daftar Alternatif dan nilai

Nilai Eigen Vector alternatif

Menampilkan nilai Eigen vector dan Calon presidium

(29)

Admin menginputkan kriteria dan alternatif

Mencari eigen vector kriteria

mencari eigen vector alternatif

Mengalikan matriks kriteria dan alternatif

Menampilkan hasil AHP

(30)

User

Gale Shapley

Nilai

Preference list Calon presidium

Nilai

Preference list

Departemen

Pasangan yang stabil antara calon Presidium

[image:30.595.215.405.100.418.2]

dan departemen

(31)

input 5 pasnag bidang dan calon presidium

membuat preference list antara bidang dan residium

calon presdium memilih bidang

Bidang sudah dipilih

Bidang menerima calon presidium

Semua sudah berasangan

Menamilkan hasil pasangan stabil Tidak

Ya Tidak

Memeriksa preference list Ya

[image:31.595.143.501.177.521.2]

Bidang memilih presdium yg memiliki pref. list tertinggi

(32)

3.4. Flowchart Sistem

3.4.1. Flowchart sistem secara umum

Start

Input kriteria, alternatif.nilai perbandingan

Menampilkan nama calon

presidium yang terpilih

Input nama departemen dan nilai preference list

Menampilkan pasangan yang

stabil antara presidium dan

departemen

End Proses AHP

[image:32.595.253.370.111.717.2]

Proses Gale-Shapley

(33)

3.4.2. Flowchart proses AHP

START

Input calon presdium dan kriteria

Membuat matriks perbandingan

kriteria

Mencari eigen vector kriteria

Mencari eigen vektor alternatif sementara

(amat baik,baik, cukup, kurang)

Memasukkan nilai eigen alternatif

sementara ke calon presidium

Menghitung nlai setiap calon

presdium

Calon presidium dengan nilai

tertinggi

[image:33.595.250.343.186.691.2]

STOP

(34)

3.4.3. Flowchart proses Gale-Shapley

Start

Set input (Presidium) Set input (Bidang)

Presidium (i) belum ada pilihan

Bidang Sudah di pilih Iya

Bidang lebih sesuai dengan Presidium (i)

Iya

Bidang memutar pilihan ke presidium (i) Presidium (i)

sebelumnya=single

Semua sudah berpasangan

Iya

Pasangan bidang presidium yang

sesuai Iya

End

Tidak Tidak

Pasangkan bidang dengan Presidium

(i)

Tidak

Presidium tidak memiliki pasangan

[image:34.595.136.495.104.723.2]

Tidak

(35)

3.5. Perancangan Antarmuka Sistem

Rancangan program akan diimplementasikan dengan menggunakan SharpDevelop 4.1.

[image:35.595.120.507.159.406.2]

3.5.1. Form utama

Gambar 3.12. Tampilan Rancangan Form Utama Keterangan :

1. Datagridview

Datagridview berfungsi untuk menampilkan tabel agar user dapat mengisi

nilai untuk matriks kriteria, matriks alternatif, dan nilai preference list calon presidium.

2. Button Simpan Kriteria

Button ini berfungsi untuk menyimpan nilai yang dimasukkan ke

datagridview 1

(36)
[image:36.595.115.553.97.317.2]

3.5.2. Form nilai

Gambar 3.13. Tampilan Form Nilai Keterangan :

1. Datagridview

Datagridview ini berfungsi untuk menampilkan nilai eigen vector dari

kriteria dan alternatif

2. Label

Label ini berfungsu untuk menunjukkan 5 calon presidium yang meiliki

nilai eigen vector

3. Button penentuan penempatan bidang

1

(37)

3.5.3. Form pengumpulan

Gambar 3.14. Tampilan Form Pengumpulan Keterangan :

1. Datagridview

Datagridview ini berfungsi untuk memasukkan nama calon presidium

2. Button Tambah Data

Button ini berfungsi untuk menambah baris pada datagridview

3. Button Selesai

Button ini berfungsi untuk menyimpan semua data yang dimasukkan di

datagridview

3 2

(38)

BAB IV

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Sistem ini dibangun dengan menggunakan SharpDevelop 4.1. Sistem ini memiliki tiga matriks, yaitu :

1. Matriks kriteria yang berfungsi untuk menyimpan data kriteria calon presidium

2. Matriks alternatif sementara yang berfungsi untuk menyimpan data

alternatif sementara. Alternatif sementara yang dimaksud adalah “Amat Baik”, “Baik”, “Cukup”, “Kurang”.

3. Matriks alternatif yang berfungsi untuk menyimpan 20 nama calon presidium.

Pada sistem ini terdapat 3 form yang terdiri dari form menu utama, form nilai, dan form pengumpulan.

4.1.1. Form menu utama

(39)
[image:39.595.120.508.81.313.2]

Gambar 4.1. Tampilan Form Datagrid yang Pertama

[image:39.595.148.533.399.632.2]

Gambar 4.2. adalah datagrid yang kedua yang digunakan untuk mengisi nilai perbandingan dari setiap alternatif.

Gambar 4.2. Tampilan Datagrid Kedua

Hasil dari proses AHP yang ada di Gambar 4.1 dan Gambar 4.2 akan ditampilkan di Gambar 4.7, Gambar 4.8, Gambar 4.9 dan Gambar 4.10

(40)
[image:40.595.147.534.80.316.2]

Gambar 4.3. Tampilan Datagrid Ketiga

[image:40.595.150.535.399.631.2]

Gambar 4.4 merupakan tampilan datagrid untuk memasukkan nilai preference list dari penyeleksi.

Gambar 4.4. Tampilan Datagrid Keempat

(41)
[image:41.595.146.536.82.331.2]

Gambar 4.5. Tampilan Datagrid Kelima 4.1.2. Form pengumpulan

Form pengumpulan merupakan suatu tampilan yang berisi form untuk memberikan

nilai kepada 20 alternatif, apakah nilainya Amat Baik, Baik, Cukup atau Kurang. Hingga nantinya, nilai eigen vector untuk 20 alternatif di setiap kriteria adalah nilai eigen vector dari nilai “Amat Baik”,”Baik”, “Cukup”, dan “Kurang” sesuai dengan

yang diberikan pada Tampilan form pengumpulan yang dapat dilihat pada Gambar 4.3.

[image:41.595.114.500.502.728.2]
(42)

4.1.3. Form nilai

[image:42.595.114.537.167.361.2]

Form nilai merupakan tampilan nilai eigen value dari kriteria dan alternatif yang telah diproses. Tampilan form nili dapat dilihat pada Gambar 4.7 – Gambar 4.10.

Gambar 4.7. Tampilan Form Nilai 1

[image:42.595.114.538.406.605.2]
(43)
[image:43.595.123.505.85.261.2]

Gambar 4.9. Tampilan Form Nilai 3

Gambar 4.10. Tampilan Form Nilai 4

Pada Gambar 4.7 –Gambar 4.10, terdapat kolom “Eigen vector(e)”. Kolom ini berisi nilai eigen vector untuk kriteria. Dalam tampilan ini, masing-masing nilai eigen vector telah dikalikan 100 agar lebih mudah melihat mana yang meiliki eigen

vector yang paling tinggi.

Kolom “Nilai Peserta(n)” adalah nilai eigen vector khusus untuk alternatif

“Ali” yang tadi dimasukkan di form pengumpulan. Di kolom “e x n”, nilai di kolom eigen vector dikalikan dengan kolom “nilai peserta” lalu ditotal semuanya. Hal ini

dilakukan untuk melihat di siapa alternatif yang menduduki 5 besar.

Nilai eigen vector 20 alternatif untuk masing-masing kriteria, dapat dilihat

[image:43.595.121.505.309.484.2]
(44)

4.2. Pengujian

Pada tahap ini, sistem akan dianalisis atau dihitung secara manual apakah sistem ini berjalan sesuai yang diharapkan atau tidak.

4.2.1. Pengujian proses AHP

Dalam proses AHP, ada tiga proses perhitungan yang dilakukan, yaitu : 1. Perhitungan eigen vector kriteria

Kriteria yang digunakan dalam proses AHP adalah : a. IMK

b. Usia Mentoring c. Training Pengurus d. Hafalan Al-Quran

e. Jumlah Kelompok Mentoring

Matriks nilai kriteria yang telah dimasukkan adalah : 1.0000 3.0000 2.0000 4.0000 2.0000 0.3300 1.0000 0.3300 0.5000 0.3300 0.5000 3.0000 1.0000 2.0000 3.0000 0.2500 2.0000 0.5000 1.0000 2.0000 0.5000 3.0000 0.3300 0.5000 1.0000

Jumlah setiap kolom : Kolom 1 : 2.58 Kolom 2 : 12 Kolom 3 :4.16 Kolom 4 :8 Kolom 5 : 8.33

Setiap cell dibagi dengan jumlah kolom masing-masing, hasilnya adalah :

(45)

Eigen vector =

) (

_

_ _

kriteria kolom

jumlah

baris setiap

jumlah

0.3717 0.0785 0.2589 0.1498 0.1411

Dari hasil eigen vector di atas, dapat dilihat bahwa kriteria IMK merupakan prioritas pertama dengan nilai eigen tertinggi, yaitu 0.3717. Sedangkan usia mentoring merupakan prioritas terakhir dengan nilai eigen terendah, yaitu 0.0785

2. Perhitungan eigen vector alternatif

Alternatif sementara yang dimasukkan dalam proses AHP ini adalah a. Amat Baik

b. Baik c. Cukup d. Kurang

Matriks nilai alternatif yang telah dimasukkan adalah : 1.0000 2.0000 3.0000 4.0000

0.5000 1.0000 2.0000 3.0000 0.3300 0.5000 1.0000 2.0000 0.2500 0.3300 0.5000 1.0000

(46)

Kolom 2 : 3.83 Kolom 3 : 6.5 Kolom 4 : 10

Setiap cell dibagi dengan jumlah kolom masing-masing, hasilnya adalah :

0.4808 0.5222 0.4615 0.4000 0.2404 0.2611 0.3077 0.3000 0.1587 0.1305 0.1538 0.2000 0.1202 0.0862 0.0769 0.1000

Eigen vector = jumlah setiap baris / jumlah kolom

0.4661 0.2773 0.1608 0.0958

Tiap eigen vector dibagi dengan nilai eigen yang terbesar, hasilnya adalah :

1.0001 0.5949 0.3449 0.2056

Lalu nilai eigen di atas dimasukkan ke matriks nilai eigen untuk 20 alternatif, hasilnya adalah :

(47)

1.0000 1.0000 0.5951 1.0000 0.3459 0.5951 0.5951 0.5951 0.5951 1.0000 0.3459 0.3459 0.2061 0.3459 0.3459 0.5951 1.0000 1.0000 0.3459 0.3459 0.3459 0.3459 0.3459 0.2061 0.5951 1.0000 1.0000 1.0000 1.0000 1.0000 0.3459 0.5951 0.3459 0.3459 0.3459 1.0000 0.2061 1.0000 0.5510 0.3459 0.3459 1.0000 0.5951 1.0000 0.3459 0.5951 0.5951 0.3459 1.0000 1.0000 0.5951 0.3459 0.5951 0.5951 0.3459 1.0000 0.3459 1.0000 0.3459 0.2061 0.3459 0.5951 0.3459 0.3459 0.2061 0.5951 0.3459 0.5951 0.5951 0.5951 0.2061 0.3459 1.0000 0.3459 0.5951 0.2061 0.2061 0.3459 1.0000 1.0000 0.5951 1.0000 1.0000 0.5951 0.3459

Kolom I : eigen vector 20 alternatif untuk kriteria IMK

(48)

3. Perhitungan eigen vector akhir

Eigen vector akhir = eigen vector kriteria * eigen vector alternatif

Hasil :

0.3699 0.7130 0.7184 0.8040 0.6518 0.3098 0.6584 0.3595 1.0000 0.3653 0.7783 0.5606 0.6490 0.5408 0.7384 0.3458 0.5757 0.4975 0.4740 0.6963

Dari nilai eigen vector di atas, dapat kita simpulkan bahwa :

(49)

1.0000 : eigen vector Winda 0.3653 : eigen vector Anisa 0.7783 : eigen vector Siddiq 0.5606 : eigen vector Nur 0.6490 : eigen vector Lily 0.5408 : eigen vector Dani 0.7384 : eigen vector Ardan 0.3458 : eigen vector Zahra 0.5757 : eigen vector Windi 0.4975 : eigen vector Cut 0.4740 : eigen vector Agung 0.6963 : eigen vector Arif

Alternatif yang memiliki nilai eigen vector tertinggi adalah a. Winda

b. Atika c. Siddiq d. Ardan e. Yusuf

4.2.2. Pengujian proses Gale-Shapley

1. Urutan preference list Calon Presidium

Winda : Syiar, KW, Kaderisasi, Akkom, LSO-IT Atika : Kaderisasi, LSO-IT, KW, Syiar, Akkom Siddiq : KW, Syiar, LSO-IT, Kaderisasi, Akkom Ardan : KW, LSO-IT, Akkom, Kaderisasi, Syiar Yusuf : Kaderisasi, Syiar, KW, Akkom, LSO-IT

2. Urutan preference list Departemen

(50)

3. Proses Gale-Shapley

Putaran I :

Winda memilih Syiar Syiar menerima Winda Atika memlih Kaderisasi Kaderisasi menerima Atika Siddiq memilih KW KW menerima Siddiq

Ardan memilih KW KW menolak Ardan

Yusuf memilih Kaderisasi Kaderisasi memilih Yusuf

(Kaderisasi menolak Atika)

Putaran II :

Ardan memilih LSO-IT LSO-IT menerima Ardan Atika memilih LSO-IT LSO-IT menerima Atika

(LSO-IT menolak Ardan)

Putaran III :

Ardan memilih Akkom Akkom menerima Ardan

4. Pasangan stabil yang terbentuk adalah : Kaderisasi : Yusuf

Syiar : Winda

KW : Siddiq

(51)

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Setelah melakukan implementasi algoritma AHP dan Gale-Shapley pada aplikasi pemilihan presidium, maka diperoleh kesimpulan sebagai berikut :

1. Panjang maksial matriks yang akan diproses dengan algoritma AHP adalah 7 x 7. Jika lebih, maka hasilnya menjadi kurang akurat 2. Algoritma Gale-Shapley tidak hanya bisa digunakan untuk mencari

pasangan stabil antara pria dan wanita saja. Tapi juga bisa digunakan untuk mencari pasangan stabil antara calon presidium dan departemen

5.2. Saran

(52)

5

BAB II

LANDASAN TEORI

2.1. Sistem Pendukung Keputusan

Sistem Pendukung Keputusan merupakan suatu sistem interaktif yang mendukung keputusan dalam proses pengambilan keputusan melalui alternatif-alternatif yang diperoleh dari hasil pengolahan data, informasi dan rancangan model. Sistem Pendukung Keputusan (Decision Support Systems = DSS) adalah suatu sistem informasi yang menggunakan model-model keputusan, basis data, dan pemikiran manajer sendiri, proses modeling interaktif dengan komputer untuk mencapai pengambilan keputusan oleh manajer tertentu.

Menurut Keen dan Scoot Morton, sistem Pendukung Keputusan merupakan penggabungan sumber -sumber kecerdasan individu dengan kemampuan komponen untuk memperbaiki kualitas keputusan. Sistem Pendukung Keputusan juga merupakan sistem informasi berbasis komputer untuk manajemen pengambilan keputusan yang menangani masalah -masalah semi struktur. Menurut Alter, DSS merupakan system informasi intraktif yang menyediakan informasi, pemodelan dan manipulasi data. Sistem digunakan untuk membantu mengambil keputusan dalam situasi yang semi terstruktur dan situasi yang tidak terstruktur, dimana tidak seorangpun mengetahui secara pasti

bagaimana keputusan seharusnya dibuat.

(53)

6

2.2. Analytical Hierarchy Process (AHP)

AHP merupakan salah satu metode untuk membantu menyusun suatu prioritas dari berbagai pilihan dengan menggunakan berbagai kriteria. Karena sifatnya yang multikriteria, AHP cukup banyak digunakan dalam penyusunan prioritas. Sebagai contoh untuk menyusun prioritas penelitian, pihak manajemen lembaga penelitian sering menggunakan beberapa kriteria seperti dampak penelitian, biaya, kemampuan SDM, dan waktu pelaksanaan. [3]. Dalam menyelesaikan permasalahan dengan AHP ada beberapa prinsip yang harus dipahami diantaranya adalah sebagai berikut.

2.2.1. Membuat Hirarki

Sistem yang kompleks bisa dipahami dengan memecahnya menjadi elemen-elemen pendukung, menyusun elemen secara hierarki, dan menggabungkannya atau mensistesisnya.

2.2.2. Penilaian kriteria dan alternatif

(54)
[image:54.595.153.538.120.634.2]

7

Tabel 2.1. Tabel Skala Perbandingan Penilaian Tingkat

Kepentingan Definisi Keterangan

1 sama pentingnya Kedua elemen mempunyai pengaruh yang sama. 3 agak lebih penting

yang satu dari yang lainnya

Pengalaman dan penilaian sangat memihak satu

elemen dibandingkan dengan pasangannya.

5 Cukup penting Pengalaman dan keputusan menunjukkan kesukaan

atas satu aktifitas lebih dari yang lain

7 Sangat penting Pengalaman dan keputusan menunjukkan kesukaan

yang kuat atas satu aktifitas lebih dari yang lain

9 Mutlak lebih penting Satu elemen mutlak lebih disukai dibandingkan

dengan pasangannya, pada tingkat keyakinan

tertinggi. 2,4,6,8 Nilai tengah antara 2

nilai keputusan yang berdekatan

Bila kompromi dibutuhkan

Resiprokal Kebalikan Jika elemen i memiliki salah satu angka dari skala

perbandingan 1 sampai 9 yang telah ditetapkan oleh

Saaty ketika dibandingkan dengan elemen j, maka j memiliki kebalikannya ketika dibandingkan dengan

elemen i Rasio Rasio yang didapat

langsung dari pengukuran

2.2.3. Penentuan prioritas

(55)

8

menghasilkan bobot dan prioritas. Bobot dan prioritas dihitung dengan memanipulasi matriks atau melalui penyelesaian persamaan matematika.

2.2.4. Konsistensi logis

Konsistensi memiliki dua makna. Pertama, objek-objek yang serupa bisa dikelompokkan sesuai dengan keseragaman dan relevansi. Kedua, menyangkut tingkat hubungan antar objek yang didasarkan pada kriteria tertentu. Penghitungan konsistensi logis dilakukan dengan mengikuti langkah-langkah sebagai berikut :

a. Mengalikan matriks dengan proritas bersesuaian. b. Menjumlahkan hasil perkalian per baris.

c. Hasil penjumlahan tiap baris dibagi prioritas bersangkutan dan hasilnya dijumlahkan.

d. Hasil c dibagi jumlah elemen, akan didapat λmaks. e. Indeks Konsistensi (CI) = (λmaks-n) / (n-1)

2.2.5. Contoh penerapan AHP

Contoh penerapan AHP dalam kehidupan adalah penentuan pegawai dalam sebuah instansi. Kriteria yang digunakan adalah :

a. Kedisiplinan b. Prestasi

c. Pengalaman kerja d. Perilaku

(56)

9

Langkah penyelesaian :

[image:56.595.153.494.144.274.2]

a. Penentuan matriks berpasangan kriteria

Tabel 2.2. Matriks Berpasangan

b. Menghitung matriks prioritas kriteria

Pada tahap ini dicari prioritas kriteria untuk nantinya menentukan apakah nilai yang dimasukkan dalam matrik sesuai.

Tabel 2.3. Matriks Prioritas Berpasangan

Angka diatas didapat dari membagi nilai kolom baris dengan jumlah kolom. Prioritas didapat melalui membagi jumlah tiap baris dengan jumlah matriks. c. Menghitung matriks penjumlahan kriteria

Tabel 2.4. Matriks Penjumlahan

[image:56.595.151.520.572.684.2]
(57)

10

[image:57.595.184.435.121.311.2]

d. Menghitung matriks kriteria dengan rasio konsistensi Tabel 2.5. Matriks Rasio Konsistensi

Jumlah rasio = 6.02 Jumlah kriteria (n) = 5

λmaks = Jumlah Rasio / n = 6.02/5 = 1.2

CI = (λmaks-n) / (n-1)= (1.2 – 5) / (5 – 1) = - 0.95 CR = CI/RI = - 0.95/1.12 = - 0.85

Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitungan tersebut bisa DITERIMA.

e. Perhitungna matriks berpasangan untuk KEDISIPLINAN

(58)
[image:58.595.148.508.92.266.2]

11

Tabel 2.6. Matriks Berpasangan KEDISIPLINAN

f. Menghitung matriks prioritas kriteria KEDISIPLINAN

Pada tahap ini dicari prioritas kriteria untuk nantinya menentukan apakah nilai yang dimasukkan dalam matrik sesuai.

Tabel 2.7. Matriks prioritas berpasangan

[image:58.595.153.510.381.504.2]
(59)

12

g. Menghitung matriks penjumlahan kriteria KEDISIPLINAN

Tabel 2.8. Matrik Penjumlahan

h. Menghitung ratio koknsistensi KEDISIPLINAN

Tabel 2.9. Matriks Ratio Konsistensi KEDISIPLINAN

Jumlah rasio = 6.19 Jumlah kriteria (n) = 5

λmaks = Jumlah Rasio / n = 6.19/5 = 1.24

CI = (λmaks-n) / (n-1)= (1.24 – 5) / (5 – 1) = - 0.94 CR = CI/RI = - 0.94/1.12 = - 0.84

(60)

13

i. Menghitung matriks berpasangan BERPRESTASI

Tabel 2.10. Matriks Berpasangan BERPRESTASI

[image:60.595.136.507.82.687.2]

j. Menghitung prioritas matriks kriteria BERPRESTASI Tabel 2.11. Matriks prioritas BERPRESTASI

(61)

14

l. Menghitung ratio konsistensi BERPRESTASI

Tabel 2.13. Ratio Konsistensi BERPRESTASI

Jumlah rasio = 7.06 Jumlah kriteria (n) = 5

λmaks = Jumlah Rasio / n = 7.06/5 = 1.41

CI = (λmaks-n) / (n-1)= (1.41 – 5) / (5 – 1) = - 0.90 CR = CI/RI = - 0.90/1.12 = - 0.80

Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitungan PRESTASI tersebut bisa DITERIMA.

[image:61.595.142.480.103.415.2]

m. Perhitungan matriks berpasangan PENGALAMAN KERJA

(62)

15

n. Menghitung Matriks Prioritas Kriteria PENGALAMAN KERJA Tabel 2.15. Matriks Prioritas Kriteria PENGALAMAN KERJA

o. Menghitung Matriks Penjumlahan Kriteria Pengalaman Kerja Tabel 2.16. Matriks Penjumlahan PENGALAMAN KERJA

p. Menghitung Matriks Rasio Konsistensi PENGALAMAN KERJA Tabel 2.17. Matriks Ratio Konsistensi PENGALAMAN KERJA

Jumlah rasio = 6.35 Jumlah kriteria (n) = 5

λmaks = Jumlah Rasio / n = 6.35/5 = 1.27

(63)

16

Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitunganPengalaman Kerja tersebut DITERIMA.

q. Perhitungan Matriks Berpasangan PERILAKU

Tabel 2.18. Matriks Berpasangan PERILAKU

r. Menghitung Matriks Prioritas Kriteria PERILAKU

Tabel 2.19 Matriks Prioritas Kriteria PERILAKU

(64)

17

[image:64.595.131.492.85.492.2]

t. Menghitung Matriks Rasio Konsistensi PERILAKU

Tabel 2.21. Matriks Rasio Konsistensi PERILAKU

Jumlah rasio = 5.93 Jumlah kriteria (n) = 5

λmaks = Jumlah Rasio / n = 5.93/5 = 1.19

CI = (λmaks-n) / (n-1)= (1.19 – 5) / (5 – 1) = - 0.95 CR = CI/RI = - 0.95/1.12 = - 0.85

Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitungan PERILAKU tersebut bisa DITERIMA. u. Perhitungan Matriks Berpasangan KESEHATAN

Tabel 2.22. Matriks Berpasangan KESEHATAN

(65)

18

[image:65.595.151.514.83.233.2]

w. Menghitung Matriks Penjumlahan Kriteria KESEHATAN Tabel 2.24. Matriks Penjumlahan KESEHATAN

[image:65.595.145.542.88.543.2]

x. Menghitung Matriks Rasio Konsistensi KESEHATAN

Tabel 2.25 Matriks Rasio Konsistensi KESEHATAN

(66)

19

λmaks = Jumlah Rasio / n = 6.96/5 = 1.39

CI = (λmaks-n) / (n-1)= (1.39 – 5) / (5 – 1) = - 0.90 CR = CI/RI = - 0.90/1.12 = - 0.81

Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitungan KESEHATAN tersebut bisa DITERIMA.

y. Hasil Penilaian Kriteria berdasarkan Sub Kriteria

Tabel 2.26 Hasil Penilaian Kriteria berdasarkan Sub Kriteria

Setelah hasi di atas telah didapatkan, maka diinputkan nama pegawai dan diberikan nilai berdasarkan subkriteria, lalu nilai yang tertinggi itulah yang lulus pada proses AHP.

2.3. Algoritma Gale-Shapley

Pada tahun 1962, David Gale dan Lloyd Shapley memperkenalkan studi pencocokan untuk membuat alokasi himpunan pasangan-pasangan yang stabil yang kemudian dikenal dengan Stable Marriage Problem. Penyelesaian Stable Marriage Problem bertujuan untuk mencari pasangan-pasangan yang stabil dari sejumlah n pria dan sejumlah n wanita yang memiliki urutan ketertarikan sendiri terhadap calon pasangan lainnya yang berbeda jenis.

(67)

20

berdasarkan tingkat ketertarikan mulai dari yang paling diminati, yang kedua diminati, dan seterusnya hingga ke-n diminati apabila tidak cocok dengan orang yang ke –(n-1).

2.3.1. Stable Marriage Problem

Stable Marriage Problem diperkenalkan pertama kali oleh David Gale dan Lloyd

Shapley dalam paper seminar mereka yang berjudul College Admissions and Stability of Marriage pada 1962. Penyelesaian Stable Marriage Problem bertujuan

untuk mencari pasangan-pasangan yang stabil dari sejumlah n pria dan sejumlah n wanita yang memiliki urutan ketertarikan sendiri terhadap calon pasangan lainnya yang berbeda jenis. Peneliti menyatakan bahwa untuk setiap jumlah pria dan wanita yang sama, selalu memungkinkan untuk menyelesaikan Stable Marriage Problem dan membuat matching tersebut stabil. [1]

Misalnya, sejumlah n pria kita notasikan dengan (A,B,C,...) dan sejumlah n wanita kita notasikan dengan (a,b,c,...). Ketika kita memiliki pasangan X-a dan Y-b, jika X lebih menyukai b dibandingkan dengan pasangannya saat ini yaitu a dan

b lebih menyukai X dibandingkan pasangannya saat ini, yaitu Y, maka X-b disebut

pasangan yang tidak stabil (dissatisfied pair). Himpunan M dikatakan stabil apabila tidak memiliki pasangan yang tidak stabil (dissatisfied pair).

Contoh penerapan algoritma Gale-Shapley dapat dilihat dalam contoh berikut :

[image:67.595.165.516.684.750.2]

2.3.1.1.Tentukan preference list antara wanita dan pria

Tabel 2.27. Women Preferences

Women Men

Joe Brian George Matt Jim

(68)

21

Sarah 3 5 1 2 4

Susan 5 4 2 1 3

Kelly 1 3 5 4 2

[image:68.595.166.514.86.172.2]

Dianne 4 2 3 5 1

Tabel 2.28 Men Preferences

Men Women

Amy Sarah Susan Kelly Dianne

Joe 5 1 2 4 3

Brian 4 1 3 2 5

George 5 3 2 4 1

Matt 1 5 4 3 2

Jim 4 3 2 1 5

Pada Tabel 2.27 dan Tabel 2.28 kita dapat melihat preference list dari pria dan wanita. Angka 1 menandakan urutan prefernce list yang paling tinggi (yang paling diprioritasan), dan angka 5 menandakan urutan preference list yang paling rendah (prioritas terakhir).

3. Selanjutnya data pada tabel 2.27 dan Tabel 2.28 dimasukkan dalam proses Gale-Shapley dengan memperhatikan kaidan berikut :

a. Setiap pria akan melamar wanita yang menjadi prioritas utamanya, sedangkan setiap wanita akan mengikuti aturan berikut :

b. Jika seorang wanita belum bertunangan dan belum dilamar, maka ia harus menunggu.

c. Jika seorang wanita belum bertunangan, tetapi sedang dilamar, maka ia akan menerima lamaran tersebut.

d. Jika seorang wanita belum bertunangan, tetapi telah memiliki banyak lamaran (lebih dari satu), maka ia akan menerima lamaran yang menduduki preference list tertinggi.

(69)

22

Putaran I:

Joe melamar Sarah Sarah menerima Joe

Brian melamar Sarah Sarah menolak Brilian George melamar Dianne Dianne menerima George Matt melamar Amy Amy menerima Matt

Jim melamar Kelly Kelly menerima Jim

Putaran II:

Brian melamar Kelly Kelly menolak Brian

Putaran III:

Brian melamar Susan Susam menerima Brian

Pasangan Stabil :

Joe dan Sarah Brian dan Susan George dan Dianne Matt dan Amy Jim dan Kelly

(70)

23

2.4. UKMI Al-Khuwarizmi

Awalnya organisasi ini merupakan sebuah organisasi Islam yang berada di bawah Program Studi S1 Ilmu Komputer FMIPA USU. Organisasi tersebut bernama BKM (Badan Kenadziran Mushalla) Al-Khuwarizmi.

BKM Al-Khuwarizmi didirikan dan dibentuk sejak Program Studi S1 Ilmu Komputer dibentuk, yaitu tahun 2002/2003. Saat itu, mahasiswa membuat forum-forum diskusi dan kajian keislaman untuk mahasiswa muslim.

Beranjak dari kegiatan itu, dilakukan kegiatan yang rutin untuk meningkatkan persaudaraan islam sesama mahasiswa muslim sebagai pendukung kegiatan kuliah. Selain itu, di Program Studi S1 Ilmu Komputer terdapat mushalla yang belum ada pengelolanya, sehingga belum ada yang memanfaatkan mushalla ini untuk kegiatan keislaman.

Kegiatan awal yang dilakukan oleh mahasiswa muslim di Ilmu Komputer ini adalah membuat sebuat forum diskusi dan pengajian-pengajian kecil di lingkungan kampus. Dari kegiatan ini, dihasilkanlah mahasiswa muslim stambuk 2002 dan 2003 yang peduli dengan kehidupan kampus yang Islami. Dan dibentuklah panitia untuk acara Buka Puasa Bersama di kampus S1 Ilmu Komputer yang juga menjadi tonggak kegiatan keislaman di Ilmu Komputer.

Pada tanggal 25 Maret 2005 terbentuklah sebuah organisasi yang bernama BKM Al-Khuwarizmi yang diketuai oleh Hamdani, S.Kom (2005-2006). Dan pada tanggal 29-30 Agustus 2006 dilaksanakan Musyawarah Besar BKM Al-Khuwarizmi yang pertama.

Sejarah ketua umum BKM Al-Khuwarizmi : 1. Hamdani (2005-2006)

2. Yunandar Arif Oktavianto (2006-2007) 3. Herry Wibowo (2007-2008)

(71)

24

9. Zulfikri (2013-sekarang)

Pada tahun 2012, terbentuklah fakultas baru di USU yaitu Fakultas Ilmu Komputer dan Teknologi Informasi (Fasilkom-TI) USU dengan membawahi 2 program studi, yaitu Program Studi S1 Ilmu Komputer dan Program Studi S1 Teknologi Informasi. Oleh karena itu, pada tanggal 30 Juni 2012, BKM Al-Khuwarizmi resmi menjadi UKMI Al-Al-Khuwarizmi yang langsung berada di bawah Dekanat Fasilkom-TI USU. [2]

2.4.1. Struktur Organisasi

Keterangan struktur :

1. Pelindung (Dekan Fasilkom-TI)

2. Penasihat (Pembantu Dekan III Fasilkom-TI) 3. Pembina

4. Dewan Konsultatif

5. Ketua Umum UKMI Ad-Dakwah USU

6. Departemen Kaderisasi UKMI Ad-Dakwah USU

(72)

25

8. Departemen Keputrian UKMI Ad-Dakwah USU 9. LMAI UKMI Ad-Dakwah USU

10. Ketua Umum 11. Sekretaris Umum 12. Biro Kesekretariatan 13. Bendahara Umum

14. Bidang Pembinaan Anggota

a. Divisi Database dan Pembinaan b. Divisi Pelatihan

15. BidangAkademik dan Profesi a. Divisi Akademik Kader

b. Divisi Pengembangan Kompetensi 16. Bidang Syiar

a. Divisi Humas

b. Divisi Kreativitas dan Multimedia 17. Bidang Kewirausahaan

a. Divisi Dana dan Usaha b. Divisi Wirausaha Muda 18. Bidang Keputrian

(73)

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Proses regenerasi merupakan hal yang sangat penting dalam roda organisasi, khususnya organisasi yang ada di kampus. Namun terkadang sering sekali terdapat masalah dalam proses pemilihan pengurus yang baru.Masalah yang sering sekali terjadi adalah pengurus baru merasa ditempatkan di bidang yang kurang sesuai dengan potensi dirinya. Sehingga mengakibatkan pengurus baru tersebut tidak maksimal dalam mengerjakan pekerjaannya. Salah satu organisasi yang pernah mengalami masalah yang sama adalah UKMI Al-Khuwarizmi.

UKMI Al-Khuwarizmi adalah salah satu organisasi keislaman yang ada di Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara. UKMI Al-Khuwarizmi terdiri dari enam departemen, yaitu Departemen Kaderisasi, Deartemen Syiar, Departemen Akademi dan Profesi, Departemen Keputrian, Departemen Kewirausahaan dan Departemen LSO-IT (Mentoring Agama Islam). Organisasi ini dipimpin oleh satu orang ketua umum dan presidium (ketua departemen). Proses pemilihan pengurus baru biasanya ditentukan oleh tim formatur yang terdiri dari pengurus yang lama berdasarkan pengamatan subjektif. Sehingga mengakibatkan pengurus yang baru merasa tidak ditempatkan di bidang ang sesuai dengan potensinya. Oleh karena itu dibutuhkan suatu aplikasi yang dapat membantu pengurus UKMI Al-Khuwarizmi untuk mengambil keputusan berdasarkan data yang objektif sehingga dapat meminimalisir masalah yang terjadi. Aplikasi yang dimaksud adalah aplikasi yang mengimplementasikan Algoritma Analytical Hierarchy Process dan Algoritma Gale-Shapley.

(74)

2

pendapat dari pengambil keputusan, pengambil keputusan lebih dari satu orang, serta ketidakakuratan data yang tersedia. Konsep metode AHP adalah merubah nilai-nilai kualitatif menjadi nilai kuantitatif. Sehingga keputusankeputusan yang diambil bisa lebih obyektif. [7]

Sedangkan Algoritma Gale-Shapley adalah suatu algoritma yang bertujuan untuk memasangkan sejumlah n pria dan n wanita untuk mencari pasangan yang stabil. [5] Konsep ini dapat dilakukan dengan dengan syarat monogami (satu pria untuk satu wanita,dan sebaliknya) dan heteroseksual (antara pria dan wanita) berdasarkan preference list yang dibuat oleh pria dan wanita. Namun pada penelitian ini, algoritma Gale-Shapley tidak ditujukan untuk mencari pasangan pria dan wanita, namun digunakan untuk mencari presidium yang sesuai dengan bidang yang ada di UKMI Al-Khuwarizmi.

1.2. Rumusan Masalah

Rumusalan masalah dalam penelitian ini adalah bagaimana mengimplementasikan AHP dengan Gale-Shapley untuk menentukan presidium di UKMI Al-Khuwarizmi

USU

1.3. Batasan Masalah

1. Bahasa pemrograman yang digunakan adalah C# 2. Sample yang digunakan sebanyak 20 orang

3. Departemen Keputrian tidak diikutkan dalam penelitian ini

4. Departemen yang diikutkan dalam Algoritma AHP dan Gale-Shapley : a. Departemen Kaderisasi

b. Departemen Syiar

c. Departemen Kewirausahaan d. Departemen Akademi dan Profesi

e. Departemen LSO-IT (Mentoring Agama Islam)

(75)

3

c. Lulus Training Kaderisasi tingkat 2

d. Memiliki minimal satu kelompok mentoring e. Sudah mentoring selama 2 tahun

1.4. Tujuan Penelitian

Tujuan penelitian ini adalah mempermudah ketua umum organisai untuk menentukan presidium departemen di UKMI Al-Khuwarizmi Fasilkom-TI USU degan menggunakan algoritma AHP dan Gale-Shapley

1.5. Manfaat Penelitian

Penelitian ini diharapkan dapat bermanfaat untuk mempermudah pengambilan keputusan dalam pemilihan presidium departemen UKMI Al-Khuwarizmi dengan algoritma AHP dan Gale-Shapley

1.6. Metodologi Penelitian

Berikut ini adalah tahapan - tahapan yang dilaksanakan dalam pelaksanaan penelitian ini :

1. Studi Literatur

Pada tahap ini dilakukan pencarian dan pengumpulan referensi yang berhubungan dengan Algoritma AHP dan Gale-Shapley dalam bentuk buku, jurnal ataupun skripsi yang telah dilakukan oleh mahasiswa lain. 2. Analisis masalah

Data yang diperoleh dari hasil studi literatur dianalisis untuk merencanakan pembuatan sistem yang sesuai dengan kebutuhan.

3. Perancangan Sistem

(76)

4

4. Pengujian Sistem

Sistem akan diuji dengan diberi berbagai inputan 5. Implementasi Sistem

Pada tahap ini, sistem akan diimplementasikan dengan bahasa pemrograman C# untuk menerapkan algoritma AHP dan Gale-Shapley 6. Dokumentasi

Pada tahap ini dilakukan penyusunan laporan dari hasil analisis dan perancangan sistem dalam format penulisan penelitian.

1.7. Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :

Bab I Pendahuluan

Berisi latar belakang, perumusan masalah, batasan masalah, tujuan,

manfaat penelitian, metodologi penelitian dan sistematika penulisan.

Bab II Landasan Teori

Bab ini menjelaskan tentang dasar teori yang digunakan sebagai

sumber referensi untuk algoritma AHP dan Gale-Shapley

Bab III Analisis dan Perancangan

Bab ini menjelaskan tentang analisis mengenai proses kerja algoritma

AHP dan Gale-Shapley pada sistem pemilihan presidium

Bab IV Algoritma dan Implementasi

Bab ini menjelaskan tentang algoritma dan implementasi dari aplikasi.

Bab V Kesimpulan dan Saran

Bab ini menjelaskan tentang kesimpulan yang dapat diperoleh setelah

menyelesaikan tugas akhir ini dan saran-saran untuk pengembangan

(77)

vi

ABSTRAK

Proses regenerasi merupakan hal yang sangat penting bagi sebuah organisasi, khususnya UKMI Al-Khuwarizmi. Namun dalam proses regenerasi presidium departemen di UKMI Al-Khuwarizmi, seringkali penilaian terhadap calon presidium diberikan secara subjektif. Sehingga proses pemilihan menjadi kurang akurat dan dapat menimbulkan masalah ke depannya. Oleh karena itu, masalah yang diangkat dalam penelitian ini adalah membuat aplikasi yang dapat mendukung keputusan untuk memilih presidium UKMI Al-Khuwarizmi berdasarkan berbagai kriteria tertentu. Aplikasi menggunakan dua algoritma, yaitu AHP dan Gale-Shapley. Nilai matriks kriteria dan alternatif yang telah ditentukan akan diolah dengan algoritma AHP untuk mendapatkan nilai eigen vector dari 20 alternatif yang dimasukkan. Sehingga menghasilkan 5 orang calon presidium yang memiliki nilai eigen vector yang tertinggi. Lalu 5 orang calon presidium tersebut akan diolah lagi dengan algoritma Gale-Shapley untuk menciptaan pasangan yang stabil antara calon presidium dengan departemen yang ada.

(78)

vii

IMPLEMENTATION OF ANALYTICAL HIERARCHY PROCESS AND GALE-SHAPLEY ALGORITHM FOR DETERMINING THE LEADER

OF DEPARTMENT OF UKMI AL-KHUWARIZMI FACULTY OF COMPUTER SCIENCE AND INFORMATION

TECHNOLOGY USU

ABSTRACT

Regeneration is a im

Gambar

Gambar 3.7. Sequence Diagram untuk Proses Gale-Shapley
Gambar 3.8. Activity Diagram Algoritma Gale-Shapley
Gambar 3.9. Flowchart sistem secara umum
Gambar 3.10. Flowchart Proses AHP
+7

Referensi

Dokumen terkait

Pengamatan kerebahan dilakukan dengan cara menghitung anakan yang rebah saat menjelang panen yang dinyatakan dengan % dari jumlah anakan per individu tanaman

Dengan memperhatikan komponen Garis Kemiskinan (GK), yang terdiri dari Garis Kemiskinan Makanan (GKM) dan Garis Kemiskinan Non- Makanan (GKNM), terlihat bahwa

Berdasarkan Hasil Evaluasi Dokumen Penawaran yang tertuang dalam Berita Acara Nomor : 44/PAN-PBJ/PULPIS/VIII/2012 tanggal 13 Agustus 2012 dan Surat Penetapan Pemenang

[r]

• diperbolehkan penggunaan kawasan hutan lindung untuk kepentingan pembangunan di luar kegiatan kehutanan dengan syarat untuk kegiatan yang mempunyai tujuan strategis

penetapan calon anggota legislatif yang dilakukan oleh Partai Nasdem Sumatera Utara untuk.. tingkat DPRD Provinsi

Untuk menjadikan hubungan antara guru dengan siswa sebagai suatu dialog, maka pengetahuan yang akan diberikan kepada siswa harus menjadi bagian dari

efektif dalam meningkatkan kemampuan berpikir orisinil siswa pada materi asam basa ditunjukkan melalui nilai n-Gain dengan adanya kriteria yang “tinggi” dan