• 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

Oleh karena rasanya yang pahit, hanya sebagian orang saja yang mengkonsumsi daunnya, sebagian besar yang lain memilih untuk tidak mengkonsumsinya. Padahal kita

sisi inilah Kartini diuntungkan karena lahir dari ibunda yang rakyat jelata. Keterkungkungan perempuan karena budaya membuat dirinya tak

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula

Landasan hukum yang melatarbelakangi disusunnya Program Kerja UAS ini adalah peraturan yang tercantum dalam Keputusan Pemerintah yang dijabarkan

Whereas empirical methods provide a time efficient and easy to use calibration method in close range imaging, they The International Archives of the Photogrammetry, Remote Sensing

[r]

Tujuan penelitian ini adalah Menganalisa hubungan depresi dengan kadar [9] gula darah acak pada penderita Diabetes Mellitus tipe 2 di Ruang Dahlia RSUD Jombang.. Desain penelitian

Intervensi yang paling utama dalam diagnosa Ketidakefektifan perfusi jaringan perifer adalah tindakan Konservatif yaitu non pembedahan dengan memberikan traksi yaitu