Implementasi Analytical Hierarchy Process Dan Algoritma Gale-Shapley Untuk Pemilihan Presidium Departemen UKMI AL-Khuwarizmi
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
data_pen [][] data_sat; string [] bidang;
(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();
} catch{ }
(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";
dg.CellValidated -= DgCellValidated; }
(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( ));
dg.Columns[1].HeaderText = "Nama Kandidat"; for (int i = 2;i<alternatif.Count+2;i++) {
(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());
//MessageBox.Show((alternatif[i].prioritas [x1.Items.IndexOf(dg[j,i].Value.ToString())]).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;
namespace AHPTest {
(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"
);
int k = 0; int bantu = 1;
(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++) {
temp[i] = new float[keterangan.Length]; } proses(); }
(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
RC = 1.12f;
(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
[9] Whitten, Jeffrey L., Bentley, Lonnie D. 2007. System Analysis and Design Method. 7th Edition.
(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?
Jawaban : memasukkan kriteria, alternatif dan departemen yang diperlukan dalam 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 Presidium
(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
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
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
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
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 Tidak
(35)
3.5. Perancangan Antarmuka Sistem
Rancangan program akan diimplementasikan dengan menggunakan SharpDevelop 4.1.
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)
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
Form menu utama merupakan form yang pertama kali muncul saat sistem dijalankan. Dalam form utama, terdapat lima datagrid yang akan muncul secara bergantian. Datagrid yang pertama kali muncul adalah datagrid untuk menampung nilai perbandingan antar kriteria. Tampilan datagrid ini apat dilihat pada Gambar 4.1.
(39)
Gambar 4.1. Tampilan Form Datagrid yang Pertama
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
Gambar 4.3. berisi Datagrid untuk memasukkan nilai preference list dari calon presidium.
(40)
Gambar 4.3. Tampilan Datagrid Ketiga
Gambar 4.4 merupakan tampilan datagrid untuk memasukkan nilai preference list dari penyeleksi.
Gambar 4.4. Tampilan Datagrid Keempat
Gambar 4.5. merupakan datagrid yang menampilkan hasil akhir dari aplikasi pemilihan presidum.
(41)
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.
(42)
4.1.3. Form nilai
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
(43)
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
(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 :
0.3876 0.2500 0.4808 0.5000 0.2401 0.1279 0.0833 0.0793 0.0625 0.0396 0.1938 0.2500 0.2404 0.2500 0.3601 0.0969 0.1667 0.1202 0.1250 0.2401 0.1938 0.2500 0.0793 0.0625 0.1200
(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
Jumlah setiap kolom : Kolom 1 : 2.08
(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 :
0.3459 0.2061 0.3459 0.3459 0.5951 1.0000 1.0000 0.3459 0.5951 0.5951 0.5951 0.5951 1.0000 0.3459 1.0000
(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
Kolom II : eigen vector 20 alternatif untuk kriteria Usia Mentoring Kolom III : eigen vector 20 alternatif untuk kriteria Training Pengurus Kolom IV : eigen vector 20 alternatif untuk kriteria Hafalan Al-Quran Kolom V : eigen vector 20 alternatif untuk kriteria Jumlah Kelompok Mentoring
(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 :
0.3699 : eigen vector Ali 0.7130 : eigen vector Andika 0.7184 : eigen vector Yusuf 0.8040 : eigen vector Atika 0.6518 : eigen vector Fitri 0.3098 : eigen vector Dina 0.6584 : eigen vector Antasari 0.3595 : eigen vector Ida
(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
Kaderisasi : Yusuf, Atika, Siddiq, Winda, Ardan Syiar : Siddiq, Atika, Winda, Ardan, Yusuf KW : Atika, Siddiq, Ardan, Winda, Yusuf Akkom : Ardan, Atika, Siddiq, Yusuf, Winda LSO-IT : Winda, Atika, Siddiq, Ardan, Yusuf
(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
Akkom : Ardan LSO-IT : Atika
(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
Setelah dilakukan pengujian trehadap aplikasi pemilihan presidium, ada beberapa saran yang diharapkan untuk penelitian selanjutnya, yaitu untuk penelitian selanjutnya, disarankan untuk mengembangkan algoritma AHP dan Gale-Shapley ini untuk kasus yang lain yang dibutuhkan oleh masyarakat.
(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.
Dengan pengertian diatas dapat dijelaskan bahwa sistem pendukung keputusan bukan merupakan alat pengambilan keputusan, melainkan merupakan sistem yang membantu pengambil keputusan yang melengkapi mereka dengan informasi dari data yang telah diolah dengan relevan dan diperlukan untuk membuat keputusan tentang suatu masalah dengan lebih cepat dan akurat. Sehingga sistem ini tidak dimaksudkan untuk menggantikan pengambilan keputusan dalam proses pembuatan keputusan. [8]
(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
Kriteria dan alternatif dilakukan dengan perbandingan berpasangan. Menurut Saaty (1988), untuk berbagai persoalan, skala 1 sampai 9 adalah skala terbaik untuk mengekspresikan pendapat. Nilai dan definisi pendapat kualitatif dari skala perbandingan Saaty bisa diukur menggunakan tabel analisis seperti ditunjukkan pada tabel 2.1 berikut.
(54)
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
Untuk setiap kriteria dan alternatif, perlu dilakukan perbandingan berpasangan (Pairwise Comparisons). Nilai-nilai perbandingan relatif dari seluruh alternatif kriteria bisa disesuaikan dengan judgement yang telah ditentukan untuk
(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 :
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
Angka diatas didapat dari mengalikan nilai kolom baris pada tabel 2.2. dengan prioritas dari masing-masing kriteria.
(57)
10
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
Faktor yang mempengaruhi dalam penilain pegawai untuk mengetahui jumlahnya
(58)
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
Angka diatas didapat dari membagi nilai kolom baris dengan jumlah kolom. Prioritas didapat melalui membagi jumlah tiap baris dengan jumlah matriks.
(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
Oleh karena CR (Consistency Ratio) dari kriteria < 0.1, maka rasio;konsistensi dari perhitungan KEDISIPLINAN tersebut bisa DITERIMA.
(60)
13
i. Menghitung matriks berpasangan BERPRESTASI
Tabel 2.10. Matriks Berpasangan BERPRESTASI
j. Menghitung prioritas matriks kriteria BERPRESTASI Tabel 2.11. Matriks prioritas BERPRESTASI
k. Menghitung matriks penjumlahan kriteria BERPRESTASI Tabel 2.12. Matriks Penjumlahan 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.
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
CI = (λmaks-n) / (n-1)= (1.27 – 5) / (5 – 1) = - 0.93 CR = CI/RI = - 0.93/1.12 = - 0.83
(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
s. Menghitung Matriks Penjumlahan Kriteria PERILAKU Tabel 2.20. Matriks Penjumlahan PERILAK
(64)
17
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
v. Menghitung Matriks Prioritas Kriteria KESEHATAN Tabel 2.23. Matriks Prioritas KESEHATAN
(65)
18
w. Menghitung Matriks Penjumlahan Kriteria KESEHATAN Tabel 2.24. Matriks Penjumlahan KESEHATAN
x. Menghitung Matriks Rasio Konsistensi KESEHATAN
Tabel 2.25 Matriks Rasio Konsistensi KESEHATAN
Jumlah rasio = 6.96 Jumlah kriteria (n) = 5
(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.
Algoritma Gale-Shapley bertujuan untuk memasangkan sejumlah n pria dan n wanita 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 sehingga terbentuk himpunan M yang terdiri dari pasangan-pasangan yang stabil. Preference list adalah daftar atau urutan pria dan wanita
(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 :
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
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.
e. Jika seorang wanita telah bertunangan dan menerima lamaran lain, maka ia akan menerima lamaran dari pria 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
Dalam kenyataannya, kita dihadapkan pada kondisi dimana pencocokan tidak hanya terjadi pada one to one, tetapi juga one to many. Selain itu, dalam kasus pencocokan pria dan wanita pada Algoritma Gale-Shapley, setiap pria dan wanita harus menetapkan urutan ketertarikan terhadap pasangan lain yang berbeda jenis dengan asumsi bahwa setiap pria dan wanita akan bahagia bila dicocokkan dengan pria dan wanita lain yang kurang disukai daripada tidak mendapatkan pasangan sama sekali. Dalam perkembangannya, Algoritma Gale-Shapley diperbaharui sehingga kedua masalah diatas dapat diatasi dan penerapannya lebih sesuai dengan keadaan pencocokan didunia nyata [1]
(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)
4. Muhammad Iqbal (2008-2009) 5. Muhammad Hanafi (2009-2010) 6. Zuwarbi Wiranda Hsb (2010-2011) 7. Budi Satria Muchlis (2011-2012) 8. Muhammad Abdi Pratama (2012-2013)
(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
19. Lembaga Semi Otonom Mentoring Agama Islam dan Islamic Training
(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.
Algoritma Analytical Hierarchy Process merupakan suatu metode yang dapat menyelesaikan masalah multikriteria yang kompleks menjadi suatu hirarki. Masalah yang kompleks dapat diartikan bahwa kriteria dari suatu masalah yang begitu banyak (multikriteria), struktur masalah yang belum jelas, ketidakpastian
(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)
5. Kriteria yang digunakan dalam Algoritma AHP : a. Lulus IMK (levelisasi kader) Tingkat 2 b. Hafal minimal 1 juz Al-Quran
(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
Pada tahap ini dilakukan perancangan flowchart dan interface dari sistem yang akan dibuat sesuai dengan tujuan dan batasan masalah yang ada.
(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 perangkat lunak lebih lanjut.
(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.
Kata kunci : Gale-Shapley, AHP, Eigen Vector, UKMI Al-Khuwarizmi, Pemilihan Presidium
(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 important thing for an organization, especially UKMI Al-Khuwarizmi. But there is still many subjective opinion in determining the leader of department in UKMI Al-Khuwarizmi. So it can cause some problem in the future. The issues raised is creating a system to support a decision of determining the leader of department in UKMI Al-Khuwarizmi. This system uses two agorithm, which are AHP and Gale-Shapley. The metric of requirements and the metric of alternative will bw processed in AHP algorithm to obtain eigen value of the alternatives. It obtain the big five leader based on the highest eigen value. Then these big five leader will be processed again in Gale-Shapley algorithm to create stable pairing between the leader of department and the department in UKMI Al-Khuwarizmi.
Keyword : Gale-Shapley, AHP, Eigen Vector, UKMI Al-Khuwarizmi, Determining the leader of UKMI Al-Khuwarizmi
(79)
i
IMPLEMENTASI ANALYTICAL HIERARCHY PROCESS DAN ALGORITMA GALE-SHAPLEY UNTUK PEMILIHAN PRESIDIUM DEPARTEMEN
UKMI AL-KHUWARIZMI Fasilkom-TI USU
SKRIPSI
Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer
ZUWARBI WIRANDA HASIBUAN 091401059
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
MEDAN 2014
(80)
ii
PERSETUJUAN
Judul : IMPLEMENTASI ANALYTICAL
HIERARCHIPROCESS DAN ALGORITMA GALE-SHAPLEY UNTUK PEMILIHAN PRESIDIUM DEPARTEMEN UKMI AL-KHUWARIZMI Fasilkom-TI USU
Kategori : SKRIPSI
Nama : ZUWARBI WIRANDA HASIBUAN
Nomor Induk Mahasiswa : 091401059
Program Studi : SARJANA (S1) ILMU KOPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
Diluluskan di
Medan, Agustus 2014
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Siti Dara Fadilah,S.Si,MT. M.Andri Budiman,S.T.,M.Comp.Sc.,M.E.M NIP. 1977 0516 2005 1200 1 NIP. 197510082008011011
Diketahui/Disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
Dr. Poltak Sihombing, M.Kom NIP. 1962 0317 1991 0310 01
(81)
iii
PERNYATAAN
IMPLEMENTASI ANALYTICAL HIERARCHIPROCESS DAN ALGORITMA GALE-SHAPLEY UNTUK PEMILIHAN PRESIDIUM DEPARTEMEN UKMI
AL-KHUWARIZMI Fasilkom-TI USU
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, ...
Zuwarbi Wiranda Hasibuan 091401059
(82)
iv
PENGHARGAAN
Puji syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat-Nya kepada penulis untuk enyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara
Ucapan teria kasih penulis sampaikan kepada semua pihak yang mendukung yang memotivasi penulis, baik secara langsung maupun tidak langsung. Pada kesempatan ini, penulis ingin mengucapkan terima kasih kepada :
1. Bapak Prof. Dr. dr. Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Dr. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara
4. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Program Studi S1 Ilmu
5. Bapak M.Andri Budiman,S.T.,M.Comp.Sc.,M.E.M, selaku Dosen
Pembimbing I dan telah menjadi sosok seorang ayah yang tak kenal lelah untuk selalu memotivasi dan meningatkan penulis untuk menyelesaikan skripsi ini.Semoga semua kebaikan yang telah bapak berikan menjadi tabungan terbaik bapak di yaumul mashr,kelak nanti.
6. Ibu Siti Dara Fadilah,S.Si,MT, selaku Dosen Pembimbing II yang sedikit dan banyak nya telah memberikan masukan kritik dan saran yang membangun untutk pembuatan skripsi penulis.Mudah-mudahan Allah SWT menjadikan semua kebaikan ibu sebagai amal yang tersimbol dalam makna ketulusan dalam memberi.
7. Ibu Dian Rachmawati S.Si,M.Kom, selaku Dosen Pembanding I yang telah memberikan saran dan kritik yang sangat bermanfaat serta solusi-solusi dari kekurangan skripsi ini dan untuk pengembangan sistem pada skripsi ini yang akan datang
8. Bapak Herriyance S.T M.Kom, selaku Dosen Pembanding II yang juga telah
memberikan saran dan kritik yang membangun untuk penyempurnaan skripsi ini
9. Semua dosen dan pegawai di S1 Ilmu Komputer yang telah membantu proses
(1)
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 important thing for an organization, especially UKMI Al-Khuwarizmi. But there is still many subjective opinion in determining the leader of department in UKMI Al-Khuwarizmi. So it can cause some problem in the future. The issues raised is creating a system to support a decision of determining the leader of department in UKMI Al-Khuwarizmi. This system uses two agorithm, which are AHP and Gale-Shapley. The metric of requirements and the metric of alternative will bw processed in AHP algorithm to obtain eigen value of the alternatives. It obtain the big five leader based on the highest eigen value. Then these big five leader will be processed again in Gale-Shapley algorithm to create stable pairing between the leader of department and the department in UKMI Al-Khuwarizmi.
Keyword : Gale-Shapley, AHP, Eigen Vector, UKMI Al-Khuwarizmi, Determining the leader of UKMI Al-Khuwarizmi
(2)
DAFTAR ISI
Halaman
Persetujuan ... ii
Pernyataan ... iii
Penghargaan ... iv
Abstrak ... vi
Abstract ... vii
Daftar Isi ... viii
Daftar Tabel ... x
Daftar Gambar ... xii
Bab I : Pendahuluan ... 1
1.1. Latar Belakang ... 1
1.2. Rumusan Masalah ... 2
1.3. Batasan Masalah ... 2
1.4. Tujuan Penelitian ... 3
1.5. Manfaat Penelitian ... 3
1.6. Metodologi Penulisan ... 3
1.7. Sistematika Penulisan ... 4
Bab II : Landasan Teori... 5
2.1.Sistem Pendukung Keputusan...5
2.2. Analytical Hierarchy Process (AHP) ... 6
2.3. Algoritma Gale-Shapley ... 19
2.2.1. Stable Marriage Problem ... 20
(3)
ix
3.2.1. Kebutuhan non-fungsional sistem ... 27
3.3. Pemodelan Sistem ... 27
3.4. Flowchart Sistem ... 34
3.4.1. Flowchart Sistem Secara Umum... 34
3.4.2. Flowchart Proses AHP ... 35
3.4.3. Flowchart Proses Gale-Shapley ... 36
3.5. Perancangan Antarmuka Sistem ... 37
3.5.1. Form Utama ... 37
3.5.2. Form Nilai ... 38
3.5.3. Form Pengumpulan ... 39
Bab IV : Implementasi dan Pengujian ... 40
4.1. Implementasi ... 40
4.1.1. Form Menu Utama ... 40
4.1.2. Form Pengumpulan ... 43
4.1.3. Form Nilai ... 44
4.2. Pengujian ... 46
Bab V : Kesimpulan dan Saran ... 53
Daftar Pustaka ... 54
(4)
DAFTAR TABEL
Halaman
Tabel 2.1. Tabel Skala Perbandingan Penilaian ... 7
Tabel 2.2. Matriks Berpasangan... 9
Tabel 2.3. Matriks Prioritas Berpasangan ... 9
Tabel 2.4. Matriks Penjumlahan ... 9
Tabel 2.5. Matriks Rasio Konsistensi ... 10
Tabel 2.6. Matriks Berpasangan KEDISIPLINAN ... 11
Tabel 2.7. Matriks prioritas berpasangan ... 11
Tabel 2.8. Matrik Penjumlahan ... 12
Tabel 2.9. Matriks Ratio Konsistensi KEDISIPLINAN ... 12
Tabel 2.10. Matriks Berpasangan BERPRESTASI ... 13
Tabel 2.11. Matriks prioritas BERPRESTASI` ... 13
Tabel 2.12. Matriks Penjumlahan BERPRESTASI ... 13
Tabel 2.13. Ratio Konsistensi BERPRESTASI ... 14
Tabel 2.14. Matriks Berpasangan PENGALAMAN KERJA ... 14
Tabel 2.15. Matriks Prioritas Kriteria PENGALAMAN KERJA ... 15
Tabel 2.16. Matriks Penjumlahan PENGALAMAN KERJA ... 15
Tabel 2.17. Matriks Ratio Konsistensi PENGALAMAN KERJA ... 15
Tabel 2.18. Matriks Berpasangan PERILAKU ... 16
Tabel 2.19 Matriks Prioritas Kriteria PERILAKU ... 16
Tabel 2.20. Matriks Penjumlahan PERILAK ... 16
Tabel 2.21. Matriks Rasio Konsistensi PERILAKU ... 17
Tabel 2.22. Matriks Berpasangan KESEHATAN... 17
Tabel 2.23. Matriks Prioritas KESEHATAN ... 18
(5)
xi
Tabel 2.27. Women Preferences... 20 Tabel 2.28. Men Preferences ... 21
(6)
DAFTAR GAMBAR
Halaman
Gambar 3.1. Diagram Ishikawa Analisis Permasalahan ... 26
Gambar 3.2. Use case Diagram Sistem Pemilihan Presidium ... 28
Gambar 3.3. Sequence Diagram untuk Sistem Pemilihan Presidium ... 28
Gambar 3.4. Sequence diagram untuk Proses AHP ... 29
Gambar 3.5. Sequence Diagram untuk Proses Gale-Shapley ... 29
Gambar 3.6. Activity Diagram AHP ... 31
Gambar 3.7. Sequence Diagram untuk Proses Gale-Shapley ....32
Gambar 3.8. Activity Diagram Algoritma Gale-Shapley ...33
Gambar 3.9. Flowchart sistem secara umum ... 34
Gambar 3.10. Flowchart Proses AHP ... 35
Gambar 3.11. Flowchart Proses Gale-Shapley ... 36
Gambar 3.12. Tampilan Rancangan Form Utama... 37
Gambar 3.13. Tampilan Form Nilai ...38
Gambar 3.14. Tampilan Form Pengumpulan ...39
Gambar 4.1. Tampilan Form Datagrid yang Pertama ... 41
Gambar 4.2. Tampilan Datagrid Kedua ... 41
Gambar 4.3. Tampilan Datagrid Ketiga ... 42
Gambar 4.4. Tampilan Datagrid Keempat ... 42
Gambar 4.5. Tampilan Datagrid Kelima ... 43
Gambar 4.6. Tampilan Form Pengumpulan ... 43
Gambar 4.7. Tampilan Form Nilai 1 ... 44
Gambar 4.8. Tampilan Form Nilai 2 ... 44
Gambar 4.9. Tampilan Form Nilai 3 ... 45