DISKUSI PERTEMUAN 8 ANDROID DATABASE SQL LITE

DISKUSI PERTEMUAN 8

Pemrograman mobile 2

TI 15 D

 

  1. SQL LITE

SQLite itu merupakan sebuah Database yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, ditulis dalam bahasa C. SQLite merupakan proyek yang bersifat public domain yang dikerjakan oleh D. Richard Hipp. SQLite adalah sebuah open source database yang telah ada cukup lama, cukup stabil, dan sangat terkenal pada perangkat kecil, termasuk Android. Android menyediakan database relasional yang ringan untuk setiap aplikasi menggunakan SQLite. Aplikasi dapat mengambil keuntungan dari itu untuk mengatur relational database engine untuk menyimpan data secara aman dan efiesien. Untuk Android, SQLite dijadikan satu di dalam Android runtime, sehingga setiap aplikasi Android dapat membuat basis data SQLite. Karena SQLite menggunakan antarmuka SQL, cukup mudah untuk digunakan orang orang dengan pengalaman lain yang berbasis databases. Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu:

Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer. Ini membuatnya relatif mudah digunakan. Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database. Single-file database. Ini membuat keamanan database secara langsung. Open source. Hal ini membuat developer mudah dalam pengembangan aplikasi.

SQLite dapat digunakan di Windows Phone, Android, iPhone, PHP, Firefox, Chrome dan lain – lain yang dapat dilihat di: http://www.sqlite.org/famous.html. Pada browser, biasanya SQLite ini digunakan untuk menyimpan kongfigurasi seperti history, bookmark, dan cache, sedangkan pada mobile, penggunaan SQLite ini sangat banyak seperti kontak, database tabel dsb.

SQLite adalah produk public domain. Artinya tidak punya lisensi, anda boleh mengambil binary atau source codenya secara free / GRATIS.

Contoh produk yang memekai SQLite

PHP, Firefox, Chrome, iPhone dan Android adalah contoh produk yang menggunakan SQlite. di Browser firefox, Sqlite dipakai untuk menyimpan konfigurasi, bookmark dan history website sedangkan di smartphone android, SQLite dipakai untuk menyimpan contact.

Tipe data yang didukung di SQLite :

  • Numeric ( integer , float , double)
  • Text ( Char , varchar , text )
  • DATETIME

OS yang didukung oleh SQLite, SQLite mendukung semua platform. Anda bebas memilih OS, mau pakai Windows, Linux, Mac OSX bahkan Android dan iPhone

Sumber:

http://tersesatdikuliah.blogspot.co.id/2014/06/pengertian-sqlite.html

https://www.angon.co.id/news/phpmysql/pengertian-sqlite

  1. STRUKTUR DATABASE

Mengenal SQLite Database Pada Aplikasi Android

SQLite adalah database SQL opensource yang sudah built in pada device android. Setiap aplikasi memiliki SQLite database sendiri, database ini dapat diakses oleh setiap class pada aplikasi,tapi tidak bisa diakses oleh aplikasi lain. Database SQLite dibuat pada aplikasi selalu disimpan dalam /data/data/<nama package>/folder database.

SQLiteOpenHelper. Pada class ini kamu perlu override method berikut ini untuk membuat dan meng-upgrade database.

  • onCreate(), dipanggil ketika database dapat diakses namum belum dibuat.
  • onUpdate(), dipanggil ketika aplikasi diupgrade dan nomor versi telah berubah pada kode aplikasi android. method ini memungkinkan untuk memperbarui(update) skema database yang ada atau drop database yang ada dan menciptakan kembali melalui method OnCreate ().

Class SQLiteOpenHelper menyediakan method getReadableDatabase () dan getWritableDatabase (), untuk mendapatkan akses ke objek SQLiteDatabase.

Berikut pola desain database untuk membuat aplikasi Android yang baik.

