Subscribe For Free Updates!

We'll not spam mate! We promise.

Kamis, 31 Juli 2014

Aplikasi Kamus Komputer berbasis Android

Pada kali ini saya akan berbagi mengenai pembuatan aplikasi sederhana berbasis android, aplikasi ini juga dibuat untuk memenuhi UAS Genap mata kuliah Mobile Programming.pada kesempatan kali ini penulis membuat Aplikasi Kamus Komputer menggunakan database SQLite, fungsi aplikasi ini yaitu kumpulan istilah - istilah dalam sebuah komputer. ok kita langsung saja.

pertama kita buat dulu databasenya menggunakan SQLite Manager dengan nama db_kamus_komputer. kemudian kita buat tabel pada database tersebut dengan nama tb_data, dengan cara seperti berikut click Database > Create Table. pada Table Name isi dengan nama tb_data, kemudian isi field - field nya seperti berikut :
Membuat Table
Kemudian kita isi data nya dengan cara seperti berikut :

Sekarang kita buat aplikasi menggunakan Eclipse, dan berikan nama kamus komputer.

kemudian kita buat class baru untuk kamus komputer, berikan nama kamus.java dan ini isi nya :
package com.example.kamuskomputer;

public class Kamus
{
 private String istilah;
 private String arti;

 public String getIstilah()
 {
  return istilah;
 }

 public void setIstilah(String istilah)
 {
  this.istilah = istilah;
 }

 public String getArti()
 {
  return arti;
 }

 public void setArti(String arti)
 {
  this.arti = arti;
 }
 @Override
 public String toString()
 {
  return this.istilah;
 }

selanjutnya adalah class untuk helper untuk SQLite Databasenya.. saya beri nama DatabaseHelper.java
package com.example.kamuskomputer;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;

public class DatabaseHelper extends SQLiteAssetHelper
{
 private static final String  DB_NAME  = "db_kamus_komputer";
 private static final int  DB_VER  = 1;

 private static final String  TB_DATA  = "tb_data";
 public static final String  COL_ID  = "_id";
 public static final String  COL_ISTILAH = "istilah";
 public static final String  COL_ARTI = "arti";

 private static DatabaseHelper dbInstance;
 private static SQLiteDatabase db;

 private DatabaseHelper(Context context)
 {
  super(context, DB_NAME, null, DB_VER);
 }

 public static DatabaseHelper getInstance(Context context)
 {
  if (dbInstance == null)
  {
   dbInstance = new DatabaseHelper(context);
   db = dbInstance.getWritableDatabase();
  }
  return dbInstance;
 }

 @Override
 public synchronized void close()
 {
  super.close();
  if (dbInstance != null)
  {
   dbInstance.close();
  }
 }

 public List getAllKamus()
 {
  List lisKamus = new ArrayList();

  Cursor cursor = db.query(TB_DATA, new String[] { COL_ID, COL_ID,
    COL_ARTI, COL_ISTILAH }, null, null, null, null, COL_ISTILAH);
  if (cursor.getCount() >= 1)
  {
   cursor.moveToFirst();

   do
   {
    Kamus kamus = new Kamus();
    kamus.setArti(cursor.getString(cursor
      .getColumnIndexOrThrow(COL_ARTI)));
    kamus.setIstilah(cursor.getString(cursor
      .getColumnIndexOrThrow(COL_ISTILAH)));
    lisKamus.add(kamus);

   } while (cursor.moveToNext());
  }
  return lisKamus;

 }
}

selanjutnya silahkan ubah tampilan layout utama anda, activity_main.xml menjadi sebagai berikut :




lalu buat lagi sebuah activity baru yakni ArtiActivity.java yang memiliki kode sebagai berikut :
package com.example.kamuskomputer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class ArtiActivity extends Activity
{
 private TextView txtArti, txtIstilah;

 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_arti);
  txtArti = (TextView) findViewById(R.id.arti);
  txtIstilah = (TextView) findViewById(R.id.istilah);

  Bundle b = getIntent().getExtras();
  if (b != null)
  {
   txtIstilah.setText(b.getString("istilah"));
   txtArti.setText(b.getString("arti"));
  }
 }
}

dan untuk layout activity_arti.xml akan menjadi seperti berikut:





dan terakhir dan yang paling penting adalah berada pada file MainActivity.java rubah menjadi seperti dibawah ini :

package com.example.kamuskomputer;

import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

