ReactJS #11: Fetch API Part 1
Memanggil Data dari Web Service
(Mengambil Data dari Dunia Luar)
Halo, penjelajah data! 🗺️
Selama ini kita membuat tampilan dengan data buatan sendiri (state dan props). Tapi aplikasi sungguhan butuh data dari luar, misalnya daftar berita, cuaca terkini, atau profil pengguna. Data itu biasanya disediakan oleh Web Service atau API. Di artikel ini, kita akan belajar cara mengambil data dari API menggunakan fetch.
API itu seperti perpustakaan raksasa, kita bisa meminjam data yang kita butuhkan!
🔎 Apa Itu API?
API (Application Programming Interface) adalah 'jembatan' yang memungkinkan aplikasi kita berbicara dengan aplikasi lain di internet. Bayangkan API seperti petugas perpustakaan. Kita minta buku tertentu, petugas mencarikannya, lalu memberikan buku itu kepada kita. Di sini, 'buku' adalah data.
Contoh API terkenal:
- JSONPlaceholder – API palsu untuk latihan.
- OpenWeatherMap – data cuaca.
- The Movie Database – data film.
Kita akan menggunakan JSONPlaceholder karena gratis dan mudah. Alamatnya: https://jsonplaceholder.typicode.com/posts
📡 Apa Itu Fetch?
Fetch adalah fungsi bawaan JavaScript untuk mengambil data dari internet. Ia seperti 'surat izin meminjam buku' yang kita kirim ke petugas perpustakaan. Fetch mengembalikan Promise (janji) bahwa data akan datang, entah berhasil atau gagal.
Di React, kita biasanya memanggil fetch di dalam useEffect agar dijalankan saat komponen dimuat.
📦 Mengambil Data Sederhana dengan Fetch
Mari buat komponen yang mengambil daftar postingan dari JSONPlaceholder dan menampilkannya.
Penjelasan setiap bagian:
fetch(url)– meminta data ke URL..then(response => response.json())– mengubah response (yang masih mentah) menjadi objek JavaScript..then(data => setPosts(data))– menyimpan data ke state..catch()– menangkap error jika jaringan bermasalah.- State
loadingdanerroruntuk memberi umpan balik ke pengguna.
Coba masukkan komponen ini ke App.js dan jalankan. Kamu akan melihat daftar judul postingan dari internet!
https://jsonplaceholder.typicode.com/users untuk mengambil data pengguna. Atau /todos untuk daftar tugas.
⏳ Menangani Loading dengan Lebih Baik
Kita sudah menampilkan teks "Memuat data...". Tapi kadang loading butuh waktu. Kita bisa menambahkan spinner atau animasi sederhana. Berikut contoh dengan emoji:
❌ Menangani Error dengan Ramah
Kadang internet putus atau server sedang down. Kita bisa memberi pesan yang lebih ramah dan tombol untuk mencoba lagi.
Dengan tombol "Coba Lagi", pengguna bisa mengulang permintaan tanpa reload halaman.
🧪 Latihan: Ambil Data Pengguna
Buat komponen DaftarPengguna yang mengambil data dari https://jsonplaceholder.typicode.com/users. Tampilkan nama, email, dan kota mereka dalam bentuk kartu. Jangan lupa loading dan error.
Kerangka (coba selesaikan sendiri):
Coba jalankan dan lihat hasilnya. Jika berhasil, kamu sudah bisa mengambil data dari dunia luar!
📌 Tips Penting
- Selalu handle loading dan error agar pengguna tidak bingung.
- Gunakan
response.okuntuk mengecek apakah respons sukses (status 200-299). - Fetch bisa gagal karena jaringan, jadi
.catchwajib ada. - Jangan lupa array dependencies di useEffect, biasanya kosong
[]untuk ambil data sekali. - Jika ingin mengambil ulang berdasarkan aksi (misal klik tombol), buat fungsi terpisah seperti contoh di atas.
🚀 Kesimpulan
- API adalah sumber data dari internet.
- Fetch adalah alat untuk mengambil data dari API.
- Kita menggunakan useEffect untuk memanggil fetch saat komponen dimuat.
- Data yang diterima disimpan ke state agar bisa ditampilkan.
- Selalu tampilkan status loading dan tangani error dengan baik.
Di artikel selanjutnya kita akan belajar menampilkan data dari API dengan lebih rapi, misalnya dalam bentuk grid atau tabel, serta belajar mengambil data berdasarkan parameter (misal detail postingan). Sampai jumpa!