Koneksi Java ke MySQL Implementasi Manajemen Dialog

`id_kondisi` REFERENCES `kondisi_ekonomi` `id_kondisi`, CONSTRAINT `FK_penilaian_kondisi2` FOREIGN KEY `id_usulan` REFERENCES `usulan_kredit` `id_usulan` ENGINE=InnoDB DEFAULT CHARSET=latin1; Hasil akhir dari database sistembprx untuk sistem ini dapat dilihat pada gambar berikut: Gambar 4.12 Informasi Tabel Database sistembprx

4.2.2 Koneksi Java ke MySQL

Untuk mengoneksikan Java ke MySQL ini digunakan konektor pada Netbean yaitu mysql-connector-java-5.1.10-bin dan menggunakan listing program dalam kelas Koneksi sebagai berikut: public class Koneksi { private static String jdbcURL = jdbc:mysql:localhost:3306sistembprx; private static String user = SKRIPSI; private static String password = skripsi; private static Connection conn = null; public static Connection Koneksi throws ClassNotFoundException, SQLException { try { Class.forNameorg.gjt.mm.mysql.Driver; conn = Connection DriverManager.getConnectionjdbcURL, user, password; System.out.printlnkoneksi berhasil; } catch Exception ex { System.out.printlnmessage: + ex.getMessage; } return conn; } public static void mainString[] args throws ClassNotFoundException, SQLException { Koneksi; } } Perintah untuk melakukan koneksi ke server ditunjukkan pada tulisan yang dicetak tebal. Kelas Koneksi akan selalu dipanggil oleh setiap kelas, hal ini dikarenakan setiap kelas akan selalu mengakses data base sistembprx.

4.2.3 Implementasi Manajemen Dialog

Setelah proses pembuatan data base dilakukan dan koneksi pada data base telah berhasil, maka langkah selanjutnya adalah membuat interface yang mengacu pada perancangan manajemen dialog pada sub bab sebelumnya. Interface inilah yang akan menjadi tampilan sistem yang akan diakses oleh user. Berikut hasil implementasi manajemen dialog system.

4.2.3.1 Halaman Utama Sistem

Halaman Utama Sistem muncul pertama kali saat sistem dijalankan. Pada halaman ini terdapat empat menu utama yang dapat dipilih user yaitu menu Data Pemohon, menu Bobot dan Kriteria, menu Simulasi dan Penentuan Pemberian Kredit dan menu Laporan Penerimaan Kredit, berikut tampilannya: Gambar 4.13 Halaman Utama Sistem Menu Data Pemohon berisi panel halaman pengisian data identitas dan usulan kredit pemohon, selain itu terdapat panel pengelolaan data angsuran kredit milik pemohon. Menu Bobot dan Kriteria berisi halaman pengelolaan kriteria dan bobot yang akan digunakan pada simulasi kredit. Untuk menu Simulasi Penentuan Pemberian Kredit akan menampilkan halaman simulasi dengan daftar pemohon serta perhitungan hasil survey dan kriteria bobot kredit yang pada akhirnya menghasilkan total skor dan keputusan penerimaan kredit. Pada menu Laporan Penerimaan Kredit akan merujuk pada file jasper report yang berisi dokumentasi laporan sesuai format yang dapat dicetak dalam bentuk hard copy.

4.2.3.2 Halaman Data Pemohon

Halaman Data Pemohon berisi daftar pemohon yang telah terdaftar dalam sistem, formulir pengisian data pemohon dan angsuran kredit pemohon. Berikut tampilannya: Gambar 4.14 Halaman Data Pemohon

4.2.3.2.1 Pengelolaan Identitas Pemohon

Pengelolaan identitas pemohon tersedia fitur yang dapat digunakan oleh manajer kredit untuk menyimpan, mengubah dan menghapus data pemohon. Berikut tampilan dan penjelasannya:

4.2.3.2.1.1 Formulir Pengisian Data Pemohon

Formulir Pengisian Data Pemohon digunakan untuk mengisi data identitas pemohon dan usulan kredit. Setiap kali data pemohon yang disimpan, maka akan ditampilkan ke dalam tabel daftar pemohon yang berada di bagian paling atas dari halaman ini. Gambar 4.15 Formulir Data Pemohon Setiap kali merekam data usulan kredit, ketika tombol simpan ditekan maka akan program akan menjalankan stored procedure simpanPenilaian yang berisi perintah mengambil id_usulan. Hal ini berkaitan dengan nilai survey setiap pemohon yang juga akan disimpan dalam masing-masing tabel penilaian_karakter, tabel penilaian_jaminan, tabel penilaian_kapasitas, tabel penilaian_modal dan tabel penilaian_kondisi. Berikut perintah dalam stored perocedure simpanPenilaian. DELIMITER USE `sistembprx` DROP PROCEDURE IF EXISTS `simpanpenilaian` CREATE DEFINER=`SKRIPSI``` PROCEDURE `simpanpenilaian` IN p_usulan VARCHAR10 BEGIN DECLARE v_usul_kar VARCHAR10; DECLARE v_usul_jam VARCHAR10; DECLARE v_usul_kap VARCHAR10; DECLARE v_usul_mod VARCHAR10; DECLARE v_usul_kon VARCHAR10; DECLARE v_bobot_kar DOUBLE; DECLARE v_bobot_jam DOUBLE; DECLARE v_bobot_kap DOUBLE; DECLARE v_bobot_mod DOUBLE; DECLARE v_bobot_kon DOUBLE; DECLARE v_count INTEGER; DECLARE i INTEGER; DECLARE v_jumlah_kar INTEGER; DECLARE v_jumlah_jam INTEGER; DECLARE v_jumlah_kap INTEGER; DECLARE v_jumlah_mod INTEGER; DECLARE v_jumlah_kon INTEGER; DECLARE v_temp_kar VARCHAR10; DECLARE v_temp_jam VARCHAR10; DECLARE v_temp_kap VARCHAR10; DECLARE v_temp_mod VARCHAR10; DECLARE v_temp_kon VARCHAR10; DECLARE v_nomor_kar VARCHAR10; DECLARE v_nomor_jam VARCHAR10; DECLARE v_nomor_kap VARCHAR10; DECLARE v_nomor_mod VARCHAR10; DECLARE v_nomor_kon VARCHAR10; SELECT a.id_usulan,b.id_usulan,c.id_usulan,d.id_usulan,e.id_us ulan,a.bobot_karakter, b.bobot_jaminan, c.bobot_kapasitas,d.bobot_modal, e.bobot_kondisi INTO v_usul_kar, v_usul_jam, v_usul_kap,v_usul_mod, v_usul_kon, v_bobot_kar, v_bobot_jam, v_bobot_kap, v_bobot_mod, v_bobot_kon FROM penilaian_karakter a, penilaian_jaminan b, penilaian_kapasitas c, penilaian_modal d, penilaian_kondisi e WHERE a.id_penilaianKarakter= SELECT MAXid_penilaianKarakter FROM penilaian_karakter AND b.id_penilaianJaminan= SELECT MAXid_penilaianJaminan FROM penilaian_jaminanAND c.id_penilaianKapasitas= SELECT MAXid_penilaianKapasitas FROM penilaian_kapasitasAND d.id_penilaianModal= SELECT MAXid_penilaianModal FROM penilaian_modalAND e.id_penilaianKondisi= SELECT MAXid_penilaianKondisi FROM penilaian_kondisi ; SET v_count =0; IF v_usul_kar IS NOT NULL AND v_usul_jam IS NOT NULL AND v_usul_kap IS NOT NULL AND v_usul_mod IS NOT NULL AND v_usul_kon IS NOT NULL THEN IF v_usul_kar = - AND v_usul_jam = - AND v_usul_kap = - AND v_usul_mod = - AND v_usul_kon = - THEN UPDATE penilaian_karakter SET id_usulan = p_usulan WHERE id_usulan=-; UPDATE penilaian_jaminan SET id_usulan = p_usulan WHERE id_usulan=-; UPDATE penilaian_kapasitas SET id_usulan = p_usulan WHERE id_usulan=-; UPDATE penilaian_modal SET id_usulan = p_usulan WHERE id_usulan=-; UPDATE penilaian_kondisi SET id_usulan = p_usulan WHERE id_usulan=-; ELSE SET i =1; WHILE i=4 DO SET v_count =v_count+1; SET v_temp_kar = SELECT SUBSTRMAXid_penilaianKarakter,6+1 FROM penilaian_karakter; SET v_temp_jam = SELECT SUBSTRMAXid_penilaianJaminan,6+1 FROM penilaian_jaminan; SET v_temp_kap = SELECT SUBSTRMAXid_penilaianKapasitas,6+1 FROM penilaian_kapasitas; SET v_temp_mod = SELECT SUBSTRMAXid_penilaianModal,6+1 FROM penilaian_modal; SET v_temp_kon = SELECT SUBSTRMAXid_penilaianKondisi,6+1 FROM penilaian_kondisi; SET v_jumlah_kar = CHAR_LENGTHv_temp_kar; SET v_jumlah_jam = CHAR_LENGTHv_temp_jam; SET v_jumlah_kap = CHAR_LENGTHv_temp_kap; SET v_jumlah_mod = CHAR_LENGTHv_temp_mod; SET v_jumlah_kon = CHAR_LENGTHv_temp_kon; IF v_jumlah_kar = 1 AND v_jumlah_jam = 1 AND v_jumlah_kap = 1 AND v_jumlah_mod = 1 AND v_jumlah_kon = 1 THEN SET v_nomor_kar = CONCAT0000,v_temp_kar; SET v_nomor_jam= CONCAT0000,v_temp_jam; SET v_nomor_kap = CONCAT0000,v_temp_kap; SET v_nomor_mod= CONCAT0000,v_temp_mod; SET v_nomor_kon = CONCAT0000,v_temp_kon; ELSEIF v_jumlah_kar = 2 AND v_jumlah_jam = 2 AND v_jumlah_kap = 2 AND v_jumlah_mod = 2 AND v_jumlah_kon = 2 THEN SET v_nomor_kar = CONCAT000,v_temp_kar; SET v_nomor_jam= CONCAT000,v_temp_jam; SET v_nomor_kap = CONCAT000,v_temp_kap; SET v_nomor_mod= CONCAT000,v_temp_mod; SET v_nomor_kon = CONCAT000,v_temp_kon; ELSEIF v_jumlah_kar = 3 AND v_jumlah_jam = 3 AND v_jumlah_kap = 3 AND v_jumlah_mod = 3 AND v_jumlah_kon = 3 THEN SET v_nomor_kar = CONCAT00,v_temp_kar; SET v_nomor_jam= CONCAT00,v_temp_jam; SET v_nomor_kap = CONCAT00,v_temp_kap; SET v_nomor_mod= CONCAT00,v_temp_mod; SET v_nomor_kon = CONCAT00,v_temp_kon; ELSEIF v_jumlah_kar = 4 AND v_jumlah_jam = 4 AND v_jumlah_kap = 4 AND v_jumlah_mod = 4 AND v_jumlah_kon = 4 THEN SET v_nomor_kar = CONCAT0,v_temp_kar; SET v_nomor_jam= CONCAT0,v_temp_jam; SET v_nomor_kap = CONCAT0,v_temp_kap; SET v_nomor_mod= CONCAT0,v_temp_mod; SET v_nomor_kon = CONCAT0,v_temp_kon; ELSE SET v_nomor_kar = v_jumlah_kar; SET v_nomor_jam = v_jumlah_jam; SET v_nomor_kap = v_jumlah_kap; SET v_nomor_mod = v_jumlah_mod; SET v_nomor_kon = v_jumlah_kon; END IF; INSERT INTO penilaian_karakter VALUESCONCATPKAR- ,v_nomor_kar, v_bobot_kar, 0, p_usulan, CONCATKTR- ,CASTv_count AS CHAR5; INSERT INTO penilaian_jaminan VALUESCONCATPJAM- ,v_nomor_jam, v_bobot_jam, 0, p_usulan, CONCATJAM- ,CASTv_count AS CHAR5; INSERT INTO penilaian_kapasitas VALUESCONCATPKAP- ,v_nomor_kap, v_bobot_kap, 0, p_usulan, CONCATKAP- ,CASTv_count AS CHAR5; INSERT INTO penilaian_modal VALUESCONCATPMOD- ,v_nomor_mod, v_bobot_mod, 0, p_usulan, CONCATMOD- ,CASTv_count AS CHAR5; INSERT INTO penilaian_kondisi VALUESCONCATPKON- ,v_nomor_kon, v_bobot_kon, 0, p_usulan, CONCATKON- ,CASTv_count AS CHAR5; SET i=i+1; END WHILE; END IF; END IF; END DELIMITER ;

4.2.3.2.1.2 Ubah Data Pemohon

Fitur ubah dapat digunakan oleh manajer kredit untuk mengubah data nasabah jika terjadi kesalahan pengisian. Untuk mengubah data maka langkah yang harus dilakukan adalah memilih nasabah dari tabel daftar pemohon. Gambar 4.16 Ubah Data Pemohon

4.2.3.2.1.3 Hapus Data Pemohon

Fitur hapus ini dapat digunakan oleh manajer kredit untuk menghapus data pemohon. Untuk menghapus data maka langkah yang harus dilakukan juga dengan memilih nasabah dari tabel daftar pemohon, lalu tekan tombol hapus. Gambar 4.17 Hapus Data Pemohon

4.2.3.2.2 Pengelolaan Angsuran Pemohon

Halaman Pengelolaan Angsuran Pemohon berguna untuk merekam track record angsuran kredit pemohon sebagai nasabah lama. Track record ini dibutuhkan sebagai salah satu penilaian keputusan dalam simulasi kredit. Pada halaman ini menampilkan daftar pemohon, jika nasabah dipilih maka manajer kredit dapat merekam dan melihat detil angsuran pemohon. Gambar 4.18 Halaman Angsuran Kredit

4.2.3.2.2.1 Formulir Pengisian Data Angsuran Kredit

Gambar 4.19 Formulir Pengisian Data Angsuran Kredit Gambar di atas menampilkan formulir pengisian data angsuran kredit. Untuk setiap data yang terekam maka akan langsung ditampilkan dalam tabel Detil Angsuran seperti berikut ini: Gambar 4.20 Detil Angsuran Kredit

4.2.3.3 Halaman Kriteria dan Bobot

Halaman ini memuat formulir untuk menentukan nama sub kriteria dan bobot sub kriteria untuk masing-masing kriteria 5C. Setelah nama sub kriteria dan bobot sub kriteria ditentukan, manajer kredit dapat menentukan bobot utama kriteria 5C untuk perhitungan pada menu simulasi. Gambar 4.21 Halaman Kriteria dan Bobot

4.2.3.3.1 Pengisian Bobot Kriteria dan Sub Kriteria

Untuk menentukan nama sub kriteria manajer kredit dapat mengubah sub kriteria pada field yang disediakan dan untuk bobotnya dapat dipilih pada RadioButton yang telah disediakan. Untuk pengisian pertama kali maka digunakan tombol simpan, untuk selanjutnya digunakan tombol ubah. Gambar 4.22 Form Sub Kriteria dan Bobot Sub Kriteria Karakter Gambar 4.23 Form Sub Kriteria dan Bobot Sub Kriteria Jaminan Gambar 4.24 Form Sub Kriteria dan Bobot Sub Kriteria Kapasitas Gambar 4.25 Form Sub Kriteria dan Bobot Sub Kriteria Modal Gambar 4.26 Form Sub Kriteria dan Bobot Sub Kriteria Kondisi Ekonomi

4.2.3.3.2 Pengisian Bobot Kriteria Utama 5C

Penentuan bobot kriteria utama 5C dilakukan dengan cara memilih nilai yang telah disediakan dalam RadioButton. Bobot inilah yang menentukan kriteria yang memiliki prioritas teringgi untuk penentuan pemberian kredit. Dengan demikian manajer kredit dapat melakukan perubahan bobot kriteria yang menjadi prioritas sewaktu-waktu tergantung pada kondisi tertentu. Gambar 4.27 Form Kriteria dan Bobot Kriteria 5C

4.2.3.4 Halaman Simulasi Penerimaan Kredit

Pada halaman simulasi ini yang pertama kali ditampilkan adalah daftar pemohon yang dapat digunakan untuk memilih nasabah yang akan digunakan untuk simulasi. Gambar 4.28 Daftar Pemohon Halaman Simulasi Untuk mengambil idPemohon yang dipilih, kemudian akan dimasukkan ke dalam masing-masing baris tabel sub kriteria, berikut penggalan perintah programnya: for rownumber = 0; rownumber karakterTabel.getRowCount; rownumber++ { row = rownumber; if karakterTabel.getValueAtrownumber, 0 == null { karakterTabel.setValueAtsimulasiTabel.getValueAtsimulasiTab el.getSelectedRow, 0, row, 0; break; } else ifsimulasiTabel.getValueAtsimulasiTabel.getSelectedRow, 0==karakterTabel.getValueAtrownumber, 0{ JOptionPane.showMessageDialognull, Nasabah telah dipilih, silahkan pilih nasabah lain; } } if rownumber == karakterTabel.getRowCount { DefaultTableModel model = DefaultTableModel karakterTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } jaminan tabel for rownumber = 0; rownumber JaminanTabel.getRowCount; rownumber++ { row = rownumber; if JaminanTabel.getValueAtrownumber, 0 == null { JaminanTabel.setValueAtsimulasiTabel.getValueAtsimulasiTabe l.getSelectedRow, 0, row, 0; break; } } if rownumber == JaminanTabel.getRowCount { DefaultTableModel model = DefaultTableModel JaminanTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } kapasitas tabel for rownumber = 0; rownumber kapasitasTabel.getRowCount; rownumber++ { row = rownumber; if kapasitasTabel.getValueAtrownumber, 0 == null { kapasitasTabel.setValueAtsimulasiTabel.getValueAtsimulasiTa bel.getSelectedRow, 0, row, 0; break; } } if rownumber == kapasitasTabel.getRowCount { DefaultTableModel model = DefaultTableModel kapasitasTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } modal tabel for rownumber = 0; rownumber modalTabel.getRowCount; rownumber++ { row = rownumber; if modalTabel.getValueAtrownumber, 0 == null { modalTabel.setValueAtsimulasiTabel.getValueAtsimulasiTabel. getSelectedRow, 0, row, 0; break; } } if rownumber == modalTabel.getRowCount { DefaultTableModel model = DefaultTableModel modalTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } kondisi tabel for rownumber = 0; rownumber kondisiTabel.getRowCount; rownumber++ { row = rownumber; if kondisiTabel.getValueAtrownumber, 0 == null { kondisiTabel.setValueAtsimulasiTabel.getValueAtsimulasiTabe l.getSelectedRow, 0, row, 0; break; } } if rownumber == kondisiTabel.getRowCount { DefaultTableModel model = DefaultTableModel kondisiTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } kriteria tabel for rownumber = 0; rownumber kriteriaTabel.getRowCount; rownumber++ { row = rownumber; if kriteriaTabel.getValueAtrownumber, 0 == null { kriteriaTabel.setValueAtsimulasiTabel.getValueAtsimulasiTab el.getSelectedRow, 0, row, 0; break; } } if rownumber == kriteriaTabel.getRowCount { DefaultTableModel model = DefaultTableModel kriteriaTabel.getModel; model.addRownew Object[]{simulasiTabel.getValueAtsimulasiTabel.getSelectedRo w, 0, null, null, null, null, null}; } Perintah program tersebut akan menampilkan idPemohon di setiap tabel kriteria 5C, sehingga memudahkan manajer kredit dalam melakukan simulasi dengan memperkecil kemungkinan terjadinya ketidaksesuaian pemilihan idPemohon. Gambar 4.29 Form Simulasi Kredit

4.2.3.4.1 Normalisasi dan Perhitungan Total Sub Kriteria Hasil Survey

