Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini membahas instalasi, konfigurasi, contoh kode, serta best practice untuk memanfaatkan App Router, Server Components, dan Edge Functions di lingkungan produksi.
1. Prasyarat
- Node.js >= 20.10 (LTS) – download di nodejs.org
- Git
- Editor kode (VS Code direkomendasikan)
- Akun Vercel atau Railway untuk deployment Edge
2. Instalasi & Inisialisasi Proyek
- Buka terminal dan jalankan:
Perintah ini meng‑clone template dengan TypeScript dan meng‑install semua dependency.npx create-next-app@latest my-next14-app --use-npm --example "https://github.com/vercel/next.js/tree/canary/examples/with-typescript" - Pindah ke folder proyek:
cd my-next14-app - Jalankan server development untuk memastikan semuanya berjalan:
Bukanpm run devhttp://localhost:3000di browser.
3. Mengaktifkan App Router
Next.js 14 menggantikan pages/ dengan app/ folder. Jika belum ada, buat struktur berikut:
mkdir -p app/dashboard
mkdir -p app/layouts
3.1 Membuat Layout Global
File app/layout.tsx berfungsi sebagai wrapper semua halaman:
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<head>
<title>My Next.js 14 App</title>
</head>
<body className="min-h-screen bg-gray-50">
{children}
</body>
</html>
);
}
Catatan: gunakan className Tailwind atau CSS‑Modules sesuai kebutuhan.
3.2 Membuat Halaman Dashboard
File app/dashboard/page.tsx:
export const metadata = { title: 'Dashboard' };
export default function DashboardPage() {
return (
<main className="p-6">
<h1 className="text-2xl font-bold">Selamat datang di Dashboard</h1>
<ServerMessage />
</main>
);
}
3.3 Server Component: ServerMessage
Buat app/dashboard/ServerMessage.tsx sebagai Server Component yang fetch data secara langsung di server:
import db from '@/lib/db'; // contoh koneksi DB
export default async function ServerMessage() {
const stats = await db.query('SELECT count(*) AS total FROM users');
return (
<section className="mt-4">
<p>Total pengguna terdaftar: {stats[0].total}</p>
</section>
);
}
Karena komponen ini berada di server, tidak ada bundle JavaScript yang terkirim ke klien, meningkatkan performa.
4. Menambahkan Edge Function (Middleware)
Edge Functions dijalankan di jaringan CDN, ideal untuk autentikasi cepat atau A/B testing.
// app/middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export async function middleware(request: NextRequest) {
const token = request.cookies.get('auth_token');
if (!token) {
const url = request.nextUrl.clone();
url.pathname = '/login';
return NextResponse.redirect(url);
}
return NextResponse.next();
}
export const config = {
matcher: ['/dashboard/:path*'], // jalankan hanya pada route dashboard
};
Deploy ke Vercel atau Railway agar middleware dijalankan di Edge.
5. Konfigurasi TypeScript, ESLint, dan Prettier
- Instal dev dependencies:
npm i -D typescript @types/react @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint prettier eslint-config-prettier eslint-plugin-react - Tambahkan
tsconfig.json(sudah ada, pastikanjsx": "preserve"danmoduleResolution": "node"). - Buatan
.eslintrc.json:{ "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "react"], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react/recommended", "prettier" ], "settings": { "react": { "version": "detect" } }, "rules": { "@typescript-eslint/no-unused-vars": "warn", "react/react-in-jsx-scope": "off" } } - Buat
.prettierrcminimal:{ "singleQuote": true, "trailingComma": "es5" }
Jalankan lint & format sebelum commit:
npm run lint && npm run format
6. Optimasi Performa
- Incremental Static Regeneration (ISR): tambahkan
revalidatedi metadata jika halaman membutuhkan pembaruan periodik.export const revalidate = 60; // refresh tiap 60 detik - Image Optimization: gunakan
next/imagedenganloader: 'custom'untuk CDN internal. - Prefetching: aktifkan
router.prefetch('/dashboard')pada link utama. - Streaming: manfaatkan
awaitdi Server Component untuk meng‑stream HTML seiring data datang.
7. Deployment ke Vercel (Edge Ready)
- Push repository ke GitHub.
git init git add . git commit -m "Initial commit" git remote add origin https://github.com/username/my-next14-app.git git push -u origin main - Buka vercel.com, pilih New Project**, sambungkan repo.
- Pastikan Framework Preset** = Next.js, dan Build Command** =
npm run build, Output Directory** =.next. - Aktifkan Edge Runtime** pada pengaturan project untuk memastikan middleware dijalankan di Edge.
- Deploy! Vercel akan menampilkan URL produksi, biasanya
https://my-next14-app.vercel.app.
8. Best Practice untuk Next.js 14
- Gunakan Server Components untuk semua data‑heavy UI. Hindari fetch di client kecuali interaktifitas diperlukan.
- Keep
app/shallow. Pisahkan folder berdasarkan domain bisnis, bukan fitur UI. - Cache di Edge dengan
Cache-Controlheader di API Routes atau Middleware. - Testing: gunakan
jest+@testing-library/reactuntuk unit, danplaywrightuntuk end‑to‑end. - Security: aktifkan CSP lewat
next-secure-headers, dan sanitasi semua input server‑side.
9. Studi Kasus: Migrasi Aplikasi e‑Commerce Legacy ke Next.js 14
Sebuah startup migrasi dari monolith PHP ke React. Langkah utama:
- Identifikasi halaman yang paling traffic‑intensive (Home, Product List, Checkout).
- Bangun
app/home/page.tsxdengan ISR (revalidate 30) untuk menampilkan produk terbaru. - Implementasi Server Component
ProductCardyang langsung query ke microservice GraphQL. - Gunakan Edge Middleware untuk memvalidasi token JWT pada route
/checkout, mengurangi latency autentikasi dari 120 ms ke < 20 ms. - Deploy ke Vercel, hasil: Time to First Byte (TTFB) turun 45%, Core Web Vitals masuk Good kategori.
Pengalaman ini menegaskan pentingnya kombinasi App Router, Server Components, dan Edge Functions untuk skala tinggi.
Next.js 14 menawarkan paradigma baru yang memadukan kecepatan server‑side, fleksibilitas App Router, dan kekuatan Edge. Dengan mengikuti langkah‑langkah di atas, Anda dapat membangun aplikasi React yang modern, scalable, dan siap produksi dalam hitungan jam. Jangan lupa mengintegrasikan linting, testing, dan strategi caching untuk menjaga kualitas kode dan performa jangka panjang.
Panduan lengkap 2026 tentang cara setup Next.js 14 dengan App Router, Server Components, dan Edge Functions. Termasuk instalasi, konfigurasi, contoh kode, best practice, dan studi kasus migrasi e‑commerce.
Programming,Software Engineering,Web Development,Next.js 14,React,Edge Functions,App Router
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar