Anda di halaman 1dari 152

SISTEM PENDUKUNG KEPUTUSAN PEMBERIAN

PINJAMAN MODAL USAHA DENGAN METODE


WEIGHT PRODUCT DAN PROFILE MATCHING
PADA KANTOR UNIT PERMODALAN
NASIONAL MADANI (PERSERO)

SKRIPSI

Oleh :

AYU LESTARI P
NIM. 1420000216

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS POTENSI UTAMA
MEDAN
2018
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Komputer
Untuk Ayah Dan Ibu Tersayang
Ayah, Ibu
Aku tau dalam senyummu kau sembunyikan letih dan sedihmu,
Tak sedetikpun kau hentikan lenganmu demi memperjuangkan masa depan anak-
anakmu.
Disetiap tetes keringatmu, dan setiap hembusan nafasmu,
Mempunyai rasa kasihsayang yang luar biasa.
Ayah, Ibu
Aku akan kembali kedalam pangkuanmu
Kurang lebih 4 tahun sudah aku menunaikan kewajibanku
Untuk meneruskan cita-cita dan impian tertanam jauh di dalam lubuk hatiku
Ayah, Ibu
Akan aku persembahkan sebuah gelar diujung namaku
Sebagai penghapus butiran keringat dan cucuran air mata pengorbananmu
Satu malam satu lembar saja….!!
Diam & mulailah belajar…..!!
Bukankah janjimu ingin jadi SARJANA?
Janganlah membuat mereka meneteskan air mata!
Baju toga itu, mengeringkan semua keringat mereka!
Menghapus air mata mereka!
Membayar semua pengorbanan mereka!
Ingat…! Bukan emas & permata sebagai bentuk balas jasa!
Hanya kata-kata sederhana!
SARJANA….Saja!
Ayah, Ibu
Terimah kasih atas segala perhatian dan kasih sayangmu
Yang tulus ikhlas untuk kami anakmu
Kami selalu menyayangimu nanti dan selamanya
ABSTRAK

Salah satu cara pemerintah untuk menanggulangi dan membantu


masyarakat kurang mampu ini adalah dengan menghadirkan bantuan
permodalan melalui badan usaha milik Negara yakni PNM. PNM hadir melalui
Mekaar untuk memberikan pelayanan bagi wanita kurang mampu yang tidak
memiliki modal untuk membuka usaha dan mengembangkan usaha mereka
dengan persyaratan layanan nasabah berbasis kelompok. Seiring banyaknya
minat dari masyarakat kurang mampu ini, pihak pembuat keputusan sering
dihadapkan pada permasalahan dalam memutuskan masyarakat yang layak
mendapatkan pinjaman modal usaha dikarenakan data kriteria pemilihan dan
data pengajuan bantuan yang begitu banyak. Kriteria yang digunakan dalam
pengambilan keputusan diantaranya adalah kondisi rumah tinggal (luas
bangunan, kondisi bangunan, jenis atap, dinding dan lantai) serta tingkat
pendapatan (penghasilan rumah tangga sehari, pengeluaran rumah tangga sehari
dan jumlah tanggungan). Penelitian ini menggabungkan dua metode pengambilan
keputusan yakni metode weight product dan profile matching. Weight product
merupakan metode pengambilan keputusan analisis multi kriteria yang banyak
digunakan. Profile matching dapat memberikan bobot nilai sesuai tingkat
kepentingan kriteria. Penggabungan dua metode ini bertujuan menggabungkan
kekuatan masing-masing metode dan meminimalkan kekurangan-kekurangan dari
masing-masing metode. Hasil yang diharapkan dari penelitian ini adalah suatu
aplikasi sistem pendukung keputusan pemberian pinjaman modal usaha yang
dapat menjadi solusi optimal dan akurat bagi perusahaan dalam pengambilan
keputusan.

Kata kunci : SPK, Weightproduct, Profilematching, PNM, Nasabah


ABSTRACT

One way the government to tackle and assist these underprivileged people
is by presenting capital assistance through state-owned enterprises namely PNM.
PNM is present through Mekaar to provide services for underprivileged women
who do not have the capital to open businesses and develop their businesses with
the requirements of group-based customer services. Along with the many interests
of these underprivileged people, decision makers are often faced with the problem
of deciding the people who are eligible to obtain business capital loans because of
the selection criteria data and the data of so many submissions. The criteria used
in decision making are housing condition (building area, building condition, roof
type, wall and floor) and income level (household income per day, daily
household expenses and dependent amount). This research combines two methods
of decision making that is method of weight product and profile matching. Weight
product is a multi-criteria decision-making method that is widely used. Profile
matching can give the weight of the value according to the level of importance of
the criteria. The merger of these two methods aims to combine the strengths of
each method and minimize the deficiencies of each method. The expected result of
this research is an application of decision support system of business capital loan
that can be an optimal and accurate solution for company in decision making.

Keywords: SPK, Weightproduct, Profilematching, PNM, Customers


DAFTAR ISI

KATA PENGANTAR ............................................................................................ i

DAFTAR ISI .......................................................................................................... ii

DAFTAR TABEL ..................................................................................................v

DAFTAR GAMBAR .......................................................................................... vii

DAFTAR LAMPIRAN ....................................................................................... ix

BAB I PENDAHULUAN ......................................................................................1

I.1 Latar Belakang .............................................................................................1

I.2 Ruang Lingkup Permasalahan .....................................................................3

I.2.1 Identifikasi Masalah ...........................................................................3

I.2.2 Perumusan Masalah ...........................................................................3

I.2.3 Batasan Masalah ................................................................................4

I.3 Tujuan dan Manfaat ....................................................................................4

I.2.1 Tujuan ................................................................................................4

I.2.2 Manfaat ..............................................................................................5

I.4 Metode Penelitian ........................................................................................5

I.5 Kontribusi Keilmuan ...................................................................................8

I.6 Lokasi Penelitian .........................................................................................9

I.7 Keaslian Penelitian .......................................................................................9

I.8 Sistematika Penulisan ................................................................................13

BAB II LANDASAN TEORI .............................................................................15

ii
II.1 Sistem Pendukung Keputusan ...................................................................15

II.1.1 Karakteristik Sistem Pendukung Keputusan .................................15

II.1.2 Komponen-Komponen Sistem Pendukung Keputusan .................16

II.1.3 Kriteria Sistem Pendukung Keputusan ..........................................17

II.1.4 Fase Dalam Proses Pengambilan Keputusan .................................17

II.1.5 Tujuan Sistem Pendukung Keputusan ...........................................18

II.2 Pemberian Pinjaman (Pemberian Kredit) ..................................................19

II.3 Metode Profile Matching ..........................................................................20

II.4 Metode Weight Product ............................................................................22

II.5 Unified Modelling Language (UML) ........................................................23

II.6 Microsoft Visual Studio 2010 ....................................................................28

II.7 Microsoft SQL Server ................................................................................28

II.8 Normalisasi (Normalization) .....................................................................29

II.9 Basis Data (Database) ...............................................................................31

II.9.1 DBMS (Database Management System) .......................................32

BAB III ANALISA DAN DESAIN SISTEM ....................................................33

III.1 Analisa Masalah ........................................................................................33

III.2 Penerapan Metode Profile Matching dan Weighted Product ....................34

III.3 Desain Sistem ............................................................................................48

II.3.1 Use Case Diagram .........................................................................48

II.3.2 Class Diagram ...............................................................................49

II.3.3 Activity Diagram ...........................................................................49

II.3.4 Sequence Diagram .........................................................................57

iii
II.3.5 Basis Data ......................................................................................67

II.3.5.1 Normalisasi Data ...........................................................67

II.3.5.2 Desain Tabel .................................................................68

II.3.5.3 Desain Interface ............................................................71

BAB IV HASIL DAN UJICOBA .......................................................................76

IV.1 Tampilan Hasil ...........................................................................................76

IV.2 Spesifikasi Uji Coba Program ....................................................................83

IV.2.1 Uji Coba Program ..........................................................................83

IV.2.2 Hasil Coba .......................................................................................84

IV.2.3 Skenario Pengujian ........................................................................84

IV.3 Kelebihan dan Kekurangan Sistem ............................................................88

IV.3.1 Kelebihan Sistem ...........................................................................88

IV.3.2 Kekurangan Sistem ........................................................................89

BAB V KESIMPULAN DAN SARAN ...............................................................90

V.1 Kesimpulan.................................................................................................90

V.2 Saran ..........................................................................................................90

iv
DAFTAR GAMBAR

Gambar I.1 Diagram Fishbone Pengembangan Sistem .....................................6

Gambar II.1 Fase Proses Pengabilan Keputusan ..............................................18

Gambar III.1 Flowchart Penerapan Metode .......................................................35

Gambar III.2 Use Case Diagram Sistem Pendukung Keputusan .......................48

Gambar III.3 Class Diagram Sistem Pendukung Keputusan .............................49

Gambar III.4 Activity Diagram Login ...............................................................50

Gambar III.5 Activity Diagram Menu Data .......................................................50

Gambar III.6 Activity Diagram Master Data Korban ........................................51

Gambar III.7 Activity Diagram Penilaian Nasabah ...........................................52

Gambar III.8 Activity Diagram Master Data Pengguna ....................................53

Gambar III.9 Activity Diagram Proses SPK ......................................................54

Gambar III.10 Activity Diagram Laporan SPK ...................................................55

Gambar III.11 Activity Diagram Laporan Nasabah.............................................55

Gambar III.12 Activity Diagram Login Pimpinan ...............................................56

Gambar III.13 Activity Logout ............................................................................57

Gambar III.14 Sequence Diagram Form Login ...................................................58

Gambar III.15 Sequence Diagram Master ...........................................................59

Gambar III.16 Sequence Diagram Data Nasabah ................................................60

Gambar III.17 Sequence Diagram Penilaian Nasabah .........................................61

Gambar III.18 Sequence Diagram Pengguna .......................................................62

Gambar III.19 Sequence Diagram Proses SPK....................................................63

v
Gambar III.20 Sequence Diagram Laporan SPK .................................................64

Gambar III.21 Sequence Diagram Tentang .........................................................65

Gambar III.22 Sequence Diagram Form Login ...................................................66

Gambar III.23 Desain Sequence Lougout ............................................................67

Gambar III.24 Desain Sequence Lougout ............................................................67

Gambar III.25 Desain Form Login ......................................................................71

Gambar III.26 Desain Form Utama .....................................................................71

Gambar III.27 Desain Form Data Nasabah ..........................................................72

Gambar III.28 Desain Form Import Data Nilai....................................................72

Gambar III.29 Desain Form Pengguna ................................................................73

Gambar III.30 Desain Form Proses SPK .............................................................74

Gambar III.31 Desain Form Laporan SPK ..........................................................74

Gambar III.32 Desain Form Laporan Nasabah ....................................................75

Gambar IV.1 Performance Form Firm Login ....................................................76

Gambar IV.2 Tampilan Menu Utama ................................................................77

Gambar IV.3 Tampilan Master Data Nasabah ...................................................78

Gambar IV.4 Tampilan Master Data Penilaian ..................................................79

Gambar IV.5 Tampilan Data Pengguna .............................................................80

Gambar IV.6 Tampilan Proses SPK...................................................................81

Gambar IV.7 Tampilan Laporan SPK ................................................................82

Gambar IV.8 Tampilan Laporan Nasabah .........................................................83

vi
DAFTAR TABEL

Tabel.II.1 Simbol Use Case Diagram ................................................................24

Tabel.II.2 Simbol Class Diagram ......................................................................25

Tabel.II.3 Simbol Activity Diagram ..................................................................26

Tabel.II.4 Simbol Sequence Diagram................................................................27

Tabel.III.1 Preferensi Kriteria Luas Tanah .........................................................36

Tabel.III.2 Preferensi Kriteria Kondisi Rumah...................................................36

Tabel.III.3 Preferensi Kriteria Atap Rumah .......................................................36

Tabel.III.4 Preferensi Kriteria Dinding Rumah ..................................................36

Tabel.III.5 Preferensi Kriteria Lantai Rumah .....................................................36

Tabel.III.6 Preferensi Kriteria Pendapatan RT ...................................................36

Tabel.III.7 Penilaian Nasabah .............................................................................37

Tabel.III.8 Konversi Penilaian Nasabah .............................................................38

Tabel.III.9 Nilai Bobot Standart .........................................................................39

Tabel.III.10 Bobot Standart ..................................................................................40

Tabel.III.11 Pencarian GAP ..................................................................................41

Tabel.III.12 Bobot Standart GAP kompetensi ......................................................42

Tabel.III.13 Pemetaan GAP kompetensi Nasabah ................................................43

Tabel.III.14 Normalisasi Bobot Preferensi ...........................................................44

Tabel.III.15 Vektor S ............................................................................................46

Tabel.III.16 Vektor V ...........................................................................................47

Tabel.III.17 Rancangan Tabel Pengguna ..............................................................68

vii
Tabel.III.18 Rancangan Tabel Nilai......................................................................69

Tabel.III.19 Rancangan Tabel Gap .......................................................................69

Tabel.III.20 Rancangan Tabel Bobot Gap ............................................................69

Tabel.III.21 Rancangan Tabel Nasabah ................................................................70

Tabel.III.22 Rancangan Tabel Hasil .....................................................................70

Tabel.IV.1 Login .................................................................................................84

Tabel IV.2 Data Korban ......................................................................................85

Tabel IV.3 DataPenilaian Nasabah .....................................................................86

Tabel IV.4 Data Pengguna ..................................................................................87

Tabel IV.5 Proses SPK ........................................................................................88

viii
DAFTAR LAMPIRAN

Lampiran-1 Listing Program

Lampiran-2 Surat Pengajuan Judul Skripsi

Lampiran-3 Formulir Pendaftaran Judul Skripsi

Lampiran-4 Surat Pernyataan Kesediaan Pembimbing I

Lampiran-5 Surat Pernyataan Kesediaan Pembimbing II

Lampiran-6 Formulir Pendaftaran Seminar Hasil Skripsi

Lampiran-7 Berita Acara Seminar Hasil

Lampiran-8 Formulir Pendaftaran Sidang Skripsi

Lampiran-9 Surat Izin Riset dari Perusahaan

Lampiran-10 Surat Keterangan Selesai Riset Dari Perusahaan

ix
BAB I

PENDAHULUAN
BAB I

PENDAHULUAN

I.1 Latar Belakang

Pemberdayaan masyarakat adalah proses penyadaran masyarakat yang

dilakukan secara transformatif, partisipatif dan berkesinambungan melalui

peningkatan kemampuan dan bertujuan untuk menangani berbagai persoalan

hidup supaya tercapai cita-cita yang diharapkan (Arrosida, 2017 : 2).

Perekonomian masyarakat saat ini masih jauh dari kata mampu dan bisa dikatakan

masih banyak masyarakat yang perekonomiannya tergolong masyarakat kurang

mampu. Untuk meningkatkan pendapatan keluarga, biasanya para wanita dalam

hal ini para ibu rumah tangga melakukannya dengan membuka usaha. Namun

usaha yang dilakukan terkadang terbentur pada masalah kesulitan modal usaha

sehingga usahanya tidak dapat berkembang dengan baik.

PT Permodalan Nasional Madani (Persero) atau PNM, merupakan salah

satu cara pemerintah untuk memberikan pelayanan bagi wanita kurang mampu

yang tidak memiliki modal untuk membuka usaha dan mengembangkan usaha

mereka. Permasalahan yang dihadapi perusahaan adalah dalam pemilihan nasabah

yang layak mendapatkan pinjaman modal usaha dikarenakan data kriteria

pemilihan dan data pengajuan bantuan modal usaha yang begitu banyak. Untuk

memberikan kemudahan dan keakuratan dalam dalam pengambilan keputusan

pemberian pinajaman modal usaha maka perusahaan membutuhkan suatu sistem

pendukung keputusan dengan metode pengambilan keputusan yang handal. Pada

1
2

penelitian ini, pengambilan keputusan pemberian pinjaman modal usaha

menggunakan penggabungan dua metode pengambilan keputusan yakni metode

weight product dan profile matching. Pemilihan metode weight product

dikarenakan metode weight product dapat memberikan nilai cost dan benefit

terhadap nilai masing-masing kriteria sehingga akan mempermudah perusahaan

dalam pemberian bobot kriteria. Sedangkan pemilihan metode profile matching

dikarenakan profile matching dapat memberikan bobot nilai sesuai tingkat

kepentingan kriteria. Penggabungan dua metode ini bertujuan menggabungkan

kekuatan masing-masing metode dan meminimalkan kekurangan-kekurangan dari

masing-masing metode. Hasil dari penggabungan metode ini diharapkan dapat

memberikan solusi yang optimal dan akurat serta dapat mempermudah perusahaan

dalam pengambilan keputusan pemberian pinjaman modal usaha. Adapun kriteria

penilaian yang akan digunakan dalam pengambilan keputusan pemberian

pinjaman modal usaha diantaranya adalah kondisi rumah tinggal (luas bangunan,

kondisi bangunan, jenis atap, dinding dan lantai) serta tingkat pendapatan

(penghasilan rumah tangga sehari, pengeluaran rumah tangga sehari dan jumlah

tanggungan).

Berdasarkan paparan dari permasalahan yang telah dijabarkan sebelumnya

dan gagasan dari solusi pemecahan permasalahan yang ditemukan yang ada, maka

pada penelitian ini penulis tertarik mengangkat judul “: Sistem Pendukung

Keputusan Pemberian Pinjaman Modal Usaha Dengan Metode Weight

Product dan Profile Matching pada Kantor Unit Permodalan Nasional

Madani (Persero)”.
3

I.2 Ruang Lingkup Permasalahan

I.2.1 Identifikasi Masalah

Berdasarkan latar belakang masalah, maka penulis mengambil pokok

permasalahan yaitu :

1. Proses pengambilan keputusan pemberian pinjaman modal usaha menjadi

lambat dan kurang akurat jika terdapat data pengajuan pinjaman modal usaha

dalam jumlah besar.

2. Pengambilan keputusan pemberian pinjaman modal usaha belum

menggunakan sistem pendukung keputusan yang terkomputerisasi.

3. Dibutuhkan suatu sistem pendukung keputusan yang terkomputerisasi,

dengan menggunakan metode pengambilan keputusan yang handal sehingga

hasil pengambilan keputusan lebih akurat.

I.2.2 Perumusan Masalah

Sebagaimana yang telah dikemukakan pada latar belakang masalah di atas,

maka rumusan masalahnya adalah sebagai berikut :

1. Bagaimana merancang dan membangun suatu sistem pendukung keputusan

yang dapat mempermudah dan mempercepat pengambilan keputusan

pemberian pinjaman modal usaha pada PT. Permodalan Nasional Madani ?

2. Bagaimana menerapkan metode weight product dan profile macthing dalam

sistem pendukung keputusan pemberian pinjaman modal usaha ?

3. Bagaimana menggabungkan metode weight product dan profile macthing

dalam pengambilan keputusan pemberian pinjaman modal usaha ?


4

I.2.3 Batasan Masalah

Batasan masalah di maksudkan untuk membatasi ruang lingkup

pembahasan, agar sistem yang dirancang lebih terarah. Batasan masalah dari

perancangan sistem ini dibatasi pada hal-hal sebagai berikut :

1. Pembahasan sistem dibatasi pada pengambilan keputusan pemberian

pinjaman modal usaha pada PT . PNM.

2. Metode pengambilan keputusan yang akan digunakan adalah metode weight

product dan profile matching.

3. Perhitungan bobot nilai menggunakan metode profile matching sedangkan

metode weight product digunakan untuk proses perangkingan.

4. Penggunaan data masukan sistem diantaranya data kriteria, data nasabah, data

kelompok dan data penilaian nasabah.

5. Penggunaan data keluaran sistem diantaranya laporan nasabah, laporan

kelompok, laporan penilaian dan laporan perangkingan.

6. Pembangunan sistem menggunakan bahasa pemrograman microsoft visual

studio 2010 dengan database SQL Server.

7. Permodelan sistem menggunakan UML.

I.3 Tujuan dan Manfaat

I.3.1 Tujuan

Adapun yang menjadi tujuan dalam penelitian ini adalah :

1. Untuk merancang dan membangun sistem pendukung keputusan pemberian

pinjaman modal usaha pada PT. PNM sehingga dapat memberikan


5

kemudahan dalam pengambilan keputusan pemberian pinjaman modal usaha.

2. Untuk mendapatkan hasil keputusan yang optimal dan akurat dalam proses

pengambilan keputusan pemberian pinjaman modal usaha dengan

menerapkan dan menggabungkan dua metode pengambilan keputusan, yakni

metode weight product dan metode profile matching.

I.3.2 Manfaat

Manfaat yang dapat diperoleh dari penelitian ini adalah:

1. Memberikan kemudahan dan hasil yang akurat bagi perusahaan dalam proses

pengambilan keputusan pemberian pinjaman modal usaha.

2. Memberikan bahan rujukan penelitian yang berkaitan dengan penggunaan metode

weight product dan profile matching dalam sistem pendukung keputusan pemberian

pinjaman modal usaha.

I.4 Metodologi Penelitian

Metode penelitian yang dilakukan menggunakan studi literatur dengan

membaca beberapa bacaan dan jurnal-jurnal yang berkaitan dengan sistem

pendukung keputusan untuk pemberian pinjaman modal usaha menggunakan

metode profile matching dan weighted product. Pengumpulan data dilakukan

dengan melakukan studi lapangan dan mengambil beberapa dokumen terkait,

dimana penulis langsung mengamati dan melakukan wawancara proses pengajuan

permohonan pinjaman, penilaian kriteria dan proses pemberian pinjaman modal

usaha.
6

Pengembangan sistem digambarkan dalam bentuk diagram fishbone

seperti pada gambar III.1 berikut :

Penetapan target Perancangan Sistem Pengujian Sistem

Penggabungan Metode UML Input, Output, Process


WP dan PM Permodelan Sistem Metode
Dalam SPK Pemberian Weight Product
Pinjaman Modal Usaha Metode Pengambilan
Input, Output, Process
Keputusan Finalisasi
Objek Penelitian
Perancangan Interface Metode Aplikasi Pemberian Pinjaman
Profile Matching Modal Usaha menggunakan
metode Weighted Product
Data Penilaian Nasabah dan Profile Maching: Studi Kasus
Luas bangunan SQL Server
Data Nasabah : Kantor Unit Permodalan
Kondisi bangunan Laptop ACER Core I3 Nasional Madani
Jenis Atap Data Kelompok
Dinding Microsoft Visual Studio 2010
Lantai Microsoft Windows 7
Kriteria Penilaian

Penghasilan Sehari
Pengeluaran Sehari Studi Literatur
Tanggungan
Implementasi Sistem
Analisa Kebutuhan Sistem

Gambar I.1 Diagram Fishbone Pengembangan Sistem

Pengembangan sistem menggunakan fishbone diagram dapat dijelaskan

sebagai berikut :

a. Penetapan Target

Tahap ini merupakan tahap penetapan target penelitian. Adapun yang

menjadi objek penelitian adalah SPK perbandingan metode weighted product

dan profile macthing dalam pemilihan nasabah yang layak mendapatkan

bantuan modal pinjaman pada PT. PNM.

b. Anasisis Kebutuhan

Adapun kebutuhan dari sistem yang akan dibangun adalah

membandingkan antara metode Weighted Product dan Profile Macthing


7

dalam pemberian pinjaman modal usaha pada PT. PNM. Kebutuhan sistem

dianalisa melalui pengumpulan data yang akan digunakan sebagai data data

awal yang mendukung perancangan sistem pendukung keputusan serta data

masukan dari sistem untuk dilakukan proses penilaian. Data awal yang

mendukung perancangan sistem pendukung keputusan berupa proses

penentuan kriteria dan penyusunan hirarki faktor-faktor yang mempengaruhi

pemberian pinjaman modal usaha pada kantor unit Permodalan Nasional

Madani. Data masukan yang digunakan dalam hal ini adalah data nasabah,

data penilaian nasabah dan data kelompok.

c. Perancangan Sistem

Tahap ini merupakan tahap permodelan sistem menggunakan UML

dan perancangan tampilan (layout) dari sistem yang akan dibangun berupa

data input, data output dan process.

d. Implementasi Sistem

Tahap ini merupakan tahap pengkodean program pembuatan system

yang membutuhkan perangkat yang sesuai kebutuhan sistem. Adapun

spesifikasi perangkat yang digunakan adalah sebagai berikut :

1) Spesifikasi Perangkat Keras

Perangkat keras yang dibutuhkan yaitu laptop dengan spesifikasi

Processor Intel Core i5 2,40 Ghz, Ram 2GB, Hardisk 500 GB

2) Spesifikasi Perangkat Lunak

Perangkat lunak yang dibutuhkan antara lain : Sistem operasi

Windows 7, Microsoft SQLServer 2005, Microsoft Visual Studio 2010


8

e. Pengujian Sistem

Dalam tahap ini dilakukan proses pengujian sistem pendukung

keputusan yang telah dibangun apakah informasi yang dihasilkan sudah

sesuai baik itu dengan menggunakan metode profile matching maupun

metode weight product. Pengujian lain dilakukan pada data input, data output

dan process.

f. Finalisasi

Pada tahap ini sistem pendukug keputusan pemberian pinjaman modal

usaha menggunakan metode Weihted Product dan Profile Matching sudah

melewati tahap validasi dan verifikasi dan siap untuk digunakan oleh Kantor

Unit Permodalan Nasional Madani. Tidak menutup kemungkinan sistem ini

mengalami perubahan ketika sudah digunakan oleh user.

I.5 Kontribusi Penelitian

Kontribusi penelitian dari sistem pendukung keputusan pemberian

pinjaman modal usaha dengan metode weight product dan profile matching yaitu :

1. Bahan referensi dalam penelitian lebih lanjut terhadap kajian-kajian seputar

penerapan metode weight product dan metode profile matching dalam

pengambilan keputusan

2. Bahan penyusunan, pembelajaran, modul, matakuliah, khusunya dengan

penggabungan metode weight product dan metode profile matching.


9

I.6 Keaslian Penelitian

Telah ada beberapa penelitian yang dilakukan terkait dengan penerapan

metode weighted product dan profile matching, diantaranya adalah :

No Thn Penulis Judul Metode Hasil Penelitian


1 2014 Oktavianis Implementasi Gabungan Hasil dari penelitian
Jurnal Kartikasari, Metode Profile Metode ini adalah penerapan
Pengembangan Nurul Matching Profile metode PM dan
Teknologi Hidayat, Dengan Matching metode WP dalam
Informasi dan Suprapto Weighted dan menyeleksi staf
Ilmu Product Pada Metode operator komputer
Komputer Seleksi Staf Weight sehingga dapat dilihat
e-ISSN: 2548- Operator Product hasil perbandingan
964X Komputer untuk kedua metode
Vol. 1, No. 11, (Studi yang yang digunakan.
November Kasus:UPTD Kriteria yang
2017, hlm. Pendidikan digunakan adalah
1331-1336 Kecamatan pengalaman kerja,
http://j- Tambakboyo pengetahuan tentang
ptiik.ub.ac.id Kabupaten komputer dan
Tuban Jawa penggunaanya,
Timur) membuat aplikasi web
atau untuk pekerjaan,
pengetahuan tentang
hardware dan
software, pengaturan
dan memindah data,
mengoperasikan word,
power point, excel,
instalasi software,
pengetahuan umum,
komitmen, time
management, serta
kesiapan. Berdasarkan
hasil pengujian
didapatkan kesamaan
peringkat yang
dihasilkan oleh kedua
metode. Staf yang
memiliki nilai dengan
peringkat yang
tertinggi adalah staff
yang lolos seleksi staff
operator.
10

2 2015 Ahmad Rancang Metode Hasil dari penelitian


Prosiding Syarifudin, Bangun Sistem Profile ini adalah SPK yang
Seminar Ahmadi Pendukung Matching dapat digunakan pihak
Informatika Yuli Ananta Keputusan bank dalam
Aplikatif Kelayakan menentukan diterima
Polinema 2015 Pemberian atau tidaknya
(SIAP~2015) Kredit pengajuan kredit.
ISSN: 2460- Menggunakan Metode yang
1160 Metode profile digunakan dalam
Matching penelitian ini adalah
metode PM dengan
membandingkan nilai
data actual suatu profil
yang akan dinilai
dengan nilai profil
yang diharapkan.
Kriteria yang
digunakan adalah
Character, Capacity,
Collateral, Capital,
dan Condition. Hasil
pengambilan
keputusan adalah
calon nasabah yang
memiliki peringkat
tertinggi sangat
berpotensial yang
diterima
pengajuannya.
3 2015 Kiki Sistem Metode Hasil dari penelitian
Riau Journal Yasdomi pendukung Weight ini adalah penerapan
Of Computer keputusan Product metode weighted
Science pemberian product (WP) sebagai
Vol.1/No.1/20 kredit modal metode penyelesaian
15 : 92- 105 usaha masalah dengan
menggunakan tujuan untuk mencari
metode alternatif calon
weighted nasabah terbaik pada
product (Studi Bank berdasarkan
Kasus Pada dengan
Bank memperhitungkan
Danamon bobot dari tiap-tiap
Simpan Pinjam kriteria yang telah
Ujung Batu) ditentukan. Kriteria
yang digunakan
adalah status rumah ,
11

status tempat usaha,


kondisi usaha, jangka
waktu, kemampuan
membayar kembali
dan nilai agunan.
Hasilnya calon
nasabah yang
memiliki nilai terbaik
sangat potensial untuk
diberikan bantuan
pinjaman kredit.
4 2017 Septiyana Penerapan Metode Hasil dari penelitian ini
Prosiding Firdyana, metode Weight adalah penerapan
Seminar Ilmu Dedy weighted Product metode Weighted
Komputer dan Cahyadi, product untuk Product untuk
Teknologi Indah Fitri menentukan menentukan penerima
bantuan raskin di
Informasi Vol. Astuti penerima
Kelurahan Air Putih.
2, No. 1, Maret bantuan beras Kriteria yang digunakan
2017 masyarakat adalah penilaian
e-ISSN 2540- miskin pekerjaan, jumlah
7902 dan p- (RASKIN) penghasilan, sumber air,
ISSN 2541- makan daging atau telur,
366X luas lantai bangunan,
jenis lantai rumah,
dinding rumah, dan
ketersediaan listrik.
Penelitian dilakukan
dengan mencari bobot
untuk setiap atribut,
kemudian dilakukan
proses peringkat yang
akan menentukan
alternatif optimal calon
penerima raskin, dimana
peringkat tertinggi
adalah yang paling
optimal.
5 2016 Agusta Implementasi Metode Hasil dari penelitian
Jurnal Praba Profile Profile ini adalah penerapan
SIMETRIS, Ristadi Matching Matching metode profile
Vol 8 No 2 Pinem, Untuk matching untuk
November Prind Pemberian pengambilan
2017 Triajeng Kredit Kedua keputusan
ISSN: 2252- Pungkasanti, Pada Koperasi Berdasarkan profil
4983 Edi Widodo Simpan Pinjam nasabah pihak
koperasi dapat
mengabulkan dan
12

menolak permintaan
kredit nasabah.
Asumsi bahwa
terdapat variable
prediktor yang ideal
yang harus dipenuhi
oleh subyek yang
diteliti. Kriteria yang
digunakan adalah
riwayat nasabah, nilai
jaminan, nilai kredit,
jangka waktu kredit,
dan usia. Hasil dari
SPK adalah nasabah
dengan peringkat
terbaik yang layak
diberikan kredit

Perbedaan penelitian yang penulis lakukan dengan penelitian sebelumnya

adalah penulis tidak hanya menggunakan satu metode pengambilan keputusan

dalam pemilihan nasabah yang layak mendapatkan pinjaman modal usaha, akan

tetapi penulis melakukan penggabungan dua metode pengambilan keputusan

yakni metode weight product dan profile matching. Penggabungan dua metode ini

bertujuan menggabungkan kekuatan masing-masing metode dan meminimalkan

kekurangan-kekurangan dari masing-masing metode sehingga hasil dari

pengambilan keputusan pemberian pinjaman modal usaha dapat menjadi solusi

yang optimal dan akurat untuk PT. Permodalan Nasional Madani. Berdasarkan

sistem pendukung keputusan pemberian pinjaman modal usaha yang dibangun,

maka akan dihasilkan suatu keputusan sistem, dimana nasabah yang layak

diberikan pinjaman modal usaha adalah nasabah dengan peringkat tertinggi.


13

I.7 Lokasi Penelitian

Penelitian ini dilakukan pada PT. Permodalan Nasional Madani (PNM)

Unit Mekaar Medan Marelan yakni Badan Usaha Milik Negara Indonesia yang

bergerak di bidang jasa keuangan permodalan yang beralamat di Jl. Pasar 3 Barat

Marelan, Gang Swadaya, Lk.14, Rengas Pulau, Medan Marelan, kota Medan.

1.8 Sistematika Penulisan

Laporan penelitian ini dibagi menjadi lima bab yang dilengkapi dengan

penjelasan, Adapun sistematika penulisannya adalah sebagai berikut :

BAB I PENDAHULUAN

Pada bab ini berisikan dasar pemikiran, kebutuhan atau alasan yang

menjadi ide penulis untuk mengakat judul tersebut menjadi judul

skripsi, terdiri dari latar belakang, ruang lingkup masalah, tujuan dan

manfaat, metodologi penelitian, kontribusi penelitian, lokasi penelitian

dan sistematika penulisan.

BAB II LANDASAN TEORI

Pada bab ini berisikan tentang studi literature dan dasar teori yang

digunakan sebagai penunjang serta referensi dalam pembangunan

sistem pendukung keputusan yang efisien dan efektif menggunakan

penggabungan metode antara metode weight product dan profile

matching pada PT. Permodalan Nasional Madani.


14

BAB III ANALISA DAN DESAIN SISTEM

Pada bab ini berisikan analisa masalah pada sistem yang berjalan,

strategi penyelesaian masalah, penerapan metode/algoritma, desain

sistem baru, menggunakan use case diagram, class diagram, activity

diagram dan sequence diagram, desain database (normalisasi dan

desain tabel) dan desain user interface.

BAB IV HASIL DAN UJICOBA

Pada bab ini berisikan hasil dari sistem pendukung keputusan dan

pengujian yang dilakukan pada sistem pendukung keputusan yang

sudah dibangun menggunakan skenario pengujian dan hasil pengujian.

BAB V KESIMPULAN DAN SARAN

Pada bab ini berisikan tentang kesimpulan dari pemecahan masalah

yang telah didefinisikan sebelumnya serta saran berisikan kelemahan

sistem yang dibangun dan dianggap penting untuk penelitian.


BAB II

TINJAUAN PUSTAKA
BAB II

LANDASAN TEORI

II.1. Sistem Pendukung Keputusan

Sistem pendukung keputusan adalah sistem berbasis komputer yang tediri

dar tiga komponen yang saling berinteraksi, sistem bahasa (mekanisme untuk

memberikan komunikasi antara pengguna dan komponen sistem pendukung

keputusan lain), sistem pengetahuan (respositori pengetahuan domain masalah

yang ada pada sistem pendukung keputusan atau sebagai data atau sebagai

prosedur), dan sistem pemrosesan masalah (hubungan antara dua komponen

lainnya, terdiri dan satu atau lebih kapabilitas manipulasi masalah umum yang

diperlukan untuk pengambilan keputusan) (Novriansyah, 2015 : 1).

II.1.1 Karakteristik Sistem Pendukung Keputusan

Menurut Novriansyah (2015 : 1), karakteristik sistem pendukung

keputusan adalah sebagai berikut :

1. Mendukung proses pengambilan keputusan suatu organisasi atau perusahaan.

2. Adanya interface manusia/mesin dimana manusia (user) tetap memegang

kontrol proses pengambilan keputusan

3. Mendukung pengambilan keputusan untuk membahas masalah terstruktur,

semi terstruktur serta mendukung beberapa keputusan yang saling

berinteraksi.

4. Memiliki kapasitas dialog untuk memperoleh informasi sesuai kebutuhan.

15
16

5. Memitiki sub sistem yang terintegrasi sedemikian rupa sehingga dapat

berfungsi sebagai kesatuan sistem.

6. Memiliki dua komponen utama yaitu data dan model.

II.1.2 Komponen-Komponen Sistem Pendukung Keputusan

Menurut Novriansyah (2015 : 3), sistem pendukung keputusan dibangun

oleh 3 (tiga) komponen utama. Komponen utama dari sistem pendukung

keputusan adalah sebagai berikut :

1. Subsistem Data (Database)

Subsistem data merupakan komponen sistem pendukung keputusan

yang berguna sebagai data penyedia bagi sistem. Data tersebut disimpan

untuk diorganisasikan oleh basis data yang diorganisasikan oleh suatu sistem

yang disebut dengan Database Management System (DBMS).

2. Subsistem Model (Model Base)

Model adalah suatu tiruan dari alam nyata. Kendala yang sering

dihadapi dalam merancang model adalah bahwa model yang dirancang tidak

mampu mencerminkan seluruh variabel alam nyata , sehingga keputusan yang

diambil tidak sesuai dengan kebutuhan. Oleh karena itu, dalam menyimpan

berbagai model harus diperhatikan dan dijaga fleksibilitasnya..

3. Subsistem Dialog (User System Interface)

Subsistem dialog adalah fasilitas yang mampu mengintegrasikan sistem yang

terpasang dengan pengguna secara interaktif, yang dikenal dengan sub sistem

dialog. Melalui sub sistem dialog sistem diimplementasikan.


17

II.1.3 Kriteria Sistem Pendukung Keputusan

Menurut Novriansyah (2015:2) kriteria atau ciri-ciri sistem pendukung

keputusan adalah sebagai berikut :

1. Banyak pilihan / alternatif.

2. Ada kendala / surat.

3. Mengikuti suatu pola/ model

4. Banyak input / variabel

5. Ada faktor resiko. Dibutuhkan kecepatan, ketepatan dan keakuratan.

II.1.4 Fase Dalam Proses Pengambilan Keputusan

Menurut Novriansyah (2015 : 2) ada 3 (tiga) fase dalam proses

pengambilan keputusan diantaranya sebagai berikut :

1. Intellegence

Tahap ini merupakan proses penelusuran dan pendeteksian dari ruang lingkup

problematika secara proses pengenalan masalah. Data masukan diperoleh,

diproses dan diuji dalam rangka mengindentifikasi masalah.

2. Design

Tahap ini merupakan proses menemukan, mengembangkan dan menganalisis

alternatif tindakan yang bisa dilakukan yang meliputi uji kelayakan solusi.

3. Choice

Pada tahap inl dilakukan proses pemilihan diantara berbagai alternatif

tindakan yang mungkin dijalankan. Hasi pemilihan tersebut kemudian

diimplementasikan dalam proses pengambilan keputusan.


18

Fase dalam proses pengambilan keputusan dapat dilihat pada Gambar II.2

seperti berikut.

INTELLIGENCE
(Penelusuran Lingkup Masalah)
Sistem Informasi
Manajemen Pengolahan
DESIGN Data Elektronik
(Perencanaan Penyelesaian) Sistem
Pendukung
Keputusan
CHOISE
(Pemilihan Tindakan) Ilmu Manajemen
Operation

IMPLEMENTATION
(Pelaksanaan Tindakan)

Gambar II.1 Fase Proses Pengabilan Keputusan


(Sumber : Novriansyah ; 2016)

II.1.5 Tujuan Sistem Pendukung Keputusan

Menurut Novriansyah (2015:4) tujuan dari sistem pendukung keputusan

adalah pengambilan keputusan diantaranya sebagai berikut :

1. Membantu dalam pengambilan keputusan atas masalah yang terstruktur.

2. Memberikan dukungan atas pertimbangan manajer dan bukannya

dimaksudkan untuk menggantikan fungsi manajer.

3. Meningkatkan efektifitas keputusan yang diambil lebih dari pada perbaikan

efesiensinya.

4. Kecepatan komputasi komputer memungkinkan para pengambil keputusan

untuk banyak melakukan komputasi secara cepat dengan biaya yang rendah.

5. Peningkatan produktivitas membangun suatu kelompok pengambilan

keputusan, terutama para pakar, biasa sangat mahal.


19

II.2. Pemberian Pinjaman (Pemberian Kredit)

Kredit adalah penyediaan uang atau tagihan yang dapat dipersamakan

dengan itu, berdasarkan persetujuan atau kesepakatan pinjam meminjam antara

bank dengan pihak lain yang mewajibkan pihak peminjam untuk melunasi

utangnya setelah jangka waktu tertentu dengan jumlah bunga, imbalan atau

pembagian hasil keuntungan (Zefriyenni, 2017 : 2).

Prinsip-prinsip pemberian kredit dalam melakukan penilaian kriteria-

kriteria serta aspek penilaiannya setiap pemberi kredit aspek penilaiannya tetap

sama. Ukuran-ukuran yang yang ditetapkan sudah menjadi standar penilaian

setiap bank. Kriteria penilaian yang harus dilakukan oleh bank untuk

mendapatkan nasabah yang benar-benar menguntungkan dilakukan dengan

analisis 5-C yaitu (Zefriyenni, 2017 : 3) :

1. Character, merupakan suatu keyakinan bahwa sifat atau watak dari orang-

orang yang akan diberikan kredit benar-benar dapat dipercaya

2. Capacity, untuk melihat nasabah dalam kemampuannya dalam bidang bisnis

yang dihubungkan dengan pendidikannya.

3. Capital, untuk melihat penggunaan modal apakah efektif, dilihat laporan

keuangan (neraca dan laporan laba rugi) dengan melakukan pengukuran.

4. Colleteral, merupakan jaminan yang diberikan calon nasabah baik yang

bersifat fisik maupun.non fisik.

5. Condition, dalam menilai kredit hendaknya juga dinilai kondisi ekonomi dan

politik sekarang dan dimasa yang akan datang sesuai sektor masing-masing,

serta prospek usaha dari sektor yang ia jalankan.


20

II.3 Metode Profile Matching

Model Pencocokan Profil (Profile Matching) adalah suatu proses yang

sangat penting dalam manajemen SDM dimana terlebih dahulu ditentukan

kompetensi (kemampuan) yang dibutuhkan agar diperoleh hasil maksimum dari

beberapa kriteria. Kompetensi/kemampuan tersebut haruslah dapat dipenuhi

secara maksimal ataupun paling mendekati oleh calon nasabah penerima kredit.

(Syarifudin, 2015 : 3).

Garis besarnya, profile matching membandingkan nilai yang didapatkan

oleh satu profil dengan standar yang telah ditentukan. Proses membandingkan ini

dinamakan gap, dimana semakin kecil nilai gap yang diperoleh maka besar

peluang untuk mengisi jabatan yang ditawarkan.

Langkah-langkah dalam melakukan metode ini adalah:

1. Menentukan tujuan dan alternatif yang akan dipilih

2. Menentukan aspek dan subaspek yang digunakan untuk penilaian

3. Melakukan pemetaan Gap

Gap yang dimaksud adalah perbedaan antara profil jabatan dengan profil

karyawan atau bisa ditunjukkaan pada rumus di bawah ini:

Gap = Profil pribadi – Profil kepribadian Gap = Profil pribadi – Profil kepribadian

4. Melakukan perhitungan core factor dan secondary factor

Setelah menentukan bobot nilai Gap untuk ketiga aspek, yaitu aspek kapasitas

intelektual, sikap kerja dan perilaku dengan cara sama, setiap kriteria atau

aspek dikelompokkan menjadi dua kelompok yaitu kelompok core factor dan

secondary factor.
21

a. Perhitungan core factor menggunakan rumus dibawah ini:

…………………….(3)

dimana:

NRC = Nilai rata-rata core factor tiap aspek

NC = Jumlah total nilai core factor tiap aspek

IC = Jumlah item tiap aspek

b. Untuk menghitung nilai Secondary Factor digunakan rumus:

…………………….(4)

dimana:

NRS = Nilai rata-rata secondary factor tiap aspek

NS = Jumlah total nilai secondary factor tiap aspek

IS = Jumlah item tiap aspek

c. Untuk menghitung nilai total digunakan rumus :

60% (CF) + 40% (SF) …………………….(5)

5. Perhitungan Nilai Total

Dari hasil setiap aspek di atas berikutnya dihitung nilai total berdasakan

presentasi dari nilai core factor dan secondary factor yang diperkirakan

berpengaruh terhadap kinerja tiap-tiap profil.

6. Perhitungan Nilai Rangking

Hasil akhir dari proses profile matching adalah ranking dari kepribadian yang
22

dominan dari setiap alternatif. Penentuan ranking mengacu pada hasil

perhitungan tertentu. Perhitungan tersebut dapat ditunjukkan pada rumus :

Ranking = A%(K1)+B%(K2)+C%(K3)+D%(K4)+E%(K5)+F%(K6)+G%(K7)+H%(K8) …..(6)

Dimana :

K = Nilai kriteria dan menyimpan data, maka data harus dalam satu basis

data; dibuat satu format sehingga mudah membuat program

aplikasinya.

II.4 Metode Weight Product

Metode Weighted Product (WP) menggunakan perkalian untuk

menghubungkan rating atribut, dimana rating setiap atribut harus dipangkatkan

dengan bobot atribut yang bersangkutan. Proses tersebut sama halnya dengan

normalisasi (Yasdomi, 2015 : 3).

Adapun tahapan dalam mengimplementasikan Sistem Pendukung

Keputusan dengan metode Weighted Product :

1. Penentuan alternatif

2. Penentuan kriteria

3. Penilaian bobot kepentingan tiap kriteria

4. Penentuan range nilai tiap kriteria

5. Penilaian tiap alternatif menggunakan semua atribut dengan penentuan range

nilai yang disediakan yang menunjukan seberapa besar kepentingan antar

kriteria.
23

6. Dari data penilaian tiap bobot atribut dan nilai alternatif dibuat matrik

keputusan

7. Dilakukan proses perbaikan/normalisasi bobot kriteria. Preferensi untuk

alternatif A i diberikan sebagai berikut :

S i   j 1 xijwj ..........(7)
n

Xij : nilai kriteria ke-i dan ke-j


Wj : bobot atribut j
i : index kriteria
j : index atribut

Preferensi relatif dari setiap alternatif, diberikan sebagai :

i : index kriteria
j : index atribut
* : banyak kriteria yang telah dinilai pada vektor S

II.5 Unified Modelling Language (UML)

Unified Modeling Language (UML) adalah standarisasi bahasa pemodelan

untuk membangun perangkat lunak yang dibangun dengan menggunakan teknik

pemrograman berorientasi objek. (Aprianti, 2016 : 2).

