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