Assalamualaikum
Wr. Wb
Kali
ini saya akan membagikan cara untuk membuat SQLite Database.
1.      Buka
aplikasi ADT atau Android Studio.
2.      Buat
project baru
3.      Buat
file java dan xml seperti tampilan dibawah ini.
4.      Source
code untuk file customer.java
package com.example.sql;
public class Customer {
     long id;
     String name;
     String address;
     String phone;
     boolean complete;
     public long getId() {
                 return id;
     }
     public void setId(long id) {
                 this.id = id;
     }
     public String getName() {
                 return name;
     }
     public void setName(String name) {
                 this.name = name;
     }
     public String getAddress() {
                 return address;
     }
     public void setAddress(String address) {
                 this.address = address;
     }
     public String getPhone() {
                 return phone;
     }
     public void setPhone(String phone) {
                 this.phone = phone;
     }
     public boolean isComplete() {
                 return complete;
     }
     public void setComplete(boolean complete) {
                 this.complete = complete;
     }
     // ——————————————-
     public void toggleComplete() {
                 complete = !complete;
     }
}
5.      Source
code untuk custumerListAdapter.java
package
com.example.sql;
import
java.util.ArrayList;
import
android.content.Context;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseAdapter;
import android.widget.CheckedTextView;
import
android.widget.TextView;
public class
CustomerListAdapter extends BaseAdapter {
     ArrayList<Customer> cust;
     Context context;
     public CustomerListAdapter(Context context,
ArrayList<Customer> custs) {
                 super();
                 this.cust = custs;
                 this.context = context;
     }
     @Override
     public int getCount() {
                 return cust.size();
     }
     @Override
     public Customer getItem(int position) {
                 return (null == cust) ? null : cust.get(position);
     }
     @Override
     public long getItemId(int position) {
                 return position;
     }
     public static class ViewHolder {
                 public CheckedTextView nameView;
                 public TextView idView;
                 public TextView phoneView;
     }
     @Override
     public View getView(int position, View convertView, ViewGroup
parent) {
                 ViewHolder holder;
                 View vi = convertView;
                 if (null == convertView) {
                             LayoutInflater infalInflater =
(LayoutInflater) context
                                                     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                             vi =
infalInflater.inflate(R.layout.listitem, null);
                             holder = new ViewHolder();
                             holder.nameView=(CheckedTextView)
vi.findViewById(R.id.txt_name);
                             holder.idView = (TextView)
vi.findViewById(R.id.txt_id);
                             holder.phoneView=(TextView)
vi.findViewById(R.id.data_phone);
                             vi.setTag(holder);
                 } else
                             holder = (ViewHolder) vi.getTag();
                 String txtName = cust.get(position).getName() +
"-"
                                         +
cust.get(position).getAddress() + "-"
                                         +
cust.get(position).getPhone();
                 String txtId =
String.valueOf(cust.get(position).getId());
                 boolean check = cust.get(position).isComplete();
                 holder.nameView.setText(txtName);
                 holder.nameView.setChecked(check);
                 holder.idView.setText(txtId);
                 return vi;
     }
     public void forceReload() {
                 notifyDataSetChanged();
     }
     public void toggleDataCompleteAtPosition(int position) {
                 Customer cust = getItem(position);
                 cust.toggleComplete();
                 notifyDataSetChanged();
     }
     public Long[] removeCheckedCustomer() {
                 ArrayList<Customer> completedTasks = new
ArrayList<Customer>();
                 ArrayList<Long> completedIds = new
ArrayList<Long>();
                 for (Customer dtCust : cust) {
                             if (dtCust.isComplete()) {
                                         completedTasks.add(dtCust);
                                         completedIds.add(dtCust.getId());
                             }
                 }
                 cust.removeAll(completedTasks);
                 notifyDataSetChanged();
                 return completedIds.toArray(new Long[] {});
     }
     public Customer getCheckedCustomer() {
                 Customer newCust = new Customer();
                 for (Customer dtCust : cust) {
                             if (dtCust.isComplete()) {
                                         newCust = dtCust;
                                         break;
                             }
                 }
                 return newCust;
     }
}
6.      Source
code untuk CustomerSQLHelper.java
package com.example.sql;
import
android.content.Context;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteOpenHelper;
public class
CustomerSQLHelper extends SQLiteOpenHelper {
     public static final String DB_NAME =
"customer_db.sqllite";
     public static final int VERSION = 1;
     public static final String TASKS_TABLE = "customer";
     public static final String TASK_ID = "id";
     public static final String TASK_NAME = "name";
     public static final String TASK_ADDRESS = "address";
     public static final String TASK_PHONE = "phone";
     public static final String TASK_COMPLETE = "complete";
     public CustomerSQLHelper(Context context) {
                 super(context, DB_NAME, null, VERSION);
     }
     @Override
     public void onCreate(SQLiteDatabase db) {
                 createTable(db);
     }
     private void createTable(SQLiteDatabase db) {
                 db.execSQL("create table " + TASKS_TABLE +
" ( " + TASK_ID
                                         + " integer primary key
autoincrement not null, " + TASK_NAME
                                         + " text, " +
TASK_ADDRESS + " text, " + TASK_PHONE + " text, "
                                         + TASK_COMPLETE + "
text " + ");");
     }
     @Override
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
     }
}
7.      Source
code untuk DatabaseApps.java
package
com.example.sql;
import
java.util.ArrayList;
import
android.app.Activity;
import android.content.Intent;
import
android.database.sqlite.SQLiteDatabase;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.AdapterView;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.ListView;
import
android.widget.TextView;
import
android.widget.Toast;
import
android.widget.AdapterView.OnItemClickListener;
import
android.widget.AdapterView.OnItemLongClickListener;
public class
DatabaseApps extends Activity {
     ArrayList<Customer> currentData;
     SQLiteDatabase database;
     CustomerListAdapter adapter;
     ListView list;
     CustomerSQLHelper helper;
     Customer cust;
     Button btnSubmit, btnCancel;
     TextView txtTitle;
     EditText dtName, dtAddress, dtPhone;
     Utils util;
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 setContentView(R.layout.listview);
                 util = new Utils(this);
                 list = (ListView) findViewById(R.id.list_data);
                 CustomerSQLHelper helper = new
CustomerSQLHelper(this);
                 database = helper.getWritableDatabase();
                 currentData = new ArrayList<Customer>();
                 // —- load data —-
                 currentData = util.loadData();
                 adapter = new CustomerListAdapter(this, currentData);
                 list.setAdapter(adapter);
                 list.setEmptyView(findViewById(R.id.list_empty));
                 list.setOnItemClickListener(new
OnItemClickListener() {
                             @Override
                             public void
onItemClick(AdapterView<?> parent, View v,
                                                     int position,
long id) {
                                         adapter.toggleDataCompleteAtPosition(position);
                             }
                 });
                 list.setOnItemLongClickListener(new
OnItemLongClickListener() {
                             @Override
                             public boolean
onItemLongClick(AdapterView<?> parent, View v,
                                                     int position,
long id) {
                                         Customer c = adapter.getItem(position);
                                         util.onShowData(c,
DatabaseApps.this);
                                         return false;
                             }
                 });
                 // set button click
                 onButtonClick();
     }
     // ———————————————-
     @Override
     protected void onResume() {
                 super.onResume();
                 adapter.forceReload();
     }
     // ———————————————–
     public void onButtonClick() {
                 Button btnAdd = (Button)
findViewById(R.id.add_button);
                 btnAdd.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         onCreateWidgetData(1, new
Customer());
                             }
                 });
                 Button btnUpdate = (Button)
