[Flutter][83] setStringList - Menyimpan Data List dengan Shared Preferences (Part 2)

Wednesday, 22 Sep 2021 | By Riza

Image Load

Hello world, 

Shared Preferences adalah salah satu opsi penyimpanan data dalam aplikasi android yang mudah digunakan dimana penggunaannya sangat cocok untuk menyimpan data sederhana seperti String, Int dan lain-lain. Penjelasan lengkapnya bisa kalian lihat pada part-1 di sini.

Pada bagian ke-2 ini saya akan membuat contoh tentang setStringList dimana pada sharedpreferences berfungsi untuk menyimpan sebuah list yang berisi String. Apakah hanya bisa String? Ya betul hanya String. Saya sudah mencoba tipe data int tidak bisa disimpan dan akan error. Untuk menyimpan list yang berisi tipe data lain nantinya akan saya buatkan contoh pada artikel terpisah.

Tahap 1. Install

Tambahkan dalam pubsbec.yaml.

dependencies:
  shared_preferences: ^0.5.3+4

Tahap 2. Import ke dalam file dart.

import 'package:shared_preferences/shared_preferences.dart';

Tahap 3. Penyimpanan

Untuk menyimpan data dalam shared preferences kita bisa menggunakan cara berikut.

_simpan(text) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.setStringList('text_tersimpan', [text]);
}

Pada contoh di atas text dimasukkan ke dalam kurung kotak yang berarti ada di dalam array index pertama. Untuk menambah isi dari array maka kita bisa isi dengan cara berikut.

await prefs.setStringList('text_tersimpan', [text, text2, text3]);


Studi kasus

Kita bisa juga mendefinisikan terlebih dahulu list kita dalam sebuah variable. Kemudian ada proses dimana setiap kita klik tombol maka akan ada penambahan buah pada list yang disimpan. Untuk kasus seperti itu kita bisa ikuti cara sederhana berikut. Bisa juga menggunakan form input dimana setiap disubmit maka buah/string nya akan disimpan ke list di sharedpreferences tersebut.

List<String> buah = ['Semangka', 'nanas', 'Melon'];

_simpan(newbuah) async {

buah.add(newbuah);
SharedPreferences prefs = await SharedPreferences.getInstance();
await prefs.setStringList('text_tersimpan', buah);
}

Lalu kita buat tombol untuk menambahkan buah baru.

ElevatedButton(
 style: ElevatedButton.styleFrom(
      primary: Colors.blue,
 ),
 child: Text('Simpan Buah'),
 onPressed: () {
      _simpan('Alpukat');
 },
),


Kemudian untuk menampilkannya kembali kita bisa memanggil dengan cara berikut.

final prefs = await SharedPreferences.getInstance();
var data = prefs.getStringList('text_tersimpan');

Data yang kita panggil di atas bisa ditampilkan dengan cara looping dengan menggunakan for seperti biasa.

Selamat mencoba :)