Media Belajar Bahasa Pemrograman | by APPKEY

DartTutorial Dart 46: Mengenal Flutter Key Value

Tutorial Dart 46: Mengenal Flutter Key Value

-

Last Updated on December 26, 2023 by APPKEY-YOGI

Flutter adalah framework pengembangan UI open-source yang dikembangkan oleh Google. Salah satu konsep penting dalam pengembangan Flutter adalah penggunaan key-value pairs, atau disebut key-value untuk mengidentifikasi dan memanipulasi elemen-elemen dalam UI Flutter. Dalam tutorial kali ini, kita akan membahas apa itu Flutter Key Value dan cara menyimpannya. Yuk simak!

 

flutter key value

Image by Freepik

Apa itu Flutter Key Value?

Flutter key value adalah cara untuk menyimpan dan mengakses data di dalam Flutter. Dalam Flutter, key value dapat digunakan dalam beberapa konteks, seperti:

Map

Map adalah struktur data yang menggunakan pasangan key dan value untuk menyimpan dan mengakses data. Dalam Flutter, Map sering digunakan untuk menyimpan properti widget atau konfigurasi lainnya.

Berikut adalah contoh penggunaannya.

Map<String, dynamic> user = {

  'name': 'John Doe',

  'age': 25,

  'email': 'john.doe@example.com',

};

Global Key

Global key digunakan untuk mengidentifikasi widget tertentu dalam widget tree. Global key memungkinkan akses langsung ke widget tertentu untuk keperluan manipulasi atau pembaruan.

GlobalKey<FormState> formKey = GlobalKey<FormState>();

Penggunaan Key Value dalam Flutter

Berikut adalah beberapa contoh penggunaan Key Value dalam Flutter.

Menggunakan Map untuk Widget Properties

Map dapat digunakan untuk menyimpan properti-properti widget. Berikut adalah contoh penggunaan Map untuk mengkonfigurasi properti suatu widget.

Map<String, dynamic> buttonConfig = {

  'text': 'Klik Saya',

  'color': Colors.blue,

  'onPressed': () {

    print('Tombol diklik!');

  },

};

 

ElevatedButton(

  onPressed: buttonConfig['onPressed'],

  style: ElevatedButton.styleFrom(

    primary: buttonConfig['color'],

  ),

  child: Text(buttonConfig['text']),

);

Menggunakan Global Key untuk Akses Langsung ke Widget

Global key dapat digunakan untuk mengakses widget tertentu dalam widget tree. Berikut adalah contoh penggunaan global key untuk mengakses dan memanipulasi suatu widget.

GlobalKey<FormState> formKey = GlobalKey<FormState>();

 

Form(

  key: formKey,

  child: Column(

    children: [

      TextFormField(

        // Konfigurasi field input

      ),

      ElevatedButton(

        onPressed: () {

          if (formKey.currentState!.validate()) {

            // Lakukan sesuatu setelah form divalidasi

          }

        },

        child: Text('Submit'),

      ),

    ],

  ),

);

 

Artikel Terkait  Tutorial Dart 8 : Dart Looping, Mari Belajar Menggunakannya!

Cara Menyimpan Flutter Key Value

Di dalam Flutter, ada beberapa cara untuk menyimpan key value dan itu tergantung pada kebutuhan dan konteks penggunaannya. Berikut adalah beberapa cara umum yang sering digunakan untuk menyimpannya.

flutter key value

Image by Freepik

Menggunakan SharedPreferences

SharedPreferences adalah cara yang umum digunakan untuk menyimpan dan mengambil nilai dengan menggunakan key value di dalam Flutter. SharedPreferences dapat digunakan untuk menyimpan data primitif, seperti string, integer, boolean, dll.

import 'package:shared_preferences/shared_preferences.dart';

 

void saveData() async {

  SharedPreferences prefs = await SharedPreferences.getInstance();

 

  prefs.setString('username', 'john_doe');

  prefs.setInt('user_age', 25);

  prefs.setBool('is_logged_in', true);

}

 

void readData() async {

  SharedPreferences prefs = await SharedPreferences.getInstance();

 

  String username = prefs.getString('username') ?? '';

  int userAge = prefs.getInt('user_age') ?? 0;

  bool isLoggedIn = prefs.getBool('is_logged_in') ?? false;

 

  print('Username: $username, Age: $userAge, Logged In: $isLoggedIn');

}

Menggunakan Package Database (Contoh: sqflite)

