Pada kesempatan kali ini kita akan membuat aplikasi mobile android yang terkoneksi ke database SQLite. Aplikasi yang kita bangun hanya dapat digunakan untuk menyimpan data (insert) dan menampilkan data (select). Lebih jelasnya silahkan ikuti langkah-langkah pembuatan program berikut ini.
1. Buat Projek Android Studio Baru, pilih Empty Activity namun jika anda menggunakan android studio terbaru tahun 2022 maka pilih Empty View Activity
2. Beri nama projek dengan “MyLibrary“. Piliha Bahasa Java
3. Selanjutnya buat sebuah Class baru baru bernama DatabaseHelper
. Caranya klik kana pada package kemudian pilih New, pilih Java Class seperti ditunjukan pada Gambar berikut.
4. Isi file DatabaseHelper
dengan menambahkan extend SQLiteOpenHelper
SQLiteOpenHelper
merupakan salah satu fitur yang digunakan di dalam aplikasi Android Studio untuk membuat tabel yang dapat menyimpan berbagai data seperti String dan Integer. Ketika meng-extend Class SQLiteOpenHelper
, kita harus meng-override method onCreate()
dan onUpgrade()
.
onCreate()
: Metode ini dipanggil saat database pertama kali dibuat. Biasanya, penggunaan metode ini untuk membuat tabel dan menginisialisasi data awal yang diperlukan dalam database. Metode ini memiliki satu parameter, yaitu objekSQLiteDatabase
yang dapat Anda gunakan untuk melakukan operasi seperti pembuatan tabel menggunakan pernyataan SQLCREATE TABLE
.onUpgrade()
: Metode ini dipanggil ketika skema database berubah, misalnya ketika ingin menambahkan kolom baru ke tabel yang sudah ada. Metode ini menerima tiga parameter:SQLiteDatabase
yang merupakan objek database,int oldVersion
yang merupakan versi database saat ini, danint newVersion
yang merupakan versi database yang akan diperbarui. Kita dapat menggunakan metodeonUpgrade()
untuk menjalankan perubahan skema yang diperlukan, seperti menambahkan kolom baru atau mengubah struktur tabel yang ada. Biasanya, Anda akan menggunakan pernyataan SQLALTER TABLE
untuk melakukan perubahan semacam itu.
5. Lengkapi kode pada file DatabaseHelper untuk membuat Database, membuat Tabel dan menyusun ArrayList.
import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import androidx.annotation.Nullable; import java.util.ArrayList; public class DatabaseHelper extends SQLiteOpenHelper { public static String DATABASE_NAME = "student_database"; public static final int DATABASE_VERSION = 1; public static final String TABLE_STUDENTS = "students"; public static final String KEY_ID = "id"; public static final String KEY_FIRSTNAME = "name"; private static final String CREATE_TABLE_STUDENTS = "CREATE TABLE "+TABLE_STUDENTS+ "(" +KEY_ID+ " INTEGER PRIMARY KEY AUTOINCREMENT, "+KEY_FIRSTNAME+ " TEXT);"; public DatabaseHelper(@Nullable Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); Log.d("table", CREATE_TABLE_STUDENTS); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL(CREATE_TABLE_STUDENTS); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL("DROP TABLE IF EXISTS '"+TABLE_STUDENTS+"'"); onCreate(sqLiteDatabase); } public void addStudentDetail(String student){ SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_FIRSTNAME, student); db.insert(TABLE_STUDENTS, null, values); } @SuppressLint("Range") public ArrayList<String> getAllStudentsList(){ ArrayList<String> studentsArrayList = new ArrayList<String>(); String name=""; String selectQuery = "SELECT * FROM "+ TABLE_STUDENTS; SQLiteDatabase db = this.getReadableDatabase(); Cursor c = db.rawQuery(selectQuery, null); if(c.moveToFirst()){ do { name = c.getString(c.getColumnIndex(KEY_FIRSTNAME)); studentsArrayList.add(name); } while (c.moveToNext()); Log.d("array", studentsArrayList.toString()); } return studentsArrayList; } }
Pada kode diatas, kita membuat database dengan nama student_database
dan tabel dengan nama students
. Tabel hanya memiliki 2 field yaitu id dan name.
6. Rancang tampilan antarmuka aplikasi pada file activity_main.xml sehingga tampilannya sebagai berikut.
7. Kode Lengkap dari tampilan antarmuka aplikasi adalah sebagai berikut.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Masukan Nama untuk Disimpan di SQLite" android:textColor="@color/black" android:textSize="16sp" android:layout_gravity="center_horizontal" android:layout_marginBottom="20dp" android:textStyle="bold"/> <EditText android:id="@+id/etname" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Masukan nama" android:inputType="textPersonName" android:layout_marginBottom="16dp"/> <Button android:id="@+id/btnStore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Simpan" android:layout_marginBottom="8dp"/> <Button android:id="@+id/btnGetName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Menampilkan Nama dari SQLite"/> <TextView android:id="@+id/tvName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textColor="@color/black" android:textStyle="bold" android:layout_marginTop="8sp"/> </LinearLayout>
8. Modifikasi kode pada file MainActivity.java
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private DatabaseHelper databaseHelper; private ArrayList<String> arrayList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); databaseHelper = new DatabaseHelper(this); TextView tvName = findViewById(R.id.tvName); Button btnSimpan = findViewById(R.id.btnStore); Button btnGetName = findViewById(R.id.btnGetName); EditText edtName = findViewById(R.id.etname); btnSimpan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { databaseHelper.addStudentDetail(edtName.getText().toString()); edtName.setText(""); Toast.makeText(MainActivity.this, "Sukses Tersimpan!", Toast.LENGTH_SHORT).show(); } }); btnGetName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { arrayList = databaseHelper.getAllStudentsList(); tvName.setText(""); for(int i=0; i<arrayList.size(); i++){ tvName.setText(tvName.getText().toString()+", "+arrayList.get(i)); } } }); } }
7. Apabila tidak ada error maka tampilan akhir dari aplikasi adalah sebagai berikut.
Untuk melihat lokasi database, silahkan buka “Device File Explorer”, pilih Data, Pilih nama Package aplikasi. Didalam package tedapat direktori databases, didalamnya terdapat database yang sudah kita buat