SQLite
Seperti telah dijelaskan diatas database pada android menggunakan SQLite. Dengan SQLite untuk insert, update dan query data dapat dilakukan dengan syntak SQL.
Untuk itu sebelum melangkah pembuatan aplikasi Android yang memanfatkan firtur SQlite databasenya, kita harus menguasai cara menggunakan SQLite.
Sama seperti database lainnya syntak SQLnya terbagi 2 kategori yaitu syntak untuk Data Definition Language (DDL) dan Data Manipulation Language (DML). Bagi yang pernah belajar database pasti tidak asing dengan kedua istilah tersebut.
Sekarang ada pertanyaan nih apa beda DDL dan DML ?
Biar mudah dipahami, kalau database itu kita ibaratkan sebuah rumah, maka DDL itu adalah syntax untuk membuat rumah, menambah kamar, merubah bangunan rumah, makanya yang termasuk syntak-syantak DDL adalah create table, alter table, drop table.
sedangkan DML adalah syntax untuk mengetahui isi rumah, siapa saja penghuninya, berapa jumlahnya, ada berapa yang pria dan yang wanita, adalah anak-anak dirumah itu.
Makanya yang termasuk syntak-syntak DML adalah insert, update, delete, select
Sekarang mari kita buat project yang menggunakan database sqlite di android. Untuk study kasusnya coba kita bikin yang sederhana dulu yaitu menampilkan Biodata Mahasiswa, yang mempunyai atribut NIM (Nomor Induk Mahasiswa), Nama dan Alamat.
OK. Langsung saja ke step by step pembuatan aplikasinya.
Langkah 1 : Buat project baru dengan nama ContohDatabaseLocal. Setelah project selesai dibikin, langkah pertama kali pasti mendesain layout-nya terlebih dahulu. Silahkan buka file res/layout/main.xml. Kemudian copy-paste contoh XML dibawah ini.
- <?xml version="1.0" encoding="utf-8"?>
- <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/scrollView1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" >
- <LinearLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical">
- <LinearLayout
- android:id="@+id/header"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
- <TextView android:id="@+id/txtLogo"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Test Database"/>
- <Button android:id="@+id/btnTampil"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Tampilkan Data"/>
- </LinearLayout>
- <LinearLayout
- android:id="@+id/detail"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal" >
- <TableLayout
- android:id="@+id/tableLayout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:layout_weight="1" >
- </TableLayout>
- </LinearLayout>
- </LinearLayout>
- </ScrollView>
- package eko.contohdatabase;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- public class OperasiDatabase extends SQLiteOpenHelper{
- private static final String NAMA_DATABASE = "dbMahasiswa";
- public OperasiDatabase(Context context) {
- super(context, NAMA_DATABASE, null, 1);
- }
- @Override
- public void onCreate(SQLiteDatabase arg0) {
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- }
- //method createTable untuk membuat table kamus
- public void createTable(SQLiteDatabase db){
- db.execSQL("DROP TABLE IF EXISTS biodata");
- db.execSQL("CREATE TABLE if not exists biodata (nim VARCHAR(20) PRIMARY KEY, nama varchar(50), alamat TEXT);");
- }
- //method generateData untuk mengisikan data ke kamus.
- public void generateData(SQLiteDatabase db){
- ContentValues cv=new ContentValues();
- cv.put("nim", "97.111.486");
- cv.put("nama", "Eko Heri Susanto");
- cv.put("alamat", "Kabupaten Pacitan");
- db.insert("biodata",null,cv);
- cv.put("nim", "00.111.123");
- cv.put("nama", "Ilyas Ahsan Fadhlullah");
- cv.put("alamat", "LANUD Iswahyudi, Maospati, Kabupaten Magetan");
- db.insert("biodata",null,cv);
- }
- }
- package eko.contohdatabase;
- import android.app.Activity;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.view.Gravity;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TableLayout;
- import android.widget.TableRow;
- import android.widget.TextView;
- public class TestDatabase extends Activity {
- private SQLiteDatabase db = null;
- private Cursor dbCursor = null;
- private Button btnTampil;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- OperasiDatabase oprDatabase = new OperasiDatabase(this);
- db = oprDatabase.getWritableDatabase();
- oprDatabase.createTable(db);
- oprDatabase.generateData(db);
- btnTampil = (Button)findViewById(R.id.btnTampil);
- //deklarasi event onClick pada Button
- btnTampil.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- TampilkanData();
- }
- });
- }
- private void TampilkanData(){
- dbCursor = db.rawQuery("SELECT * FROM biodata", null);
- dbCursor.moveToFirst();
- int jml_baris=dbCursor.getCount();
- int kol_nim=dbCursor.getColumnIndex("nim");
- int kol_nama=dbCursor.getColumnIndex("nama");
- int kol_alamat=dbCursor.getColumnIndex("alamat");
- int indeks=1;
- String[][] data=new String[jml_baris][3];
- data[0][0]=dbCursor.getString(kol_nim);
- data[0][1]=dbCursor.getString(kol_nama);
- data[0][2]=dbCursor.getString(kol_alamat);
- if(dbCursor!=null){
- while(dbCursor.moveToNext()){
- data[indeks][0]=dbCursor.getString(kol_nim);
- data[indeks][1]=dbCursor.getString(kol_nama);
- data[indeks][2]=dbCursor.getString(kol_alamat);
- indeks++;
- }
- }
- TableLayout TL=(TableLayout) findViewById(R.id.tableLayout);
- TableLayout.LayoutParams ParameterTableLayout=new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
- for(int awal=0; awal<jml_baris;awal++){
- TableRow TR=new TableRow(this);
- TR.setBackgroundColor(Color.RED);
- TR.setLayoutParams(ParameterTableLayout);
- TableRow.LayoutParams ParameterTableRow=new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
- ParameterTableRow.setMargins(2,2,2,2);
- for(int kolom = 0;kolom < 3; kolom++){
- TextView TV=new TextView(this);
- TV.setText(data[awal][kolom]);
- TV.setTextColor(Color.WHITE);
- TV.setPadding(2, 5, 2, 5);
- TV.setGravity(Gravity.LEFT);
- TV.setBackgroundColor(Color.BLUE);
- TR.addView(TV,ParameterTableRow );
- }
- TL.addView(TR);
- }
- }
- public void onDestroy() {
- super.onDestroy();
- dbCursor.close();
- db.close();
- }
- }
http://www.blogkomputer.com/data-tentang-android-membuat-aplikasi-database-sqlite.html
Tidak ada komentar:
Posting Komentar