DatabaseAccess
public class DatabaseAccsess {
private SQLiteOpenHelper openHelper; public static SQLiteDatabase database; private static DatabaseAccsess instance;
private DatabaseAccsess(Context context) {
this.openHelper = new DatabaseHelper(context); }
public static DatabaseAccsess getInstance(Context context) { if (instance == null) {
instance = new DatabaseAccsess(context); }
return instance; }
public void open() {
this.database = openHelper.getWritableDatabase(); }
public void close() {
if (database != null) { this.database.close(); }
} }
DatabaseHelper
public class DatabaseHelper extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "db_kamus_arab.db"; private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION); }
}
Hal2
Button cari; Button tentang; Button keluar; Button profil; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.hal2_activity);
cari = (Button) findViewById(R.id.buttonCari); cari.setOnClickListener(this);
tentang = (Button) findViewById(R.id.buttonTtg); tentang.setOnClickListener(this);
keluar = (Button) findViewById(R.id.buttonKeluar); keluar.setOnClickListener(this);
MainActivity
public class MainActivity extends Activity {
TextView t; Button b;
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSplash(); }
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu); return true;
}
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
if (id == R.id.action_settings) { return true;
}
return super.onOptionsItemSelected(item); }
public void setSplash() { new Thread() {
public void run() { try {
Thread.sleep(2500); } catch (Exception e) { }
Intent i = new Intent(MainActivity.this, Hal2_Class.class); MainActivity.this.finish();
startActivity(i); }
}.start(); }
}
}
public void onClick(View view) { if (view == cari) {
Intent a = new Intent(this, MainActivityBaru.class); startActivity(a);
} else if (view == tentang) {
Intent a = new Intent(this, TentangActivity.class); startActivity(a);
} else if (view == keluar) { new AlertDialog.Builder(this)
.setMessage("Apa anda ingin Exit?") .setCancelable(false)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
})
.setNegativeButton("No", null) .show();
} } }
Tab Pager Adapter
int mNumOfTabs;
public TabPagerAdapter(FragmentManager fm, int NumOfTabs) { super(fm);
this.mNumOfTabs = NumOfTabs; }
@Override
public Fragment getItem(int position) { switch (position) {
case 0 :
NSN_Fragments tabTW = new NSN_Fragments(); return tabTW;
case 1 :
TW_Fragments tabNSN = new TW_Fragments(); return tabNSN;
default:
return null; }
}
Not So Naive
public class NSN_Fragments extends Fragment { @Nullable
Button btncari;
ArrayList<HashMap<String, String>> list_data; HashMap<String, String> map;
ListView lv2; EditText cari;
String pat = "", kata="", arti ="";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.nsn_fragments, container, false);
btncari = (Button)v.findViewById(R.id.buttonCaritbm); list_data = new ArrayList<>();
lv2 = (ListView)v.findViewById(R.id.LvHasil); cari = (EditText)v.findViewById(R.id.Caritbm);
btncari.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { pat = cari.getText().toString(); DatabaseHelper helper = new DatabaseHelper(NSN_Fragments.this.getContext());
Cursor cursor = database.query("db_kamus_arab", new String[]{"kata", "arti"}, null, null, null, null, "kata");
int ketemu = 0, i = 0; int urutan = 0;
// NSN c = new NSN(pat.toUpperCase()); // try {
list_data.clear();
long t = System.currentTimeMillis();
if (cursor != null) { cursor.moveToFirst(); do {
kata= cursor.getString(0); arti = cursor.getString(1);
if (pat.length() <= kata.length()) { // ketemu = c.NSN(kata.toUpperCase());
if (ketemu == 1) {
urutan++;
map = new HashMap<>(); //map.put("urutan", Integer.toString(urutan));
map.put("kata", Integer.toString(urutan) + ". " + kata);
map.put("arti", arti);
list_data.add(map);
i += 1; }
}
} while (cursor.moveToNext()); }
long t2 = (System.currentTimeMillis() - t);
if (i == 0) {
Toast.makeText(NSN_Fragments.this.getContext(), "Kata tidak ditemukan & Running Time : " + t2 + " ms",
Toast.LENGTH_SHORT).show(); } else {
ListAdapter adapt = new
SimpleAdapter(NSN_Fragments.this.getContext(), list_data, R.layout.list_row, new String[]{"kata", "arti"},
new int[]{R.id.fsk, R.id.arti}); lv2.setAdapter(adapt);
Toast.makeText(NSN_Fragments.this.getContext(), "Running Time : " + t2 + " ms", Toast.LENGTH_SHORT).show();
} } });
return v; }
public class NSN {
public int NSN(String patt, String text) { int j, k, ell, n, m;
char[] x = patt.toCharArray(); char[] y = text.toCharArray(); m = patt.length();
n = text.length(); /* Preprocessing */
if (x[0] == x[1])
{
k = 2; ell = 1; } else
{
k = 1; ell = 2; }
/* Searching */ j = 0;
while (j <= n - m)
if (x[1] != y[j + 1]) j += k;
else
{
if (m - 2 == 0 && x[0] == y[j]) return 1;
j += ell; }
return 0;
} } }
TwoWay
public class TW_Fragments extends Fragment {
@Nullable
Button btneksekusi;
ArrayList<HashMap<String, String>> list_data; HashMap<String, String> map;
ListView lv2; EditText cari;
String pat = "", kata = "", arti = "";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tw_fragments, container, false); btneksekusi = (Button) v.findViewById(R.id.buttonCarismua);
lv2 = (ListView) v.findViewById(R.id.listing); cari = (EditText) v.findViewById(R.id.Caritbm); list_data = new ArrayList<>();
@Override
public void onClick(View view) { pat = cari.getText().toString(); DatabaseHelper helper = new DatabaseHelper(TW_Fragments.this.getContext());
SQLiteDatabase database = helper.getReadableDatabase(); Cursor cursor = database.query("db_kamus_arab", new String[]{"kata", "arti"}, null, null, null, null, "kata");
int ketemu = 0, i = 0; int urutan = 0;
TW_Fragments c = new TW_Fragments(); // try {
list_data.clear();
long t = System.currentTimeMillis();
if (cursor != null) { cursor.moveToFirst(); do {
kata = cursor.getString(0); arti = cursor.getString(1);
if (pat.length() <= kata.length()) {
if (ketemu == 1) {
urutan++;
map = new HashMap<>(); //map.put("urutan", Integer.toString(urutan));
map.put("kata", Integer.toString(urutan) + ". " + kata);
map.put("arti", arti);
list_data.add(map);
i += 1; }
}
} while (cursor.moveToNext()); }
long t2 = (System.currentTimeMillis() - t);
if (i == 0) {
Toast.makeText(TW_Fragments.this.getContext(), "Kata tidak ditemukan & Running Time : " + t2 + " ms",
Toast.LENGTH_SHORT).show(); } else {
ListAdapter adapt = new
SimpleAdapter(TW_Fragments.this.getContext(), list_data, R.layout.list_row, new String[]{"kata", "arti"},
new int[]{R.id.fsk, R.id.arti}); lv2.setAdapter(adapt);
Toast.makeText(TW_Fragments.this.getContext(), "Running Time : " + t2 + " ms", Toast.LENGTH_SHORT).show();
} });
return v; }
// mulai pseudocode
public static int jum = 0, kat = 0;
static char[] x; static char[] y; static int n; static int m;
static final class MyResult { private final int first; private final int second;
public MyResult(int first, int second) { this.first = first;
this.second = second; }
public int getFirst() { return first;
}
public int getSecond() { return second;
} }
private void TW(String getTxt, String getPat) { y = getTxt.toCharArray();
x = getPat.toCharArray(); m = getPat.length(); n = getTxt.length();
int i, j, ell, memory, p = 0, per, q = 0;
/* Preprocessing */
MyResult result = maxSuf(x, m); i = result.getFirst();
p = result.getSecond();
MyResult result2 = maxSufTilde(x, m); j = result2.getFirst();
q = result2.getSecond();
if (i > j) { ell = i; per = p; } else { ell = j; per = q; }
//Log.d("ooo", String.valueOf(ell) + " " +String.valueOf(per));
return -1; }
return 0; }