PMO Pertemuan 9 -SQLLite Database

DATABASE SQLite

Menyimpan data ke database cocok untuk data terstruktur atau berulang, misalnya informasi kontak. Kelas ini beranggapan bahwa Anda telah menguasai database SQL secara umum dan membantu Anda memulai database SQLite di Android. API yang nanti Anda perlukan untuk menggunakan database di Android tersedia dalam paket

Android.database.sqlite.

 

Mendefinisikan Skema dan Kontrak

Salah satu prinsip utama database SQL adalah skema: deklarasi formal mengenai cara menata database. Skema ini tercermin dalam pernyataan SQL yang Anda gunakan untuk membuat database. Anda akan merasakan gunanya saat membuat kelas pendamping, yang disebut dengan kelas kontrak, yang menetapkan secara eksplisit layout skema Anda dengan cara sistematis dan terdokumentasikan sendiri.

Kelas kontrak adalah kontainer untuk konstanta yang mendefinisikan nama untuk URI, tabel, dan kolom. Kelas kontrak memungkinkan Anda menggunakan konstanta yang sama di semua kelas lainnya dalam paket yang sama. Hal ini memungkinkan Anda mengubah nama kolom di satu tempat dan menyebarkannya ke seluruh kode Anda.

Cara yang baik untuk menata kelas kontrak adalah menempatkan definisi yang bersifat global ke seluruh database Anda di tingkat akar kelas itu. Kemudian buat sebuah kelas sisipan untuk setiap tabel yang menghitung kolom-kolomnya.

Membuat Database Menggunakan SQL Helper

Setelah mendefinisikan penampilan database, Anda harus mengimplementasikan metode yang membuat dan memelihara database dan tabel.

Persis seperti file yang Anda simpan pada penyimpanan internal perangkat, Android menyimpan database Anda di ruang disk privat yang terkait dengan aplikasi. Data Anda akan aman, karena secara default area ini tidak bisa diakses aplikasi lain.

Serangkaian API berguna tersedia di kelas SQLiteOpenHelper. Bila Anda menggunakan kelas ini untuk memperoleh referensi ke database, sistem akan melakukan operasi pembuatan dan pembaruan database yang berpotensi berjalan lama hanya bila diperlukan dan tidak selama memulai aplikasi. Yang perlu Anda lakukan hanyalah memanggil getWritableDatabase() atau getReadableDatabase().

Untuk menggunakan SQLiteOpenHelper, buat subkelas yang mengganti onCreate()onUpgrade() dan metode callback onOpen() . Anda juga mungkin perlu mengimplementasikan onDowngrade(), namun itu tidak diharuskan.

Misalnya, inilah implementasi SQLiteOpenHelper yang menggunakan beberapa perintah yang ditampilkan di atas:

public class FeedReaderDbHelper extends SQLiteOpenHelper {
// If you change the database schema, you must increment the database version.
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = “FeedReader.db”;

public FeedReaderDbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_CREATE_ENTRIES);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// This database is only a cache for online data, so its upgrade policy is
// to simply to discard the data and start over
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
}
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
onUpgrade(db, oldVersion, newVersion);
}
}

Untuk mengakses database, buat instance subkelas SQLiteOpenHelper:

FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(getContext());

Memasukkan Informasi ke Database

 

Sisipkan data ke dalam database dengan meneruskan objek ContentValues ke metode insert():

// Gets the data repository in write mode
SQLiteDatabase db = mDbHelper.getWritableDatabase();

// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
values.put(FeedEntry.COLUMN_NAME_TITLE, title);
values.put(FeedEntry.COLUMN_NAME_SUBTITLE, subtitle);

// Insert the new row, returning the primary key value of the new row
long newRowId = db.insert(FeedEntry.TABLE_NAME, null, values);

Argumen pertama untuk insert() adalah sekadar nama tabel.

 

Argumen kedua memberitahu kerangka kerja apa yang perlu dilakukan dalam kejadian ContentValues kosong (yaitu Anda tidak memasukkan put nilai apa pun). Jika Anda menetapkan nama kolom, kerangka kerja menyisipkan satu baris dan menetapkan nilai kolom nol. Jika Anda menetapkan null, seperti dalam sampel kode ini, kerangka kerja tidak menyisipkan baris saat tidak ada nilai.

Membaca Informasi dari Database

Untuk membaca dari database, gunakan metode query() , dengan meneruskan kriteria pemilihan dan kolom yang diinginkan. Metode ini menggabungkan elemen insert() dan update(), kecuali daftar kolom mendefinisikan data yang ingin Anda ambil, bukannya data yang akan disisipkan. Hasil kueri dikembalikan kepada Anda dalam objek Cursor.

SQLiteDatabase db = mDbHelper.getReadableDatabase();

// Define a projection that specifies which columns from the database
// you will actually use after this query.
String[] projection = {
FeedEntry._ID,
FeedEntry.COLUMN_NAME_TITLE,
FeedEntry.COLUMN_NAME_SUBTITLE
};

// Filter results WHERE “title” = ‘My Title’
String selection = FeedEntry.COLUMN_NAME_TITLE + ” = ?”;
String[] selectionArgs = { “My Title” };

// How you want the results sorted in the resulting Cursor
String sortOrder =
FeedEntry.COLUMN_NAME_SUBTITLE + ” DESC”;

Cursor c = db.query(
FeedEntry.TABLE_NAME,                     // The table to query
projection,                               // The columns to return
selection,                                // The columns for the WHERE clause
selectionArgs,                            // The values for the WHERE clause
null,                                     // don’t group the rows
null,                                     // don’t filter by row groups
sortOrder                                 // The sort order
);

 

 

 

 

Menghapus data.

// Define ‘where’ part of query.
String selection = FeedEntry.COLUMN_NAME_TITLE + ” LIKE ?”;
// Specify arguments in placeholder order.
String[] selectionArgs = { “MyTitle” };
// Issue SQL statement.
db.delete(FeedEntry.TABLE_NAME, selection, selectionArgs);

Memperbarui Database

 

Bila Anda perlu memodifikasi subset nilai database, gunakan metode update().

Pembaruan tabel akan menggabungkan sintaks nilai materi insert()dengan sintaks where delete().

SQLiteDatabase db = mDbHelper.getReadableDatabase();

// New value for one column
ContentValues values = new ContentValues();
values.put(FeedEntry.COLUMN_NAME_TITLE, title);

// Which row to update, based on the title
String selection = FeedEntry.COLUMN_NAME_TITLE + ” LIKE ?”;
String[] selectionArgs = { “MyTitle” };

int count = db.update(
FeedReaderDbHelper.FeedEntry.TABLE_NAME,
values,
selection,
selectionArgs);

 

Sumber : https://developer.android.com/training/basics/data-storage/databases.html?hl=id#WriteDbRow

 

https://www.codepolitan.com/aplikasi-crud-sederhana-menggunakan-android-studio-dengan-database-sqlite-57b6d14e04fa5-14500

 

Langkah-langkah Membuat project android menggunakan SQLite :

 

  1. Buka Android Studio
  2. Buat Projek Baru
  3. Berinama Projek yang akan kita buat
  4. kita harus menentukan Target Android Devicenya , saya pilih API 15.
  5. PilihEmpty Activity
  6. Selanjutnya pada bagian Customize The Activitybiarkan saja default
  7. Setelah ke 6 langkah tadi selesai kita buat DataHelper.java ,javaini adalah proses pembuatan Database SQLiteSimpan dengan Nama DataHelper.java

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.util.Log;

 

public class DataHelper extends SQLiteOpenHelper {

 

private static final String DATABASE_NAME = “biodatadiri.db”;

private static final int DATABASE_VERSION = 1;

public DataHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

// TODO Auto-generated constructor stub

}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

String sql = “create table biodata(no integer primary key, nama text null, tgl text null, jk text null, alamat text null);”;

Log.d(“Data”, “onCreate: ” + sql);

db.execSQL(sql);

sql = “INSERT INTO biodata (no, nama, tgl, jk, alamat) VALUES (‘1’, ‘Darsiwan’, ‘1996-07-12’, ‘Laki-laki’,’Indramayu’);”;

db.execSQL(sql);

}

@Override

public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

// TODO Auto-generated method stub

}

}

  1. Kita buat layout xml pada xml activity_main.xml

 

 

  1. kita tuliskan source di bawah pada java

 

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.ListView;

 

public class MainActivity extends AppCompatActivity {

String[] daftar;

ListView ListView01;

Menu menu;

protected Cursor cursor;

DataHelper dbcenter;

public static MainActivity ma;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

 

Button btn=(Button)findViewById(R.id.button2);

 

btn.setOnClickListener(new View.OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

Intent inte = new Intent(MainActivity.this, BuatBiodata.class);

startActivity(inte);

}

});

 

 

ma = this;

dbcenter = new DataHelper(this);

RefreshList();

}

 

public void RefreshList(){

SQLiteDatabase db = dbcenter.getReadableDatabase();

cursor = db.rawQuery(“SELECT * FROM biodata”,null);

daftar = new String[cursor.getCount()];

cursor.moveToFirst();

for (int cc=0; cc < cursor.getCount(); cc++){

cursor.moveToPosition(cc);

daftar[cc] = cursor.getString(1).toString();

}

ListView01 = (ListView)findViewById(R.id.listView1);

ListView01.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, daftar));

ListView01.setSelected(true);

ListView01.setOnItemClickListener(new OnItemClickListener() {

 

 

public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) {

final String selection = daftar[arg2]; //.getItemAtPosition(arg2).toString();

final CharSequence[] dialogitem = {“Lihat Biodata”, “Update Biodata”, “Hapus Biodata”};

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

builder.setTitle(“Pilihan”);

builder.setItems(dialogitem, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {

switch(item){

case 0 :

Intent i = new Intent(getApplicationContext(), LihatBiodata.class);

i.putExtra(“nama”, selection);

startActivity(i);

break;

case 1 :

Intent in = new Intent(getApplicationContext(), UpdateBiodata.class);

in.putExtra(“nama”, selection);

startActivity(in);

break;

case 2 :

SQLiteDatabase db = dbcenter.getWritableDatabase();

db.execSQL(“delete from biodata where nama = ‘”+selection+”‘”);

RefreshList();

break;

}

}

});

builder.create().show();

}});

((ArrayAdapter)ListView01.getAdapter()).notifyDataSetInvalidated();

}

 

}

 

 

  1. Buat 3 Empty Activitybaru

Beri nama Layout Name sebagai berikut : 1.activity_buat_biodata.xml 2.activity_lihat_biodata.xml 3.activity_update_biodata.xml

Dan Activity Name :

1.BuatBiodata.java 2.LihatBiodata.java 3.UpdateBiodata.java

11.Setelah ke 3 Activity tadi di buat tuliskan pada layout xml dengan nama masing masing :

1.activity_buat_biodata.xml

 

