0% found this document useful (0 votes)
41 views12 pages

Private Class Extends Public Void Super New This New: @override

1. The document describes how to create a Realm database application in Android. 2. It involves setting up the Realm library, creating a RealmObject class to store data, and using a RealmHelper class to perform CRUD operations on the data. 3. The data is displayed using a RecyclerView and Adapter that retrieves data from the Realm database.

Uploaded by

Islahudin Mly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views12 pages

Private Class Extends Public Void Super New This New: @override

1. The document describes how to create a Realm database application in Android. 2. It involves setting up the Realm library, creating a RealmObject class to store data, and using a RealmHelper class to perform CRUD operations on the data. 3. The data is displayed using a RecyclerView and Adapter that retrieves data from the Realm database.

Uploaded by

Islahudin Mly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

1. Create App dengan nama Realm. Pakai default.

2. tambah librari di modul app


compile 'io.realm:realm-android:0.87.2'

dan
file->project structure->app->dependeci +

-recyclerview
-cardview
-design

dari com.android.support

3. Buat Class dengan nama BaseApp di Extends kan


private class BaseApp extends Application{
@Override
public void onCreate() {
super.onCreate();
RealmConfiguration configuration = new
RealmConfiguration.
Builder( this).schemaVersion( 0)
.migration( new DataMigration ())
.build();

Realm. setDefaultConfiguration (configuration );
}
}

4.Buat Kelas DataMigration()didalam BaseApp


private class DataMigration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long
newVersion) {
RealmSchema schema = realm.getSchema();
if(oldVersion == 0){
schema.create( "siswa")
.addField( "id", int.class)
.addField( "nama", String. class)
.addField( "alamat", String. class);
oldVersion++;
}
}
5. Buat Kelas Model Siswa
package id.codinate.realm;

/**
* Created by Gilang Ramadhan on 14/01/2017.
*/

public class ModelSiswa {


int id;
String nama, alamat;

public ModelSis wa(int ids, String namas, String alamats){


this.id = ids;
this.nama = namas;
this.alamat = alamats;
}

public int g etId() {


return i d;
}

public void s etId(int id) {


this.id = id;
}

public String g etNama() {


return nama;
}

public void setNama(String nama) {


this.nama = nama;
}

public String g etAlamat() {


return alamat;
}

public void setAlamat(String alamat) {


this.alamat = alamat;
}
}
6. Buat kelas siswa di extend kan ke RealmObject

package id.codinate.realm;

import io.realm.Re almObject;

/**
* Created by Gilang Ramadhan on 14/01/2017.
*/

public class Siswa extends RealmObject {


private int id;
private String nama, alamat;

public int g etId() {


return i d;
}

public void s etId(int id) {


this.id = id;
}

public String g etNama() {


return nama;
}

public void setNama(String nama) {


this.nama = nama;
}

public String g etAlamat() {


return alamat;
}

public void setAlamat(String alamat) {


this.alamat = alamat;
}
}
7. Buat kelas untuk Helper(Pembantu Create Upadate Delete Read)
package id.codinate.realm;

ndroid.con tent.Context;
import a
import a ndroid.uti l.Log;
import a ndroid.wid get.Toast;

import java.util.A rrayList;

o.realm.Re alm;
import i
import i o.realm.Re almResults;
import i o.realm.So rt;

/**
* Created by Gilang Ramadhan on 14/01/2017.
*/

public class RealmHelper {


private static final String TAG = "RealmHelper";

private Realm realm;


private RealmResults<Siswa> realmResults;
public Context context;

public RealmHel per(Context ctx) {


realm = Realm. getInstance(ctx);
this.context = ctx;
}

//create
public void addSiswa(String nama, String alamat) {
Siswa siswa = new Siswa();
siswa.setId(( int) (System. currentTimeMillis() / 1000));
siswa.setNama(nama);
siswa.setAlamat(alamat);

realm.beginTransaction();
realm.copyToRealm(siswa);
realm.commitTransaction();
ShowLog( "data " + nama + " Berhasil disimpan");
}

public void deleteSiswa( int id) {


RealmResults<Siswa> dataResult = realm.where(Siswa. class)
.equalTo( "id", id).findAll();
realm.beginTransaction();
dataResult.remove( 0);
dataResult.removeLast();
dataResult.clear();
realm.commitTransaction();
ShowLog( "Data berhasil dihapus");
}

public void updateSiswa( int id, String nama, String alamat) {


realm.beginTransaction();
Siswa siswa = realm.where(Siswa. class)
.equalTo( "id", id).findFirst();
siswa.setNama(nama);
siswa.setAlamat(alamat);
realm.commitTransaction();
ShowLog( "Data berhasil di update");
}

public ArrayLis t<ModelSiswa> findAllSiswa() {


ArrayList<ModelSiswa> data = new ArrayList<>();
realmResults = realm.where(Siswa. class).findAll();
realmResults.sort("id", Sort.DESCENDING);
if (realmResults.size() > 0) {
ShowLog( "Size : " + realmResults.size());
for (int i = 0; i < realmResults.size(); i++) {
String nama, alamat;
int id = realmResults.get(i).getId();
nama = realmResults.get(i).getNama();
alamat = realmResults.get(i).getAlamat();
data.add( new ModelSiswa(id, nama, alamat));
}
} else {
ShowLog( "size = 0");
}
return data;
}

//import android.content.Context;
private void ShowLog( String s) {
Log. d(TAG, s);
Toast. makeText(context, s, Toast. LENGTH_LONG).show();
}
}
8.Buat Adapter untuk menampung Data

package id.codinate.realm;

import android.sup port.v7.widget.RecyclerView;


import android.vie w.LayoutInflater;
import android.vie w.View;
import android.vie w.ViewGroup;
import android.wid get.AdapterView;
import android.wid get.TextView;

import java.util.A rrayList;

/**
* Created by Gilang Ramadhan on 14/01/2017.
*/

public class AdapterSiswa extends


RecyclerVie w.Adapter<AdapterSiswa.ViewHolder> {
private final OnItemClickListener listener;
private ArrayList<ModelSiswa> siswas;

public interface OnItemClickListener {


void onClick(ModelSiswa item);
}

public AdapterS iswa(ArrayList<ModelSiswa> siswas,


OnItemClickListener listener) {
this.siswas = siswas;
this.listener = listener;
}

@Override
public AdapterS iswa.ViewHolder onCreateViewHolder(ViewGroup
parent, int viewType) {
View view = LayoutInflater
. from(parent.getContext())
.inflate(R.layout.list_item, null);
ViewHolder viewHolder = new
ViewHolder(view);
return viewHolder;
}

@Override
public void onBindViewHolder(AdapterSiswa.ViewHolder holder, int
position) {
holder.click( siswas.get(position), listener);

holder.id.setText(String. valueOf(siswas.get(pos ition).getId()));

holder.nama.setText(String. valueOf(siswas.get(position).getNama()))
;

holder.alamat.setText(String. valueOf(siswas.get(position).getAlamat
()));
}

@Override
public int g etItemCount() {
return s iswas.size();
}

public class V
iewHolder extends RecyclerView.ViewHolder {
TextView i d, nama, alamat;

public ViewHolder(View itemView) {


super(itemView);
id = (TextView) itemView.findViewById(R.id.txtid);
nama = (TextView) itemView.findViewById(R.id.txtnama);
alamat = (TextView)
itemView.findViewById(R.id.txtalamat);

ublic void click(final ModelSiswa model Siswa, final


p
OnItemClickListener listener) {
itemView.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
listener .onClick( modelSiswa );
}
});
}
}

9. Buat Layout nya list_item.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content">

< LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="wrap_content"
android:padding="10dp">
< TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtid"
android:visibility="gone"/>
< TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="nama"
android:id="@+id/txtnama"
android:textSize="18sp"/>
< TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtalamat"
android:text="ALALAMAT"
android:textSize="18sp"/>
</ LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>

10. Tambahkan Recicle View di activity main.xml


<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/RVSiswa">
</android.support.v7.widget.RecyclerView>

11. Tambahakan di MainActivity.java


package id.codinate.realm;
import android.sup port.v7.app.AppCompatActivity;
import android.os. Bundle;
import android.sup port.v7.widget.LinearLayoutManager;
import android.sup port.v7.widget.RecyclerView;

import java.util.A rrayList;

public class MainActivity extends AppCompatActivity {


private RecyclerView recyclerView;
private RealmHelper realmHelper;
private ArrayList<ModelSiswa> data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
data = new ArrayList<>();
realmHelper = new RealmHelper(MainActivity. this);

recyclerView = (RecyclerView) findViewById(R.id. RVSiswa);


recyclerView.setLayoutManager( new
LinearLayoutManager( this));

setRecycleView();
}

private void setRecycleView() {


try {
data = realmHelper.findAllSiswa();
} catch (Exception e) {
e.printStackTrace();
}
AdapterSiswa adapterSiswa = new AdapterSiswa( data,
new AdapterSiswa.OnItemClickListener() {
@Override
public void onClick(ModelSiswa item) {
// edit sama hapus ketika item diklik
}
});
recyclerView.setAdapter(adapterSiswa);
}

@Override
protected void onResume() {
super.onResume();
try {
data = realmHelper.findAllSiswa();
} catch (Exception e) {
e.printStackTrace();
}
setRecycleView();
}
}

12. Tambahkan 1 button


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/add"
android:text="add"/>

13. Buat Activity baru AddActivity


dilayoutnya

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<EditText
android:id="@+id/nama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Nama" />

<EditText
android:id="@+id/alamat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Alamat" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:orientation="horizontal">
< Button
android:id="@+id/simpan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Simpan" />
</LinearLayout>
</LinearLayout>

14. Masuk Ke main Activity


Tambahkan kode berikut

Button add = (Button) findViewById(R.id. add);


add.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(),
AddActivity. class);
startActivity(i);
}
});

15. Masuk di AddActivty


package id.codinate.realm;

import android.con tent.Intent;


import android.sup port.design.widget.FloatingActionButton;
import android.sup port.design.widget.Snackbar;
import android.sup port.v7.app.AppCompatActivity;
import android.os. Bundle;
import android.vie w.View;
import android.wid get.Button;
import android.wid get.EditText;

public class AddActivity extends AppCompatActivity {


private RealmHelper helper;
private EditText inAlamat, inNama;
private Button addButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_add);
helper = new RealmHelper(AddActivity. this);
inNama = (EditText) findViewById(R.id. nama);
inAlamat = (EditText) findViewById(R.id. alamat);
addButton = (Button) findViewById(R.id. simpan);

addButton.setOnClickListener( new View.OnClickListener() {


@Override
public void onClick(View view) {
String nama, alamat;
nama = inNama.getText().toString ();
alamat = inAlamat.getText().toString();
helper.addSiswa(nama, alamat);

startActivity( new
Intent(getApplicationContext(),MainActivity. class));
finish();
}
});
}
}

Kode lengkap

https://github.com/gilangadhan/Realm

You might also like