-->

Membuat Aplikasi CRUD Sederhana dengan database SQLite di Android Studio

Halo sobat blogger sudah lama admin tidak membuat postingan artikel dikarenakan sibuk dengan urusan di dunia nyata. pada kesempatan kali ini admin akan memberikan tutorial cara membuat aplikasi CRUD (Create Read Update Delete) di Android dengan Database SQLite. SQLite ini adalah database yang portable karena data-datanya akan tersimpan pada memori handhone kalian masing-masing, tidak disimpan di server. namun jika di perlukan bisa juga database ini disinkronkan ke server kita akan membahasnya pada kesempatan yang lain. Pada kesempatan kali ini kita akan membuat Aplikasi CRUD yang sederhana kedepanya kita akan bahas membuat CRUD dengan Content Provider.



Ok langsung saja untuk membuatnya kita buat desain tampilanya dulu.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:app="http://schemas.android.com/apk/res-auto"
   
xmlns:tools="http://schemas.android.com/tools"
   
android:theme="@android:style/Theme.NoTitleBar"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
android:orientation="vertical"
   
android:background="#ddd"
   
android:padding="10dp"
   
tools:context="giviews.id.splash.MainActivity">

    <LinearLayout
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:layout_marginTop="20dp"
       
android:orientation="horizontal">

        <TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="3"
           
android:textColor="#000"
           
android:text="Name"/>

        <EditText
           
android:id="@+id/editText_name"
           
style="@android:style/Widget.Material.Light.EditText"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"
           
android:ems="10"
           
android:hint="Name"
           
android:inputType="textPersonName" />
    </LinearLayout>

    <LinearLayout
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:layout_marginTop="20dp"
       
android:orientation="horizontal">

        <TextView
            
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="3"
           
android:textColor="#000"
           
android:text="Surname"/>

        <EditText
           
android:id="@+id/editText_surname"
           
style="@android:style/Widget.Material.Light.EditText"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"
           
android:ems="10"
            
android:hint="Surname"
           
android:inputType="textPersonName" />
    </LinearLayout>

    <LinearLayout
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:layout_marginTop="20dp"
       
android:orientation="horizontal">

        <TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="3"
           
android:textColor="#000"
           
android:text="Marks"/>

        <EditText
           
android:id="@+id/editText_marks"
           
style="@android:style/Widget.Material.Light.EditText"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"
           
android:ems="10"
           
android:hint="Marks"
           
android:inputType="textPersonName"/>
    </LinearLayout>

    <LinearLayout
       
android:layout_width="match_parent"
       
android:layout_height="wrap_content"
       
android:layout_marginTop="20dp"
       
android:orientation="horizontal">

        <TextView
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="3"
           
android:textColor="#000"
           
android:text="Id"/>

        <EditText
           
android:id="@+id/editTextId"
           
style="@android:style/Widget.Material.Light.EditText"
           
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:layout_weight="1"
           
android:ems="10"
           
android:hint="Id"
           
android:inputType="textPersonName" />
    </LinearLayout>

        <LinearLayout
           
android:layout_marginTop="20dp"
            
android:layout_width="match_parent"
           
android:layout_height="wrap_content"
           
android:orientation="horizontal">

            <Button
               
android:id="@+id/button_add"
               
style="@android:style/Widget.Material.Light.Button"
               
android:background="@color/colorAccent"
               
android:textColor="@android:color/background_light"
               
android:layout_width="match_parent"
               
android:layout_height="wrap_content"
                
android:text="Add Data"
               
android:textAppearance="@android:style/TextAppearance.Material.Button"
               
android:layout_weight="1" />

            <Button
               
android:id="@+id/button_view"
               
style="@android:style/Widget.Material.Light.Button"
               
android:layout_width="match_parent"
               
android:layout_height="wrap_content"
               
android:background="@color/colorAccent"
               
android:layout_weight="1"
                
android:text="view all"
               
android:textAppearance="@android:style/TextAppearance.Material.Button"
               
android:textColor="@android:color/background_light" />
        </LinearLayout>

        <LinearLayout
           
android:layout_marginTop="20dp"
           
android:layout_width="match_parent"
           
android:orientation="horizontal"
           
android:layout_height="wrap_content">

            <Button
               
android:id="@+id/button_update"
               
style="@android:style/Widget.Material.Light.Button"
               
android:background="@color/colorAccent"
               
android:textColor="@android:color/background_light"
               
android:layout_width="match_parent"
               
android:layout_height="wrap_content"
               
android:layout_weight="1"
               
android:text="Update"
               
android:textAppearance="@style/TextAppearance.AppCompat.Button" />

            <Button
               
android:id="@+id/button_delete"
                
style="@android:style/Widget.Material.Light.Button"
               
android:background="@color/colorAccent"
               
android:textColor="@android:color/background_light"
               
android:layout_width="match_parent"
               
android:layout_height="wrap_content"
               
android:layout_weight="1"
               
android:text="Delete"
               
android:textAppearance="@style/TextAppearance.AppCompat.Button" />
        </LinearLayout>
    </LinearLayout>

Selanjutnya buat class DatabaseHelper di java, class ini berfungsi untuk membuat database, table, metode untuk menambah, mengupdate, menampilkan dan menghapus data.

package giviews.id.splash;



import
android.content.ContentValues;

import
android.content.Context;

import
android.database.Cursor;

import
android.database.sqlite.SQLiteDatabase;

import
android.database.sqlite.SQLiteOpenHelper;



/**

 * Created by asus on 02/04/2017.

 */



public class DatabaseHelper extends SQLiteOpenHelper{

   
//nama database

   
public static final String DATABASE_NAME = "Student.db";

   
//nama table

   
public static final String TABLE_NAME = "student_table";

   
//versi database

   
private static final int DATABASE_VERSION = 1;

   
//table field

   
public static final String COL_1 = "ID";

    public static final
String COL_2 = "NAME";

    public static final
String COL_3 = "SURNAME";

    public static final
String COL_4 = "MARKS";



    public
DatabaseHelper(Context context) {

       
super(context, DATABASE_NAME, null, DATABASE_VERSION);

       
SQLiteDatabase db = this.getWritableDatabase();

   
}



   
@Override

   
public void onCreate(SQLiteDatabase db) {

        db.execSQL(
"create table student_table(id integer primary key autoincrement," +

               
"name text null," +

               
"surname text null," +

               
"marks integer null);");

   
}



   
@Override

   
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL(
"DROP TABLE IF EXISTS "+ TABLE_NAME);

       
onCreate(db);

   
}



   
//metode untuk tambah data

   
public boolean insertData(String name, String surname, String marks) {

        SQLiteDatabase db =
this.getWritableDatabase();

       
ContentValues contentValues = new ContentValues();

       
contentValues.put(COL_2,name);

       
contentValues.put(COL_3,surname);

       
contentValues.put(COL_4,marks);

        long
result = db.insert(TABLE_NAME, null, contentValues);

        if
(result == -1)

           
return false;

        else

            return true;

   
}



   
//metode untuk mengambil data

   
public Cursor getAllData() {

        SQLiteDatabase db =
this.getWritableDatabase();

       
Cursor res = db.rawQuery("select * from student_table", null);

        return
res;

   
}



   
//metode untuk merubah data

   
public boolean updateData(String id,String name,String surname,String marks) {

        SQLiteDatabase db =
this.getWritableDatabase();

       
ContentValues contentValues = new ContentValues();

       
contentValues.put(COL_1,id);

       
contentValues.put(COL_2,name);

       
contentValues.put(COL_3,surname);

       
contentValues.put(COL_4,marks);

       
db.update(TABLE_NAME,contentValues,"ID = ?",new String[] {id});

        return true;

   
}



   
//metode untuk menghapus data

   
public int deleteData (String id) {

        SQLiteDatabase db =
this.getWritableDatabase();

        return
db.delete(TABLE_NAME, "ID = ?", new String[] {id});

   
}

}
Terakhir kita buat script untuk memfungsikan tombol add, edit, view dan delete yang telah kita desain tadi, kodenya seperti berikut:

package giviews.id.splash;



import
android.database.Cursor;

import
android.os.Bundle;

import
android.support.v7.app.AlertDialog;

import
android.support.v7.app.AppCompatActivity;

import
android.view.Menu;

import
android.view.MenuItem;

import
android.view.View;

import
android.widget.Button;

import
android.widget.EditText;

import
android.widget.Toast;



