SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani...

33
APPENDIX CLUSTERING: import java.util.Random; import java.io.*; import java.util.*; import java.text.DecimalFormat; public class Clustering { private ClusteringLinkList hasilkedekatan=new ClusteringLinkList(); public String namaFile="coba.txt"; TextLinkList baru=new TextLinkList(); private int nilaiRand=0; private int kedekatan=10000000; private int pembagian=3; public Clustering(String namaFile) { String line = null; int i=0; try { FileInputStream FSStream = new FileInputStream(namaFile); DataInputStream filemasuk = new DataInputStream(FSStream); BufferedReader baca = new BufferedReader(new InputStreamReader(filemasuk)); while((line = baca.readLine()) != null) { String token[] = line.split(",");//d pisahkan tiap , while(i<token.length) { A

Transcript of SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani...

Page 1: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

APPENDIX

CLUSTERING:

import java.util.Random;

import java.io.*;

import java.util.*;

import java.text.DecimalFormat;

public class Clustering

{

private ClusteringLinkList hasilkedekatan=new ClusteringLinkList();

public String namaFile="coba.txt";

TextLinkList baru=new TextLinkList();

private int nilaiRand=0;

private int kedekatan=10000000;

private int pembagian=3;

public Clustering(String namaFile)

{

String line = null;

int i=0;

try

{

FileInputStream FSStream = new FileInputStream(namaFile);

DataInputStream filemasuk = new DataInputStream(FSStream);

BufferedReader baca = new BufferedReader(new InputStreamReader(filemasuk));

while((line = baca.readLine()) != null)

{

String token[] = line.split(",");//d pisahkan tiap ,

while(i<token.length)

{

A

Page 2: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

SaringTandaBaca text1 = new SaringTandaBaca(token[i]);

baru.setTextLinkList(text1);

//baru.cetakTextLinkList();

//baru.setcetakposisi(1);

//baru.getJumlahNode(2);

//baru.getJumlahNode(1);

//baru.getPanjangLinkListNilaiHash();

i++;

}

}

filemasuk.close();

}

catch(IOException e)

{

System.out.println("error");

}

}

public void Random()

{

//int arraytampung=0;

int arraytampung=baru.getPanjangLinkListNilaiHash();

int[] tampung;

int array=0;

int linklist=1;

tampung=new int[arraytampung];

for(int k=1;k<=arraytampung;k++)

{

B

Page 3: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

tampung[array]=baru.getJumlahNode(linklist);

array++;

linklist++;

}

int rnd=new Random().nextInt(arraytampung);

this.nilaiRand = tampung[rnd];

}

/*public int Rumus()

{

Random();

//int arraytampung=0;

int arraytampung1=baru.getPanjangLinkListNilaiHash();

int[] tampung1;

tampung1=new int[arraytampung1];

int array=0;

int linklist1=1;

for(int k=1;k<=arraytampung1;k++)

{

tampung1[array]=baru.getJumlahNode(linklist1)-this.nilaiRand;

System.out.println("nilai1="+baru.getJumlahNode(linklist1)+"-nilai2="+this.nilaiRand);

linklist1++;

}

//System.out.println("nilai1="+baru.getJumlahNode(linklist1));

//System.out.println("nilai2="+this.nilaiRand);

return tampung1[array];

}*/

C

Page 4: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

public Object[][] Rumus1()

{

int arraytampung2=baru.getPanjangLinkListNilaiHash();

Object xy[][]=new Object[arraytampung2][pembagian+1];

String asd="";

for(int i=0;i<arraytampung2;i++)

{

for(int j=0;j<pembagian+1;j++)

{

xy[i][j]="";

}

}

Random();

int[] tampung2;

tampung2=new int[arraytampung2];

String[] zx;

zx=new String[arraytampung2];

int array2=0;

int linklist2=1;

int batasatas=nilaiRand+kedekatan;

int batasbawah=nilaiRand-kedekatan;

int jarak=(batasatas-batasbawah)/pembagian;

int a=batasbawah;

int b=batasbawah+jarak;

int cluster=1;

int ceker=0;

System.out.println("random="+nilaiRand);

System.out.println("kedekatan="+this.kedekatan);

System.out.println("batasatas="+batasatas);

System.out.println("batasbawah"+batasbawah);

D

Page 5: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

System.out.println("jarak"+jarak);

try{

PrintWriter writer = new PrintWriter("hasil.txt", "UTF-8");

for(int k=1;k<=arraytampung2;k++)

{

tampung2[array2]=baru.getJumlahNode(linklist2);

zx[array2]=baru.getJumlahNodeText(linklist2);

//System.out.println("node="+tampung2[array2]);

/*if(tampung2[array2]>=batasbawah && tampung2[array2]<=batasatas)

{

xy=xy+"Masuk = "+zx[array2]+" = "+tampung2[array2]+"\n";

writer.print(xy);//menjadikan txt

//System.out.println("zx="+zx[array2]);

}*/

a=batasbawah;

b=batasbawah+jarak;

cluster=1;

for(int m=0;m<pembagian;m++)

{

System.out.println("tampung="+tampung2[array2]);

System.out.println("a="+a);

System.out.println("b="+b);

if(tampung2[array2]>=a && tampung2[array2]<=b)

E

Page 6: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

asd=zx[array2]/*+" = "+tampung2[array2]+""*/;

System.out.println("asd="+asd);

xy[k-1][m]=asd;

ceker=1;

}

cluster++;

a=a+jarak;

//System.out.println("a="+a);

b=b+jarak;

//System.out.println("b="+b);

}

if(ceker==0)

{

asd=zx[array2]/*+" = "+tampung2[array2]+"\n"*/;

xy[k-1][pembagian]=asd;

writer.print(xy);

System.out.println("nilai1="+tampung2[array2]+" <="+batasbawah+" dan "+">="+batasatas+" bukan claster a");

}

ceker=0;

linklist2++;

array2++;

}

writer.close();

} catch (IOException e) {

// do something

}

return xy;

}

public void setkedekatan(int kedekatan)

F

Page 7: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

this.kedekatan=kedekatan;

}

public int getkedekatan()

{

return kedekatan;

}

public void setpembagian(int pembagian)

{

this.pembagian=pembagian;

}

public int getpembagian()

{

return pembagian;

}

}

CLUSTERING LINKLIST:

public class ClusteringLinkList

{

private ClusteringNode deret;

int panjangcluster=0;

public ClusteringLinkList()

{

this.deret=null;

}

public void setClusteringLinkList(int cluster)

{

ClusteringNode baru=new ClusteringNode(cluster);

ClusteringNode curr;

curr=deret;

if(deret==null)

G

Page 8: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

deret=baru;

panjangcluster++;

}

else

{

while(curr.getNext()!=null)

{

curr=curr.getNext();

panjangcluster++;

}

curr.setNext(baru);

}

//curr.cetakInputanNode();

}

public void cetakClusteringLinkList()

{

ClusteringNode curr;

curr=deret;

while(curr!=null)

{

curr.cetakClusteringNode();

curr=curr.getNext();

}

System.out.println();

}

}

CLUSTERING NODE:

public class ClusteringNode

{

private int cluster;

H

Page 9: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

private ClusteringNode next;

public ClusteringNode(int cluster)

{

this.cluster=cluster;

next=null;

}

public void setClusteringNode(int cluster)

{

this.cluster=cluster;

}

public int getClusteringNode()

{

return cluster;

}

public void setNext(ClusteringNode baru)

{

this.next=baru;

}

public ClusteringNode getNext()

{

return next;

}

public int getcluster()

{

return cluster;

}

public void setcluster(int cluster)

{

this.cluster=cluster;

}

I

Page 10: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

/*public int getAscii()

{

int asciiString=karakter;

return asciiString;

}*/

public void cetakClusteringNode()

{

System.out.println(""+getClusteringNode());

}

public void cetakNilaiAscii()

{

System.out.println("nilai ascii"+getClusteringNode());

}

}

INPUT:

budi memasak,budi memancing,ani memasak,ikan berenang,andi sedang bekerja,bola dikaki budi

DERET KARAKTER:

public class DeretKarakter

{

private Karakter deret;

public int jumlah = 0;

public DeretKarakter()

{

this.deret=null;

}

public void setDeretBelakang(char karakter)

{

Karakter baru=new Karakter(karakter);

Karakter curr;

curr=deret;

if(deret==null)

{

deret=baru;

J

Page 11: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

}

else

{

while(curr.getNext()!=null)

{

curr=curr.getNext();

}

curr.setNext(baru);

}

}

public void cetakDeretKarakter()

{

Karakter curr;

curr=deret;

while(curr!=null)

{

curr.cetakKarakter();

curr=curr.getNext();

}

System.out.println();

}

public String setAmbilXHuruf(int i,int ngram,int batas)

{

Karakter curr;

curr=deret;

String x="";

int z=0;

while(curr!=null)

{

if(z==i)

{

//System.out.println(""+ngram);

K

Page 12: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

for(int b=0;b<ngram;b++)

{

x=x+curr.getKarakter();

curr=curr.getNext();

}

//System.out.println(""+x);

if(z==batas)

break;

}

z++;

curr=curr.getNext();

}

//System.out.println(""+x);

return x;

}

public void cetakXHuruf(int ngram)

{

Karakter curr;

curr=deret;

int count=0;

String hasil="";

int batas=0;

int i=0;

while(curr!=null)

{

count++;

curr=curr.getNext();

}

curr =deret;

batas=count-ngram;

while(curr!=null)

{

L

Page 13: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

if(i<=batas)

{

hasil=setAmbilXHuruf(i,ngram,batas);

System.out.println(""+hasil); //abc

int ukuran = hasil.length();

double pangkat = (double)hasil.length();

//hash test = new hash(hasil);

//test.simpanHuruf();

//test.cetakListHuruf();

int[] ascii = new int[ukuran];

char[] huruf = new char[ukuran];

int pengurang = 1;

//System.out.println(" ukuran = "+ukuran);

for(int z=0; z<ukuran;z++){

ascii[z] = hasil.charAt(z);

//System.out.println(" z = "+ascii[z]);

//System.out.println(" aaaa = "+ukuran);

huruf[z] = (char)hasil.charAt(z);

//System.out.print(" huruf "+z+" = "+huruf[z]+" ascii-nya = "+ascii[z]);

jumlah = jumlah + ascii[z]*((int)Math.pow(3,(pangkat-pengurang)));

if(jumlah<0)

{

jumlah=jumlah*(-1);

}

pengurang++;

}

//deretnilaingram.setNgramLinkList(jumlah);

//int hasil = jumlah;

//System.out.println(" jumlahnya(pakai rumus) = "+jumlah);

M

Page 14: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

}

i++;

curr=curr.getNext();

}

}

public int getNilaiHash()

{

return jumlah;

}

}

GUI:

import java.io.*;

import java.util.*;

import java.text.DecimalFormat;

import java.awt.*;

import javax.swing.*;

import javax.swing.table.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class GUI {

private JFrame frame;

JTextField inputansatu;

JLabel satu;

JTextField inputandua;

JLabel dua;

JTextField inputantiga;

N

Page 15: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

JLabel tiga;

JTable table;

/*public static void main(String[] args)

{

EventQueue.invokeLater(new Runnable()

{

public void run()

{

try

{

GUI window = new GUI();

}

catch (Exception e)

{

e.printStackTrace();

}

}

});

}*/

public GUI()

{

initialize();

}

private void initialize()

{

frame = new JFrame("Program pengclusteran kalimat");

frame.setBounds(100,100,800,600);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().setLayout(null);

O

Page 16: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

satu = new JLabel("Input file txt:");

satu.setSize(satu.getPreferredSize());

satu.setLocation(20,30);

frame.add(satu);

inputansatu = new JTextField();

inputansatu.setColumns(20);

inputansatu.setSize(inputansatu.getPreferredSize());

inputansatu.setLocation(10,50);

inputansatu.setToolTipText("Masukkan file txt");

frame.add(inputansatu);

dua = new JLabel("Input nilai kedekatan:");

dua.setSize(dua.getPreferredSize());

dua.setLocation(20,80);

frame.add(dua);

inputandua = new JTextField();

inputandua.setColumns(20);

inputandua.setSize(inputandua.getPreferredSize());

inputandua.setLocation(10,100);

inputandua.setToolTipText("Masukkan nilai kedekatan");

frame.add(inputandua);

tiga = new JLabel("Input pembagian:");

tiga.setSize(tiga.getPreferredSize());

tiga.setLocation(20,130);

frame.add(tiga);

inputantiga = new JTextField();

P

Page 17: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

inputantiga.setColumns(20);

inputantiga.setSize(inputantiga.getPreferredSize());

inputantiga.setLocation(10,150);

inputantiga.setToolTipText("masukkan nilai pembagian");

frame.add(inputantiga);

final JTextArea textArea = new JTextArea();

textArea.setFont(new Font("Monospaced", Font.PLAIN, 14));

textArea.setForeground(Color.RED);

textArea.setEditable(false);

textArea.setBounds(0,235,450,150);

JButton btnNewButton = new JButton("ok");

btnNewButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent arg0)

{

Clustering kata = new Clustering(inputansatu.getText());

//OpenFile of=new OpenFile();

String a=inputandua.getText();

String b=inputantiga.getText();

int kedekatan=Integer.parseInt(a);

int pembagian=Integer.parseInt(b);

kata.setkedekatan(kedekatan);

kata.setpembagian(pembagian);

try

{

String columnNames []= new String[pembagian+1];

for(int u=0; u<pembagian+1;u++)

Q

Page 18: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

columnNames[u]= "clustering "+u;

}

Object hasil[][] = kata.Rumus1();

System.out.println(hasil.length);

System.out.println(hasil[0].length);

table =new JTable(hasil,columnNames);

table.setFont(new Font("Monospaced", Font.PLAIN, 14));

table.setForeground(Color.RED);

table.setBounds(0,300,800,150);

frame.getContentPane().add(table);

//frame.setVisible(true);

//frame.getContentPane().add(new JScrollPane(table));

//textArea.setText(hasil);

//of.PickMe();;

}

catch (Exception e)

{

e.printStackTrace();

textArea.setText("Error input <error>");

}

}

});

R

Page 19: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

JButton btnNewButton1 = new JButton("get file");

btnNewButton1.addActionListener(new chooseFile());

btnNewButton.setBounds(125,180,150,43);

frame.getContentPane().add(btnNewButton);

btnNewButton1.setBounds(250,50,100,20);

frame.getContentPane().add(btnNewButton1);

//frame.add(table);

frame.setVisible(true);

}

public void funcchooseFile()

{

JFileChooser fileChooser = new JFileChooser();

fileChooser.setCurrentDirectory(new java.io.File("."));

int result2 = fileChooser.showOpenDialog(null);

if (result2 == fileChooser.APPROVE_OPTION) {

File selectedFileChooser = fileChooser.getSelectedFile();

System.out.println(selectedFileChooser.getAbsolutePath());

this.inputansatu.setText(selectedFileChooser.getAbsolutePath());

}

}

class chooseFile implements ActionListener

S

Page 20: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

public void actionPerformed(ActionEvent e)

{

funcchooseFile();

}

}

}

KARAKTER NODE:

public class Karakter

{

private char karakter;

private Karakter next;

public Karakter(char karakter)

{

this.karakter=karakter;

next=null;

}

public void setKarakter(char karakter)

{

this.karakter=karakter;

}

public char getKarakter()

{

return karakter;

}

public void setNext(Karakter baru)

{

this.next=baru;

}

public Karakter getNext()

T

Page 21: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

return next;

}

public int getAscii()

{

int asciichar=karakter;

return asciichar;

}

public void cetakKarakter()

{

System.out.print(""+getKarakter());

}

public void cetakNilaiAscii()

{

System.out.println("nilai ascii"+getKarakter());

}

}

NGRAM NODE:

public class NgramNode

{

private int jumlah;

private NgramNode next;

public NgramNode(int jumlah)

{

this.jumlah=jumlah;

next=null;

}

public void setNgramNode(int jumlah)

{

this.jumlah=jumlah;

}

public int getNgramNode()

U

Page 22: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

{

return jumlah;

}

public void setNext(NgramNode baru)

{

this.next=baru;

}

public NgramNode getNext()

{

return next;

}

public int getjumlah()

{

return jumlah;

}

public void setJumlah(int jumlah)

{

this.jumlah=jumlah;

}

/*public int getAscii()

{

int asciiString=karakter;

return asciiString;

}*/

public void cetakNgramNode()

{

System.out.print(""+getNgramNode());

}

public void cetakNilaiAscii()

{

System.out.println("nilai ascii"+getNgramNode());

}

V

Page 23: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

}

OPEN FILE:

import java.util.Scanner;

import javax.swing.JFileChooser;

public class OpenFile

{

JFileChooser fileChooser = new JFileChooser();

StringBuilder sb = new StringBuilder();

public void PickMe() throws Exception

{

if(fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION)

{

java.io.File file = fileChooser.getSelectedFile();

Scanner input = new Scanner(file);

while(input.hasNext())

{

sb.append(input.nextLine());

sb.append("\n");;

//sb.append(file);

}

input.close();

}

else

{

sb.append("No file was selected");

}

}

}

