• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Not So Naive Dengan Algoritma Two Way Pada Aplikasi Kamus Bahasa Indonesia - Bahasa Arab Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Not So Naive Dengan Algoritma Two Way Pada Aplikasi Kamus Bahasa Indonesia - Bahasa Arab Berbasis Android"

Copied!
10
0
0

Teks penuh

(1)

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);

(2)

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) {

(3)

})

.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());

(4)

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; }

(5)

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<>();

(6)

@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();

(7)

} });

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));

(8)
(9)
(10)

return -1; }

return 0; }

Referensi

Dokumen terkait

3 Proses adalah kegiatan atau kerja yang dilakukan oleh orang, mesin atau komputer dari hasil suatu arus data yang masuk kedalam proses untuk dihasilkan arus

[r]

In the joint construction stage, the teacher and students work together to construct texts in the narrative genre through group writing with the help of a picture series or a short

[r]

pelaksanaan.. Tugas kader pada kegiatan bulanan Posyandu. a) Tugas kader pada hari buka Posyandu disebut

kegiatan Posyandu dan perlu jadwal yang teratur dalam. pelaksanaan

Penelitian ini bertujuan untuk mengetahui bagaimana distribusi temperatur pada suatu ruangan yang terdapat AC di dalamnya yang diselesaikan dengan mengimplementasikan metode

Pre-Test Scores of Control Class (Class VIII 1) in Term of Content, Organization, Vocabulary, Language Use, and Mechanics... APPENDIX