Diagram-diagram yang terdapat dalam UML sangat banyak, berikut ini

beberapa diagram yang sering digunakan dalam pengembangan sistem yaitu :

1) Use case diagram

Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor

dengan sistem informasi yang akan dibuat (Aprianti, 2016 : 3). Simbol-simbol Use

Case Diagram dapat dilihat pada Tabel II.1 berikut. :


24

Tabel II.1 Simbol Use Case Diagram

Gambar Nama Keterangan


Menspesifikasikan himpuan peran
Actor yang pengguna mainkan ketika
berinteraksi dengan use case.
Hubungan dimana perubahan yang
terjadi pada suatu elemen mandiri
Dependency
(independent) akan mempengaruhi
elemen yang bergantung padanya.
Hubungan dimana objek anak
(descendent) berbagi perilaku dan
Generalization
struktur data dari objek yang ada di
atasnya objek induk (ancestor).
Menspesifikasikan bahwa use case
Include
sumber secara eksplisit.
Menspesifikasikan bahwa use case
Extend target memperluas perilaku dari use
case sumber pada suatu titik
Menspesifikasikan paket yang
System menampilkan sistem secara
terbatas.
Deskripsi dari urutan aksi-aksi yang
ditampilkan sistem yang
Use Case
menghasilkan suatu hasil yang
terukur bagi suatu aktor
Interaksi aturan-aturan dan elemen
lain yang bekerja sama untuk
Collaboration menyediakan prilaku yang lebih
besar dari jumlah dan elemen-
elemennya (sinergi).
Elemen fisik yang eksis saat
Note aplikasi dijalankan dan
mencerminkan suatu sumber daya
(Sumber : Aprianti ; 2016)

2. Class Diagram

Class diagram menggambarkan struktur sistem dari segi pendifinisian kelas-

kelas yang akan di buat untuk membangun sistem. Kelas memiliki apa yang disebut

atribut dan metode atau operasi (Aprianti, 2016 : 2)..Class diagram dapat dilihat

pada Tabel II.2 berikut :


25

Tabel II.2 Simbol Class Diagram

No Gambar Nama Keterangan


Hubungan dimana objek anak
(descendent) berbagi perilaku dan
1 Generalization
struktur data dari objek yang ada di
atasnya objek induk (ancestor).

Upaya untuk menghindari asosiasi


Nary
2 dengan lebih dari 2 objek.
Association

Himpunan dari objek-objek yang


3 Class berbagi atribut serta operasi yang
sama.

Deskripsi dari urutan aksi-aksi yang


ditampilkan sistem yang menghasilkan
4 Collaboration
suatu hasil yang terukur bagi suatu
aktor
Operasi yang benar-benar dilakukan
5 Realization oleh suatu objek.

Hubungan dimana perubahan yang


terjadi pada suatu elemen mandiri
6 Dependency (independent) akan mempegaruhi
elemen yang bergantung padanya
elemen yang tidak mandiri

Apa yang menghubungkan antara


7 Association objek satu dengan objek lainnya

(Sumber : Aprianti ; 2016)

3. Activity Diagram

Activity Diagram menggambarkan workflow (aliran kerja) dari sebuah sistem

atau proses bisnis atau menu yang ada pada perangkat lunak (Aprianti, 2016 : 3).

Acitvity diagram dapat dilihat pada Tabel II.3 berikut :


26

Tabel II.3 Simbol Activity Diagram

Simbol Fungsi Keterangan


Status awal Status awal aktivitas
system, sebuah diagram
aktivitas memiliki status
awal
Aktivitas Aktivitas yang
dilakukan system,
aktivitas biasanya
diawali dengan kata
kerja
Percabangan / Decision Asosiasi percabangan
dimana jika ada pilihan
aktivitas lebih dari satu
Penggabungan / join Asosiasi penggabungan
dimana lebih dari satu
aktivitas digabungkan
menjadi satu
Status akhir Status akhir yang
dilakukan system,
sebuah diagram
aktivitas memiliki
sebuah status akhir
Nama swimlane
Swimlane Memisahkan organisasi
bisnis yang bertanggung
jawab terhadap aktivitas
yang terjadi
Fork, Digunakan untuk
menunjukan kegiatan
yang dilakukan secara
parallel
Join, Digunakan untuk
menunjukan kegiatan
yang digabungkan

(Sumber : Aprianti ; 2016)

4. Sequence Diagram

Sequence diagram menggambarkan kelakuan objek pada Use Case dengan

mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima

antar objek. Sequence diagram dapat dilihat pada Tabel II.4 berikut :
27

Tabel II.4 Simbol Sequence Diagram

Simbol Fungsi Keterangan


Orang, proses atau
system lain yang
berinteraksi dengan
system informasi
Actor dan mendapat
manfaat dari system
Ditempatkan di
bagian atas diagram

Objek entity,
antarmuka yang
LifeLine saling berinteraksi.

Spesifikasi dari
komunikasi antar
objek yang memuat
Message
informasi-informasi
tentang aktifitas
yang terjadi

Spesifikasi dari
komunikasi antar
objek yang memuat
Message
informasi-informasi
tentang aktifitas
yang terjadi
(Sumber : Aprianti ; 2016)

II.6 Microsoft Visual Studio 2010

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang

dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis,

aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi

Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, Software

Development Kit, Integrated Development Environment (IDE), dan dokumentasi


28

(umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual

Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual

InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe. Microsoft Visual

Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk

bahasa mesin yang berjalan di atas Windows) ataupun managed code (dalam bentuk

Microsoft Intermediate Language di atas .NET Framework). (Herpendi, 2016 : 1).

II.7 Microsoft SQL Server

SQL Server 2005 merupakan salah satu produk DBMS yang dibuat oleh

microsoft. SQL server 2005 menawarkan beberapa fitur di dalam mengelola database (

Ulfah, 2015 : 2).

SQL Server 2005 atau disebut juga dengan SQL Server 9 merupakan

pengembangan dari SQL Server versi 2000. Pada SQL Server 2005 disediakan beberapa

tools untuk para developer, yaitu: SQL Server Management Studio, SQL Computer

Manager, Sqlcmd (SQL Command) dan SQL Management Object.

II.8 Normalisasi (Normalization)

Normalisasi adalah salah satu cara untuk meminimalisir pengulangan data

(data redundancy), normalisasi akan diperlukan jika ada indikasi bahwa tabel

yang kita buat tidak baik (terjadi pengulangan informasi, potensi inkonsistensi

data pada operasi pengubahan, tersembunyinya informasi tertentu dan lain

sebagainya) dan diperlukan supaya jika tabel-tabel yang didekomposisi kita

gabung kembali dapat menghasilkan tabel awal sebelum didekomposisi, sehingga

diperoleh tabel yang baik. Hasil dari normalisasi adalah himpunan-himpunan data

(tabel-tabel) dalam bentuk normal (normal form). (Mulyani, 2016:132)


29

Beberapa kegunaan dari penggunaan normalisasi dalam perancangan

database adalah (Mulyani, 2016:132).

1. Meminimalisir pengulangan data (data redundancy)

2. Memudahkan identifikasi entity objek.

Beberapa bentuk normal yaitu (Mulyani, 2016:132):

1. Bentuk Normal I (First Normal Form / 1-NF)

Suatu relasi memenhi 1-NF jika dan hanya jika setiap attribute dan relasi

tersebut hanya memiliki nilai tunggal dalam 1 (satu) baris record.

2. Bentuk Normal II (Second Normal Form/2-NF)

Suatu relasi memenuhi 2-NF jika dan hanya jika memenuhi 1-NF dan Setiap

attribute yang bukan kunci utama tergantung secara fungsional terhadap

semua attribute kunci dan bukan hanya sebagian attribute (menghilangkan

ketergantungan fungsional pada sebagian/salah satu key).

3. Bentuk Normal Ill (Third Normal Form/3-NF)

Suatu relasi memenuhi 3-NF jika dan hanya jika memenuhi 2-NF dan setiap

attribute bukan kunci tidak tergantung secara fungsional kepada attribute

bukan kunci yang lain dalam relasi tersebut (menghilangkan ketergantungan

transitif pada yang bukan key).

4. Boyce-Codd Normal Form (BCNF)

Suatu relasi memenhi BCNF jika untuk setiap functional dependency (FD)

terhadap setiap atribut atau gabungan atribut dalam bentuk : X -> Y maka X

adalah super key. Tabel tersebut harus di dekomposisi berdasarkan FD yang


30

ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi. Setiap

tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu

termasuk BCNF. Perbedaannya, untuk functional dependency X -> A, BCNF

tidak membolehkan A sebagai bagian dari primary key.

5. Bentuk Normal IV (Fourth Normal Form/4-NF)

Suatu relasi memenuhi 4-NF jika dan hanya jika memenuhi BCNF dan tabel

tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute. Untuk

setiap multivalued attribute (MVD) juga harus merupakan functional

dependencies.

Beberapa key dalam Normalisasi (Mulyani, 2016:132):

1. Superkey adalah sejumlah attribute entity yang dapat digunakan untuk

mengidentifikasi objek secara unik.

2. Candidate key adalah superkey dengan jumlah attribute minimal dan dapat

berdiri sendiri.

3. Primary key adalah superkey yang dipilih oleh database administrator.

4. Foreign key adalah attribute disuatu relasi (tabel) yang menjadi primary key

di relasi (label) lain.

II.9 Basis Data (Database)

Database adalah kumpulan dari semua data yang diperlukan oleh sistem.

Dengan menggunakan database, beberapa apalikasi berbeda bisa saling

terintegrasi. (Mulyani, 2016:148).


31

Database merupakan komponen terpenting dalam pembangunan sistem,

karena menjadi tempat untuk menampung dan mengorganisasikan seluruh data

yang ada dalam sistem, sehingga dapat dieksplorasi untuk menyusun-menyusun

informasi-informasi dalam berbagai bentuk.

II.9.1 DBMS (Database Management System)

Database Management System adalah sistem software yang

memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan

kontrol akses ke database. (Mulyani, 2016:170).

DBMS adalah software yang berinteraksi dengan program aplikasi dan

pengguna database Biasanya DBMS menyediakan fasilitas sebagai berikut :

1. DDL (Data Definition Language)

DDL memungkinkan pengguna untuk menentukan tipe data dan struktur dan

kendala pada data yang akan disimpan dalam database.

2. DML(Data Manipulation Language)

Ini memungkinkan pengguna untuk memasukkan, update, menghapus dan

mengambil data dari database biasanya meskipun memanipulasi data bahasa.

3. Memberikan akses kontrol ke database :

a. Keamanan sistem: yang mencegah pengguna yang tidak berhak mengakses

database.

b. Integritas system : yang menjaga konsistensi data yang tersimpan.

c. Concurrency control system: yang memungkinkan berbagi akses database.


32

d. Pemulihan sistem control : yang mengembalikan database ke keadaan yang

konsisten sebelumnya setelah perangkat keras atau kegagalan software.

e. User-diakses katalog, yang berisi deskripsi dari data dalam database.


BAB III

ANALISIS DAN DESAIN SISTEM


BAB III

ANALISIS DAN DESAIN SISTEM

III.1 Analisis Masalah

Analisis masalah bertujuan untuk mengidentifikasi serta melakukan

evaluasi mengevaluasi permasalahan-permasalahan, hambatan-hambatan yang

terjadi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusulkan

perbaikan-perbaikan pada sistem yang ada. Berdasarkan pengamatan dan

wawancara yang penulis lakukan pada PT. Permodalan Nasional Madani cabang

Medan Marelan, penulis menemukan beberapa permasalahan terkait pengambilan

keputusan pemberian pinjaman modal usaha. Permasalahan tersebut diantaranya

adalah :

4. Proses pengambilan keputusan pemberian pinjaman modal usaha menjadi

lambat dan kurang akurat jika terdapat data pengajuan pinjaman modal usaha

dalam jumlah besar.

5. Pengambilan keputusan pemberian pinjaman modal usaha belum

menggunakan sistem pendukung keputusan yang terkomputerisasi.

6. Dibutuhkan suatu sistem pendukung keputusan yang terkomputerisasi,

dengan menggunakan metode pengambilan keputusan yang handal sehingga

hasil pengambilan keputusan lebih akurat.

Adanya permsalahan dikarenakan proses pengambilan keputusan

pemberian pinjaman modal usaha selama ini belum menggunakan sistem

pendukung keputusan yang terkomputerisasi dan belum melakukan penerapman

33
34

metode yang tepat. Oleh karena itu, untuk memberikan kemudahan dan proses

yang cepat kepada PT. Permodalan Nasional Madani cabang Medan Marelan

dalam pengambilan keputusan maka penulis akan membangun sebuah aplikasi

sistem pendukung keputusan pemberian pinjaman modal usaha dengan

menerapkan penggabungan 2 (dua) metode pengambilan keputusan yaitu metode

profile matching dan weighted product. Bahasa pemrograman yang akan

digunakan adalah Microsoft Visual Basic dengan didukung mesin database

Microsoft SQL Server. Aplikasi sistem pendukung keputusan pemberian pinjaman

modal usaha ini diharapkan dapat menjadi alat pengukuran kelayakan pemberian

pinjaman bagi PT. Permodalan Nasional Madani.

III.2 Penerapan Metode Profile Matching dan Weighted Product

Pengambilan keputusan yang digunakan dalam sistem pendukung

keputusan ini menggunakan penggabungan dua metode pengambilan keputusan

yakni metode profile matching dan weighted product. Metode profile matching

hanya dilakukan sampai tahap mendapatkan nilai bobot GAP dari masing-masing

nasabah. Tidak sampai mendapatkan nilai CF maupun SF. Hal ini dikarenakan

nilai yang dapat di masukkan ke dalam proses weight product untuk pencarian

vektor S adalah nilai bobot GAP nasabah berdasarkan setiap kriteria. Sedangkan

nilai CF dan SF tidak dapat digunakan dalam proses penggabungan metode. Hasil

pemetaan GAP ini kemudian digunakan pada metode weight product untuk

mendapatkan nilai Sigma Vector S dan Sigma Vektor V. Selanjunya nilai sigma

vector v dilakukan perangkingan untuk mendapatkan keputusan nasabah yang


35

layak mendapatkan pinjaman modal. Penggabungan metode tersebut dapat dilihat

dari flowchart penerapan metode profile matching dan weighted product seperti

pada gambar III.1 berikut ini.

Mulai

PM
Input Kriteria Method
Dan Sub Kriteria Penilaian

Input Bobot Prefernsi

Input Data Penilaian


Pencarian GAP
Nasabah
WP
Method
Pemetaan Normaliasi Bobot
Standar GAP
GAP Standar Preferensi

Hasil Pemetaan
Perhitungan Nilai
GAP Standar
Vektor S

Perhitungan Nilai
Vektor V

Hasil Penilaian SPK

Selesai

Gambar III.1 Flowchart Penerapan Metode


36

Adapun langkah-langkah yang dilakukan dalam penerapan penggabungan metode

weight product dan metode profile matching dalam sistem pendukung keputusan

pemberian pinjaman modal adalah sebagai berikut :

1. Menentukan kriteria dan sub kriteria pemberian pinjaman serta bobotnya :

Tabel III.1 Preferensi Kriteria Luas Tanah


> 50 m2 > 100 m2 > 200 m2
Sub > 0 m2 dan
dan <= dan <= dan <= > 350 m2
Kriteria <= 50 m2
100 m2 200 m2 350 m2
Bobot 5 4 3 2 1

Tabel III.2 Preferensi Kriteria Kondisi Rumah


Sub Sangat Sangat
Rusak Sederhana Mewah
Kriteria Rusak Mewah
Bobot 5 4 3 2 1

Tabel III.3 Preferensi Kriteria Atap Rumah


Sub Anyaman
Seng Tanah Liat Beton Keramik
Kriteria Daun
Bobot 5 4 3 2 1

Tabel III.4 Preferensi Kriteria Dinding Rumah


Sub Anyaman
Triplek Papan Beton Keramik
Kriteria Bambu
Bobot 5 4 3 2 1

Tabel III.5 Preferensi Kriteria Lantai Rumah


Sub
Tanah Bambu Papan Semen Keramik
Kriteria
Bobot 5 4 3 2 1

Tabel III.6 Preferensi Kriteria Pendapatan RT


>800000
>400000 >600000
Sub >0 dan dan >100000
dan dan
Kriteria <=400000 <=100000 0
<=600000 <=800000
0

Bobot 5 4 3 2 1
37

2. Melakukan penilaian nasabah

Tabel III.7 Penilaian Nasabah


Kode Nama Nasabah Luas Kondisi Atap Dinding Lantai Pendapatan

Nsbh Tanah Rumah Rumah Rumah Rumah RT

N0001 Masmayni Binti >100m2 dan Anyaman Anyaman >600000 dan


Sederhana Bambu
Legimin <=200m2 Daun Bambu <=800000
N0002 Novi Binti >200 m2
Tanah >400000 dan
Mursiyabu dan <= 350 Mewah Papan Tanah
Liat <=600000
m2
N0003 Rosmita Binti Sangat >0 dan
> 350 m2 Beton Beton Semen
Suwandi Rusak <=400000
N0004 Dwi Binti > 0 m2 dan >800000 dan
Rusak Seng Triplek Papan
Sutrisno <= 50 m2 <=1000000
N0005 Marni Binti Iro > 50 m2 dan Sangat
2
Keramik Keramik Semen >1000000
Dukromo <= 100 m Mewah
N0006 Suhema Binti > 50 m2 dan Sangat Anyaman Anyaman >0 dan
Bambu
Sudiman <= 100 m2 Rusak Daun Bambu <=400000
N0007 Sumirah Binti > 0 m2 dan
Rusak Beton Keramik Keramik >1000000
Ahmad Jaro <= 50 m2
N0008 Siti Alijah Binti > 100m2
Tanah >400000 dan
Sabar Alka dan Sederhana Papan Tanah
Liat <=600000
<=200m2
N0009 Dermawati Binti > 200m2
>600000 dan
Rohman dan <= 350 Rusak Keramik Beton Semen
<=800000
m2
N0010 Syamsidar Binti > 50 m2 dan >800000 dan
Mewah Beton Beton Keramik
Abdullah <= 100 m2 <=1000000
N0011 Suriani Binti > 0 m2 dan Sangat
2
Seng Keramik Keramik >1000000
Salikin <= 50 m Rusak
N0012 SunartiBinti >100m2 dan Tanah >0 dan
Rusak Papan Tanah
Wadimin <= 200 m2 Liat <=400000
38

3. Melakukan konversi penilaian nasabah

Tabel III.8 Konversi Penilaian Nasabah


Kode Nama Luas Kondisi Atap Dinding Lantai Pendapatan
Tanah Rumah Rumah Rumah Rumah RT
N0001 Masmayni
3 3 5 5 4 3
Binti Legimin
N0002 Novi Binti
2 2 3 3 5 4
Mursiyabu
N0003 Rosmita Binti
1 5 2 2 2 5
Suwandi
N0004 Dwi Binti
5 4 4 4 3 2
Sutrisno
N0005 Marni Binti
4 5 5 5 4 5
Iro Dukromo
N0006 Suhema Binti
5 4 2 1 1 1
Sudiman
N0007 Sumirah Binti
3 3 3 3 5 4
Ahmad Jaro
N0008 Siti Alijah
Binti Sabar 2 4 1 2 2 3
Alka
N0009 Dermawati
4 2 2 2 1 2
Binti Rohman
N0010 Syamsidar
Binti 5 5 4 1 1 1
Abdullah
N0011 Suriani Binti
3 4 3 3 5 5
Salikin
N0012 SunartiBinti
1 3 5 4 3 4
Wadimin
39

4. Menentukan bobot standar penilaian untuk digunakan sebagai pengurangan

dalam pencarian gap.

Pemberian bobot berdasarkan tingkat kepentingan dengan rincian sebagai

berikut :

a. Nilai 5, jika tingkat kepentingan kriteria yang ditentukan Sangat Penting

b. Nilai 4, jika tingkat kepentingan kriteria yang ditentukan Penting

c. Nilai 3, jika tingkat kepentingan kriteria yang ditentukan Cukup Penting

d. Nilai 2, jika tingkat kepentingan kriteria yang ditentukan Kurang Penting

e. Nilai 1, jika tingkat kepentingan kriteria yang ditentukan Tidak Penting

Tabel III.9 Nilai Bobot Standar

No Bobot Kepentingan Kriteria Nilai

1 Kriteria Sangat Penting 5

2 Kriteria Penting 4

3 Kriteria Cukup Penting 3

4 Kriteria Kurang Penting 2

5 Kriteria Tidak Penting 1

Berdasarkan nilai bobot kepentingan kriteria, maka ditetapkan bobot

kepentingan kriteria sesuai dengan kebutuhan perusahaan sebagai berikut

seperti terlihat pada Tabel III.5 berikut ini.


40

Tabel III.10 Bobot Standar

Luas Kondisi Atap Dinding Lantai Pendapatan

Tanah Rumah Rumah Rumah Rumah RT

Nilai 5 5 5 3 1 5

5. Pencarian gap

Pencarian gap dilakukan dengan mengurangi nilai setiap kriteria peserta

dengan bobot standar masing-masing kriteria.

Misal : Nilai nasabah N0001 untuk kriteria Luas Tanah adalah 3 dan Bobot

dari kriteria Luas Tanah adalah 5 maka dilakukan pengurangan Nilai dengan

Bobot.

N0001[Luas Tanah] = 3 – 5 = (-2)

N0001[Kondisi Rumah] = 3 – 5 = (-2)

N0001[Atap Rumah] = 5 – 5 = (0)

N0001[Dinding Rumah] = 5 – 3 = (2)

N0001[Lantai Rumah] = 4 – 1 = (3)

N0001[Pendapatan RT] = 3 – 5 = (-2)

Proses diulangi sampai nasabah yang terakhir sehingga akan didapatkan

hasil pencarian GAP seperti pada tabel III.6 berikut ini.


41

Tabel III.11 Pencarian GAP

Kode Nama Luas Kondisi Atap Dinding Lantai Pendapatan


Nasabah Nasabah Tanah Rumah Rumah Rumah Rumah RT

N0001 Masmayni -2 -2 0 2 3 -2
Binti Legimin
N0002 Novi Binti -3 -3 -2 0 4 -1
Mursiyabu
N0003 Rosmita Binti -4 0 -3 -1 1 0
Suwandi
N0004 Dwi Binti 0 -1 -1 1 2 -3
Sutrisno
N0005 Marni Binti -1 0 0 2 3 0
Iro Dukromo
N0006 Suhema Binti 0 -1 -3 -2 0 -4
Sudiman
N0007 Sumirah Binti -2 -2 -2 0 4 -1
Ahmad Jaro
N0008 Siti Alijah -3 -1 -4 -1 1 -2
Binti Sabar
Alka
N0009 Dermawati -1 -3 -3 -1 0 -3
Binti Rohman
N0010 Syamsidar 0 0 -1 -2 0 -4
Binti
Abdullah
N0011 Suriani Binti -2 -1 -2 0 4 0
Salikin
N0012 SunartiBinti -4 -2 0 1 2 -1
Wadimin
42

6. Penetapan Bobot Standar GAP kompetensi

Bobot standar GAP kompetensi merupakan ketetapan yang digunakan

sebagai perbandingan untuk mendapatkan bobot dari setiap nilai GAP

nasabah. Penetapan bobot terlihat pada tabel III.7 berikut.

