Panduan Lengkap Next.js: Dari Nol Hingga Deploy Aplikasi Web
Daftar Isi
1. Pengantar Next.js
Next.js adalah framework React yang memungkinkan pengembangan aplikasi web dengan fitur server-side rendering (SSR), static site generation (SSG), dan banyak lagi. Dengan Next.js, pengembang dapat membuat aplikasi yang cepat, SEO-friendly, dan mudah di-maintain.

Framework ini dikembangkan oleh Vercel dan sangat populer di kalangan pengembang React karena kemudahan penggunaan dan performanya yang optimal.
2. Persiapan Lingkungan Pengembangan
Sebelum memulai, pastikan Anda sudah menginstal Node.js versi terbaru dan npm atau yarn sebagai package manager.
- Download dan install Node.js
- Gunakan terminal atau command prompt untuk menjalankan perintah
- Siapkan editor kode seperti VSCode untuk pengembangan
npx create-next-app@latest nama-proyek
Perintah di atas akan membuat proyek Next.js baru dengan struktur dasar yang siap dikembangkan.

3. Struktur Proyek Next.js
Setelah membuat proyek, Anda akan melihat struktur folder seperti berikut:
/
├── node_modules/
├── pages/
│ ├── api/
│ ├── _app.js
│ ├── index.js
├── public/
├── styles/
├── package.json
└── next.config.js
Folder
pages
berisi file-file yang menjadi rute aplikasi,
public
untuk aset statis, dan
styles
untuk file CSS.

4. Routing dan Navigasi
Next.js menggunakan sistem routing berbasis file. Setiap file di dalam folder
pages
otomatis menjadi rute.
Contoh:
pages/index.js
menjadi halaman utama
/
, dan
pages/about.js
menjadi
/about
.
import Link from 'next/link';
export default function Home() {
return (
<div>
<h1>Selamat datang di Next.js!</h1>
<Link href="/about">Tentang Kami</Link>
</div>
);
}
Gunakan komponen
Link
dari Next.js untuk navigasi antar halaman agar aplikasi tetap SPA (Single Page Application).

5. Membuat dan Menggunakan Komponen
Komponen adalah blok bangunan utama dalam React dan Next.js. Anda dapat membuat komponen fungsional untuk digunakan ulang.
export default function Button({ children, onClick }) {
return (
<button
onClick={onClick}
className="bg-blue-600 text-white px-4 py-2 rounded hover:bg-blue-700 transition"
>
{children}
</button>
);
}
Kemudian gunakan komponen tersebut di halaman atau komponen lain:
import Button from '../components/Button';
export default function Home() {
return (
<div>
<Button onClick={() => alert('Tombol ditekan!')}>Klik Saya</Button>
</div>
);
}

6. Data Fetching di Next.js
Next.js menyediakan beberapa metode untuk mengambil data, antara lain:
-
getStaticProps
untuk Static Site Generation (SSG) -
getServerSideProps
untuk Server-Side Rendering (SSR) -
Client-side fetching menggunakan
useEffect
danfetch
Contoh getStaticProps:
export async function getStaticProps() {
const res = await fetch('https://jsonplaceholder.typicode.com/posts');
const posts = await res.json();
return {
props: {
posts,
},
};
}
export default function Posts({ posts }) {
return (
<div>
<h1>Daftar Post</h1>
<ul>
{posts.map(post => (
<li key={post.id}>{post.title}</li>
))}
</ul>
</div>
);
}

7. Styling dan CSS di Next.js
Next.js mendukung berbagai metode styling, seperti CSS Modules, global CSS, dan integrasi dengan Tailwind CSS.
Contoh CSS Module:
// styles/Button.module.css
.button {
background-color: #2563eb;
color: white;
padding: 0.5rem 1rem;
border-radius: 0.375rem;
transition: background-color 0.3s;
}
.button:hover {
background-color: #1d4ed8;
}
import styles from '../styles/Button.module.css';
export default function Button({ children }) {
return <button className={styles.button}>{children}</button>;
}
Anda juga dapat menggunakan Tailwind CSS untuk styling cepat dan responsif.

8. API Routes di Next.js
Next.js memungkinkan Anda membuat API backend langsung di dalam proyek dengan folder
pages/api
.
Contoh API route:
// pages/api/hello.js
export default function handler(req, res) {
res.status(200).json({ message: 'Halo dari API Next.js!' });
}
API ini dapat diakses melalui
/api/hello
dan dapat digunakan untuk berbagai kebutuhan backend.

9. Autentikasi dan Otorisasi
Untuk menambahkan autentikasi, Anda dapat menggunakan library seperti
next-auth
yang mudah diintegrasikan dengan Next.js.
Contoh sederhana menggunakan
next-auth
untuk login dengan Google:
import NextAuth from 'next-auth';
import GoogleProvider from 'next-auth/providers/google';
export default NextAuth({
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
}),
],
});
Dengan autentikasi, Anda dapat mengamankan halaman dan API sesuai kebutuhan aplikasi.

10. Optimasi dan Performance
Next.js menyediakan fitur optimasi seperti Image Optimization, Automatic Static Optimization, dan Incremental Static Regeneration.
Contoh penggunaan komponen Image:
import Image from 'next/image';
export default function Hero() {
return (
<div>
<Image
src="/hero.jpg"
alt="Gambar hero dengan pemandangan alam"
width={800}
height={400}
/>
</div>
);
}
Gunakan fitur-fitur ini untuk meningkatkan kecepatan dan pengalaman pengguna aplikasi Anda.

11. Deploy Aplikasi Next.js
Setelah aplikasi selesai dikembangkan, saatnya melakukan deploy. Vercel adalah platform resmi untuk deploy Next.js dengan mudah.
- Buat akun di Vercel
- Hubungkan repository GitHub Anda ke Vercel
- Deploy otomatis akan berjalan setiap kali Anda push kode ke repository
Anda juga dapat deploy secara manual menggunakan perintah:
npm run build
npm run start

12. Kesimpulan
Next.js adalah framework yang powerful untuk membangun aplikasi web modern dengan React. Dengan fitur-fitur seperti SSR, SSG, API Routes, dan integrasi mudah dengan berbagai layanan, Next.js memudahkan pengembang dalam membuat aplikasi yang cepat dan scalable.
Mulailah dengan memahami dasar-dasar, kemudian eksplorasi fitur-fitur lanjutan untuk mengoptimalkan aplikasi Anda. Jangan lupa untuk memanfaatkan platform deploy seperti Vercel agar aplikasi Anda dapat diakses oleh pengguna dengan mudah.