Jika kalian perlu menyimpan data yang lebih kompleks atau persisten, seperti database lokal, kalian dapat menggunakan paket database seperti sqflite. Berikut adalah contoh penggunaan sqflite untuk menyimpan dan membaca data dari database SQLite lokal.

import 'package:sqflite/sqflite.dart';

import 'package:path/path.dart';

 

class DatabaseHelper {

  static Database? _database;

 

  Future<Database> get database async {

    if (_database != null) return _database!;

 

    _database = await initDatabase();

    return _database!;

  }

 

  Future<Database> initDatabase() async {

    String path = join(await getDatabasesPath(), 'my_database.db');

    return await openDatabase(path, version: 1, onCreate: (db, version) {

      // Buat tabel dan skema database di sini

    });

  }

 

  Future<void> saveData(String key, String value) async {

    final db = await database;

    await db.insert('my_table', {'key': key, 'value': value},

        conflictAlgorithm: ConflictAlgorithm.replace);

  }

 

  Future<String?> readData(String key) async {

    final db = await database;

    List<Map<String, dynamic>> results = await db.query('my_table',

        columns: ['value'], where: 'key = ?', whereArgs: [key]);

 

    return results.isNotEmpty ? results.first['value'] : null;

  }

}

Menggunakan State Management

Jika data yang perlu disimpan bersifat transient dan hanya digunakan dalam suatu widget atau subtree widget, kalian dapat menggunakan state management, seperti Provider, GetX, atau Riverpod.

Artikel Terkait  Tutorial Dart 32 : Memahami Navigation and Routing Flutter

Contoh menggunakan Provider

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';

 

class MyData extends ChangeNotifier {

  String _name = 'John Doe';

 

  String get name => _name;

 

  void setName(String newName) {

    _name = newName;

    notifyListeners();

  }

}

 

void main() {

  runApp(

    ChangeNotifierProvider(

      create: (context) => MyData(),

      child: MyApp(),

    ),

  );

}

 

class MyApp extends StatelessWidget {

  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      home: Scaffold(

        body: Center(

          child: Consumer<MyData>(

            builder: (context, myData, child) {

              return Text(myData.name);

            },

          ),

        ),

      ),

    );

  }

}

Metode penyimpanan key-value bisa dipilih sesuai dengan kebutuhan aplikasi kalian. Jika kalian hanya perlu menyimpan konfigurasi sederhana, SharedPreferences mungkin menjadi pilihan yang baik. Jika kalian bekerja dengan data yang lebih kompleks, pertimbangkan penggunaan paket database seperti sqflite. Jika data bersifat transient, pertimbangkan state management seperti Provider.

Kelebihan dan Kekurangan Flutter Key Value

Kelebihan dan kekurangan dari penggunaan flutter key value tergantung pada konteks penggunaannya. Di bawah ini adalah beberapa kelebihan dan kekurangan umum dari penggunaan flutter key value.

Kelebihan

Berikut adalah beberapa kelebihan dari Key Value.

Sederhana dan Mudah Dimengerti

Konsep key value sederhana dan mudah dimengerti. Ini membuatnya mudah digunakan dan diimplementasikan, terutama untuk penyimpanan konfigurasi atau data sederhana.

Cepat diakses dan Dicari

Dengan menggunakan key sebagai indeks, data dapat diakses secara cepat dan efisien. Pencarian data dengan menggunakan key memiliki kompleksitas waktu yang rendah.

Fleksibilitas

Key value sangat fleksibel dan dapat digunakan dalam berbagai konteks. Mereka dapat digunakan untuk menyimpan data konfigurasi, mengidentifikasi widget dalam UI Flutter, atau sebagai struktur data dasar untuk menyimpan informasi.

Artikel Terkait  Tutorial Dart 40 : Belajar Flutter Gestures dan Contohnya!

Kemudahan Integrasi

Kelebihan lainnya adalah kemudahan integrasi dengan banyak framework dan library. Banyak library dan API eksternal menyediakan data dalam format key value, membuatnya mudah untuk berintegrasi dengan sistem lain.

Kekurangan

Berikut adalah kekurangan dari Key Value.

Keterbatasan dalam Struktur Data

Flutter key value cenderung kurang cocok untuk menyimpan data yang kompleks atau berkaitan erat. Jika data kalian memiliki struktur yang kompleks, mungkin lebih baik menggunakan struktur data yang lebih canggih, seperti objek atau bahkan struktur database relasional.

Keterbatasan dalam Pencarian

Meskipun pencarian berdasarkan key adalah operasi yang cepat, pencarian berdasarkan nilai (value) bisa menjadi lebih lambat jika data sangat besar. Key value biasanya tidak menyediakan indeks terhadap nilai, sehingga pencarian nilai membutuhkan iterasi melalui seluruh dataset.

Kesulitan Pemeliharaan

Dalam skala besar, manajemen banyak key value dapat menjadi sulit dan tidak efisien. Pengaturan key yang baik dan dokumentasi yang memadai diperlukan untuk mencegah kekacauan dan kebingungan.

Keterbatasan Pada Jenis Data

Flutter key value umumnya cocok untuk data sederhana seperti string, angka, atau boolean. Jika kalian perlu menyimpan tipe data yang lebih kompleks (seperti list, map bersarang, dll.), mungkin lebih baik menggunakan struktur data yang lebih kaya seperti database atau koleksi objek.

Kesimpulan

Flutter Key-Value merupakan konsep penting dalam pengembangan aplikasi Flutter yang memungkinkan penyimpanan dan akses data dengan menggunakan pasangan key dan value. Key value sering digunakan dalam menggunakan map untuk widget properties dan menggunakan global key untuk akses langsung ke widget.

Cara menyimpan flutter key value ada tiga yaitu menggunakan SharedPreferences, menggunakan package database dan menggunakan state management. Kelebihan dari key value adalah sederhana dan mudah dimengerti, cepat diakses dan dicari, fleksibilitas dan kemudahan integrasi. Kekurangannya adalah keterbatasan struktur data, keterbatasan dalam pencarian, kesulitan pemeliharaan dan keterbatasan dalam jenis data.

Temukan lebih banyak artikel seri belajar Dart maupun bahasa pemrograman lainnya hanya di CODEKEY. Klik https://codekey.id/ sekarang juga untuk langsung belajar gratis. Sampai bertemu lagi!


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Tutorial

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang bahasa pemrograman langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Blog Post Ranking 10

Tutorial PHP 22 : Cara Membuat Redirect PHP dengan Cepat dan Mudah

Jika Anda melakukan browsing di browser kesayangan Anda, mungkin Anda pernah melihat link yang berisikan “php redirect” atau yang...

Tutorial PHP 23 : Cara Membuat Messages Alert PHP

Alert box atau alert messages digunakan di situs web untuk menampilkan pesan peringatan kepada pengguna bahwa mereka telah memasukkan...

Tutorial PHP 2 : Cara Install PHP, Langkah Awal Belajar PHP

PHP adalah bahasa pemrograman gratis dan open source. Secara teknis tidak perlu menginstal PHP: sebagian besar host web dan...

Tutorial Python 9 : Cara Membuat Looping Python

Pada artikel sebelumnya, Codekey telah menjelaskan tentang Operasi Kondisional Python yang di dalamnya menyinggung tentang percabangan dan perulangan. Belajar...

Tutorial HTML/CSS 23 : Cara Membuat Form Sederhana dengan HTML

Form memiliki peran yang sangat krusial bagi website atau aplikasi untuk menjaga sistem keamanannya. Form HTML digunakan untuk mengumpulkan...

Tutorial SQL 8 : Constraint SQL, Bagaimana Fungsi dan Penggunaannya?

Pada artikel sebelumnya Anda telah mempelajari tentang wildcard SQL, pada artikel kali ini kami akan menjelaskan tentang constraint SQL. Jika...

Tutorial Javascript 8 : Array Javascript, Panduan Lengkap Cara Membuatnya

Seperti bahasa pemrograman yang berorientasi objek lainnya, dalam JavaScript juga terdapat array. Jika Anda memiliki banyak objek yang ingin...

Tutorial SQL 20 : Mari Pelajari Cara Menggunakan Fungsi GROUP by SQL

Pada pembahasan seri Tutorial SQL ke- 20 ini, Codekey akan membahas tentang GROUP BY yang merupakan statement di dalam...

Tutorial Python 7 : Python String Format dan Cara Mudahnya

Anda ingin belajar Python dan ingin menjadi ahli dalam bahasa pemrograman Python? Mari belajar bersama Codekey! Pada pembahasan kali...

Tutorial Python 8 : Langkah Mudah Membuat Operasi Kondisional pada Python

Pada pembahasan sebelumnya, Codekey telah menjelaskan kepada Anda tentang pengoperasian string pada Python mulai dari menggabungkan hingga memanipulasi string...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya