Menyimpan Data di SharedPreferences

Android menyediakan tiga cara untuk menyimpan data di device. Jika hanya untuk menyimpan sedikit data (beberapa variabel), gunakan shared preferences seperti pada posting ini.  Jika data cukup kompleks dan sering memerlukan pencarian (akses random), gunakan database. Jika ukuran datanya besar,  tidak perlu pencarian, dapat dishare di SD card untuk dibaca komputer, atau memerlukan format yang yang sangat spesifik, gunakan file.

SharedPreferences (SP) adalah mekanisme untuk menyimpan pasangan key-value untuk tipe data primitif (integer, double, string, booelan). SP cocok untuk penggunaan data kecil seperti menyimpan setting aplikasi dan informasi mengenai user interface. Data dalam shared preferences disimpan dalam device android dalam bentuk XML.

Ada tiga mode untuk shared preferences (SP)

MODE_PRIVATE:  hanya aplikasi yang membuat SP yang dapat mengakses data
MODE_WORLD_READABLE: aplikasi lain boleh membaca
MODE_WORLD_WRITEABLE: aplikasi lain boleh membaca sekaligus menulis.

Objek SharedPreference untuk activity diperoleh melalui method getPreferences(). Kode berikut memperlihatkan cara penggunaan SP, tambahkan dibagian create. Jangan lupa memanggil commit!



protected void onCreate(Bundle savedInstanceState) {
    //... code create ....
    
    SharedPreferences sp = getSharedPreferences("edu.upi.yudiwbs.dataku",MODE_PRIVATE);
    SharedPreferences.Editor ed = sp.edit();

    //tulis
    ed.putString("nama", "Budi Martami");
    ed.putInt("umur", 20);
    ed.commit();
    
    //baca
    String nama = sp.getString("nama","");
    int umur = sp.getInt("umur", 0);

    AlertDialog ad = new AlertDialog.Builder(this).create();
    ad.setMessage("nama:"+nama+" umur"+umur);
    ad.show();
}

Jalankan maka akan ditampilkan data yang disimpan.  Sekarang coba komentari bagian tulis

/*
ed.putString("nama", "Budi Martami");
ed.putInt("umur", 20);
ed.commit();
*/

Jalankan maka data akan tetap muncul, artinya data tersimpan secara permanen walaupun sudah keluar dari app.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.