Panduan Lengkap Setup Next.js 14 dengan App Router, Server Actions, dan Optimasi Performance


Next.js 14 menjadi standar de‑facto untuk pengembangan web React modern. Tutorial ini membimbing Anda langkah demi langkah memulai proyek, mengonfigurasi App Router, memanfaatkan Server Actions, serta menerapkan best practice untuk keamanan dan performa.

1. Prasyarat dan Persiapan Lingkungan

Sebelum memulai, pastikan Anda memiliki:

  • Node.js versi 20.x atau lebih baru (https://nodejs.org/)
  • npm 10.x atau Yarn 4 (paket manager pilihan)
  • Git untuk version control
  • Editor kode modern, misalnya VS Code dengan ekstensi ESLint dan Prettier

Instalasi Node.js dan Verifikasi

node -v
npm -v

Jika versi belum sesuai, unduh installer LTS dari situs resmi.

2. Membuat Proyek Next.js 14 Baru

Inisialisasi dengan create-next-app

npx create-next-app@latest my-next14-app --ts --app

Parameter --ts menambahkan TypeScript, --app mengaktifkan App Router secara default.

Struktur Direktori Utama

my-next14-app/
├─ app/               # App Router (pages -> app)
│  ├─ layout.tsx
│  ├─ page.tsx
│  └─ ...
├─ public/           # Static assets
├─ styles/
├─ next.config.mjs   # Konfigurasi Next.js
└─ tsconfig.json

3. Konfigurasi Dasar Next.js

next.config.mjs

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
  swcMinify: true,
  images: { remotePatterns: [{ hostname: 'images.unsplash.com' }] },
  experimental: { serverActions: true }, // aktifkan Server Actions
};
export default nextConfig;

Pengaturan di atas mengaktifkan Server Actions yang menjadi fitur kunci di Next.js 14.

ESLint & Prettier

npm install -D eslint eslint-config-next prettier
npx eslint --init

Gunakan konfigurasi standar Next.js untuk menjaga konsistensi kode.

4. Membuat Layout Global dengan Server Components

// app/layout.tsx
import './globals.css';

export const metadata = {
  title: 'Demo Next.js 14',
  description: 'Tutorial setup dengan App Router & Server Actions',
};

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    
      {children}
    
  );
}

Layout ini dijalankan di server, sehingga tidak menambah bundle JavaScript di client.

5. Membuat Halaman Utama dengan Server Action

page.tsx

// app/page.tsx
import { redirect } from 'next/navigation';

export default function HomePage() {
  async function handleSubmit(formData: FormData) {
    'use server'; // menandai sebagai Server Action
    const name = formData.get('name');
    // Simulasi penyimpanan ke DB (di sini hanya console.log)
    console.log('Submitted name:', name);
    // Setelah berhasil, redirect ke halaman sukses
    redirect('/success');
  }

  return (
    

Selamat Datang di Next.js 14

); }

Catatan penting:

  • Keyword 'use server' memastikan fungsi dijalankan di server, bukan client.
  • Form tidak memerlukan onSubmit di client – Next.js otomatis meng‑POST ke server.

6. Menambahkan Halaman Sukses

// app/success/page.tsx
export default function SuccessPage() {
  return (
    

Terima Kasih!

Data Anda telah berhasil diproses.

); }

7. Optimasi Gambar dengan next/image

// app/page.tsx (tambahkan di dalam component)
import Image from 'next/image';

Coding

Next.js secara otomatis meng‑optimalkan ukuran, format, dan lazy‑loading.

8. Menambahkan Middleware untuk Keamanan Dasar

// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  const token = request.cookies.get('auth-token');
  if (!token && request.nextUrl.pathname.startsWith('/protected')) {
    return NextResponse.redirect(new URL('/login', request.url));
  }
  return NextResponse.next();
}

export const config = {
  matcher: ['/protected/:path*'],
};

Middleware berjalan pada edge, memberikan respon ultra‑cepat sebelum halaman dirender.

9. Deploy ke Vercel (gratis & optimal untuk Next.js)

  1. Push kode ke GitHub (atau GitLab).
  2. Buka vercel.com dan login dengan akun GitHub.
  3. Import repository my-next14-app.
  4. Vercel otomatis mendeteksi next.config.mjs dan meng‑build dengan SWC.
  5. Set environment variables (jika ada) di dashboard.

Setelah deploy, gunakan URL https://your-project.vercel.app untuk mengakses aplikasi.

10. Best Practice untuk Produksi

  • Static Generation (SSG) bila memungkinkan – gunakan generateStaticParams untuk halaman yang tidak bergantung pada data runtime.
  • Cache API Routes – tambahkan header Cache-Control: s-maxage=86400, stale-while-revalidate=43200 pada route API.
  • Audit Bundle dengan next build – periksa ukuran page‑level JavaScript, pindahkan logika berat ke Server Components.
  • Gunakan TypeScript Strict Mode – aktifkan "strict": true di tsconfig.json untuk mengurangi bug runtime.
  • CI/CD – tambahkan workflow GitHub Actions:
    name: Deploy to Vercel
    on: [push]
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: '20'
          - run: npm ci
          - run: npm run build
          - uses: amondnet/vercel-action@v20
            with:
              vercel-token: ${{ secrets.VERCEL_TOKEN }}
              vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
              vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
              working-directory: .
    

11. Debugging & Monitoring

Gunakan next dev untuk hot‑reload lokal. Untuk produksi, integrasikan Sentry atau LogRocket demi observabilitas.

npm install @sentry/nextjs
// sentry.server.config.ts & sentry.client.config.ts sesuai docs

Selain itu, enable next-logger untuk log request/response di edge.

12. Ringkasan Langkah-langkah

  1. Instal Node.js & buat proyek dengan create-next-app (opsi --app).
  2. Konfigurasi next.config.mjs (aktifkan Server Actions).
  3. Bangun layout global menggunakan Server Components.
  4. Buat halaman utama yang memanfaatkan Server Action untuk proses form.
  5. Tambahkan halaman sukses, middleware keamanan, dan optimasi gambar.
  6. Deploy ke Vercel, sambungkan CI/CD, dan aktifkan monitoring.

Dengan mengikuti tutorial ini, Anda memiliki aplikasi Next.js 14 yang modern, cepat, dan siap produksi.


Next.js 14 menggabungkan kekuatan App Router, Server Actions, dan optimasi bawaan untuk menciptakan pengalaman pengembangan yang lebih produktif dan aplikasi yang lebih cepat. Dengan mengikuti langkah‑step di atas—mulai dari instalasi, konfigurasi dasar, implementasi Server Action, hingga deployment di Vercel—Anda tidak hanya memperoleh kode yang bersih dan terstruktur, tetapi juga mematuhi best practice keamanan, performa, dan observabilitas yang dibutuhkan dalam proyek Software Engineering modern. Terus eksplorasi fitur baru seperti Turbopack, Edge Functions, dan AI‑assisted coding untuk menjaga keunggulan kompetitif dalam dunia Web Development.
Panduan lengkap setup Next.js 14 dengan App Router, Server Actions, dan best practice performance. Langkah demi langkah, contoh kode, konfigurasi, dan deployment ke Vercel.

Programming,Software Engineering,Web Development,Next.js 14,App Router,Server Actions,React,Deployment

#Programming #SoftwareEngineering #WebDev #Tech #Coding

Posting Komentar

0 Komentar