• Tidak ada hasil yang ditemukan

LAMPIRAN LISTING PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAMPIRAN LISTING PROGRAM"

Copied!
13
0
0

Teks penuh

(1)

LAMPIRAN

LISTING PROGRAM

AHP Function

package AHP_PROMETHEE_Function; import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.swing.JTable; public class AHPFunction { public AHPFunction() { }

public void matSegitiga(JTable matriks){ double[][] nilai=new

double[matriks.getRowCount()][matriks.getColumnCount()]; double[]hasil=new double[45];

for (int i = 0; i<nilai.length ; i++) {

for (int j = i+2; j < nilai[0].length; j++) {

nilai[i][j]=Double.parseDouble(String.valueOf(matriks.getValueAt(i, j)));

} }

int n=0;

for (int i = 0; i<nilai.length ; i++) {

for (int j = i+2; j < nilai[0].length; j++) { hasil[n]=1/nilai[i][j];

n++; }

} n=0;

for (int i = 1; i<nilai.length-1 ; i++) {

for (int j = i; j <= nilai[0].length-2; j++) { matriks.setValueAt(hasil[n], j, i);

n++; }

} }

public void getSum(JTable matriks){ double[][] nilai=new

double[matriks.getRowCount()][matriks.getColumnCount()]; double[] hasil = new double[nilai[0].length]; for (int i = 0; i < nilai[0].length; i++) { hasil[i] = 0;

}

for (int i = 0; i<nilai.length-1 ; i++) {

for (int j = 1; j < nilai[0].length; j++) {

nilai[i][j]=Double.parseDouble(String.valueOf(matriks.getValueAt(i, j)));

hasil[j]+=nilai[i][j]; }

(2)

for (int i = 1; i < nilai[0].length; i++) {

matriks.setValueAt(hasil[i], nilai.length-1, i); }

}

public void normalisasi(JTable tabel1, JTable tabel2){ double nilai[][]=new

double[tabel1.getRowCount()][tabel1.getColumnCount()]; for (int i = 0; i<nilai.length-1 ; i++) {

for (int j = 1; j < nilai[0].length; j++) {

nilai[i][j]=Double.parseDouble(String.valueOf(tabel1.getValueAt(i, j)))/Double.parseDouble(String.valueOf(tabel1.getValueAt(nilai[0].len gth-1, j))); tabel2.setValueAt(nilai[i][j], i, j); } } }

public void getEigenVector(JTable tblEV){

double EV[]=new double[tblEV.getRowCount()]; for (int i = 0; i < EV.length; i++) {

EV[i]=0; }

for (int i = 0; i < tblEV.getRowCount(); i++) {

for (int j = 1; j < tblEV.getColumnCount()-1; j++) { EV[i]+=(Double.parseDouble(String.valueOf(tblEV.getValueAt(i, j))))/(tblEV.getColumnCount()-2);

} }

for (int i = 0; i < EV.length; i++) {

tblEV.setValueAt(EV[i], i, tblEV.getColumnCount()-1); }

}

public double getLamdaMax(JTable tabel1, JTable tabel2){ double LamdaMax=0;

double kriteria[]=new double[tabel1.getColumnCount()]; double EV[]=new double[tabel2.getRowCount()];

for (int i = 1; i < tabel1.getColumnCount(); i++) {

kriteria[i]=Double.parseDouble(String.valueOf(tabel1.getValueAt(tabel 1.getRowCount()-1, i)));

}

for (int i = 0; i < tabel2.getRowCount(); i++) { EV[i]=Double.parseDouble(String.valueOf(tabel2.getValueAt(i, tabel2.getColumnCount()-1)));

}

for (int i = 0; i < tabel2.getRowCount(); i++) { LamdaMax+=(kriteria[i+1]*EV[i]);

}

return LamdaMax; }

public double getCI(JTable tabel1, double lamdaMax){ double CI;

CI=(lamdaMax-tabel1.getRowCount())/(tabel1.getRowCount()-1); return CI;

}

public double[] getMatGlobal(JTable tabel1){

(3)

int colLength=tabel1.getColumnCount(); int rowLength=tabel1.getRowCount(); for (int i = 0; i < colLength-1; i++) { alternative[i] = 0;

}

for (int i = 0; i < rowLength; i++) { for (int j = 2; j < colLength; j++) { alternative[j-2]+=(Double.parseDouble(String.valueOf(tabel1.getValueAt(i, j)))*(Double.parseDouble(String.valueOf(tabel1.getValueAt(i, 1))))); } } return alternative; }

public double getPrioritasMax(Double[] alternative){ double pilihan;

List<Double> rank = Arrays.asList(alternative); pilihan=Collections.max(rank); return pilihan; } }

PROMETHEE Function

package AHP_PROMETHEE_Function; import java.util.HashMap; import java.util.Map; import javax.swing.JTable;

public class PrometheeFunction { public PrometheeFunction() { }

public void getHD(JTable tabel1, JTable tabel2) {

double d[][][] = new double[tabel1.getColumnCount() - 3][tabel1.getRowCount()][tabel1.getColumnCount() - 3];

double Hd[][][] = new double[tabel1.getColumnCount() - 3][tabel1.getRowCount()][tabel1.getColumnCount() - 3];

double Hdh[][][] = new double[tabel1.getColumnCount() - 3][tabel1.getRowCount()][tabel1.getColumnCount() - 3];

double Hd_Hasil[][] = new

double[tabel2.getRowCount()][tabel2.getColumnCount()]; double nilai_d[][] = new

double[tabel1.getRowCount()][tabel1.getColumnCount() - 4];

Map<Double, String> map = new HashMap<Double, String>(); for (int i = 0; i < tabel1.getRowCount(); i++) {

for (int j = 0; j < tabel1.getColumnCount() - 4; j++) { nilai_d[i][j] =

Double.parseDouble(String.valueOf(tabel1.getValueAt(i, j + 1))); }

}

int n = 0;

for (int i = 0; i < tabel1.getColumnCount() - 4; i++) { for (int j = 0; j < tabel1.getRowCount(); j++) {

for (int k = 0; k < tabel1.getColumnCount() - 4; k++) {

(4)

if (i != k) { d[i][j][k] = 0; Hd[i][j][k] = n++; } } } } System.out.println("");

for (int i = 0; i < tabel1.getColumnCount() - 4; i++) { for (int j = 0; j < tabel1.getRowCount(); j++) {

for (int k = 0; k < tabel1.getColumnCount() - 4; k++) {

if (i != k) {

d[i][j][k] = nilai_d[j][i] - nilai_d[j][k]; map.put(Hd[i][j][k], String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 3))); } } } }

for (int i = 0; i < tabel1.getColumnCount() - 4; i++) { for (int j = 0; j < tabel1.getRowCount(); j++) {

for (int k = 0; k < tabel1.getColumnCount() - 4; k++) { if (i != k) { } } } }

for (int i = 0; i < tabel1.getColumnCount() - 4; i++) { for (int j = 0; j < tabel1.getRowCount(); j++) {

for (int k = 0; k < tabel1.getColumnCount() - 4; k++) { if (i != k) { if (map.get(Hd[i][j][k]).equals("Usual")) { if (d[i][j][k] <= 0) { Hdh[i][j][k] = 0; } else { Hdh[i][j][k] = 1; } } if (map.get(Hd[i][j][k]).equals("Linier")) { if (d[i][j][k] <= 0) { Hdh[i][j][k] = 0; } else if (d[i][j][k] > Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 2)))) { Hdh[i][j][k] = 1; } else if ((d[i][j][k] <= Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 2))) || (d[i][j][k] > 0))) { // Hd[i][j][k] = d[i][j][k] * 1; Hdh[i][j][k] = d[i][j][k] * 0.142857143; // Hd[i][j][k] = d[i][j][k] / Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 2))); } } if (map.get(Hd[i][j][k]).equals("Level")) {

(5)

if (d[i][j][k] <= Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 1)))) { Hdh[i][j][k] = 0; } else if (d[i][j][k] > Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 2)))) { Hdh[i][j][k] = 1; } else if ((d[i][j][k] <= Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 2))) || (d[i][j][k] > Double.parseDouble(String.valueOf(tabel1.getValueAt(j, tabel1.getColumnCount() - 1)))))) { Hdh[i][j][k] = 0.5; } } } } } }