Tabel III.12 Bobot Standar GAP Kompetensi


Bobot
Selisih Nilai Keterangan
0 5 Tidak Ada Selisih (kompetensi sesuai yang dibutuhkan)
1 4,5 Kompetensi individu kelebihan 1 tingkat/level
-1 4 Kompetensi individu kekurangan 1 tingkat/level
2 3,5 Kompetensi individu kelebihan 2 tingkat/level
-2 3 Kompetensi individu kekurangan 2 tingkat/level
3 2,5 Kompetensi individu kelebihan 3 tingkat/level
-3 2 Kompetensi individu kekurangan 3 tingkat/level
4 1,5 Kompetensi individu kelebihan 4 tingkat/level
-4 1 Kompetensi individu kekurangan 4 tingkat/level

7. Pemetaan gap kompetensi nasabah

Pemetaan gap kompetensi nasabah dilakukan dengan memetakan gap dengan

bobot standar gap kompetensi. Untuk mendapatkannya, nilai tiap gap masing-

masing nasabah hasilnya akan dibandingkan dengan bobot standar gap

kompetensi. Misalnya : Nilai GAP dari nasabah N0001 untuk kriteria Luas

Tanah adalah (-2) dan dari tabel standar GAP didapat jika nilai GAP (-2),

maka bobot nilainya adalah 3.

N0001[Luas Tanah] = (-2) 3


43

Tabel III.13 Pemetaan GAP Kompetensi Nasabah

Kode Nama Luas Kondisi Atap Dinding Lantai Pendapatan


Tanah Rumah Rumah Rumah Rumah RT
N0001 Masmayni
3 3 5 3,5 2,5 3
Binti Legimin
N0002 Novi Binti
2 2 3 5 1,5 4
Mursiyabu
N0003 Rosmita Binti
1 5 2 4 4,5 5
Suwandi
N0004 Dwi Binti
5 4 4 4,5 3,5 2
Sutrisno
N0005 Marni Binti
4 5 5 3,5 2,5 5
Iro Dukromo
N0006 Suhema Binti
5 4 2 3 5 1
Sudiman
N0007 Sumirah Binti
3 3 3 5 1,5 4
Ahmad Jaro
N0008 Siti Alijah
2 4 1 4 4,5 3
Binti Sabar
N0009 Dermawati
4 2 2 4 5 2
Binti Rohman
N0010 Syamsidar
Binti 5 5 4 3 5 1
Abdullah
N0011 Suriani Binti
3 4 3 5 1,5 5
Salikin
N0012 SunartiBinti
1 3 5 4,5 3,5 4
Wadimin

Tabel III.14 Kelayakan Profile Matching


Kode Nasabah Nama Nasabah NCF NSF Total Kelayakan
N0005 Marni Binti Iro Dukromo 4,125 4,25 2,0875 Layak
N0004 Dwi Binti Sutrisno 3,625 4,25 1,9375 Layak
N0010 Syamsidar Binti Abdullah 4 3,5 1,9 Layak
N0011 Suriani Binti Salikin 3,375 4 1,8125 Layak
N0012 SunartiBinti Wadimin 2,875 4,75 1,8125 Layak
N0003 Rosmita Binti Suwandi 3,875 3 1,7625 Layak
N0001 Masmayni Binti Legimin 2,875 4,25 1,7125 Tak Layak
N0007 Sumirah Binti Ahmad Jaro 2,875 4 1,6625 Tak Layak
N0006 Suhema Binti Sudiman 3,75 2,5 1,625 Tak Layak
N0009 Dermawati Binti Rohman 3,25 3 1,575 Tak Layak
N0002 Novi Binti Mursiyabu 2,375 4 1,5125 Tak Layak
N0008 Siti Alijah Binti Sabar Alka 3,375 2,5 1,5125 Tak Layak
44

8. Menentukan normalisasi perbaikan bobot (Wj):

Setelah didapatkan bobot GAP dari setiap nasabah berdasarkan kriteria yang

ditetapkan, maka penerapan metode profile matching sudah selesai dilakukan.

Karena metode profile matching hanya digunakan untuk mendapatkan nilai

GAP dari masing-masing nasabah dari kriteria yang ditetapkan. Selanjutnya

hasil bobot GAP tersebut akan digunakan pada metode weight product. Tahap

penerapan metode weight product dimulai dengan melakukan normalisasi

perbaikan bobot (Wj): menggunakan rumus berikut :

Tabel III.15 Normalisasi Bobot Preferensi

Kriteria Bobot Preferensi


Luas Tanah 0,208
Kondisi Rumah 0,208
Atap Rumah 0,208
Dinding Rumah 0,125
Lantai Rumah 0,042
Pendpatan Bersih 0,208
Total Wajib = 1 1,000

9. Menghitung vektor S:

Setelah dilakukan normalisasi perbaikan bobot, selanjutnya dilakukan

perhitungan vektor S menggunakan nilai nasabah hasil pemetaan GAP

Kompetensi metode profile matching denga rumus sebagai berikut :


45

Nilai Vektor S Nasabah Ke - X = (Gap LuasTanah ^ Bobot LuasTanah) x

= (GapKondRumah ^ BobotKondRumah) x

= (GapAtapRumah ^ BobotAtapRumah) x

= (GapDindingRumah ^ BobotDindingRumah) x

= (GapLantaiRumah ^ BobotLantaiRumah) x

= (GapPendRT ^ BobotPendRT)

S[N0001] = (3^0,208)x(3^0,208)x(5^0,208)x(3,5^0,125)x(2,5^0,042) x(3^0,208)


= 3,376050
S[N0002] = (2^0,208)x(2^0,208)x(3^0,208)x(5^0,125)x(1,5^0,042) x(4^0,208)
= 2,785909
S[N0003] = (1^0,208)x(5^0,208)x(2^0,208)x(4^0,125)x(4,5^0,042) x(5^0,208)
= 2,860400
S[N0004] = (5^0,208)x(4^0,208)x(4^0,208)x(4,5^0,125)x(3,5^0,042) x(2^0,208)
= 3,660267
S[N0005] = (4^0,208)x(5^0,208)x(5^0,208)x(3,5^0,125)x(2,5^0,042) x(5^0,208)
= 4,434807
S[N0006] = (5^0,208)x(4^0,208)x(2^0,208)x(3^0,125)x(5^0,042) x(1^0,208)
= 2,645614
S[N0007] = (3^0,208)x(3^0,208)x(3^0,208)x(5^0,125)x(1,5^0,042) x(4^0,208)
= 3,298666
S[N0008] = (2^0,208)x(4^0,208)x(1^0,208)x(4^0,125)x(4,5^0,042) x(3^0,208)
= 2,454815
S[N0009] = (4^0,208)x(2^0,208)x(2^0,208)x(4^0,125)x(5^0,042) x(2^0,208)
= 2,617907
S[N0010] = (5^0,208)x(5^0,208)x(4^0,208)x(3^0,125)x(5^0,042) x(1^0,208)
= 3,202068
S[N0011] = (3^0,208)x(4^0,208)x(3^0,208)x(5^0,125)x(1,5^0,042) x(5^0,208)
= 3,669077
S[N0012] = (1^0,208)x(3^0,208)x(5^0,208)x(4,5^0,125)x(3,5^0,042) x(4^0,208)
= 2,983797
46

Tabel III.16 Vektor S


Kode Nama Nilai Sigma S
N0001 Masmayni Binti Legimin 3,376050
N0002 Novi Binti Mursiyabu 2,785909
N0003 Rosmita Binti Suwandi 2,860400
N0004 Dwi Binti Sutrisno 3,660267
N0005 Marni Binti Iro Dukromo 4,434807
N0006 Suhema Binti Sudiman 2,645614
N0007 Sumirah Binti Ahmad Jaro 3,298666
N0008 Siti Alijah Binti Sabar Alka 2,454815
N0009 Dermawati Binti Rohman 2,617907
N0010 Syamsidar Binti Abdullah 3,202068
N0011 Suriani Binti Salikin 3,669077
N0012 SunartiBinti Wadimin 2,983797
37,989376

10. Menghitung vektor V:

Setelah dilakukan perhitungan vektor S, selanjutnya dilakukan perhitungan

vektor V dengan menggunakan rumus sebagai berikut, kemudian dilakukan

perangkingan untuk melihat nasabah yang layak dan tidak layak dengan nilai

indikator layak harus lebih dari 0,08 :

n
 xijwj
j 1
Vi  n …………………….(8)
 ( x *j ) wj
j 1

V1 = 3, 376050/ 37,989376 = 0,088868


V2 = 2,785909/ 37,989376 = 0,073334
V3 = 2,860400/ 37,989376 = 0,075295
V4 = 3,660267/ 37,989376 = 0,096350
47

V5 = 4,434807/ 37,989376 = 0,116738


V6 = 2,645614/ 37,989376 = 0,069641
V7 = 3,298666/ 37,989376 = 0,086831
V8 = 2,454815/ 37,989376 = 0,064618
V9 = 2,617907/ 37,989376 = 0,068912
V10 = 3,202068/ 37,989376 = 0,084289
V11 = 3,669077/ 37,989376 = 0,096582
V12 = 2,983797/ 37,989376 = 0,078543
Tabel III.17 Vektor V
Kode Nama Vektor V
N0001 Masmayni Binti Legimin 0,088868
N0002 Novi Binti Mursiyabu 0,073334
N0003 Rosmita Binti Suwandi 0,075295
N0004 Dwi Binti Sutrisno 0,096350
N0005 Marni Binti Iro Dukromo 0,116738
N0006 Suhema Binti Sudiman 0,069641
N0007 Sumirah Binti Ahmad Jaro 0,086831
N0008 Siti Alijah Binti Sabar Alka 0,064618
N0009 Dermawati Binti Rohman 0,068912
N0010 Syamsidar Binti Abdullah 0,084289
N0011 Suriani Binti Salikin 0,096582
N0012 SunartiBinti Wadimin 0,078543
1,000000

Tabel III.18 Kelayakan Nasabah


Kode Nama Nilai Rangking Kelayakan
N0005 Marni Binti Iro Dukromo 0,116738 1 Layak
N0011 Suriani Binti Salikin 0,096582 2 Layak
N0004 Dwi Binti Sutrisno 0,096350 3 Layak
N0001 Masmayni Binti Legimin 0,088868 4 Layak
N0007 Sumirah Binti Ahmad Jaro 0,086831 5 Layak
N0010 Syamsidar Binti Abdullah 0,084289 6 Layak
N0012 SunartiBinti Wadimin 0,078543 7 Tidak Layak
N0003 Rosmita Binti Suwandi 0,075295 8 Tidak Layak
N0002 Novi Binti Mursiyabu 0,073334 9 Tidak Layak
N0006 Suhema Binti Sudiman 0,069641 10 Tidak Layak
N0009 Dermawati Binti Rohman 0,068912 11 Tidak Layak
N0008 Siti Alijah Binti Sabar aka 0,064618 12 Tidak Layak
48

III.3 Desain Sistem

Desain sistem menggunakan bahasa pemodelan UML yang terdiri dari

Usecase Diagram, Class Diagram, Activity Diagram dan Sequence Diagram.

III.3.1 UsecaseDiagram

Secara garis besar, bisnis proses sistem yang akan dirancang digambarkan

dengan usecase diagram yang terdapat pada Gambar III.2 berikut :

Sistem Pendukung Keputusan Pemberian Pinjaman Modal


Usaha Dengan Metode Weight Product dan Profile Matching
pada Kantor Unit Permodalan Nasional Madani (Persero)

Data Nasabah
«extends»
«uses»

Master
«extends»

«extends» Penilaian Nasabah

«uses» «uses»

«uses»
Data Pengguna

Login «uses»

«uses»
Proses SPK

Admin «uses» Laporan Nasabah


«uses»
«uses»

«uses»

Laporan SPK
«uses»
Login Pimpinan
«uses»

Logout

User

Gambar III.2 Use CaseDiagram Sistem Pendukung Keputusan


49

III.3.2 ClassDiagram

Rancangan kelas-kelas yang akan digunakan pada sistem pendukung

keputusan penentuan penerimaan bantuan permodalan menggunakan metode

Profile Matching dan Weight Product akan dirancang dapat dilihat pada gambar

berikut.

Nasabah
Logout Tentang Master
User
-username -tentang_program -Data Nasabah No_KTP (varchar 25)
-username Nama_Nasabah (varchar 30)
-Penilaian Nasabah
-password +Keluar() * +Lihat() Nama_Ayah (varchar 15)
-Data Pengguna
-level Tempat_Lahir (int 25)
1 +Pilih Master()
+Simpan() * 1 Tanggal_Lahir (varchar 25)
+Edit() * No_KK (varchar 25)
+Hapus() 1 Alamat (varchar 30)
1 Login 1
+Login() Telepon (varchar 15)
-username
* * Status_Nikah (varchar 15)
1 -password Nama_Suami (varchar 3)0
*
+Cek User() 1 Pekerjaan_Suami (varchar 25)
+Valid User() *
Jumlah_Anak (int 2)
1
Laporan Nasabah Usaha_Nasabah (varchar 30)
1 1 * Jumlah_Tanggungan (int 2)
No_KTP (varchar 25)
+ Simpan
Nama_Nasabah (varchar 30)
Proses SPK + Edit
Nama_Ayah (varchar 15)
No_KTP (varchar (25) + Hapus
Tempat_Lahir (int 25) *
Tanggal_Lahir (varchar 25) Bobot_Luas (int 5)
1
No_KK (varchar 25) Bobot_Kondisi (int 5) Tabel Nilai
Alamat (varchar 30) Laporan SPk Bobot_Atap (int 2) *
No KTP (varchar 25) Bobot_Dinding (int 2) No_KTP (varchar 25)
Telepon (varchar 15)
Bobot VektorS (double) Bobot_Lantai (int 2) Nilai_Luas (int 5)
Status_Nikah (varchar 15)
Bobot_VektorV (double) Bobot_Pendapatan (int 2) Nilai_Kondisi (int 5)
Nama_Suami (varchar 3)0
Kelayakan (varchar 15) Bobot VektorS (double) Nilai_Atap (int 2)
Pekerjaan_Suami (varchar 25)
Bobot_VektorV (double) Nilai_Dinding (int 2)
Jumlah_Anak (int 2)
+ Cetak Kelayakan (varchar 15) Nilai_Lantai (int 2)
Usaha_Nasabah (varchar 30) * Nilai_Pendapatan (int 2)
Jumlah_Tanggungan (int 2) + Proses
+ Update
+ Cetak + Reload

Gambar III.3 Class Diagram Sistem Pendukung Keputusan

III.3.3 Activity Diagram

Bisnis proses yang telah digambarkan pada usecase diagram diatas

dijabarkan dengan activity diagram :

1. Activity Diagram Login Admin

Aktivitas login admin yang dilakukan oleh admin dapat diterangkan dengan

langkah-langkah state, dimulai dari memasukkan username, password dan

memilih level user jika Akun valid maka sistem akan mengaktifkan menu
50

administrator, sedangkan jika tidak valid, maka tampilkan pesan kesalahan

yang ditunjukkan pada gambar III.4 berikut.

Form Login Admin

Admin Sistem

Jalankan Aplikasi Form Login

Isi Username, password dan lewvel

Click Login Validasi user, pass dan level

berhasil
gagal

Halaman admin Pesan error


Phase

Gambar III.4 Activity Diagram Login Admin

2. Activity Diagram Menu Data Admin

Aktivitas yang dilakukan adalah memilih aktivitas menu data yakni data

nasabah, konversi nilai dan data user. Aktivitas ini dapat dilihat sepeti yang

ditunjukkan pada gambar III.5 berikut

Master

Admin Sistem

Pilih Master Tampil Pilihan Master

Memilih Pilihan Data

Klik Salah Satu Data Tampilkan Data Sesuai Pilihan


Phase

Gambar III.5 Activity Diagram Menu Data


51

3. Activity Diagram Menu Data Nasabah Admin

Aktivitas yang dilakukan adalah admin memilih Menu Data Nasabah. Sistem

akan menampilkan form Data Nasabah. Admin melakukan pengisian data,

selanjutnya memilih tombol perintah sesuai dengan kebutuhan. Tombol Baru

untuk memulai pengisian, Simpan untuk menyimpan data, Edit untuk

merubah data, Hapus untuk menghapus data Batal untuk membatalkan

pengisian data (mengosongkan form). Hal ini dapat dilihat sepeti yang

ditunjukkan pada gambar III.6 berikut.

Master Data Nasabah

Admin Sistem

Memilih Menu Data


Tampil Form Nasabah

Klik Data Nasabah

Isi Data Nasabah Tambah Data

Menekan Tombol Simpan Menyimpan data

Pilih Record Data Korban Edit Data

tidak Mengubah Data

Menekan Tombol Ubah


Hapus Data

Menekan Tombol Hapus Konfirmasi Hapus

Ya Menghapus Data
Phase

Gambar III.6 Activity Diagram Master Data Korban


52

4. Activity Diagram Master Data Nilai Admin

Aktivitas ini melakukan proses konversi nilai korban menjadi bentuk angka

kemudian admin mengklik tombol konversi agar sistem melakukan proses

konversi data nilai dan menyimpan kedalam database. Aktivitas ini

ditunjukkan pada gambar III.7 berikut.

Master Data Penilaian

Admin Sistem

Memilih Menu Master


Tampilkan Form Penilaian

Klik Menu Penilaian Nasabah

Menekan Tombol Konversi Konversi

tidak Menyimpan data

Menekan Tombol Reload Reload


Phase

Gambar III.7 Activity Diagram Penilaian Nasabah

5. Activity Diagram Master Data Pengguna Admin

Aktivitas ini melakukan pengaturan data pengguna (user) yang memiliki hak

akses ke sistem. Admin memilih menu data user dan sistem akan
53

menampilkan form Data User. Admin melakukan pengisian data, selanjutnya

memilih tombol perintah sesuai dengan kebutuhan. Tombol Baru untuk

memulai pengisian, Simpan untuk menyimpan data, Edit untuk merubah data,

Hapus untuk menghapus data dan Batal untuk membatalkan pengisian data

(mengosongkan form) sepeti terlihat pada gambar III.8 berikut.

Menu Data User

Admin Sistem

Memilih Menu Data


Tampilkan Form User

Klik Menu Data User

Isi Data User Tambah Data

Menekan Tombol Simpan Menyimpan data

Pilih Record User Edit Data

Mengubah Data
tidak

Menekan Tombol Ubah


Hapus Data

Menekan Tombol Hapus Konfirmasi Penghapusan

Ya Menghapus Data
Phase

Gambar III.8 Activity Diagram Master Data Pengguna


54

6. Activity Diagram Proses SPK Admin

Aktivitas yang dilakukan adalah admin menekan pada menu proses SPK dan

sistem akan menampilkan form Proses SPK. Admin malakukan pengisian

bobot kriteria dan menekan tombol proses untuk melakukan proses SPK dan

sistem akan menampilkan hasil SPK seperti yang ditunjukkan pada gambar

III.9 berikut.

Proses SPK

Admin Sistem

Click Form Proses SPK Menampilkan Form SPK

Mengisi Bobot Preferensi Bobot

Click Proses Proses Pengambilan Keputusan

Hasil SPK
Phase

Gambar III.9 Activity Diagram Proses SPK


55

7. Activity Diagram Pembuatan Laporan Admin / User

Admin / User dapat meihat hasil SPK dengan menekan menu Laporan SPK

dan sistem akan menampilkannya. Activity ini dapat dilihat pada gambar III.10

berikut.

Laporan SPK Admin / User

Admin / User Sistem

Pilih Laporan SPK Menampilkan Laporan SPK

Click cetak laporan Cetak Laporan


Phase

Gambar III.10 Activity Diagram Laporan SPK

8. Activity Diagram Laporan Nasabah Admin / User

Admin / User dapat meihat laporan nasabah dengan menekan menu Laporan

Nasabah dan sistem akan menampilkannya. Activity ini dapat dilihat pada gambar

III.11 berikut.

Laporan Nasabah Admin / User

Admin / User Sistem

Pilih Laporan Nasabah Menampilkan Laporan Nasabah

Click cetak laporan Cetak Laporan


Phase

Gambar III.11 Activity Diagram Laporan Nasabah


56

9. Activity Diagram Login User

Aktivitas login yang dilakukan oleh User dapat diterangkan dengan langkah-

langkah state, dimulai dari memasukkan username, password dan memilih

level user jika Akun valid maka sistem akan mengaktifkan menu User,

sedangkan jika tidak valid, maka tampilkan pesan kesalahan yang

ditunjukkan pada gambar III.12 berikut.

Form Login User

User Sistem

Klik Login User Form Login

Isi Username, password dan lewvel

Click Login Validasi user, pass dan level

berhasil
gagal

Halaman Pimpinan Pesan error


Phase

Gambar III.12Activity Diagram Login Pimpinan


57

10. Activity Diagram Logout Admin / User

Aktivitas Logout yang dilakukan oleh Admin / User dilakukan dengan

memilih menu logout, maka sistem akan logout dari sistem dan menampilkan

halaman login seperti pada gambar III.13 berikut.

Logout (Admin / User)

Admin / User Sistem

Logoout Dari Sistem

Klik Menu Logout

Tampilkan Halaman Login


Phase

Gambar III.13 Activity Diagram Logout

III.3.4 Sequence Diagram

Rangkaian kegiatan pada setiap terjadi event sistem digambarkan pada

sequence diagram berikut:

1. Sequence Diagram Login Admin

Serangkaian kegiatan saat terjadi event pada form login dapat dilihat pada

gambar III.14 berikut.


58

Admin Form Login Proses Login Main Form

Tampilkan Fom ()

click form login


Validasi nama
dan password ()

Invalid ()

Login sukses ()

Gambar III.14 Sequence Diagram Form Login

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 4 lifline, yaitu main form, form admin, proses login, menu admin

c. Terdapat 6 message, yaitu dilakukan oleh admin tampilan menu, admin

melakukan menu login, mengisi nama dan password, masuk koneksi

database, pengisian sesuai database, pengisian tidak sesuai database.


59

2. Sequence Diagram Master

Serangkaian kegiatan saat terjadi event pada menu Master dapat dilihat pada

gambar III.15 berikut.

Admin Main form

Pilih Menu

Menu ()

Klik Master

Tampilkan Pilihan Menu

Gambar III.15 Sequence Diagram Master

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 1 lifline, yaitu main form

c. Terdapat 4 message, yaitu dilakukan oleh admin tampilan form, admin

melakukan menu, klik Menu Data, tampilkan Pilihan Menu.


60

3. Sequence Diagram Data Nasabah

Serangkaian kegiatan saat terjadi event pada form Data Nasabah dapat dilihat

pada gambar III.16 berikut.

Admin Main form Form Data Nasabah Proses Data Nasabah

Tampilkan Fom ()

Menu ()

Click form
Data Nasabah ()

Mengisi Data Nasabah

Update data ()

Koneksi
database ()

Delete data ()

Koneksi
database ()

Close form ()

Gambar III.16 Sequence Diagram Data Nasabah

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 4 lifline, yaitu main form, form data korban, proses dan data

korban

c. Terdapat 6 message, yaitu dilakukan oleh admin tampilan form, admin

melakukan menu, click form data nasabah, mengisi data nasabah, update

data, koneksi database, delete data, koneksi database.


61

4. Sequence Diagram Penilaian Nasabah

Serangkaian kegiatan saat terjadi event pada form penilaian nasabah dapat

dilihat pada gambar III.17berikut.

Admin Main form Form Penilaian Nasabah Proses Data Nilai

Tampilkan Fom ()

Menu ()

Click form
Data Bobot ()

Klik Proses Konversi

Konversi

Koneksi
database ()

Close form ()

Gambar III.17 Sequence Diagram Penilaian Nasabah

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 4 lifline, yaitu main form, form konversi, proses dan data nilai

c. Terdapat 6 message, yaitu dilakukan oleh admin tampilan form, admin

melakukan menu, click form Penilaian Nasabah, klik proses konversi,

update data, koneksi database, delete data, koneksi database.


62

5. SequenceDiagram Pendataan Pengguna

Serangkaian kegiatan saat terjadi event pada form Pengguna dapat dilihat

pada gambar III.18 berikut.

Admin Main form Form data Pengguna Proses Data Pengguna

Tampilkan Fom ()

Menu ()

Click form
Data User ()

Mengisi Data User

Update data ()

Koneksi
database ()

Delete data ()

Koneksi
database ()

Close form ()

Gambar III.18 Sequence Diagram Pengguna

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 4 lifline, yaitu main form, form pengguna, proses, data pengguna

c. Terdapat 6 message, yaitu dilakukan oleh admin tampilan form, admin

melakukan menu, click form data user, mengisi data pengguna, update

data, koneksi database, delete data, koneksi database.


63

6. Sequence Diagram Proses SPK

Serangkaian kegiatan saat terjadi event pada form proses SPK dapat dilihat

pada gambar III.19 berikut.

Admin Main form Form Proses SPK Proses Tbl Nilai Tbl BobotGAP Tbl Hasil

Tampilkan Fom ()

Menu ()

Klik Proses SPK

isi data ()

Klik Proses

Load Data

Simpan Bobot GAP

Load Data
Simpan Hasil

Load Data

Hasil SPK

Close form ()

Gambar III.19 Sequence Diagram Proses SPK

Keterangan :

a. Terdapat 1 actor, yaitu Admin

b. Terdapat 4 lifline, yaitu main form, form proses SPK, proses, Tbl Nilai,

Tbl Bobot, Tbl Hasil

c. Terdapat 7 message, yaitu dilakukan oleh admin tampilan form, admin

melakukan menu, click proses, mengisi data, load data, simpan data close

form.
64

7. Sequence Diagram Laporan SPK

Serangkaian kegiatan saat terjadi event pada form Laporan SPK dapat dilihat

pada gambar III.20 berikut.

User Main form Proses Hasil SPK


Form Laporan SPK

Tampilkan Fom ()

Menu ()

Klik form Laporan SPK ()

Klik Cetak()

Retrieve Data() Koneksi


database ()
Close form ()

Gambar III.20 Sequence Diagram Laporan SPK

Keterangan :

a. Terdapat 1 actor, yaitu Admin/Pimpinan

b. Terdapat 4 lifline, yaitu main form, form laporan, proses, hasil SPK

c. Terdapat 6 message, yaitu dilakukan oleh User tampilan form, User

melakukan klik Laporan SPK, Klik Cetak, Retrieve, koneksi database.


65

8. Sequence Diagram Laporan Nasabah

Serangkaian kegiatan saat terjadi event pada form Laporan Nasabah dapat

dilihat pada gambar III.21 berikut.

User Main form Proses Data Nasabah


Form Laporan Nasabah

Tampilkan Fom ()

Menu ()

Klik form Laporan Nasabah()

Klik Cetak()

Retrieve Data() Koneksi


database ()
Close form ()

Gambar III.21 Sequence Diagram Laporan Nasabah

Keterangan :

d. Terdapat 1 actor, yaitu Admin/ User

e. Terdapat 4 lifline, yaitu main form, form laporan nasabah, proses, data

Nasabah

f. Terdapat 6 message, yaitu dilakukan oleh User tampilan form, User klik

Laporan Nasabah, Klik Cetak, Retrieve, koneksi database.


66

9. Sequence Diagram Login Pimpinan

Serangkaian kegiatan saat terjadi event pada form login dapat dilihat pada

gambar III.22 berikut.

User Form Admin Proses Login Main Form

Tampilkan Fom ()

click form login


Validasi nama
dan password ()

Invalid ()

Login sukses ()

Gambar III.22 Sequence Diagram Form Login

Keterangan :

a. Terdapat 1 actor, yaitu User

b. Terdapat 4 lifline, yaitu main form, form User, proses login, menu User

c. Terdapat 6 message, yaitu dilakukan oleh User tampilan menu, User

melakukan menu login, mengisi nama dan password, masuk koneksi

database, pengisian sesuai database, pengisian tidak sesuai database.


67

10. Sequence Diagram Logout

Serangkaian kegiatan saat terjadi event pada logout dapat dilihat pada gambar

III.23 berikut.

User Main form Form Login

Tampilkan Fom ()

Menu ()

Klik Logout

Konfirmasi Logout Sistem

Gambar III.23 Sequence Diagram Logout

Keterangan :

a. Terdapat 1 actor, yaitu Admin / User

b. Terdapat 2 lifline, yaitu main form, form login

c. Terdapat 4 message, dilakukan oleh User yaitu tampilan form, admin

melakukan menu, klik logout, keluar sistem dan tampilan form login.

III.3.5 Perancangan Basis Data

III.3.5.1 Normalisasi

Tahap normalisasi ini bertujuan untuk menghilangkan masalah berupa

ketidak konsistenan apabila dilakukannya proses manipulasi data seperti

penghapusan, perubahan dan penambahan data sehingga data tidak ambigu.


68

Tabel Tidak Normal


UNF

No KTP NiC1 NiC2 NiC3 NiC4 NiC5 NiC6 NoC1 NoC2 NoC3 NoC4 NoC5 NoC6 BC1 BC2 BC3 BC4 BC5 BC6 BD+ BD- BTotal

1NF = 2NF T_Nilai 1NF = 2NF T_Hasil

No KTP NiC1 NiC2 NiC3 NiC4 NiC5 NiC6 No KTP BC1 BC2 BC3 BC4 BC5 BC6 BS BV Layak
1NF = 2NF 1NF = 2NF
Nama
No KTP C1 C2 C3 C4 C5 C6 No KTP NoC1 NoC2 NoC3 NoC4 NoC5 NoC6
Nasabah
T_Nasabah T_Bobot_Gap

Gambar III.24 Normalisasi

Keterangan :

1. C1-C6 : Kriteria penentuan kelayakan nasabah


2. NiC1-NiC6 : Nilai angka kriteria penilaian
3. NoC1-N0C6 : Nilai GAP setiap kriteria
4. BC1-BC6 : Nilai Bobot hasil setiap kriteria
5. BS BV - : Bobot Vektor S dan Bobot Vektor V
6. Layak : Nilai kelayakan nasabah

III.3.5.2 Desain Tabel

Selanjutnya yang dikerjakan yaitu merancang struktur database, berikut ini

merupakan rancangan struktur tabel tersebut:

1. Struktur Tabel Pengguna

Tabel pengguna dapat dilihat pada tabel III.19 berikut.

Tabel III.19 Rancangan Tabel Pengguna

Nama Database db_pnm


Nama Tabel Tb_pengguna
No Nama Field Tipe Data Boleh Kosong Kunci
2. username varchar(30) Tidak PK
3. password varchar(20) Tidak -
4. level varchar(15) Tidak -
69

2. Struktur Tabel Nilai


Tabel nilai dapat dilihat pada tabel III.20 berikut.
Tabel III.20 Rancangan Tabel Nilai
Nama Database db_pnm
Nama Tabel Tb_nilai
No Nama Field Tipe Data Boleh Kosong Kunci
1. id_nasabah varchar(15) Tidak Primary Key
2. nilai_luas Int (2) Tidak -
3. nilai_kondisi Int (2) Tidak -
4. nilai_atap Int (2) Tidak -
5. nilai_dinding Int (2) Tidak -
6. nilai_lantai Int (2) Tidak -
7. nilai_pendapatan Double (12,2) Tidak

3. Struktur Tabel Gap


Tabel gap dapat dilihat pada tabel III.21 berikut.
Tabel III.21 Rancangan Tabel Gap
Nama Database db_pnm
Nama Tabel Tb_gap
No Nama Field Tipe Data Boleh Kosong Kunci
1. id_nasabah varchar(15) Tidak Primary Key
2. gap_luas Int (2) Tidak -
3. gap _kondisi Int (2) Tidak -
4. gap _atap Int (2) Tidak -
5. gap _dinding Int (2) Tidak -
6. gap _lantai Int (2) Tidak -
7. gap _pendapatan Double (12,2) Tidak

4. Struktur Tabel BobotGap


Tabel bobot gap dapat dilihat pada tabel III.22 berikut.
Tabel III.22 Rancangan Tabel Bobot Gap
Nama Database db_pnm
Nama Tabel Tb_bobotgap
No Nama Field Tipe Data Boleh Kosong Kunci
1. id_nasabah varchar(15) Tidak Primary Key
2. bobotgap_luas Int (2) Tidak -
3. bobotgap _kondisi Int (2) Tidak -
4. bobotgap _atap Int (2) Tidak -
5. bobotgap _dinding Int (2) Tidak -
6. bobotgap _lantai Int (2) Tidak -
7. bobotgap _pendapatan Double (12,2) Tidak
70

5. Struktur Tabel Nasabah

Tabel nasabah digunakan untuk menyimpan data nasabah sistem pendukung

keputusan. Struktur tabel nasabah dapat dilihat pada tabel III.23 berikut.

Tabel III.23 Rancangan Tabel Nasabah


Nama Database Ayu_pnm
Nama Tabel Tb_nasabah
No Nama Field Tipe Data Boleh Kosong Kunci
1. No_KTP varchar(15) Tidak Primary Key
2. Nama_Nasabah varchar(30) Tidak -
3. Nama_Ayah varchar(30) Tidak -
4. Tempat_Lahir varchar(30) Tidak -
5. Tanggal_Lahir Date Tidak -
6. No_KK varchar(15) Tidak -
7. Alamat varchar(30) Tidak
8. Telepon varchar(15) Tidak -
9. Status varchar(15) Tidak -
10. Nama_Suami varchar(30) Tidak -
11. Pekerjaan_Suami varchar(15) Tidak
4. Jumlah_Anak Int (2) Tidak -
5. Usaha_Nasabah varchar(30) Tidak -
6. Jumlah_Tanggungan Int (2) Tidak -

6. Struktur Tabel Hasil

Tabel hasil digunakan untuk menyimpan data hasil penilaian. Struktur tabel

hasil dapat dilihat pada tabel III.24 berikut

Tabel III.24 Rancangan Tabel Hasil


Nama Database Wika
Nama Tabel Vektor
No Nama Field Tipe Data Boleh Kosong Kunci
1. no_ktp varchar(15) Tidak Primary Key
2. vector_s Double (8,6) Tidak -
3. vektor_v Double (8,6) Tidak -
4. kelayakan varchar(20) Tidak -
5. rangking varchar(20) Tidak -
71

III.3.5.3 Desain Interface

Tahap perancangan berikutnya yaitu desain sistem secara detail yang

meliputi desain input sistem, desain output sistem, dan desain database.

1. Desain Form Login

Serangkaian kegiatan saat terjadi event pada form login dapat dilihat pada

gambar III.25 berikut.

Login Sistem

FORM LOGIN
Selamat datang Silahkan Login

User Name

Password

Level

Masuk Reset

Gambar III.25 Desain Form Login

2. Desain Form Utama

Serangkaian kegiatan saat terjadi event pada form utama dapat dilihat

pada gambar III.26 berikut.

SPK Pemberian Pinjaman Modal Usaha Metode PM - WP

Master Proses SPK Laporan SPK Laporan Nasabah Log Out

Data Nasabah
Penilaian Nasabah
Data Pengguna

Gambar III.26 Desain Form Utama


72

3. Desain Form Data Nasabah

Serangkaian kegiatan saat terjadi event pada form data nasabah dapat

dilihat pada gambar III.27 berikut.

Data Nasabah

FORM NASABAH

Form Nasabah Untuk Pendataan Nasabah Yang Mengajukan Permohonan

No KTP

Nama Nama Ayah Status Kawin Jumlah Anak

Tempat Lahir Tanggal Lahir Nama Suami Pekerjaan Suami

No KK Telepon Usaha Nasabah Tanggungan

Alamat

Baru Simpan Edit Batal Hapus ID Nama Cari

No KTP Nama Ayah Tmp Lahir Tgl Lahir ... Luas Kondisi Atap Dinding Lantai Pendapatan

Gambar III.27 Desain Form Data Nasabah

4. Desain Form Pendataan Nilai

Serangkaian kegiatan saat terjadi event pada form data nilai dapat

dilihat pada gambar III.28 berikut.

Form Penilaian Kriteria Nasabah

Form Pendataan Nilai

Form Pendataan Nilai Berfungsi Untuk Konversi Data Penilaian Kriteria Nasabah

Simpan
ID Nasabah
Hapus
Nama Nasabah
Batal
Luas Rumah Dinding Rumah
Kondisi Rumah Lantai Rumah
Atap Rumah Pendapatan RT

ID Nama Luas Kondisi Atap Lantai Dinding Pendapatan

ID Nama Luas Kondisi Atap Lantai Dinding Pendapatan

Gambar III.28 Desain Form Import Data Nilai


73

5. Desain Form Data Pengguna

Serangkaian kegiatan saat terjadi event pada form data pengguna

dapat dilihat pada gambar III.29 berikut.

Form Pengguna

FORM PENGGUNA

Nama User Baru

Password Simpan

Level Edit

Batal
Nama User Level

Hapus

Gambar III.29 Desain Form Pengguna


74

6. Desain Form Proses SPK

Serangkaian kegiatan saat terjadi event pada form Proses SPK dapat

dilihat pada gambar III.30 berikut.

Proses SPK

Bobot Preferensi Nasabah Yang Layak

Luas Rumah Kondisi Rumah Atap Rumah Dinding Rumah Lantai Rumah Pendapatan RT Proses
Reset
Tampil
SPK Proses
ID Nama Vektor V Rank
F
O Nilai Nasabah

R ID Nama Luas Kondisi Atap Dinding Lantai Pendapatan


M

S Nilai Konversi
P
ID Nama Luas Kondisi Atap Dinding Lantai Pendapatan
K
ID Nama Vector S Vector V Kelayakan

Nilai GAP

ID Nama Luas Kondisi Atap Dinding Lantai Pendapatan

Nilai Bobot

ID Nama Luas Kondisi Atap Dinding Lantai Pendapatan

Gambar III.30 Desain Form Proses SPK

7. Desain Form Laporan SPK

Serangkaian kegiatan saat terjadi event pada form Laporan SPK dapat

dilihat pada gambar III.31 berikut.

Laporan SPK

SPK Pemberian Pinjaman Modal Usaha


Menggunakan Penggabungan Metode Profile Matching dan Weight Product

Laporan Hasil SPK Pemilihan Nasabah

No KTP Nama Luas Kondisi Atap Dinding Lantai Pendapatan Vector S Vector V Kelayakan Rangking

Gambar III.31 Desain Form Laporan SPK


75

8. Desain Form Laporan Nasabah

Serangkaian kegiatan saat terjadi event pada form Laporan SPK dapat

dilihat pada gambar III.31 berikut.

Laporan Nasabah

SPK Pemberian Pinjaman Modal Usaha


Menggunakan Penggabungan Metode Profile Matching dan Weight Product

Laporan Data Nasabah


Tmp Tgl
ID Nama Ayah No KK Alamat Telepon ... Usaha Tanggungan
Lahir Lahir

Gambar III.32 Desain Form Laporan Nasabah


BAB IV

HASIL DAN UJI COBA


BAB IV

HASIL DAN UJICOBA

IV.1. Tampilan Hasil

Berikut ini dijelaskan mengenai tampilan hasil dari perancangan sistem

pendukung keputusan pemberian pinjaman modal usaha menggunakan

penggabungan metode profile matching dan weight product yang dapat dilihat

sebagai berikut :

11. Tampilan Login

Aktivitas login yang dilakukan oleh pengguna sistem dapat dilihat pada

gambar IV.1 seperti berikut :

Gambar IV.1 Performance form Form Login

76
77

12. Tampilan Menu Utama

Menu Utama adalah akan tampil setelah pengguna mendapatkan akses login

ke sistem. Menu utama berfungsi untuk mempermudah user dalam melihat

aktifitas sistem dalam bentuk menu-menu yang tersedia seperti yang

ditunjukkan pada gambar IV.2 berikut :

Gambar IV.2 Tampilan Menu Utama

13. Tampilan Master – Data Nasabah

Tampilan Data Nasabah berfungsi untuk menampilkan data nasabah serta

melakukan proses penyimpanan, perubahan dan penghapusan data nasabah.

Tampilan Data Nasabah dapat dilihat seperti pada gambar IV.3 berikut :
78

Gambar IV.3 Tampilan Master Data Nasabah

14. Tampilan Master – Data Penilaian

Tampilan Data Penilaian berfungsi untuk menampilkan data penilaian

nasabah serta melakukan proses penyimpanan dan penghapusan data

penilaian nasabah. Tampilan Data Penilaian dapat dilihat seperti pada gambar

IV.4 berikut :

Gambar IV.4 Tampilan Master Data Penilaian


79

15. Tampilan Master – Data Pengguna

Tampilan Data Pengguna berfungsi untuk menampilkan data pengguna

sistem serta melakukan proses penyimpanan dan penghapusan data pengguna

sistem. Tampilan Data Pengguna dapat dilihat seperti pada gambar IV.5

berikut :

Gambar IV.5 Tampilan Master Data Pengguna

16. Tampilan Proses SPK

Tampilan Proses SPK berfungsi untuk melakukan proses perhitungan nilai

nasabah untuk mendapatkan nasabah yang layak untuk mendapatkan

pinjaman modal usaha. Untuk menjalankan perhitungan, pengguna

memasukkan data bobot dari setiap kriteria penilaian kemudian menekan

tombol proses metode. Selanjutnya sistem akan melakukan proses

perhitungan metode dan menampilkan hasil perhitungan nilai kedalam setiap


80

tabel. Tombol Reset Data berfungsi untuk melakukan reset terhadap hasil

perhitungan kembali ke nilai 0 (kosong). Tombol Tampil Proses berfungsi

untuk menampilkan proses langkah demi langkah. Tampilan Proses SPK

dapat dilihat seperti pada gambar IV.6 berikut :

Gambar IV.6 Tampilan Proses SPK

17. Tampilan Laporan SPK

Tampilan Laporan SPK berfungsi untuk menampilkan laporan hasil

perhitungan SPK pemberian pinjaman modal usaha. Tampilan Proses SPK

dapat dilihat seperti pada gambar IV.7 berikut :


81

Gambar IV.7 Tampilan Laporan SPK

18. Tampilan Laporan Nasabah

Tampilan Laporan Nasabah berfungsi untuk menampilkan laporan data

Nasabah yang diseleksi untuk pemberian pinjaman modal usaha. Tampilan

Laporan Nasabah dapat dilihat seperti pada gambar IV.8 berikut :

Gambar IV.8 Tampilan Laporan Nasabah

IV.2 Spesifikasi Uji Coba Program

Uji coba terhadap sistem pendukung keputusan pemberian pinjaman

modal usaha bertujuan untuk memastikan bahwa system yang dibangun sudah
82

berada pada kondisi siap digunakan. Instrumen yang digunakan untuk melakukan

pengujian ini yaitu dengan menggunakan:

1. Satu unit laptop Hewlett Packard dengan spesifikasi sebagai berikut:

a. Processor AMD A8-7410 APU

b. Memory 4 Gb

c. Hardisk 500 Gb

2. Perangkat Lunak dengan spesifikasi sebagai berikut:

a. Microsoft Visual Studio 2010

b. SQL Server 2008

IV.2.1 Uji Coba Program

Pengujian program dilakukan untuk mengetahui tingkat keakuratan data

dan informasi yang dihasilkan oleh program yang telah dirancang, adapun data

yang diuji adalah :

1. Performance program yang dirancang untuk menyesuaikan

kenyamanan user dalam mengakses sistem.

2. Keakuratan informasi dari input, proses dan output pada sistem.


83

IV.2.2 Hasil Uji Coba

Setelah melakukan uji coba terhadap sistem, maka dapat disimpulkan hasil

yang didapatkan yaitu:

1. Sistem memiliki Performance yang relatif stabil.

2. Sistem telah menghasilkan informasi yang valid.

3. Antarmuka yang sederhana dapat mempermudah pengguna dalam

mempelajari sistem ini.

4. Kebutuhan akan informasi laporan sangat cepat disajikan.

IV.2.3 Skenario Pengujian

1. Pengujian Login

Tabel IV.1. Login

Data Masukan Yang Diharapkan Pengamatan Kesimpulan


User name dan Akan
Akan menampilkan [ √ ] diterima
password : menampilkan
form utama [ ] ditolak
admin,admin form utama
Akan
User name dan Akan menampilkan
menampilkan
password pesan “ user dan
pesan “ user dan [ √ ] diterima
kosong atau password yang
password yang [ ] ditolak
user name atau anda masukan salah
anda masukan
password salah !!”
salah !!”
84

2. Pengujian Pendataan Nasabah

Tabel IV.2. Data Korban

Data Masukan Yang Diharapkan Pengamatan Kesimpulan


Data yang
Memasukan data [ √ ] diterima
Form Nasabah dimasukan
Nasabah [ ] ditolak
sudah valid
Tombol “Baru”
Mengosongkan
dapat berfungsi [ √ ] diterima
Klik “Baru” field isian form
sesuai yang [ ] ditolak
Nasabah
diharapkan
Menyimpan data Tombol
Nasabah kedalam “Simpan” dapat [ √ ] diterima
Klik “Simpan”
tabel pendataan berfungsi sesuai [ ] ditolak
Nasabah yang diharapkan
Mengubah data Tombol “Edit”
Nasabah yang ada dapat berfungsi [ √ ] diterima
Klik “Edit”
di tabel pendataan sesuai yang [ ] ditolak
Nasabah diharapkan
Menonaktifkan
Tombol “Batal”
dan mengosongkan
dapat berfungsi [ √ ] diterima
Klik “Batal” semua field pada
sesuai yang [ ] ditolak
form pendataan
diharapkan
Nasabah
Manghapus Data Tombol
Nasabah yang ada “Hapus” dapat [ √ ] diterima
Klik “Hapus”
di tabel pendataan berfungsi sesuai [ ] ditolak
Nasabah yang diharapkan

3. Pengujian Pendataan Penilaian Nasabah

Tabel IV.2. Data Penilaian Nasabah

Data Masukan Yang Diharapkan Pengamatan Kesimpulan


Data yang
Form Penilaian Memasukan data [ √ ] diterima
dimasukan
Nasabah Nilai Nasabah [ ] ditolak
sudah valid
Menyimpan data Tombol
Nilai Nasabah “Simpan” dapat [ √ ] diterima
Klik “Simpan”
kedalam tabel Nilai berfungsi sesuai [ ] ditolak
Nasabah yang diharapkan
Menonaktifkan Tombol “Batal”
[ √ ] diterima
Klik “Batal” dan mengosongkan dapat berfungsi
[ ] ditolak
semua field pada sesuai yang
85

form pendataan diharapkan


Nilai Nasabah
Manghapus Data Tombol
Nilai Nasabah “Hapus” dapat [ √ ] diterima
Klik “Hapus”
yang ada di tabel berfungsi sesuai [ ] ditolak
Nilai Nasabah yang diharapkan

4. Pengujian Pendataan Pengguna

Tabel IV.2. Data Pengguna

Data Masukan Yang Diharapkan Pengamatan Kesimpulan


Data yang
Memasukan data [ √ ] diterima
Form Pengguna dimasukan
Pengguna [ ] ditolak
sudah valid
Tombol “Baru”
Mengosongkan
dapat berfungsi [ √ ] diterima
Klik “Baru” field isian form
sesuai yang [ ] ditolak
Pengguna
diharapkan
Menyimpan data Tombol
Pengguna kedalam “Simpan” dapat [ √ ] diterima
Klik “Simpan”
tabel pendataan berfungsi sesuai [ ] ditolak
Pengguna yang diharapkan
Mengubah data Tombol “Edit”
Pengguna yang ada dapat berfungsi [ √ ] diterima
Klik “Edit”
di tabel pendataan sesuai yang [ ] ditolak
Pengguna diharapkan
Menonaktifkan
Tombol “Batal”
dan mengosongkan
dapat berfungsi [ √ ] diterima
Klik “Batal” semua field pada
sesuai yang [ ] ditolak
form pendataan
diharapkan
Pengguna
Manghapus Data Tombol
Pengguna yang ada “Hapus” dapat [ √ ] diterima
Klik “Hapus”
di tabel pendataan berfungsi sesuai [ ] ditolak
Pengguna yang diharapkan
86

5. Pengujian Proses SPK

Tabel IV.5. Proses SPK

Data Masukan Yang Diharapkan Pengamatan Kesimpulan


Sistem dapat
Melakukan proses melakukan
Klik “Proses perhitungan SPK perhitungan dan [ √ ] diterima
Metode” dan menampilkan menampilkan [ ] ditolak
hasilnya hasil
perhitungan
Mengosongkan Sistem dapat
Klik “Reset field-field yang ada melakukan [ √ ] diterima
Data” dalam form dan pengosongan [ ] ditolak
table field
Sistem dapat
Klik “Tampil Menampilkan Hasil [ √ ] diterima
menampilkan
Proses” Proses Perhitungan [ ] ditolak
hasil proses

IV.3 Kelebihan dan Kekurangan Sistem

Setiap sistem memiliki kelebihan dan kekurangan, berikut ini adalah

kelebihan dan kekurangan sistem yang telah dibuat.

IV.3.1. Kelebihan Sistem

Kelebihan sistem ini diantaranya yaitu:

1. Waktu yang dibutuhkan untuk proses masuk kedalam sistem relatif singkat.

2. Sistem mampu menghasilkan informasi yang sesuai dengan yang diharapkan.

3. Kebutuhan akan informasi nasabah yang layak mendapatkan pinjaman modal

usaha menjadi lebih cepat dan akurat.

4. Performance sistem relatif stabil.

5. Sistem sangat cepat mengolah data untuk menghasilkan berbagai informasi

yang dibutuhkan pengguna.


87

IV.3.2 Kekurangan Sistem

Adapun kekurangan sistem yang telah dibuat diantaranya yaitu:

1. Sistem ini belum memiliki akses online sehingga penyebaran informasi data

tidak bekerja dengan efektif.

2. Sistem ini belum memiliki modul yang lengkap.


BAB V

KESIMPULAN DAN SARAN

77
BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

Berdasarkan penelitian yang telah dilakukan selama membuat sistem

pendukung keputusan pemberian pinjaman modal usaha menggunakan

penggabungan metode profile matching dan weight product pada PT. Permodalan

Nasional Madani (PT. PNM), maka dapat ditarik beberapa kesimpulan sebagai

berikut:

1. Memberikan kemudahan dan proes yang cepat bagi PT. Permodalan Nasional

Madani (PT. PNM) dalam mengambil keputusan penentuan nasabah yang

layak mendapatkan bantuan pinjaman modal usaha dari PT. Permodalan

Nasional Madani (PT. PNM)berdasarkan data nasabah dan data nilai nasabah

pada setiap kriteria serta data bobot setiap kriteria dari perusahaan.

2. Hasil penelitian dapat dijadikan bahan acuan untuk penelitian lain terkait

penerapan penggabungan metode profile matching dan weight product dalam

suatu sistem pendukung keputusan.

3. Berdasarkan hasil dari perhitungan sistem yang telah dibangun maka

penggabungan metode profile matching dan weight product dapat dilakukan

untuk mendapatkan hasil penilaian kelayakan nasabah menerima bantuan

modal sehingga menjadi lebih optimal.

88
89

V.2. Saran

Saran yang dapat diberikan setelah sistem pendukung keputusan ini selesai

dibangun adalah :

3. Sistem ini masih berbasis komputer desktop dan hanya bisa diakses pada satu

komputer, sebaiknya sistem ini dikembangkan dalam bentuk web agar dapat

diakses secara online.

4. Penggabungan metode tidak terbatas pada metode profile matching dan weight

product, tetapi dapat menggunakan berbagai metode pengambilan keputusan

lain agar hasil yang diberikan sesuai dengan kebutuhan pengguna sistem.

5. Perlu adanya dilakukan pemeliharaan dan perawatan sistem secara berkala

agar tidak terjadi kerusakan sistem dan data.


DAFTAR PUSTAKA

Arrosida, Hanum, 2017, “Pemberdayaan Anak Putus Sekolah Melalui


Pelatihan Pembuatan Kerajinan Flanel”, Jurnal Pengabdian
Kepada Masyarakat, Dikemas VOL.1, No.1 Tahun 2017 ISSN : 2581-
1932, Politeknik Negeri Madiun
Firdyana, Septiyana, Cahyadi, Dedi, Astuti, Indah Fitri, 2017, “Penerapan Metode
Weighted Product Untuk Menentukan Penerima Bantuan Beras
Masyarakat Miskin (RASKIN)”, Prosiding Seminar Ilmu Komputer dan
Teknologi Informasi Vol. 2, No. 1, Maret 2017 e-ISSN 2540-7902 dan p-
ISSN 2541-366X, Universitas Mulawarman
Herpendi, 2016, “Aplikasi Pengelolaan Nilai Akademik Mahasiswa dan DPNA
(Daftar Peserta dan Nilai Akhir)”, Jurnal Sains dan Teknologi
ISSN: 2460-173X, Volume 2, Nomor 1, Juni 2016, Jurusan Teknik
Informatika, Politeknik Negeri Tanah Laut
Komputer, Wahana, 2013, “Membangun Aplikasi Database Dengan Visual Basic
2012”, Andi Publisher, Yogyakarta.
Mulyani, Prof. Dr. Sri, Ak. Ca., 2016, “Metode Analisis Dan Perancangan Sistem”,
Abdi Sistematika, Bandung.
Novriansyah S.Kom, M.Kom, Dicky, 2014, “Konsep Data Mining Vs Sistem
Pendukung Keputusan”, Deepublish, Yogyakarta
Oktavianis Kartikasari, Nurul Hidayat, Suprapto 2017, “Implementasi Metode
Weighted Product dan Profile Matching pada Seleksi Staf
Operator Komputer Program Studi Teknik Informatika”, Jurnal
Pengembangan TI dan Ilmu Komputer e-ISSN: 2548-964X Vol. 1,
No. 11, November 2017, hlm. 1331-1336, Universitas Brawijaya
Pinem, Agusta Praba Ristadi, Pungkasanti, Prind Triajeng, Widodo, Edi, 2017,
“Implementasi Profile Matching Untuk Pemberian Kredit Kedua
Pada Koperasi Simpan Pinjam”, Jurnal SIMETRIS, Vol 8 No 2
November 2017 ISSN: 2252-4983, Universitas Semarang,
Sunyoto, Drs.Danang, 2014, “Sistem Informasi Manajemen Perspektif Organisasi”,
Deepublish, Yogyakarta
Syarifudin, Ahmad, Ananta, Ahmadi Yuli, 2015, “Rancang Bangun Sistem Pendukung
Keputusan Kelayakan Pemberian Kredit Menggunakan Metode profile
Matching”, Prosiding Seminar Informatika Aplikatif Polinema 2015
(SIAP~2015) ISSN: 2460-1160, Politeknik Negeri Malang
Yasdomi, Kiki, 2015, “Sistem Pendukung Keputusan Pemberian Kredit
Modal Usaha Menggunakan Metode Weighted Product (Studi
Kasus Pada Bank Danamon Simpan Pinjam Ujung Batu)”, Riau
Journal Of Computer Science Vol.1/No.1/2015 : 92- 105, Fakultas
Ilmu Komputer Universitas Pasir Pengaraian
Zefriyenni, 2017, “Kebijakan Pemberian Kredit Terhadap Penetapan Jumlah
Kredit (Studi Khasus Pada Ued-Sp Amanah Sejahtera Sungai
Buluh Kecamatansingingi Hilirkabupaten Kuantan Singingi
Propinsi Riau)”, Jurnal Edik Informatika Penelitian Bidang
Komputer Sains dan Pendidikan Informatika V1.i1(72-80) ISSN :
2407-0491 E-ISSN : 2541-3716, STKIP PGRI Sumbar
LAMPIRAN
LISTING PROGRAM

1. Active Record
Imports System.Data
Imports System.Data.SqlClient
Public Class ActiveRecord
Dim con As New SqlConnection
Dim cmd As New SqlCommand
Public lastQuery, condition ,tableName ,table1,table2 As String
Public columnName, columnParam As String
Public data As Object()
Public connection_string As String = "Data Source=AYU-PC;Initial
Catalog=db_pnm;Integrated Security=True"
Public Sub New() con.ConnectionString = connection_string End Sub
'Return ArrayList
Public Function SelectTop()
Dim query As String = ""
Try
con.Open() cmd.Connection = con
columnName = columnName.Trim()
query = String.Format("SELECT * FROM (select t_hasil.id_nasabah,
t_nasabah.nama_nasabah, t_hasil.vektor_s, t_hasil.vektor_v, t_hasil.kelayakan,
ROW_NUMBER() OVER (ORDER BY vektor_v DESC) AS RowNum FROM
t_hasil INNER JOIN t_nasabah ON t_nasabah.id_nasabah =
t_hasil.id_nasabah) AS T WHERE T.Rownum <= 10")
Me.lastQuery = query cmd.CommandText = query
Dim reader As SqlDataReader = cmd.ExecuteReader()
Dim row_list = New ArrayList
Dim fieldCount = reader.FieldCount
While reader.Read
Dim values(fieldCount) As Object reader.GetValues(values)
row_list.Add(values)
End While
con.Close() Return row_list
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mengambil data karena " & ex.Message)
MsgBox(query) Return Nothing End Try
End Function

Public Function SelectData()


Dim query As String = ""
Try con.Open() cmd.Connection = con
columnName = columnName.Trim()
query = String.Format("SELECT {0} FROM {1} {2}", columnName, tableName,
condition)
Me.lastQuery = query cmd.CommandText = query
Dim reader As SqlDataReader = cmd.ExecuteReader()
Dim row_list = New ArrayList
Dim fieldCount = reader.FieldCount
While reader.Read
Dim values(fieldCount) As Object reader.GetValues(values)
row_list.Add(values)
End While
con.Close() Return row_list
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mengambil data karena " & ex.Message)
MsgBox(query) Return Nothing End Try
End Function
Public Function SelectDatarows()
Dim querys As String = ""
Try con.Open() cmd.Connection = con
columnName = columnName.Trim()
querys = String.Format("SELECT {0} FROM {1} {2}", columnName, tableName,
condition)
cmd.CommandText = querys
Dim readers As SqlDataReader = cmd.ExecuteReader()
Dim row_listx = New ArrayList
Dim fieldCounts = readers.FieldCount
While readers.Read
Dim values(fieldCounts) As Object readers.GetValues(values)
row_listx.Add(values)
End While
con.Close() Return row_listx
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mengambil data karena " & ex.Message)
MsgBox(querys) Return Nothing
End Try
End Function
Public Function SelectFirst()
Dim query As String = ""
Try con.Open() cmd.Connection = con
columnName = columnName.Trim()
query = String.Format("SELECT TOP 1 {0} FROM {1} {2}", columnName,
tableName, condition)
Me.lastQuery = query cmd.CommandText = query
Dim reader As SqlDataReader = cmd.ExecuteReader()
Dim fieldCount = reader.FieldCount
Dim row_list = New ArrayList
Dim hashRow As Boolean = reader.HasRows
While reader.Read
Dim values(fieldCount) As Object reader.GetValues(values)
row_list.Add(values)
End While
con.Close()
If hashRow Then Return row_list.Item(0) Else
Return Nothing End If
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mengambil data karena " & ex.Message)
MsgBox(query) Return Nothing End Try
End Function
Public Function SelectScalar()
Dim scalar = Nothing Try con.Open() cmd.Connection = con
columnName = columnName.Trim()
Dim query As String = String.Format("SELECT {0} FROM {1} {2} ", columnName,
tableName, condition)
Me.lastQuery = query cmd.CommandText = query
scalar = cmd.ExecuteScalar() con.Close()
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose,
"ActiveRecord")
MsgBox("Gagal mengambil data karena " & ex.Message)
End Try Return scalar
End Function
Public Sub PopulateData(ByVal row_list As ArrayList, ByVal list_view As ListView)
list_view.Items.Clear()
Dim listview_item As New ListViewItem()
For Each item In row_list
Dim n = item.length
listview_item = list_view.Items.Add(Convert.ToString(item(0)))
For i = 1 To n - 1
listview_item.SubItems.Add(Convert.ToString(item(i)))
Next Next End Sub
Public Function Insert()
Dim query As String = ""
Try
If con.State = ConnectionState.Closed Then con.Open() End If
cmd.Connection = con columnName = columnName.Replace(" ", "")
columnParam = "@" & columnName.Replace(",", ",@")
Dim parameter() As String = Split(columnParam, ",")
query = String.Format("INSERT INTO {0} ({1}) VALUES ({2})", tableName,
columnName, columnParam)
cmd.Parameters.Clear() cmd.CommandText = query
For i = 0 To UBound(parameter)
cmd.Parameters.AddWithValue(parameter(i), data(i)) Next
cmd.ExecuteNonQuery() con.Close() Return True
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal insert data karena " & ex.Message)
MsgBox(query) Return False End Try
End Function
Public Function Edit()
Dim query As String = "" Try con.Open()
cmd.Connection = con columnName = columnName.Replace(" ", "")
columnParam = "@" & columnName.Replace(",", ",@")
Dim parameter() As String = Split(columnParam, ",")
query = String.Format("UPDATE {0} SET ", tableName)
For i = 0 To UBound(parameter)
query = query & (parameter(i).Replace("@", "")) & "=" & parameter(i) & ","
Next
query = query.Substring(0, query.Length - 1)
query = query & " " & condition cmd.CommandText = query
cmd.Parameters.Clear()
For i = 0 To UBound(parameter)
cmd.Parameters.AddWithValue(parameter(i), data(i))
Next
cmd.ExecuteNonQuery() con.Close() Return True
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal edit data karena " & ex.Message)
MsgBox(query) Return False End Try
End Function
Public Function Delete()
Dim query As String = ""
Try con.Open() cmd.Connection = con
query = String.Format("DELETE FROM {0} {1}", tableName, condition)
cmd.CommandText = query cmd.ExecuteNonQuery()
con.Close() Return True Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal hapus data karena " & ex.Message)
MsgBox(query) Return False End Try
End Function
Public Function GetAutoCode(ByVal tabel As String, ByVal kolom As String, ByVal prefix
As String, ByVal kolLen As Integer)
Dim pa = kolLen - prefix.Length 'panjang angka
Dim KodeOtomatis As String = String.Format("{0}{1}", prefix, "1".PadLeft(pa, "0"))
Dim query As String = ""
'MsgBox(String.Format("Kode otomatisnya awal adalah [{0}]", KodeOtomatis))
Try con.Open() cmd.Connection = con
'Dim query As String = String.Format("SELECT
CONCAT('{0}',LPAD((RIGHT(MAX({1}),{2})+1),{3},'0')) AS kode FROM {4} LIMIT 0,1",
prefix, kolom, pa, pa, tabel)
query = String.Format("SELECT TOP 1 MAX({0}) FROM {1}", kolom, tabel)
cmd.CommandText = query Dim scalar = cmd.ExecuteScalar()
If Not IsDBNull(scalar) Then
Dim angka = CInt(scalar.ToString.Replace(prefix, "")) + 1
KodeOtomatis = String.Format("{0}{1}", prefix, CStr(angka).PadLeft(pa, "0"))
End If
con.Close()
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mendapatkan kode otomatis " & ex.Message)
MsgBox(query)
End Try
'MsgBox(String.Format("Kode otomatisnya adalah [{0}]", KodeOtomatis))
Return KodeOtomatis
End Function
Public Function GetMax(ByVal tabel As String, ByVal kolom As String)
Dim maksimum As String = "" Dim query As String = ""
'MsgBox(String.Format("Kode otomatisnya awal adalah [{0}]", KodeOtomatis))
Try
con.Open() cmd.Connection = con
query = String.Format("SELECT MAX({0}) FROM {1}", kolom, tabel)
cmd.CommandText = query
Dim scalar = cmd.ExecuteScalar()
If Not IsDBNull(scalar) Then
Dim angka = CDbl(scalar.ToString)
maksimum = String.Format("{0}", CStr(angka))
End If
con.Close()
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mendapatkan Maksimum " & ex.Message)
MsgBox(query)
End Try
'MsgBox(String.Format("Kode otomatisnya adalah [{0}]", KodeOtomatis))
Return maksimum
End Function

