Konsumen API Praktis: Error Handling dan Pola Terbaik

Editor kode untuk pengembangan web

Tujuan Pembelajaran

  • Menangani error jaringan dan timeout.
  • Membungkus risiko pada fungsi service.
  • Menampilkan state loading, data, dan error.
  • Menerapkan pola service layer yang rapi.

Uraian Materi

Aplikasi yang tangguh tidak hanya menangani alur bahagia (happy path). Koneksi dapat terputus, timeout, atau server mengembalikan error. Pertemuan ini melatih penanganan kegagalan agar aplikasi tetap memberi pengalaman baik kepada pengguna.

try-catch dan Exception

Permintaan jaringan dibungkus dalam try dan catch. Setiap exception menampilkan pesan yang dapat dipahami, misalnya ‘Tidak ada koneksi internet’ atau ‘Waktu permintaan habis’.

Dart
try {
  final res = await http.get(uri).timeout(const Duration(seconds: 10));
  if (res.statusCode == 200) {
  final data = jsonDecode(res.body) as List;
  print('Data diterima: ${data.length}');
} else {
  throw Exception('Request gagal: ${res.statusCode}');
}
} catch (e) {
  // tampilkan pesan error
}

State Loading, Data, dan Error

Antarmuka umumnya berada dalam salah satu dari empat kondisi: memuat (loading), data tersedia, kosong, dan error. Keempatnya direpresentasikan dalam satu pandangan agar konsisten dan mudah dipelihara, bukan tersebar acak.

Service Layer yang Rapi

Semua fungsi API dipisahkan ke file service tersendiri (misal berita_service.dart) sehingga widget antarmuka tidak tercampur logika jaringan. Pemetaan model, parsing, dan error handling tinggal pada service; widget fokus pada tampilan. Arsitektur layering ini menjaga kode bersih pada aplikasi yang kian besar.

Praktik Terakhir Modul API

Peserta menggabungkan GET, POST, PUT, DELETE, loading, dan error ke satu aplikasi manajemen data berbasis API, menutup modul konsumsi REST API dan siap beranjak ke integrasi Firebase.

Membungkus Kegagalan dengan Amannya

Fungsi service mengembalikan hasil atau melempar kesalahan ke pemanggil, sehingga antarmuka cukup menangani satu titik kegagalan. Pemisahan tanggung jawab ini membuat service mudah diuji dan antarmuka tetap fokus pada tampilan.

Empat Kondisi Tampilan yang Konsisten

Peserta menetapkan satu pola untuk menampilkan keempat kondisi: memutar indikator saat loading, menampilkan daftar saat ada data, menampilkan pesan saat kosong, dan menampilkan pesan + tombol coba ulang saat error. Konsistensi ini membuat aplikasi terasa matang.

Timeout dan Pemutus Koneksi

Koneksi yang lambat perlu dibatasi waktu agar aplikasi tidak menggantung tanpa akhir. Timeout membatasi durasi maksimal permintaan, lalu menampilkan pesan ketika terlampaui. Peserta menyetel nilai yang wajar, misalnya beberapa detik, sesuai kebutuhan.

Menutup Modul API

Dengan pola service yang rapi dan penanganan error lengkap, peserta menyelesaikan modul konsumsi REST API. Kemampuan ini menjadi dasar untuk berpindah ke layanan backend yang dibutuhkan pada integrasi Firebase di pertemuan berikutnya.

Aktivitas Pembelajaran

  • Menulis fungsi service dengan try-catch.
  • Menampilkan keempat state antarmuka.
  • Merapikan pemisahan service dan widget.
  • Menguji simulasi koneksi bermasalah.

Tugas dan Latihan

  • Perbaiki aplikasi manajemen data dengan penanganan error lengkap.
  • Terapkan service layer terpisah untuk semua fungsi API.
  • Tampilkan pesan kosong ketika data belum tersedia.

Evaluasi

Evaluasi dilakukan melalui pengamatan hasil praktikum, kuis singkat di akhir pertemuan, dan pemantauan proyek. Peserta yang belum mencapai indikator tertentu diberikan remedial melalui bimbingan ulang dan latihan tambahan pada pertemuan berikutnya.

Panduan umum praktik, catatan belajar, dan refleksi tersedia di Panduan Belajar Kribbi Study.

No Comment! Be the first one.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *