Next.js 14 menjadi standar de‑facto untuk aplikasi React modern. Tutorial ini memberi Anda langkah‑demi‑langkah instalasi, konfigurasi, contoh kode, dan best practice agar proyek Anda siap produksi di tahun 2026.
1. Prasyarat
Sebelum memulai, pastikan Anda telah menginstal:
- Node.js v20.10+ (download di nodejs.org)
- Git untuk version control
- Editor code, misalnya VS Code dengan ekstensi ESLint dan Prettier
2. Membuat Proyek Next.js 14
Jalankan perintah berikut di terminal Anda:
npx create-next-app@latest my-next14-app --ts --eslint --app
cd my-next14-app
Parameter --ts menambahkan TypeScript, --eslint mengaktifkan linting, dan --app membuat struktur App Router secara otomatis.
3. Mengaktifkan Turbopack (bundler default)
Next.js 14 sudah mengganti Webpack dengan Turbopack untuk build yang jauh lebih cepat. Tidak ada konfigurasi ekstra, namun Anda dapat menyesuaikan next.config.js jika perlu:
/** @type {import('next').NextConfig} */
const nextConfig = {
// contoh: menambah environment variable
env: {
API_URL: process.env.API_URL || 'https://api.example.com',
},
// menonaktifkan fallback ke webpack (hanya diperlukan untuk legacy plugin)
webpack: (config) => {
config.ignoreWarnings = [/Failed to parse source map/];
return config;
},
};
module.exports = nextConfig;
4. Memahami Struktur App Router
Folder app/ menggantikan pages/. Berikut contoh dasar:
/app
/layout.tsx // layout global
/page.tsx // halaman beranda
/dashboard
/layout.tsx // layout khusus dashboard
/page.tsx // konten dashboard
/settings
/page.tsx // nested route
Setiap folder dapat memiliki page.tsx (route), layout.tsx (wrapper), dan loading.tsx (skeleton UI).
5. Menambahkan Server Actions (Next.js 14)
Server Actions memungkinkan Anda menulis fungsi yang dijalankan di server tanpa API route terpisah. Buat file app/actions.ts:
'use server';
import { prisma } from '@/lib/prisma';
export async function createPost(data: { title: string; content: string }) {
// Otomatis terproteksi CSRF oleh Next.js
return await prisma.post.create({ data });
}
Lalu panggil di komponen client dengan 'use client':
'use client';
import { useState } from 'react';
import { createPost } from '@/app/actions';
export default function NewPostForm() {
const [title, setTitle] = useState('');
const [content, setContent] = useState('');
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault();
await createPost({ title, content });
setTitle('');
setContent('');
// Opsional: invalidate cache atau revalidate
};
return (
);
}
Catatan: Karena createPost berada di server, Anda tidak perlu menulis endpoint /api terpisah, mengurangi latency dan kompleksitas.
6. Konfigurasi Prisma ORM (opsional, tapi umum)
Instalasi:
npm i prisma @prisma/client
npx prisma init --datasource-provider postgresql
Edit prisma/schema.prisma:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
model Post {
id Int @id @default(autoincrement())
title String
content String
createdAt DateTime @default(now())
}
Jalankan migrasi:
npx prisma migrate dev --name init
Setelah itu, impor prisma di lib/prisma.ts untuk singleton:
import { PrismaClient } from '@prisma/client';
let prisma: PrismaClient;
if (process.env.NODE_ENV === 'production') {
prisma = new PrismaClient();
} else {
if (!(global as any).prisma) {
(global as any).prisma = new PrismaClient();
}
prisma = (global as any).prisma;
}
export { prisma };
7. Menambahkan Middleware untuk Security
Next.js 14 mendukung middleware berbasis Edge Runtime. Buat file middleware.ts di root proyek:
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
// Contoh: proteksi route /dashboard dengan JWT
const token = request.cookies.get('auth');
if (request.nextUrl.pathname.startsWith('/dashboard') && !token) {
return NextResponse.redirect(new URL('/login', request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ['/dashboard/:path*'],
};
Middleware dijalankan pada edge, sehingga sangat cepat dan tidak menambah beban server.
8. Deploy ke Vercel (Platform resmi Next.js)
1. Push repository ke GitHub.
2. Buka vercel.com dan klik New Project.
3. Pilih repository, pastikan Framework Preset terdeteksi sebagai Next.js.
4. Tambahkan environment variable DATABASE_URL pada Settings → Environment Variables.
5. Klik **Deploy**. Vercel otomatis menjalankan npm run build dengan Turbopack, menghasilkan .next yang di‑edge.
Deployment selesai dalam kurang dari satu menit, dan CDN edge akan melayani semua static assets serta Server‑Rendered pages.
9. Best Practice untuk Proyek Next.js 14
- Gunakan Server Actions untuk operasi yang memerlukan akses database atau API server‑side, hindari fetch di client bila tidak perlu.
- TypeScript secara ketat: aktifkan
noImplicitAnydanstrictNullChecksditsconfig.jsonuntuk mencegah bug runtime. - Cache ISR (Incremental Static Regeneration) pada halaman publik dengan
revalidatepadafetchataugenerateStaticParams. - Monitor bundle size dengan
next build --profiledan optimalkan gambar menggunakannext/imageataunext-optimized-images. - Security: selalu gunakan middleware untuk otorisasi, set
Content‑Security‑Policymelaluiheaders()dinext.config.js, dan aktifkanhelmetpada edge functions bila diperlukan. - Testing: gunakan
jest+@testing-library/reactuntuk unit test, sertaplaywrightuntuk end‑to‑end.
10. Debugging & Performance Tuning
Next.js 14 menyediakan alat built‑in:
- next dev dengan flag
--inspectuntuk attach debugger Node. - React DevTools di browser untuk melihat component tree dan state.
- Web Vitals otomatis ter‑inject; pantau
next-reportdi Vercel Analytics.
Jika build terasa lambat, tambahkan experimental.turbo={...} di next.config.js atau gunakan swcMinify untuk mengoptimalkan minifikasi.
Dengan mengikuti langkah‑demi‑langkah di atas, Anda kini memiliki aplikasi Next.js 14 yang modern, cepat, dan aman. Penggunaan App Router, Server Actions, dan Turbopack memberikan performa setara dengan framework full‑stack terkemuka, sementara best practice yang di‑integrasikan memastikan kode tetap terkelola dan siap produksi. Selamat coding, dan jangan lupa memantau Web Vitals serta memperbarui dependency secara berkala untuk tetap berada di puncak teknologi Programming, Software Engineering, dan Web Development di tahun 2026.
Tutorial lengkap setup Next.js 14 dengan App Router, Server Actions, Turbopack, Prisma, dan best practice keamanan untuk tahun 2026. Panduan step‑by‑step, contoh kode, dan deployment ke Vercel.
Programming,Software Engineering,Web Development,Next.js 14,App Router,Server Actions
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar