Next.js 14 telah menjadi standar de‑facto untuk pengembangan web full‑stack modern. Tutorial ini membimbing Anda langkah demi langkah memulai proyek baru, mengkonfigurasi App Router, menggunakan React Server Components, serta menerapkan best practice untuk performa dan keamanan.
1. Prasyarat & Persiapan Lingkungan
Pastikan Anda memiliki:
- Node.js >= 20.12 LTS (unduh dari nodejs.org)
- npm atau Yarn (npm sudah termasuk dalam Node)
- Git untuk version control
- Editor kode (VS Code direkomendasikan)
Verifikasi instalasi dengan perintah:
node -v
npm -v
2. Membuat Proyek Next.js 14 Baru
Jalankan perintah berikut di terminal:
npx create-next-app@latest my-next14-app --typescript --eslint
cd my-next14-app
Flag --typescript menyiapkan TypeScript secara default, sedangkan --eslint menambah konfigurasi linting standar. Setelah selesai, jalankan:
npm run dev
Anda akan melihat aplikasi berjalan di http://localhost:3000.
3. Mengaktifkan App Router
Next.js 14 menggantikan pages/ dengan app/ (App Router). Jika folder app belum ada, buatlah:
mkdir app
Tambahkan file layout.tsx sebagai layout global:
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
Selanjutnya, buat halaman beranda di app/page.tsx:
export default function HomePage() {
return (
Selamat datang di Next.js 14
App Router sudah aktif.
);
}
Refresh browser, Anda akan melihat perubahan.
4. Memanfaatkan React Server Components (RSC)
RSC memungkinkan Anda menulis komponen yang dijalankan di server tanpa mengirim JavaScript ke client. Buat folder components/ dan buat file Greeting.server.tsx:
export default async function Greeting() {
// Simulasi panggilan API yang hanya dijalankan di server
const res = await fetch('https://api.agify.io?name=John');
const data = await res.json();
return (
Hello, {data.name}!
Prediksi umur: {data.age} tahun.
);
}
Gunakan komponen ini di app/page.tsx:
import Greeting from '@/components/Greeting.server';
export default function HomePage() {
return (
Selamat datang di Next.js 14
);
}
Karena berakhiran .server.tsx, Next.js otomatis menganggapnya sebagai Server Component.
5. Menambahkan API Route dengan Edge Runtime
Next.js 14 mendukung Edge Functions untuk latensi ultra‑rendah. Buat folder app/api/hello/route.ts:
export const runtime = 'edge';
export async function GET(request: Request) {
return new Response(JSON.stringify({ message: 'Hello from Edge Runtime' }), {
headers: { 'Content-Type': 'application/json' },
});
}
Uji dengan curl http://localhost:3000/api/hello.
6. Konfigurasi Lingkungan & Variabel Rahasia
Next.js 14 membaca variabel dari .env.local. Buat file di root project:
NEXT_PUBLIC_API_URL=https://api.example.com
API_SECRET_KEY=supersecret123
Gunakan di kode:
const apiUrl = process.env.NEXT_PUBLIC_API_URL;
const secret = process.env.API_SECRET_KEY; // hanya tersedia di server
Pastikan .env.local ditambahkan ke .gitignore untuk menghindari kebocoran.
7. Optimasi Performance dengan next/image dan next/font
Ganti tag <img> dengan next/image untuk lazy‑loading otomatis:
import Image from 'next/image';
export default function Hero() {
return (
);
}
Gunakan next/font/google untuk meng‑load font secara optimal:
import { Inter } from 'next/font/google';
const inter = Inter({ subsets: ['latin'] });
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
8. Implementasi Security Best Practices
- Content Security Policy (CSP): Tambahkan header di
next.config.js.module.exports = { async headers() { return [{ source: '/(.*)', headers: [{ key: 'Content-Security-Policy', value: "default-src 'self'; script-src 'self' 'unsafe-inline'; img-src 'self' data:; style-src 'self' 'unsafe-inline'" }] }]; } }; - Rate limiting pada Edge API menggunakan
@upstash/ratelimitataucloudflare/next-on-pages. - Validasi input dengan Zod (digunakan bersama server actions).
9. Deploy ke Vercel (atau Platform Lain)
Hubungkan repository GitHub ke Vercel, pilih Next.js sebagai framework, dan Vercel otomatis mendeteksi app/ directory. Pastikan variabel lingkungan ditambahkan pada dashboard Vercel.
Jika menggunakan Docker, buat Dockerfile sederhana:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json .
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package*.json ./
RUN npm ci --omit=dev
EXPOSE 3000
CMD ["npm", "run", "start"]
Build dan push ke registry, lalu jalankan di Kubernetes atau Cloud Run.
10. Testing & Continuous Integration
Tambahkan Jest dan React Testing Library:
npm i -D jest @types/jest ts-jest @testing-library/react @testing-library/jest-dom
npx ts-jest config:init
Contoh tes unit pada components/Greeting.server.test.tsx:
import { render, screen } from '@testing-library/react';
import Greeting from '@/components/Greeting.server';
test('renders greeting with fetched data', async () => {
global.fetch = jest.fn(() =>
Promise.resolve({ json: () => Promise.resolve({ name: 'Jane', age: 28 }) } as any)
) as any;
render(await Greeting());
expect(screen.getByText(/Hello, Jane!/)).toBeInTheDocument();
});
Integrasikan ke GitHub Actions:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm test
11. Monitoring & Error Tracking
Gunakan Sentry untuk Next.js 14:
npm i @sentry/nextjs
npx @sentry/wizard -i nextjs
Ikuti wizard untuk menambahkan DSN ke .env.local. Setelah deploy, error akan terkirim ke dashboard Sentry.
12. Ringkasan Step‑by‑Step
- Instal Node.js 20+ dan buat proyek dengan
create-next-app. - Aktifkan App Router dengan folder
app/danlayout.tsx. - Buat React Server Component (
.server.tsx) untuk fetch data di server. - Tambahkan Edge API route untuk latency rendah.
- Konfigurasi variabel lingkungan di
.env.local. - Optimasi gambar dan font dengan
next/image&next/font. - Implementasikan CSP, rate limiting, dan validasi input.
- Deploy ke Vercel atau Docker‑based platform.
- Set up testing dengan Jest & React Testing Library, lalu CI di GitHub Actions.
- Integrasi Sentry untuk monitoring production.
Ikuti urutan di atas, dan Anda akan memiliki aplikasi Next.js 14 yang modern, cepat, dan aman.
Next.js 14 memadukan kekuatan App Router, React Server Components, dan Edge Runtime untuk menghasilkan aplikasi web yang responsif dan scalable. Dengan mengikuti tutorial detail ini—mulai dari instalasi, konfigurasi keamanan, hingga CI/CD dan monitoring—Anda dapat membangun produk yang siap produksi dalam hitungan hari, sekaligus menerapkan best practice yang diadopsi oleh perusahaan‑perusahaan terdepan di industri. Selamat coding!
Panduan step‑by‑step setup Next.js 14 dengan App Router, React Server Components, Edge API, security best practice, CI/CD, dan deployment ke Vercel. Cocok untuk developer web modern pada 2026.
Programming,Software Engineering,Web Development
#Programming #SoftwareEngineering #WebDev #Tech #Coding
0 Komentar