Implementasi Klasifikasi Dokumen IMPLEMENTASI

4.3. Implementasi Klasifikasi Dokumen

Pada Method testTrain ini digunakan untuk mengimplementasikan mulai dari menghitung tf term frequency, wbobot dokumen, perhitungan inner product, sampai pada perhitungan cosine similarity dan penentuan klasifikasi dokumen berdasarkan k yang diinputkan oleh pengguna. public void testTrainString path, String test throws IOException { namaDok = ProsesData.listFilepath; System.out.printlnMEMULAI TRAINING FILE\n\nFile training :; res = res + MEMULAI TRAINING FILE\n\nFile training :\n; String fileTest; for int i = 0; i namaDok.length; i++ { if namaDok[i].equalsIgnoreCasetest { tes = i; daftarKata = daftarKata + ProsesData.openFilepath + , namaDok[i]; } else { System.out.println- + namaDok[i]; res = res + - + namaDok[i] + \n; daftarKata = daftarKata + ProsesData.openFilepath + , namaDok[i]; } } System.out.printlnDokumen Testing : ; System.out.println- + test; res = res + Dokumen Testing : \n; res = res + - + test + \n; daftarKata = ProsesData.sortingdaftarKata; daftarKata = ProsesData.hapusDuplikasiKatadaftarKata; term = ProsesData.listTermdaftarKata; System.out.print\n\n; for int i = 0; i term.length; i++ { System.out.printlnterm[i]; } termFreq = new int[namaDok.length][term.length]; W = new double[namaDok.length][term.length]; WD = new double[namaDok.length][term.length]; WW = new double[namaDok.length][term.length]; JWD = new double[namaDok.length]; PV = new double[namaDok.length]; InvertedIndex xdf = new InvertedIndex; System.out.println\nMenghitung jumlah file per kategori; res = res + \nMenghitung jumlah file per kategori\n; for int i = 0; i namaDok.length; i++ { if namaDok[i].containsekonomi { ekonomi++; } else if namaDok[i].containspolitik { politik++; } else if namaDok[i].containscerita { cerita++; } else if namaDok[i].containspendidikan { pendidikan++; } else if namaDok[i].containskesehatan { kesehatan++; } } System.out.printlnEkonomi : + ekonomi; res = res + ekonomi : + ekonomi + \n; System.out.printlnPolitik : + politik; res = res + Politik : + politik + \n; System.out.printlnCerita : + cerita; res = res + Cerita : + cerita + \n; System.out.printlnPendidikan : + pendidikan; res = res + Pendidikan : + pendidikan + \n; System.out.printlnKesehatan : + kesehatan; res = res + Kesehatan : + kesehatan + \n; System.out.print\nMenghitung kata pada tiap dokumen\nDokumen\t ; res = res + \nMenghitung kata pada tiap dokumen\nDokumen\t; for int i = 0; i term.length; i++ { System.out.print\t + term[i]; res = res + \t + term[i]; } CARI TERM FREQ TIAP DOK for int i = 0; i namaDok.length; i++ { System.out.print\n + namaDok[i]; res = res + \n + namaDok[i] + \t; InvertedIndex a = new InvertedIndex; String tempDok = ProsesData.openFilepath + , namaDok[i]; StringTokenizer tok = new StringTokenizertempDok; String temp = ; while tok.hasMoreTokens { temp = tok.nextToken; a.addtemp, namaDok[i]; xdf.addtemp, namaDok[i]; } for int j = 0; j term.length; j++ { termFreq[i][j] = a.cariKataterm[j]; System.out.print\t + termFreq[i][j]; res = res + \t + termFreq[i][j]; } } CARI DF System.out.println\nMenghitung DF; res = res + \n\nMenghitung DF :; System.out.printDF : ; res = res + \nDF : ; df = new int[term.length]; for int i = 0; i term.length; i++ { df[i] = xdf.cariDFterm[i]; System.out.print\t + df[i]; res = res + \t + df[i]; } CARI W System.out.println\n\nMenghitung W; res = res + \n\nMenghitung W\n; System.out.printW : ; res = res + \nW : ; for int i = 0; i namaDok.length; i++ { for int j = 0; j term.length; j++ { W[i][j] = termFreq[i][j] Math.log10namaDok.length df[j]; W[i][j] = termFreq[i][j] Math.log10double namaDok.length double df[j]; System.out.printtermfreq +termFreq[i][j]+n + namaDok.length +df +df[j]+; System.out.print\t\t + W[i][j]; res = res + \t\t + W[i][j]; } System.out.print\n; res = res + \n; } HITUNG WD System.out.println\nMenghitung WD; res = res + \n\nMenghitung WD; System.out.printWD : ; res = res + \nWD : ; for int i = 0; i namaDok.length; i++ { if i = tes { for int j = 0; j term.length; j++ { WD[i][j] = W[i][j] W[tes][j]; System.out.print\t\t + WD[i][j]; res = res + \t\t + WD[i][j]; } System.out.println; res = res + \n; } else { for int j = 0; j term.length; j++ { WD[i][j] = 0; } } } HITUNG WW PV System.out.println\nMenghitung WW; res = res + \n\nMenghitung WW; for int i = 0; i namaDok.length; i++ { for int j = 0; j term.length; j++ { WW[i][j] = W[i][j] W[i][j]; System.out.print\t\t + WW[i][j]; res = res + \t\t + WW[i][j]; } System.out.println; res = res + \n; } JUMLAH WD System.out.println\nMenghitung Jumlah WD; res = res + \n\nMenghitung Jumlah WD\n; System.out.printJumlah WD : ; res = res + \nJumlah WD : ; for int i = 0; i namaDok.length; i++ { double temp = 0; for int j = 0; j term.length; j++ { temp = temp + WD[i][j]; System.out.println+temp; } JWD[i] = temp; System.out.print + JWD[i]; res = res + + JWD[i]; } JUMLAH PV System.out.println\n\nMenghitung PV; res = res + \n\nMenghitung PV; System.out.printPV : ; res = res + \nPV : ; for int i = 0; i namaDok.length; i++ { double temp = 0; for int j = 0; j term.length; j++ { temp = temp + WW[i][j]; } PV[i] = temp; System.out.print + PV[i]; res = res + + PV[i]; } HITUNG COS System.out.print\n\nHitung Cosine Similarity\n; res = res + \n\nHitung Cosine Similarity\n; COS = new double[namaDok.length]; for int i = 0; i namaDok.length; i++ { if i = tes { COS[i] = JWD[i] Math.sqrtdouble PV[tes] Math.sqrtdouble PV[i]; System.out.printpvtest +Math.sqrtPV[tes] + pv ke i +Math.sqrtPV[i] + ..... ; System.out.printlnAAAAAAAAAAA +JWD[i];hj System.out.print + COS[i]; res = res + + COS[i]; } } SORTING COS System.out.print\n\nMengurutkan COS : ; res = res + \n\nMengurutkan COS : ; double sort = 0; String file; for int i = 0; i namaDok.length; i++ { for int j = 0; j namaDok.length; j++ { if COS[i] COS[j] { sort = COS[i]; file = namaDok[i]; COS[i] = COS[j]; namaDok[i] = namaDok[j]; COS[j] = sort; namaDok[j] = file; } } } DISPLAY ALL COS for int i = 0; i COS.length; i++ { System.out.printOK\n\nNama dokumen : + namaDok[i] + , COS : + COS[i]; res = res + OK\n\nNama dokumen : + namaDok[i] + , COS : + COS[i]; } DISPLAY COS BERDASARKAN INPUT K System.out.print\n\nCOS berdasarkan K = + Home.jTextField1.getText + : ; String result = ; res = res + \n\nCOS berdasarkan K = + Home.jTextField1.getText; for int i = 0; i Integer.parseIntHome.jTextField1.getText; i++ { System.out.print\nNama dokumen : + namaDok[i] + , COS : + COS[i]; res = res + \nNama dokumen : + namaDok[i] + , COS : + COS[i]; } double ek = 0, po = 0, ce = 0, pe = 0, ke = 0; for int i = 0; i Integer.parseIntHome.jTextField1.getText; i++ { if namaDok[i].containsekonomi { ek = ek + 1; } else if namaDok[i].containspolitik { po = po + 1; } else if namaDok[i].containscerita { ce = ce + 1; } else if namaDok[i].containspendidikan { pe = pe + 1; } else if namaDok[i].containskesehatan { ke = ke +1; } } double ekC = 0, poC = 0, ceC = 0, peC = 0, keC = 0; for int i = 0; i Integer.parseIntHome.jTextField1.getText; i++ { if namaDok[i].containsekonomi { ek = ek + COS[i]; } else if namaDok[i].containspolitik { po = po + COS[i]; } else if namaDok[i].containscerita { ce = ce + COS[i]; } else if namaDok[i].containspendidikan { pe = pe + COS[i]; } else if namaDok[i].containskesehatan { ke = ke + COS[i]; } } double temp = 0; for int i = 0; i Integer.parseIntHome.jTextField1.getText; i++ { if ek temp { temp = ek; result = ekonomi; } if po temp { temp = po; result = politik; } if ce temp { temp = ce; result = cerita; } if pe temp { temp = pe; result = pendidikan; } if ke temp { temp = ke; result = kesehatan; } else{ if ekC temp { temp = ekC; result = ekonomi; } if poC temp { temp = poC; result = politik; } if ceC temp { temp = ceC; result = cerita; } if peC temp { temp = peC; result = pendidikan; } if keC temp { temp = keC; result = kesehatan; } } } System.out.println\n\nKlasifikasi : +result; System.out.println\n+++ekonomi+++++++ +ek; System.out.println\n++polittik++++++++ +po; System.out.println\n++cerita++++++++ +ce; System.out.println\n++++pendidikan++++++ +pe; System.out.println\n+++kesehatan+++++++ +ke; Home.jTable1.setValueAtresult, 0, 1; System.out.println\n\nSelesai; res = res + \n\nSelesai\n\n; Home.jTextArea1.setTextres; } List Code 4.2.5 Aplikasi K-NN 4.4. Implementasi Antar Muka 4.4.1. Halaman Preprocessing Dokumen