SQLite adalah database SQL opensource yang menyimpan data berupa file
teks pada sebuah device. SQLite telah
tersedia dari bawaan Sistem Operasi Android dan package utama nya adalah android.database.sqlite
yang memuat class-class untuk mengelola database tersebut.
Seperti biasa langkah pertama yang kita lakukan adalah :
1. Buat project baru dengan meng klik Start a new Android Studio project.2. Pilih Empty Activity dan Next.
3. Pada kolom Name isi dengan Register & Login SQLite atau boleh apa saja berdasarkan keinginan pembuat aplikasi. Pada bagian Minimum API level adalah sebagai batasan aplikasi yang akan dibuat nantinya akan berjalan dengan minimum level API (versi android) berapa. Dan setelah itu klik Finish.
4. Buat file Class baru pada current package aplikasi kita dan pada kolom name berinama DatabaseHelper.
5. Buat New Empty Activity pada current package aplikasi kita dan pada kolom Activity Name berinama RegisterActivity.
6. Tambahkan Vector Asset dengan cara klik kanan drawable – New – Vector Asset
Setelah terbuka jendela Asset Studio klik icon Clip Art. Tuliskan account_circle pada kolom search dan click OK.
Pada kolom name ubah nama nya menjadi ic_account_circle dan ubah Color menjadi FFFFFF. Click Next dan Finish.
Setelah selesai, tambahkan lagi image vector dengan nama lock open di kolom search seperti langkah di atas. Jika dilihat maka susunan file xml pada drawable menjadi seperti ini.
7. Code
DatabaseHelper.java
package
com.example.registerloginsqlite;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
android.database.sqlite.SQLiteOpenHelper;
public class
DatabaseHelper extends SQLiteOpenHelper {
public static final String
DATABASE_NAME="corporate.db";
public static final String
TABLE_NAME="users";
public static final String COL_1="id";
public static final String
COL_2="username";
public static final String
COL_3="password";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE users (id
INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT, password TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db,
int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS
" + TABLE_NAME);
onCreate(db);
}
public long addUser(String user, String
password){
SQLiteDatabase db =
this.getWritableDatabase();
ContentValues contentValues = new
ContentValues();
contentValues.put("username",
user);
contentValues.put("password",
password);
long res = db.insert(TABLE_NAME,null,
contentValues);
db.close();
return res;
}
public boolean checkUser(String username,
String password){
String[] columns = { COL_1 };
SQLiteDatabase db =
getReadableDatabase();
String selection = COL_2 +
"=?" + " and " + COL_3 + "=?";
String[] selectionArgs = { username,
password};
Cursor cursor = db.query(TABLE_NAME,
columns, selection, selectionArgs,null,null,null);
int count = cursor.getCount();
cursor.close();
db.close();
if(count>0)
return true;
else
return false;
}
}
8. Code
MainActivity.java
package
com.example.registerloginsqlite;
import
android.content.Intent;
import
android.support.v7.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;
public class
MainActivity extends AppCompatActivity {
//LOGIN ACTIVITY
EditText mTextUsername;
EditText mTextPassword;
Button mButtonLogin;
TextView mTextViewRegister;
DatabaseHelper db;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new DatabaseHelper(this);
mTextUsername =
(EditText)findViewById(R.id.edit_textusername);
mTextPassword=
(EditText)findViewById(R.id.edit_textpassword);
mButtonLogin = (Button)
findViewById(R.id.button_login);
mTextViewRegister = (TextView)
findViewById(R.id.text_viewregister);
mTextViewRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent registerIntent = new
Intent(MainActivity.this, RegisterActivity.class);
startActivity(registerIntent);
}
});
mButtonLogin.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
String user = mTextUsername.getText().toString().trim();
String pass =
mTextPassword.getText().toString().trim();
Boolean res =
db.checkUser(user, pass);
if(res == true){
Toast.makeText(MainActivity.this, "Successfully Logged in",
Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "Login Error",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
9. Code RegisterActivity.java
package
com.example.registerloginsqlite;
import
android.content.Intent;
import
android.support.v7.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;
public class
RegisterActivity extends AppCompatActivity {
//REGISTER ACTIVITY
DatabaseHelper db;
EditText mTextUsername;
EditText mTextPassword;
EditText mTextCnfPassword;
Button mButtonRegister;
TextView mTextViewLogin;
@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
db = new DatabaseHelper(this);
mTextUsername =
(EditText)findViewById(R.id.edit_textusername);
mTextPassword=
(EditText)findViewById(R.id.edit_textpassword);
mTextCnfPassword=
(EditText)findViewById(R.id.edit_textcnfpassword);
mButtonRegister = (Button) findViewById(R.id.button_register);
mTextViewLogin= (TextView)
findViewById(R.id.text_viewlogin);
mTextViewLogin.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
Intent LoginIntent = new
Intent(RegisterActivity.this, MainActivity.class);
startActivity(LoginIntent);
}
});
mButtonRegister.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
String user =
mTextUsername.getText().toString().trim();
String pass =
mTextPassword.getText().toString().trim();
String cnf_pass =
mTextCnfPassword.getText().toString().trim();
if(pass.equals(cnf_pass)){
long val = db.addUser(user,
pass);
if(val > 0){
Toast.makeText(RegisterActivity.this, "You have register",
Toast.LENGTH_SHORT).show();
Intent moveToLogin = new
Intent(RegisterActivity.this, MainActivity.class);
startActivity(moveToLogin);
}else{
Toast.makeText(RegisterActivity.this, "Registration Error",
Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(RegisterActivity.this, "Password is not match",
Toast.LENGTH_SHORT).show();
}
}
});
}
}
10. Selanjut nya pada bagian res – layout –
activity_main.xml , tuliskan code seperti ini
<?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:gravity="center_horizontal"
android:orientation="vertical"
android:background="#E71B62"
tools:context=".MainActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
app:srcCompat="@drawable/ic_account_circle"/>
<LinearLayout
android:id="@+id/layoutInput"
android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:orientation="vertical"
android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_textusername"
android:hint="Username"
android:singleLine="true"
android:maxLines="1"
android:textColorHint="@color/colorWhite"
android:textColor="@color/colorWhite"
android:drawableLeft="@drawable/ic_account_circle"
android:drawablePadding="10dp"
android:paddingBottom="20dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/edit_textpassword"
android:hint="Password"
android:inputType="textPassword"
android:singleLine="true"
android:maxLines="1"
android:textColorHint="@color/colorWhite"
android:textColor="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:paddingBottom="20dp"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_login"
android:text="Sign In"
android:layout_marginTop="30dp"
android:textAllCaps="false"
android:textStyle="bold"
android:textColor="@color/colorWhite"
android:background="#B90424"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/text_viewregister"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:background="@color/colorTrans"
android:textAllCaps="false"
android:textColor="@color/colorWhite"
android:layout_alignParentBottom="true"
android:text="Register Your
Account"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
11. Code
activity_register.xml.
<?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:background="#5C40EC"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".RegisterActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="30dp"
android:layout_marginBottom="50dp"
app:srcCompat="@drawable/ic_account_circle" />
<LinearLayout
android:id="@+id/layoutInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<EditText
android:id="@+id/edit_textusername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_account_circle"
android:drawablePadding="10dp"
android:hint="Username"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
<EditText
android:id="@+id/edit_textpassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:hint="New
Password"
android:inputType="textPassword"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
<EditText
android:id="@+id/edit_textcnfpassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:backgroundTint="@color/colorWhite"
android:drawableLeft="@drawable/ic_lock_open"
android:drawablePadding="10dp"
android:hint="Retype
Password"
android:inputType="textPassword"
android:maxLines="1"
android:paddingBottom="20dp"
android:singleLine="true"
android:textColor="@color/colorWhite"
android:textColorHint="@color/colorWhite" />
</LinearLayout>
<Button
android:id="@+id/button_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/layoutInput"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
android:layout_marginRight="20dp"
android:background="#B90424"
android:baselineAligned="false"
android:text="Register"
android:textAllCaps="false"
android:textColor="@color/colorWhite"
android:textStyle="bold"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="35dp"
android:text="Already
Registered"
android:textColor="#eeeeee" />
<TextView
android:id="@+id/text_viewlogin"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:paddingLeft="10dp"
android:text="LOGIN"
android:textColor="#9E0505"
android:textStyle="bold"
/>
</LinearLayout>
12. Pada file colors.xml tambahkan code berikut
<color
name="colorWhite">#FFF</color>
<color
name="colorTrans">#00ffffff</color>
13. Pada file style.xml tambahkan code berikut
<style
name="AppTheme.NoActionBar">
<item
name="windowActionBar">false</item>
<item
name="windowNoTitle">true</item>
</style>
14. Pada
file androidManifest.xml dibagian tag
application , ubah android:theme menjadi
android:theme="@style/AppTheme.NoActionBar"
No comments:
Post a Comment