public class MainActivity extends Activity implements TextWatcher,
  OnItemClickListener
{
 private EditText   search;
 private ListView   lv;
 private DatabaseHelper  dbHelper;
 private ArrayAdapter adapter;
 private List   listKamus;

 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  lv = (ListView) findViewById(R.id.lv_data);
  lv.setEmptyView(findViewById(R.id.empty));
  search = (EditText) findViewById(R.id.search);

  dbHelper = DatabaseHelper.getInstance(this);

  setData();

  search.addTextChangedListener(this);
  lv.setOnItemClickListener(this);
 }

 private void setData()
 {
  listKamus = dbHelper.getAllKamus();

  adapter = new ArrayAdapter(this,
    android.R.layout.simple_expandable_list_item_1, listKamus);
  lv.setAdapter(adapter);

 }

 @Override
 public void afterTextChanged(Editable arg0)
 {
 }

 @Override
 public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
   int arg3)
 {
 }

 @Override
 public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3)
 {
  adapter.getFilter().filter(s.toString());
 }

 @Override
 public void onItemClick(AdapterView arg0, View arg1, int position,
   long id)
 {
  // TODO Auto-generated method stub
  Bundle b = new Bundle();
  b.putString("istilah", adapter.getItem(position).getIstilah());
  b.putString("arti", adapter.getItem(position).getArti());

  Intent i = new Intent(this, ArtiActivity.class);
  i.putExtras(b);
  startActivity(i);

 }
}

program ini sudah dapat berjalan dengan baik, semua data di database dapat terload dengan baik, dan fungsi pencarian data juga berjalan sempurna.




sekian pembuatan aplikasi kamus komputer berbasis android menggunakan database sqlite, semoga artikel ini dapat bermanfaat untuk kita semua.

Minggu, 25 Mei 2014

Membuat Aplikasi Sederhana Berbasis Android

Pada kali ini saya akan berbagi mengenai pembuatan aplikasi sederhana berbasis android, aplikasi ini juga dibuat untuk memenuhi UTS Genap mata kuliah Mobile Programming. pada aplikasi ini saya membuat 3 listview pertama aplikasi kalkulator, kedua luas lingkaran dan ketiga About Me. ok langsung saja.

Pertama kita buat aplikasinya dengan nama UtsAndroid dengan cara klik File -- New -- Android Applications Project.

1. Sekarang kita buat Form Kalkulator :
Pada Folder src, buat file baru dan beri nama Kalkulator, nanti secara otomatis akan terbuat file Kalkulator.java dan activity_kalkulator.xml

ketika kode berikut pada file Kalkulator.java:

package com.example.utsandroid;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
import android.annotation.TargetApi;
import android.os.Build;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class Kalkulator extends Activity {
EditText bil1,bil2;
TextView hasil;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kalkulator);
// Show the Up button in the action bar.
setupActionBar();
 bil1 = (EditText) findViewById(R.id.txtpertama);
 bil2 = (EditText) findViewById(R.id.txtkedua);
 hasil = (TextView) findViewById(R.id.txthasil);
}

public void tambah(View view) {
 int a = Integer.parseInt(bil1.getText().toString());
 int b = Integer.parseInt(bil2.getText().toString());
 int c=a+b;
 hasil.setText(c+""); 


public void kurang(View view) {
 int a = Integer.parseInt(bil1.getText().toString());
 int b = Integer.parseInt(bil2.getText().toString());
 int c=a-b;
 hasil.setText(c+"");

 
public void kali(View view) {
 int a = Integer.parseInt(bil1.getText().toString());
 int b = Integer.parseInt(bil2.getText().toString());
 int c=a*b;
 hasil.setText(c+"");
}
 
public void bagi(View view) {
 double a = Double.parseDouble(bil1.getText().toString());
 double b = Double.parseDouble(bil2.getText().toString());
 double c=a/b;
 hasil.setText(c+"");

 
/**
* Set up the {@link android.app.ActionBar}, if the API is available.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.kalkulator, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}


}

Kemudian ketikan kode berikut ini pada activity_kalkulator.xml :


    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"
    tools:context=".Kalkulator" >

   
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Kalkulator Sederhana"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="26dp"
        android:text="Created By : MYM"
        android:textAppearance="?android:attr/textAppearanceSmall" />

   
        android:id="@+id/txtpertama"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="16dp"
        android:ems="10"
        android:hint="Bilangan Pertama"
        android:inputType="number" >

       
   

   
        android:id="@+id/txtkedua"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/txtpertama"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="Bilangan Kedua"
        android:inputType="number" />

   
        android:id="@+id/txthasil"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView2"
        android:layout_alignLeft="@+id/textView3"
        android:layout_marginBottom="84dp"
        android:ems="10"
        android:inputType="number" />

   
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/txthasil"
        android:layout_alignLeft="@+id/txtkedua"
        android:layout_marginBottom="14dp"
        android:text="Hasil :"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/btn_tambah"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txtkedua"
        android:layout_below="@+id/txtkedua"
        android:layout_marginTop="26dp"
        android:onClick="tambah"
        android:text="+" />

   
        android:id="@+id/btn_kali"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btn_kurang"
        android:layout_alignBottom="@+id/btn_kurang"
        android:layout_toRightOf="@+id/btn_kurang"
        android:onClick="kali"
        android:text="x" />

   
        android:id="@+id/btn_kurang"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btn_tambah"
        android:layout_alignBottom="@+id/btn_tambah"
        android:layout_toRightOf="@+id/btn_tambah"
        android:onClick="kurang"
        android:text="-" />

   
        android:id="@+id/btn_bagi"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/btn_kali"
        android:layout_toRightOf="@+id/btn_kali"
        android:onClick="bagi"
        android:text="/" />




2. Sekarang kita buat Form Luas Lingkaran :
Pada Folder src, buat file baru dan beri nama Lingkaran , nanti secara otomatis akan terbuat file Lingkaran.java dan activity_lingkaran.xml

ketika kode berikut pada file Lingkaran.java:

package com.example.utsandroid;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.support.v4.app.NavUtils;
import android.annotation.TargetApi;
import android.os.Build;

public class Lingkaran extends Activity {
private EditText txtJari;
private EditText txtLuas;
private Button btnHitung;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lingkaran);
// Show the Up button in the action bar.
setupActionBar();
txtJari = (EditText) findViewById(R.id.txtjari);
txtLuas = (EditText) findViewById(R.id.txthasilnya);
btnHitung = (Button) findViewById(R.id.btn_hitung);
}

/**
* Set up the {@link android.app.ActionBar}, if the API is available.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void setupActionBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}
public void hitungLuas(View view) {

int jarijari = Integer.parseInt(txtJari.getText().toString());
double luas =  (22 * jarijari * jarijari)/7;
txtLuas.setText(String.valueOf(luas));
}
public void hapusna(View view) {
txtJari.setText("");
txtLuas.setText("");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.lingkaran, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}

}

Kemudian ketikan kode lagi pada file activity_lingkaran.xml :

    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"
    tools:context=".Lingkaran" >

   
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Menghitung Luas lingkaran"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="22dp"
        android:text="Jari - Jari"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/txtjari"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:ems="10"
        android:inputType="number" >

       
   

   
        android:id="@+id/txthasilnya"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView3"
        android:ems="10"
        android:inputType="number" />

   
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="64dp"
        android:layout_marginRight="28dp"
        android:text="Created By: MYM"
        android:textAppearance="?android:attr/textAppearanceSmall" />

   
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txthasilnya"
        android:layout_centerVertical="true"
        android:text="Hasilnya :"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/btn_hitung"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView3"
        android:layout_below="@+id/txtjari"
        android:layout_marginTop="23dp"
        android:onClick="hitungLuas"
        android:text="Hitung" />

   
        android:id="@+id/btn_hapus"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/btn_hitung"
        android:layout_centerHorizontal="true"
        android:onClick="hapusna"
        android:text="Hapus" />


3. Sekarang kita buat Form Tentangku :
Pada Folder src, buat file baru dan beri nama Tentangku, nanti secara otomatis akan terbuat file Tentangku.java dan activity_tentangku.xml

ketika kode berikut pada file activity_tentangku.xml :


    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"
    tools:context=".Tentangku" >

   
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="16dp"
        android:text="Nama :"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginLeft="36dp"
        android:layout_marginTop="15dp"
        android:text="Muhammad Yusuf Mubarok"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="15dp"
        android:text="NIM :"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="16dp"
        android:text="0031 1112 1047"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView4"
        android:layout_marginTop="18dp"
        android:text="Mata Kuliah :"
        android:textAppearance="?android:attr/textAppearanceMedium" />

   
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView4"
        android:layout_below="@+id/textView5"
        android:layout_marginTop="32dp"
        android:text="Mobile Programming"
        android:textAppearance="?android:attr/textAppearanceMedium" />



Setelah semua selesai dibuat, sekarang tugas kita adalah membuat menu UtsAndroid yang telah kita buat untuk dapat memanggil 3 form tersebut dengan menu yang di pilih :

Sekarang kita buka file MainActivity.java dan berikan kode sebagai berikut:

package com.example.utsandroid;


import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

public void onCreate(Bundle icicle) {
super.onCreate(icicle);
String[] mylist = new String[] { "Kalkulator", "Lingkaran",
"About Me", "Exit" };
this.setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_1, mylist));
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
tampilkanPilihan(pilihan);
}

protected void tampilkanPilihan(String pilihan) {
try {
Intent i = null;
if (pilihan.equals("Kalkulator")) {
i = new Intent(this, Kalkulator.class);
} else if (pilihan.equals("Lingkaran")) {
i = new Intent(this, Lingkaran.class);
} else if (pilihan.equals("About Me")) {
i = new Intent(this, Tentangku.class);
} else if (pilihan.equals("Exit")) {
finish();
} else {
Toast.makeText(this,"Anda Memilih: " + pilihan + " , Actionnya belum dibuat", Toast.LENGTH_LONG).show();
}
startActivity(i);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Setelah itu kita jalan programnya, maka akan tampil seperti ini :


Tampilan Utama

Ketika kita klik menu kalkulator maka akan ada tampilan seperti ini :

Kalkulator
Kemudian ketika kita klik menu lingkaran maka akan tampil seperti ini :

Luas Lingkaran
dan yang terakhir ketika kita klik menu About Me maka akan tampil seperti ini :

About Me

Pada menu utama ada menu exit, menu tersebut berfungsi untuk keluar dari aplikasi UtsAndroid. mungkin cukup sekian tutorial ini, semoga dapat bermanfaat bagi para pembaca. terima kasih.