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

  

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

  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 (this,android.R.layout.simple_list_item_1,kata); 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; }

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

  // TODO Auto-generated method stub

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

  } });

  } }

  KMP.java package com.indah.kmp; publicclass KMP { publicint[] prekmp(String pattern) { int[] next = newint[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;

  }

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

  return -1;

  }

  }

  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; publicclass MainActivity extends ActionBarActivity {

  Button cari, tambah; @Override

  protectedvoid 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

  publicvoid onClick(View v) {

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

  }

  }); tambah.setOnClickListener(new View.OnClickListener() {

  @Override

  publicvoid onClick(View v) {

  // TODO Auto-generated method stub Intent i = new Intent(MainActivity.this,

  TambahKata.class); startActivity(i); }

  }); }

  @Override

  

publicboolean onCreateOptionsMenu(Menu menu) {

  getMenuInflater().inflate(R.menu.main, menu);

  returntrue;

  } @Override

  publicboolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { returntrue;

  }

  returnsuper.onOptionsItemSelected(item);

  } }

  TambahKata.java package com.indah.kmp; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; 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; publicclass TambahKata extends Activity {

  Button btn2; Button b1; Button btnsimpan; TextView tvarti, tvnotfound; EditText edkata, edarti; @Override

  protectedvoid 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

  publicvoid 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

  publicvoid onClick(View v) { 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();

  } }

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

  } });

  } }

  Tentang.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; publicclass Tentang extends Activity {

  Button btn1; @Override

  protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

  setContentView(R.layout.tentang); btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener( new View.OnClickListener(){ @Override

  publicvoid 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; publicclass Bantuan extends Activity {

  Button btn1; @Override

  protectedvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

  setContentView(R.layout.tentang); btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener( new View.OnClickListener(){ @Override

  publicvoid 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" /> <Button 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:text="Arti" android:textColor="#FF6600" android:textSize="27sp" android:textStyle="bold" /> <TextView android:id="@+id/tvArti" 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:text="TextView" android:textColor="#000000" 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" android:text="Kata" android:textColor="#FF6600"

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:text="Bantuan Menggunakan Aplikasi" android:textAppearance="?android:attr/textAppearanceMediu

  m" />

  <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" /> </LinearLayout>

  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 android:id="@+id/button3" 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" android:layout_width="match_parent" android:layout_height="wrap_content" 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" android:textAppearance="?android:attr/textAppearanceMediu

  m" />

  <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:text="Tentang Aplikasi Komputer" android:textAppearance="?android:attr/textAppearanceMediu

  m" />

  <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 sebagai alat yang lebih praktis karena sifatnya portable sehingga memudahkan bagi yang ingin mendapatkan informasi mengenai Istilah komputer."

  />

  <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_height="wrap_content" android:layout_weight="0.00" android:text="Bantuan Menggunakan Aplikasi" android:textAppearance="?android:attr/textAppearanceLarge

  " />

  <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 android:id="@+id/button1" 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" android:label="@string/app_name"> </activity>

  <activity android:name=".CariKata" android:label="@string/app_name"> </activity> <activity android:name=".Tentang" android:label="@string/app_name"> </activity> </application> </manifest>

Dokumen yang terkait

ANALISA YURIDIS TERHADAP PRAKTIK MONEY GAME DALAM TRANSAKSI PERDAGANGAN BERBASIS MULTI LEVEL MARKETING SKRIPSI Diajukan Untuk Melengkapi dan Memenuhi Syarat-Syarat Memperoleh Gelar Sarjana Hukum

0 0 10

Pengujian Peckingorder Theory Dalam Pembentukan Struktur Modal Pada Perusahaan Consumer Goods Yang Terdaftar Di Bursa Efek Indonesia Periode 2010-2013

0 0 11

BAB II LANDASAN TEORI - Perbandingan Metode Deteksi Tepi Canny, Robert dan Laplacian of Gaussian Pada Hasil Citra Camera 360

0 0 13

2.1 Kecamatan Medan Selayang - Perilaku Perempuan Dalam Menentukan Pilihan Politik Pada Umum Dewan Perwakilan Rakyat Daerah Kota Medan 2014

0 1 31

BAB I PENDAHULUAN A. Latar Belakang Masalah - Perilaku Perempuan Dalam Menentukan Pilihan Politik Pada Umum Dewan Perwakilan Rakyat Daerah Kota Medan 2014

0 0 34

BAB I PENDAHULUAN A. Latar Belakang - Kepastian Hukum Bagi Bank Sebagai Kreditur Atas Tanah Yang Belum Terdaftar Sebagai Agunan Pada PT. Bank SUMUT Cabang Gunung Tua

0 1 35

BAB II TINJAUAN TENTANG HUKUM JAMINAN DALAM HUKUM AGRARIA A. Hak Tanggunan Sebagai Hukum Jaminan Tanah - Kepastian Hukum Bagi Bank Sebagai Kreditur Atas Tanah Yang Belum Terdaftar Sebagai Agunan Pada PT. Bank SUMUT Cabang Gunung Tua

0 0 28

ANALISIS YURIDIS TERHADAP PENAHANAN DEBITUR PAILIT DALAM PENGURUSAN DAN PEMBERESAN HARTA PAILIT Diajukan Untuk Melengkapi Tugas Akhir dan Memenuhi Syarat-Syarat Untuk Memperoleh Gelar Sarjana Hukum SKRIPSI

0 0 8

BAB I PENDAHULUAN 1.1. Latar Belakang - Pengaruh Kualitas Pelayanan Terhadap Kepuasan Pelanggan ( Studi Pada (PDAM) Tirtanadi Cabang Medan Kota)

0 4 32

Pengaruh Kualitas Pelayanan Terhadap Kepuasan Pelanggan ( Studi Pada (PDAM) Tirtanadi Cabang Medan Kota)

0 3 12