2.activity_lihat_biodata.xml

  1. <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android
  2.              xmlns:tools=”http://schemas.android.com/tools
  3.              android:layout_width=”match_parent”
  4.              android:layout_height=”match_parent”
  5.              android:paddingBottom=”@dimen/activity_vertical_margin”
  6.              android:paddingLeft=”@dimen/activity_horizontal_margin”
  7.              android:paddingRight=”@dimen/activity_horizontal_margin”
  8.              android:paddingTop=”@dimen/activity_vertical_margin”
  9.              tools:context=”.LihatBiodata” >
  10.   <TextView
  11.      android:id=”@+id/textView1″
  12.      android:layout_width=”wrap_content”
  13.      android:layout_height=”wrap_content”
  14.      android:layout_alignParentRight=”true”
  15.      android:layout_alignParentTop=”true”
  16.      android:layout_marginRight=”104dp”
  17.      android:layout_marginTop=”20dp”
  18.      android:text=”TextView”/>
  19.   <TextView
  20.      android:id=”@+id/textView2″
  21.      android:layout_width=”wrap_content”
  22.      android:layout_height=”wrap_content”
  23.      android:layout_alignRight=”@+id/textView1″
  24.      android:layout_below=”@+id/textView1″
  25.      android:layout_marginTop=”20dp”
  26.      android:text=”TextView”/>
  27.   <TextView
  28.      android:id=”@+id/textView3″
  29.      android:layout_width=”wrap_content”
  30.      android:layout_height=”wrap_content”
  31.      android:layout_alignLeft=”@+id/textView2″
  32.      android:layout_below=”@+id/textView2″
  33.      android:layout_marginTop=”20dp”
  34.      android:text=”TextView”/>
  35.   <TextView
  36.      android:id=”@+id/textView4″
  37.      android:layout_width=”wrap_content”
  38.      android:layout_height=”wrap_content”
  39.      android:layout_alignLeft=”@+id/textView3″
  40.      android:layout_below=”@+id/textView3″
  41.      android:layout_marginTop=”20dp”
  42.      android:text=”TextView”/>
  43.   <TextView
  44.      android:id=”@+id/textView5″
  45.      android:layout_width=”wrap_content”
  46.      android:layout_height=”wrap_content”
  47.      android:layout_alignRight=”@+id/textView4″
  48.      android:layout_below=”@+id/textView4″
  49.      android:layout_marginTop=”20dp”
  50.      android:text=”TextView”/>
  51.   <TextView
  52.      android:id=”@+id/TextView05″
  53.      android:layout_width=”wrap_content”
  54.      android:layout_height=”wrap_content”
  55.      android:layout_alignBaseline=”@+id/textView5″
  56.      android:layout_alignBottom=”@+id/textView5″
  57.      android:layout_alignLeft=”@+id/TextView03″
  58.      android:text=”Alamat”/>
  59.   <TextView
  60.      android:id=”@+id/TextView03″
  61.      android:layout_width=”wrap_content”
  62.      android:layout_height=”wrap_content”
  63.      android:layout_alignBaseline=”@+id/textView4″
  64.      android:layout_alignBottom=”@+id/textView4″
  65.      android:layout_alignLeft=”@+id/TextView04″
  66.      android:text=”Jenis Kelamin”/>
  67.   <TextView
  68.      android:id=”@+id/TextView04″
  69.      android:layout_width=”wrap_content”
  70.      android:layout_height=”wrap_content”
  71.      android:layout_alignBaseline=”@+id/textView3″
  72.      android:layout_alignBottom=”@+id/textView3″
  73.      android:layout_alignLeft=”@+id/TextView02″
  74.      android:text=”Tanggal Lahir”/>
  75.   <TextView
  76.      android:id=”@+id/TextView02″
  77.      android:layout_width=”wrap_content”
  78.      android:layout_height=”wrap_content”
  79.      android:layout_alignBaseline=”@+id/textView2″
  80.      android:layout_alignBottom=”@+id/textView2″
  81.      android:layout_alignLeft=”@+id/TextView01″
  82.      android:text=”Nama”/>
  83.   <TextView
  84.      android:id=”@+id/TextView01″
  85.      android:layout_width=”wrap_content”
  86.      android:layout_height=”wrap_content”
  87.      android:layout_above=”@+id/textView2″
  88.      android:layout_alignParentLeft=”true”
  89.      android:text=”Nomor”/>
  90.   <Button
  91.      android:id=”@+id/button1″
  92.      android:layout_width=”wrap_content”
  93.      android:layout_height=”wrap_content”
  94.      android:layout_alignLeft=”@+id/TextView05″
  95.      android:layout_below=”@+id/TextView05″
  96.      android:layout_marginTop=”34dp”
  97.      android:text=”Kembali”
  98.      style=”?android:attr/borderlessButtonStyle”
  99.      android:drawableLeft=”@drawable/ic_arrow”/>
  100. </RelativeLayout>

 

 

  1. xml
  2. <RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android
  3.              xmlns:tools=”http://schemas.android.com/tools
  4.              android:layout_width=”match_parent”
  5.              android:layout_height=”match_parent”
  6.              android:paddingBottom=”@dimen/activity_vertical_margin”
  7.              android:paddingLeft=”@dimen/activity_horizontal_margin”
  8.              android:paddingRight=”@dimen/activity_horizontal_margin”
  9.              android:paddingTop=”@dimen/activity_vertical_margin”
  10.              tools:context=”.UpdateBiodata”>
  11.   <EditText
  12.      android:id=”@+id/editText1″
  13.      android:layout_width=”match_parent”
  14.      android:layout_height=”wrap_content”
  15.      android:layout_alignLeft=”@+id/textView1″
  16.      android:layout_below=”@+id/textView1″
  17.      android:inputType=”number”
  18.      android:maxLength=”10″>
  19.       <requestFocus />
  20.   </EditText>
  21.   <TextView
  22.      android:id=”@+id/textView1″
  23.      android:layout_width=”wrap_content”
  24.      android:layout_height=”wrap_content”
  25.      android:layout_alignParentLeft=”true”
  26.      android:layout_alignParentTop=”true”
  27.      android:text=”Nomor”/>
  28.   <TextView
  29.      android:id=”@+id/textView2″
  30.      android:layout_width=”wrap_content”
  31.      android:layout_height=”wrap_content”
  32.      android:layout_alignLeft=”@+id/editText1″
  33.      android:layout_below=”@+id/editText1″
  34.      android:layout_marginTop=”10dp”
  35.      android:text=”Nama”/>
  36.   <EditText
  37.      android:id=”@+id/editText2″
  38.      android:layout_width=”match_parent”
  39.      android:layout_height=”wrap_content”
  40.      android:layout_alignLeft=”@+id/textView2″
  41.      android:layout_below=”@+id/textView2″
  42.      android:inputType=”text”
  43.      android:maxLength=”20″/>
  44.   <TextView
  45.      android:id=”@+id/textView3″
  46.      android:layout_width=”wrap_content”
  47.      android:layout_height=”wrap_content”
  48.      android:layout_alignLeft=”@+id/editText2″
  49.      android:layout_below=”@+id/editText2″
  50.      android:layout_marginTop=”10dp”
  51.      android:text=”Tanggal Lahir”/>
  52.   <EditText
  53.      android:id=”@+id/editText3″
  54.      android:layout_width=”match_parent”
  55.      android:layout_height=”wrap_content”
  56.      android:layout_alignLeft=”@+id/textView3″
  57.      android:layout_below=”@+id/textView3″
  58.      android:inputType=”date”/>
  59.   <TextView
  60.      android:id=”@+id/textView4″
  61.      android:layout_width=”wrap_content”
  62.      android:layout_height=”wrap_content”
  63.      android:layout_alignLeft=”@+id/editText3″
  64.      android:layout_below=”@+id/editText3″
  65.      android:layout_marginTop=”10dp”
  66.      android:text=”Jenis Kelamin”/>
  67.   <EditText
  68.      android:id=”@+id/editText4″
  69.      android:layout_width=”match_parent”
  70.      android:layout_height=”wrap_content”
  71.      android:layout_alignLeft=”@+id/textView4″
  72.      android:layout_below=”@+id/textView4″
  73.      android:inputType=”text”
  74.      android:maxLength=”1″
  75.      android:hint=”L atau P”/>
  76.   <TextView
  77.      android:id=”@+id/textView5″
  78.      android:layout_width=”wrap_content”
  79.      android:layout_height=”wrap_content”
  80.      android:layout_alignLeft=”@+id/editText4″
  81.      android:layout_below=”@+id/editText4″
  82.      android:layout_marginTop=”10dp”
  83.      android:text=”Alamat”
  84.      android:inputType=”text”
  85.      android:maxLength=”100″/>
  86.   <EditText
  87.      android:id=”@+id/editText5″
  88.      android:layout_width=”match_parent”
  89.      android:layout_height=”wrap_content”
  90.      android:layout_alignLeft=”@+id/textView5″
  91.      android:layout_below=”@+id/textView5″ />
  92.   <Button
  93.      android:id=”@+id/button1″
  94.      android:layout_width=”wrap_content”
  95.      android:layout_height=”wrap_content”
  96.      android:layout_alignLeft=”@+id/editText5″
  97.      android:layout_alignParentBottom=”true”
  98.      style=”?android:attr/borderlessButtonStyle”
  99.      android:drawableLeft=”@drawable/ic_done”
  100.      android:text=”Update” />
  101.   <Button
  102.      android:id=”@+id/button2″
  103.      android:layout_width=”wrap_content”
  104.      android:layout_height=”wrap_content”
  105.      android:text=”Kembali”
  106.      style=”?android:attr/borderlessButtonStyle”
  107.      android:drawableLeft=”@drawable/ic_arrow”
  108.      android:layout_alignParentBottom=”true”
  109.      android:layout_alignRight=”@+id/editText5″
  110.      android:layout_alignEnd=”@+id/editText5″
  111.      />
  112. </RelativeLayout>

 

