Tutorial CRUD SQLite Android (I) : Membuat Database SQLite

Oke, karena kebetulan saya sedang tidak bisa tidur. 😀 Maka saya memutuskan untuk membuat tutorial lanjutan dari tutorial tentang cara membuat aplikasi inventory untuk Android.

Seperti yang sudah dijelaskan sebelumnya, aplikasi ini nantinya akan menggunakan database SQLite dan memakai paradigma MVC, bagi yang belum mengerti. Silahkan baca pengantarnya dulu di sini.

Let’s Get Started

Langsung saja, pertama-tama kita buat sebuah project Android baru terlebih dahulu. Nama package nya terserah, tapi pada program ini nama package-nya adalah id.twooh.appinventory. Silahkan nanti disesuaikan. 🙂 Kemudian, karena aplikasi ini menggunakan paradigma MVC. Maka kita akan buat kelas modelnya, yaitu kelas Barang.java. 

Kelas barang berfungsi untuk mendefinisikan objek barang beserta fungsi-fungsi dan atribut-atributnya. Yah seperti barang pada umumnya, mereka mempunyai nama, ID, merk, dan sebagainya. Inilah kode untuk kelas Barang.java.

package id.twooh.appinventory;

public class Barang {

	private long id;
	private String nama_barang;
	private String merk_barang;
	private String harga_barang;

	public Barang()
	{

	}

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the nama_barang
	 */
	public String getNama_barang() {
		return nama_barang;
	}

	/**
	 * @param nama_barang the nama_barang to set
	 */
	public void setNama_barang(String nama_barang) {
		this.nama_barang = nama_barang;
	}

	/**
	 * @return the merk_barang
	 */
	public String getMerk_barang() {
		return merk_barang;
	}

	/**
	 * @param merk_barang the merk_barang to set
	 */
	public void setMerk_barang(String merk_barang) {
		this.merk_barang = merk_barang;
	}

	/**
	 * @return the harga_barang
	 */
	public String getHarga_barang() {
		return harga_barang;
	}

	/**
	 * @param harga_barang the harga_barang to set
	 */
	public void setHarga_barang(String harga_barang) {
		this.harga_barang = harga_barang;
	}

	@Override
	public String toString()
	{
		return "Barang "+ nama_barang +" "+ merk_barang + " "+ harga_barang;
	}
}

Oke, Model nya sekarang sudah ada. Sederhana bukan? Kelas tersebut hanya berisi atribut dan fungsi-fungsi getter dan setter. Setelah kelas barang selesai dibuat, kita akan melanjutkan dengan membuat kelas Database Helper.

Database Helper

Sesuai namanya, kelas ini berfungsi untuk memudahkan kita dalam membuat dan mengakses database SQLite yang akan dipakai oleh aplikasi. Kelas ini kebanyakan berisi method-method berkaitan dengan manajemen database, seperti onUpgrade() dan onCreate(). 

Database Helper sebenarnya sudah ada kelasnya pada Android, yaitu bernama SQLiteOpenHelper. Sehingga kita tinggal meng-extends kelas ini dari kelas SQLiteOpenHelper, atau dengan kata lain, melakukan pewarisan.

Inilah kode untuk kelas DBHelper.java :

package id.twooh.appinventory;

//deklarasi import package
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBHelper extends SQLiteOpenHelper{
        /** deklarasi konstanta-konstanta yang digunakan pada database, seperti nama tabel,
        nama-nama kolom, nama database, dan versi dari database **/
	public static final String TABLE_NAME = "data_inventori";
	public static final String COLUMN_ID = "_id";
	public static final String COLUMN_NAME = "nama_barang";
	public static final String COLUMN_MERK = "merk_barang";
	public static final String COLUMN_HARGA = "harga_barang";
	private static final String db_name ="inventori.db";
	private static final int db_version=1;

	// Perintah SQL untuk membuat tabel database baru
	  private static final String db_create = "create table "
	      + TABLE_NAME + "("
	      + COLUMN_ID +" integer primary key autoincrement, "
	      + COLUMN_NAME+ " varchar(50) not null, "
	      + COLUMN_MERK+ " varchar(50) not null, "
	      + COLUMN_HARGA+ " varchar(50) not null);";

	public DBHelper(Context context) {
		super(context, db_name, null, db_version);
		// Auto generated
	}

        //mengeksekusi perintah SQL di atas untuk membuat tabel database baru
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(db_create);
	}

        // dijalankan apabila ingin mengupgrade database
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		Log.w(DBHelper.class.getName(),"Upgrading database from version " + oldVersion + " to "
	            + newVersion + ", which will destroy all old data");
		db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
	    onCreate(db);

	}

}