FILTER THE PUNCTUATION:

public class SaringTandaBaca

{

private DeretKarakter tandabaca = new DeretKarakter();

private TextLinkList nilaihash=new TextLinkList();

private String inputkata;

W

Page 24: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

public int jumlahhuruf;

public int jumlah1;

public SaringTandaBaca(String inputkata)

{

this.inputkata=inputkata;

}

public void setSaringTandaBaca()

{

int x=0;

char ubahascii;

for(int i=0;i<inputkata.length();i++)

{

x=inputkata.charAt(i);

if(x>=47 && x<=57 || x>=65 && x<=90 || x>=97 && x<=122)

//nomor huruf besar huruf kecil

{

if(x>=65 && x<=90)

{

x=x+32;

ubahascii= (char)x;

//System.out.println(""+ubahascii);

tandabaca.setDeretBelakang(ubahascii);

jumlahhuruf++;

}

else

{

ubahascii= (char)x;

tandabaca.setDeretBelakang(ubahascii);

//System.out.println(""+ubahascii);

jumlahhuruf++;

}

X

Page 25: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

}

}

}

public void cetakSaringTandaBaca()

{

tandabaca.cetakDeretKarakter();

}

public void cetakDeretXHuruf(int ngram)

{

tandabaca.cetakXHuruf(ngram);

}

public int getjumlahhuruf()

{

return jumlahhuruf;

}

public int getNilaiHash()

{

int jumlah1=0;

jumlah1=tandabaca.getNilaiHash();

System.out.println(""+jumlah1);

return jumlah1;

}

/*public int getHasilNilaiHash(int posisi)

{

int hasilnilaiposisi=0;

hasilnilaiposisi=nilaihash.getJumlahNode(posisi);

return hasilnilaiposisi;

}*/

public void cetakPosisi(int posisi)

{

Y

Page 26: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

nilaihash.setcetakposisi(posisi);

}

public int getNilaiFingerPrint(int posisi)

{

int hasilnilaiposisi=0;

hasilnilaiposisi=nilaihash.getJumlahNode(posisi);

return hasilnilaiposisi;

}

public String getinputkata()

{

return inputkata;

}

}

EXECUTION:

public class TestDrive

{

public static void main(String[] args)

{

GUI asik=new GUI();

}

}

TEXTLINKLIST:

public class TextLinkList

{

private TextNode deret;

private int panjanglinklistnilaihash=0;

public TextLinkList()

{

Z

Page 27: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

this.deret=null;

}

public void setTextLinkList(SaringTandaBaca seluruhtext)

{

seluruhtext.setSaringTandaBaca();

seluruhtext.cetakDeretXHuruf(seluruhtext.jumlahhuruf);

int nilaihash=seluruhtext.getNilaiHash();

String zz=seluruhtext.getinputkata();

TextNode baru=new TextNode(seluruhtext,nilaihash,zz);

TextNode curr;

curr=deret;

if(deret==null)

{

deret=baru;

panjanglinklistnilaihash++;

}

else

{

while(curr.getNext()!=null)

{

curr=curr.getNext();

}

curr.setNext(baru);

panjanglinklistnilaihash++;

}

}

public void cetakTextLinkList()

{

TextNode curr;

curr=deret;

AA

Page 28: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

while(curr!=null)

{

curr.cetakTextNode();

curr=curr.getNext();

}

System.out.println();

}

public void setcetakposisi(int posisi)

{

//int hasilposisi=0;

TextNode curr;

curr=deret;

for(int i=1;i<posisi;i++)

{

curr=curr.getNext();

}

curr.cetakTextNode();

System.out.println();

}

public int getJumlahNode(int posisi)

{

int hasilposisi=0;

TextNode curr;

curr=deret;

for(int i=1;i<posisi;i++)

{

curr=curr.getNext();

}

hasilposisi=curr.getNilaiHash();

return hasilposisi;

}

AB

Page 29: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

public String getJumlahNodeText(int posisi)

{

String hasilposisi="";

TextNode curr;

curr=deret;

for(int i=1;i<posisi;i++)

{

curr=curr.getNext();

}

hasilposisi=curr.getkalimat();

return hasilposisi;

}

public int getPanjangLinkListNilaiHash()

{

System.out.println("panjang="+panjanglinklistnilaihash);

return panjanglinklistnilaihash;

}

}

