• Tidak ada hasil yang ditemukan

Implementasi Algoritma Knuth-Morris Pratt String Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Knuth-Morris Pratt String Matching Untuk Mencari Kata Atau Istilah Pada Kamus Komputer Berbasis Android"

Copied!
21
0
0

Teks penuh

(1)

Listing Program

CariKata.java

package com.indah.kmp;

import java.io.BufferedReader; import java.io.File;

import java.io.FileNotFoundException; import java.io.FileReader;

import java.io.IOException; import java.util.ArrayList; import java.util.List;

import android.app.Activity; import android.content.Intent; import android.os.Bundle;

import android.os.Environment; import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView; import android.widget.Button;

import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;

public class CariKata extends Activity { private AutoCompleteTextView actv;

EditText edkata, edarti; Button b1 , b2, btn2kembali; TextView tvarti, tvnotfound;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

b1 = (Button) findViewById (R.id.btncari); b2 = (Button) findViewById

(R.id.button_tambah);

btn2kembali= (Button) findViewById (R.id.btn2_cari);

(2)

List<String> listkata = new ArrayList<String>();

File fl = new

File(Environment.getExternalStorageDirectory() + "/contoh");

String ck = fl.toString()+"/"+"kerjaku.csv";

BufferedReader br = null; String line = "";

String cvsSplitBy = "#";

try {

br = new BufferedReader(new FileReader(ck));

while ((line = br.readLine()) != null) {

String[] kamus = line.split(cvsSplitBy);

String kata_b = kamus[0];

listkata.add(kata_b);

}

} catch (FileNotFoundException e) { e.printStackTrace();

} catch (IOException e) { e.printStackTrace(); } finally {

if (br != null) { try {

br.close();

} catch (IOException e) { e.printStackTrace(); }

} }

String[] kata = listkata.toArray(new String[listkata.size()]);

ArrayAdapter adapter = new ArrayAdapter

(3)

actv = (AutoCompleteTextView)

findViewById(R.id.autoCompleteTextView1);

actv.setAdapter(adapter);

b1.setOnClickListener( new View.OnClickListener(){

public void onClick(View arg0) { actv = (AutoCompleteTextView)

findViewById(R.id.autoCompleteTextView1);

tvarti = (TextView) findViewById(R.id.tvArti);

File folder = new

File(Environment.getExternalStorageDirectory() + "/contoh"); String csv =

folder.toString()+"/"+"kerjaku.csv";

KMP k = new KMP();

String cari = actv.getText().toString(); System.out.println("Terjemahan kata "+cari);

BufferedReader br = null;

String line = "";

String cvsSplitBy = "#";

int ketemu = 0; try {

br = new BufferedReader(new FileReader(csv)); while ((line = br.readLine()) != null) {

String[] kamus = line.split(cvsSplitBy);

String kata = kamus[0]; String arti = kamus[1];

int first_occur_position = k.kmp(kata , cari);

if(first_occur_position >= 0){ tvarti.setText(kata + "="+arti); System.out.println(kata + "="+arti); ketemu += 1;

}

(4)

}

} catch (FileNotFoundException e) { e.printStackTrace();

} catch (IOException e) { e.printStackTrace(); } finally {

if (br != null) { try {

br.close();

} catch (IOException e) { e.printStackTrace();

} }

}

System.out.println("Proses Baca Data Selesai");

if(ketemu<1){

tvarti.setText("Kata Tidak Ditemukan");

}

edkata.setText("");

}

});

b2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub Intent i = new Intent(CariKata.this, TambahKata.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);

} });

btn2kembali.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

(5)

Intent i = new Intent(CariKata.this, MainActivity.class);

startActivity(i);

} });

}

}

KMP.java

package com.indah.kmp;

