Preprocessing.m Pengelompokan artikel berbahasa Jawa dengan hierarchical k means clustering.

92 Konversi matrix dari nomor ke cell array string XX = reshapestrtrimcellstrnum2strX:, sizeX; Penentuan yang akan diberi warna dengan fotmat html [~,I] = maxX; for i=1:sizeI,2 XXIi,i = strcat ... htmlspan style=color: 429808; font-weight: bold;font-size:14; , ... XXIi,i, ... spandivhtml ; end dataConfMat=XX; --- Executes on button press in buttonProses. function buttonProses_CallbackhObject, eventdata, handles hObject handle to buttonProses see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA

3. Preprocessing.m

function [semuaJmlPerKataUnik,matrixFIle,semuaKataUnik,calonDataCell ] = preprocessingbatasAwal,batasAkhir,N,kamusHubung,dataKamus UNTITLED2 Summary of this function goes here Detailed explanation goes here [matrixFIle{1:N,1}]=dealzeros0; for i=1:N baca dokumen alamatFile=strcat doc\ ,int2stri, .txt ; fileID = fopenalamatFile; Membuka file data = textscanfileID, s ; Membaca file fclosefileID; Menutup file data=data{1}; Memasukkan data ke dalam matriks data=regexprepdata, [.,?-+=\ :[];_12345678910­â­”— ] , ; Menghilangkan tanda baca 93 data=strtrimdata; datastrcmp ,data = []; Menghilangkan cell yang kosong data=lowerdata; Mengubah huruf besar menjadi kecil fid = fopen Data\dataAwal.txt , w ; for row = 1:sizedata,1 fprintffid, repmat s\t ,1,sizedata,2-1, data{row,1:end-1}; fprintffid, s\n , data{row,end}; end fclosefid; stemming data,kamus ; perl stemcoba.pl ; fileID = fopen Data\dataHasil.txt ; Membuka file data = textscanfileID, s ; Membaca file fclosefileID; Menutup file hasilStem=data{1}; Memasukkan data ke dalam matriks hasilStem=regexprephasilStem, - , ; Menghilangkan tanda baca hasilStem=strtrimhasilStem; hasilStemstrcmp ,hasilStem = []; Menghilangkan cell yang kosong matrixFIle{i} = hasilStem; end matrixGabungan=[]; for i=1:N matrixGabungan=[matrixGabungan;matrixFIle{i}]; okAGROW end cek dengan kamus dan hapus kata hubung yaTdk=ismembermatrixGabungan,kamusHubung; assigninbase,yaTdk,yaTdk; [m,n]=sizematrixGabungan; dataTemp=[]; z=1; for j=1:m if yaTdkj,1==0 dataTemp{z}=matrixGabungan{j}; z=z+1; 94 end end hasilStem=dataTemp; idexHasilKamus=ismemberhasilStem,dataKamus; [m,~]=sizeidexHasilKamus; n=1; for i=1:m for j=1:n if idexHasilKamusi,1==1 hasilKamus{n,1}=hasilStem{i,1}; n=n+1; end end end hasilKamus=hasilKamus~cellfun isempty ,hasilKamus; [kataUnik,~,indeksKata]=uniquehasilKamus; Menentukan kata unik beserta indeksnya jmlReduksiKataUnik = lengthkataUnik; Jumlah total kata unik jmlPerKataUnik = histindeksKata,1:jmlReduksiKataUnik; Jumlah per kata unik jmlPerKataUnik=jmlPerKataUnik; semuaKataUnik=kataUnik; semuaJmlPerKataUnik=jmlPerKataUnik; [m,n]=sizebatasAwal; for k=1:m [m,n]=sizejmlPerKataUnik; dataTemp2=[]; dataTemp3=[]; dataTemp4=[]; dataTemp5=[]; x=1; y=1; for i=1:m if jmlPerKataUniki,1batasAwalk,1 jmlPerKataUniki,1batasAkhirk,1 if jmlPerKataUniki,12 jmlPerKataUniki,1200 if jmlPerKataUniki,12 jmlPerKataUniki,1100 if jmlPerKataUniki,180 jmlPerKataUniki,1100 95 dataTemp2x,1=jmlPerKataUniki,1; dataTemp3{x,1}=kataUnik{i,1}; x=x+1; else dataTemp4y,1=jmlPerKataUniki,1; dataTemp5{y,1}=kataUnik{i,1}; y=y+1; end end jmlPerKataUnik= dataTemp2; kataUnik= dataTemp3; jmlSelainKataUnik{k}=dataTemp4; selainKataUnik{k}=dataTemp5; countKataUnik = sumjmlPerKataUnik; [m,n]=sizejmlPerKataUnik; matrixBobot=zerosm,n; for i=1:m matrixBoboti=log10countKataUnikjmlPerKataUniki; end calonData=zerossizematrixBobot,1,N; for i=1:N tempMatrixFile=matrixFIle{i}; [m,n]=sizetempMatrixFile; for j=1:m [row,~] = findismemberkataUnik,tempMatrixFilej,1; calonDatarow, i=matrixBobotrow,1; end end calonDataCell{k}=calonData; end assignin base , jmlSelainKataUnik ,jmlSelainKataUnik; assignin base , selainKataUnik ,selainKataUnik; assignin base , jmlSelainKataUnik ,jmlSelainKataUnik; assignin base , selainKataUnik ,selainKataUnik; end

4. Kmeans1.m