Pencarian Kata dalam file teks java

Salam,

berikut adalah cara membuat pencarian kata yang sumber datanya berasal dari file teks dengan menggunakan pemrograman java, pencarian ini terbagi menjadi 4 kriteria yaitu :

  • Pencarian kata case sensitif, pada kriteria ini kata kunci akan dicari dalam file teks dengan memperhatikan besar kecil dari huruf dalam kata kunci.
  • Pencarian kata tidak case sensitif, pada kriteria ini kata kunci akan dicari dalam file teks dengan tidak memperhatikan besar kecil dari huruf dalam kata kunci.
  • Pencarian kata case sensitif dan kata yang dicari mengandung kata dari kata kunci, pada kriteria ini kata kunci akan dicari dalam file teks dengan memperhatikan besar kecil dari huruf dalam kata kunci dan kata dalam file teks yang dicari mengandung kata dari kata kunci.
  • Pencarian kata tidak case sensitif dan kata yang dicari mengandung kata dari kata kunci, pada kriteria ini kata kunci akan dicari dalam file teks dengan tidak memperhatikan besar kecil dari huruf dalam kata kunci dan kata dalam file teks yang dicari mengandung kata dari kata kunci.

ALGO

  1. BACA FILE TEXTnya
  2. MASUKKAN KATA YANG DICARI
  3. CARI DALAM FILE TEXT TERSEBUT KATA YANG DICARI
  4. TAMPILKAN BANYAKNYA KATA YANG DICARI DALAM FILE TEXT TERSEBUT

Solusi

Pertama buat class java untuk project pembacaan dari file teks misal anda buat bacafileteks.java

seletah itu buat methode untuk pembacaan file teksnya misal bacafileteks0(), methode ini akan membaca file teks berbasiskan pada BufferedReader yang akan menampung isi dari file teks yang akan dibaca, pada methode ini dibutuhkan methode pecahkalimat2kata(text), yang berfungsi untuk memecah kalimat menjadi kata-kata yang nantinya disimpan dalam array

private void bacafileteks0(){
File file = new File(“testing.txt”);
StringBuilder contents = new StringBuilder();
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader(file));
String text = null;

// ulangi sampai semua baris terbaca
while ((text = reader.readLine()) != null) {
// contents.append(text).append(System.getProperty(“line.separator”));
pecahkalimat2kata(text);
}
System.out.println(“Jumlah Kata = “.concat(String.valueOf(jumlahkatatotal)));
System.out.println(“Jumlah Kata yang dicari = “.concat(String.valueOf(jumlahkata)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

// tampilkan isi file
System.out.println(contents.toString());
}

private void pecahkalimat2kata(String kalimat){
words = kalimat.split(” “);
for (String word : words)
{
System.out.println(word);
if (word.toUpperCase().contains(“BANDUNG”))
jumlahkata++;
}
jumlahkatatotal=jumlahkatatotal+words.length;
}

untuk memecah kalimat menggunakan fungsi bawaan dari java yaitu split dengan delimeter sesuai dengan yang kita kehendaki dalam hal ini kata-kata dalam kalimat dipisahkan dengan spasi, sintaksnya typedatastring.split(stringdelimeter);

untuk pembandingan apakah kata dalam keyword yang dicari dalam file teks  itu ada dapat digunakan:

if (word.toUpperCase().contains(“BANDUNG”))
     jumlahkata++;

maksudnya bahwa apakan kata string dalam valiabel word yang dibawa ke huruf besar semua itu berisi kata “BANDUNG”, keyword yang dicari “BANDUNG”, jadi semua kata yang ada dalam word itu mengandung keywordnya kalau benar maka jumlahkata++ maksudnya kata yang dicari ketemu dijumlahkan 1.

  • untuk pencarian kata case sensitif menggunakan pembandingan if word.equal(“BANDUNG”)
  • untuk pencarian kata tidak case sensitif menggunakan pembandingan if word.equalIgnoreCase(“BANDUNG”)
  • untuk pencarian kata case sensitif dan mengandung kata yang dicari, menggunakan pembandingan if word.contain(“BANDUNG”)
  • untuk pencarian kata tidak case sensitif dan mengandung kata yang dicari, pembandingan menggunakan if word.toUpperCase().contains(“BANDUNG”.toUpperCase())

berikut class lengkapnya :

package app1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;

/**
*
* @author dwikk
*/
public class bacafileteks {

String[] words;
int jumlahkata=0,jumlahkatatotal=0;

public bacafileteks(){
// bacafileteks0();
bacafileteks1();
// setFile(“testing.txt”);
}

public static void main(String[] args) {
bacafileteks bc=new bacafileteks();
}

private void pecahkalimat2kata(String kalimat){
words = kalimat.split(” “);
for (String word : words)
{
System.out.println(word);
if (word.toUpperCase().contains(“BANDUNG”))
jumlahkata++;
}
jumlahkatatotal=jumlahkatatotal+words.length;
}

private void bacafileteks0(){
File file = new File(“testing.txt”);
StringBuilder contents = new StringBuilder();
BufferedReader reader = null;

try {
reader = new BufferedReader(new FileReader(file));
String text = null;

// ulangi sampai semua baris terbaca
while ((text = reader.readLine()) != null) {
// contents.append(text).append(System.getProperty(“line.separator”));
pecahkalimat2kata(text);
}
System.out.println(“Jumlah Kata = “.concat(String.valueOf(jumlahkatatotal)));
System.out.println(“Jumlah Kata yang dicari = “.concat(String.valueOf(jumlahkata)));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

// tampilkan isi file
System.out.println(contents.toString());
}

private void bacafileteks1(){
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(“testing.txt”);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Print the content on the console
pecahkalimat2kata(strLine);
// System.out.println (strLine);
}
System.out.println(“Jumlah Kata = “.concat(String.valueOf(jumlahkatatotal)));
System.out.println(“Jumlah Kata yang dicari = “.concat(String.valueOf(jumlahkata)));
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println(“Error: ” + e.getMessage());
}
}

public static File setFile(String filePath) {
// membuat object file baru
File file = null;
// mencari path dari direktori kerja
// bisa dicek dengan print
String path = System.getProperty(“user.dir”)+ File.separatorChar + filePath;
System.out.println(path);
try {
// construct the file based on the path
file = new File(path);
} catch (Exception e) {
e.printStackTrace();
}
// jika file tidak ditemukan, maka error
if (file == null) {
throw new RuntimeException();
}
// jika file tidak ada, maka membuat file baru
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException ex) {}
}
return file;
}

public static String[] fileRead(File file) {
try {
// Membuat buffered reader
BufferedReader readIn = new BufferedReader(new FileReader(file));
// ArrayList untuk menyimpan string setiap baris
ArrayList<String> list = new ArrayList<String>();
// Object sementara
String data;
// Membaca setiap baris sampai akhir
while ((data = readIn.readLine()) != null) {
list.add(data);
}
// Menutup reader
readIn.close();
// mengembalikan array dalam bentuk string
return list.toArray(new String[0]);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

public static boolean fileWrite(String[] text, File file) {
try {
// membuat buffer
BufferedWriter out = new BufferedWriter(new FileWriter(file));
PrintWriter writeOut = new PrintWriter(out);
// menulis text ke file
for (int i = 0; i < text.length; i++) {
writeOut.println(text[i]);
}
// menutup writer
writeOut.close();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}

}

 

silahkan download di  :

This entry was posted in pemrograman java and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *