pada kesempatan kali ini Berga akan memberikan tutorial cara membuat aplikasi CRUD (Create Read Update Delete) di Android dengan menggunakan 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.
langsung saja untuk membuatnya kita buat desain tampilanya dulu.
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">
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
android:layout_height="wrap_content"
android:layout_weight="3"
android:textColor="#000"
android:text="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" />
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
android:layout_height="wrap_content"
android:layout_weight="3"
android:textColor="#000"
android:text="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" />
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
android:layout_height="wrap_content"
android:layout_weight="3"
android:textColor="#000"
android:text="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"/>
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal">
android:layout_height="wrap_content"
android:layout_weight="3"
android:textColor="#000"
android:text="Id"/>
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" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
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 Berga tech
*/
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});
}
}
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by Berga tech
*/
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();
}
}
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();
}
}
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 .
Donwload Juga Source Code Program Lainnya :
- Cara Mendapatkan Code SHA1 pada Framework Flutter Android
- Memulai Cara Membuat Aplikasi Android dengan Flutter dengan Android Studio
- Source Code Aplikasi Laundry menggunakan Laravel 5.8 Vue.js Siap pakai
- Cara buat material Desain Flutter Appbar Body, Bottom Navigation, Floating Action
- Cara membuat Form login validation Flutter Dart + Source code android Gratis
- Cara Membuat AppBar Layout Aplikasi Android Menggunakan Dart Flutter
- Download Source code Form login android menggunakan dart flutter
- Kumpulan Source Code Aplikasi Tes Potensi Santri berbasis Web PHP & Mysql
- SOURCE CODE PHP KEAMANAN Akses LOGIN ADVANCE