for (int i = 0; i < tabel2.getRowCount(); i++) {

for (int j = 0; j < tabel2.getColumnCount(); j++) { Hd_Hasil[i][j] = 0;

} }

for (int i = 0; i < tabel1.getColumnCount() - 4; i++) { for (int j = 0; j < tabel1.getRowCount(); j++) {

for (int k = 0; k < tabel1.getColumnCount() - 4; k++) { if (i != k) { Hd_Hasil[i][k] += (0.125 * (Hdh[i][j][k])); } } } }

for (int i = 0; i < tabel2.getRowCount(); i++) {

for (int j = 1; j < tabel2.getColumnCount(); j++) { if (i != (j - 1)) { tabel2.setValueAt(Hd_Hasil[i][j - 1], i, j); } } } }

public double[] getNetFlow(JTable table){

double leavingFlow[]=new double[table.getRowCount()];

double enteringFlow[]=new double[table.getColumnCount()-1]; double netFlow[]=new double[table.getRowCount()];

for (int i = 0; i < table.getRowCount(); i++) {

for (int j = 1; j < table.getColumnCount(); j++) { if(i!=j-1){ leavingFlow[i]+=((1/(float)(table.getRowCount()-1))*Double.parseDouble(String.valueOf(table.getValueAt(i, j)))); } } }

for (int i = 0; i < table.getRowCount(); i++) {

(6)

if(i != j-1){ enteringFlow[j-1]+=((1/(float)(table.getRowCount()-1))*Double.parseDouble(String.valueOf(table.getValueAt(i, j)))); } } }

for (int i = 0; i < table.getRowCount(); i++) { netFlow[i]=leavingFlow[i]-enteringFlow[i]; } return netFlow; } }

Main

package AHP_PROMETHEE_View; public class Main {

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() { public void run() {

new MainFrame().setVisible(true); } }); } }

Main Frame

package AHP_PROMETHEE_View; import java.awt.Component; import java.awt.Dimension; import javax.swing.JComponent; import javax.swing.JDesktopPane;

public class MainFrame extends javax.swing.JFrame { /** Creates new form MainFrame */

public MainFrame() { initComponents();

this.setLocationRelativeTo(null); this.setExtendedState(MAXIMIZED_BOTH); }

// <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {

jDesktopPane1 = new javax.swing.JDesktopPane(); jLabel1 = new javax.swing.JLabel();

jMenuBar1 = new javax.swing.JMenuBar(); mnAHP = new javax.swing.JMenu();

jMenuItem1 = new javax.swing.JMenuItem(); mnPromethee = new javax.swing.JMenuItem(); jMenu3 = new javax.swing.JMenu();

jMenu1 = new javax.swing.JMenu();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("PERBANDINGAN METODE ANALYTICAL HIERARCHY PROCESS (AHP) DAN METODE PREFERENCE RANKING ORGANIZATION METHOD FOR

(7)

ENRICHMENT EVALUATION (PROMETHEE) UNTUK PEMILIHAN HARDISK EKSTERNAL"); jDesktopPane1.setBackground(new java.awt.Color(0, 51, 204)); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel1.setIcon(new javax.swing.ImageIcon("I:\\Untitled-2.jpg")); // NOI18N jLabel1.setBounds(200, 20, 910, 650); jDesktopPane1.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER); getContentPane().add(jDesktopPane1, java.awt.BorderLayout.CENTER); mnAHP.setText("Algorithm"); mnAHP.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { mnAHPActionPerformed(evt); } }); jMenuItem1.setText("AHP"); jMenuItem1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { jMenuItem1ActionPerformed(evt); } }); mnAHP.add(jMenuItem1); mnPromethee.setText("PROMETHEE"); mnPromethee.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) { mnPrometheeActionPerformed(evt); } }); mnAHP.add(mnPromethee); jMenuBar1.add(mnAHP); jMenu3.setText("About"); jMenu3.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jMenu3MouseClicked(evt); } }); jMenuBar1.add(jMenu3); jMenu1.setText("Exit"); jMenu1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jMenu1MouseClicked(evt);

} });

(8)