SQLiteDatabase merupakan sebeuah kelas yang mempunya method-method seperti :

  • Insert() = untuk menambahkan baris ke database
  • Update () = untuk memperbarui baris pada database
  • Delete () = untuk menghapus baris pada database
  • execSQL () = untuk mengeksekusi sintak SQL

SQLiteOpenHelper merupakan subclass yang memiliki beberapa method seperti :

  • onCreate() = di jalankan jika sebelum’nya belum ada database
  • onUpgrade() = di jalankan jika sebelum’nya sudah di temukan database yang sama
  • tapi beda versi, method ini bisa di manfaatkan untuk mengubah sekema database
  • onOpen() = di jalankan jika database dalam keadaan open
  • getWritableDatabase() = memanggil database agar bisa di masuki data
  • getReadableDatabase() = memanggil database agar bisa dibaca data’nya

Cursor Setiap Query yang di eksekusi pasti membawa nilai kembalian atau feedback. Feedbeck yang dihasilkan query ini, jadi dengan kata lain cursor merepresentasikan hasil query yang di eksekusi pada baris dan kolom tertentu beberapa ini method yang di gunakan untuk latihan ini :

 

  • moveToFirst() = untuk indah ke baris pertama
  • isAfterLast () = akan mengirim pesan balik jika posisi cursor sudah berada di baris terakhir
  • getLong() = untuk mengambil data pada kolom yang mempunyai tipe data Long
  • getString() = untuk mengambil data pada kolom yang mempunyai tipe data String

Sumber :

http://ketikanpelajarbodoh.blogspot.co.id/2013/10/android-belajar-sqlite-database.html

https://plus.google.com/+Teknorialcom/posts/gPpYWUfjRhV

https://blog.teknorial.com/mengenal-sqlite-database-pada-aplikasi-android/

  1. KELEBIHAN DARI DATABASE SQL LITE

Ada banyak keunggulan yang dimiliki oleh SQLite dibanding database lainnya, ada 5 keunggulan SQLite.

  • Mudah Dikelola

SQLite mudah dikelola karena SQLite merupakan file tunggal (atau beberapa file saja dengan tambahan log transaksi). Bila dibandingkan dengan database lainnya, SQLite juga tidak membutuhkan konfigurasi banyak. Selain itu, format filenya juga stabil di versi utama. Jadi, jika punya file database SQLite dari versi 3.0.0, pembaca tetap bisa membacanya dengan menggunakan SQLite terbaru 3.10.0. Jika pembaca ingin mengambil file database pada thumb drive, pembaca hanya perlu menyalin filenya saja.

  • Sangat Stabil

SQLite secara aktif dikembangkan oleh beberapa software engineer yang handal. Dalam waktu beberapa bulan, SQLite sering dirilis. Banyak fitur yang telah ditambahkan. Salah satunya fitur dukungan untuk data JSON melalui ekstensi json1. Selain itu, SQLite juga merilis versi perbaikan dari pencarian teks lengkap, yang meliputi hasil pemeringkatan dengan menggunakan algoritma BM25. Selain menambahkan fitur baru, pengembang SQLite juga terus bekerja untuk meningkatkan performa SQLite. Dalam versi 3.8.11, SQLite menjadi dua kali lebih cepat dibanding versi 3.8.0 dan tiga kali lebih cepat dibanding versi 3.3.9 Meskipun banyak fitur yang sering ditambahkan, SQLite jarang menemukan bug didalamnya. Karena sebelum dirilis, SQLite di uji dengan pengujian yang cukup ketat.

  • Bisa Diperluas

SQLite juga bisa diperluas dengan ekstensi dan diintegrasikan dengan API. Salah satu contohnya adalah modul Python Pysqlite yang menjadi driver untuk SQLite. Ada juga modul Python Apsw yang menjadi driver alternatif SQLite. Modul Apsw menyediakan banyak API yang berguna untuk mendefinisikan fungsi kustom SQL, fungsi agregat, dan kolaborasi.

  • Sangat Cepat