public class
MainActivity extends AppCompatActivity {

    DatabaseHelper
myDb;

   
EditText editName,editSurname,editMarks,editTextId;

   
Button btnAddData;

   
Button btnViewAll;

   
Button btnUpdate;

   
Button btnDelete;



   
@Override

   
protected void onCreate(Bundle savedInstanceState) {

       
super.onCreate(savedInstanceState);

       
setContentView(R.layout.activity_main);

       
myDb = new DatabaseHelper(this);

       
editName = (EditText)findViewById(R.id.editText_name);

       
editSurname = (EditText)findViewById(R.id.editText_surname);

       
editMarks = (EditText)findViewById(R.id.editText_marks);

       
editTextId = (EditText)findViewById(R.id.editTextId);

       
btnAddData = (Button)findViewById(R.id.button_add);

       
btnViewAll = (Button)findViewById(R.id.button_view);

       
btnUpdate = (Button)findViewById(R.id.button_update);

       
btnDelete = (Button)findViewById(R.id.button_delete);

       
AddData();

       
viewAll();

       
UpdateData();

       
deleteData();

   
}



   
//fungsi hapus

   
public void deleteData() {

       
btnDelete.setOnClickListener(

               
new View.OnClickListener() {

                   
@Override

                    
public void onClick(View v) {

                        Integer deletedRows =
myDb.deleteData(editTextId.getText().toString());

                        if
(deletedRows > 0)

                            Toast.makeText(MainActivity.
this,"Data Deleted",Toast.LENGTH_LONG).show();

                        else

                           
Toast.makeText(MainActivity.this,"Data Failed to Deleted!",Toast.LENGTH_LONG).show();

                   
}

                }

        )
;

   
}



   
//fungsi update

   
public void UpdateData() {

       
btnUpdate.setOnClickListener(

               
new View.OnClickListener() {

                   
@Override

                   
public void onClick(View v) {

                       
boolean isUpdate = myDb.updateData(editTextId.getText().toString(),

                               
editName.getText().toString(),

                               
editSurname.getText().toString(),

                               
editMarks.getText().toString());

                        if
(isUpdate == true)

                            Toast.makeText(MainActivity.
this,"Data Updated",Toast.LENGTH_LONG).show();

                        else

                           
Toast.makeText(MainActivity.this,"Data Failed to Update",Toast.LENGTH_LONG).show();

                   
}

                }

        )
;

   
}



   
//fungsi tambah

   
public void AddData() {

       
btnAddData.setOnClickListener(

               
new View.OnClickListener() {

                   
@Override

                   
public void onClick(View v) {

                       
boolean isInserted = myDb.insertData(editName.getText().toString(),

                               
editSurname.getText().toString(),

                               
editMarks.getText().toString() );

                        if
(isInserted == true)

                            Toast.makeText(MainActivity.
this,"Data Iserted",Toast.LENGTH_LONG).show();

                        else

                           
Toast.makeText(MainActivity.this,"Data Not Iserted",Toast.LENGTH_LONG).show();

                   
}

                }

        )
;

   
}



   
//fungsi menampilkan data

   
public void viewAll() {

       
btnViewAll.setOnClickListener(

           
new View.OnClickListener(){

                
@Override

                     
public void onClick(View v) {

                     Cursor res =
myDb.getAllData();

                     if
(res.getCount() == 0) {

                    
// show message

                        
showMessage("Error","Noting Found");

                     return;

                
}



                 StringBuffer buffer =
new StringBuffer();

                     while
(res.moveToNext() ) {

                         buffer.append(
"Id :"+ res.getString(0)+"\n");

                        
buffer.append("Name :"+ res.getString(1)+"\n");

                        
buffer.append("Surname :"+ res.getString(2)+"\n");

                        
buffer.append("Marks :"+ res.getString(3)+"\n\n");

                    
}



                    
// show all data

                    
showMessage("Data",buffer.toString());

               
}

            }

        )
;

   
}



   
//membuat alert dialog

   
public void showMessage(String title, String Message){

        AlertDialog.Builder builder =
new AlertDialog.Builder(this);

       
builder.setCancelable(true);

       
builder.setTitle(title);

       
builder.setMessage(Message);

       
builder.show();

   
}

}





Sekarang jalankan program crud anda, selamat mencoba semoga berhasil. jika ada yang kurang jelas bisa ditanyakan pada komentar dibawah, jika artikel ini bermanfaat silakan share. pada postingan selanjutnya kita akan membuat Aplikasi CRUD dengan menggunakan Content Provider dan Circular Reveal Animation

0 Response to "Membuat Aplikasi CRUD Sederhana dengan database SQLite di Android Studio"

Post a Comment

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel