Kami Hadir Membantu Anda Dalam Pengembangan Usaha Anda

Ketapang, Kalimantan Barat elektranetworkvision@gmail.com
Posted On June 19, 2025

Belajar Next.js dari Nol – Part 4: Integrasi API Eksternal & Pengelolaan Data Dinamis

elektra_network 0 comments

Setelah mempelajari form, validasi, dan state management pada Part 3, kini saatnya memahami salah satu kekuatan Next.js: mengambil dan mengelola data dari API eksternal secara efisien.

Pada bagian ini, kamu akan belajar:

  • Apa itu API eksternal dan use case-nya
  • Mengambil data secara server-side dan client-side
  • Menampilkan data dinamis dalam komponen
  • Menangani loading, error, dan revalidasi data

🔎 Apa Itu API Eksternal?

API eksternal adalah antarmuka yang memungkinkan aplikasi kamu mengambil data dari sumber lain, misalnya:

  • REST API: JSONPlaceholder, OpenWeather, NewsAPI
  • GraphQL API: GitHub API, Shopify API
  • API internal milik perusahaan (ERP, POS, CRM, dll)

Contoh kasus penggunaan:

  • Menampilkan berita terkini dari NewsAPI
  • Mengambil daftar produk dari e-commerce
  • Mengakses data cuaca real-time dari OpenWeatherMap

⚙️ 1. Server-Side Data Fetching (recommended)

Server-side fetching dilakukan dengan async function di file page, menggunakan fetch() sebelum halaman dirender di browser.

Contoh: Menampilkan Post dari JSONPlaceholder

app/posts/page.jsx

async function getPosts() {
  const res = await fetch('https://jsonplaceholder.typicode.com/posts', {
    cache: 'no-store',
  });
  return res.json();
}

export default async function PostsPage() {
  const posts = await getPosts();

  return (
    <div className="space-y-4">
      <h1 className="text-3xl font-bold">Daftar Postingan</h1>
      {posts.slice(0, 5).map(post => (
        <div key={post.id} className="p-4 border rounded">
          <h2 className="font-semibold">{post.title}</h2>
          <p>{post.body}</p>
        </div>
      ))}
    </div>
  );
}

Kelebihan:

  • SEO-friendly (karena data sudah dirender di server)
  • Bisa cache, ISR, atau revalidate secara fleksibel

🔄 2. Client-Side Fetching (menggunakan useEffect)

Jika datanya bergantung pada interaksi user (filter, pencarian), gunakan pendekatan client-side.

app/products/page.jsx

'use client';

import { useEffect, useState } from 'react';

export default function ProductPage() {
  const [products, setProducts] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetch('https://fakestoreapi.com/products')
      .then(res => res.json())
      .then(data => {
        setProducts(data);
        setLoading(false);
      });
  }, []);

  if (loading) return <p>Memuat produk...</p>;

  return (
    <div className="grid grid-cols-2 gap-4">
      {products.map(p => (
        <div key={p.id} className="border p-4 rounded">
          <img src={p.image} className="h-32 object-contain mx-auto" />
          <h3 className="text-lg font-bold">{p.title}</h3>
          <p className="text-sm text-gray-600">${p.price}</p>
        </div>
      ))}
    </div>
  );
}

📡 3. Menggunakan Revalidate & ISR (Incremental Static Regeneration)

Next.js memungkinkan revalidasi data setelah deploy tanpa rebuild penuh.

Contoh:

export const revalidate = 60; // revalidate setiap 60 detik

Atau fetch data dengan opsi revalidate:

await fetch(url, { next: { revalidate: 60 } });

Manfaatnya:

  • Performa optimal (karena pre-rendered)
  • Data tetap segar tanpa rebuild manual

🚫 4. Menangani Error dan Loading State

Selalu tangani:

  • Error jaringan
  • Status kosong
  • Loading state

Contoh handling server error:

if (!res.ok) {
  throw new Error('Gagal memuat data');
}

Contoh di client:

if (error) return <p>Gagal memuat data</p>;
if (loading) return <p>Memuat...</p>;

🧠 Best Practice

StrategiKapan digunakan
Server-side fetchUntuk SEO, konten publik
Client-side fetchUntuk data interaktif, after load
ISR + RevalidateUntuk data berubah secara periodik
useSWR (next step)Untuk fetch dengan cache dan revalidate otomatis

📣 Studi Kasus Bisnis

Contoh penggunaan nyata:

  • Menampilkan data stok barang dari sistem inventori
  • Menyambungkan form ke API WhatsApp Gateway
  • Menarik laporan transaksi harian dari server pusat

Dengan pendekatan modular dan async, Next.js sangat cocok untuk aplikasi bisnis dinamis di era modern.


🔧 Elektra Network Vision – Solusi Integrasi API

Kami membantu tim bisnis dan developer untuk:

  • Integrasi API eksternal ke aplikasi Next.js
  • Koneksi ke API internal perusahaan (ERP, e-commerce, SIMRS)
  • Membuat backend gateway yang scalable dan aman

🌐 Kunjungi elektranetworkvision.com untuk konsultasi teknis gratis.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

Panduan Lengkap Kolaborasi GitHub 2025: Tingkatkan Produktivitas Tim Developer

🤝 Panduan Lengkap Kolaborasi Efektif Menggunakan GitHub di 2025: Tim Developer Makin Produktif! Di tengah…

Tutorial Lengkap Integrasi Next.js dengan CouchDB untuk Aplikasi Web Modern

Panduan Lengkap Integrasi Next.js dengan CouchDB untuk Aplikasi Web Modern CouchDB adalah database NoSQL yang…

Belajar Next.js dari Nol – Part 7: Integrasi Database MongoDB, MySQL & PostgreSQL

Aplikasi web modern tidak bisa lepas dari penyimpanan data. Setelah memiliki sistem autentikasi, kini waktunya…