DEV Community

Joenathan Haganta Ginting
Joenathan Haganta Ginting

Posted on

πŸš€ Integrasi API di Flutter: Panduan Lengkap! πŸ“²βœ¨

Flutter adalah framework UI yang populer untuk membangun aplikasi mobile yang mendukung Android dan iOS dengan satu basis kode. Salah satu kebutuhan utama dalam pengembangan aplikasi adalah integrasi dengan API untuk mengambil dan mengirim data.

Artikel ini akan membahas bagaimana cara mengintegrasikan API dalam Flutter menggunakan paket http.

Instalasi Paket HTTP

Sebelum mulai menggunakan API, kita perlu menambahkan dependensi http di proyek Flutter kita. Tambahkan kode berikut ke dalam pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.5
Enter fullscreen mode Exit fullscreen mode

Setelah itu, jalankan perintah berikut di terminal:

flutter pub get
Membuat Model Data

Agar data yang diambil dari API dapat digunakan dengan mudah, kita perlu membuat model untuk mengubah JSON menjadi objek Dart.

Misalnya, kita akan mengambil daftar pengguna dari API https://jsonplaceholder.typicode.com/users.

Buat file baru user_model.dart dan tambahkan kode berikut:

class User {
  final int id;
  final String name;
  final String email;

  User({required this.id, required this.name, required this.email});

  factory User.fromJson(Map<String, dynamic> json) {
    return User(
      id: json['id'],
      name: json['name'],
      email: json['email'],
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

Membuat Fungsi Fetch Data

Sekarang kita buat fungsi untuk mengambil data dari API.

Buat file baru api_service.dart dan tambahkan kode berikut:

import 'dart:convert';
import 'package:http/http.dart' as http;
import 'user_model.dart';

class ApiService {
  static Future<List<User>> fetchUsers() async {
    final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/users'));

    if (response.statusCode == 200) {
      List<dynamic> data = json.decode(response.body);
      return data.map((json) => User.fromJson(json)).toList();
    } else {
      throw Exception('Failed to load users');
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Menampilkan Data di UI

Setelah mendapatkan data dari API, kita akan menampilkannya di aplikasi Flutter.

Buka main.dart dan tambahkan kode berikut:

import 'package:flutter/material.dart';
import 'api_service.dart';
import 'user_model.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter API Integration',
      home: UserListScreen(),
    );
  }
}

class UserListScreen extends StatefulWidget {
  @override
  _UserListScreenState createState() => _UserListScreenState();
}

class _UserListScreenState extends State<UserListScreen> {
  late Future<List<User>> futureUsers;

  @override
  void initState() {
    super.initState();
    futureUsers = ApiService.fetchUsers();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('User List')),
      body: FutureBuilder<List<User>>(
        future: futureUsers,
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return Center(child: CircularProgressIndicator());
          } else if (snapshot.hasError) {
            return Center(child: Text('Error: ${snapshot.error}'));
          } else if (!snapshot.hasData || snapshot.data!.isEmpty) {
            return Center(child: Text('No users found'));
          }
          return ListView.builder(
            itemCount: snapshot.data!.length,
            itemBuilder: (context, index) {
              User user = snapshot.data![index];
              return ListTile(
                title: Text(user.name),
                subtitle: Text(user.email),
              );
            },
          );
        },
      ),
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

Penjelasan Kode

Menggunakan paket http untuk melakukan request HTTP ke API eksternal.
Membuat model User yang merepresentasikan data dari API.
Membuat ApiService.fetchUsers() untuk mengambil data dari API.
Menggunakan FutureBuilder untuk menampilkan data setelah request selesai.
Menampilkan data dalam bentuk ListView agar lebih mudah dibaca.

Kesimpulan
Dengan menggunakan paket http, kita dapat dengan mudah mengintegrasikan API ke dalam aplikasi Flutter. Model data membantu dalam mengonversi JSON menjadi objek Dart yang lebih mudah digunakan. Penggunaan FutureBuildermemungkinkan kita untuk menangani data asynchronous secara efisien.
Dengan contoh ini, Anda dapat memperluas dan menyesuaikan API lain sesuai dengan kebutuhan aplikasi Kalian.

API Trace View

Struggling with slow API calls?

Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more β†’

Top comments (0)

Billboard image

πŸ“Š A side-by-side product comparison between Sentry and Crashlytics

A free guide pointing out the differences between Sentry and Crashlytics, that’s it. See which is best for your mobile crash reporting needs.

See Comparison

πŸ‘‹ Kindness is contagious

Please leave a ❀️ or a friendly comment on this post if you found it helpful!

Okay