Lampiran 1-1 Lampiran 1. Data Latih Manual Data Ke DP Status Perkawinan Pendidikan Terakhir 1 12 16-20% P Kawin Sarjana 2 SMTA/ 2 24 21-25% L Single Sederajat 0 SMTA/ 3 24 21-25% L Kawin Sederajat 2 Duda/Janda Dibawah 4 36 16-20% P tanpa Anak SMTP 0 SMTP/ 5 36 21-25% L Kawin Sederajat 3 6 36 16-20% P Kawin Diploma 1 SMTA/ 7 24 36-40% L Kawin Sederajat 2 Dibawah 8 35 21-25% L Kawin SMTP 2 SMTA/ 9 33 16-20% L Kawin Sederajat 2 Dibawah 10 33 26-30% L Kawin SMTP 2 Dibawah 11 11 16-20% L Kawin SMTP 3 Dibawah 12 23 16-20% L Kawin SMTP 2 Tinggal Sendiri 7 Keluarga 23 Sendiri 15 Keluarga 40 Sendiri 15 Keluarga 29 Keluarga 28 Sendiri 22 Keluarga 8 Keluarga 10 Sendiri 36 Keluarga 25 Tenor Gender Tanggungan Kepemilikan Rumah Pekerjaan Penghasilan Pekerjaan Listrik Remark Peg. Swasta Formal 5000000 1 900 Good Peg. Swasta Formal 2800000 3 450 Good Non Formal 22500000 6 900 Good Peg. Swasta Formal 2700000 2 450 Good Peg. Swasta Formal 2200000 2 900 Good Peg. Swasta Formal 1950000 5 1300 Good Peg. Swasta Formal 4000000 7 900 Good Non Formal 7000000 15 450 Bad Non Formal 4000000 5 900 Bad Non Formal 3000000 20 900 Bad Peg. Swasta Non Formal 4000000 7 450 Bad Non Formal 5500000 20 450 Bad
Lampiran 1-2 Data Ke DP Status Perkawinan Pendidikan Terakhir 13 33 16-20% P Kawin Sarjana 1 Dibawah 14 23 36-40% L Kawin SMTP 6 Tinggal Keluarga 30 Sendiri 27 Tenor Gender Tanggungan Kepemilikan Rumah Pekerjaan Penghasilan Pekerjaan Listrik Remark Peg. Swasta Formal 1000000 6 900 Bad Non Formal 3300000 40 450 Bad Data Uji Manual Data Ke DP Status Perkawinan 1 36 >40% L Kawin Tinggal Sendiri 4 Pekerjaan Tenor Gender Pendidikan Tanggungan Terakhir SMTA/ Sederajat 3 Kepemilikan Rumah Penghasilan Listrik Remark Pekerjaan Peg. Swasta Formal 2500000 3 900 Good
Lampiran 2-1 Lampiran 2. Konversi Data Latih Data Ke Tenor DP Status Perkawinan Pendidikan Terakhir Kepemilikan Rumah Tinggal Pekerjaan 1 1 5 2 2 1 0,666667 1 0,8 2 1 1 2 1 2 1 6 1 1 3 1 2 0,866667 2 0,371429 1 1 1 3 1 6 1 2 3 0,666667 1 0,333333 5 1 0,9 2 1 4 0,5 5 2 4 5 1 2 1 2 0,342857 1 1 1 5 0,5 6 1 2 4 0,666667 1 0,333333 2 0,2 1 2 1 6 0,5 5 2 2 2 1 2 1 2 0,128571 1 3 1 7 1 9 1 2 3 0,666667 2 1 2 0,714286 0,8 2 1 8 0,54167 6 1 2 5 0,666667 1 0,8 5 0,4 0,333333 1 2 9 0,625 5 1 2 3 0,666667 2 0,7 5 0,714286 1 2 2 10 0,625 7 1 2 5 0,666667 2 0,5 5 0,428571 0,666667 2 2 11 1 5 1 2 5 0,666667 1 1 3 0,714286 0,8 1 2 12 0,91667 5 1 2 5 0,666667 2 1 5 0,833333 0,666667 1 2 13 0,625 5 2 2 1 1 2 1 2 1 0,9 2 2 14 0,91667 9 1 2 5 1 1 1 5 0,514286 1 1 2 Konversi Data Uji Gender Tanggungan Pekerjaan Penghasilan Listrik Remark Data Gender Status Pendidikan Tang- Kepemilikan Peker- Peng- Lis- Re- Ke Tenor DP Perkawinan Terakhir gungan Rumah Tinggal jaan hasilan Pekerjaan trik mark 1 0,5 10 1 2 3 0,666667 1 1 2 0,285714 1 2 1
Lampiran 3-1 Lampiran 3. Jarak Data Uji Terhadap Setiap Data Latih Data Ke 1 2 3 4 5 6 7 8 9 10 11 12 13 14 x y jl 2 N l 1 x y T D G Sp Pt Tg R Lt P Ph Lk Ls 0,25 25 1 0 4 0 0 0,04 0 0,51020449 0 0 30,8002 0,25 16 0 1 0 0,11111089 1 0,017777689 0 0,007347061 0 1 19,38624 0,25 16 0 0 0 0 0 0,444444889 9 0,51020449 0,01 0 26,21465 0 25 1 4 4 0,11111089 1 0 0 0,003265322 0 1 36,11438 0 16 0 0 1 0 0 0,444444889 0 0,00734689 0 0 17,45179 0 25 1 0 1 0,11111089 1 0 0 0,024693922 0 1 29,1358 0,25 1 0 0 0 0 1 0 0 0,183673959 0,04 0 2,473674 0,00174 16 0 0 4 0 0 0,04 9 0,01306129 0,444444889 1 30,49924 0,01563 25 0 0 0 0 1 0,09 9 0,183673959 0 0 35,2893 0,01563 9 0 0 4 0 1 0,25 9 0,020408122 0,111110889 0 23,39714 0,25 25 0 0 4 0 0 0 1 0,183673959 0,04 1 31,47367 0,17361 25 0 0 4 0 1 0 9 0,299886569 0,111110889 1 40,58461 0,01563 25 1 0 4 0,11111089 1 0 0 0,51020449 0,01 0 31,64694 0,17361 1 0 0 4 0,11111089 0 0 9 0,052245159 0 1 15,33697 jl 2
Lampiran 3-2 Keterangan: T = Tenor. Lk = bekerja. D = Uang muka. Ls = Listrik. G = Jenis kelamin. Sp = Status perkawinan. Pt = Pendidikan terakhir. Tg = Tanggungan. R = Kepemilikan rumah. Lt = tinggal. P = Pekerjaan. Ph = Penghasilan perbulan.
Lampiran 4-1 Lampiran 4. Data Latih Program Data Ke DP Status Perkawinan 1 35 15-20% L Kawin 2 22 15-20% L Kawin 3 36 20-25% L Kawin 4 33 15-20% L Kawin Pendidikan Terakhir SMTA/ Sederajat SMTA/ Sederajat SMTP/ Sederajat Dibawah SMTP 5 22 35-40% L Single Diploma 0 6 33 15-20% L Kawin 7 33 15-20% L Kawin 8 33 25-30% L Kawin SMTP/ Sederajat SMTP/ Sederajat SMTP/ Sederajat 9 27 15-20% P Kawin Sarjana 0 10 36 >40% L Kawin SMTA/ Sederajat 11 12 0% L Kawin Diploma 4 12 12 0% L Single SMTA/ Sederajat 4 2 3 2 3 4 3 2 0 Tinggal 3 58 40 8 21 15 30 6 12 20 Pekerjaan Peg. Swasta Non Formal Non Formal Non Formal Non Formal Non Formal Non Formal Non Formal Non Formal Peg. Swasta Formal Non Formal Kerja Tenor Gender Tanggungan Kepemilikan Rumah Sendiri Sendiri Sendiri Keluarga Sendiri Keluarga Sendiri Sendiri Keluarga Sendiri Sendiri Sendiri Penghasilan Listrik Remark 2300000 2 900 Good 11000000 30 1300 Good 2500000 10 450 Good 5000000 5 900 Good 14500000 5 900 Good 6400000 15 900 Good 7500000 10 450 Good 12000000 12 900 Good 600000 9 900 Good 6000000 20 900 Good 20 Peg. Negeri 6000000 20 1300 Good 22 Non Formal 6000000 4 450 Good
Lampiran 4-2 Data Ke DP Status Perkawinan Pendidikan Terakhir Tinggal Pekerjaan 13 12 0% L Kawin Sarjana 2 1 Peg. Swasta Formal 3644229 7 900 Good 14 12 0% L Kawin SMTA/ 2 29 Sederajat Non Formal 8000000 3 450 Good.......................................... 795 48 >40% L Kawin Diploma 3 Sendiri 5 TNI/Polisi 3438000 9 900 Bad 796 48 >40% L Kawin Tidak 3 20 Sekolah Sendiri Non Formal 22500000 3 900 Bad 797 48 35-40% L Kawin Dibawah 4 51 SMTP Sendiri Non Formal 35000000 20 900 Bad 798 48 >40% L Kawin SMTP/ 4 15 Sederajat Keluarga Non Formal 8320000 5 900 Bad 799 48 30-35% L Kawin Sarjana 3 34 Keluarga Formal 25000000 20 900 Bad 800 48 30-35% P Kawin Diploma 0 Keluarga 6 Peg. Negeri 4286800 5 900 Bad Kerja Tenor Gender Tanggungan Kepemilikan Rumah Kontrak/ Sewa Sendiri Penghasilan Listrik Remark
Lampiran 5-1 Lampiran 5. Data Uji Program Data Ke DP Status Perkawinan 1 48 20-25% L Kawin Pendidikan Terakhir Dibawah SMTP 3 Tinggal Sendiri 5 Pekerjaan Kerja Tenor Gender Tanggungan Kepemilikan Rumah Penghasilan Listrik Remark Non Formal 63750000 7 900 Good 2 20 >40% L Kawin SMTA/ Sederajat 5 Sendiri 28 Formal 40000000 23 1300 Good 3 48 25-30% L Kawin Sarjana 4 4 47 20-25% L Kawin Sarjana 3 Sendiri 4 Peg. Negeri 4300000 24 1300 Good Sendiri 38 Peg. Negeri 3677500 3 900 Good 5 48 35-40% L Kawin Tidak Sekolah 2 Sendiri 29 Non Formal 22230000 4 900 Good 6 48 35-40% L Kawin SMTA/ Sederajat 2 Sendiri 37 Formal 72800000 5 900 Good 7 36 35-40% L Kawin Sarjana 4 Sendiri 7 Peg. Negeri 4429800 17 900 Good 8 36 >40% L Kawin SMTA/ Sederajat 3 Kontrak/ Sewa 20 Peg. Negeri 5656400 30 450 Good
Lampiran 5-2 Data Ke DP Status Perkawinan 9 36 25-30% L Kawin Pendidikan Terakhir SMTP/ Sederajat 2 Tinggal Sendiri 30 Pekerjaan Kerja Tenor Gender Tanggungan Kepemilikan Rumah Penghasilan Listrik Remark Non Formal 17600000 8 900 Good 10 48 20-25% L Kawin SMTP/ Sederajat 4 Sendiri 26 Formal 60000000 15 900 Good 11 36 30-35% L Kawin Dibawah SMTP 2 Sendiri 35 Non Formal 3000000 4 450 Good.......................................... SMTP/ 136 12 >40% L Single Sederajat 0 Keluarga 22 Non Formal 10000000 4 900 Good 137 36 15-20% L Kawin Sarjana 3 Sendiri 30 Peg. Negeri 3500000 7 2200 Good 138 24 20-25% P Kawin Dibawah SMTP 2 Sendiri 14 Formal 30000000 14 450 Good 139 36 15-20% L Kawin Dibawah SMTP 3 Sendiri 25 Non Formal 7000000 15 450 Good 140 36 25-30% L Single SMTA/ Sederajat 0 Keluarga 20 Peg. Swasta Formal 2500000 5 450 Good
Lampiran 6-1 Lampiran 6. Source Code Program #include <conio.h> #include <iostream.h> #include <math.h> #include <stdlib.h> #include <iomanip.h> #include <string.h> #include <fstream.h> void main() ifstream latih; ifstream uji; ofstream ubahlatih; ofstream ubahuji; ofstream jarakterdekat; ofstream kelasklasifikasi; char datalatih[60]; char datauji[60]; char ambillatih[1][14][30]; //ambil data latih char ambiluji[1][14][30]; //ambil data uji double konversilatih[800][14]; //hasil konversi data uji double konversiuji[140][14]; //hasil konversi data latih int kelasuji[140][1]; //output kelas klasifikasi data uji int i,j,l,tetangga; double m,n,o,p,q,r,s,t,u,v,w,x,y; double tl[3],hl[3],lkl[2],tnl[3],ltl[2],tu[3],hu[3],lku[2],tnu[3],ltu[2]; double z[140][800]; //jarak data uji dg data latih double jarak[800][2]; //jarak data uji dan calon kelas klasifikasi double zz,za,nilaig,nilaib,nilai1,nilai2,total,total1,kelas1,kelas2,pgood,persen; latih.open("datalatih.txt"); ubahlatih.open("konversilatih.txt"); for(i=0;i<800;i++)//proses ambil data latih dr notepad dan konversi data latih for(j=0;j<14;j++) latih>>datalatih; strcpy(ambillatih[0][j],datalatih); for(j=0;j<3;j++) konversilatih[i][j]=(double)atof(ambillatih[0][j]); konversilatih[i][6]=(double)atof(ambillatih[0][6]); konversilatih[i][8]=(double)atof(ambillatih[0][8]); konversilatih[i][10]=(double)atof(ambillatih[0][10]); konversilatih[i][11]=(double)atof(ambillatih[0][11]); konversilatih[i][12]=(double)atof(ambillatih[0][12]); if(konversilatih[i][1]<=12) //konversi tenor tl[0]=1; tl[1]=0; tl[2]=0; konversilatih[i][1]=tl[0];
Lampiran 6-2 if(konversilatih[i][1]>12 && konversilatih[i][1]<24) tl[0]=(24-konversilatih[i][1])/(24-12); tl[1]=(konversilatih[i][1]-12)/(24-12); tl[2]=0; if(tl[0]<tl[1]) konversilatih[i][1]=tl[1]; konversilatih[i][1]=tl[0]; if(konversilatih[i][1]>=24 && konversilatih[i][1]<48) tl[0]=0; tl[1]=(48-konversilatih[i][1])/(48-24); tl[2]=(konversilatih[i][1]-24)/(48-24); if(tl[2]<tl[1]) konversilatih[i][1]=tl[1]; konversilatih[i][1]=tl[2]; tl[0]=0; tl[1]=0; tl[2]=1; konversilatih[i][1]=tl[2]; if(konversilatih[i][2]==1)//konversi uang muka(dp) konversilatih[i][2]=1; if(konversilatih[i][2]==6) konversilatih[i][2]=2; if(konversilatih[i][2]==11) konversilatih[i][2]=3; if(konversilatih[i][2]==16) konversilatih[i][2]=4; if(konversilatih[i][2]==21)
Lampiran 6-3 konversilatih[i][2]=5; if(konversilatih[i][2]==26) konversilatih[i][2]=6; if(konversilatih[i][2]==31) konversilatih[i][2]=7; if(konversilatih[i][2]==36) konversilatih[i][2]=8; if(konversilatih[i][2]==41) konversilatih[i][2]=9; konversilatih[i][2]=10; if(strcmp(ambillatih[0][3],"l")==0)//konversi gender konversilatih[i][3]=1; konversilatih[i][3]=2; if(strcmp(ambillatih[0][4],"single")==0)//konversi status perkawinan konversilatih[i][4]=1; if(strcmp(ambillatih[0][4],"kawin")==0) konversilatih[i][4]=2; if(strcmp(ambillatih[0][4],"duda/janda_dgn_anak")==0) konversilatih[i][4]=3; konversilatih[i][4]=4; if(strcmp(ambillatih[0][5],"sarjana")==0)//konversi pendidikan terakhir konversilatih[i][5]=1; if(strcmp(ambillatih[0][5],"diploma")==0) konversilatih[i][5]=2; if(strcmp(ambillatih[0][5],"smta/sederajat")==0)
Lampiran 6-4 konversilatih[i][5]=3; if(strcmp(ambillatih[0][5],"smtp/sederajat")==0) konversilatih[i][5]=4; if(strcmp(ambillatih[0][5],"dibawah_smtp")==0) konversilatih[i][5]=5; konversilatih[i][5]=6; if(konversilatih[i][6]<1)//konversi jumlah tanggungan tnl[0]=1; tnl[1]=0; tnl[3]=0; konversilatih[i][6]=tnl[0]; if(konversilatih[i][6]>1 && konversilatih[i][6]<4) tnl[0]=(4-konversilatih[i][6])/(4-1); tnl[1]=(konversilatih[i][6]-1)/(4-1); tnl[2]=0; if(tnl[0]<tnl[1]) konversilatih[i][6]=tnl[1]; konversilatih[i][6]=tnl[0]; if(konversilatih[i][6]>=4 && konversilatih[i][6]<6) tnl[0]=0; tnl[1]=(6-konversilatih[i][6])/(6-4); if(konversilatih[i][6]==4) tnl[2]=0; tnl[2]=(konversilatih[i][6]-4)/(6-4); if(tnl[1]<tnl[2]) konversilatih[i][6]=tnl[2]; konversilatih[i][6]=tnl[1];
Lampiran 6-5 tnl[0]=0; tnl[1]=0; tnl[2]=1; konversilatih[i][6]=tnl[2]; if(strcmp(ambillatih[0][7],"milik_sendiri")==0)//konversi tempat tinggal konversilatih[i][7]=1; if(strcmp(ambillatih[0][7],"milik_keluarga")==0) konversilatih[i][7]=2; if(strcmp(ambillatih[0][7],"rumah_dinas")==0) konversilatih[i][7]=3; konversilatih[i][7]=4; if(konversilatih[i][8]<=5)//konversi lama tinggal ltl[0]=1; ltl[1]=0; konversilatih[i][8]=ltl[0]; if(konversilatih[i][8]>5 && konversilatih[i][8]<15) ltl[0]=(15-konversilatih[i][8])/(15-5); if(konversilatih[i][8]<=10) ltl[1]=0; ltl[1]=(konversilatih[i][8]-10)/(25-10); if(ltl[0]<ltl[1]) konversilatih[i][8]=ltl[1]; konversilatih[i][8]=ltl[0]; if(konversilatih[i][8]>=15 && konversilatih[i][8]<25) ltl[0]=0; ltl[1]=(konversilatih[i][8]-10)/(25-10);
Lampiran 6-6 konversilatih[i][8]=ltl[1]; ltl[0]=0; ltl[1]=1; konversilatih[i][8]=ltl[1]; if(strcmp(ambillatih[0][9],"peg.negeri")==0) //konversi pekerjaan konversilatih[i][9]=1; if(strcmp(ambillatih[0][9],"peg.swasta_formal")==0) konversilatih[i][9]=2; if(strcmp(ambillatih[0][9],"peg.swasta_non_formal")==0) konversilatih[i][9]=3; if(strcmp(ambillatih[0][9],"wiraswasta_formal")==0) konversilatih[i][9]=4; if(strcmp(ambillatih[0][9],"wiraswasta_non_formal")==0) konversilatih[i][9]=5; konversilatih[i][9]=6; if(konversilatih[i][10]<=1000000)//konversi penghasilan perbulan hl[0]=1; hl[1]=0; hl[2]=0; konversilatih[i][10]=hl[0]; if(konversilatih[i][10]>1000000 && konversilatih[i][10]<=1500000) hl[0]=(2000000-konversilatih[i][10])/(2000000-1000000); hl[1]=0; hl[2]=0; konversilatih[i][10]=hl[0]; if(konversilatih[i][10]>1500000 && konversilatih[i][10]<2000000) hl[0]=(2000000-konversilatih[i][10])/(2000000-1000000); hl[1]=(konversilatih[i][10]-1500000)/(5000000-1500000); hl[2]=0; if(hl[0]<hl[1]) konversilatih[i][10]=hl[1];
Lampiran 6-7 konversilatih[i][10]=hl[0]; if(konversilatih[i][10]>=2000000 && konversilatih[i][10]<5000000) hl[0]=0; hl[1]=(konversilatih[i][10]-1500000)/(5000000-1500000); hl[2]=0; konversilatih[i][10]=hl[1]; if(konversilatih[i][10]>=5000000 && konversilatih[i][10]<8000000) hl[0]=0; hl[1]=(8000000-konversilatih[i][10])/(8000000-5000000); if(konversilatih[i][10]==5000000) hl[2]=0; hl[2]=(konversilatih[i][10]-5000000)/(10000000-5000000); if(hl[2]<hl[1]) konversilatih[i][10]=hl[1]; konversilatih[i][10]=hl[2]; if(konversilatih[i][10]>=8000000 && konversilatih[i][10]<10000000) hl[0]=0; hl[1]=0; hl[2]=(konversilatih[i][10]-5000000)/(10000000-5000000); konversilatih[i][10]=hl[2]; hl[0]=0; hl[1]=0; hl[2]=1; konversilatih[i][10]=hl[2]; if(konversilatih[i][11]<=5) //konversi lama tingkat kerja lkl[0]=1; lkl[1]=0; konversilatih[i][11]=lkl[0]; if(konversilatih[i][11]>5 && konversilatih[i][11]<15)
Lampiran 6-8 lkl[0]=(15-konversilatih[i][11])/(15-5); if(konversilatih[i][11]<=10) lkl[1]=0; lkl[1]=(konversilatih[i][11]-10)/(25-10); if(lkl[0]<lkl[1]) konversilatih[i][11]=lkl[1]; konversilatih[i][11]=lkl[0]; if(konversilatih[i][11]>=15 && konversilatih[i][11]<25) lkl[0]=0; lkl[1]=(konversilatih[i][11]-10)/(25-10); konversilatih[i][11]=lkl[1]; lkl[0]=0; lkl[1]=1; konversilatih[i][11]=lkl[1]; if(konversilatih[i][12]==450)//konversi listrik konversilatih[i][12]=1; if(konversilatih[i][12]==900) konversilatih[i][12]=2; if(konversilatih[i][12]==1300) konversilatih[i][12]=3; if(konversilatih[i][12]==2200) konversilatih[i][12]=4; konversilatih[i][12]=5; if(strcmp(ambillatih[0][13],"good")==0) //konversi remark(kelas) konversilatih[i][13]=1; if(strcmp(ambillatih[0][13],"bad")==0)
Lampiran 6-9 konversilatih[i][13]=2; latih.close(); for(i=0;i<800;i++)//output konversi data latih for(j=0;j<14;j++) ubahlatih<<setw(14)<<konversilatih[i][j]; ubahlatih<<endl; ubahlatih.close(); uji.open("datauji.txt"); ubahuji.open("konversiuji.txt");//ambil data uji dr notepad for(i=0;i<140;i++) for(j=0;j<14;j++) uji>>datauji; strcpy(ambiluji[0][j],datauji); for(j=0;j<3;j++) konversiuji[i][j]=(double)atof(ambiluji[0][j]); konversiuji[i][6]=(double)atof(ambiluji[0][6]); konversiuji[i][8]=(double)atof(ambiluji[0][8]); konversiuji[i][10]=(double)atof(ambiluji[0][10]); konversiuji[i][11]=(double)atof(ambiluji[0][11]); konversiuji[i][12]=(double)atof(ambiluji[0][12]); if(konversiuji[i][1]<=12) //konversi tenor tu[0]=1; tu[1]=0; tu[2]=0; konversiuji[i][1]=tu[0]; if(konversiuji[i][1]>12 && konversiuji[i][1]<24) tu[0]=(24-konversiuji[i][1])/(24-12); tu[1]=(konversiuji[i][1]-12)/(24-12); tu[2]=0; if(tu[0]<tu[1]) konversiuji[i][1]=tu[1]; konversiuji[i][1]=tu[0]; if(konversiuji[i][1]>=24 && konversiuji[i][1]<48)
Lampiran 6-10 tu[0]=0; tu[1]=(48-konversiuji[i][1])/(48-24); tu[2]=(konversiuji[i][1]-24)/(48-24); if(tu[2]<tu[1]) konversiuji[i][1]=tu[1]; konversiuji[i][1]=tu[2]; tu[0]=0; tu[1]=0; tu[2]=1; konversiuji[i][1]=tu[2]; if(konversiuji[i][2]==1)//konversi uang muka(dp) konversiuji[i][2]=1; if(konversiuji[i][2]==6) konversiuji[i][2]=2; if(konversiuji[i][2]==11) konversiuji[i][2]=3; if(konversiuji[i][2]==16) konversiuji[i][2]=4; if(konversiuji[i][2]==21) konversiuji[i][2]=5; if(konversiuji[i][2]==26) konversiuji[i][2]=6; if(konversiuji[i][2]==31) konversiuji[i][2]=7; if(konversiuji[i][2]==36) konversiuji[i][2]=8; if(konversiuji[i][2]==41) konversiuji[i][2]=9;
Lampiran 6-11 konversiuji[i][2]=10; if(strcmp(ambiluji[0][3],"l")==0)//konversi gender konversiuji[i][3]=1; konversiuji[i][3]=2; if(strcmp(ambiluji[0][4],"single")==0)//konversi status perkawinan konversiuji[i][4]=1; if(strcmp(ambiluji[0][4],"kawin")==0) konversiuji[i][4]=2; if(strcmp(ambiluji[0][4],"duda/janda_dgn_anak")==0) konversiuji[i][4]=3; konversiuji[i][4]=4; if(strcmp(ambiluji[0][5],"sarjana")==0)//konversi pendidikan terakhir konversiuji[i][5]=1; if(strcmp(ambiluji[0][5],"diploma")==0) konversiuji[i][5]=2; if(strcmp(ambiluji[0][5],"smta/sederajat")==0) konversiuji[i][5]=3; if(strcmp(ambiluji[0][5],"smtp/sederajat")==0) konversiuji[i][5]=4; if(strcmp(ambiluji[0][5],"dibawah_smtp")==0) konversiuji[i][5]=5; konversiuji[i][5]=6; if(konversiuji[i][6]<1)//konversi jumlah tanggungan
Lampiran 6-12 tnu[0]=1; tnu[1]=0; tnu[3]=0; konversiuji[i][6]=tnu[0]; if(konversiuji[i][6]>1 && konversiuji[i][6]<4) tnu[0]=(4-konversiuji[i][6])/(4-1); tnu[1]=(konversiuji[i][6]-1)/(4-1); tnu[2]=0; if(tnu[0]<tnu[1]) konversiuji[i][6]=tnu[1]; konversiuji[i][6]=tnu[0]; if(konversiuji[i][6]>=4 && konversiuji[i][6]<6) tnu[0]=0; tnu[1]=(6-konversiuji[i][6])/(6-4); if(konversiuji[i][6]==4) tnu[2]=0; tnu[2]=(konversiuji[i][6]-4)/(6-4); if(tnu[1]<tnu[2]) konversiuji[i][6]=tnu[2]; konversiuji[i][6]=tnu[1]; tnu[0]=0; tnu[1]=0; tnu[2]=1; konversiuji[i][6]=tnu[2]; if(strcmp(ambiluji[0][7],"milik_sendiri")==0)//konversi tempat tinggal konversiuji[i][7]=1; if(strcmp(ambiluji[0][7],"milik_keluarga")==0) konversiuji[i][7]=2;
Lampiran 6-13 if(strcmp(ambiluji[0][7],"rumah_dinas")==0) konversiuji[i][7]=3; konversiuji[i][7]=4; if(konversiuji[i][8]<=5)//konversi lama tinggal ltu[0]=1; ltu[1]=0; konversiuji[i][8]=ltu[0]; if(konversiuji[i][8]>5 && konversiuji[i][8]<15) ltu[0]=(15-konversiuji[i][8])/(15-5); if(konversiuji[i][8]<=10) ltu[1]=0; ltu[1]=(konversiuji[i][8]-10)/(25-10); if(ltu[0]<ltu[1]) konversiuji[i][8]=ltu[1]; konversiuji[i][8]=ltu[0]; if(konversiuji[i][8]>=15 && konversiuji[i][8]<25) ltu[0]=0; ltu[1]=(konversiuji[i][8]-10)/(25-10); konversiuji[i][8]=ltu[1]; ltu[0]=0; ltu[1]=1; konversiuji[i][8]=ltu[1]; if(strcmp(ambiluji[0][9],"peg.negeri")==0) //konversi pekerjaan konversiuji[i][9]=1; if(strcmp(ambiluji[0][9],"peg.swasta_formal")==0) konversiuji[i][9]=2; if(strcmp(ambiluji[0][9],"peg.swasta_non_formal")==0)
Lampiran 6-14 konversiuji[i][9]=3; if(strcmp(ambiluji[0][9],"wiraswasta_formal")==0) konversiuji[i][9]=4; if(strcmp(ambiluji[0][9],"wiraswasta_non_formal")==0) konversiuji[i][9]=5; konversiuji[i][9]=6; if(konversiuji[i][10]<=1000000)//konversi penghasilan perbulan hu[0]=1; hu[1]=0; hu[2]=0; konversiuji[i][10]=hu[0]; if(konversiuji[i][10]>1000000 && konversiuji[i][10]<=1500000) hu[0]=(2000000-konversiuji[i][10])/(2000000-1000000); hu[1]=0; hu[2]=0; konversiuji[i][10]=hu[0]; if(konversiuji[i][10]>1500000 && konversiuji[i][10]<2000000) hu[0]=(2000000-konversiuji[i][10])/(2000000-1000000); hu[1]=(konversiuji[i][10]-1500000)/(5000000-1500000); hu[2]=0; if(hu[0]<hu[1]) konversiuji[i][10]=hu[1]; konversiuji[i][10]=hu[0]; if(konversiuji[i][10]>=2000000 && konversiuji[i][10]<5000000) hu[0]=0; hu[1]=(konversiuji[i][10]-1500000)/(5000000-1500000); hu[2]=0; konversiuji[i][10]=hu[1]; if(konversiuji[i][10]>=5000000 && konversiuji[i][10]<8000000) hu[0]=0; hu[1]=(8000000-konversiuji[i][10])/(8000000-5000000); if(konversiuji[i][10]==5000000)
Lampiran 6-15 hu[2]=0; hu[2]=(konversiuji[i][10]-5000000)/(10000000-5000000); if(hu[2]<hu[1]) konversiuji[i][10]=hu[1]; konversiuji[i][10]=hu[2]; if(konversiuji[i][10]>=8000000 && konversiuji[i][10]<10000000) hu[0]=0; hu[1]=0; hu[2]=(konversiuji[i][10]-5000000)/(10000000-5000000); konversiuji[i][10]=hu[2]; hu[0]=0; hu[1]=0; hu[2]=1; konversiuji[i][10]=hu[2]; if(konversiuji[i][11]<=5) //konversi lama tingkat kerja lku[0]=1; lku[1]=0; konversiuji[i][11]=lku[0]; if(konversiuji[i][11]>5 && konversiuji[i][11]<15) lku[0]=(15-konversiuji[i][11])/(15-5); if(konversiuji[i][11]<=10) lku[1]=0; lku[1]=(konversiuji[i][11]-10)/(25-10); if(lku[0]<lku[1]) konversiuji[i][11]=lku[1]; konversiuji[i][11]=lku[0];
Lampiran 6-16 if(konversiuji[i][11]>=15 && konversiuji[i][11]<25) lku[0]=0; lku[1]=(konversiuji[i][11]-10)/(25-10); konversiuji[i][11]=lku[1]; lku[0]=0; lku[1]=1; konversiuji[i][11]=lku[1]; if(konversiuji[i][12]==450)//konversi listrik konversiuji[i][12]=1; if(konversiuji[i][12]==900) konversiuji[i][12]=2; if(konversiuji[i][12]==1300) konversiuji[i][12]=3; if(konversiuji[i][12]==2200) konversiuji[i][12]=4; konversiuji[i][12]=5; if(strcmp(ambiluji[0][13],"good")==0) //konversi remark(kelas) konversiuji[i][13]=1; if(strcmp(ambiluji[0][13],"bad")==0) konversiuji[i][13]=2; uji.close(); for(i=0;i<800;i++)//output konversi data uji for(j=0;j<14;j++) ubahuji<<setw(14)<<konversiuji[i][j]; ubahuji<<endl; ubahuji.close(); cout<<endl; cout<<"masukkan jumlah tetangga terdekat(k) yang diinginkan ";//input jarak terdekat cin>>tetangga;
Lampiran 6-17 cout<<endl; while(tetangga<1) cout<<"jumlah tetangga terdekat(k) tidak boleh kurang dari 1"<<endl; cout<<"masukkan jumlah tetangga terdekat(k) yang diinginkan "; cin>>tetangga; cout<<"data latih yg memiliki jarak terdekat sesuai K adalah"<<endl; jarakterdekat.open("jarakterdekat.txt"); for(i=0;i<140;i++)//proses penghitungan jarak tiap data uji ke tiap data latih for(j=0;j<800;j++) m=pow(fabs(konversiuji[i][1]-konversilatih[j][1]),2); n=pow(fabs(konversiuji[i][2]-konversilatih[j][2]),2); o=pow(fabs(konversiuji[i][3]-konversilatih[j][3]),2); p=pow(fabs(konversiuji[i][4]-konversilatih[j][4]),2); q=pow(fabs(konversiuji[i][5]-konversilatih[j][5]),2); r=pow(fabs(konversiuji[i][6]-konversilatih[j][6]),2); s=pow(fabs(konversiuji[i][7]-konversilatih[j][7]),2); t=pow(fabs(konversiuji[i][8]-konversilatih[j][8]),2); u=pow(fabs(konversiuji[i][9]-konversilatih[j][9]),2); v=pow(fabs(konversiuji[i][10]-konversilatih[j][10]),2); w=pow(fabs(konversiuji[i][11]-konversilatih[j][11]),2); x=pow(fabs(konversiuji[i][12]-konversilatih[j][12]),2); y=m+n+o+p+q+r+s+t+u+v+w+x; z[i][j]=pow(y,0.5); jarak[j][0]=z[i][j]; jarak[j][1]=konversilatih[j][13]; for(l=0;l<800;l++) for(j=0;j<799;j++) if(jarak[j][0]>jarak[j+1][0]) zz=jarak[j][0]; jarak[j][0]=jarak[j+1][0]; jarak[j+1][0]=zz; za=jarak[j][1]; jarak[j][1]=jarak[j+1][1]; jarak[j+1][1]=za; jarakterdekat<<"jarak terdekat dengan data uji ke-"<<i+1<<endl; cout<<"jarak terdekat dengan data uji ke-"<<i+1<<endl; for(l=0;l<tetangga;l++) //output data uji dg jarak terdekat sejumlah K inputan cout<<jarak[l][1]<<setw(12)<<jarak[l][0]<<endl<<endl; jarakterdekat<<jarak[l][1]<<setw(12)<<jarak[l][0]<<endl; nilaig=0; nilaib=0; total1=0;
Lampiran 6-18 for(l=0;l<tetangga;l++)//menghitung membership function tiap kelas if(jarak[l][1]==1) nilai1=pow(jarak[l][0],(-2)); nilaig=nilaig+nilai1; nilai2=pow(jarak[l][0],(-2)); nilaib=nilaib+nilai2; total=pow(jarak[l][0],(-2)); total1=total1+total; kelas1=nilaig/total1; kelas2=nilaib/total1; if(kelas1>kelas2) //menentukan kelas klasifikasi data uji ke-i kelasuji[i][0]=1; kelasuji[i][0]=2; cout<<endl; kelasklasifikasi.open("hasil.txt"); cout<<"data uji "<<setw(6)<<" kelas klasifikasi "<<setw(6)<<" kelas asli"<<endl; kelasklasifikasi<<"datauji "<<setw(6)<<" kelasklasifikasi "<<setw(6)<<" kelasasli"<<endl; for(i=0;i<140;i++) cout<<setw(6)<<i+1<<setw(15)<<kelasuji[i][0]<<setw(18)<<konversiuji[i][13]<<endl; kelasklasifikasi<<setw(6)<<i+1<<setw(15)<<kelasuji[i][0]; kelasklasifikasi<<setw(18)<<konversiuji[i][13]<<endl; cout<<endl; kelasklasifikasi.close(); jarakterdekat.close(); cout<<endl; pgood=0; for(i=0;i<140;i++) if(kelasuji[i][0]==konversiuji[i][13])//uji validasi pgood=pgood+1; persen=(pgood/140)*100; cout<<"dengan jumlah tetangga terdekat(k)= "<<tetangga<<endl; cout<<"presentase keberhasilan klasifikasi sebesar "<<persen<<"%"<<endl<<endl<<endl; getch();
Lampiran 7-1 Lampiran 7. Hasil Klasifikasi dan Uji Validasi Data Uji Kelas Klasifikasi Kelas Asli 1 1 1 2 1 1 3 1 1 4 1 1 5 2 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 1 1 24 1 1 25 1 1 26 1 1 27 1 1 28 1 1 29 1 1 30 1 1 31 1 1 32 1 1 33 1 1 34 1 1 35 1 1 36 1 1 37 1 1 38 1 1 39 1 1
Lampiran 7-2 Data Uji Kelas Klasifikasi Kelas Asli 40 1 1 41 1 1 42 1 1 43 1 1 44 1 1 45 1 1 46 1 1 47 1 1 48 1 1 49 2 1 50 1 1 51 1 1 52 1 1 53 1 1 54 1 1 55 1 2 56 1 1 57 1 1 58 1 1 59 1 1 60 1 1 61 1 1 62 1 1 63 1 1 64 1 1 65 1 1 66 1 1 67 1 1 68 1 1 69 1 1 70 1 1 71 1 1 72 1 1 73 1 1 74 1 1 75 1 1 76 1 1 77 1 1 78 1 1 79 1 1
Lampiran 7-3 Data Uji Kelas Klasifikasi Kelas Asli 80 1 1 81 1 1 82 1 1 83 1 1 84 1 1 85 1 1 86 1 1 87 1 1 88 1 2 89 1 1 90 1 1 91 1 1 92 1 2 93 1 1 94 1 1 95 1 1 96 1 1 97 1 1 98 1 1 99 1 1 100 1 1 101 1 1 102 2 1 103 1 1 104 1 1 105 1 1 106 1 1 107 1 1 108 1 1 109 1 1 110 1 1 111 1 1 112 2 1 113 1 1 114 1 1 115 1 1 116 1 1 117 1 1 118 1 1 119 1 1
Lampiran 7-4 Data Uji Kelas Klasifikasi Kelas Asli 120 1 1 121 2 1 122 1 1 123 1 1 124 1 1 125 1 1 126 1 2 127 1 1 128 1 1 129 1 1 130 1 1 131 2 1 132 1 1 133 1 1 134 1 1 135 2 1 136 1 1 137 1 1 138 1 1 139 1 1 140 1 1 Total data 140 Jumlah benar 129 % benar 92,1429