findViewById(R.id.update_button);
                 btnUpdate.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         Customer c =
adapter.getCheckedCustomer();
                                         if
(!c.getName().equals(""))
                                                     onCreateWidgetData(2,
c);
                                         else {
                                                     Toast.makeText(DatabaseApps.this,
"Harus centang satu",
                                                                             Toast.LENGTH_LONG).show();
                                         }
                             }
                 });
                 Button btnDelete = (Button)
findViewById(R.id.delete_button);
                 btnDelete.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         Customer c =
adapter.getCheckedCustomer();
                                         onDeleteData(c.getId());
                             }
                 });
                 Button btnExit = (Button)
findViewById(R.id.exit_button);
                 btnExit.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         finish();
                                         android.os.Process.killProcess(android.os.Process.myPid());
                             }
                 });
     }
     public void onCreateWidgetData(int param, final Customer
getCust) {
                 switch (param) {
                 // add data new
                 case 1:
                             widgetAdd();
                             break;
                 // update existing data
                 case 2:
                             widgetUpdate(getCust);
                             break;
                 }
     }
     public void widgetAdd() {
                 setContentView(R.layout.inputdata);
                 txtTitle = (TextView) findViewById(R.id.txt_title);
                 txtTitle.setText("Add Data");
                 btnSubmit = (Button)
findViewById(R.id.submit_button);
                 btnSubmit.setOnClickListener(new OnClickListener() {
                             // pengecekan
                             @Override
                             public void onClick(View v) {
                                         dtName = (EditText)
findViewById(R.id.data_name);
                                         dtAddress = (EditText)
findViewById(R.id.data_address);
                                         dtPhone = (EditText)
findViewById(R.id.data_phone);
                                         if
(dtName.getText().length() < 1
                                                                 ||
dtAddress.getText().length() < 1
                                                                 ||
dtPhone.getText().length() < 1) {
                                                     Toast.makeText(DatabaseApps.this,
"Check your input…",
                                                                             Toast.LENGTH_SHORT).show();
                                         } else {
                                                     cust = new
Customer();
                                                     cust.setName(dtName.getText().toString());
                                                     cust.setAddress(dtAddress.getText().toString());
                                                     cust.setPhone(dtPhone.getText().toString());
                                                     cust.setComplete(false);
                                                     util.onSaveData(cust);
                                                     onCancel();
                                         }
                             }
                 });
                 btnCancel = (Button)
findViewById(R.id.cancel_button);
                 btnCancel.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         onCancel();
                             }
                 });
     }
     public void widgetUpdate(final Customer getCust) {
                 setContentView(R.layout.inputdata);
                 txtTitle = (TextView) findViewById(R.id.txt_title);
                 txtTitle.setText("Update Data");
                 dtName = (EditText) findViewById(R.id.data_name);
                 dtName.setText(getCust.getName());
                 dtAddress = (EditText)
findViewById(R.id.data_address);
                 dtAddress.setText(getCust.getAddress());
                 dtPhone = (EditText) findViewById(R.id.data_phone);
                 dtPhone.setText(getCust.getPhone());
                 btnSubmit = (Button) findViewById(R.id.submit_button);
                 btnSubmit.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         dtName = (EditText)
findViewById(R.id.data_name);
                                         dtAddress = (EditText)
findViewById(R.id.data_address);
                                         dtPhone = (EditText) findViewById(R.id.data_phone);
                                         if
(dtName.getText().length() < 1
                                                                 ||
dtAddress.getText().length() < 1
                                                                 ||
dtPhone.getText().length() < 1) {
                                                     Toast.makeText(DatabaseApps.this,
"Check your input…",
                                                                             Toast.LENGTH_SHORT);
                                         } else {
                                                     getCust.setName(dtName.getText().toString());
                                                     getCust.setAddress(dtAddress.getText().toString());
                                                     getCust.setPhone(dtPhone.getText().toString());
                                                     util.onUpdateData(getCust);
                                                     onCancel();
                                         }
                             }
                 });
                 btnCancel = (Button) findViewById(R.id.cancel_button);
                 btnCancel.setOnClickListener(new OnClickListener() {
                             @Override
                             public void onClick(View v) {
                                         onCancel();
                             }
                 });
     }
     public void onDeleteData(long id) {
                 // Long[] ids = adapter.removeCheckedCustomer();
                 // deleteData(ids);
                 deleteData(new Long[] { id });
                 currentData = util.loadData();
                 adapter = new CustomerListAdapter(this,
currentData);
                 list.setAdapter(adapter);
     }
     @SuppressWarnings("static-access")
     public void deleteData(Long[] ids) {
                 StringBuffer idList = new StringBuffer();
                 for (int i = 0; i < ids.length; i++) {
                             idList.append(ids[i]);
                             if (i < ids.length - 1) {
                                         idList.append(",");
                             }
                 }
                 String where = String.format("%s in (%s)",
CustomerSQLHelper.TASK_ID,
                                         idList);
                 database.delete(CustomerSQLHelper.TASKS_TABLE,
where, null);
     }
     public void onCancel() {
                 Intent newIntent = new
Intent().setClass(DatabaseApps.this,
                                         DatabaseApps.class);
                 startActivity(newIntent);
                 finish();
     }
}
8.      Source
code untuk Utils.java
package com.example.sql;
import
java.util.ArrayList;
import
android.app.AlertDialog;
import
android.content.ContentValues;
import
android.content.Context;
import
android.content.DialogInterface;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
public class Utils {
     CustomerSQLHelper helper;
     SQLiteDatabase database;
     public Utils(Context ctx) {
                 helper = new CustomerSQLHelper(ctx);
                 database = helper.getWritableDatabase();
     }
     @SuppressWarnings("static-access")
     public ArrayList<Customer> loadData() {
                 ArrayList<Customer> currentData = new
ArrayList<Customer>();
                 Cursor dataCursor =
database.query(CustomerSQLHelper.TASKS_TABLE,
                                         new String[] {
CustomerSQLHelper.TASK_ID,
                                                                 CustomerSQLHelper.TASK_NAME,
                                                                 CustomerSQLHelper.TASK_ADDRESS,
                                                                 CustomerSQLHelper.TASK_PHONE,
                                                                 CustomerSQLHelper.TASK_COMPLETE
}, null, null, null,
                                         null,
String.format("%s, %s", CustomerSQLHelper.TASK_COMPLETE,
                                                                 CustomerSQLHelper.TASK_NAME));
                 dataCursor.moveToFirst();
                 Customer t;
                 if (!dataCursor.isAfterLast()) {
                             do {
                                         int id =
dataCursor.getInt(0); // coloum ID
                                         String name =
dataCursor.getString(1); // coloum name
                                         String addr =
dataCursor.getString(2); // coloum address
                                         String phon =
dataCursor.getString(3); // coloum phone
                                         String boolValue =
dataCursor.getString(4); // coloum complete
                                         boolean complete =
Boolean.parseBoolean(boolValue);
                                         t = new Customer();
                                         t.setId(id);
                                         t.setName(name);
                                         t.setAddress(addr);
                                         t.setPhone(phon);
                                         t.setComplete(complete);
                                         currentData.add(t);
                             } while (dataCursor.moveToNext());
                 }
                 /*
                  * while
(dataCursor.moveToNext()) { }
                  */
                 dataCursor.close();
                 return currentData;
     }
     @SuppressWarnings("static-access")
     public void onSaveData(Customer getCust) {
                 assert (null != getCust);
                 ContentValues values = new ContentValues();
                 values.put(CustomerSQLHelper.TASK_NAME,
getCust.getName());
                 values.put(CustomerSQLHelper.TASK_ADDRESS,
getCust.getAddress());
                 values.put(CustomerSQLHelper.TASK_PHONE, getCust.getPhone());
                 values.put(CustomerSQLHelper.TASK_COMPLETE,
Boolean.toString(false));
                 getCust.setId(database.insert(CustomerSQLHelper.TASKS_TABLE,
null,
                                         values));
     }
     @SuppressWarnings("static-access")
     public void onUpdateData(Customer getCust) {
                 assert (null != getCust);
                 ContentValues values = new ContentValues();
                 values.put(CustomerSQLHelper.TASK_NAME,
getCust.getName());
                 values.put(CustomerSQLHelper.TASK_ADDRESS,
getCust.getAddress());
                 values.put(CustomerSQLHelper.TASK_PHONE,
getCust.getPhone());
                 values.put(CustomerSQLHelper.TASK_COMPLETE,
                                         Boolean.toString(getCust.isComplete()));
                 long id = getCust.getId();
                 String where = String.format("%s = %d",
CustomerSQLHelper.TASK_ID, id);
                 database.update(CustomerSQLHelper.TASKS_TABLE, values,
where, null);
     }
     AlertDialog alert;
     public void onShowData(Customer cust, Context ctx) {
                 final Customer thisCust = cust;
                 alert = new AlertDialog.Builder(ctx)
                                         .setIcon(R.drawable.ic_launcher)
                                         .setTitle("Display
Data")
                                         .setMessage(
                                                                 "
———— Customer ————-\n" + "ID: " + thisCust.getId()
                                                                                         +
"\n" + "Name: " + thisCust.getName() + "\n"
                                                                                         +
"Adress: " + thisCust.getAddress() + "\n"
                                                                                         +
"Phone: " + thisCust.getPhone() + "\n")
                                         .setNegativeButton("Close",
                                                                 new
DialogInterface.OnClickListener() {
                                                                             @Override
                                                                             public
void onClick(DialogInterface dialog,
                                                                                                     int
whichButton) {
                                                                                         alert.cancel();
                                                                             }
                                                                 }).create();
                 alert.show();
     }
}
9.      Source
code untuk inputdata.xml
<?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"
     android:padding="5px" >
    <TextView
        android:id="@+id/txt_title"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:text="title"
        android:textSize="20px" />
    <EditText
        android:id="@+id/data_name"
        android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:hint="Name" />
    <EditText
       
android:id="@+id/data_address"
       
android:layout_width="fill_parent"
        android:layout_height="52dp"
        android:gravity="top"
        android:hint="Alamat"
        android:singleLine="false"
/>
    <EditText
        android:id="@+id/data_phone"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:phoneNumber="true" 
        android:hint="No Telpon"
/>
    <Button
       
android:id="@+id/submit_button"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="SAVE" />
    <Button
        android:id="@+id/cancel_button"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="CANCEL" />
</LinearLayout>
10.  Source
code untuk listitem.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="#ffffff"
    android:orientation="vertical"
>
    <CheckedTextView
       
android:id="@+id/txt_name"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:gravity="center_vertical"
        android:text="”Name Customer"
       
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
/>
    <TextView
        android:id="@+id/txt_id"
       
android:layout_width="wrap_content"
       
android:layout_height="wrap_content"
        android:visibility="gone"
/>
</LinearLayout>
11.  Source
code untuk listview.xml
<?xml version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
   
android:layout_width="fill_parent"
   
android:layout_height="fill_parent"
    android:background="#ffffff"
    android:orientation="vertical"
>
    <ListView
        android:id="@+id/list_data"
       
android:layout_width="wrap_content"
        android:layout_height="204dp"
       
android:layout_above="@+id/add_button"
        android:layout_weight="0.74"
/>
    <TextView
        android:id="@+id/list_empty"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:layout_above="@+id/add_button"
       
android:gravity="center_vertical|center_horizontal"
        android:text="Tidak Ada Data"
/>
    <Button
        android:id="@+id/add_button"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="Tambah Data"
/>
    <Button
       
android:id="@+id/update_button"
        android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="Ubah Data"
/>
    <Button
       
android:id="@+id/delete_button"
        android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:layout_alignParentBottom="true"
       
android:layout_toRightOf="@id/update_button"
        android:textStyle="bold"
        android:text="Hapus" />
    <Button
        android:id="@+id/exit_button"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
        android:textStyle="bold"
        android:text="Exit" />
</LinearLayout>
12.  Source
code untuk AndroidManifest
<?xml
version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sql"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17"
/>
    <application
        android:allowBackup="true"
       
android:icon="@drawable/ic_launcher"
       
android:label="@string/app_name"
       
android:theme="@style/AppTheme" >
        <activity
           
android:name="com.example.sql.DatabaseApps"
            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="com.example.sql.CustomerSQLHelper" >
        </activity>
    </application>
</manifest>
13.  Kemudian
Run Project
 
0 Komentar