Advertisement
muhammad_eko

SPK_Kredit_Mobil

Nov 20th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.76 KB | None | 0 0
  1. #Program SPK Kelayakan Kredit Mobil
  2. import numpy as np
  3. import pandas as pd
  4. import os
  5. def main():
  6.     hasil=np.zeros((4,3)) #definisi array hasil untuk menampung nomor, hasil hitung, dan kategori keputusan
  7.     k=np.zeros(5) #definisi array untuk nilai kriteria
  8.     d=pd.read_csv('data_train_kredit.csv',delimiter=";")
  9.     d=np.asarray(d)
  10.     i=0
  11.     i3=0
  12.     kebenaran=0 #inisialisasi keputusan
  13.     print("Masukkan data pemohon")
  14.     print("Masukkan Kriteria 1 :",end=" ")
  15.     k[0]=input()
  16.     k[0]=int(k[0])
  17.     print("Masukkan Kriteria 2 :",end=" ")
  18.     k[1]=input()
  19.     k[1]=int(k[1])
  20.     print("Masukkan Kriteria 3 :",end=" ")
  21.     k[2]=input()
  22.     k[2]=int(k[2])
  23.     print("Masukkan Kriteria 4 :",end=" ")
  24.     k[3]=input()
  25.     k[3]=int(k[3])
  26.     print("Masukkan Kriteria 5 :",end=" ")
  27.     k[4]=input()
  28.     k[4]=int(k[4])
  29.     print("Masukkan nilai k :",end=" ")
  30.     nilai_k=input()
  31.     nilai_k=int(nilai_k)
  32.     os.system('cls') #windows command untuk membersihkan layar
  33.     #os.system('clear') #linux command untuk membersihkan layar
  34.     #input nilai nilai yang dibutuhkan
  35.     while i<len(d): #menggunakan while karena butuh i untuk iteration, karena for dalam python berbeda dengan for dalam c. Ulangi sebanyak data train yang ada.
  36.         i2=0
  37.         while i2<5: #while untuk menghitung masing masing selisih data train dan data test dikuadrat pada kriteria.
  38.             hasil_sq=abs(k[i2]-d[i][i2+1])**2 #rumus menghitung selisih data train dan data test dikuadrat
  39.             hasil[i][0]+=hasil_sq #setiap hasil hitung yang ada ditambahkan
  40.             i2=i2+1
  41.             pass
  42.         hasil[i][0]=np.sqrt(hasil[i][0])#hasil hitung sebelumnya di akar kuadratkan
  43.         hasil[i][1]=i+1 #menyimpan nomor data train
  44.         hasil[i][2]=d[i][6] #menyimpan keputusan hasil hitung
  45.         i=i+1
  46.         pass
  47.     hasil = list(hasil)
  48.     print("Sebelum pengurutan kedekatan")
  49.     print("No \t Kedekatan")
  50.     for x in hasil: #pengulangan untuk menampilkan hasil hitung sebelum diurutkan
  51.         print(int(x[1]),end="\t")
  52.         print(x[0])
  53.         pass
  54.     hasil.sort(key=lambda x:x[0]) #mengurutkan  array berdasarkan kedekatan dengan data test
  55.     print("Sesudah pengurutan kedekatan")
  56.     print("No \t Kedekatan")
  57.     for x in hasil: #pengulangan untuk menampilkan hasil hitung setelah diurutkan
  58.         print(int(x[1]),end="\t")
  59.         print(x[0])
  60.         pass
  61.     while i3<nilai_k: #pengulangan untuk memilih hasil penghitungan dengan nilai k yang diurutkan berdasarkan kedekatan.
  62.         kebenaran+=hasil[i3][2] #menghitung total nilai keputusan (0 untuk tidak memenuhi dan 1 untuk memenuhi)
  63.         i3=i3+1
  64.         pass
  65.     keputusan=kebenaran/nilai_k*100 #membagi nilai keputusan dengan nilai k untuk menentukan apakah memenuhi atau tidak.   
  66.     print("Berdasarkan perhitungan diatas, sistem menyatakan pemohon",end=" ")
  67.     if keputusan>50:
  68.         print("Memenuhi",end=" ")
  69.     else:
  70.         print("Tidak Memenuhi",end=" ")
  71.         pass
  72.     print("mengajukan kredit.")
  73.     print("Persentasi kebenaran "+str(keputusan)+"%")
  74. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement