Implementasi Algoritma Horspool Dalam Pembuatan Kamus Istilah Psikologi Pada Platform Android

A-1

LISTING PROGRAM

// Source Code MainActivity.java
package id.frappucino;
import
import
import
import
import
import
import
import
import
import
import

android.app.Activity;
android.content.res.Configuration;
android.os.Bundle;

android.support.v4.app.ActionBarDrawerToggle;
android.support.v4.widget.DrawerLayout;
android.view.MenuItem;
android.view.View;
android.widget.AdapterView;
android.widget.ArrayAdapter;
android.widget.ListView;
android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mJudulDrawer;
private CharSequence mJudul;
private String[] mNama;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_content);


// inisialisasi
mJudul = mJudulDrawer = getTitle();
mNama = getResources().getStringArray(R.array.array_drawer);
mDrawerLayout = (DrawerLayout)
findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.drawer_kiri);
mDrawerList.setAdapter(new ArrayAdapter(this,
R.layout.item_navdrawer, mNama));
// memberi event klik item item daftar nama
mDrawerList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1, int
posisi,
long id) {
// memanggil metode pilihItem()
pilihItem(posisi);
}
});
// mengaktifkan ikon ActionBar kiri-atas sebagai kendali drawer


Universitas Sumatera Utara

A-2

untuk
// membuka-menutup jika disentuh
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// merupakan metode untuk mengaktifkan drawer saat ikon
ActionBar
// disentuh atau saat layar sebelah kiri digeser (sliding) ke
kanan
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, 0, 0) {
// metode saat drawer dalam kondisi tertutup
// judul pada ActionBar menampilkan item buah terpilih
public void onDrawerClosed(View view) {
getActionBar().setTitle(mJudul);
invalidateOptionsMenu();

}
// metode saat drawer dalam kondisi terbuka
// judul pada ActionBar menampilkan nama aplikasi:
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mJudulDrawer);
invalidateOptionsMenu();
}
};
// mDrawerLayout diberi event mDrawerToggle
mDrawerLayout.setDrawerListener(mDrawerToggle);
// dalam keadaan awal, saat aplikasi mulai dijalankan, item
yang dipilih
// adalah indeks 0
if (savedInstanceState == null) {
pilihItem(0);
}
new Data(new DbHelper(this)).insertAllWords1();
}
private void pilihItem(int position) {
// metode saat item planet dipilih; judul pada ActionBar akan

// diperbarui kemudian drawer akan menutup
switch (position) {
case 0:
getFragmentManager().beginTransaction().replace(R.id.frame_konten,
new MainFragment(), "MainFragment").commit();
break;
case 1:
getFragmentManager().beginTransaction().replace(R.id.frame_konten,
new kosaKata(), "kosaKata").commit();
break;
case 2:
getFragmentManager().beginTransaction().replace(R.id.frame_konten,
new About(), "About").commit();

Universitas Sumatera Utara

A-3

break;
}

mDrawerList.setItemChecked(position, true);
setTitle(mNama[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
}

// Source Code SearchMethod.java
package id.frappucino;
import java.util.ArrayList;
public class SearchMethod {
private char[] x, y;
private int m, n;
length
private String matches;
private char[] showmatches;
matches
private int[] BmBc = new int[256];

// pattern, text
// pattern length, text

// string of match positions
// char array that shows
// used by the BMH algorithm

/** searches the text yy for the pattern xx
*/
public void search(String yy, String xx) {
setText(yy);
setPattern(xx);
horspoolSearch();
}
/** sets the text
*/
private void setText(String yy)
{
n=yy.length();
y=yy.toCharArray();
initmatches();
}
/** sets the pattern

*/
private void setPattern(String xx)
{
m=xx.length();
x=xx.toCharArray();
BmBc = null;
BmBc = new int[256];
horspoolPreprocess();
}

/** initializes match positions and the array showmatches
*/
private void initmatches()
{
matches="";
showmatches=new char[n];
for (int i=0; i