TEXT NODE:

public class TextNode

{

private SaringTandaBaca seluruhtext;

private String kalimat;

private int nilaihash;

private TextNode next;

public TextNode(SaringTandaBaca seluruhtext,int nilaihash,String kalimat)

{

this.seluruhtext=seluruhtext;

this.nilaihash=nilaihash;

AC

Page 30: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

this.kalimat=kalimat;

next=null;

}

public void setTextNode(SaringTandaBaca seluruhtext)

{

this.seluruhtext=seluruhtext;

}

public SaringTandaBaca getTextNode()

{

return seluruhtext;

}

public void setNilaiHash(int nilaihash)

{

this.nilaihash=nilaihash;

}

public void setNext(TextNode baru)

{

this.next=baru;

}

public int getNilaiHash()

{

return nilaihash;

}

public SaringTandaBaca getseluruhtext()

{

return seluruhtext;

}

public void setSeluruhtext(SaringTandaBaca seluruhtext)

{

this.seluruhtext=seluruhtext;

}

public TextNode getNext()

{

AD

Page 31: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

return next;

}

public void cetakTextNode()

{

System.out.println("coba1="+getNilaiHash());

}

public void setkalimat(int nilaihash)

{

this.kalimat=kalimat;

}

public String getkalimat()

{

return kalimat;

}

public void setkalimat(String kalimat)

{

this.kalimat=kalimat;

}

}

AE

Page 32: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

Filename:Setiawan_Dani_Similarity_Detection_Using_Winnowing_and_Clustering.pdf

Date: 2017-07-26 06:04 UTCResults of plagiarism analysis from 2017-07-26 06:07 UTC

1445 matches from 81 sources, of which 14 are online sources.

PlagLevel: 5.6%/61.0%

[0] (373 matches, 0.0%61.0%) from a PlagScan document of your organisation...g_and_k-means.pdf" dated 2017-07-21 [1] (23 matches, 0.0%3.8%) from a PlagScan document of your organisation...nd_Clustering.odt" dated 2017-07-25 [2] (25 matches, 3.1%) from your PlagScan document "Tugas_Akhir...ARES_IDENTIFY.pdf" dated 2017-07-26 [3] (24 matches, 2.9%/3.1%) from your PlagScan document "Sugianto_Pe...hm_Comparison.odt" dated 2017-07-26

(+ 1 documents with identical matches) [5] (24 matches, 2.9%/3.1%) from your PlagScan document "Vernando__A...LTIPLE_HEAPS..odt" dated 2017-07-26

(+ 1 documents with identical matches) [7] (25 matches, 2.9%/3.0%) from a PlagScan document of your organisation...MATIC_PATTERN.pdf" dated 2017-07-26 [8] (24 matches, 2.9%) from a PlagScan document of your organisation...REST_LOCATION.odt" dated 2017-07-26 [9] (23 matches, 2.8%) from your PlagScan document "Skripsi_12....TRA_ALGORITHM.odt" dated 2017-07-26

(+ 1 documents with identical matches) [11] (22 matches, 2.8%) from a PlagScan document of your organisation...AIML_DATABASE.pdf" dated 2017-07-25 [12] (22 matches, 2.8%) from your PlagScan document "OEI_STANLEY...AIML_DATABASE.pdf" dated 2017-07-26 [13] (21 matches, 2.7%) from a PlagScan document of your organisation...port_13020053.pdf" dated 2017-07-25 [14] (21 matches, 2.7%/2.9%) from your PlagScan document "Nunnajib_Na...att_Algorithm.pdf" dated 2017-07-26 [15] (21 matches, 2.7%) from your PlagScan document "Henry_Hardi...D_APPLICATION.odt" dated 2017-07-26