12.Tuliskan baris code javaclass di bawah dengan nama masing- masing :

  1. java

 

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

public class BuatBiodata extends AppCompatActivity {

protected Cursor cursor;

DataHelper dbHelper;

Button ton1, ton2;

EditText text1, text2, text3, text4, text5;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_buat_biodata);

 

dbHelper = new DataHelper(this);

text1 = (EditText) findViewById(R.id.editText1);

text2 = (EditText) findViewById(R.id.editText2);

text3 = (EditText) findViewById(R.id.editText3);

text4 = (EditText) findViewById(R.id.editText4);

text5 = (EditText) findViewById(R.id.editText5);

ton1 = (Button) findViewById(R.id.button1);

ton2 = (Button) findViewById(R.id.button2);

 

ton1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.execSQL(“insert into biodata(no, nama, tgl, jk, alamat) values(‘” +

text1.getText().toString() + “‘,'” +

text2.getText().toString() + “‘,'” +

text3.getText().toString() + “‘,'” +

text4.getText().toString() + “‘,'” +

text5.getText().toString() + “‘)”);

Toast.makeText(getApplicationContext(), “Berhasil”, Toast.LENGTH_LONG).show();

MainActivity.ma.RefreshList();

finish();

}

});

ton2.setOnClickListener(new View.OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

finish();

}

});

}

 

}

  1. java

 

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

 

