Kamis, 05 Maret 2020

Penggunaan SharedPreference di Flutter

Apa yang dimaksud SharedPreferences?

SharedPreferences digunakan untuk menyimpan pasangan kunci-nilai di android dan ios.

Kenapa menggunakan SharedPreferences?

Misalkan kamu ingin menyimpan sebuah nilai kecil yang ingin dirujuk suatu saat nanti ketika user menjalankan aplikasi, maka sharedPreferences mulai beraksi.

Kita tidak menggunakan SQLite untuk menyimpan nilai yang kecil karena harus menulis kode yang panjang dan membutuhkan kelas pendukung.

SharedPreferences mengizinkanmu menulis dan membaca pasangan kunci-nilai dalam beberapa baris dengan mudah. Tapi perlu diingat, shared preferences bukanlah solusi untuk menyimpan relasional data yang kompleks.

Bagaimana menggunakan SharedPreferences?

Sebelum menggunakan SharedPreferences,kamu harus tahu bahwa Flutter SDK tidak mendukung SharedPreferences, Tapi untungnya plugin shared_Preferences dapat digunakan untuk menyimpan data kunci-nilai pada disk.

Implementasi

1. Tambahkan dependencies 
Tambahkan dependensi ke pubspec.yaml file
dependencies:
flutter:
sdk: flutter
shared_preferences: "<newest version>"

2. Impor shared_preferences.dart
import 'package:shared_preferences/shared_preferences.dart';
3. Menyimpan data
a. menyimpan nilai string :
tambahString() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('kunciString', "abc");
 b. menyimpan nilai int :
tambahInt() async {
SharedPreferences prefs = await SharedPreferences.getInstance(); 
prefs.setInt('kunciInt', 123);
c. menyimpan nilai double :
 tambahDouble() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setDouble('kunciDouble', 115.0);
}
d. menyimpan nilai boolean :
 tambahBoolean() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  prefs.setBool('kunciBoolean', true);
4. Membaca data
ketika membaca data dari disk menggunakan shared preferences kita hanya membutuhkan kunci saja.
membacaNilaiString() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return String String nilaiString = prefs.getString('kunciString'); return nilaiString;}
 membacaNilaiBoolean() async { SharedPreferences prefs = await SharedPreferences.getInstance();
//Return bool bool nilaiBool= prefs.getBool('kunciBoolean'); return nilaiBool; }
 membacaNilaiInt() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return int int nilaiInt= prefs.getInt('kunciInt'); return nilaiInt;}
 membacaNilaiDouble() async { SharedPreferences prefs = await SharedPreferences.getInstance(); //Return double double nilaiDouble= prefs.getDouble('kunciDouble'); return nilaiDouble;}
bila di disk tidak ada nilai maka akan menciptakan nilai null,yang bisa mngakibatkan error. Untuk mengatasi masalah ini kita bisa menggunakan seperti :
int nilaiInt = await prefs.getInt('kunciInt') ?? 0;


5. Menghapus data

untuk menghapus data dari disk kita menggunakan method remove('kunci')

 hapusString() async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.remove("kunciString");
}
6. Cek nilai ada atau tidak? 
SharedPreferences prefs = await SharedPreferences.getInstance();
bool CheckValue = prefs.containsKey('kunci');

containsKey akan mengembalikan true bila kunci ada nilainya dan false bila tidak ada


Tidak ada komentar:

Posting Komentar