(+ 2 documents with identical matches) [18] (20 matches, 2.6%/2.8%) from a PlagScan document of your organisation...att_Algorithm.pdf" dated 2017-07-25 [19] (19 matches, 2.7%) from your PlagScan document "Andrian_Har...ON_ON_ANDROID.odt" dated 2017-07-26 [20] (20 matches, 2.6%) from your PlagScan document "Wijayanti_D...ING_ARRAYLIST.pdf" dated 2017-07-26 [21] (19 matches, 2.7%) from your PlagScan document "Andrian_Har...ON_ON_ANDROID.odt" dated 2017-07-26

(+ 1 documents with identical matches) [23] (20 matches, 2.6%) from a PlagScan document of your organisation...ject_13020005.odt" dated 2017-07-25 [24] (20 matches, 2.6%) from a PlagScan document of your organisation...ING_ARRAYLIST.pdf" dated 2017-07-25 [25] (20 matches, 2.6%) from your PlagScan document "Devi_Floren...T'S_GRADE.pdf" dated 2017-07-26 [26] (20 matches, 2.6%) from your PlagScan document "CHRISTIAN_A...TUBE_DATA_API.odt" dated 2017-07-26 [27] (20 matches, 2.6%) from a PlagScan document of your organisation...T'S_GRADE.odt" dated 2017-07-25 [28] (20 matches, 2.6%) from a PlagScan document of your organisation...tube_Data_API.odt" dated 2017-07-25 [29] (19 matches, 2.6%) from your PlagScan document "DICKY_LARSO...WS_CLUSTERING.pdf" dated 2017-07-26 [30] (19 matches, 2.6%) from your PlagScan document "David_Kurni...RED_PROCEDURE.odt" dated 2017-07-26

(+ 1 documents with identical matches) [32] (19 matches, 2.6%) from a PlagScan document of your organisation...WS_CLUSTERING.pdf" dated 2017-07-25 [33] (19 matches, 2.6%) from a PlagScan document of your organisation..._NORTH_MALUKU.odt" dated 2017-07-26 [34] (19 matches, 2.6%) from a PlagScan document of your organisation..._GEDONG_SONGO.odt" dated 2017-07-26 [35] (19 matches, 2.6%) from a PlagScan document of your organisation...R_&_HISTOGRAM.odt" dated 2017-07-25 [36] (19 matches, 2.6%) from a PlagScan document of your organisation...RED_PROCEDURE.pdf" dated 2017-07-26 [37] (19 matches, 2.7%) from a PlagScan document of your organisation...D_APPLICATION.odt" dated 2017-07-26 [38] (18 matches, 2.5%) from a PlagScan document of your organisation...GISTRASI_USER.odt" dated 2017-07-26

(+ 1 documents with identical matches) [40] (17 matches, 2.5%) from a PlagScan document of your organisation...g_Google_Maps.odt" dated 2017-07-26 [41] (17 matches, 2.4%) from a PlagScan document of your organisation...g_Google_Maps.odt" dated 2017-07-26 [42] (17 matches, 2.5%) from a PlagScan document of your organisation...IPT_AND_HTML5.odt" dated 2017-07-26

Page 33: SIMILARITY DETECTION USING WINNOWING AND CLUSTERINGrepository.unika.ac.id/15337/9/12.02.0014 Dani Setiawan LAMPIRAN.… · APPENDIX CLUSTERING: import java.util.Random; import java.io.*;