SQLite sangat cepat jika berjalan pada lingkup yang sama sehingga tidak ada sumber daya tambahan seperti jaringan ketika menjalankan query maupun mengambil data. SQLite benar-benar fleksibel sehingga tidak membutuhkan protokol, serialisasi ataupun komunikasi melalui socket. SQLite juga bisa berjalan pada perangkat mobile, yang kini banyak dipakai di berbagai aplikasi Android.

  • Mode WAL

Mode WAL pertama kali diperkenalkan pada SQLite 3.7.0. Fitur ini berguna untuk mengatasi kongkurensi dimana aktivitas membaca dan menulis data bisa dilakukan secara bersamaan. Tanpa mode WAL, akan sangat sulit jika banyak menggunakan proses yang berkaitan dengan database.

SQLite merupakan mesin database yang unik, fleksibel dan mudah dikelola. SQLite juga bisa menjadi alternatif yang bagus untuk database dalam pengembangan perangkat lunak. Itulah dia SQLite dengan berbagai keunggulannya dan sebenarnya masih banyak keunggulan SQLite yang belum diulas. Apabila ada keunggulan SQLite lain, jangan sungkan untuk menambahkannya di kolom komentar dibawah ini. Selamat mencoba SQLite.

Terdapat beberapa alasan mengapa SQLite sangat cocok untuk pengembangan aplikasi Android, yaitu:

  • Database dengan konfigurasi nol. Artinya tidak ada konfigurasi database untuk para developer. Ini membuatnya relatif mudah digunakan.
  • Tidak memiliki server. Tidak ada proses database SQLite yang berjalan. Pada dasarnya satu set libraries menyediakan fungsionalitas database.
  • Single-file database. Ini membuat keamanan database secara langsung.
  • Open source. Hal ini membuat developer mudah dalam pengembangan aplikasi.

Sumber :

https://www.codepolitan.com/5-keunggulan-sqlite

http://www.zainalhakim.web.id/apa-itu-sqllite.html

 

 

 

 

 

  1. TEKNIK PENYIMPANAN DATA

Dalam sistem Android ada beberapa teknik untuk melakukan penyimpanan data. Teknik yang umum digunakan adalah sebagai berikut :

  • Shared Preferences yaitu menyimpan data beberapa nilai ( value ) dalam bentuk group key yang dikenal dengan preferences.
  • Files yaitu menyimpan data dalam file, dapat berupa menulis file atau membaca dari file.
  • SQLite Database yaitu penyimpanan data dalam bentuk Databases.
  • Content Providers yaitu menyimpan data dalam bentuk content providers service.

Sumber:

http://virtualofworld.blogspot.co.id/2016/04/database-sqlite-pada-android.html

 

  1. IMPLEMENTASI PROGRAM

MainActivity.java

package com.okedroid.biodatadirisqlite;

 

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();

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

}

activity_main.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

                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”

                android:background=”#ecf0f1″

                tools:context=”.MainActivity” >

 

 

    <Button

        android:id=”@+id/button2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignParentTop=”true”

        android:layout_toRightOf=”@+id/button1″

        style=”?android:attr/borderlessButtonStyle”

        android:drawableLeft=”@drawable/icon_add”

        android:text=”Buat Biodata Baru” />

 

    <ListView

        android:id=”@+id/listView1″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_below=”@+id/button2″ android:layout_alignParentLeft=”true”

        android:layout_alignParentStart=”true”>

    </ListView>

 

    <ImageView android:layout_width=”match_parent”

               android:layout_height=”wrap_content”

               android:src=”@drawable/okedroid”

               android:alpha=”0.4″

               android:layout_centerVertical=”true” android:layout_alignParentLeft=”true”

               android:layout_alignParentStart=”true”/>

 

 

</RelativeLayout>

 

SQLiteDatabase

SQLiteDatabase adalah sebuah class dasar yang bekerja , untuk database sqlite di perangkat Android. SqLiteDatabase akan menjalankan perintah SQL secara langsung dengan method exceSQL(). Dan juga akan melakukan manajamen database secara umum lainya , method yang digunakan seperti : Insert() ,Update () dan ,Delete ().

BuatBiodata.java

package com.okedroid.biodatadirisqlite;

 

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.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();

            }

        });

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

 

}

 

activity_buat_biodata.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

                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=”.BuatBiodata” >

 

    <EditText

        android:id=”@+id/editText1″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView1″

        android:layout_below=”@+id/textView1″ >

 

        <requestFocus />

    </EditText>

     <TextView

        android:id=”@+id/textView1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignParentLeft=”true”

        android:layout_alignParentTop=”true”

        android:text=”Nomor” />

 

    <TextView

        android:id=”@+id/textView2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText1″

        android:layout_below=”@+id/editText1″

        android:layout_marginTop=”10dp”

        android:text=”Nama” />

 

    <EditText

        android:id=”@+id/editText2″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView2″

        android:layout_below=”@+id/textView2″ />

 

    <TextView

        android:id=”@+id/textView3″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText2″

        android:layout_below=”@+id/editText2″

        android:layout_marginTop=”10dp”

        android:text=”Tanggal Lahir” />

 

    <EditText

        android:id=”@+id/editText3″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView3″

        android:layout_below=”@+id/textView3″ />

 

    <TextView

        android:id=”@+id/textView4″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText3″

        android:layout_below=”@+id/editText3″

        android:layout_marginTop=”10dp”

        android:text=”Jenis Kelamin” />

 

    <EditText

        android:id=”@+id/editText4″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView4″

        android:layout_below=”@+id/textView4″ />

 

    <TextView

        android:id=”@+id/textView5″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText4″

        android:layout_below=”@+id/editText4″

        android:layout_marginTop=”10dp”

        android:text=”Alamat” />

 

    <EditText

        android:id=”@+id/editText5″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView5″

        android:layout_below=”@+id/textView5″ />

 

    <Button

        android:id=”@+id/button1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText5″

        android:layout_alignParentBottom=”true”

        android:text=”Simpan” />

 

    <Button

        android:id=”@+id/button2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/button1″

        android:layout_alignBottom=”@+id/button1″

        android:layout_toRightOf=”@+id/textView4″

        android:text=”Back” />

 

</RelativeLayout>

 

LihatBiodata.java

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.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();

            }

        });

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

 

}

 

 

 

activity_lihat_biodata.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

                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=”.LihatBiodata” >

                                                                                                                                         

    <TextView

        android:id=”@+id/textView1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignParentRight=”true”

        android:layout_alignParentTop=”true”

        android:layout_marginRight=”104dp”

        android:layout_marginTop=”20dp”

        android:text=”TextView” />

 

    <TextView

        android:id=”@+id/textView2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignRight=”@+id/textView1″

        android:layout_below=”@+id/textView1″

        android:layout_marginTop=”20dp”

        android:text=”TextView” />

 

    <TextView

        android:id=”@+id/textView3″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView2″

        android:layout_below=”@+id/textView2″

        android:layout_marginTop=”20dp”

        android:text=”TextView” />

 

    <TextView

        android:id=”@+id/textView4″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView3″

        android:layout_below=”@+id/textView3″

        android:layout_marginTop=”20dp”

        android:text=”TextView” />

 

    <TextView

        android:id=”@+id/textView5″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignRight=”@+id/textView4″

        android:layout_below=”@+id/textView4″

        android:layout_marginTop=”20dp”

        android:text=”TextView” />

 

    <TextView

        android:id=”@+id/TextView05″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/textView5″

        android:layout_alignBottom=”@+id/textView5″

        android:layout_alignLeft=”@+id/TextView03″

        android:text=”Alamat” />

 

    <TextView

        android:id=”@+id/TextView03″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/textView4″

        android:layout_alignBottom=”@+id/textView4″

        android:layout_alignLeft=”@+id/TextView04″

        android:text=”Jenis Kelamin” />

 

    <TextView

        android:id=”@+id/TextView04″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/textView3″

        android:layout_alignBottom=”@+id/textView3″

        android:layout_alignLeft=”@+id/TextView02″

        android:text=”Tanggal Lahir” />

 

    <TextView

        android:id=”@+id/TextView02″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/textView2″

        android:layout_alignBottom=”@+id/textView2″

        android:layout_alignLeft=”@+id/TextView01″

        android:text=”Nama” />

 

    <TextView

        android:id=”@+id/TextView01″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_above=”@+id/textView2″

        android:layout_alignParentLeft=”true”

        android:text=”Nomor” />

 

 

    <Button

        android:id=”@+id/button1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/TextView05″

        android:layout_below=”@+id/TextView05″

        android:layout_marginTop=”34dp”

        android:text=”Back” />

 

</RelativeLayout>

UpdateBiodata.java

package com.okedroid.biodatadirisqlite;

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.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();

            }

        });

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

 

}

 

activity_update_biodata.xml

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”

                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=”.UpdateBiodata” >

 

    <EditText

        android:id=”@+id/editText1″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView1″

        android:layout_below=”@+id/textView1″ >

 

        <requestFocus />

    </EditText>

 

    <TextView

        android:id=”@+id/textView1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignParentLeft=”true”

        android:layout_alignParentTop=”true”

        android:text=”Nomor” />

 

    <TextView

        android:id=”@+id/textView2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText1″

        android:layout_below=”@+id/editText1″

        android:layout_marginTop=”10dp”

        android:text=”Nama” />

 

    <EditText

        android:id=”@+id/editText2″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView2″

        android:layout_below=”@+id/textView2″ />

 

    <TextView

        android:id=”@+id/textView3″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText2″

        android:layout_below=”@+id/editText2″

        android:layout_marginTop=”10dp”

        android:text=”Tanggal Lahir” />

 

    <EditText

        android:id=”@+id/editText3″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView3″

        android:layout_below=”@+id/textView3″ />

 

    <TextView

        android:id=”@+id/textView4″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText3″

        android:layout_below=”@+id/editText3″

        android:layout_marginTop=”10dp”

        android:text=”Jenis Kelamin” />

 

    <EditText

        android:id=”@+id/editText4″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView4″

        android:layout_below=”@+id/textView4″ />

 

    <TextView

        android:id=”@+id/textView5″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText4″

        android:layout_below=”@+id/editText4″

        android:layout_marginTop=”10dp”

        android:text=”Alamat” />

 

    <EditText

        android:id=”@+id/editText5″

        android:layout_width=”match_parent”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/textView5″

        android:layout_below=”@+id/textView5″ />

 

    <Button

        android:id=”@+id/button1″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignLeft=”@+id/editText5″

        android:layout_alignParentBottom=”true”

        android:text=”Update” />

 

    <Button

        android:id=”@+id/button2″

        android:layout_width=”wrap_content”

        android:layout_height=”wrap_content”

        android:layout_alignBaseline=”@+id/button1″

        android:layout_alignBottom=”@+id/button1″

        android:layout_toRightOf=”@+id/textView4″

        android:text=”Back” />

 

</RelativeLayout>

 

Sumber : http://www.okedroid.com/2016/03/cara-membuat-aplikasi-biodata-diri-sqlite-crud-android-studio.html

 

Link PPT : Pertemuan 8 (SQLite)

 

DISKUSI PERTEMUAN 8 ANDROID DATABASE SQL LITE
Agung Edi W
Faizal Aji R
Khaerul Imam
Abdurahman
Eko Prasetyo
Windu Febriansah