Oke, seperti yang bisa kita lihat di atas. Kelas DBHelper.java kebanyakan berisi konstanta-konstanta seperti nama tabel, nama database, nama kolom, dan sebagainya. Hal ini untuk memudahkan kita nantinya. Dimana ketika ingin menggunakan konstanta tersebut, kita tidak usah lagi menulis nama tabel berulang kali, namun cukup dengan mengaksesnya dari kelas DBHelper.

Kemudian ada juga konstanta berupa SQL statement, yang untuk mereka yang ahli database, sebenarnya perintah itu digunakan untuk membuat tabel database baru. Perintah SQL tersebut kemudian akan dieksekusi pada method onCreate(). 

Kira-kira sekian dulu postingan malam hari ini. Tutorial nanti akan dilanjutkan kembali.

Untuk demo-nya, kalian bisa cek dan download AppInventory di Google Play Store.

Jika ada yang ingin ditanyakan, silahkan tulis saja di kolom komentar. Semoga berguna!





Download aplikasi kami di Google Play Store


72 Comments

  1. no name February 2, 2013
    • Herdi Naufal February 3, 2013
  2. Angga Saputra February 21, 2013
  3. Ella March 7, 2013
    • Herdi Naufal March 8, 2013
  4. reno March 19, 2013
    • Herdi Naufal March 19, 2013
  5. reno March 20, 2013
  6. reno March 20, 2013
    • Herdi Naufal March 20, 2013
  7. reno March 21, 2013
    • Herdi Naufal March 24, 2013
  8. reno March 21, 2013
    • Herdi Naufal March 21, 2013
      • robby May 7, 2013
  9. Rizky May 16, 2013
  10. saefudin July 3, 2013
  11. darwone August 12, 2013
    • Hafizh Herdi Naufal February 9, 2014
  12. sihab October 22, 2013
  13. albar October 28, 2013
  14. netfriend November 23, 2013
  15. Michael January 21, 2014
    • Hafizh Herdi Naufal January 21, 2014
  16. firman February 14, 2014
  17. Theo February 23, 2014
  18. paskianti April 2, 2014
  19. riza April 29, 2014
  20. ipoet June 2, 2014
  21. Indra C. August 21, 2014
  22. tya novyanty September 4, 2014
    • Hafizh Herdi Naufal September 4, 2014
  23. udinulis September 4, 2014
  24. Dwi Indah December 16, 2014
  25. hang puriah March 1, 2015
    • Hafizh Herdi June 1, 2015
      • andre pratama June 11, 2015
  26. irwan anggara May 31, 2015
    • Hafizh Herdi June 1, 2015
  27. Nanda Maya Utari June 6, 2015
  28. soni amanta June 12, 2015
  29. ahmad June 25, 2015
    • Hafizh Herdi June 26, 2015
  30. tahol August 8, 2015
  31. Evendy August 16, 2015
  32. reza September 3, 2015
  33. roens October 11, 2015
    • Hafizh Herdi January 3, 2016
  34. Fikri January 1, 2016
    • Hafizh Herdi January 3, 2016
      • Fikri January 5, 2016
  35. basir March 24, 2016
    • Hafizh Herdi March 27, 2016
  36. gie May 2, 2016
    • Hafizh Herdi May 4, 2016
  37. paulina May 5, 2016
    • Hafizh Herdi May 9, 2016
  38. Lisnadslv May 23, 2016
  39. Diah June 21, 2016
  40. F September 30, 2016
  41. yudha October 11, 2016
  42. aas June 12, 2017

Leave a Reply