Labsheet 5 - Sqlite - Writecontent

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

LABSHEET 5

ANDROID SQLITE WRITE CONTENT

Pada materi sebelumnya telah dijabarkan bagaimana cara membuat Database beserta struktur
tabel, sbb:

Database
Project Name : My Database
Database Name : databaseKu.db
Database Table :
Tabel Aktivitas
Nama kolom Tipe data Key
id_act String PK
act_name String
act_date Datetime
act_des String

Tabel Status
Nama kolom Tipe data Key
id_stat INT autoincrement PK
id_act String FK
State_name String

Desain Interface Tabel Aktivitas

Di dalam project My Database buatlah Activity baru yang diberi nama AktivitasKu
Pada file layout activity_aktivitas_ku.xml, buat desain interface sbb dimana terdiri dari:
a. 4 EditText / PlainText
- Id Aktivitas @+id/id_act
- Nama Aktivitas @+id/act_name
- Date/tanggal aktivitas @+id/act_date
- Deskripsi aktivitas @+id/act_des
b. 1 TextView
c. 1 Button
- Save @+id/save
Sehingga Activity_aktivitas_ku.xml menjadi
<?xml version="1.0" encoding="utf-8"?>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="id.ac.uty.mydatabase.AktivitasKu">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/id_act"
android:hint="ID aktivitas"/>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/act_name"
android:layout_below="@+id/id_act"
android:hint="aktivitas name"/>

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/act_date"
android:layout_below="@+id/act_name"
android:hint="date"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/act_des"
android:layout_below="@+id/textView"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:lines="5"/>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save"
android:id="@+id/save"
android:layout_alignParentBottom="true"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Activity description"
android:id="@+id/textView"
android:layout_below="@+id/act_date"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>

Table Model
Buatlah Class baru yang diberi nama Aktivitas.java.
Di dalam kelas ini digunakan untuk deklarasi model tabel Aktivitas dan variabel public.

Sehingga file Aktivitas.java


package id.ac.uty.mydatabase;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

/**
* Created by User on 17/04/2017.
*/
public class Aktivitas {

//Define variabel
public String id_act;
public String name_act;
public String date_act;
public String des_act;

//deskripsi tabel dan kolom aktivitas


public static final String TABLE_ACT = "aktivitas";
public static final String KEY_ACT_ID = "id_act";
public static final String KEY_ACT_NAME = "act_name";
public static final String KEY_ACT_DATE = "act_date";
public static final String KEY_ACT_DES = "act_des";
Buatlah kelas baru dengan nama Status.java
Hampir sama dengan tabel Aktivitas, deklarasi Tabel model, atribut dan variabel public
Status sbb :

package id.ac.uty.mydatabase;

/**
* Created by User on 19/04/2017.
*/
public class Status {

public int id_stat;


public String id_act;
public String stat_name;

//deskripsi tabel dan kolom status_aktivitas


public static final String TABLE_STATUS = "status";
public static final String KEY_STAT_ID = "id_stat";
public static final String KEY_ACT_STAT = "id_act";
public static final String KEY_STAT_NAME = "stat_name";

DatabaseHelper.java
Pada materi sebelumnya kita mendeskripsikan tabel dan atribut/kolom Aktivitas pada
Class DatabaseHelper.java.
Karena kita mendeklarasikan Model Tabel pada masing Class yaitu Tabel Aktivitas
pada Class Aktivitas.java dan Tabel Status pada Class Status.java.
Maka Class DatabaseHelper.java perlu diubah, sbb :

package id.ac.uty.mydatabase;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper{

//deskripsi nama dan database version


private static final int DATABASE_version = 1;
private static final String DATABASE_NAME = "databaseKu.db";

//create tabel aktivitas


private static final String CREATE_TABLE_ACT = "CREATE TABLE " +
Aktivitas.TABLE_ACT + "("
+ Aktivitas.KEY_ACT_ID + " STRING PRIMARY KEY,"
+ Aktivitas.KEY_ACT_NAME + " STRING NOT NULL,"
+ Aktivitas.KEY_ACT_DATE + " DATETIME NOT NULL,"
+ Aktivitas.KEY_ACT_DES + " STRING NOT NULL )";

//create tabel status dan direlasikan dengan aktivitas


private static final String CREATE_TABLE_STATUS = "CREATE TABLE " +
Status.TABLE_STATUS + "("
+ Status.KEY_STAT_ID + " INTEGER PRIMARY KEY
AUTOINCREMENT,"
+ Status.KEY_ACT_STAT + " STRING NOT NULL,"
+ Status.KEY_STAT_NAME + " STRING NOT NULL,"
+ " FOREIGN KEY ("+Status.KEY_ACT_STAT+") REFERENCES " +
Aktivitas.TABLE_ACT + "(" + Aktivitas.KEY_ACT_ID + "));";

public DatabaseHandler(Context context) {


super(context, DATABASE_NAME, null, DATABASE_version);
SQLiteDatabase db = this.getWritableDatabase();
}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_ACT);
db.execSQL(CREATE_TABLE_STATUS);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
db.execSQL("drop table if exists "+ Aktivitas.TABLE_ACT);
db.execSQL("drop table if exists "+ Status.TABLE_STATUS);
onCreate(db);

}
}