public class KMP {

public int[] prekmp(String pattern) {

int[] next = new int[pattern.length()]; int i=0, j=-1;

next[0]=-1;

while (i<pattern.length()-1) { while (j>=0 &&

pattern.charAt(i)!=pattern.charAt(j)) j = next[j]; i++;

j++;

next[i] = j; }

return next; }

public int kmp(String text, String pattern) { int[] next = prekmp(pattern);

int i=0, j=0;

while (i<text.length()) { while (j>=0 &&

text.charAt(i)!=pattern.charAt(j)) j = next[j]; i++; j++;

if (j==pattern.length()) return i-pattern.length();

}

(6)

}

MainActivity.java

package com.indah.kmp;

import java.io.BufferedReader; import java.io.File;

import java.io.FileNotFoundException; import java.io.FileReader;

import java.io.IOException;

import android.support.v7.app.ActionBarActivity; import android.content.Intent; //indah tmbah import android.os.Bundle;

import android.os.Environment; import android.view.Menu;

import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView;

public class MainActivity extends ActionBarActivity {

Button cari, tambah;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.dashboard);

cari = (Button) findViewById (R.id.button_cari);

tambah = (Button) findViewById (R.id.button_tambah);

cari.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent i = new Intent(MainActivity.this, CariKata.class);

startActivity(i);

(7)

});

tambah.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent i = new Intent(MainActivity.this, TambahKata.class);

startActivity(i);

} });

}

@Override

public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

if (id == R.id.action_settings) { return true;

}

return super.onOptionsItemSelected(item); }

}

TambahKata.java

package com.indah.kmp;

import java.io.BufferedReader; import java.io.File;

import java.io.FileNotFoundException; import java.io.FileReader;

(8)

import java.io.IOException; import java.util.ArrayList; import java.util.List;

import android.app.Activity; import android.content.Intent; import android.os.Bundle;

import android.os.Environment; import android.view.View;

import android.widget.Button; import android.widget.EditText; import android.widget.TextView;

public class TambahKata extends Activity {

Button btn2; Button b1;

Button btnsimpan;

TextView tvarti, tvnotfound; EditText edkata, edarti;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.tambah_kata);

b1 = (Button) findViewById (R.id.btncari); btn2 = (Button)findViewById(R.id.btn2);

btn2.setOnClickListener( new View.OnClickListener(){

@Override

public void onClick(View v) {

Intent i = new Intent(TambahKata.this, MainActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);

} });

b1.setOnClickListener(new View.OnClickListener() {

@Override

(9)

edkata =

(EditText)findViewById(R.id.edkata); edarti =

(EditText)findViewById(R.id.edarti);

String kata = edkata.getText().toString(); String arti = edarti.getText().toString();

List<String> listkata = new ArrayList<String>();

List<String> listarti = new ArrayList<String>();

File folder = new

File(Environment.getExternalStorageDirectory() + "/contoh");

String csvFile =

folder.toString()+"/"+"kerjaku.csv";

BufferedReader br = null; String line = "";

String cvsSplitBy = "#"; try {

br = new BufferedReader(new FileReader(csvFile));

while ((line = br.readLine()) != null) {

String[] kamus = line.split(cvsSplitBy); String kata_b = kamus[0];

String arti_b = kamus[1];

listkata.add(kata_b); //terus di masukin ke kotak

listarti.add(arti_b);

}

} catch (FileNotFoundException e) { e.printStackTrace();

} catch (IOException e) { e.printStackTrace(); } finally {

if (br != null) { try {

br.close(); } catch (IOException e) {

e.printStackTrace(); }

(10)

}

System.out.println("Proses Baca Data Selesai");

try

{

String NamaFile = folder.toString()+"/"+"kerjaku.csv";

FileWriter writer = new FileWriter(NamaFile);

int p = listkata.size(); for(int i= 0 ; i < p; i++){

String s_kata = listkata.get(i); String s_arti = listarti.get(i); writer.append(s_kata);

writer.append('#'); writer.append(s_arti); writer.append('\n');

}

writer.append(kata); writer.append('#'); writer.append(arti); writer.append('\n');

writer.flush(); writer.close(); }

catch(IOException e) {

e.printStackTrace(); }

System.out.println("Proses Input Selesai");

} }); }

}

(11)

package com.indah.kmp;

import android.app.Activity; import android.content.Intent; import android.os.Bundle;

import android.view.View; import android.widget.Button;

public class Tentang extends Activity {

Button btn1;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.tentang);

btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener( new View.OnClickListener(){

@Override

public void onClick(View v) {

Intent i = new Intent(Tentang.this, MainActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);

} });

} }

Bantuan.Java

package com.indah.kmp;

import android.app.Activity; import android.content.Intent; import android.os.Bundle;

