Implementasi Algoritma Rabin-Karp Pada Kamus Jawa – Indonesia Berbasis Android

LISTING CODE

A-1

Indo_to_jawa_Fragments.java
package studio.arti.kamusjawaindonesia;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import

import
import

android.content.DialogInterface;
android.database.Cursor;
android.database.sqlite.SQLiteDatabase;
android.database.sqlite.SQLiteOpenHelper;
android.os.Bundle;
android.support.design.widget.FloatingActionButton;
android.support.v4.app.Fragment;
android.support.v7.app.AlertDialog;
android.text.Html;
android.view.LayoutInflater;
android.view.View;
android.view.ViewGroup;
android.widget.EditText;
android.widget.ImageButton;
android.widget.ListView;
java.util.ArrayList;
java.util.List;


public class Indo_to_Jawa_fragment extends Fragment {
View view;
private ImageButton bt_cari;
private EditText et_cari;
private List hasilList = new ArrayList();
private ListView listView;
private CustomListAdapter adapter;
String kata;//kata yg di inputkan
int jumlah = 0;//hitung jumlah string ditemukan
double waktu = 0;
double waktuAwal=0, waktuAkhir =0;
public Indo_to_Jawa_fragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup

container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.indo_to_jawa_tab_layout,
container, false);
et_cari = (EditText) view.findViewById(R.id.txt_indo_jawa);
bt_cari = (ImageButton)
view.findViewById(R.id.imb_cari_indo_jawa);
bt_cari.setOnClickListener(new View.OnClickListener() {

Universitas Sumatera Utara

@Override
public void onClick(View v) {
String pattern = et_cari.getText().toString();
kata = pattern;
waktuAwal = System.currentTimeMillis();
ReadDB(pattern);
waktuAkhir = System.currentTimeMillis();
waktu = (waktuAkhir - waktuAwal);
}


A-2

});
FloatingActionButton fab = (FloatingActionButton)
view.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MunculHasil(kata, jumlah, waktu);
}
});
listView = (ListView) view.findViewById(R.id.lv_hasil);
adapter = new CustomListAdapter(inflater, hasilList);
listView.setAdapter(adapter);
return view;
}
public void MunculHasil(String getKata, int getJumah, double
getWaktu) {
AlertDialog dialog = new AlertDialog.Builder(getActivity())
.setTitle("Hasil Pencarian")

.setMessage(Html.fromHtml(
"" + "Karp Rabin" + "" +
"Kata/String
: " + getKata +
"Jumlah
: " + getJumah +
"Waktu
: " + getWaktu +
ms"))
.setPositiveButton("OK", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int
which) {
dialog.dismiss();
}
}).create();
dialog.show();
}
public void ReadDB(String getPattern) {

String pattern = getPattern;
SQLiteOpenHelper helper = new
DatabaseOpenHelper(getContext());
//DbHelper helper = new DbHelper(getContext());
SQLiteDatabase db;
db = helper.getReadableDatabase();
Cursor cursor = null;
hasilList.clear();
jumlah = 0;
cursor = db.rawQuery("SELECT * FROM tabel_kamus_jawa ORDER BY
indonesia; ", null);
if (cursor != null) {

Universitas Sumatera Utara

cursor.moveToFirst();
do {
// pengisian list
try {
String ngoko = cursor.getString(1);

String madya = cursor.getString(2);
String inggil = cursor.getString(3);
String indo = cursor.getString(4);

A-3

KR_start(pattern, indo, ngoko, madya, inggil);
} catch (Exception e) {}
} while (cursor.moveToNext());

}

}
db.close();
listView.setAdapter(adapter);

// Algoritma nya
static String txt; // text tersedia
static String pat;//pattern - yg maudi cari
static char[] x; //

static char[] y; //
static int n; //
static int m; //
static String ngoko;
static String madya;
static String inggil;
public void KR_start(String pat, String txt, String ngoko, String
madya, String inggil) {
this.txt = txt;
this.pat = pat;
this.ngoko = ngoko;
this.madya = madya;
this.inggil = inggil;
x = pat.toCharArray();//conversi string suapaya ke char array
y = txt.toCharArray();
n = txt.length();//panjnga txt
m = pat.length();//pnjang yg di cari
KR();
}//end void kr start
public static int REHASH(int a, int b, int d, int h) {

return ((((h) - (a) * d)