Panduan Belajar SharedPreferences di Android

SharedPreferences adalah salah satu cara untuk menyimpan data kecil secara permanen di aplikasi Android. Data yang disimpan dalam SharedPreferences akan tetap ada bahkan setelah aplikasi ditutup, sehingga sangat berguna untuk menyimpan informasi seperti preferensi pengguna, status login, atau konfigurasi aplikasi.

Apa Itu SharedPreferences?

SharedPreferences adalah API di Android yang memungkinkan Anda untuk menyimpan data dalam bentuk pasangan key-value. Data ini disimpan dalam file XML yang berada di direktori aplikasi.

Kelebihan SharedPreferences:

  • Mudah digunakan.
  • Cocok untuk menyimpan data kecil.
  • Data bersifat persistent (tetap ada meskipun aplikasi ditutup).

Kekurangan SharedPreferences:

  • Tidak cocok untuk menyimpan data besar atau kompleks.
  • Tidak mendukung operasi konkuren secara langsung.

Cara Kerja SharedPreferences

  1. Mengakses SharedPreferences: Anda dapat mengaksesnya dengan menggunakan metode getSharedPreferences() atau getPreferences().
  2. Menyimpan Data: Gunakan SharedPreferences.Editor untuk menyimpan data.
  3. Mengambil Data: Data dapat diambil dengan metode seperti getString(), getInt(), dll.
  4. Menghapus Data: Anda dapat menghapus data tertentu atau semua data menggunakan Editor.

Contoh Implementasi SharedPreferences

Langkah 1: Membuat dan Menyimpan Data

Berikut adalah contoh untuk menyimpan data sederhana seperti nama pengguna dan status login:

import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private static final String PREF_NAME = "MyAppPreferences";

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

        // Mendapatkan instance SharedPreferences
        SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);

        // Menyimpan data ke SharedPreferences
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString("username", "JohnDoe");
        editor.putBoolean("isLoggedIn", true);
        editor.apply();
    }
}

Langkah 2: Membaca Data

Untuk membaca data yang telah disimpan, gunakan metode get:

import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private static final String PREF_NAME = "MyAppPreferences";

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

        // Mendapatkan instance SharedPreferences
        SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);

        // Membaca data dari SharedPreferences
        String username = sharedPreferences.getString("username", "Guest");
        boolean isLoggedIn = sharedPreferences.getBoolean("isLoggedIn", false);

        // Menampilkan data
        TextView textView = findViewById(R.id.textView);
        textView.setText("Username: " + username + "\nLogged In: " + isLoggedIn);
    }
}

Langkah 3: Menghapus Data

Anda dapat menghapus data tertentu atau semua data:

import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private static final String PREF_NAME = "MyAppPreferences";

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

        // Mendapatkan instance SharedPreferences
        SharedPreferences sharedPreferences = getSharedPreferences(PREF_NAME, MODE_PRIVATE);

        // Menghapus data tertentu
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.remove("username");
        editor.apply();

        // Menghapus semua data
        editor.clear();
        editor.apply();
    }
}

Praktik Terbaik dalam Menggunakan SharedPreferences

  • Hindari menyimpan data sensitif seperti kata sandi dalam SharedPreferences.
  • Gunakan apply() daripada commit() untuk performa yang lebih baik.
  • Gunakan nama file yang unik untuk SharedPreferences agar tidak berbenturan dengan modul lain.

Penutup

SharedPreferences adalah alat yang sangat berguna untuk menyimpan data kecil yang bersifat lokal di aplikasi Android. Dengan memahami cara kerja dan implementasinya, Anda dapat membuat aplikasi yang lebih interaktif dan responsif terhadap preferensi pengguna. Semoga panduan ini membantu Anda memahami dan menggunakan SharedPreferences dalam proyek Android Anda!