setJMenuBar(jMenuBar1); pack();

}// </editor-fold>

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here: Kriteria kriteria=new Kriteria(); jDesktopPane1.add(kriteria); setLocationToCenter(kriteria); kriteria.show();

}

private void mnAHPActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here: } private void

mnPrometheeActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:

Promethee promethee=new Promethee(); jDesktopPane1.add(promethee);

setLocationToCenter(promethee); promethee.show();

}

private void jMenu3MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

About about=new About(); jDesktopPane1.add(about); setLocationToCenter(about); about.show();

}

private void jMenu1MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:

System.exit(0);

}

// Variables declaration - do not modify public javax.swing.JDesktopPane jDesktopPane1;

private javax.swing.JLabel jLabel1; private javax.swing.JMenu jMenu1; private javax.swing.JMenu jMenu3;

private javax.swing.JMenuBar jMenuBar1; private javax.swing.JMenuItem jMenuItem1; private javax.swing.JMenu mnAHP;

private javax.swing.JMenuItem mnPromethee;

// End of variables declaration public void setLocationToCenter(JComponent form) { Dimension parentSiZe=jDesktopPane1.getSize(); Dimension childSize=form.getSize(); form.setLocation((parentSiZe.width - childSize.width)/2,(parentSiZe.height - childSize.height)/2); } }

(9)

KUISIONER PENELITIAN

Survei Data Penelitian Skripsi dengan judul:

Perbandingan Metode Analytical Hierarchy Process (AHP) dan Metode Preference

Ranking Organization Method For Enrichment Evaluation (PROMETHEE)

untuk Pemilihan Hardisk Eksternal

Penulis dan Surveyor: Didi Pratama

Mahasiswa Ekstensi S-1 Ilmu Komputer

Fakultas Ilmu Komputer dan Teknologi Informasi

Universitas Sumatera Utara

Kuisioner ini disusun untuk mengetahui daya pilih konsumen terhadap Hardisk

Eksternal. Dalam survey ini, tidak ada jawaban yang salah dan benar. Survey ini

bertujuan untuk data yang dapat digunakan untuk memecahkan masalah dan

mendukung sistem keputusan terhadap pemilihan Hardisk Eksternal. Setiap informasi

yang diperoleh dari kuisioner ini murni hanya untuk tujuan akademis dan tidak

berpengaruh dengan apapun terhadap responden. Saya menjamin kerahasiaan dari

informasi yang anda berikan.

Petunjuk Pengisian

Berilah tanda ceklish (√) pada kolom skala kriteria (A) atau pada kolom skala kriteria

(B) yang sesuai dengan pendapat anda.

Defenisi Kode:

1. Kedua kriteria sama penting (equal importance).

3. Kriteria (A) sedikit lebih penting (moderate importance ) dibanding dengan (B).

5. Kriteria (A) lebih penting (strong Importance) dibanding dengan (B).

7. Kriteria (A) sangat lebih penting (very strong importance) dibanding dengan (B).

9. Kriteria (A) mutlak lebih penting (extreme Importance) dibanding dengan (B).

Dan jika anda ragu-ragu antara 2 skala maka ambil nilai tengahnya, misalkan anda

ragu-ragu antara 3 dan 5 maka pilih skala 4 dan seterusnya.

(10)

Contoh:

Dalam memilih Hardisk Eksternal seberapa pentingkah Kapasitas menurut

konsumen

No. Kriteria

(A)

Skala

Skala

Kriteria

(B)

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

1.

Kapasitas

Kecepatan

transfer

Jika anda memberi tanda (√) pada skala 7 dikolom A, maka artinya adalah kriteria

A dalam contoh ini Kapasitas sangat lebih penting dibanding dengan kriteria B

dalam contoh ini adalah Kecepatan transfer. Akan tetapi jika anda merasa kriteria

B sangat lebih penting dibanding dengan kriteria A (Kapasitas) maka pengisian

kolomnya adalah sebagai berikut:

No. Kriteria

(A)

Skala

Skala

Kriteria

(B)

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

1.

Kapasitas

Kecepatan

(11)

Identitas Responden

Nama Responden :

Lokasi Toko :

Nama Toko :

1. Apakah Toko ini menjual Hardisk Eksternal?