[42] (17 matches, 2.5%) from a PlagScan document of your organisation...IPT_AND_HTML5.odt" dated 2017-07-26 [43] (17 matches, 2.4%) from a PlagScan document of your organisation...ogle_Maps_API.odt" dated 2017-07-25 [44] (17 matches, 2.5%) from your PlagScan document "Evan_Chandr...R_&_HISTOGRAM.odt" dated 2017-07-26 [45] (17 matches, 2.4%) from a PlagScan document of your organisation...OLLING_SYSTEM.odt" dated 2017-07-25 [46] (17 matches, 2.4%) from a PlagScan document of your organisation...g_Google_Maps.odt" dated 2017-07-25 [47] (11 matches, 1.7%) from a PlagScan document of your organisation...N_COEFFICIENT.pdf" dated 2017-03-03 [48] (9 matches, 1.5%) from a PlagScan document of your organisation...Project-v2-1.docx" dated 2016-03-02 [49] (8 matches, 1.5%) from a PlagScan document of your organisation...XY_USING_JAVA.pdf" dated 2017-03-07 [50] (8 matches, 1.5%) from a PlagScan document of your organisation..._Service_Chat.pdf" dated 2017-03-04 [51] (8 matches, 1.1%) from a PlagScan document of your organisation...ject-13020031.doc" dated 2017-03-20 [52] (7 matches, 1.2%) from a PlagScan document of your organisation...Z_APPLICATION.pdf" dated 2017-03-02 [53] (6 matches, 1.0%) from a PlagScan document of your organisation...DAG_Algorithm.pdf" dated 2017-03-03 [54] (7 matches, 0.5%/0.7%) from https://stackoverflow.com/questions/4490...-class-that-containsapache-poi-in-jframe [55] (6 matches, 0.5%) from a PlagScan document of your organisation...ogle_Maps_API.pdf" dated 2017-03-17 [56] (5 matches, 0.6%) from a PlagScan document of your organisation... Mersilia AS.docx" dated 2017-03-21

(+ 1 documents with identical matches) [58] (6 matches, 0.4%) from a PlagScan document of your organisation... Riki Santosa.pdf" dated 2016-05-23 [59] (4 matches, 0.3%) from a PlagScan document of your organisation..._WATERMARKING.pdf" dated 2017-03-03 [60] (4 matches, 0.3%) from a PlagScan document of your organisation...anduning Rat.docx" dated 2016-07-28 [61] (4 matches, 0.2%/0.4%) from https://sites.google.com/site/javaswingguis/3---components/5---jcombobox [62] (4 matches, 0.3%) from https://stackoverflow.com/questions/15344560/java-swing-separate-core-with-gui

(+ 1 documents with identical matches) [64] (3 matches, 0.2%) from a PlagScan document of your organisation...1.02.0060 1-6.pdf" dated 2016-03-04 [65] (3 matches, 0.2%) from a PlagScan document of your organisation...yes_Algorithm.pdf" dated 2017-03-06 [66] (4 matches, 0.3%) from a PlagScan document of your organisation...e_Recognition.pdf" dated 2017-03-03 [67] (3 matches, 0.2%) from a PlagScan document of your organisation...tic_Algorithm.pdf" dated 2017-03-07 [68] (3 matches, 0.2%) from www.setxce.com/courses/COURSE 104 DE...4 DESIGN OF PILE FOUNDATIONS.pdf [69] (3 matches, 0.2%) from a PlagScan document of your organisation...09 Hempi Indo.doc" dated 2016-07-28 [70] (2 matches, 0.1%) from a PlagScan document of your organisation...065 Ian Akbar.doc" dated 2016-07-27 [71] (2 matches, 0.2%) from library.binus.ac.id/eColls/eThesisdoc/Bab5/Bab 5_11-69.pdf [72] (2 matches, 0.2%) from https://www.forbes.com/sites/adammillsap...e-rising-and-technology-is-contributing/

(+ 1 documents with identical matches) [74] (2 matches, 0.1%) from a PlagScan document of your organisation...20032 fEBRIAN.pdf" dated 2016-03-29 [75] (1 matches, 0.2%) from digilib.its.ac.id/public/ITS-Undergraduate-17276-5107100057-Paper.pdf [76] (1 matches, 0.1%) from www.aisf.or.jp/~jaanus/deta/aOri/arabori.htm [77] (1 matches, 0.2%) from ijcim.th.org/SpecialEditions/v21nSP2/02_10_10D_Fajar.pdf

(+ 1 documents with identical matches) [79] (1 matches, 0.1%) from https://stackoverflow.com/questions/10654236/java-save-object-data-to-a-file [80] (1 matches, 0.1%) from www.mzan.com/article/5280479-how-to-save...oordinates-in-exif-data-on-android.shtml