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
onSubmitdi 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';
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)
- Push kode ke GitHub (atau GitLab).
- Buka vercel.com dan login dengan akun GitHub.
- Import repository
my-next14-app. - Vercel otomatis mendeteksi
next.config.mjsdan meng‑build dengan SWC. - 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
generateStaticParamsuntuk halaman yang tidak bergantung pada data runtime. - Cache API Routes – tambahkan header
Cache-Control: s-maxage=86400, stale-while-revalidate=43200pada route API. - Audit Bundle dengan
next build– periksa ukuran page‑level JavaScript, pindahkan logika berat ke Server Components. - Gunakan TypeScript Strict Mode – aktifkan
"strict": trueditsconfig.jsonuntuk 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
- Instal Node.js & buat proyek dengan
create-next-app(opsi--app). - Konfigurasi
next.config.mjs(aktifkan Server Actions). - Bangun layout global menggunakan Server Components.
- Buat halaman utama yang memanfaatkan Server Action untuk proses form.
- Tambahkan halaman sukses, middleware keamanan, dan optimasi gambar.
- 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
0 Komentar