Cara Membuat Database Menggunakan SQLite


Assalamualaikum Warahmatullahi Wabarakatuh.

Tutorial kali ini yang akan kita pelajari, yaitu cara membuat sebuah program aplikasi dengan menggunakan databse SQLite, Untuk para programmer pemulai ataupun senior, pastinya sudah tidak asing lagi dengan yang namanya program aplikasi CRUD (Create, Read, Update, Delete). Pada setiap bahasa pemrograman, pastinya banyak sekali tutoral yang menjelaskan mengenai program CRUD, dengan bahasa pemrograman yang berbeda-beda, seperti C++, PHP, Ruby, Java, Dll. Dengan menggunakan berbagai macam Database, seperti SQLite, MySql, Oracle, Firebase, dsb.

SQLite merupakan sebuah sistem manajemen basisdata relasional yang bersifat ACID-compliant dan memiliki ukuran pustaka kode yang relatif kecil, yang dibangun pada sebuah library pada bahasa pemrograman C

Sebuah Dataase atau Basisdata berperan sangat penting pada suatu aplikasi, Database digunakan untuk menyimpan suatu Informasi Data yang di inputkan oleh User ataupun yang sudah kita set sebelumnya pada program aplikasi.

Cara Membuat Database Menggunakan SQLite (Part 1)

Pada tutorial CRUD ini, saya akan membagikannya dalam berbagai part (bagian), pada bagian yang pertama ini, kita akan mempelajari cara membuat Databasenya terlebih dahulu, setelah itu, kita akan lanjut dengan tutorial selanjutnya, seperti membuat fungsi Create, Insert, Update, Delete dan menampilkan datanya pada list.

Aplikasi yang akan kita buat yaitu, aplikasi Pendataan data Mahasiswa, sebelum membuat databse tersebut, pertama kita perlu menyipkan Struktur tabelnya terlebih dahulu, disini kita harus menentukan data apa saja yang harus di Inputkan.

Dan berikut ini merupakan Struktur Table yang akan kita terapkan pada SQLite Database:
Field Tipe Data key
NIM Text Primary Key
Nama_Mahasiswa Text Not Null
Jurusan Text Not Null
Jenis_Kelamin Text Not Null
Tanggal_Lahir Text Not Null
Alamat Text Not Null
Tutorial CRUD: Membuat Database pada SQLite (Part 1)

1) Buka Aplikasi Android Studio kalian, Buat Project Baru.

2) Pertama kita perlu membuat class SQLiteOpenHelper terlebih dahulu, Class ini digunakan untuk mengatur atau mengelola Struktur tabel yang akan dibuat, misalnya menentukan nama Tabel, nama kolom, Tipe Data, Key, dan juga Query.

Query digunakan untuk melakukan permintaan terhadap basis data atau database, untuk membuat tabel tersebut, kita perlu memasukan nama Tabel, kolom serta Tipe Data dan juga Key pada Query tersebut, supaya bisa di Create.

Buat Class baru, berinama class tersebut, misalnya "DBMahasiswa", pada class ini, kita akan mengextends suatu class, bernama SQLiteOpenHelper, dan juga mengimplementasi method-method didalamnya, pertama, buatlah source codenya seperti berikut ini:

package android.cianjur.developer.net.sqliteexample;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBMahasiswa extends SQLiteOpenHelper{

    private static final String NamaDatabse = "unpi.db";
    private static final int VersiDatabase = 1;

    public DBMahasiswa(Context context) {
        super(context, NamaDatabse, null, VersiDatabase);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {

    }
}

Penjelasan:

Coba kalian perhatikan, kita mengextends class SQLiteOpenHelper beserta fungsi-fungsinya, yaitu onCreate() dan onUpgrade(), kedua fungsi tersebut digunakan untuk Membuat Query dan juga untuk mengupgrade Struktur Tabel.

Pertama kita membuat 2 buah variable, yang digunakan untuk menentukan nama database dan versi databse, untuk versi awal, kita set 1, terlebih dahulu.

Setiap kalian mengupgrade atau mengubah Struktur Table walaupun hanya sedikit saja, misalnya hanya mengganti nama kolom atau menambah satu kolom saja, kalian perlu mengganti nomor versi ke nomor versi selanjutnya, misalnya dari 1 ke 2 dan seterusnya.

Lalu kita implementasikan kedua variabe tersebut kedalam konstruktor dari class DBMahasiswa.

3) Selanjutnya kita buat InnerClass, yang digunakan untuk mengatur artibut-atribut seperti Nama Tabel, nama-nama kolom dan Query yang akan digunakan, pada InnerClass tersebut kita akan mengimplementasi class, bernama BaseColumns.

package android.cianjur.developer.net.sqliteexample;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;

public class DBMahasiswa extends SQLiteOpenHelper{

    //InnerClass, untuk mengatur artibut seperti Nama Tabel, nama-nama kolom dan Query
    static abstract class MyColumns implements BaseColumns{
        //Menentukan Nama Table dan Kolom
        static final String NamaTabel = "Mahasiswa";
        static final String NIM = "NIM";
        static final String Nama = "Nama_Mahasiswa";
        static final String Jurusan = "Jurusan";
        static final String JenisKelamin = "Jenis_Kelamin";
        static final String TanggalLahir = "Tanggal_Lahir";
        static final String Alamat = "Alamat";
    }

    private static final String NamaDatabse = "unpi.db";
    private static final int VersiDatabase = 1;

    //Query yang digunakan untuk membuat Tabel
    private static final String SQL_CREATE_ENTRIES = "CREATE TABLE "+MyColumns.NamaTabel+
            "("+MyColumns.NIM+" TEXT PRIMARY KEY, "+MyColumns.Nama+" TEXT NOT NULL, "+MyColumns.Jurusan+
            " TEXT NOT NULL, "+MyColumns.JenisKelamin+" TEXT NOT NULL, "+MyColumns.TanggalLahir+
            " TEXT NOT NULL, "+MyColumns.Alamat+" TEXT NOT NULL)";

    //Query yang digunakan untuk mengupgrade Tabel
    private static final String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS "+MyColumns.NamaTabel;

    DBMahasiswa(Context context) {
        super(context, NamaDatabse, null, VersiDatabase);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL(SQL_DELETE_ENTRIES);
        onCreate(db);
    }
}

Untuk penamaan pada Kolom didalam Database, kita tidak boleh menggunakan Spasi, kalian dapat menggantikannya dengan _ (Underscore).
Penjelasan:

Pada Class tersebut, kita menambahkan class Abstract, yaitu class yang tidak mempunyai Implementasinya secara langsung, class ini digunakan untuk menyiapkan atribut atau kompenen yang diperlukan.

Lalu kita membuat 2 buah variable, untuk menyimpan Query pada Tabel, yang akan dipanggil pada method onCreate() dan onUpgrade(),  pada variable SQL_CREATE_ENTRIES, digunakan untuk membuat dan menyimpan Query untuk membuat Struktur Tablenya dan menentukan Tipe Data serta Key pada masing-masing kolom.

Pada kolom NIM, kita set Primary Key, karena ini merupakan nomor unik yang tidak bisa di duplikasi atau diduakan, karena masing-masing mahasiswa harus mempunyai nomor NIM yang berbeda.

Selanjutnya pada variable SQL_DELETE_ENTRIES digunakan untuk mengupgrade Tabel, jika terdapat perubahan pada Struktur tabel tersebut, program secara otomatis akan menghapus Tabel lama dan menggantikannya dengan yang baru.

4) Berikutnya, kita panggil Database tersebut pada MainActivity kita, untuk mengecek apakah Databsenya berhasil dibuat.

package android.cianjur.developer.net.sqliteexample;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        DBMahasiswa dbMahasiswa = new DBMahasiswa(getBaseContext());
        Toast.makeText(getApplication(), dbMahasiswa.getDatabaseName(), Toast.LENGTH_SHORT).show();
    }
}

5) Untuk mengecek apakah Database SQLitenya telah berhasil dibuat, kita dapat melakukan pengecekan dengan cara, jalankan project tersebut menggunakan Emulator, lalu buka Android Device Emulator, seperti berikut ini:

Android Device Monitor

Jangan lupa untuk mencentang Enable ADB Interation. Selanjutnya buka direktori data > data > (Nama Package pada Aplikasi Kita) > Database.

Projectnya Bisa Kalian Download di Github Saya.

Terimakasih atas kunjungannya, pada tutorial selanjutnya, kita akan membahas matei, Cara manbahkan data pada SQLite. Memoga tutorial yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.

Wassalamualaikum Warahmatullahi Wabarakatuh.