Tutorial Membuat Aplikasi CRUD Android Menggunakan Java & SQLite (Part 1)
Hasil Pembelajaran Di kelas Mobile Programming BBPLK Bekasi Kemnaker
Repository on Github https://github.com/nurzainpradana/Aplikasi-Klinik-BBPLK-Bekasi ( Jangan Lupa Bintang 5 nya ya kakak )
Assalamu’alaikum Warahmatullahi Wabarokatuh, kali ini saya ingin sharing sharing tentang cara membuat Aplikasi CRUD Android menggunakan database SQLite.
CRUD Itu apaan sih ? mungkin temen-temen sering dengar kata ini, tapi masih bingung nih apaan sih CRUD itu.
CRUD merupakan singkatan dari Create Read Update Delete. sesuai namanya, maksud dari CRUD ini untuk Membuat, Melihat, Memperbarui dan Menghapus data yang ada dalam sebuah Database.
Dan kali ini kita akan belajar membuat CRUD menggunakan database SQLite. nah SQLite ? apaan lagi ituh mas ? wkwk. Jadi… SQLite merupakan salah satu dari database. SQLite ini biasanya sudah include dalam Android. Jadi bisa dibilang Database SQLite ini hanya untuk penggunaan lokal hanya terbatas pada Handphone itu sendiri.
Kali ini saya akan coba buat tutorial untuk CRUD sederhana untuk Klinik, sebenernya ini praktikum yang pernah saya pelajari di kelas Mobile Programming BBPLK Bekasi oleh instruktur Pak Dani Yusuf.
nah gambar diatas adalah rancangan database yang akan kita buat CRUD nya, dimana ada 3 tabel, ada Tabel Pasien, Tabel Dokter & Tabel Rekam Medis. diatas sudah ada properti untuk masing masing tabelnya beserta tipe datanya. tipe data integer itu untuk data yang berupa angka, tipe data text untuk data yang berupa teks (huruf & angka) dan ada juga yang tipe datanya date itu untuk tipe data yang berisi tanggal, date disini formatnya tahun/bulan/tanggal ( YYYY-MM-DD ) jadi jangan kebalik ya urutannya.
Buat Project Baru File -> New -> New Project , beri nama aplikasinya SQLite Klinik. pilih Empty Activity.
kemudian setelah itu,klik kanan pada package di folder java kemudian buat package baru dengan nama database, kemudian di dalamnya Buat Class baru dengan nama DatabaseHelper.java
Selanjutnya kita akan membuat database berserta tabel dan isi (record) nya seperti dibawah ini :
langsung aja dibuka file DatabaseHelper.java kemudian tambahkan baris kodingan dibawah ini :
public class DatabaseHelper extends SQLiteOpenHelper {
// Memberi nama database yang akan dibuat
private static final String DATABASE_NAME = "dbklinik.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// MEMBUAT TABEL & RECORD untuk PASIEN
db.execSQL("CREATE TABLE pasien(nopasien integer primary key, namapasien text, jk text, tgl_lahir date, agama text, telp text, alamat text)");
db.execSQL("INSERT INTO pasien (nopasien, namapasien, jk, tgl_lahir, agama, telp, alamat) VALUES (101, 'Bambang', 'L', 2002-07-12, 'Islam', '082125652279', 'Cibitung')");
db.execSQL("INSERT INTO pasien (nopasien, namapasien, jk, tgl_lahir, agama, telp, alamat) VALUES (102, 'Wati', 'P', 2002-07-10, 'Islam', '082125659020', 'Tambun')");
// MEMBUAT TABEL & RECORD untuk DOKTER
db.execSQL("CREATE TABLE dokter(nodokter integer primary key, namadokter text, jk text, tgl_lahir date, email text, telp text, alamat text, spesialis text, tarif integer)");
db.execSQL("INSERT INTO dokter (nodokter, namadokter, jk, tgl_lahir, email, telp, alamat, spesialis, tarif) VALUES (201, 'Agus', 'L', 2002-07-10, 'agus@gmail.com', '082125659020', 'Tambun', 'Umum', 500000)");
db.execSQL("INSERT INTO dokter (nodokter, namadokter, jk, tgl_lahir, email, telp, alamat, spesialis, tarif) VALUES (202, 'Jubaedah', 'P', 2002-07-12, 'Juabedah@gmail.com', '082125659020', 'Cikarang', 'Gigi', 600000)");
// MEMBUAT TABEL & RECORD untuk REKAMMEDIS
db.execSQL("CREATE TABLE rekammedis(norekam integer primary key, tgl_rekam date, nopasien integer, nodokter integer, keluhan text, diagnosa text, biaya integer)");
db.execSQL("INSERT INTO rekammedis (norekam, tgl_rekam, nopasien, nodokter, keluhan, diagnosa, biaya) VALUES (301, 2002-07-12, 102, 201, 'Batuk Pilek', 'Radang', 70000)");
db.execSQL("INSERT INTO rekammedis (norekam, tgl_rekam, nopasien, nodokter, keluhan, diagnosa, biaya) VALUES (302, 2002-07-15, 101, 201, 'sakit di bagian ulu hati', 'Maag', 70000)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE pasien");
db.execSQL("DROP TABLE dokter");
db.execSQL("DROP TABLE rekammedis");
}
}
file DatabaseHelper.java ini fungsinya apa sih ? jadiii … file ini gunanya untuk Membuat Database, Membuat Tabel & Membuat Isi ( Record ) dari tabelnya. kalau kita lihat di dalam perintah db.execSQL di dalamnya itu terdapat query untuk melakukan CRUD Database. nah disini kita buat sample datanya masing masing 2 record data.
lanjuuut … kita buat layout untuk login aplikasinya, biar keren gituh ada login loginnya wkwk walaupun untuk username & passwordnya masih hardcode.
supaya rapih, kita buat dulu package untuk UI / view nya beserta package untuk setiap activitynya, kita akan buat package ui kemudian didalamnya kita buat package baru untuk login, halaman utama, pasien, dokter, rekammedis. sehingga tampilannya seperti di bawah ini :
kemudian klik kanan pada MainAcitivity kemudian klik move class, kita pindahkan ke dalam package ui.login. setelah itu buka Layout activity_main.xml, kemudian tambahkan baris kodingan dibawah ini :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="15dp"
tools:context=".ui.login.MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:text="Aplikasi Klinik BBPLK Bekasi"
android:textSize="26sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/et_password"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:ems="10"
android:hint="Username"
android:inputType="textPersonName" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="password"
android:inputType="textPassword"
android:layout_above="@+id/bt_tambah_dokter"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:id="@+id/bt_tambah_dokter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:layout_marginBottom="61dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_below="@+id/textView"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_marginStart="12dp"
android:layout_marginLeft="12dp"
android:layout_marginTop="32dp"
android:layout_marginEnd="17dp"
app:srcCompat="@drawable/logo_bbplk_bekasi" />
</RelativeLayout>
ketika temen temen paste kodingan ini, pasti ada baris yang merah, yaitu baris app:srcCompat dalam tag <ImageView. Kenapa ??? karena kita belum memasukkan file gambarnya kedalam project android kita, nah sekarang temen temen bisa cari gambar / logo sesuai keinginan anda. jika nama file tersebut memiliki karakter strip (-) ataupun huruf kapital, maka temen temen harus merubah dulu nama filenya. setelah itu di copy filenya, lalu paste di project temen temen, di res -> drawable.
setelah itu temen temen bisa ganti app:srcCompat=”@drawable/[masukkan nama file yang temen temen download]”. setelah itu baris kodingannya sudah tidak error kembali.
setelah itu kita buat kodingan untuk MainActivity.java, tambahkan baris kodingan seperti dibawah ini:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.zainpradana.sqliteklinik.ui.halamanutama.HalamanUtama;
import com.zainpradana.sqliteklinik.R;
public class MainActivity extends AppCompatActivity {
Button btnLogin;
EditText etUser;
EditText etPass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etUser = (EditText) findViewById(R.id.et_username);
etPass = (EditText) findViewById(R.id.et_password);
btnLogin = (Button) findViewById(R.id.bt_tambah_dokter);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (etUser.getText().toString().equals("admin") && etPass.getText().toString().equals("admin")) {
Toast.makeText(getApplicationContext(), "Berhasil Login", Toast.LENGTH_LONG).show();
// Pindah Ke Halaman Utama Jika Berhasil Login
Intent goToHalamanUtama = new Intent(MainActivity.this, HalamanUtama.class);
startActivity(goToHalamanUtama);
} else {
Toast.makeText(getApplicationContext(), "Gagal Login", Toast.LENGTH_LONG).show();
}
}
});
}
}
kalau setelah di paste tulisannya menjadi warna merah, coba di tekan alt+enter di kodingannya kemudian import.
Kalau pada kodingan HalamanUtama.class nya merah bisa di komen terlebih dahulu barisnya dengan menambahkan // diawal baris, karena HalamanUtama.class itu belum kita buat, makannya berwarna merah, tapi nanti kalau kita sudah lanjut ke pembuatan HalamanUtama.class, // pada baris yang tadi bisa dihapus saja.
PENJELASAN KODINGAN
jadi disini alurnya ketika aplikasi di run / dibuka, akan tampil form untuk login yang berisi username & password, disini masih hardcode ya untuk passwordnya, maksudnya username dan passwordnya masih ditulis manual di kodingannya, username : admin, password : admin. kalau username & password yang diinput benar, maka akan berpindah ke HalamanUtama.class.
Coba kita running Aplikasinya, untuk mencoba loginnya.
seperti ini tampilan loginnya.
Cukup sekian dulu temen temen untuk tutorialnya, kita lanjut di artikel selanjutnya.
Kalau temen temen ada pertanyaan bisa tanya aja ke :
Email : pradananurzain@gmail.com
LinkedIn : https://www.linkedin.com/in/nur-zain-pradana-7463a4183/
Terimakasiiih temen temen :D