Public Function GetMin(ByVal tabel As String, ByVal kolom As String)


Dim minimum As String = ""
Dim query As String = ""
'MsgBox(String.Format("Kode otomatisnya awal adalah [{0}]", KodeOtomatis))
Try con.Open() cmd.Connection = con
query = String.Format("SELECT MIN({0}) FROM {1}", kolom, tabel)
cmd.CommandText = query
Dim scalar = cmd.ExecuteScalar()
If Not IsDBNull(scalar) Then
Dim angka = CDbl(scalar.ToString)
minimum = String.Format("{0}", CStr(angka))
End If
con.Close()
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mendapatkan Maksimum " & ex.Message)
MsgBox(query)
End Try
'MsgBox(String.Format("Kode otomatisnya adalah [{0}]", KodeOtomatis))
Return minimum
End Function
Public Function GetPembagi(ByVal tabel As String, ByVal kolom As String)
Dim minimum As String = "" Dim query As String = ""
Try con.Open() cmd.Connection = con
query = String.Format("SELECT {0} FROM {1}", kolom, tabel)
cmd.CommandText = query
Dim readers As SqlDataReader = cmd.ExecuteReader()
Dim row_listx = New ArrayList Dim fieldCounts = readers.FieldCount
While readers.Read
Dim values(fieldCounts) As Object readers.GetValues(values)
row_listx.Add(values) End While con.Close() Return row_listx
Catch ex As Exception
My.Application.Log.WriteException(ex, TraceEventType.Verbose, "ActiveRecord")
MsgBox("Gagal mendapatkan Maksimum " & ex.Message)
MsgBox(query)
End Try Return minimum
End Function
Private Sub NormalizeTableName()
Dim normalized As String = ""
Dim parameter() As String = Split(Me.tableName, ",")
For i = 0 To UBound(parameter)
Dim tblName = parameter(i)
If tblName.Contains("as") Then
tblName = tblName.Trim Dim temp() As String = Split(tblName, "AS")
normalized = normalized & String.Format("[{0}] AS {1},", temp(0), temp(1))
Else normalized = normalized & String.Format("[{0}],", tblName) End If
Next
normalized = normalized.Substring(0, normalized.Length - 1)
Me.tableName = normalized End Sub
Public Sub SetComboBoxDataset(ByVal combobox As ComboBox, ByVal ValueMember As
String, ByVal DisplayMember As String, ByVal Table As String, ByVal Conditions As String)
Try con.Open()
Dim query As String = String.Format("SELECT {0},{1} FROM {2} {3}",
ValueMember, DisplayMember, Table, Conditions)
Dim adapter As New SqlDataAdapter(query, con)
Dim DataTable As New DataTable adapter.Fill(DataTable)
combobox.DataSource = DataTable combobox.ValueMember = ValueMember
combobox.DisplayMember = DisplayMember con.Close()
Catch ex As Exception Console.WriteLine("Gagal mengatur dataset combobox "
& ex.Message & vbNewLine & lastQuery)
MsgBox("Gagal mengatur dataset combobox " & ex.Message) con.Close()
End Try End Sub
End Class
2. Form Login
Public Class FormLogin
Dim Model As New ActiveRecord()

Private Sub LoginProses()


Model.tableName = "t_user" Model.columnName = "username,password,level"
Model.condition = String.Format("WHERE username = '{0}' AND password = '{1}'",
Username.Text, Password.Text)
Dim data = Model.SelectFirst
If IsNothing(data) Then
MsgBox("Data akses login anda tidak valid", MsgBoxStyle.Critical, "Invalid")
Else
If level.Text = "Administrator" Then
FormUtama.Show() FormUtama.Menu_Master.Enabled = True
FormUtama.Menu_Laporan_SPK.Enabled = True
FormUtama.MenuLapNasabah.Enabled = True
FormUtama.Menu_Proses_SPK.Enabled = True
FormUtama.Menu_Logout.Enabled = True
Username.Text = "" Password.Text = "" level.Text = ""
Model.condition = Nothing Me.Hide()
Else
FormUtama.Show() FormUtama.Menu_Master.Enabled = False
FormUtama.Menu_Laporan_SPK.Enabled = True
FormUtama.MenuLapNasabah.Enabled = True
FormUtama.Menu_Proses_SPK.Enabled = False
FormUtama.Menu_Logout.Enabled = True
Username.Text = "" Password.Text = "" level.Text = ""
Model.condition = Nothing Me.Hide()
End If
End If
End Sub
Private Sub Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Login.Click
LoginProses()
End Sub
Private Sub Reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Reset.Click
Username.Text = "" Password.Text = "" level.Text = "" End
End Sub
Private Sub Password_KeyUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles Password.KeyUp
If e.KeyCode = Keys.Enter Then LoginProses() End If
End Sub
Private Sub Username_KeyUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles Username.KeyUp
If e.KeyCode = Keys.Enter Then Password.Focus() End If
End Sub
End Class
3. Form Utama
Public Class FormUtama

Private Sub FormUtama_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
Menu_Master.Enabled = False Menu_Laporan_SPK.Enabled = False
Menu_Proses_SPK.Enabled = False Dim c As Control
For Each c In Me.Controls
If TypeOf c Is MdiClient Then c.BackColor = Me.BackColor
c.BackgroundImage = Me.BackgroundImage
c.BackgroundImageLayout = Me.BackgroundImageLayout
End If
Next FormLogin.Show() Me.Hide()
End Sub
Private Sub LoginMenu_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
FormLogin.MdiParent = Me FormLogin.Show()
End Sub
Private Sub ExitMenu_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
End
End Sub
Private Sub MenuKaryawan_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuKaryawan.Click
FormNasabah.MdiParent = Me FormNasabah.Show()
End Sub
Private Sub MenuNilai_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuNilai.Click
FormNilai.MdiParent = Me FormNilai.Show()
End Sub
Private Sub MenuPengguna_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuPengguna.Click
FormPengguna.MdiParent = Me FormPengguna.Show()
End Sub
Private Sub Menu_Laporan_SPK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Menu_Laporan_SPK.Click
FormLaporan.MdiParent = Me FormLaporan.Show()
End Sub
Private Sub Menu_Proses_SPK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Menu_Proses_SPK.Click
FormSPK.MdiParent = Me FormSPK.Show()
End Sub
Private Sub Menu_Logout_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Menu_Logout.Click
Menu_Master.Enabled = False Menu_Proses_SPK.Enabled = False
Menu_Laporan_SPK.Enabled = False MenuLapNasabah.Enabled = False
Menu_Logout.Enabled = False FormLogin.Show() Me.Hide()
End Sub
Private Sub MenuLapNasabah_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuLapNasabah.Click
FL_Nasabah.MdiParent = Me FL_Nasabah.Show()
End Sub
End Class
4. Form Nasabah
Public Class FormNasabah
Dim Rows As ArrayList Dim Selected As Integer
Dim Model As New ActiveRecord() Dim Nilai As New ActiveRecord()
Dim BobotGap, Gap As New ActiveRecord()
Dim Hasil As New ActiveRecord() Dim Normalisasi As New ActiveRecord()
Private Sub LoadData()
Model.tableName = "t_nasabah" Model.columnName =
"id_nasabah,nama_nasabah,nama_ayah,tempat_lahir,tanggal_lahir,no_kk,alamat,tele
pon,status,nama_suami,pekerjaan_suami,jumlah_anak,usaha_nasabah,jumlah_tanggu
ngan"
Model.condition = Nothing Rows = Model.SelectData()
Model.PopulateData(Rows, ListView)
ButtonBatal()
End Sub
Function Validasi()
Dim invalid As Boolean = (nama_nasabah.Text = "")
If invalid Then
MsgBox("Mohon lengkapi data dahulu", MsgBoxStyle.Critical, "Validasi")
Return False
End If
Return True
End Function
Private Sub LoadSelected()
Selected = ListView.FocusedItem.Index
id_nasabah.Text = Rows.Item(Selected)(0).ToString
nama_nasabah.Text = Rows.Item(Selected)(1).ToString
nama_ayah.Text = Rows.Item(Selected)(2).ToString
tempat_lahir.Text = Rows.Item(Selected)(3).ToString
tanggal_lahir.Text = Rows.Item(Selected)(4).ToString
no_kk.Text = Rows.Item(Selected)(5).ToString
alamat.Text = Rows.Item(Selected)(6).ToString
telepon.Text = Rows.Item(Selected)(7).ToString
status.Text = Rows.Item(Selected)(8).ToString
nama_suami.Text = Rows.Item(Selected)(9).ToString
pekerjaan_suami.Text = Rows.Item(Selected)(10).ToString
jumlah_anak.Text = Rows.Item(Selected)(11).ToString
usaha_nasabah.Text = Rows.Item(Selected)(12).ToString
jumlah_tanggungan.Text = Rows.Item(Selected)(13).ToString
id_nasabah.Enabled = False nama_nasabah.Enabled = True
nama_ayah.Enabled = True tempat_lahir.Enabled = True
tanggal_lahir.Enabled = True no_kk.Enabled = True
alamat.Enabled = True telepon.Enabled = True
status.Enabled = True nama_suami.Enabled = True
pekerjaan_suami.Enabled = True jumlah_anak.Enabled = True
usaha_nasabah.Enabled = True jumlah_tanggungan.Enabled = True
Baru.Enabled = False Simpan.Enabled = False Edit.Enabled = True
Hapus.Enabled = True Batal.Enabled = True
End Sub
Private Sub ButtonBaru()
id_nasabah.Text = Model.GetAutoCode("t_nasabah", "id_nasabah", "N", 8)
nama_nasabah.Enabled = True nama_ayah.Enabled = True
tempat_lahir.Enabled = True tanggal_lahir.Enabled = True
no_kk.Enabled = True alamat.Enabled = True
telepon.Enabled = True status.Enabled = True
nama_suami.Enabled = True pekerjaan_suami.Enabled = True
jumlah_anak.Enabled = True usaha_nasabah.Enabled = True
jumlah_tanggungan.Enabled = True Baru.Enabled = False
Simpan.Enabled = True Edit.Enabled = False
Hapus.Enabled = False Batal.Enabled = True
End Sub
Private Sub ButtonSimpan()
If Validasi() Then
Model.data = New Object() {id_nasabah.Text, nama_nasabah.Text, nama_ayah.Text,
tempat_lahir.Text, tanggal_lahir.Value, no_kk.Text, alamat.Text, telepon.Text,
status.Text, nama_suami.Text, pekerjaan_suami.Text, jumlah_anak.Text,
usaha_nasabah.Text, jumlah_tanggungan.Text, "", "", "", "", "", ""}
If Model.Insert() Then Nilai.tableName = "t_nilai" Nilai.columnName
=
"id_nasabah,nilai_luas_rumah,nilai_kondisi_rumah,nilai_atap_rumah,nilai_dinding_r
umah,nilai_lantai_rumah,nilai_pendapatan_rt"
Gap.tableName = "t_gap"
Gap.columnName =
"id_nasabah,gap_luas_rumah,gap_kondisi_rumah,gap_atap_rumah,gap_dinding_rum
ah,gap_lantai_rumah,gap_pendapatan_rt"
BobotGap.tableName = "t_bobotgap" BobotGap.columnName =
"id_nasabah,bobotgap_luas_rumah,bobotgap_kondisi_rumah,bobotgap_atap_rumah,b
obotgap_dinding_rumah,bobotgap_lantai_rumah, bobotgap_pendapatan_rt"
Hasil.tableName = "t_hasil" Hasil.columnName =
"id_nasabah,vektor_s,vektor_v,kelayakan,rangking"
Nilai.data = New Object() {id_nasabah.Text, 0, 0, 0, 0, 0, 0} Nilai.Insert()

BobotGap.data = New Object() {id_nasabah.Text, 0, 0, 0, 0, 0, 0} BobotGap.Insert()


Gap.data = New Object() {id_nasabah.Text, 0, 0, 0, 0, 0, 0} Gap.Insert()
Hasil.data = New Object() {id_nasabah.Text, 0, 0, "", ""} Hasil.Insert()
ButtonBaru() LoadData() End If End If
End Sub
Private Sub ButtonEdit()
If Validasi() Then
Model.data = New Object() {id_nasabah.Text, nama_nasabah.Text, nama_ayah.Text,
tempat_lahir.Text, tanggal_lahir.Value, no_kk.Text, alamat.Text, telepon.Text,
status.Text, nama_suami.Text, pekerjaan_suami.Text, jumlah_anak.Text,
usaha_nasabah.Text, jumlah_tanggungan.Text}
Model.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
If Model.Edit() Then ButtonBaru() LoadData() End If
End If
End Sub
Private Sub ButtonBatal()
nama_nasabah.Text = "" nama_ayah.Text = "" tempat_lahir.Text = ""
tanggal_lahir.Value = "1980-12-31" no_kk.Text = "" alamat.Text = ""
telepon.Text = "" status.Text = "" nama_suami.Text = ""
pekerjaan_suami.Text = "" jumlah_anak.Text = "0" usaha_nasabah.Text = ""
jumlah_tanggungan.Text = "0" Rb_Id.Checked = False
Rb_Nama.Checked = False txtCari.Text = "" id_nasabah.Enabled = False
nama_nasabah.Enabled = False nama_ayah.Enabled = False
tempat_lahir.Enabled = False tanggal_lahir.Enabled = False no_kk.Enabled = False
alamat.Enabled = False telepon.Enabled = False status.Enabled = False
nama_suami.Enabled = False pekerjaan_suami.Enabled = False
jumlah_anak.Enabled = False usaha_nasabah.Enabled = False
jumlah_tanggungan.Enabled = False Baru.Enabled = True
Simpan.Enabled = False Edit.Enabled = False Hapus.Enabled = False
Batal.Enabled = False
End Sub
Private Sub ButtonHapus()
Dim Klik = MsgBox("Data yang dihapus tidak dapat dikembalikan, lanjutkan?",
MsgBoxStyle.YesNo, "Konfirmasi")
If (Klik = MsgBoxResult.Yes) Then Nilai.tableName = "t_nilai"
Nilai.columnName =
"id_nasabah,nilai_luas_rumah,nilai_kondisi_rumah,nilai_atap_rumah,nilai_dinding_r
umah,nilai_lantai_rumah,nilai_pendapatan_rt"
Nilai.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
BobotGap.tableName = "t_bobotgap" BobotGap.columnName =
"id_nasabah,bobotgap_luas_rumah,bobotgap_kondisi_rumah,bobotgap_atap_rumah,b
obotgap_dinding_rumah,bobotgap_lantai_rumah, bobotgap_pendapatan_rt"
BobotGap.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Gap.tableName = "t_gap" Gap.columnName =
"id_nasabah,gap_luas_rumah,gap_kondisi_rumah,gap_atap_rumah,gap_dinding_rum
ah,gap_lantai_rumah,gap_pendapatan_rt"
Gap.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Hasil.tableName = "t_hasil"
Hasil.columnName =
"id_nasabah,bobot_luas_rumah,bobot_kondisi_rumah,bobot_atap_rumah,bobot_dindi
ng_rumah,bobot_lantai_rumah,bobot_pendapatan_rt,vektor_s,vektor_v,kelayakan,ran
gking"
Hasil.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Model.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
If Model.Delete() And Nilai.Delete() And BobotGap.Delete() And Hasil.Delete() And
Gap.Delete Then LoadData() End If End If
End Sub
Private Sub FormCari()
Dim Cari As String = txtCari.Text Dim KategoriCari As String = ""
If Rb_Id.Checked = True Then KategoriCari = "id_nasabah"
ElseIf Rb_Nama.Checked = True Then KategoriCari = "nama_nasabah"
Else
MsgBox("Pilih Kategori Pencarian Berdasarkan ID atau Nama",
MsgBoxStyle.OkOnly, "Peringatan !") Exit Sub End If
Model.tableName = "t_nasabah"
Model.columnName =
"id_nasabah,nama_nasabah,nama_ayah,tempat_lahir,tanggal_lahir,no_kk,alamat,tele
pon,status,nama_suami,pekerjaan_suami,jumlah_anak,usaha_nasabah,jumlah_tanggu
ngan"
Model.condition = String.Format(" Where {0} LIKE '%{1}%'", KategoriCari, Cari)
Rows = Model.SelectData Model.PopulateData(Rows, ListView)
ButtonBatal()
If Rows.Count = 0 Then
MsgBox("Data Tidak Ditemukan", MsgBoxStyle.OkOnly, "Peringatan !")
LoadData() End If
End Sub
Private Sub FormNasabah_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load LoadData() End Sub
Private Sub ListView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ListView.SelectedIndexChanged LoadSelected()
End Sub
Private Sub Batal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Batal.Click ButtonBatal() End Sub
Private Sub Hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Hapus.Click ButtonHapus() End Sub
Private Sub Edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Edit.Click ButtonEdit() End Sub
Private Sub Simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Simpan.Click ButtonSimpan() End Sub
Private Sub Baru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Baru.Click ButtonBaru() End Sub
Private Sub Cari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Cari.Click FormCari() End Sub
End Class
5. Form Nilai
Public Class FormNilai
Dim Rows, Row2 As ArrayList Dim Selected As Integer
Dim Model As New ActiveRecord() Dim Nilai As New ActiveRecord()
Dim bobotGAP, GAP,hasil,Normalisasi As New ActiveRecord()
Dim luas_rumahx, kondisi_rumahx, atap_rumahx, dinding_rumahx, lantai_rumahx,
pendapatan_rtx As Integer
Private Sub LoadData()
Model.tableName = "t_nasabah" Model.columnName =
"id_nasabah,nama_nasabah,luas_rumah,kondisi_rumah,atap_rumah,dinding_rumah,lant
ai_rumah,pendapatan_rt" Model.condition = Nothing Rows =
Model.SelectData() Model.PopulateData(Rows, ListView1)
Nilai.tableName = "t_nilai inner join t_nasabah on t_nilai.id_nasabah =
t_nasabah.id_nasabah"
Nilai.columnName =
"t_nilai.id_nasabah,nama_nasabah,nilai_luas_rumah,nilai_kondisi_rumah,nilai_atap_ru
mah,nilai_dinding_rumah,nilai_lantai_rumah,nilai_pendapatan_rt"
Nilai.condition = Nothing Row2 = Nilai.SelectData()
Nilai.PopulateData(Row2, ListView2)
ButtonBatal()
End Sub
Function Validasi()
Dim invalid As Boolean = (luas_rumah.Text = "" Or kondisi_rumah.Text = "" Or
atap_rumah.Text = "" Or dinding_rumah.Text = "" Or lantai_rumah.Text = "" Or
pendapatan_rt.Text = "")
If invalid Then
MsgBox("Mohon lengkapi data dahulu", MsgBoxStyle.Critical, "Validasi")
Return False
End If Return True
End Function
Private Sub LoadSelected()
Selected = ListView1.FocusedItem.Index
id_nasabah.Text = Rows.Item(Selected)(0).ToString
nama_nasabah.Text = Rows.Item(Selected)(1).ToString
luas_rumah.Text = Rows.Item(Selected)(2).ToString
kondisi_rumah.Text = Rows.Item(Selected)(3).ToString
atap_rumah.Text = Rows.Item(Selected)(4).ToString
dinding_rumah.Text = Rows.Item(Selected)(5).ToString
lantai_rumah.Text = Rows.Item(Selected)(6).ToString
pendapatan_rt.Text = Rows.Item(Selected)(7).ToString
luas_rumah.Enabled = True kondisi_rumah.Enabled = True
atap_rumah.Enabled = True dinding_rumah.Enabled = True
lantai_rumah.Enabled = True pendapatan_rt.Enabled = True
Simpan.Enabled = True Hapus.Enabled = True Batal.Enabled = True
End Sub
Private Sub ButtonSimpan()
If Validasi() Then
If luas_rumah.Text = ">0 m2 dan <= 50 m2" Then luas_rumahx = 5
ElseIf luas_rumah.Text = ">50 m2 dan <= 100m2" Then luas_rumahx = 4
ElseIf luas_rumah.Text = ">100m2 dan <= 200m2" Then luas_rumahx = 3
ElseIf luas_rumah.Text = ">200m2 dan <=350m2" Then luas_rumahx = 2
Else luas_rumahx = 1 End If
If kondisi_rumah.Text = "Sangat Rusak" Then kondisi_rumahx = 5
ElseIf kondisi_rumah.Text = "Rusak" Then kondisi_rumahx = 4
ElseIf kondisi_rumah.Text = "Sederhana" Then kondisi_rumahx = 3
ElseIf kondisi_rumah.Text = "Mewah" Then kondisi_rumahx = 2
Else kondisi_rumahx = 1 End If
If atap_rumah.Text = "Anyaman Daun" Then atap_rumahx = 5
ElseIf atap_rumah.Text = "Seng" Then atap_rumahx = 4
ElseIf atap_rumah.Text = "Tanah Liat" Then atap_rumahx = 3
ElseIf atap_rumah.Text = "Beton" Then atap_rumahx = 2
Else atap_rumahx = 1 End If
If dinding_rumah.Text = "Anyaman Bambu" Then dinding_rumahx = 5
ElseIf dinding_rumah.Text = "Triplek" Then dinding_rumahx = 4
ElseIf dinding_rumah.Text = "Papan" Then dinding_rumahx = 3
ElseIf dinding_rumah.Text = "Beton" Then dinding_rumahx = 2
Else dinding_rumahx = 1 End If
If lantai_rumah.Text = "Tanah" Then lantai_rumahx = 5
ElseIf lantai_rumah.Text = "Bambu" Then lantai_rumahx = 4
ElseIf lantai_rumah.Text = "Papan" Then lantai_rumahx = 3
ElseIf lantai_rumah.Text = "Semen" Then lantai_rumahx = 2
Else lantai_rumahx = 1 End If
If pendapatan_rt.Text = ">0 dan <=400000" Then pendapatan_rtx = 5
ElseIf pendapatan_rt.Text = ">400000 dan <=600000" Then pendapatan_rtx = 4
ElseIf pendapatan_rt.Text = ">600000 dan <=800000" Then pendapatan_rtx = 3
ElseIf pendapatan_rt.Text = ">800000 dan <=1000000" Then
pendapatan_rtx = 2 Else pendapatan_rtx = 1 End If
Model.tableName = "t_nasabah" Model.columnName =
"id_nasabah,luas_rumah,kondisi_rumah,atap_rumah,dinding_rumah,lantai_rumah,pend
apatan_rt"
Model.data = New Object() {id_nasabah.Text, luas_rumah.Text, kondisi_rumah.Text,
atap_rumah.Text, dinding_rumah.Text, lantai_rumah.Text, pendapatan_rt.Text}
Model.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Model.Edit() Nilai.tableName = "t_nilai"
Nilai.columnName =
"id_nasabah,nilai_luas_rumah,nilai_kondisi_rumah,nilai_atap_rumah,nilai_dinding_ru
mah,nilai_lantai_rumah,nilai_pendapatan_rt"
Nilai.data = New Object() {id_nasabah.Text, luas_rumahx, kondisi_rumahx,
atap_rumahx, dinding_rumahx, lantai_rumahx, pendapatan_rtx}
Nilai.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Nilai.Edit() LoadData() Else Exit Sub End If
End Sub
Private Sub ButtonBatal()
id_nasabah.Enabled = False nama_nasabah.Enabled = False
luas_rumah.Enabled = False kondisi_rumah.Enabled = False
atap_rumah.Enabled = False dinding_rumah.Enabled = False
lantai_rumah.Enabled = False pendapatan_rt.Enabled = False
Simpan.Enabled = False Hapus.Enabled = False
Batal.Enabled = False id_nasabah.Text = "" nama_nasabah.Text = ""
luas_rumah.Text = "" kondisi_rumah.Text = "" atap_rumah.Text = ""
dinding_rumah.Text = "" lantai_rumah.Text = "" pendapatan_rt.Text = ""
End Sub
Private Sub ButtonHapus()
Dim Klik = MsgBox("Data yang dihapus tidak dapat dikembalikan, lanjutkan?",
MsgBoxStyle.YesNo, "Konfirmasi")
If (Klik = MsgBoxResult.Yes) Then
Nilai.tableName = "t_nilai" Nilai.condition = String.Format("WHERE
id_nasabah = '{0}'", id_nasabah.Text)
BobotGap.tableName = "t_bobotgap" bobotGAP.condition =
String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
GAP.tableName = "t_gap"
GAP.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
hasil.tableName = "t_hasil"
hasil.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
Model.tableName = "t_nasabah"
Model.condition = String.Format("WHERE id_nasabah = '{0}'", id_nasabah.Text)
If Model.Delete() Then
Nilai.Delete() bobotGAP.Delete() hasil.Delete()
GAP.Delete() LoadData() End If
End If
End Sub
Private Sub FormNilai_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load LoadData()
End Sub
Private Sub Simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Simpan.Click ButtonSimpan()
End Sub
Private Sub Hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Hapus.Click ButtonHapus()
End Sub
Private Sub Batal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Batal.Click ButtonBatal()
End Sub
Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ListView1.SelectedIndexChanged
LoadSelected() End Sub
End Class
6. Form Pengguna
Public Class FormPengguna
Dim Rows As ArrayList Dim Selected As Integer Dim Model As New ActiveRecord()
Private Sub LoadData()
Model.tableName = "t_user" Model.columnName = "username,password,level"
Model.condition = Nothing Rows = Model.SelectData()
Model.PopulateData(Rows, ListView)
Username.Enabled = False level.Enabled = False Password.Enabled = False
Baru.Enabled = True Simpan.Enabled = False Edit.Enabled = False
Hapus.Enabled = False Batal.Enabled = False Username.Text = ""
level.Text = "" Password.Text = ""
End Sub
Function Validasi()
Dim invalid As Boolean = (Username.Text = "" Or level.Text = "" Or Password.Text =
"")
If invalid Then MsgBox("Lengkapi data dahulu", MsgBoxStyle.Critical, "Validasi")
Return False End If Return True
End Function
Private Sub LoadSelected()
Selected = ListView.FocusedItem.Index
Username.Text = Rows.Item(Selected)(0).ToString Username.Enabled = False
Model.columnName = "username,password,level"
Model.condition = String.Format("WHERE username = '{0}'", Username.Text)
Dim data = Model.SelectFirst level.Enabled = True
Password.Enabled = True Password.Text = data(1) level.Text = data(2)
Baru.Enabled = False Simpan.Enabled = False Edit.Enabled = True
Hapus.Enabled = True Batal.Enabled = True
End Sub
Private Sub ButtonBaru()
level.Enabled = True Username.Enabled = True Password.Enabled = True
Username.Text = "" level.Text = "" Password.Text = "" Baru.Enabled = False
Simpan.Enabled = True Edit.Enabled = False Hapus.Enabled = False
Batal.Enabled = True
End Sub
Private Sub ButtonSimpan()
If Validasi() Then Model.columnName = "username,password,level"
Model.condition = String.Format("WHERE username = '{0}'", Username.Text)
Rows = Model.SelectData()
If Rows.Count < 1 Then
Model.data = New Object() {Username.Text, Password.Text, level.Text}
If Model.Insert() Then LoadData() End If
Else
MsgBox("Data Sudah ADa", vbOKOnly, "Peringatan!!") Exit Sub
End If End If
End Sub
Private Sub ButtonEdit()
If Validasi() Then Model.columnName = "username,password,level"
Model.data = New Object() {Username.Text, Password.Text, level.Text}
Model.condition = String.Format("WHERE username = '{0}'", Username.Text)
If Model.Edit() Then LoadData() End If End If
End Sub
Private Sub ButtonBatal() LoadData() End Sub
Private Sub ButtonHapus()
Dim Klik = MsgBox("Data yang dihapus tidak dapat dikembalikan, lanjutkan?",
MsgBoxStyle.YesNo, "Konfirmasi")
If (Klik = MsgBoxResult.Yes) Then
Model.condition = String.Format("WHERE username = '{0}'", Username.Text)
If Model.Delete() Then LoadData() End If End If
End Sub
Private Sub Pengguna_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load LoadData()
End Sub
Private Sub Baru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Baru.Click ButtonBaru()
End Sub
Private Sub Simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Simpan.Click ButtonSimpan()
End Sub
Private Sub Edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Edit.Click ButtonEdit()
End Sub
Private Sub Batal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Batal.Click ButtonBatal()
End Sub
Private Sub Hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Hapus.Click ButtonHapus()
End Sub
Private Sub ListView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ListView.SelectedIndexChanged LoadSelected()
End Sub
End Class
7. Form SPK
Imports System Imports System.IO
Public Class FormSPK
Dim Rows, Rows_Hasil, Rows_Nilai, Rows_GAP, Rows_bobotGAP As ArrayList
Dim Data, Dim Datarows As ArrayList Dim Selected As Integer
Dim Model, Model_Hasil, Model_Nilai, Model_GAP, Model_bobotGAP As New
ActiveRecord()
Private Sub Kosongkan()
bpLuas_Rumah.Text = 5 bpKondisi_Rumah.Text = 5 bpAtap_Rumah.Text = 5
bpDinding_Rumah.Text = 3 bpLantai_Rumah.Text = 1 bpPendapatan_RT.Text = 5
'stdlayak.Text = "0"
End Sub
Sub LoadData() Try Model.condition = Nothing Model.tableName = "t_nasabah"
Model.columnName =
"id_nasabah,nama_nasabah,luas_rumah,kondisi_rumah,atap_rumah,dinding_rumah,lant
ai_rumah,pendapatan_rt"
Rows = Model.SelectData() Model.PopulateData(Rows, LV_Nilai)
Model_Nilai.condition = Nothing
Model_Nilai.tableName = "t_nilai o INNER JOIN t_nasabah n ON o.id_nasabah =
n.id_nasabah" Model_Nilai.columnName =
"n.id_nasabah,n.nama_nasabah,o.nilai_luas_rumah,o.nilai_kondisi_rumah,o.nilai_atap_
rumah,o.nilai_dinding_rumah,o.nilai_lantai_rumah,o.nilai_pendapatan_rt"
Rows_Nilai = Model_Nilai.SelectData()
Model_Nilai.PopulateData(Rows_Nilai, LV_Konversi) Model_GAP.condition
=Nothing
Model_GAP.tableName = "t_gap o INNER JOIN t_nasabah n ON o.id_nasabah =
n.id_nasabah"
Model_GAP.columnName =
"n.id_nasabah,n.nama_nasabah,o.gap_luas_rumah,o.gap_kondisi_rumah,o.gap_atap_ru
mah,o.gap_dinding_rumah,o.gap_lantai_rumah,o.gap_pendapatan_rt"
Rows_GAP = Model_GAP.SelectData()
Model_GAP.PopulateData(Rows_GAP, LV_GAP)
Model_bobotGAP.condition = Nothing Model_bobotGAP.tableName =
"t_bobotgap o INNER JOIN t_nasabah n ON o.id_nasabah = n.id_nasabah"
Model_bobotGAP.columnName =
"n.id_nasabah,n.nama_nasabah,o.bobotgap_luas_rumah,o.bobotgap_kondisi_rumah,o.b
obotgap_atap_rumah,o.bobotgap_dinding_rumah,o.bobotgap_lantai_rumah,o.bobotgap
_pendapatan_rt" Rows_bobotGAP = Model_bobotGAP.SelectData()
Model_bobotGAP.PopulateData(Rows_bobotGAP, LV_BobotGAP)
Model_Hasil.condition = Nothing
Model_Hasil.tableName = "t_hasil h INNER JOIN t_nasabah n ON h.id_nasabah =
n.id_nasabah" Model_Hasil.columnName =
"n.id_nasabah,n.nama_nasabah,h.vektor_s,h.vektor_v,h.kelayakan,h.rangking"
Rows_Hasil = Model_Hasil.SelectData()
Model_Hasil.PopulateData(Rows_Hasil, LV_Vektor)
Model_Hasil.condition = Nothing
Model_Hasil.tableName = "t_hasil h INNER JOIN t_nasabah n ON h.id_nasabah =
n.id_nasabah"
Model_Hasil.columnName = "n.id_nasabah,n.nama_nasabah,h.vektor_v,h.rangking"
Model_Hasil.condition = String.Format(" Where kelayakan= '{0}' ORDER BY
rangking", "Layak")
Rows_Hasil = Model_Hasil.SelectData()
Model_Hasil.PopulateData(Rows_Hasil, LV_Result)
Catch ex As Exception
MsgBox("Error Load Data " & ex.Message) End Try
End Sub
Private Sub ButtonReset() LoadData() Kosongkan() clearpmwp() End Sub
Function Validasi()
Dim invalid As Boolean = (bpLuas_Rumah.Text = "0" Or bpKondisi_Rumah.Text = "0"
Or bpAtap_Rumah.Text = "0" Or bpDinding_Rumah.Text = "0" Or
bpLantai_Rumah.Text = "0")
If invalid Then MsgBox("Mohon lengkapi data dahulu", MsgBoxStyle.Critical, "Validasi")
Return False End If Return True
End Function
Private Sub PMWP()
Dim MyStreamWriter As StreamWriter = Nothing
MyStreamWriter = New StreamWriter(".\\Tracing.txt")
Console.WriteLine("Proses 1")
MyStreamWriter.WriteLine("Proses 1")
Dim Model As New ActiveRecord()
Model.tableName = "t_nilai n INNER JOIN t_nasabah o ON o.id_nasabah =
n.id_nasabah" Model.columnName =
"o.id_nasabah,o.nama_nasabah,n.nilai_luas_rumah,n.nilai_kondisi_rumah,n.nilai_atap_
rumah,n.nilai_dinding_rumah,n.nilai_lantai_rumah,n.nilai_pendapatan_rt"
Dim DataMentah = Model.SelectData()
'Console.WriteLine("id_nasabah{0}nama_nasabah{0}nilai_luas_rumah{0}nilai_kondisi_
rumah{0}nilai_atap_rumah{0}nilai_dinding_rumah{0}nilai_lantai_rumah{0}nilai_penda
patan_rt{0}", vbTab)
For Each k In DataMentah
Console.WriteLine("{1}{0}{2}{0}{3}{0}{4}{0}{5}{0}{6}{0}{7}{0}{8}{0}", vbTab, k(0),
k(1), k(2), k(3), k(4), k(5), k(6), k(7), k(8))
MyStreamWriter.WriteLine("{1}{0}{2}{0}{3}{0}{4}{0}{5}{0}{6}{0}{7}{0}{8}{0}",
vbTab, k(0), k(1), k(2), k(3), k(4), k(5), k(6), k(7), k(8))
Next
Console.WriteLine() MyStreamWriter.WriteLine()
'Langkah 1: Menentukan bobot Preferensi
Dim W(6) As Double
W(1) = bpLuas_Rumah.Value W(2) = bpKondisi_Rumah.Value
W(3) = bpAtap_Rumah.Value W(4) = bpDinding_Rumah.Value
W(5) = bpLantai_Rumah.Value W(6) = bpPendapatan_RT.Value
Dim TotalW As Integer = W(1) + W(2) + W(3) + W(4) + W(5) + W(6)
Dim RataW(6) As Double
RataW(1) = bpLuas_Rumah.Value / TotalW
RataW(2) = bpKondisi_Rumah.Value / TotalW
RataW(3) = bpAtap_Rumah.Value / TotalW
RataW(4) = bpDinding_Rumah.Value / TotalW
RataW(5) = bpLantai_Rumah.Value / TotalW
RataW(6) = bpPendapatan_RT.Value / TotalW
Console.WriteLine("Bobot Preferensi:" & vbCrLf & "Luas Rumah = {0}" & vbCrLf &
"Kondisi_Rumah = {1}" & vbCrLf & "Atap Rumah = {2}" & vbCrLf & "Dinding Rumah
= {3}" & vbCrLf & "Lantai Rumah = {4}" & vbCrLf & "Pendapatan RT = {5}", W(1),
W(2), W(3), W(4), W(5), W(6))
Console.WriteLine()
MyStreamWriter.WriteLine("Bobot Preferensi:" & vbCrLf & "Luas Rumah = {0}" &
vbCrLf & "Kondisi_Rumah = {1}" & vbCrLf & "Atap Rumah = {2}" & vbCrLf &
"Dinding Rumah = {3}" & vbCrLf & "Lantai Rumah = {4}" & vbCrLf & "Pendapatan
RT = {5}", W(1), W(2), W(3), W(4), W(5), W(6))
MyStreamWriter.WriteLine()
Dim lv As ListViewItem = LV_Normalisasi.Items.Add(FormatNumber(RataW(1), 3,
TriState.True, TriState.True, TriState.True))
For ratas = 2 To 6
lv.SubItems.Add(FormatNumber(RataW(ratas), 3, TriState.True, TriState.True,
TriState.True))
Next
'Langkah 2: Matriks Nilai NASABAH GAP
Console.WriteLine("Proses 2") MyStreamWriter.WriteLine("Proses 2")
Model.tableName = "t_nilai" Model.columnName =
"id_nasabah,nilai_luas_rumah,nilai_kondisi_rumah,nilai_atap_rumah,nilai_dinding_ru
mah,nilai_lantai_rumah,nilai_pendapatan_rt"
Rows = Model.SelectData() Dim jumlah As Integer = Rows.Count
Dim aray(,) As String Dim intRowCount As Integer = jumlah
Dim intColumnCount As Integer = jumlah
ReDim aray(intColumnCount - 1, intRowCount - 1) Dim baris, kolom As Integer
baris = 0
For Each peserta In Rows
Dim id_nasabah = peserta(0)
For kolom = 0 To 5
aray(baris, kolom) = peserta(kolom + 1) - W(kolom + 1)
Next baris = baris + 1
Next
baris = 0
Dim kolomsgap = New String() {"gap_luas_rumah", "gap_kondisi_rumah",
"gap_atap_rumah", "gap_dinding_rumah", "gap_lantai_rumah", "gap_pendapatan_rt"}
For Each k In DataMentah
Dim id_nasabah = k(0) Dim nama_nasabah = k(1)
Console.Write("NASABAH {0} {1}", id_nasabah, nama_nasabah)
For kolom = 0 To 5
Model_GAP.tableName = "t_gap"
Model_GAP.columnName = kolomsgap(kolom)
Model_GAP.data = New Object() {aray(baris, kolom).Replace(",", ".")}
Model_GAP.condition = String.Format("WHERE id_nasabah = '{0}'", k(0))
Model_GAP.Edit() Console.Write(" {0} ", aray(baris, kolom))
Dim y As Integer = aray(baris, kolom)
Next baris = baris + 1 Console.WriteLine()
Next Console.WriteLine()
Model_GAP.tableName = "t_gap o INNER JOIN t_nasabah n ON o.id_nasabah =
n.id_nasabah" Model_GAP.columnName =
"n.id_nasabah,n.nama_nasabah,o.gap_luas_rumah,o.gap_kondisi_rumah,o.gap_atap_ru
mah,o.gap_dinding_rumah,o.gap_lantai_rumah,o.gap_pendapatan_rt"
Model_GAP.condition = Nothing Rows_GAP = Model_GAP.SelectData()
Model_GAP.PopulateData(Rows_GAP, LV_GAP)
baris = 0
For Each k In DataMentah
Dim id_nasabah = k(0) Dim nama_nasabah = k(1)
Console.Write("NASABAH {0} {1} {2}", id_nasabah, nama_nasabah, vbTab)
MyStreamWriter.Write("NASABAH {0} {1} {2}", id_nasabah, nama_nasabah, vbTab)
For kolom = 0 To 5
Console.Write(" {0} ", aray(baris, kolom))
MyStreamWriter.Write(" {0} ", aray(baris, kolom))
Dim y As Integer = aray(baris, kolom)
Next baris = baris + 1 Console.WriteLine() MyStreamWriter.WriteLine()
Next Console.WriteLine() MyStreamWriter.WriteLine() baris = 0
For Each peserta In Rows
Dim id_nasabah = peserta(0) Dim banyakcf As Integer = 0
Dim banyaksf As Integer = 0 Dim tempcf As Double = 0
Dim tempsf As Double = 0 For kolom = 0 To 5
If (aray(baris, kolom) = 0) Then aray(baris, kolom) = 5
ElseIf (aray(baris, kolom) = 1) Then aray(baris, kolom) = 4.5
ElseIf (aray(baris, kolom) = -1) Then aray(baris, kolom) = 4
ElseIf (aray(baris, kolom) = 2) Then aray(baris, kolom) = 3.5
ElseIf (aray(baris, kolom) = -2) Then aray(baris, kolom) = 3
ElseIf (aray(baris, kolom) = 3) Then aray(baris, kolom) = 2.5
ElseIf (aray(baris, kolom) = -3) Then aray(baris, kolom) = 2
ElseIf (aray(baris, kolom) = 4) Then aray(baris, kolom) = 1.5
ElseIf (aray(baris, kolom) = -4) Then aray(baris, kolom) = 1
End If
Next baris = baris + 1
Next Console.WriteLine("Proses 3") MyStreamWriter.WriteLine("Proses 3")
baris = 0
Dim koloms = New String() {"bobotgap_luas_rumah", "bobotgap_kondisi_rumah",
"bobotgap_atap_rumah", "bobotgap_dinding_rumah", "bobotgap_lantai_rumah",
"bobotgap_pendapatan_rt"}
For Each k In DataMentah
Dim id_nasabah = k(0) Dim nama_nasabah = k(1)
Console.Write("NASABAH {0} {1} {2} {3}", id_nasabah, nama_nasabah, vbTab,
vbTab)
MyStreamWriter.Write("NASABAH {0} {1} {2} {3}", id_nasabah, nama_nasabah,
vbTab, vbTab)
For kolom = 0 To 5
Model_bobotGAP.tableName = "t_bobotgap"
Model_bobotGAP.columnName = koloms(kolom)
Model_bobotGAP.data = New Object() {aray(baris, kolom).Replace(",", ".")}
Model_bobotGAP.condition = String.Format("WHERE id_nasabah = '{0}'", k(0))
Model_bobotGAP.Edit() Console.Write(" {0} {1} ", aray(baris, kolom), vbTab)
MyStreamWriter.Write(" {0} {1} ", aray(baris, kolom), vbTab)
Dim y As Integer = aray(baris, kolom)
Next baris = baris + 1
Console.WriteLine()
MyStreamWriter.WriteLine()
Next Console.WriteLine() MyStreamWriter.WriteLine()
Dim total_vektor_s As Double = 0 Console.WriteLine("Normalisasi Bobot : ")
MyStreamWriter.WriteLine("Normalisasi Bobot : ")
Console.WriteLine("Bobot Kepentingan:" & vbCrLf & "Luas Rumah = {0}" & vbCrLf &
"Kondisi_Rumah = {1}" & vbCrLf & "Atap Rumah = {2}" & vbCrLf & "Dinding Rumah
= {3}" & vbCrLf & "Lantai Rumah = {4}" & vbCrLf & "Pendapatan RT = {5}",
RataW(1), RataW(2), RataW(3), RataW(4), RataW(5), RataW(6))
Console.WriteLine()
MyStreamWriter.WriteLine("Bobot Kepentingan:" & vbCrLf & "Luas Rumah = {0}" &
vbCrLf & "Kondisi_Rumah = {1}" & vbCrLf & "Atap Rumah = {2}" & vbCrLf &
"Dinding Rumah = {3}" & vbCrLf & "Lantai Rumah = {4}" & vbCrLf & "Pendapatan
RT = {5}", RataW(1), RataW(2), RataW(3), RataW(4), RataW(5), RataW(6))
MyStreamWriter.WriteLine()
Model_bobotGAP.tableName = "t_bobotgap bg INNER JOIN t_nasabah n ON
bg.id_nasabah = n.id_nasabah" Model_bobotGAP.columnName =
"bg.id_nasabah,n.nama_nasabah,bg.bobotgap_luas_rumah,bg.bobotgap_kondisi_rumah,
bg.bobotgap_atap_rumah,bg.bobotgap_dinding_rumah,bg.bobotgap_lantai_rumah,bg.bo
botgap_pendapatan_rt" Model_bobotGAP.condition = Nothing
Rows_bobotGAP = Model_bobotGAP.SelectData()
Model_bobotGAP.PopulateData(Rows_bobotGAP, LV_BobotGAP)
Dim Model2 As New ActiveRecord()
Model2.tableName = "t_bobotgap" Model2.columnName =
"id_nasabah,bobotgap_luas_rumah,bobotgap_kondisi_rumah,bobotgap_atap_rumah,bob
otgap_dinding_rumah,bobotgap_lantai_rumah,bobotgap_pendapatan_rt"
Datarows = Model2.SelectDatarows()
Dim kelayakan As String
For Each datanasabah In Datarows
Dim id_nasabah = datanasabah(0)
Dim vektor_s As Double = ((datanasabah(1) ^ RataW(1)) * (datanasabah(2) ^
RataW(2)) * (datanasabah(3) ^ RataW(3)) * (datanasabah(4) ^ RataW(4)) *
(datanasabah(5) ^ RataW(5)) * (datanasabah(6) ^ RataW(6)))
Console.WriteLine("NASABAH {0} {1} {2} {3} {4} {5} {6} {7} {8} {9}", vbTab, vbTab,
id_nasabah, datanasabah(1), datanasabah(2), datanasabah(3), datanasabah(4),
datanasabah(5), datanasabah(6), vektor_s)
MyStreamWriter.WriteLine("NASABAH {0} {1} {2} {3} {4} {5} {6} {7} {8} {9}",
vbTab, vbTab, id_nasabah, datanasabah(1), datanasabah(2), datanasabah(3),
datanasabah(4), datanasabah(5), datanasabah(6), vektor_s)
Model2.tableName = "t_hasil" Model2.columnName = "id_nasabah,vektor_s"
Model2.data = New Object() {id_nasabah, vektor_s}
Model2.condition = String.Format("WHERE id_nasabah = '{0}'", datanasabah(0))
Model2.Edit() total_vektor_s = total_vektor_s + vektor_s
Next Console.WriteLine() MyStreamWriter.WriteLine()
Dim Model3 As New ActiveRecord()
Model3.tableName = "t_hasil"
Model3.columnName = "id_nasabah,vektor_s,kelayakan"
Datarows = Model3.SelectDatarows()
For Each datanasabah In Datarows
Dim id_nasabah = datanasabah(0)
Dim vektor_v As Double = ((datanasabah(1) / total_vektor_s))
If (vektor_v >= 0.08) Then kelayakan = "Layak" Else
kelayakan = "Tak Layak" End If
Console.WriteLine("NASABAH {0} {1} {2} {3} {4}", vbTab, vbTab, id_nasabah,
vektor_v, kelayakan)
MyStreamWriter.WriteLine("NASABAH {0} {1} {2} {3} {4}", vbTab, vbTab,
id_nasabah, vektor_v, kelayakan)
Model3.tableName = "t_hasil"
Model3.columnName = "id_nasabah,vektor_v,kelayakan"
Model3.data = New Object() {id_nasabah, vektor_v, kelayakan}
Model3.condition = String.Format("WHERE id_nasabah = '{0}'", datanasabah(0))
Model3.Edit()
Next Console.WriteLine() MyStreamWriter.WriteLine() LoadData()
Dim rangking As Integer = 0 Dim Model_Hasil As New ActiveRecord()
Model_Hasil.tableName = "t_hasil"
Model_Hasil.columnName = "id_nasabah,rangking"
Model_Hasil.condition = String.Format(" WHERE kelayakan='{0}' ORDER BY vektor_v
DESC", "Layak")
Datarows = Model_Hasil.SelectData()
For Each datanasabah In Datarows
Model3.tableName = "t_hasil" Model3.columnName = "rangking"
rangking = rangking + 1 Model3.data = New Object() {rangking}
Model3.condition = String.Format("WHERE id_nasabah = '{0}'", datanasabah(0))
Model3.Edit()
Next MyStreamWriter.Close()
End Sub
Private Sub FormWP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load ButtonReset()
End Sub
Private Sub Proses_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Proses.Click If Validasi() Then PMWP() LoadData()
End If FormKelayakan.Show()
End Sub
Sub clearpmwp()
Model_GAP.tableName = "t_gap"
Model_GAP.columnName = "id_nasabah,gap_luas_rumah, gap_kondisi_rumah,
gap_atap_rumah, gap_dinding_rumah, gap_lantai_rumah, gap_pendapatan_rt"
Model_BobotGAP.tableName = "t_bobotgap"
Model_BobotGAP.columnName = "id_nasabah,bobotgap_luas_rumah,
bobotgap_kondisi_rumah, bobotgap_atap_rumah, bobotgap_dinding_rumah,
bobotgap_lantai_rumah, bobotgap_pendapatan_rt"
Model_Hasil.tableName = "t_hasil"
Model_Hasil.columnName = "id_nasabah, vektor_s, vektor_v, kelayakan, rangking"
Dim DataMentah = Model_Nilai.SelectData()
Console.WriteLine() Dim i = 0
For Each k In DataMentah
Dim id_nasabah = k(0) Dim nama_nasabah = k(1)
Model_GAP.data = New Object() {id_nasabah, 0, 0, 0, 0, 0, 0}
Model_GAP.condition = String.Format("WHERE id_nasabah = '{0}'", k(0))
Model_GAP.Edit()
Model_BobotGAP.data = New Object() {id_nasabah, 0, 0, 0, 0, 0, 0}
Model_BobotGAP.condition = String.Format("WHERE id_nasabah = '{0}'", k(0))
Model_BobotGAP.Edit()
Model_Hasil.data = New Object() {id_nasabah, 0, 0, "-", "-"}
Model_Hasil.condition = String.Format("WHERE id_nasabah = '{0}'", k(0))
Model_Hasil.Edit()
i=i+1
Next LV_Normalisasi.Items.Clear()
End Sub
Private Sub Reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Reset.Click ButtonReset() End Sub
Private Sub View_Result_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles View_Result.Click
FResult.MdiParent = FormUtama FResult.Show()
FResult.rtb_trace.LoadFile(".\\Tracing.txt", RichTextBoxStreamType.PlainText)
FormKelayakan.MdiParent = FormUtama FormKelayakan.Show()
End Sub
End Class
8. Form Kelayakan
Public Class FormKelayakan
Dim Rows, Rows_Hasil, Rows_Nilai, Rows_GAP, Rows_bobotGAP As ArrayList
Dim Data,Datarows As ArrayList
Dim Selected As Integer
Dim Model, Model_Hasil, Model_Nilai, Model_GAP, Model_bobotGAP As New
ActiveRecord()
Sub LoadData()
Try Model_Hasil.condition = Nothing
Model_Hasil.tableName = "t_hasil h INNER JOIN t_nasabah n ON h.id_nasabah =
n.id_nasabah" Model_Hasil.columnName =
"n.id_nasabah,n.nama_nasabah,h.vektor_s,h.vektor_v,h.kelayakan,h.rangking"
Rows_Hasil = Model_Hasil.SelectData()
Model_Hasil.PopulateData(Rows_Hasil, LV_Vektor)
Model_Hasil.condition = Nothing Model_Hasil.tableName = "t_hasil h INNER
JOIN t_nasabah n ON h.id_nasabah = n.id_nasabah"
Model_Hasil.columnName = "n.id_nasabah,n.nama_nasabah,h.vektor_v,h.rangking"
Model_Hasil.condition = String.Format(" Where kelayakan= '{0}' ORDER BY
rangking", "Layak") Rows_Hasil = Model_Hasil.SelectData()
Model_Hasil.PopulateData(Rows_Hasil, LV_Result)
Catch ex As Exception
MsgBox("Error Load Data " & ex.Message)
End Try
End Sub
Private Sub ButtonReset() LoadData() End Sub
Private Sub FormWP_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load ButtonReset()
End Sub
Private Sub Reset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
ButtonReset()
End Sub
Private Sub View_Result_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
FResult.MdiParent = FormUtama FResult.Show()
FResult.rtb_trace.LoadFile(".\\Tracing.txt", RichTextBoxStreamType.PlainText)
End Sub
End Class
9. Form Result
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles OK.Click
Me.Dispose()
End Sub
10. Form Laporan
Public Class FormLaporan
Private Sub FormLaporan_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.view_pnmTableAdapter.Fill(Me.db_pnmDataSet.view_pnm)
Me.ReportViewer2.RefreshReport() End Sub
End Class
11. Form Laporan Nasabah
Public Class FL_Nasabah
Private Sub Lap_Nasabah_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.view_pnmTableAdapter.Fill(Me.db_pnmDataSet.view_pnm)
Me.ReportViewer1.RefreshReport()
End Sub
End Class

Anda mungkin juga menyukai