AktivitasHandler.java
Buat Class baru dan beri nama AktivitasHandler.java.
Di dalam kelas ini digunakan untuk membuat function insert, read, update dan delete
konten/data dari tabel Aktivitas.
Di dalam materi kali ini, kita baru mendeklarasikan function insert sbb:

public int insert(Aktivitas aktivitas){


SQLiteDatabase sqLiteDatabase =
databaseHandler.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(aktivitas.KEY_ACT_ID, aktivitas.id_act);
values.put(aktivitas.KEY_ACT_NAME, aktivitas.name_act);
values.put(aktivitas.KEY_ACT_DATE, aktivitas.date_act);
values.put(aktivitas.KEY_ACT_DES, aktivitas.des_act);

long aktivitas_Id = sqLiteDatabase.insert(Aktivitas.TABLE_ACT,


null, values);
sqLiteDatabase.close();
return (int) aktivitas_Id;
}

Serta deklarasi function yang digunakan untuk fetch konten Tabel Aktivitas dari model
Aktivitas sbb:

package id.ac.uty.mydatabase;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* Created by User on 17/04/2017.
*/
public class AktivitasHandler {

private DatabaseHandler databaseHandler;

public AktivitasHandler(Context context) {


databaseHandler = new DatabaseHandler(context);
}

public int insert(Aktivitas aktivitas){

//Open Connection to write data


SQLiteDatabase sqLiteDatabase =
databaseHandler.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(Aktivitas.KEY_ACT_ID, aktivitas.id_act);
values.put(Aktivitas.KEY_ACT_NAME, aktivitas.name_act);
values.put(Aktivitas.KEY_ACT_DATE, aktivitas.date_act);
values.put(Aktivitas.KEY_ACT_DES, aktivitas.des_act);

//Insert Row
long aktivitas_Id = sqLiteDatabase.insert(Aktivitas.TABLE_ACT,
null, values);
sqLiteDatabase.close();//Close database Connestion
return (int) aktivitas_Id;
}

public Aktivitas getAktivitasById(int id) {


SQLiteDatabase sqLiteDatabase =
databaseHandler.getReadableDatabase();
String selectQuery = "SELECT * FROM " +
Aktivitas.TABLE_ACT + " WHERE " +
Aktivitas.KEY_ACT_ID + "=?";

Aktivitas aktivitas = new Aktivitas();

Cursor cursor = sqLiteDatabase.rawQuery(selectQuery, new String[] {


String.valueOf(id)});
if (cursor.moveToFirst()){
do {
aktivitas.id_act =
cursor.getString(cursor.getColumnIndex(Aktivitas.KEY_ACT_ID));
aktivitas.name_act =
cursor.getString(cursor.getColumnIndex(Aktivitas.KEY_ACT_NAME));
aktivitas.date_act =
cursor.getString(cursor.getColumnIndex(Aktivitas.KEY_ACT_DATE));
aktivitas.des_act =
cursor.getString(cursor.getColumnIndex(Aktivitas.KEY_ACT_DES));
} while (cursor.moveToNext());
}
cursor.close();
sqLiteDatabase.close();
return aktivitas;
}
}
Aktivitasku.java
package id.ac.uty.mydatabase;

import android.app.DatePickerDialog;
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.DatePicker;
import android.widget.EditText;
import android.widget.Toast;

import java.util.Calendar;

public class AktivitasKu extends AppCompatActivity {


DatePickerDialog datePickerDialog;
private int _Aktivitas_Id = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_aktivitas_ku);

final EditText dateEt = (EditText) findViewById(R.id.act_date);


final EditText idEt = (EditText) findViewById(R.id.id_act);
final EditText nameEt = (EditText) findViewById(R.id.act_name);
final EditText desEt = (EditText) findViewById(R.id.act_des);
Button saveBtn = (Button) findViewById(R.id.save);

dateEt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar c = Calendar.getInstance();
int tahun = c.get(Calendar.YEAR);
int bulan = c.get(Calendar.MONTH);
int hari = c.get(Calendar.DAY_OF_MONTH);

datePickerDialog = new DatePickerDialog(AktivitasKu.this,


new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int
monthOfYear, int dayOfMonth) {
dateEt.setText(dayOfMonth + "/" + (monthOfYear+1) +
"/" + year);
}
}, tahun, bulan, hari);
datePickerDialog.show();
}
});

_Aktivitas_Id = 0;
Intent intent = getIntent();
_Aktivitas_Id = intent.getIntExtra("aktivitas_Id", 0);
final AktivitasHandler act = new AktivitasHandler(this);
Aktivitas aktivitas = new Aktivitas();
aktivitas = act.getAktivitasById(_Aktivitas_Id);

saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Aktivitas aktivitas = new Aktivitas();

aktivitas.id_act = idEt.getText().toString();
aktivitas.name_act = nameEt.getText().toString();
aktivitas.date_act = dateEt.getText().toString();
aktivitas.des_act = desEt.getText().toString();

_Aktivitas_Id = act.insert(aktivitas);
Toast.makeText(AktivitasKu.this, "New Aktivity Inserted",
Toast.LENGTH_SHORT).show();

});
}
}

Terakhir setting manifest sehingga aplikasi menjalankan Avtivity AktivitasKu

You might also like