Perbandingan Algoritma Boyer-Moore Dan Algoritma Rabin Karp Pada Pencarian Teks Dalam Undang Undang Perlindungan Anak
A-1
64
LISTING PROGRAM
1. MainActivity.class
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(MainActivity.this,
MenuActivity.class);
startActivity(i);
finish(); // no history
}
}, SPLASH_TIME_OUT);
}
}
2. MenuActivity.class
import
import
import
import
import
import
android.content.Intent;
android.os.Bundle;
android.support.annotation.Nullable;
android.support.v7.app.AppCompatActivity;
android.view.View;
android.widget.Button;
public class MenuActivity extends AppCompatActivity {
private Button startButton;
private Button aboutButton;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Universitas Sumatera Utara
65A-2
startButton = (Button) findViewById(R.id.start_button);
aboutButton = (Button) findViewById(R.id.about_button);
startButton.setOnClickListener(startClickListener);
aboutButton.setOnClickListener(aboutClickListener);
}
View.OnClickListener startClickListener = new
View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MenuActivity.this,
SearchActivity.class);
startActivity(i);
}
};
View.OnClickListener aboutClickListener = new
View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MenuActivity.this,
AboutActivity.class);
startActivity(i);
}
};
};
3. AboutActivity.class
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
}
}
Universitas Sumatera Utara
66
A-3
4. BoyerMoore.class
package com.tongam.uupa;
import java.util.HashMap;
import java.util.Map;
public class BoyerMoore {
private
private
private
private
String pattern;
String text;
int foundedAt = 0;
long duration = 0;
public BoyerMoore(String pattern, String text) {
this.pattern = pattern;
this.text = text;
}
public int getFoundedAt() {
return foundedAt;
}
public long getDuration() {
return duration;
}
private static void preBmBc(char[] x, int m, int bmBc[]) {
int i;
for (i = 0; i < bmBc.length; ++i)
bmBc[i] = m;
for (i = 0; i < m - 1; ++i)
bmBc[x[i]] = m - i - 1;
}
private static int[] suffixes(char[] x, int m) {
int f=0, g, i;
int suff[] = new int[m];
suff[m - 1] = m;
g = m - 1;
for (i = m - 2; i >= 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[g] == x[g + m - 1 - f])
--g;
suff[i] = f - g;
Universitas Sumatera Utara
67
A-4
}
}
return suff;
}
private static void preBmGs(char[] x, int m) {
int i, j;
int suff[] = suffixes(x, m);
for (i = 0; i < m; ++i)
bmGs[i] = m;
j = 0;
for (i = m - 1; i >= 0; --i)
if (suff[i] == i + 1)
for (; j < m - 1 - i; ++j)
if (bmGs[j] == m)
bmGs[j] = m - 1 - i;
for (i = 0; i
64
LISTING PROGRAM
1. MainActivity.class
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(MainActivity.this,
MenuActivity.class);
startActivity(i);
finish(); // no history
}
}, SPLASH_TIME_OUT);
}
}
2. MenuActivity.class
import
import
import
import
import
import
android.content.Intent;
android.os.Bundle;
android.support.annotation.Nullable;
android.support.v7.app.AppCompatActivity;
android.view.View;
android.widget.Button;
public class MenuActivity extends AppCompatActivity {
private Button startButton;
private Button aboutButton;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
Universitas Sumatera Utara
65A-2
startButton = (Button) findViewById(R.id.start_button);
aboutButton = (Button) findViewById(R.id.about_button);
startButton.setOnClickListener(startClickListener);
aboutButton.setOnClickListener(aboutClickListener);
}
View.OnClickListener startClickListener = new
View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MenuActivity.this,
SearchActivity.class);
startActivity(i);
}
};
View.OnClickListener aboutClickListener = new
View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(MenuActivity.this,
AboutActivity.class);
startActivity(i);
}
};
};
3. AboutActivity.class
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public class AboutActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
}
}
Universitas Sumatera Utara
66
A-3
4. BoyerMoore.class
package com.tongam.uupa;
import java.util.HashMap;
import java.util.Map;
public class BoyerMoore {
private
private
private
private
String pattern;
String text;
int foundedAt = 0;
long duration = 0;
public BoyerMoore(String pattern, String text) {
this.pattern = pattern;
this.text = text;
}
public int getFoundedAt() {
return foundedAt;
}
public long getDuration() {
return duration;
}
private static void preBmBc(char[] x, int m, int bmBc[]) {
int i;
for (i = 0; i < bmBc.length; ++i)
bmBc[i] = m;
for (i = 0; i < m - 1; ++i)
bmBc[x[i]] = m - i - 1;
}
private static int[] suffixes(char[] x, int m) {
int f=0, g, i;
int suff[] = new int[m];
suff[m - 1] = m;
g = m - 1;
for (i = m - 2; i >= 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[g] == x[g + m - 1 - f])
--g;
suff[i] = f - g;
Universitas Sumatera Utara
67
A-4
}
}
return suff;
}
private static void preBmGs(char[] x, int m) {
int i, j;
int suff[] = suffixes(x, m);
for (i = 0; i < m; ++i)
bmGs[i] = m;
j = 0;
for (i = m - 1; i >= 0; --i)
if (suff[i] == i + 1)
for (; j < m - 1 - i; ++j)
if (bmGs[j] == m)
bmGs[j] = m - 1 - i;
for (i = 0; i