Dalam perhitungan SAW langkah-langkah yang dilakukan setelah menentukan kriteria dan bobot kriteria adalah membuat matriks keputusan. Matriks ini dibuat berdasarkan kriteria Ci, kemudian matriks dinormalisasikan berdasarkan persamaan yang disesuaikan dengan jenis atribut atribut keuntungan ataupun atribut biaya sehingga diperoleh matriks ternormalisasi R. Berikut perhitungannya:  Normalisasi dan Perhitungan Total Sub Kriteria Karakter Dalam perhitungan ini manajer kredit harus memasukkan nilai survey terlebih dahulu untuk setiap pemohon secara manual. Di atas tabel kriteria karakter terdapat tabel yang menampilkan nama dan bobot sub kriteria untuk mengingatkan manajer kredit akan bobot yang menjadi patokan. Gambar 4.30 Tabel Pengisian Hasil Survey Karakter Setelah nilai survey dimasukkan maka manajer kredit hanya perlu menekan tombol Proses Perhitungan SAW. Berikut hasilnya: Gambar 4.31 Hasil Total Skor Karakter Hasil total skor karakter di atas diperoleh dari perkalian nilai normalisasi dengan bobot sub kriteria karakter. Berikut penggalan programnya: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double total = 0; mencari nilai max for int i = 0; i karakterTabel.getRowCount; i++ { if max1 = Double.parseDoublekarakterTabel.getValueAti, 1.toString { max1 = Double.parseDoublekarakterTabel.getValueAti, 1.toString; } if max2 = Double.parseDoublekarakterTabel.getValueAti, 2.toString { max2 = Double.parseDoublekarakterTabel.getValueAti, 2.toString; } if max3 = Double.parseDoublekarakterTabel.getValueAti, 3.toString { max3 = Double.parseDoublekarakterTabel.getValueAti, 3.toString; } if max4 = Double.parseDoublekarakterTabel.getValueAti, 4.toString { max4 = Double.parseDoublekarakterTabel.getValueAti, 4.toString; } } Berikut penggalan program untuk perhitungan total skor. total dan normalisasi for int i = 0; i karakterTabel.getRowCount; i++ { total = Double.parseDoublekarakterTabel.getValueAti, 1.toString max1 Double.parseDoublebobotSubKarakter1.getText + Double.parseDoublekarakterTabel.getValueAti, 2.toString max2 Double.parseDoublebobotSubKarakter2.getText + Double.parseDoublekarakterTabel.getValueAti, 3.toString max3 Double.parseDoublebobotSubKarakter3.getText + Double.parseDoublekarakterTabel.getValueAti, 4.toString max4 Double.parseDoublebobotSubKarakter4.getText; karakterTabel.setValueAttotal, i, 5; kriteriaTabel.setValueAttotal, i, 1; }  Normalisasi dan Perhitungan Total Sub Kriteria Jaminan Gambar 4.32 Tabel Pengisian Hasil Survey Jaminan Setelah nilai survey dimasukkan maka manajer kredit hanya perlu menekan tombol Proses Perhitungan SAW. Berikut hasilnya: Gambar 4.33 Hasil Total Skor Jaminan Hasil total skor jaminan di atas diperoleh dari perkalian nilai normalisasi dengan bobot sub kriteria jaminan. Berikut penggalan programnya: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double total = 0; mencari nilai max for int i = 0; i JaminanTabel.getRowCount; i++ { if max1 = Double.parseDoubleJaminanTabel.getValueAti, 1.toString { max1 = Double.parseDoubleJaminanTabel.getValueAti, 1.toString; } if max2 = Double.parseDoubleJaminanTabel.getValueAti, 2.toString { max2 = Double.parseDoubleJaminanTabel.getValueAti, 2.toString; } if max3 = Double.parseDoubleJaminanTabel.getValueAti, 3.toString { max3 = Double.parseDoubleJaminanTabel.getValueAti, 3.toString; } if max4 = Double.parseDoubleJaminanTabel.getValueAti, 4.toString { max4 = Double.parseDoubleJaminanTabel.getValueAti, 4.toString; } } Berikut penggalan program untuk perhitungan total skor. total dan normalisasi for int i = 0; i JaminanTabel.getRowCount; i++ { total = Double.parseDoubleJaminanTabel.getValueAti, 1.toString max1 Double.parseDoublebobotSubJaminan1.getText + Double.parseDoubleJaminanTabel.getValueAti, 2.toString max2 Double.parseDoublebobotSubJaminan2.getText + Double.parseDoubleJaminanTabel.getValueAti, 3.toString max3 Double.parseDoublebobotSubJaminan3.getText + Double.parseDoubleJaminanTabel.getValueAti, 4.toString max4 Double.parseDoublebobotSubJaminan4.getText; JaminanTabel.setValueAttotal, i, 5; kriteriaTabel.setValueAttotal, i, 2;  Normalisasi dan Perhitungan Total Sub Kriteria Kapasitas Gambar 4.34 Tabel Pengisian Hasil Survey Kapasitas Setelah nilai survey dimasukkan maka manajer kredit hanya perlu menekan tombol Proses Perhitungan SAW. Berikut hasilnya: Gambar 4.35 Hasil Total Skor Kapasitas Hasil total skor kapasitas di atas diperoleh dari perkalian nilai normalisasi dengan bobot sub kriteria kapasitas. Berikut penggalan programnya: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double total = 0; mencari nilai max for int i = 0; i kapasitasTabel.getRowCount; i++ { if max1 = Double.parseDoublekapasitasTabel.getValueAti, 1.toString { max1 = Double.parseDoublekapasitasTabel.getValueAti, 1.toString; } if max2 = Double.parseDoublekapasitasTabel.getValueAti, 2.toString { max2 = Double.parseDoublekapasitasTabel.getValueAti, 2.toString; } if max3 = Double.parseDoublekapasitasTabel.getValueAti, 3.toString { max3 = Double.parseDoublekapasitasTabel.getValueAti, 3.toString; } if max4 = Double.parseDoublekapasitasTabel.getValueAti, 4.toString { max4 = Double.parseDoublekapasitasTabel.getValueAti, 4.toString; } } Berikut penggalan program untuk menghitung total skor. total dan normalisasi for int i = 0; i kapasitasTabel.getRowCount; i++ { total = Double.parseDoublekapasitasTabel.getValueAti, 1.toString max1 Double.parseDoublebobotSubKapasitas1.getText + Double.parseDoublekapasitasTabel.getValueAti, 2.toString max2 Double.parseDoublebobotSubKapasitas2.getText + Double.parseDoublekapasitasTabel.getValueAti, 3.toString max3 Double.parseDoublebobotSubKapasitas3.getText + Double.parseDoublekapasitasTabel.getValueAti, 4.toString max4 Double.parseDoublebobotSubKapasitas4.getText; kapasitasTabel.setValueAttotal, i, 5; kriteriaTabel.setValueAttotal, i, 3; }  Normalisasi dan Perhitungan Total Sub Kriteria Modal Gambar 4.36 Tabel Pengisian Hasil Survey Modal Setelah nilai survey dimasukkan maka manajer kredit hanya perlu menekan tombol Proses Perhitungan SAW. Berikut hasilnya: Gambar 4.37 Hasil Total Skor Modal Hasil total skor modal di atas diperoleh dari perkalian nilai normalisasi dengan bobot sub kriteria modal. Berikut penggalan programnya: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double total = 0; cari max duyu for int i = 0; i modalTabel.getRowCount; i++ { if max1 = Double.parseDoublemodalTabel.getValueAti, 1.toString { max1 = Double.parseDoublemodalTabel.getValueAti, 1.toString; } if max2 = Double.parseDoublemodalTabel.getValueAti, 2.toString { max2 = Double.parseDoublemodalTabel.getValueAti, 2.toString; } if max3 = Double.parseDoublemodalTabel.getValueAti, 3.toString { max3 = Double.parseDoublemodalTabel.getValueAti, 3.toString; } if max4 = Double.parseDoublemodalTabel.getValueAti, 4.toString { max4 = Double.parseDoublemodalTabel.getValueAti, 4.toString; } } Berikut penggalan program untuk perhitungan total skor. total dan normalisasi for int i = 0; i modalTabel.getRowCount; i++ { total = Double.parseDoublemodalTabel.getValueAti, 1.toString max1 Double.parseDoublebobotSubModal1.getText + Double.parseDoublemodalTabel.getValueAti, 2.toString max2 Double.parseDoublebobotSubModal2.getText + Double.parseDoublemodalTabel.getValueAti, 3.toString max3 Double.parseDoublebobotSubModal3.getText + Double.parseDoublemodalTabel.getValueAti, 4.toString max4 Double.parseDoublebobotSubModal4.getText; modalTabel.setValueAttotal, i, 5; kriteriaTabel.setValueAttotal, i, 4; }  Normalisasi dan Perhitungan Total Sub Kriteria Kondisi Ekonomi Gambar 4.38 Tabel Pengisian Hasil Survey Kondisi Ekonomi Setelah nilai survey dimasukkan maka manajer kredit hanya perlu menekan tombol Proses Perhitungan SAW. Berikut hasilnya: Gambar 4.39 Hasil Total Skor Kondisi Ekonomi Hasil total skor kondisi ekonomi di atas diperoleh dari perkalian nilai normalisasi dengan bobot sub kriteria kondisi ekonomi. Berikut penggalan programnya: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double total = 0; mencari nilai max for int i = 0; i kondisiTabel.getRowCount; i++ { if max1 = Double.parseDoublekondisiTabel.getValueAti, 1.toString { max1 = Double.parseDoublekondisiTabel.getValueAti, 1.toString; } if max2 = Double.parseDoublekondisiTabel.getValueAti, 2.toString { max2 = Double.parseDoublekondisiTabel.getValueAti, 2.toString; } if max3 = Double.parseDoublekondisiTabel.getValueAti, 3.toString { max3 = Double.parseDoublekondisiTabel.getValueAti, 3.toString; } if max4 = Double.parseDoublekondisiTabel.getValueAti, 4.toString { max4 = Double.parseDoublekondisiTabel.getValueAti, 4.toString; } } Berikut penggalan program untuk perhitungan total skor kondisi ekonomi. total dan normalisasi for int i = 0; i kondisiTabel.getRowCount; i++ { total = Double.parseDoublekondisiTabel.getValueAti, 1.toString max1 Double.parseDoublebobotSubKondisi1.getText + Double.parseDoublekondisiTabel.getValueAti, 2.toString max2 Double.parseDoublebobotSubKondisi2.getText + Double.parseDoublekondisiTabel.getValueAti, 3.toString max3 Double.parseDoublebobotSubKondisi3.getText + Double.parseDoublekondisiTabel.getValueAti, 4.toString max4 Double.parseDoublebobotSubKondisi4.getText; kondisiTabel.setValueAttotal, i, 5; kriteriaTabel.setValueAttotal, i, 5;

4.2.3.4.2 Normalisasi dan Total Skor Bobot Kriteria Utama

Setelah total skor pemohon dari masing-masing kriteria didapatkan, maka langkah selanjutnya manajer kredit hanya perlu melakukan perhitungan SAW terhadap kriteria 5C untuk mendapatkan total skor akhir pemohon dengan menekan tombol Proses Perhitungan SAW. Berikut tampilan sistem sebelum dilakukan perhitungan dan setelah dilakukan perhitungan total skor akhir. Gambar 4.40 Tabel Rekomendasi Keputusan Kredit Hasil Perhitungan SAW: Gambar 4.41 Total Skor Tabel Rekomendasi Keputusan Kredit Total skor pada gambar di atas diperoleh dari perhitungan dalam penggalan perintah program sebagai berikut: double max1 = 0; double max2 = 0; double max3 = 0; double max4 = 0; double max5 = 0; double total = 0; mencari nilai max for int i = 0; i kriteriaTabel.getRowCount; i++ { if max1 = Double.parseDoublekriteriaTabel.getValueAti, 1.toString { max1 = Double.parseDoublekriteriaTabel.getValueAti, 1.toString; } if max2 = Double.parseDoublekriteriaTabel.getValueAti, 2.toString { max2 = Double.parseDoublekriteriaTabel.getValueAti, 2.toString; } if max3 = Double.parseDoublekriteriaTabel.getValueAti, 3.toString { max3 = Double.parseDoublekriteriaTabel.getValueAti, 3.toString; } if max4 = Double.parseDoublekriteriaTabel.getValueAti, 4.toString { max4 = Double.parseDoublekriteriaTabel.getValueAti, 4.toString; } if max5 = Double.parseDoublekriteriaTabel.getValueAti, 5.toString { max5 = Double.parseDoublekriteriaTabel.getValueAti, 5.toString; } } total dan normalisasi for int i = 0; i kriteriaTabel.getRowCount; i++ { total = Double.parseDoublekriteriaTabel.getValueAti, 1.toString max1 Double.parseDoublekarakterText.getText + Double.parseDoublekriteriaTabel.getValueAti, 2.toString max2 Double.parseDoublejaminanText.getText + Double.parseDoublekriteriaTabel.getValueAti, 3.toString max3 Double.parseDoublekapasitasText.getText + Double.parseDoublekriteriaTabel.getValueAti, 4.toString max4 Double.parseDoublemodalText.getText + Double.parseDoublekriteriaTabel.getValueAti, 5.toString max5 Double.parseDoublekondisiEkonomiText.getText; kriteriaTabel.setValueAttotal, i, 6; }

4.2.3.4.3 Mengecek Total Nilai dan Hasil Keputusan

Setelah total skor didapatkan, selanjutnya manajer kredit menentukan patokan skor penerimaan berdasarkan ketentuan sebagai berikut: Rentang Nilai Nilai 0-7,9 Sangat Rendah 8-14,9 Rendah 15-21,9 Cukup 22-28,9 Tinggi 29-35 Sangat Tinggi Tabel 4.14 Ketentuan Skor Gambar 4.42 Patokan Skor Penerimaan Kredit Selain menggunakan patokan skor penerimaan, digunakan kondisi yang akan mengecek performa angsuran kredit pemohon sebagai nasabah lama. Berikut penggalan program yang digunakan untuk melakukan pengecekan total skor dan performa kredit. for int i = 0; i kriteriaTabel.getRowCount; i++ { if Double.parseDoublepatokanSkor.getText = Double.parseDoublekriteriaTabel.getValueAti, 6.toString simulasiTabel.getValueAti, 10.toString.equalsNasabah Lancar { kriteriaTabel.setValueAtDiterima, i, 7; } else if Double.parseDoublepatokanSkor.getText Double.parseDoublekriteriaTabel.getValueAti, 6.toString simulasiTabel.getValueAti, 10.toString.equalsNasabah Lancar { kriteriaTabel.setValueAtDitolak, i, 7; } else if Double.parseDoublepatokanSkor.getText = Double.parseDoublekriteriaTabel.getValueAti, 6.toString simulasiTabel.getValueAti, 10.toString.equalsNasabah Tidak Lancar { kriteriaTabel.setValueAtDiterima, i, 7; } else if Double.parseDoublepatokanSkor.getText Double.parseDoublekriteriaTabel.getValueAti, 6.toString simulasiTabel.getValueAti, 10.toString.equalsNasabah Tidak Lancar { kriteriaTabel.setValueAtDitolak, i, 7; } } Pada penggalan program di atas terdapat 4 kondisi pengecekan total skor dan performa kredit, yaitu: a. Jika patokan skor lebih kecil atau sama dengan total skor dan performa nasabah adalah Nasabah Lancar, maka diterima. b. Jika patokan skor lebih besar dari total skor dan performa nasabah adalah Nasabah Lancar, maka ditolak. c. Jika patokan skor lebih kecil atau sama dengan total skor dan performa nasabah adalah Nasabah Tidak Lancar, maka diterima. d. Jika patokan skor lebih besar dari total skor dan performa nasabah adalah Nasabah Tidak Lancar, maka ditolak. Gambar 4.43 Hasil Keputusan Rekomendasi Kredit

4.2.3.4.4 Perangkingan Penerimaan Kredit

Setelah perhitungan SAW serta pengecekan total skor dilakukan maka langkah selanjutnya adalah proses perangkingan penerimaan kredit. Proses ini dapat memudahkan manajer kredit untuk mengetahui pemohon yang menjadi prioritas karena memiliki total skor tinggi. Gambar 4.44 Peringkat Hasil Keputusan Rekomendasi Kredit Proses perangkingan diurutkan berdasarkan total skor tertinggi dengan perintah dalam penggalan program berikut. String ids = ; for int i = 0; i tab.getRowCount; i++ { if i == tab.getRowCount - 1 { ids = ids ++ tab.getValueAti, 0.toString+; } else { ids = ids ++ tab.getValueAti, 0.toString+ + ,; } } PreparedStatement statement = null; ResultSet result = null; koneksi.setAutoCommitfalse; String sql1 = SELECT a.id_nasabah,a.nama_nasabah, b.total_skorKredit, a.hasil_keputusan FROM nasabah a, + penilaian_usulan b WHERE a.id_nasabah= b.id_nasabah and a.id_nasabah in+ids+ ORDER BY b.total_skorKredit desc; statement = koneksi.prepareStatementsql1; result = statement.executeQuery; ListSimulasi simulasiL = new ArrayListSimulasi; while result.next { Simulasi simulasi2 = new Simulasi; UsulanKredit usulan2 = new UsulanKredit; String selectedId = result.getString1; String selectedNama = result.getString2; float selectedTotalSkor = Float.parseFloatresult.getString3; String selectedKeputusan = result.getString4; simulasi2.setId_nasabahselectedId; simulasi2.setNama_nasabahselectedNama; simulasi2.setTotal_skorselectedTotalSkor; simulasi2.setHasil_keputusanselectedKeputusan; simulasiL.addsimulasi2; } koneksi.commit; koneksi.close; return simulasiL;

4.2.3.5 Halaman Laporan Penerimaan Kredit

Halaman Laporan Penerimaan Kredit ini akan menampilkan seluruh hasil perhitungan simulasi pemohon. Hal ini berguna sebagai dokumentasi berupa laporan yang dapat dicetak agar manajer kredit dapat melihat seluruh hasil rekomendasi penerimaan kredit dari simulasi yang telah dilakukan. Gambar 4.45 Laporan Penerimaan Kredit Pemohon Untuk menghubungkan java dengan IReport berikut penggalan perintah programnya. Connection konek = null; String reportSource; konek = com.Entities.Koneksi.Koneksi; reportSource = com.ReportLaporanKredit.jasper; MapString, Object params = new HashMapString, Object; JasperPrint jasperprint; jasperprint = JasperFillManager.fillReportreportSource, params, konek; JasperViewer.viewReportjasperprint, false; Penggalan program yang dicetak tebal merupakan nama file .jasper yang merupakan file LaporanKredit. 139

BAB V PENGUJIAN DAN ANALISIS DATA

Dalam tahap ini akan dilakukan pengujian dan analisis data terhadap sistem untuk mengetahui efektifitas penggunaan metode SAW dalam mengambil keputusan pada sistem ini. Proses pengujian ini akan dilakukan dengan teknik simulasi data asli. Proses analisis data akan dilakukan dengan cara membandingkan hasil keputusan yang diperoleh dari sistem sama dengan keputusan asli dari data asli nasabah PT. BPR X manual, untuk lebih detil berikut penjelasannya.

5.1 Pengujian Sistem

Proses pengujian sistem dilakukan dengan menggunakan data asli milik nasabah PT BPR X dengan rincian sebagai berikut: 4 15 Data nasabah lama, performa Nasabah Lancar : diterima 5 15 Data nasabah lama, performa Nasabah Tidak Lancar : ditolak 6 4 Data nasabah lama, performa Nasabah Tidak Lancar: diterima Proses pengujian sistem diawali dengan memasukkan semua data nasabah ke dalam sistem berupa identitas nasabah maupun track record angsuran nasabah. Langkah selanjutnya adalah menentukan bobot