APLIKASI KAMUS BERBASIS ANDROID
Saya akan buat project yang menggunakan database sqlite di android. Dulu sebelum pakai android dihandphone yang dulu pasati pernah install kamus inggris Indonesia, yang kita gunakan untuk mencari terjemahan suatu kata dalam bahasa inggris ke bahasa Indonesia. Sebetulnya diandroid juga sudah ada yang buat. Tetapi tentunya akan lebih puas jika kita buat sendiri.
Langkah-langkahnya :
1. Buat New Project dengan nama App Kamus B.Inggris - Indonesia, lengkapi seperti gambar dibawah
2. Untuk selanjutnya pada pilihan create launcher icon dan create activity kita centang, agar aplikasi yang kita buat ada icon dan ada aktivitasnya. Klik centang juga pada create Project in Workplace untuk menyimpan objek aplikasi kita.
3. Selanjutnya akan ada menu pilihan icon. Di sebelah kanan akan muncul besarnya icon saat di install di android kita. Kita bisa mengubahnya dengan clip art atau text pada pilihan Clipart / text diatas. Atau kita juga bisa gunakan gambar kita dengan mengupload dari komputer atau dati internet. Untuk mengubah besarnya ukuran gambar geser Additional padding. Sedangkan Crop dan center menyesuaikan icon kita. Sebaiknya pilih center agar logo android kita tidak terpotong. Setelah itu kita bisa tambahkan bentuk icon dan background colour untuk mempercantik logo icon aplikasi kita.
4. Selanjutnya centang create activity. Dan mulai dengan Blank Activity.
5. untuk membuat user interfacenya, buka file activity_main.xml (desain form login) lalu ketikkan kode berikut :
<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" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Form Login"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout1"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="User Name" />
<EditText
android:id="@+id/userNameEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="User Name" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout2"
android:orientation="vertical" >
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Password" />
<EditText
android:id="@+id/passwordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout3" >
<Button
android:id="@+id/loginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="Login" />
<Button
android:id="@+id/tutupButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Tutup" />
</LinearLayout>
</RelativeLayout>
hasilnya akan seperti ini
6. Buat lagi activity baru dengan MenuActivity, lalu cari file xml nya, dengan nama activity_menu.xml dan masukan kode berikut :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Kamus Inggris Indonesia" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inggris - Indonesia" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indonesia - Inggris" />
</RadioGroup>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Input" />
<EditText
android:text=""
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</EditText>
<Button
android:text="Terjemahkan"
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="getTerjemahan">
</Button>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasil" >
</TextView>
<EditText
android:text=""
android:id="@+id/txtIndonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false">
</EditText>
<Button
android:id="@+id/kembaliButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kembali Login" />
</LinearLayout>
Hasil nya akan seperti ini
<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" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="User name atau password salah"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout1" >
<Button
android:id="@+id/kembaliButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Kembali" />
</LinearLayout>
</RelativeLayout>
Hasilnya akan seperti ini
package com.lutfi.appkamusb.inggris_indonesia;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DataKamus extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "dbkamus";
public static final String INGGRIS= "inggris";
public static final String INDONESIA = "indonesia";
//Constructor DataKamus untuk initiate database
public DataKamus(Context context) {
super(context, DATABASE_NAME, null, 1);
}
//method createTable untuk membuat table kamus
public void createTable(SQLiteDatabase db){
db.execSQL("DROP TABLE IF EXISTS kamus");
db.execSQL("CREATE TABLE if not exists kamus "
+ "(id INTEGER PRIMARY KEY AUTOINCREMENT, inggris TEXT, indonesia TEXT);");
}
//method generateData untuk mengisikan data ke kamus.
public void generateData(SQLiteDatabase db){
ContentValues cv=new ContentValues();
cv.put(INGGRIS, "run");
cv.put(INDONESIA, "lari");
db.insert("kamus", INGGRIS, cv);
cv.put(INGGRIS, "walk");
cv.put(INDONESIA, "jalan");
db.insert("kamus", INGGRIS, cv);
cv.put(INGGRIS, "read");
cv.put(INDONESIA, "membaca");
db.insert("kamus", INGGRIS, cv);
cv.put(INDONESIA, "lari");
cv.put(INGGRIS, "run");
db.insert("kamus", INDONESIA, cv);
cv.put(INDONESIA, "jalan");
cv.put(INGGRIS, "walk");
db.insert("kamus", INDONESIA, cv);
cv.put(INDONESIA, "membaca");
cv.put(INGGRIS, "read");
db.insert("kamus", INDONESIA, cv);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
}
9. lalu masukan sorce code pada MainActivity.java untuk Login
package com.lutfi.appkamusb.inggris_indonesia;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener{
private String[][] dataUser = {{"ADMIN","ADMIN","Administrator"},
{"user1","password1","Nama User 1"},
{"user2","password2","Nama User 2"}};
private EditText userNameET, passwordET;
private final int SUCCESS=1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userNameET = (EditText) findViewById(R.id.userNameEditText);
passwordET = (EditText) findViewById(R.id.passwordEditText);
findViewById(R.id.loginButton).setOnClickListener(this);
findViewById(R.id.tutupButton).setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.loginButton:
int i=0;
boolean success=false;
while ((i<dataUser.length) && (!success)){
if
((userNameET.getText().toString().equals(dataUser[i][0])) &&
(passwordET.getText().toString().equals(dataUser[i][1]))){ success=true;
} else {
i++;
}
}
Intent intent;
if (success){
intent = new Intent(this, MenuActivity.class); intent.putExtra("namaUser", dataUser[i][2]);
startActivityForResult(intent,SUCCESS);
} else {
intent = new Intent(this, FailedActivity.class);
startActivity(intent);
}
startActivity(intent);
break;
case R.id.tutupButton:
System.exit(0);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
switch (requestCode) {
case SUCCESS:
userNameET.setText("");
passwordET.setText("");
break; }
}
}
10. masukan lagi sorce code untuk kamusnya pada MenuActivity.java
package com.lutfi.appkamusb.inggris_indonesia;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
public class MenuActivity extends Activity {
private SQLiteDatabase db = null;
private Cursor kamusCursor = null;
private EditText txtInggris;
private EditText txtIndonesia;
private DataKamus datakamus = null;
public static final String INGGRIS = "inggris";
public static final String INDONESIA = "indonesia";
RadioButton radioButton1;
RadioButton radioButton2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
datakamus = new DataKamus(this);
db = datakamus.getWritableDatabase();
datakamus.createTable(db);
datakamus.generateData(db);
setContentView(R.layout.activity_menu);
txtInggris = (EditText) findViewById(R.id.txtInggris);
txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
radioButton1 = (RadioButton)findViewById(R.id.radioButton1);
radioButton2 = (RadioButton)findViewById(R.id.radioButton2);
}
public void onClick(View v){
if(radioButton1.isChecked()){
btnTerjemahInputToHasil();
}
if(radioButton2.isChecked()){
btnTerjemahHasilToInput();
}
}
private void btnTerjemahHasilToInput() {
double val = Double.parseDouble(txtInggris.getText().toString());
txtIndonesia.setText(Double.toString(val));
// TODO Auto-generated method stub
}
private void btnTerjemahInputToHasil() {
double val = Double.parseDouble(txtIndonesia.getText().toString());
txtInggris.setText(Double.toString(val));
// TODO Auto-generated method stub
}
public void getTerjemahan(View view) {
String result = "";
String englishword = txtInggris.getText().toString();
kamusCursor = db.rawQuery("SELECT ID, INGGRIS, INDONESIA "
+ "FROM kamus where INGGRIS='" + englishword
+ "' ORDER BY INGGRIS", null);
if (kamusCursor.moveToFirst()) {
result = kamusCursor.getString(2);
for (; !kamusCursor.isAfterLast(); kamusCursor.moveToNext()) {
result = kamusCursor.getString(2);
}
}
String indonesiaword = txtIndonesia.getText().toString();
kamusCursor = db.rawQuery("SELECT ID, INDONESIA, INGGRIS "
+ "FROM kamus where INDONESIA='" + englishword
+ "' ORDER BY INDONESIA", null);
if (kamusCursor.moveToFirst()) {
result = kamusCursor.getString(2);
for (; !kamusCursor.isAfterLast(); kamusCursor.moveToNext()) {
result = kamusCursor.getString(2);
}
}
if (result.equals("")) {
result = "Terjemahan Not Found";
}
txtIndonesia.setText(result);
}
@Override
public void onDestroy() {
super.onDestroy();
kamusCursor.close();
db.close();
}
public void onClick1(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.kembaliButton:
finish();
}
}
}
11. terakhir masukan sorce code nya jika login gagal pada FailedActivity.java
package com.lutfi.appkamusb.inggris_indonesia;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
public class FailedActivity extends Activity implements OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_failed);
findViewById(R.id.kembaliButton).setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.failed, menu);
return true;
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.kembaliButton:
finish();
}
}
}
12. Setelah selesai semua kemudian di Run, Hasil run nya seperti di bawah ini
NOTE : Untuk Login Username : user1
Password : password1
Demikian tutorial membuat aplikasi sederhana Kamus Berbasis Android, jika ada yang salah atau kekurangan mohon di maafkan, karna saya masih dalam tahap belajar.
Terima Kasih