Perbandingan Algoritma Morris - Pratt dan Algoritma Horspool Pada Aplikasi Kamus Istilah Telekomunikasi Berbasis Android

A-1

LISTING PROGRAM

Main Activity.java
package marsupilami.kamus;
import
import
import
import
import
import
import
import
import
import
import

android.content.Intent;
android.os.Bundle;
android.support.design.widget.TabLayout;

android.support.v4.app.Fragment;
android.support.v4.app.FragmentManager;
android.support.v4.app.FragmentPagerAdapter;
android.support.v4.view.ViewPager;
android.support.v7.app.AppCompatActivity;
android.support.v7.widget.Toolbar;
android.view.Menu;
android.view.MenuItem;

import java.util.ArrayList;
import java.util.List;
import javax.xml.transform.Source;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it
is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will

1


Universitas Sumatera Utara

A-1

// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case R.id.action_about:
// source
About();
return true;
case R.id.action_help:
// about
Help();
return true;
case R.id.action_settings:
// source
Source();
return true;

default:
return super.onOptionsItemSelected(item);
}
}
public void About(){
Intent i = new Intent(MainActivity.this,about.class);
startActivity(i);
}
public void Help(){
Intent j = new Intent(MainActivity.this,help.class);
startActivity(j);
}
public void Source(){
Intent j = new Intent(MainActivity.this,source.class);
startActivity(j);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new
ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Morris-Pratt");

adapter.addFragment(new TwoFragments(),"Horspool");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List mFragmentList = new
ArrayList();
private final List mFragmentTitleList = new
ArrayList();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {

Universitas Sumatera Utara


A-1

return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}

OneFragment.java
package marsupilami.kamus;
/**
* Created by 752 on 10/03/2016.
*/

import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import


android.database.Cursor;
android.database.sqlite.SQLiteDatabase;
android.os.Bundle;
android.support.v4.app.Fragment;
android.util.Log;
android.view.LayoutInflater;
android.view.View;
android.view.ViewGroup;
android.widget.Button;
android.widget.CompoundButton;
android.widget.EditText;
android.widget.ListAdapter;
android.widget.ListView;
android.widget.ProgressBar;
android.widget.RadioButton;
android.widget.SimpleAdapter;
android.widget.Toast;
java.util.ArrayList;
java.util.HashMap;


public class OneFragment extends Fragment implements
View.OnClickListener{
Button btn2, bt_cari;
EditText txt2;
ListView lv2;
ArrayList list_data;
HashMap map;
Cursor cursor = null;
DatabaseHelper helper;
SQLiteDatabase database;

Universitas Sumatera Utara

A-1

String arti = "", kata = "", pat = "";
int urutan = 0;
ProgressBar pbar;
boolean cek;
String TAG = "OneFragmentTAG";

public OneFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.one_fragment,
container, false);
btn2 = (Button) rootView.findViewById(R.id.remove2);
bt_cari = (Button) rootView.findViewById(R.id.bt_cari);
txt2 = (EditText) rootView.findViewById(R.id.teks2);
lv2 = (ListView) rootView.findViewById(android.R.id.list);
pbar = (ProgressBar) rootView.findViewById(R.id.progressBar);
list_data = new ArrayList();

btn2.setOnClickListener(this);
bt_cari.setOnClickListener(this);
ambildata();
return rootView;
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onClick(View v) {
if (v == btn2) {
txt2.setText("");
} else if (v == bt_cari) {
search();
}
}

Universitas Sumatera Utara

A-1

public void search() {
helper = new DatabaseHelper(getActivity());
database = helper.getReadableDatabase();
cursor = database.query("istilah", new String[]{"kata",
"arti"}, null, null, null, null,"kata");
pat = txt2.getText().toString();
int ketemu = 0, i = 0;
urutan = 0;
morris_pratt b = new morris_pratt();
Log.d(TAG, "Masuk 1 : " + pat);
try {
Log.d(TAG, "Masuk dan Coba");
list_data.clear();
long t = System.currentTimeMillis();
if (cursor != null) {
Log.d(TAG, "Masuk IF 1");
cursor.moveToFirst();
do {
Log.d(TAG, "Masuk Lagi");
kata = cursor.getString(0);
arti = cursor.getString(1);
if (pat.length() -1 && x[i] != y[j]) {
i = mpNext[i];
}
++i;
++j;
if(i >= m) {
nilai = true;
i = mpNext[i];
}
}
if(nilai)
{
return 1;
}
return

0;

}
}

Universitas Sumatera Utara

A-1

HP.java
package marsupilami.kamus;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Laura Angelina on 13/06/2017.
*/
public class HP {
static int[] bmBc = new int[256];

public static void preBmBc(String pat, int m, int [] bmBc) {
for (int i = 0; i < 256; ++i)
bmBc[i] = m;
for (int i = 0; i < m - 1; ++i)
bmBc[pat.charAt(i)] = m - i - 1;
}
public int search(String pat, String target) {
int j;
int m = pat.length();
int n = target.length();
preBmBc(pat, m, bmBc);
j = 0;
while (j