import android.view.View; import android.widget.Button;

public class Bantuan extends Activity {

Button btn1;

(12)

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.tentang);

btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener( new View.OnClickListener(){

@Override

public void onClick(View v) {

Intent i = new Intent(Bantuan.this, MainActivity.class);

i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i);

} });

} }

activity_main.xml

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/kamus"

tools:context="com.indah.kmp.MainActivity" >

<Button

android:id="@+id/button_tambah" android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignBaseline="@+id/btncari" android:layout_alignBottom="@+id/btncari" android:layout_alignParentRight="true"

android:text="Tambah Kata"/>

(13)

android:id="@+id/btncari"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView3" android:layout_alignLeft="@+id/textView1" android:layout_marginBottom="18dp"

android:text="Cari" />

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btncari" android:layout_centerVertical="true"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/btncari" android:layout_below="@+id/textView3" android:layout_marginTop="20dp"

android:textColor="#000000" android:text="TextView"

android:textSize="15sp" />

<AutoCompleteTextView

android:id="@+id/autoCompleteTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" android:layout_marginTop="16dp"

android:ems="10" >

<requestFocus /> </AutoCompleteTextView>

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true"

(14)

android:textSize="27sp" android:textStyle="bold" />

<Button

android:id="@+id/btn2_cari"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_tambah" android:layout_alignParentBottom="true"

android:layout_alignRight="@+id/button_tambah" android:layout_marginBottom="24dp"

android:layout_marginRight="17dp" android:text="Kembali" />

</RelativeLayout>

bantuan.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMediu m" />

android:text="Bantuan Menggunakan Aplikasi"

<EditText

android:id="@+id/editText1"

android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10"

android:inputType="textMultiLine" />

<Button

android:id="@+id/button1"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kembali" />

(15)

dashboard.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/huruf" android:src="@drawable/icon"

>

<Button

android:id="@+id/button_cari"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginRight="35dp" android:layout_marginTop="86dp"

android:layout_toLeftOf="@+id/button_tambah" android:height="80dp"

android:text="Cari Kata" android:width="120dp" />

<Button

android:id="@+id/button_tambah" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/button_cari" android:layout_marginRight="26dp"

android:height="80dp"

android:text="Tambah Kata" android:width="120dp" />

<Button

android:id="@+id/button4"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_tambah" android:layout_centerVertical="true"

android:height="80dp" android:text="Bantuan" android:width="120dp" />

<Button

(16)

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_cari" android:layout_centerVertical="true"

android:height="80dp"

android:text="Tentang Aplikasi" android:width="120dp" />

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button_cari" android:layout_alignParentTop="true"

android:layout_alignRight="@+id/button_tambah" android:gravity="center"

android:layout_marginTop="28dp"

android:text="KAMUS ISTILAH KOMPUTER"

android:textAppearance="?android:attr/textAppearanceMediu m" />

</RelativeLayout>

tambah_kata.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/addkamus" android:orientation="vertical" >

<Button

android:id="@+id/btn2"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="24dp" android:layout_marginRight="27dp" android:text="Kembali" />

<EditText

android:id="@+id/edarti"

(17)

android:layout_alignBottom="@+id/btncari" android:layout_alignLeft="@+id/textView3" android:layout_alignRight="@+id/btn2" android:layout_marginBottom="57dp" android:ems="10" >

<requestFocus /> </EditText>

<TextView

android:id="@+id/textView2"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kata"

android:textColor="#FF6600" android:textSize="27sp" android:textStyle="bold"

android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="18dp" android:layout_marginTop="26dp"

android:textAppearance="?android:attr/textAppearanceMediu m" />

<EditText

android:id="@+id/edkata"

android:layout_width="match_parent" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView3" android:layout_alignRight="@+id/edarti" android:layout_below="@+id/textView2" android:layout_marginTop="27dp"

android:ems="10" />

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content" android:layout_height="wrap_content"

android:layout_alignLeft="@+id/textView2" android:layout_below="@+id/edkata"

android:layout_marginTop="26dp" android:text="Arti"

android:textSize="27sp" android:textStyle="bold" android:textColor="#FF6600"

(18)

<Button

android:id="@+id/btncari" android:layout_width="146dp"

android:layout_height="wrap_content" android:layout_above="@+id/btn2"

android:layout_alignLeft="@+id/textView3" android:layout_marginBottom="76dp"

android:text="Simpan" />

</RelativeLayout>

Tentang.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/tentang" android:orientation="vertical"

android:singleLine="false" >

<TextView

android:id="@+id/textView1"

android:layout_width="match_parent" android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceMediu m" />

android:text="Tentang Aplikasi Komputer"

<TextView

android:id="@+id/textView2"

android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" android:layout_marginTop="35dp"

android:layout_weight="0.11"

android:text="Kamus Istilah Komputer ini yaitu sebuah alat bantu bagi manusia untuk mendapatkan arti dari suatu kata atau istilah yang biasanya disusun berdasarkan abjad sehingga akan lebih mudah mengetahui makna dari istilah komputer. Dengan menggunakan

perangkat teknologi mobile device berbasis android

(19)

<Button

android:id="@+id/button1"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" android:layout_marginTop="47dp"

android:text="Kembali" />

</RelativeLayout>

Bantuan.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android "

android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bantuan" android:orientation="vertical" >

<TextView

android:id="@+id/textView2"

android:layout_width="match_parent"

android:layout_weight="0.00"

android:layout_height="wrap_content"

android:textAppearance="?android:attr/textAppearanceLarge " />

android:text="Bantuan Menggunakan Aplikasi"

<TextView

android:id="@+id/textView1" android:layout_width="228dp"

android:layout_height="wrap_content"

android:text="1. Instal KMP.apk pada handpone Android. 2. lalu buka aplikasi KMP3. Terdapat 4 menu tombol pada Halaman Utama 4. Tombol CARI KATA yaitu halaman untuk melakukan pencarian istilah komputer.5. Tombol TAMBAH KATA yaitu halaman untuk menambah kosa kata baru istilah komputer .6. Tombol TENTANG yaitu Halaman untuk mengetahui tentang Aplikasi Komputer 7. Tombol BANTUAN yaitu Halamat untuk mendapatkan cara menggunakan Aplikasi." />

<Button

(20)

android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Kembali" />

</LinearLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> <manifest

xmlns:android="http://schemas.android.com/apk/res/android "

package="com.indah.kmp" android:versionCode="1" android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="19" />

<uses-permission

android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission

android:name="android.permission.READ_EXTERNAL_STORAGE" />

<application

android:allowBackup="true"

android:icon="@drawable/iconbaru" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity

android:name=".MainActivity"

android:label="@string/app_name" > <intent-filter>

<action

android:name="android.intent.action.MAIN" />

<category

android:name="android.intent.category.LAUNCHER" /> </intent-filter>

</activity>

<activity

android:name=".TambahKata"

(21)

<activity

android:name=".CariKata"

android:label="@string/app_name" > </activity>

<activity

android:name=".Tentang"

android:label="@string/app_name" > </activity>

</application>

</manifest>

Referensi

Dokumen terkait

Gambar 4.3 Tampilan Halaman Pencarian Mula-mula user akan menginputkan kata kunci tentang ayat yang ingin dicari, kunci berupa kata dalam bahasa Indonesia, lalu menekan button

public class MainActivity extends Activity { private DrawerLayout mDrawerLayout ;. private ListView

Hasil pencarian yang ditampilkan berupa dokumen-dokumen yang tersedia dalam Android dan informasi mengenai jumlah dari dokumen yang tersedia dalam Android tersebut, serta

import java.text.DecimalFormat; import java.util.ArrayList; import android.app.AlertDialog; import android.app.Fragment; import android.database.Cursor; import

Dari hasil dari tahap perancangan hingga tahap pengujian penelitian yang telah dilakukan pada aplikasi sosial DoCare yang berbasis android dengan menggunakan algoritma

Implementasi Algoritma Knuth-Morris Pratt String Matching untuk Mencari Kata atau Istilah pada Kamus Komputer Berbasis Android.. Universitas

The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in

Didallalm penelitialn tersebut dibalngun sebualh alplikalsi terjemalhaln Balhalsal Indonesial ke Balhalsal Alceh daln seballiknyal yalng dalpalt menerjemalhkaln kaltal sederhalnal