Membuat Aplikasi CRUD data kontak
Pada edisi saat ini akan di bahas tentang
CRUD (Create, Read, Update Delete) dengan studi kasus data kontak pada
database SQLite. Secara sederhana aplikasi yang akan di design dapat
melakukan penambahan data, perubahan data, mengambil atau membaca data
dan melakukan hapus data.
activity_login.xml
activity_user.xml
Database.java
LoginActivity.java
MainActivity.java
ManageUser.java
Hasil Run
Demikian Membuat Aplikasi CRUD data kontak di Android Studio.
Terima kasih
activity_login.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/layHeader"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:orientation="horizontal"
android:padding="20dp" >
<EditText
android:id="@+id/text_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:gravity="center"
android:hint="USERNAME"
android:textSize="20sp" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/text_pass"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text_username"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="21dp"
android:gravity="center"
android:hint="PASSWORD"
android:inputType="textPassword"
android:textSize="20sp" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/text_pass"
android:layout_below="@+id/text_pass"
android:layout_marginTop="26dp"
android:background="#ffff4444"
android:onClick="Batal"
android:text="BATAL"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn_login"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btn_cancel"
android:layout_alignBottom="@+id/btn_cancel"
android:layout_alignLeft="@+id/text_pass"
android:background="#00893d"
android:onClick="Login"
android:text="LOGIN"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/layHeader"
android:layout_width="fill_parent"
android:layout_height="136dp"
android:orientation="horizontal"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/img"
android:textStyle="bold"
android:textColor="@android:color/black"
android:layout_centerHorizontal="true"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
</RelativeLayout>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/layHeader"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:orientation="horizontal"
android:padding="20dp" >
<EditText
android:id="@+id/text_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:gravity="center"
android:hint="USERNAME"
android:textSize="20sp" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/text_pass"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/text_username"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="21dp"
android:gravity="center"
android:hint="PASSWORD"
android:inputType="textPassword"
android:textSize="20sp" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/text_pass"
android:layout_below="@+id/text_pass"
android:layout_marginTop="26dp"
android:background="#ffff4444"
android:onClick="Batal"
android:text="BATAL"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn_login"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/btn_cancel"
android:layout_alignBottom="@+id/btn_cancel"
android:layout_alignLeft="@+id/text_pass"
android:background="#00893d"
android:onClick="Login"
android:text="LOGIN"
android:textColor="@android:color/white"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/layHeader"
android:layout_width="fill_parent"
android:layout_height="136dp"
android:orientation="horizontal"
>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/img"
android:textStyle="bold"
android:textColor="@android:color/black"
android:layout_centerHorizontal="true"
android:text="@string/app_name"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
</RelativeLayout>
activity_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="aldo.com.ronialdo_161011400078.MainActivity" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:padding="5dp"
android:scrollingCache="false"
android:layout_above="@+id/button1" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/textView1"
android:background="#00893d"
android:onClick="Tambah"
android:text="TAMBAH"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="-" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/textView1"
android:background="@android:color/holo_blue_dark"
android:onClick="Reload"
android:text="RELOAD"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="aldo.com.ronialdo_161011400078.MainActivity" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:padding="5dp"
android:scrollingCache="false"
android:layout_above="@+id/button1" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/textView1"
android:background="#00893d"
android:onClick="Tambah"
android:text="TAMBAH"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="-" />
<Button
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/textView1"
android:background="@android:color/holo_blue_dark"
android:onClick="Reload"
android:text="RELOAD"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
activity_user.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<Button
android:id="@+id/btnSimpan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spinner1"
android:layout_alignLeft="@+id/spinner1"
android:layout_marginTop="14dp"
android:layout_toLeftOf="@+id/textView2"
android:background="#00893d"
android:onClick="Simpan"
android:text="SIMPAN"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<EditText
android:id="@+id/txtNama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_alignLeft="@+id/textView3"
android:layout_alignRight="@+id/textView3"
android:ems="10"
android:hint="Nama User">
<requestFocus />
</EditText>
<Spinner
android:id="@+id/spinner1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:entries="@array/tipeUser" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:text="Input Nama User"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView01"
android:layout_alignRight="@+id/txtNama"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Username" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtNama"
android:layout_alignLeft="@+id/txtUsername"
android:layout_marginTop="19dp"
android:text="Username"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView02"
android:layout_alignRight="@+id/txtUsername"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtUsername"
android:layout_alignLeft="@+id/txtPassword"
android:layout_marginTop="22dp"
android:text="Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView03"
android:layout_alignRight="@+id/textView1"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Email"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtPassword"
android:layout_alignParentLeft="true"
android:layout_marginTop="22dp"
android:text="Email"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtEmail"
android:layout_alignLeft="@+id/TextView03"
android:layout_alignRight="@+id/txtPassword"
android:text="Tipe User"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/btnSimpan"
android:layout_centerHorizontal="true"
android:text="TextView"
android:visibility="invisible" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/spinner1"
android:layout_alignBottom="@+id/textView2"
android:layout_toRightOf="@+id/textView2"
android:background="#ffff4444"
android:onClick="Kembali"
android:text="KEMBALI"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<Button
android:id="@+id/btnSimpan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spinner1"
android:layout_alignLeft="@+id/spinner1"
android:layout_marginTop="14dp"
android:layout_toLeftOf="@+id/textView2"
android:background="#00893d"
android:onClick="Simpan"
android:text="SIMPAN"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<EditText
android:id="@+id/txtNama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_alignLeft="@+id/textView3"
android:layout_alignRight="@+id/textView3"
android:ems="10"
android:hint="Nama User">
<requestFocus />
</EditText>
<Spinner
android:id="@+id/spinner1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:entries="@array/tipeUser" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:text="Input Nama User"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView01"
android:layout_alignRight="@+id/txtNama"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Username" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtNama"
android:layout_alignLeft="@+id/txtUsername"
android:layout_marginTop="19dp"
android:text="Username"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView02"
android:layout_alignRight="@+id/txtUsername"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Password"
android:inputType="textPassword" />
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtUsername"
android:layout_alignLeft="@+id/txtPassword"
android:layout_marginTop="22dp"
android:text="Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/txtEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/TextView03"
android:layout_alignRight="@+id/textView1"
android:layout_alignParentLeft="true"
android:ems="10"
android:hint="Email"
android:inputType="textEmailAddress" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtPassword"
android:layout_alignParentLeft="true"
android:layout_marginTop="22dp"
android:text="Email"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txtEmail"
android:layout_alignLeft="@+id/TextView03"
android:layout_alignRight="@+id/txtPassword"
android:text="Tipe User"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/btnSimpan"
android:layout_centerHorizontal="true"
android:text="TextView"
android:visibility="invisible" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/spinner1"
android:layout_alignBottom="@+id/textView2"
android:layout_toRightOf="@+id/textView2"
android:background="#ffff4444"
android:onClick="Kembali"
android:text="KEMBALI"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
</RelativeLayout>
list_user.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="0dp" >
<TextView
android:id="@+id/tvNamaUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/tvNomor"
android:gravity="left|center_vertical"
android:text="Nama"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvNamaUser"
android:layout_marginTop="2dip"
android:layout_toRightOf="@+id/tvNomor"
android:text="email"
android:textColor="#000000"
android:textSize="15dp"
android:textStyle="italic" />
<TextView
android:id="@+id/tvTipeUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvEmail"
android:layout_marginBottom="5dp"
android:layout_marginTop="1dip"
android:layout_toRightOf="@+id/tvNomor"
android:text="mmm"
android:textColor="@android:color/holo_blue_dark"
android:gravity="right"
android:textSize="15dp"
android:paddingRight="10dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvNomor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="3dp"
android:layout_marginRight="2dp"
android:gravity="left"
android:text="0"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:padding="0dp" >
<TextView
android:id="@+id/tvNamaUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginLeft="3dp"
android:layout_toRightOf="@+id/tvNomor"
android:gravity="left|center_vertical"
android:text="Nama"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvNamaUser"
android:layout_marginTop="2dip"
android:layout_toRightOf="@+id/tvNomor"
android:text="email"
android:textColor="#000000"
android:textSize="15dp"
android:textStyle="italic" />
<TextView
android:id="@+id/tvTipeUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tvEmail"
android:layout_marginBottom="5dp"
android:layout_marginTop="1dip"
android:layout_toRightOf="@+id/tvNomor"
android:text="mmm"
android:textColor="@android:color/holo_blue_dark"
android:gravity="right"
android:textSize="15dp"
android:paddingRight="10dp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvNomor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="3dp"
android:layout_marginRight="2dp"
android:gravity="left"
android:text="0"
android:textColor="#000000"
android:textSize="20dp"
android:textStyle="bold" />
</RelativeLayout>
Database.java
package aldo.com.ronialdo_161011400078;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
// Versi database
private static final int DATABASE_VERSION = 1;
// Nama Database
private static final String DATABASE_NAME = "db_user";
// Nama Tabel
private static final String TABLE_USER = "tb_user";
// Colom pada tabel
public static final String KEY_ID_USER = "id";
public static final String KEY_NAMA = "nama";
public static final String KEY_USERNAME = "username";
public static final String KEY_PASSWORD = "password";
public static final String KEY_EMAIL = "email";
public static final String KEY_TIPE_USER = "tipe_user";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Membuat Tabel
@Override
public void onCreate(SQLiteDatabase db) {
dataAwal(db);
}
private void dataAwal(SQLiteDatabase db){
String CREATE_modelUserS_TABLE = "CREATE TABLE " + TABLE_USER + "("
+ KEY_ID_USER + " INTEGER PRIMARY KEY," + KEY_NAMA + " TEXT," + KEY_USERNAME + " TEXT," +
KEY_PASSWORD + " TEXT," + KEY_EMAIL + " TEXT," + KEY_TIPE_USER + " TEXT)";
db.execSQL(CREATE_modelUserS_TABLE);
String masterAdmin = "INSERT INTO " + TABLE_USER +"("+KEY_NAMA+","+KEY_USERNAME+","+KEY_PASSWORD+","+KEY_EMAIL+","+KEY_TIPE_USER+")" +
" VALUES ('Master Admin','admin','admin','admin@theheran.com','SUPER ADMIN')";
db.execSQL(masterAdmin);
}
// Proses Reset data
public void prosesResetData() {
SQLiteDatabase db = this.getWritableDatabase();
String hapusTabel= "DROP TABLE " + TABLE_USER;
db.execSQL(hapusTabel);
dataAwal(db);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
// Create tables again
onCreate(db);
}
// Tambah Data user Baru
public void prosesTambahUser(ModelUser modelUser) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAMA, modelUser.getNama());
values.put(KEY_USERNAME, modelUser.getUsername());
values.put(KEY_PASSWORD, modelUser.getPassword());
values.put(KEY_EMAIL, modelUser.getEmail());
values.put(KEY_TIPE_USER, modelUser.getTipeUser());
// Input Data
db.insert(TABLE_USER, null, values);
db.close();
// Tutup koneksi database
}
// Update Data
public int prosesUpdate(ModelUser modelUser) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAMA, modelUser.getNama());
values.put(KEY_USERNAME, modelUser.getUsername());
values.put(KEY_PASSWORD, modelUser.getPassword());
values.put(KEY_EMAIL, modelUser.getEmail());
values.put(KEY_TIPE_USER, modelUser.getTipeUser());
//proses update tabel
return db.update(TABLE_USER, values, KEY_ID_USER + " = ?",new String[] { String.valueOf(modelUser.getIdUser()) });
}
// Hapus Data
public int prosesHapus(String idUser) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_USER, KEY_ID_USER + " = ?",new String[] {idUser });
}
public ModelUser getUserById(String id){
ModelUser mdUser=null;
String selectQuery = "SELECT * FROM " + TABLE_USER+" where "+KEY_ID_USER+"="+id;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(KEY_TIPE_USER)));
} while (cursor.moveToNext());
}
// Tutup Koneksi
cursor.close();
db.close();
return mdUser;
}
public ModelUser getLogin(String username,String Password){
ModelUser mdUser=null;
String selectQuery = "SELECT * FROM " + TABLE_USER+" where "+KEY_USERNAME+"='"+username+"' and "+KEY_PASSWORD+"='"+Password+"'";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(KEY_TIPE_USER)));
mdUser.setIsLogin(true);
} while (cursor.moveToNext());
}else{
mdUser = new ModelUser();
mdUser.setIsLogin(false);
}
// Tutup Koneksi
cursor.close();
db.close();
return mdUser;
}
// Method ambil semua data user
public Cursor prosesAmbilSemuaDatauser(){
String selectQuery = "SELECT * FROM " + TABLE_USER;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// returning cursor
return cursor;
}
}
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
// Versi database
private static final int DATABASE_VERSION = 1;
// Nama Database
private static final String DATABASE_NAME = "db_user";
// Nama Tabel
private static final String TABLE_USER = "tb_user";
// Colom pada tabel
public static final String KEY_ID_USER = "id";
public static final String KEY_NAMA = "nama";
public static final String KEY_USERNAME = "username";
public static final String KEY_PASSWORD = "password";
public static final String KEY_EMAIL = "email";
public static final String KEY_TIPE_USER = "tipe_user";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Membuat Tabel
@Override
public void onCreate(SQLiteDatabase db) {
dataAwal(db);
}
private void dataAwal(SQLiteDatabase db){
String CREATE_modelUserS_TABLE = "CREATE TABLE " + TABLE_USER + "("
+ KEY_ID_USER + " INTEGER PRIMARY KEY," + KEY_NAMA + " TEXT," + KEY_USERNAME + " TEXT," +
KEY_PASSWORD + " TEXT," + KEY_EMAIL + " TEXT," + KEY_TIPE_USER + " TEXT)";
db.execSQL(CREATE_modelUserS_TABLE);
String masterAdmin = "INSERT INTO " + TABLE_USER +"("+KEY_NAMA+","+KEY_USERNAME+","+KEY_PASSWORD+","+KEY_EMAIL+","+KEY_TIPE_USER+")" +
" VALUES ('Master Admin','admin','admin','admin@theheran.com','SUPER ADMIN')";
db.execSQL(masterAdmin);
}
// Proses Reset data
public void prosesResetData() {
SQLiteDatabase db = this.getWritableDatabase();
String hapusTabel= "DROP TABLE " + TABLE_USER;
db.execSQL(hapusTabel);
dataAwal(db);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_USER);
// Create tables again
onCreate(db);
}
// Tambah Data user Baru
public void prosesTambahUser(ModelUser modelUser) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAMA, modelUser.getNama());
values.put(KEY_USERNAME, modelUser.getUsername());
values.put(KEY_PASSWORD, modelUser.getPassword());
values.put(KEY_EMAIL, modelUser.getEmail());
values.put(KEY_TIPE_USER, modelUser.getTipeUser());
// Input Data
db.insert(TABLE_USER, null, values);
db.close();
// Tutup koneksi database
}
// Update Data
public int prosesUpdate(ModelUser modelUser) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAMA, modelUser.getNama());
values.put(KEY_USERNAME, modelUser.getUsername());
values.put(KEY_PASSWORD, modelUser.getPassword());
values.put(KEY_EMAIL, modelUser.getEmail());
values.put(KEY_TIPE_USER, modelUser.getTipeUser());
//proses update tabel
return db.update(TABLE_USER, values, KEY_ID_USER + " = ?",new String[] { String.valueOf(modelUser.getIdUser()) });
}
// Hapus Data
public int prosesHapus(String idUser) {
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(TABLE_USER, KEY_ID_USER + " = ?",new String[] {idUser });
}
public ModelUser getUserById(String id){
ModelUser mdUser=null;
String selectQuery = "SELECT * FROM " + TABLE_USER+" where "+KEY_ID_USER+"="+id;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(KEY_TIPE_USER)));
} while (cursor.moveToNext());
}
// Tutup Koneksi
cursor.close();
db.close();
return mdUser;
}
public ModelUser getLogin(String username,String Password){
ModelUser mdUser=null;
String selectQuery = "SELECT * FROM " + TABLE_USER+" where "+KEY_USERNAME+"='"+username+"' and "+KEY_PASSWORD+"='"+Password+"'";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(KEY_TIPE_USER)));
mdUser.setIsLogin(true);
} while (cursor.moveToNext());
}else{
mdUser = new ModelUser();
mdUser.setIsLogin(false);
}
// Tutup Koneksi
cursor.close();
db.close();
return mdUser;
}
// Method ambil semua data user
public Cursor prosesAmbilSemuaDatauser(){
String selectQuery = "SELECT * FROM " + TABLE_USER;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// returning cursor
return cursor;
}
}
ListUser.java
package aldo.com.ronialdo_161011400078;
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.crudsqlite.R;
public class ListUserAdapter extends BaseAdapter{
private Activity context;
private LayoutInflater inflater;
private List <ModelUser > NasItem;
public ListUserAdapter(Activity activity, List <ModelUser > NasItem) {
ListUserAdapter.this.context = activity;
ListUserAdapter.this.NasItem = NasItem;
}
@Override
public int getCount() {
return NasItem.size();
}
@Override
public Object getItem(int location) {
return NasItem.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View view, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) view = inflater.inflate(R.layout.list_row_user, null);
View rowView= inflater.inflate(R.layout.list_row_user, null, true);
TextView tvNomor = (TextView) rowView.findViewById(R.id.tvNomor);
TextView tvNamaUser = (TextView) rowView.findViewById(R.id.tvNamaUser);
TextView tvEmail = (TextView) rowView.findViewById(R.id.tvEmail);
TextView tvTipeUser = (TextView) rowView.findViewById(R.id.tvTipeUser);
ModelUser m = NasItem.get(position);
tvNomor.setText(m.getNo());
tvNamaUser.setText(m.getNama());
tvEmail.setText(m.getEmail());
tvTipeUser.setText(m.getTipeUser());
return rowView;
}
}
import java.util.List;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.example.crudsqlite.R;
public class ListUserAdapter extends BaseAdapter{
private Activity context;
private LayoutInflater inflater;
private List <ModelUser > NasItem;
public ListUserAdapter(Activity activity, List <ModelUser > NasItem) {
ListUserAdapter.this.context = activity;
ListUserAdapter.this.NasItem = NasItem;
}
@Override
public int getCount() {
return NasItem.size();
}
@Override
public Object getItem(int location) {
return NasItem.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View view, ViewGroup parent) {
if (inflater == null)
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (view == null) view = inflater.inflate(R.layout.list_row_user, null);
View rowView= inflater.inflate(R.layout.list_row_user, null, true);
TextView tvNomor = (TextView) rowView.findViewById(R.id.tvNomor);
TextView tvNamaUser = (TextView) rowView.findViewById(R.id.tvNamaUser);
TextView tvEmail = (TextView) rowView.findViewById(R.id.tvEmail);
TextView tvTipeUser = (TextView) rowView.findViewById(R.id.tvTipeUser);
ModelUser m = NasItem.get(position);
tvNomor.setText(m.getNo());
tvNamaUser.setText(m.getNama());
tvEmail.setText(m.getEmail());
tvTipeUser.setText(m.getTipeUser());
return rowView;
}
}
LoginActivity.java
package aldo.com.ronialdo_161011400078;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class LoginActivity extends Activity {
EditText username,password;
private long lastPressedTime;
private static final int PERIOD = 2000;
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
if (event.getDownTime() - lastPressedTime < PERIOD) { finish(); }else { Toast.makeText(getApplicationContext(), "Tekan 2 kali untuk keluar",Toast.LENGTH_SHORT).show(); lastPressedTime = event.getEventTime(); } return true; } } return false; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
username = (EditText) findViewById(R.id.text_username);
password = (EditText) findViewById(R.id.text_pass);
username.setText("admin");
password.setText("admin");
}
public void Login (View v){
if(username.getText().toString().isEmpty()){
username.setError("Kosong");
}else if(password.getText().toString().isEmpty()){
password.setError("Kosong");
}else{
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
ModelUser mdUser = db.getLogin(username.getText().toString(), password.getText().toString());
if(mdUser.getIsLogin()){
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}else{
Toast.makeText(LoginActivity.this, "Periksa Username atau Password",Toast.LENGTH_LONG).show();
}
}
}
public void Batal (View v){
finish();
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class LoginActivity extends Activity {
EditText username,password;
private long lastPressedTime;
private static final int PERIOD = 2000;
@Override
public void onBackPressed() {
super.onBackPressed();
this.finish();
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
if (event.getDownTime() - lastPressedTime < PERIOD) { finish(); }else { Toast.makeText(getApplicationContext(), "Tekan 2 kali untuk keluar",Toast.LENGTH_SHORT).show(); lastPressedTime = event.getEventTime(); } return true; } } return false; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
username = (EditText) findViewById(R.id.text_username);
password = (EditText) findViewById(R.id.text_pass);
username.setText("admin");
password.setText("admin");
}
public void Login (View v){
if(username.getText().toString().isEmpty()){
username.setError("Kosong");
}else if(password.getText().toString().isEmpty()){
password.setError("Kosong");
}else{
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
ModelUser mdUser = db.getLogin(username.getText().toString(), password.getText().toString());
if(mdUser.getIsLogin()){
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}else{
Toast.makeText(LoginActivity.this, "Periksa Username atau Password",Toast.LENGTH_LONG).show();
}
}
}
public void Batal (View v){
finish();
}
}
MainActivity.java
package aldo.com.ronialdo_161011400078;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class MainActivity extends Activity {
private List <ModelUser > newsList = new ArrayList <ModelUser >();
private ListUserAdapter adapter;
ListUserAdapter custum = new ListUserAdapter(null, newsList);
ListView listView;
public String[] idUserArray;
private long lastPressedTime;
private static final int PERIOD = 2000;
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
if (event.getDownTime() - lastPressedTime < PERIOD) {
finish();
}else {
Toast.makeText(getApplicationContext(), "Tekan 2 kali untuk keluar",Toast.LENGTH_SHORT).show();
lastPressedTime = event.getEventTime();
}
return true;
}
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView)findViewById(R.id.listView);
adapter = new ListUserAdapter(MainActivity.this, newsList);
listView.setAdapter(adapter);
reloadData();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > parent, View view,final int position, long id) {
if(idUserArray[position].equals("1")){
PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.popup_super_admin, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle().equals("Edit Data")){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Edit");
i.putExtra("id_user",idUserArray[position]);
startActivity(i);
finish();
}
return true;
}});popup.show();
}else{
PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle().equals("Edit Data")){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Edit");
i.putExtra("id_user",idUserArray[position]);
startActivity(i);
finish();
}else{
Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("Hapus Data");
alertDialog.setMessage("Kamu Yakin Mau Hapus Data ini?");
alertDialog.setPositiveButton("YAKIN BANGET",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
int status = db.prosesHapus(idUserArray[position]);
if(status >0){
Toast.makeText(MainActivity.this, "Data Berhasil Dihapus ",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "Data Gagal Dihapus ",Toast.LENGTH_LONG).show();
}
newsList.clear();
reloadData();
}
});
alertDialog.setNegativeButton("ENGGAK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alertDialog.show();
}
return true;
}});popup.show();
}
}
});
}
public View Tambah(View v){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Tambah");
startActivity(i);
finish();
return v;
}
public View Reload(View v){
reloadData();
return v;
}
private void reloadData(){
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
Cursor cursor=db.prosesAmbilSemuaDatauser();
if (cursor.moveToFirst()) {
idUserArray=new String[cursor.getCount()];
int i=0,No=1;
newsList.clear();
do {
ModelUser mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_TIPE_USER)));
mdUser.setNo(String.valueOf(No)+".");
idUserArray[i] = mdUser.getIdUser();
No++;
i++;
newsList.add(mdUser);
} while (cursor.moveToNext());
// Tutup Koneksi
cursor.close();
db.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_action, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_reset) {
Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("Reset Data");
alertDialog.setMessage("Kamu Yakin Mau Reset Data?");
alertDialog.setPositiveButton("YAKIN BANGET",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
db.prosesResetData();
reloadData();
}
});
alertDialog.setNegativeButton("ENGGAK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alertDialog.show();
return true;
}else{
Intent i = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(i);
finish();
}
return super.onOptionsItemSelected(item);
}
}
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class MainActivity extends Activity {
private List <ModelUser > newsList = new ArrayList <ModelUser >();
private ListUserAdapter adapter;
ListUserAdapter custum = new ListUserAdapter(null, newsList);
ListView listView;
public String[] idUserArray;
private long lastPressedTime;
private static final int PERIOD = 2000;
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
if (event.getDownTime() - lastPressedTime < PERIOD) {
finish();
}else {
Toast.makeText(getApplicationContext(), "Tekan 2 kali untuk keluar",Toast.LENGTH_SHORT).show();
lastPressedTime = event.getEventTime();
}
return true;
}
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView)findViewById(R.id.listView);
adapter = new ListUserAdapter(MainActivity.this, newsList);
listView.setAdapter(adapter);
reloadData();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > parent, View view,final int position, long id) {
if(idUserArray[position].equals("1")){
PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.popup_super_admin, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle().equals("Edit Data")){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Edit");
i.putExtra("id_user",idUserArray[position]);
startActivity(i);
finish();
}
return true;
}});popup.show();
}else{
PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle().equals("Edit Data")){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Edit");
i.putExtra("id_user",idUserArray[position]);
startActivity(i);
finish();
}else{
Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("Hapus Data");
alertDialog.setMessage("Kamu Yakin Mau Hapus Data ini?");
alertDialog.setPositiveButton("YAKIN BANGET",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
int status = db.prosesHapus(idUserArray[position]);
if(status >0){
Toast.makeText(MainActivity.this, "Data Berhasil Dihapus ",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "Data Gagal Dihapus ",Toast.LENGTH_LONG).show();
}
newsList.clear();
reloadData();
}
});
alertDialog.setNegativeButton("ENGGAK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alertDialog.show();
}
return true;
}});popup.show();
}
}
});
}
public View Tambah(View v){
Intent i = new Intent(getApplicationContext(),ManagUserActivity.class);
i.putExtra("mode", "Tambah");
startActivity(i);
finish();
return v;
}
public View Reload(View v){
reloadData();
return v;
}
private void reloadData(){
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
Cursor cursor=db.prosesAmbilSemuaDatauser();
if (cursor.moveToFirst()) {
idUserArray=new String[cursor.getCount()];
int i=0,No=1;
newsList.clear();
do {
ModelUser mdUser = new ModelUser();
mdUser.setIdUser(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_ID_USER)));
mdUser.setNama(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_NAMA)));
mdUser.setUsername(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_USERNAME)));
mdUser.setPassword(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_PASSWORD)));
mdUser.setEmail(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_EMAIL)));
mdUser.setTipeUser(cursor.getString(cursor.getColumnIndex(DatabaseHandler.KEY_TIPE_USER)));
mdUser.setNo(String.valueOf(No)+".");
idUserArray[i] = mdUser.getIdUser();
No++;
i++;
newsList.add(mdUser);
} while (cursor.moveToNext());
// Tutup Koneksi
cursor.close();
db.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_action, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_reset) {
Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("Reset Data");
alertDialog.setMessage("Kamu Yakin Mau Reset Data?");
alertDialog.setPositiveButton("YAKIN BANGET",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
db.prosesResetData();
reloadData();
}
});
alertDialog.setNegativeButton("ENGGAK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alertDialog.show();
return true;
}else{
Intent i = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(i);
finish();
}
return super.onOptionsItemSelected(item);
}
}
ManageUser.java
package aldo.com.ronialdo_161011400078;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class ManagUserActivity extends Activity {
EditText nama,username,password,email; //declarasi EditText
Spinner tipeUser;String mode="",idUser="0";
Button btnSimpan;
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
return true;
}
}
return false;
}
private static String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manag_user);
nama =(EditText) findViewById(R.id.txtNama);
username =(EditText) findViewById(R.id.txtUsername);
password =(EditText) findViewById(R.id.txtPassword);
email =(EditText) findViewById(R.id.txtEmail);
tipeUser =(Spinner) findViewById(R.id.spinner1);
btnSimpan=(Button) findViewById(R.id.btnSimpan);
//Cek mode hasil parameter yang dikirim oleh class MainActivity.java
Intent in = this.getIntent();
mode= in.getStringExtra("mode");
if(mode.equals("Edit")){
idUser = in.getStringExtra("id_user");
if(idUser.equals("1")){
username.setEnabled(false);
password.setEnabled(false);
}else{
username.setEnabled(true);
password.setEnabled(true);
}
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
ModelUser dataUser = db.getUserById(idUser);
nama.setText(dataUser.getNama());
username.setText(dataUser.getUsername());
password.setText(dataUser.getPassword());
email.setText(dataUser.getEmail());
tipeUser.setSelection(getSelection(dataUser.getTipeUser()));
}
}
// handle tombol Simpan. pada XML layout tombol sudah di beri properti onClick dan di beri nama "Simpan"
public View Simpan(View v){
if(nama.getText().toString().isEmpty()){
nama.setError("Form Kosong");
}else if(username.getText().toString().isEmpty()){
username.setError("Form Kosong");
}else if(password.getText().toString().isEmpty()){
password.setError("Form Kosong");
}else if(email.getText().toString().isEmpty()){
email.setError("Form Kosong");
}else if(!email.getText().toString().matches(EMAIL_REGEX)){
email.setError("Format Email Salah");
}else if(tipeUser.getSelectedItemPosition()==0){
Toast.makeText(ManagUserActivity.this, "Silahkan Tentukan Tipe User",Toast.LENGTH_LONG).show();
}else{
ModelUser mdUser = new ModelUser();
mdUser.setNama(nama.getText().toString());
mdUser.setUsername(username.getText().toString());
mdUser.setPassword(password.getText().toString());
mdUser.setEmail(email.getText().toString());
mdUser.setTipeUser(tipeUser.getSelectedItem().toString());
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
if(mode.equals("Edit")){
mdUser.setIdUser(idUser);
int status = db.prosesUpdate(mdUser);
if(status >0){
Toast.makeText(ManagUserActivity.this, "Data Berhasil Diubah ",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(ManagUserActivity.this, "Data Gagal Diubah ",Toast.LENGTH_LONG).show();
}
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}else{
db.prosesTambahUser(mdUser);
Toast.makeText(ManagUserActivity.this, "Proses Berhasil ",Toast.LENGTH_LONG).show();
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}
}
return v;
}
public View Kembali(View v){
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
return v;
}
private int getSelection(final String tipeUser){
int val= 0;
if(tipeUser.equals("SUPER ADMIN")){
val= 1;
}else if(tipeUser.equals("USER")){
val= 2;
}
return val;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.manag_user, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_logouts) {
Intent i = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(i);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.crudsqlite.R;
public class ManagUserActivity extends Activity {
EditText nama,username,password,email; //declarasi EditText
Spinner tipeUser;String mode="",idUser="0";
Button btnSimpan;
public boolean onKeyDown(int keyCode, KeyEvent event) {
//Handle the back button
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
switch (event.getAction()) {
case KeyEvent.ACTION_DOWN:
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
return true;
}
}
return false;
}
private static String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manag_user);
nama =(EditText) findViewById(R.id.txtNama);
username =(EditText) findViewById(R.id.txtUsername);
password =(EditText) findViewById(R.id.txtPassword);
email =(EditText) findViewById(R.id.txtEmail);
tipeUser =(Spinner) findViewById(R.id.spinner1);
btnSimpan=(Button) findViewById(R.id.btnSimpan);
//Cek mode hasil parameter yang dikirim oleh class MainActivity.java
Intent in = this.getIntent();
mode= in.getStringExtra("mode");
if(mode.equals("Edit")){
idUser = in.getStringExtra("id_user");
if(idUser.equals("1")){
username.setEnabled(false);
password.setEnabled(false);
}else{
username.setEnabled(true);
password.setEnabled(true);
}
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
ModelUser dataUser = db.getUserById(idUser);
nama.setText(dataUser.getNama());
username.setText(dataUser.getUsername());
password.setText(dataUser.getPassword());
email.setText(dataUser.getEmail());
tipeUser.setSelection(getSelection(dataUser.getTipeUser()));
}
}
// handle tombol Simpan. pada XML layout tombol sudah di beri properti onClick dan di beri nama "Simpan"
public View Simpan(View v){
if(nama.getText().toString().isEmpty()){
nama.setError("Form Kosong");
}else if(username.getText().toString().isEmpty()){
username.setError("Form Kosong");
}else if(password.getText().toString().isEmpty()){
password.setError("Form Kosong");
}else if(email.getText().toString().isEmpty()){
email.setError("Form Kosong");
}else if(!email.getText().toString().matches(EMAIL_REGEX)){
email.setError("Format Email Salah");
}else if(tipeUser.getSelectedItemPosition()==0){
Toast.makeText(ManagUserActivity.this, "Silahkan Tentukan Tipe User",Toast.LENGTH_LONG).show();
}else{
ModelUser mdUser = new ModelUser();
mdUser.setNama(nama.getText().toString());
mdUser.setUsername(username.getText().toString());
mdUser.setPassword(password.getText().toString());
mdUser.setEmail(email.getText().toString());
mdUser.setTipeUser(tipeUser.getSelectedItem().toString());
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
if(mode.equals("Edit")){
mdUser.setIdUser(idUser);
int status = db.prosesUpdate(mdUser);
if(status >0){
Toast.makeText(ManagUserActivity.this, "Data Berhasil Diubah ",Toast.LENGTH_LONG).show();
}else{
Toast.makeText(ManagUserActivity.this, "Data Gagal Diubah ",Toast.LENGTH_LONG).show();
}
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}else{
db.prosesTambahUser(mdUser);
Toast.makeText(ManagUserActivity.this, "Proses Berhasil ",Toast.LENGTH_LONG).show();
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}
}
return v;
}
public View Kembali(View v){
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
return v;
}
private int getSelection(final String tipeUser){
int val= 0;
if(tipeUser.equals("SUPER ADMIN")){
val= 1;
}else if(tipeUser.equals("USER")){
val= 2;
}
return val;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.manag_user, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_logouts) {
Intent i = new Intent(getApplicationContext(),LoginActivity.class);
startActivity(i);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
Hasil Run
Demikian Membuat Aplikasi CRUD data kontak di Android Studio.
Terima kasih
Komentar
Posting Komentar