public class LihatBiodata extends AppCompatActivity {

protected Cursor cursor;

DataHelper dbHelper;

Button ton2;

TextView text1, text2, text3, text4, text5;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_lihat_biodata);

 

dbHelper = new DataHelper(this);

text1 = (TextView) findViewById(R.id.textView1);

text2 = (TextView) findViewById(R.id.textView2);

text3 = (TextView) findViewById(R.id.textView3);

text4 = (TextView) findViewById(R.id.textView4);

text5 = (TextView) findViewById(R.id.textView5);

SQLiteDatabase db = dbHelper.getReadableDatabase();

cursor = db.rawQuery(“SELECT * FROM biodata WHERE nama = ‘” +

getIntent().getStringExtra(“nama”) + “‘”,null);

cursor.moveToFirst();

if (cursor.getCount()>0)

{

cursor.moveToPosition(0);

text1.setText(cursor.getString(0).toString());

text2.setText(cursor.getString(1).toString());

text3.setText(cursor.getString(2).toString());

text4.setText(cursor.getString(3).toString());

text5.setText(cursor.getString(4).toString());

}

ton2 = (Button) findViewById(R.id.button1);

ton2.setOnClickListener(new View.OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

finish();

}

});

}

 

}

  1. java

 

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

 

public class UpdateBiodata extends AppCompatActivity {

protected Cursor cursor;

DataHelper dbHelper;

Button ton1, ton2;

EditText text1, text2, text3, text4, text5;

 

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_update_biodata);

 

dbHelper = new DataHelper(this);

text1 = (EditText) findViewById(R.id.editText1);

text2 = (EditText) findViewById(R.id.editText2);

text3 = (EditText) findViewById(R.id.editText3);

text4 = (EditText) findViewById(R.id.editText4);

text5 = (EditText) findViewById(R.id.editText5);

SQLiteDatabase db = dbHelper.getReadableDatabase();

cursor = db.rawQuery(“SELECT * FROM biodata WHERE nama = ‘” +

getIntent().getStringExtra(“nama”) + “‘”,null);

cursor.moveToFirst();

if (cursor.getCount()>0)

{

cursor.moveToPosition(0);

text1.setText(cursor.getString(0).toString());

text2.setText(cursor.getString(1).toString());

text3.setText(cursor.getString(2).toString());

text4.setText(cursor.getString(3).toString());

text5.setText(cursor.getString(4).toString());

}

ton1 = (Button) findViewById(R.id.button1);

ton2 = (Button) findViewById(R.id.button2);

// daftarkan even onClick pada btnSimpan

ton1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

SQLiteDatabase db = dbHelper.getWritableDatabase();

db.execSQL(“update biodata set nama='”+

text2.getText().toString() +”‘, tgl='” +

text3.getText().toString()+”‘, jk='”+

text4.getText().toString() +”‘, alamat='” +

text5.getText().toString() + “‘ where no='” +

text1.getText().toString()+”‘”);

Toast.makeText(getApplicationContext(), “Berhasil”, Toast.LENGTH_LONG).show();

MainActivity.ma.RefreshList();

finish();

}

});

ton2.setOnClickListener(new View.OnClickListener() {

 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

finish();

}

});

}

 

Lanjutan..

13.Tambahan : edit manifest/AndroidManifest.xml

 

edit res/values/color.xml

 

 

Terakhir edit res/values/styles.xml

 

 

14.Jalankan Aplikasinya.

 

.

ppt : (Google Drive)