Sebelum menyentuh NestJS, kalian perlu menguasai TypeScript, konsep OOP, dependency injection, dan dasar HTTP serta REST API. Di episode ini kalian juga menyiapkan Node.js LTS, editor, Nest CLI, dan database lokal yang dibutuhkan untuk mengikuti seluruh series.

Selamat datang di series Belajar NestJS! Series ini akan membawa kalian menguasai NestJS — framework backend modern berbasis Node.js dan TypeScript — dari fondasi konsep sampai production readiness. Total ada 24 episode yang tersusun dari enam fase.
Tapi sebelum menyentuh nest, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena NestJS dibangun di atas TypeScript dan mengadopsi arsitektur modular ala Angular. Kalau kalian belum paham apa itu dekorator atau dependency injection, hampir semua episode selanjutnya akan terasa membingungkan.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan environment Node.js, menginstall Nest CLI, dan memverifikasi seluruh setup sebelum menulis kode pertama.
NestJS ditulis sepenuhnya dalam TypeScript dan dikompilasi ke JavaScript. Kalian wajib nyaman dengan sintaks modern seperti async/await, class, interface, dan tipe generik. Yang paling krusial adalah memahami decorator — fitur TypeScript yang menjadi fondasi hampir semua fitur NestJS seperti @Module dan @Controller.
function LogClass(constructor: Function): void {
console.log("Class dimuat:", constructor.name);
}
@LogClass
export class UserService {
findAll(): string[] {
return ["Arman", "Budi"];
}
}Contoh @LogClass di atas menunjukkan betapa dekorator dipakai untuk menambahkan perilaku. Di NestJS, dekorator seperti @Controller dan @Get bekerja dengan pola yang sama.
NestJS mengadopsi paradigma object-oriented programming secara ketat. Kalian wajib paham konsep class, inheritance, encapsulation, dan yang paling penting: dependency injection. Ini pola di mana sebuah objek tidak membuat dependensinya sendiri, melainkan menerimanya dari luar — biasanya lewat constructor.
class DatabaseService {
connect(): string {
return "terhubung";
}
}
class UserService {
constructor(private readonly db: DatabaseService) {}
}Perhatikan UserService menerima DatabaseService lewat constructor, bukan membuatnya sendiri. Inilah inti dependency injection yang akan kita bedah mendalam di episode 5.
NestJS secara default berjalan di atas Express atau Fastify. Kalian harus paham konsep HTTP: metode GET, POST, PUT, DELETE, PATCH; status code seperti 200, 201, 400, 404; serta cara REST API mengorganisir resource lewat URL. Pemahaman dasar arsitektur seperti layer controller, service, dan repository juga akan sangat membantu.
Syarat utama NestJS adalah Node.js versi LTS — saat penulisan series ini, versi 20 dan 22 adalah pilihan terbaik. Package manager bisa memakai npm, yarn, atau pnpm; series ini akan memakai npm. Verifikasi dulu versi Node dan npm di sistem kalian:
node --version
npm --versionKeluaran node --version harus menunjukkan versi 20 atau lebih baru. Jika belum ada, gunakan nvm (Node Version Manager) untuk menginstall versi LTS.
Editor paling populer untuk NestJS adalah VS Code. Pasang ekstensi berikut agar nyaman: TypeScript (otomatis dari VS Code), ESLint, Prettier, dan NestJS Snippets. Alternatif lain seperti WebStorm dan Neovim dengan LSP TypeScript juga sangat mumpuni.
Nest CLI adalah alat resmi untuk membuat dan mengelola project NestJS. Install secara global:
npm install -g @nestjs/cliPastikan perintah nest --version menampilkan versi CLI setelah instalasi. Untuk database, siapkan minimal satu dari: PostgreSQL, MySQL, MongoDB, atau SQLite. SQLite adalah pilihan paling ringan untuk latihan karena tidak butuh server.
Cara paling bersih mengelola Node.js di Linux dan macOS adalah lewat nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install --lts
nvm use --ltsPengguna Windows bisa memakai nvm-windows atau installer resmi dari nodejs.org. Setelah selesai, jalankan node --version untuk memastikan versi LTS aktif.
Untuk pengalaman paling mirip production, jalankan PostgreSQL lewat Docker:
docker run --name nestjs-db -e POSTGRES_PASSWORD=rahasia -p 5432:5432 -d postgres:16Jika Docker tidak tersedia di mesin kalian, SQLite cukup dipakai untuk episode 6 dan 10 — tidak perlu install apa pun selain package npm nanti.
Sebelum lanjut, pastikan seluruh perangkat siap dengan menjalankan verifikasi menyeluruh:
node --version
npm --version
nest --version
docker --versionJika semua perintah mengembalikan versi masing-masing, environment kalian sudah siap. Checklist lengkapnya:
npm ikut terinstall.nest --version.Episode 0 menyiapkan seluruh fondasi teknis sebelum menulis kode NestJS: skill TypeScript dan konsep OOP, dependency injection, pemahaman HTTP, Node.js LTS, Nest CLI, dan database lokal. Semua elemen ini akan dipakai terus di seluruh series.
Inti yang harus dibawa pulang:
npm install -g @nestjs/cli.node --version dan nest --version sebelum mulai.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan NestJS — mulai dari evolusi backend Node.js, kelahiran NestJS sebagai solusi arsitektur, hingga perbandingannya dengan Express dan framework lain. Pastikan environment kalian sudah siap, karena perjalanan Belajar NestJS baru saja dimulai!