a. Ya

b. Tidak

Jika Jawaban Ya lanjutkan pertanyaan dan jika Tidak berhenti sampai disini

dan ucapkan terima kasih.

2. Hardisk Eksternal apakah yang paling diminati oleh konsumen dalam

beberapa bulan terakhir?

(Pada bagian ini dapat memilih 2 atau lebih)

a. WD

b. Fujitsu

c. Thosiba

d. Spectra

e. A-Data

f. Transcend

g. Hitachi

h. Seagate

i. Buffalo

j. Lacie

3. Tipe Hardisk Eksternal apa yang paling dicari oleh konsumen berdasarkan

data diatas?

Sebutkan dua atau lebih.

a.

b.

c.

d.

(12)

Dalam memilih Hardisk Eksternal seberapa pentingkah menurut konsumen:

No.

Kriteria

(A)

Skala

Skala

Kriteria (B)

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

1.

Kapasitas

Kecepatan

transfer

2.

Kapasitas

Dimensi

3.

Kapasitas

Tipe USB

No.

Kriteria

(A)

Skala

Skala

Kriteria

(B)

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

1.

Kecepatan

transfer

Dimensi

2.

Kecepatan

transfer

Tipe USB

No.

Kriteria

(A)

Skala

Skala

Kriteria

(B)

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9

(13)

DAFTAR RIWAYAT HIDUP

Data Pribadi

 Nama

: Didi Pratama

 Tempat / Tgl Lahir : Dolok Maraja, 21 Juli 1990

 Jenis Kelamin

: Laki-Laki

 Agama

: Islam

 Status

: Belum Menikah

 Kewarganegaraan : Indonesia

 Alamat

: Jln. Huta II Bahapal, Pematang Siantar.

 No. Telp / HP

: 085362217037

 Email

: [email protected]

Riwayat Pendidikan

 1996 - 2002

: SD MIS Andalusia

 2002 - 2005

: SMP Sultan Agung Pematang Siantar

 2005 - 2008

: SMA Taman Siswa Tapian Dolok

 2008 - 2011

: AMIK Tunas Bangsa Pematang Siantar

 2012 - 2015

: Ekstensi S1 Ilmu Komputer USU

Pelatihan

 Pelatihan kerja berbasis kompetensi jurusan Jaringan Komputer di Balai Besar

Latihan Kerja Industri (BBLKI) Medan tanggal 29 April s/d 30 Mei 2014.

Demikianlah daftar riwayat hidup ini saya buat dengan sebenarnya.

Hormat Saya,

Referensi

Dokumen terkait

Artinya, Sangat Sesuai (SS) : Anda adalah orang yang memiliki kemampuan yang lebih dibanding teman-teman yang lain.. Jika telah selesai, Anda diminta untuk memastikan kembali tidak

anda dapat memberi tanda (=) pada jawaban salah tersebut dan kemudian berilah tanda (X) pada jawaban yang anda anggap sesuai dengan diri anda. Hasil pekerjaan anda, kami

Mohon Anda uji contoh-contoh berikut, dan tuliskan seberapa jauh Anda menyukainya, dengan memberi tanda (V) pada pernyataan-pernyataan tersebut yang Anda anggap paling sesuai

Jika Anda kehilangan file Kartu Tanda Bukti Pendaftaran, Anda dapat men-download-nya kembali dengan melakukan login ulang seperti pada poin A.42. Gambar: Contoh Kartu

Petunjuk : Di hadapan Anda terdapat 2 contoh beras pratanak (parboiled rice), Anda diminta untuk menilai masing-masing contoh dengan cara memberi tanda centang (√) pada

Anda diminta untuk memberi penilaian terhadap iceness berdasarkan tingkat kesukaan saudara dengan memberi tanda garis vertikal (│) pada skala garis untuk masing-masing

STS : bila Anda merasa Sangat Tidak Sesuai dengan pernyataan tersebut Contoh pengisian skala:. Berikan tanda X (silang) pada kolom jawaban yang Anda anggap

Jika ingin mengganti jawaban, maka Anda dapat langsung mencoret jawaban dengan memberi tanda sama dengan (=) pada jawaban Anda yang pertama, kemudian beri tanda silang