Perbandingan Algoritma Turbo Boyer Moored dan String Matching on Ordered Alphabets Untuk Aplikasi Kamus Fisika Berbasis Android

A-3
LISTING PROGRAM

1. Halaman Utama Aplikasi
1.
2.
7.

16.

25.

37.

47.

57.

2.

Fungsi Pemanggilan Halaman Utama Aplikasi

1. package com.mardiah.dictionary;
2. import android.app.Activity;
3. import android.app.AlertDialog;
4. import android.content.DialogInterface;
5. import android.content.Intent;
6. import android.os.Bundle;
7. import android.view.KeyEvent;
8. import android.view.View;
9. import android.widget.Button;
10.
public class Hal2_Class extends Activity implements
View.OnClickListener {
11.
Button cari;
12.
Button tentang;
13.
Button keluar;
14.
@Override

15.
protected void onCreate(Bundle savedInstanceState) {
16.
super.onCreate(savedInstanceState);
17.
setContentView(R.layout.hal2_activity);
18.
cari = (Button) findViewById(R.id.buttonCari);
19.
cari.setOnClickListener(this);
20.
tentang = (Button) findViewById(R.id.buttonTtg);
21.
tentang.setOnClickListener(this);
22.
keluar = (Button) findViewById(R.id.buttonKeluar);
23.
keluar.setOnClickListener(this);
24.
}

25.
@Override
26.
public void onClick(View view) {
27.
if (view == cari) {
28.
Intent a = new Intent(this,
MainActivityBaru.class);
29.
startActivity(a);
30.
} else if (view == tentang) {
31.
Intent a = new Intent(this, TentangActivity.class);
32.
startActivity(a);
33.
} else if (view == keluar) {
34.

new AlertDialog.Builder(this)
35.
.setMessage("Apa anda ingin keluar?")
36.
.setCancelable(false)
37.
.setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
38.
public void onClick(DialogInterface
dialog, int id) {
39.
Hal2_Class.this.finish();
40.
}
41.
})
42.
.setNegativeButton("Tidak", null)
43.

.show();
44.
}
45.
}
46.
public boolean onKeyUp(int keyCode, KeyEvent event) {
47.
if (keyCode == KeyEvent.KEYCODE_BACK &&
event.isTracking() && !event.isCanceled()) {
48.
AlertDialog.Builder builder = new
AlertDialog.Builder(this);
49.
builder.setTitle("Konfirmasi");

Universitas Sumatera Utara

A-5
50.

builder.setMessage("Apa anda ingin keluar
?").setCancelable(false).setPositiveButton("Ya", new
DialogInterface.OnClickListener() {
51.
@Override
52.
public void onClick(DialogInterface dialog, int
which) {
53.
finish();
54.
}
55.
}).setNegativeButton("Tidak", new
DialogInterface.OnClickListener() {
56.
@Override
57.
public void onClick(DialogInterface dialog, int
which) {

58.
dialog.cancel();
59.
}
60.
}).show();
61.
return true;
62.
}
63.
return super.onKeyUp(keyCode, event);
64.
}
65.
}

3. Pemanggilan Algoritma Turbo Boyer Moore
1. package com.mardiah.dictionary;
2. import android.database.Cursor;

3. import android.database.sqlite.SQLiteDatabase;
4. import android.os.Bundle;
5. import android.support.annotation.Nullable;
6. import android.support.v4.app.Fragment;
7. import android.view.LayoutInflater;
8. import android.view.View;
9. import android.view.ViewGroup;
10. import android.widget.Button;
11. import android.widget.EditText;
12. import android.widget.ListAdapter;
13. import android.widget.ListView;
14. import android.widget.SimpleAdapter;
15. import android.widget.Toast;
16. import java.util.ArrayList;
17. import java.util.HashMap;
18. public class TBM_Fragments extends Fragment{
19.
@Nullable
20.
Button btncari;

21.
ArrayList list_data;
22.
HashMap map;
23.
ListView lv2;
24.
EditText cari;
25.
String pat = "", Fisika="", Arti ="";
26.
@Override
27.
public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle
savedInstanceState) {
28.
View v = inflater.inflate(R.layout.tbm_fragments, container,
false);
29.

btncari = (Button)v.findViewById(R.id.buttonCaritbm);
30.
list_data = new ArrayList();
31.
lv2 = (ListView)v.findViewById(R.id.LvHasil);
32.
cari = (EditText)v.findViewById(R.id.Caritbm);
33.
btncari.setOnClickListener(new View.OnClickListener() {
34.
@Override

Universitas Sumatera Utara

A-6
35.
public void onClick(View view) {
36.
pat = cari.getText().toString();
37.

DatabaseHelper helper = new
DatabaseHelper(TBM_Fragments.this.getContext());
38.
SQLiteDatabase database =
helper.getReadableDatabase();
39.
Cursor cursor = database.query("db_baru_2", new
String[]{"fisika", "arti"}, null, null, null, null, "fisika");
40.
int ketemu = 0, i = 0;
41.
int urutan = 0;
42.
TBM c = new TBM(pat.toUpperCase());
43. //
try {
44.
list_data.clear();
45.
long t = System.currentTimeMillis();
46.
if (cursor != null) {
47.
cursor.moveToFirst();
48.
do {
49.
Fisika= cursor.getString(0);
50.
Arti = cursor.getString(1);
51.
if (pat == null){
52.
Toast.makeText(TBM_Fragments.this.getContext(), " Masukan Kata Yang
Di Cari", Toast.LENGTH_LONG).show();
53.
}
54.
if (pat.length() =0; i--){
if(i > g && suff[i + m - 1 - f] < i - g){
suff[i] = suff[i + m - 1- f];
}
else{
if(i < g){
g = i;
}
f = i;
while(g >= 0 && x.charAt(g) == x.charAt(g +
f)){
g = g - 1;
}
suff[i] = f - g;
}
}
}
public void preBmGs(String x, int m, int[] bmGs){
int i,j;
int[] suff = new int[x.length()];
suffixes(x, m, suff);
for( i=0; i=-1; --i){
if(i == -1 || suff[i] == i+1){
while(j < m-1-i){
if(bmGs[j] == m){
bmGs[j] = m-1-i;
}
j = j + 1;
}
}
}
for(i=0; i