Modul
7
Database Internal
Tujuan
Praktikan diharapkan dapat menggunakan Android Studio untuk membuat program sederhana pada
smartphone/ emulator. Di akhir praktikum ini, praktikan diharapkan:
Persiapan
1. Buku ajar (jika ada)/diktat kuliah/materi dari sumber lain
2. Alat tulis
3. Kertas Buram
4. Lembar jawaban
5. Lembar penilaian (disiapkan oleh asisten)
6. Komputer yang sudah di-install Android Studio & Emulator didalamnya
7. Android Smartphone (Jika tidak menginstall emulator)
Materi Pokok
Praktikum ini mengasumsikan bahwa praktikan telah mempelajari materi tentang Implementasi
Database Internal pada android. Praktikan juga diharapkan sudah dapat menerapkan penggunaan
menu bar, menu item, dan toolbar untuk mendukung implementasi tersebut. Agar praktikan dapat
mencapai tujuan dalam pertemuan praktikum ketujuh ini, maka praktikan harus aktif bertanya dan
mencoba mempraktekkan tugas-tugas yang ada dalam praktikum ketujuh ini.
56
Proses
Pertama bacalah dulu materi tentang Database Internal pada android selama kira-kira 10 menit.
Berikutnya berdiskusilah dengan teman Anda tentang Database Internal seperti SQLite, diskusi
dilakukan selama 20 menit. Kasus pertama sebagai latihan dikerjakan dalam waktu 30 menit.
Lanjutkan praktikum Anda dengan menyelesaikan soal pada bagian latihan dengan batasan waktu
selama 30 menit. Bagian terakhir adalah tugas, yaitu project yang harus dikerjakan di rumah dan wajib
dikumpulkan pada pertemuan berikutnya.
Aktivitas
1. Praktikan membaca buku ajar (jika ada)/ diktat kuliah/materi dari sumber lain tentang Database
Internal Android sebagai materi bab ketujuh. Temukan bagian penting dalam topik ini,
kemudian tulis sebagai ringkasan hasil belajar.
2. Praktikan berdiskusi tentang Database Internal Android serta menerapkannya dalam sebuah
aplikasi berbasis android.
Strings.xml
<resources>
<string name="app_name">Latihan Pertemuan 7</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="Username">Username</string>
<string name="Password">Password</string>
<string name="Signin">Sign In</string>
<string name="Login">Login</string>
<string name="logout">Logout</string>
<string name="title_activity_welcome">Welcome</string>
<string name="exit">Exit without logout</string>
</resources>
activity_main.xml
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
57
android:layout_below="@+id/textView2"
android:layout_alignRight="@+id/editText1"
android:ems="10"
android:inputType="textPassword"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="52dp"
android:text="@string/Username"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/textView1"
android:layout_alignParentRight="true"
android:layout_marginTop="27dp"
android:layout_marginRight="16dp"
android:ems="10">
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_alignRight="@+id/textView1"
android:text="@string/Password"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="22dp"
android:text="@string/Signin"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:onClick="login"
android:text="@string/Login" />
</RelativeLayout>
activity_welcome.xml
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="146dp"
android:onClick="logout"
android:text="@string/logout" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/button1"
android:layout_alignParentTop="true"
android:layout_marginTop="64dp"
android:text="@string/title_activity_welcome"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="43dp"
android:onClick="exit"
android:text="@string/exit" />
</RelativeLayout>
● Selanjutnya, buka class Welcome.java dan ubah kodenya menjadi seperti berikut
Welcome.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action
59
// bar if it is present.
getMenuInflater().inflate(R.menu.welcome, menu);
return true;
}
public void logout(View view){
SharedPreferences sharedpreferences = getSharedPreferences
(MainActivity.MyPREFERENCES, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.clear();
editor.commit();
moveTaskToBack(true);
Welcome.this.finish();
}
public void exit(View view){
moveTaskToBack(true);
Welcome.this.finish();
}
}
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
username = (EditText)findViewById(R.id.editText1);
password = (EditText)findViewById(R.id.editText2);
}
@Override
protected void onResume() {
sharedpreferences=getSharedPreferences(MyPREFERENCES,
Context.MODE_PRIVATE);
if (sharedpreferences.contains(name))
{
if(sharedpreferences.contains(pass)){
Intent i = new Intent(this, Welcome.class);
startActivity(i);
}
}
super.onResume();
}
public void login(View view){
SharedPreferences.Editor editor = sharedpreferences.edit();
String u = username.getText().toString();
60
String p = password.getText().toString();
editor.putString(name, u);
editor.putString(pass, p);
editor.commit();
Intent i = new Intent(this, Welcome.class);
startActivity(i);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.welcome, menu);
return true;
}
}
● Sekarang jalankan projek jika sudah disesuaikan semua kodenya dan hasilnya akan menjadi
seperti berikut
Login SQLite
activity_main.xml
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="21dp"
android:text="Username" />
<EditText
android:id="@+id/editText1"
61
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:layout_marginTop="10dp">
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_alignLeft="@+id/editText1"
android:layout_marginTop="21dp"
android:text="Password" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView2"
android:layout_alignLeft="@+id/textView2"
android:layout_marginTop="10dp"
android:inputType="textPassword" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText2"
android:layout_alignLeft="@+id/editText2"
android:layout_marginTop="31dp"
android:text="Login" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="Register" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_toRightOf="@+id/button2"
android:text="Keluar" />
</RelativeLayout>
activity_admin.xml
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Logout" />
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/ratingBar1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="16dp"
android:text="Selamat Data Pada Halaman Administrasi" />
</RelativeLayout>
● Buatlah folder resources baru didalam /res bernama menu, dan tambahkan 2 file .xml
didalamnya yaitu,
main.xml
</menu>
admin.xml
</menu>
● Lalu buat class baru bernama DBUserAdapter, dan isikan kodenya seperti berikut
63
DBUserAdapter.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
initialValues.put(KEY_USERNAME, username);
initialValues.put(KEY_PASSWORD, password);
return db.insert(DATABASE_TABLE, null, initialValues);
}
Admin.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin);
Button btnLogout=(Button)findViewById(R.id.button1);
btnLogout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent keli = new Intent(Admin.this,
MainActivity.class);
startActivity(keli);
finish();
}
});
}
@Override
65
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
});
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = txtUserName.getText().toString();
String password = txtPassword.getText().toString();
try {
if (username.length() > 0 && password.length() > 0) {
DBUserAdapter dbUser = new DBUserAdapter(MainActivity.this);
dbUser.open();
if (dbUser.Login(username, password)) {
Toast.makeText(MainActivity.this
, "Successfully Logged In"
, Toast.LENGTH_LONG).show();
Intent kela = new Intent(MainActivity.this
, Admin.class);
startActivity(kela);
} else {
Toast.makeText(MainActivity.this
, "Invalid Username/Password"
, Toast.LENGTH_LONG).show();
}
dbUser.close();
}
} catch (Exception e) {
Toast.makeText(MainActivity.this, e.getMessage()
, Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
Latihan
Kembangkan aplikasi yang sudah dibuat pada aktifitas, dengan menggabungkan fungsi dari
SharedPreferences dengan database SQLite!
Penutup
Tugas
Buatlah sebuah aplikasi CRUD (Tema bebas) dengan mengimplementasikan CRUD didalamnya
dengan syarat harus ada fitur login dan register!