• 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

Pada tahap ini akan dilakukan perancangan sistem perbandingan algoritma Galil-Seiferas dan algoritma Not So Naϊve pada aplikasi kamus hukum, dimana user meng-input

Seiferas dan algoritma Not So Naϊve yaitu hasil pencarian dan waktu proses rata-rata untuk algoritma Galil-Seiferas adalah 2,087 ms dan algoritma Not So Naϊve adalah

algoritma Not So Naϊve fase pencarian dimulai dari indeks kedua dari pola sampai indeks terakhir.. Dalam penelitian ini penulis mendapatkan hasil dari

Dalam aplikasi kamus hukum ini membutuhkan algoritma pencocokan string ( String Matching ) yaitu algoritma yang dapat mencari kata ( pattern ) dalam sebuah kalimat

Algoritma kategori ini melakukan pencocokan string dimulai dari karakter paling kiri pattern seperti yang ditunjukkan pada Gambar 2.2b. Beberapa algoritma yang termasuk

Perancangan Fitur Autocomplete pada Aplikasi Kamus Istilah Teknologi Informasi Menggunakan Algoritma Boyer-Moore.. Universitas

Private Sub Form1_Load( ByVal sender As System. EventArgs ) Handles cmdOpen.Click.. EventArgs ) Handles. KamusHukumToolStripMenuItem.Click

Universitas Sumatera Utara PERBANDINGAN ALGORITMA RAITA DAN ALGORITMA NOT SO NAÏVE DALAM PEMBUATAN KAMUS BAHASA INDONESIA – BAHASA SPANYOL SKRIPSI NURAPRILLIA 171401144 PROGRAM