Antarmuka Menu Utama Pencarian Surat

56

BAB 4 IMPLEMENTASI

Pada sub bab ini akan dijabarkan hasil implementasi berupa antarmuka interface beserta dengan method – method utama yang digunakannya.

4.1. Antarmuka Menu Utama Pencarian Surat

Gambar 4.1 Antarmuka untuk menu utama juga pencarian. 1. Method: createIndexString filesToIndex Analyzer analyzer = new StandardAnalyzerVersion.LUCENE_41; File dir = new FilefilesToIndex; FileInputStream fis = null; FieldType type1 = new FieldType; type1.setIndexedtrue; type1.setTokenizedtrue; type1.setStoredtrue; type1.setStoreTermVectorstrue; type1.setStoreTermVectorOffsetstrue; type1.setStoreTermVectorPositionstrue; if dir.isDirectory { for final File folder : dir.listFiles { String classname = folder.getName; File index_dir = new FileC:UsersFranDocumentsKULIAHSkripsiDe2nProgramSy stemse arch_index + classname.toLowerCase; IndexWriterConfig conf = new IndexWriterConfigVersion.LUCENE_41, analyzer; Directory directory = FSDirectory.openindex_dir; IndexWriter indexWriter = new IndexWriterdirectory, conf; File[] files = folder.listFiles; for File file : files { if file.toString.endsWithtxt { fis = new FileInputStreamfile; Document doc = new Document; String fileContent = readFilefile; if fileContent = null { String path = file.getPath; doc.addnew StringFieldpath, path, Field.Store.YES; BufferedReader reader = new BufferedReadernew InputStreamReaderfis, UTF-8; doc.addnew Fieldcontents, fileContent, type1; if index_dir.exists { indexWriter.addDocumentdoc; } else { indexWriter.updateDocumentnew Termpath, file.getPath, doc; } } } } fis.close; indexWriter.close; } } Deskripsi: meng-index file surat file text menggunakan library Lucene 4.1. 2. Method: searchIndexString searchString, String[] kategori System.out.printlnSearching for + searchString + ; String index_path; if kategori = null { for int i = 0; i kategori.length; i++ { String kelas = kategori[i]; index_path = C:UsersFranDocumentsKULIAHSkripsiDe2nProgramSystem search_ index + kelas; File dir = new Fileindex_path; if dir.isDirectory { HashMapString, String hasilPencarian = new HashMap; Directory directory = FSDirectory.opendir; IndexReader reader = DirectoryReader.opendirectory; IndexSearcher searcher = new IndexSearcherreader; Analyzer analyzer = new StandardAnalyzerVersion.LUCENE_41; QueryParser parser = new QueryParserVersion.LUCENE_41, contents, analyzer; Query query = parser.parsesearchString; ScoreDoc[] hits = searcher.searchquery, null, 1000.scoreDocs; Highlighter highlighter = new Highlighternew QueryScorerquery; jumlah_hits = jumlah_hits + hits.length; for int j = 0; j hits.length; j++ { String highlight = ; String t = ; Document doc = searcher.dochits[j].doc; String content = doc.getcontents; String path = doc.getpath; TokenStream tokenStream = TokenSources.getAnyTokenStreamsearcher.getIndexReader, hits[j].doc, contents, analyzer; TextFragment[] frag = highlighter.getBestTextFragmentstokenStream, content, false, 10; for int p = 0; p frag.length; p++ { if frag[p] = null frag[p].getScore 0 { t = frag[p].toString; highlight = highlight + t; } } } reader.close; directory.close; pencarian.putkelas, hasilPencarian; } } } else { index_path = C:UsersFranDocumentsKULIAHSkripsiDe2nProgramSystem search_ index; File dir = new Fileindex_path; if dir.isDirectory { for final File folder : dir.listFiles { HashMapString, String hasilPencarian = new HashMap; String classname = folder.getName; Directory directory = FSDirectory.openfolder; IndexReader reader = DirectoryReader.opendirectory; IndexSearcher searcher = new IndexSearcherreader; Analyzer analyzer = new StandardAnalyzerVersion.LUCENE_41; QueryParser parser = new QueryParserVersion.LUCENE_41, contents, analyzer; Query query = parser.parsesearchString; ScoreDoc[] hits = searcher.searchquery, null, 1000.scoreDocs; Highlighter highlighter = new Highlighternew QueryScorerquery; jumlah_hits = jumlah_hits + hits.length; for int j = 0; j hits.length; j++ { String highlight = ; String t = ; Document doc = searcher.dochits[j].doc; String content = doc.getcontents; String path = doc.getpath; TokenStream tokenStream = TokenSources.getAnyTokenStreamsearcher.getIndexReader, hits[j].doc, contents, analyzer; TextFragment[] frag = highlighter.getBestTextFragmentstokenStream, content, false, 10; for int p = 0; p frag.length; p++ { if frag[p] = null frag[p].getScore 0 { t = frag[p].toString; highlight = highlight + t; } } hasilPencarian.putpath, highlight; } reader.close; directory.close; pencarian.putclassname, hasilPencarian; } } } return pencarian; Deskripsi: Melakukan pencarian file surat berdasarkan kata kunci yang diberikan user. Pencarian dilakukan melalui index yang telah dibangun pada proses sebelumnya. Hasil dari pencarian adalah pertama, potongan isi surat yang mengandung kata kunci dan kedua, lokasi surat.

4.2. Antarmuka Simpan Surat