Cara Membuat Website dengan React.js: Panduan Pemula Lengkap 2026

Pendahuluan: Mengapa Belajar Cara Membuat Website dengan React?
Cara membuat website dengan React adalah salah satu keterampilan paling berharga yang bisa Anda kuasai di era digital ini. React.js - yang dikembangkan oleh Meta (Facebook) - adalah library JavaScript paling populer di dunia untuk membangun antarmuka pengguna (UI). Menurut survei Stack Overflow 2024, React menempati posisi pertama sebagai framework/library web yang paling banyak digunakan oleh developer profesional secara global.
Tapi apa sebenarnya yang membuat React begitu istimewa? React memungkinkan Anda membangun website yang dinamis, interaktif, dan mudah di-maintain melalui pendekatan component-based - memecah UI menjadi bagian-bagian kecil yang dapat digunakan ulang (reusable). Hasilnya adalah website yang lebih cepat, kode yang lebih terstruktur, dan pengalaman pengembangan yang lebih menyenangkan.
Dalam panduan lengkap ini, Anda akan belajar cara membuat website dengan React dari nol: mulai dari instalasi environment, memahami konsep dasar komponen dan props, mengelola state, routing antar halaman, hingga men-deploy website React ke hosting. Mari mulai!
Prasyarat Sebelum Belajar React
Sebelum masuk ke React, pastikan Anda sudah memahami beberapa hal dasar berikut. Jika Anda masih benar-benar baru di dunia pemrograman web, mulailah dengan panduan belajar web development kami atau cek rekomendasi bahasa pemrograman untuk web:

- HTML dasar - struktur elemen, tag semantik, form, dan atribut
- CSS dasar - selector, box model, flexbox, dan responsiveness
- JavaScript ES6+ - arrow function, destructuring, spread operator, array methods (map, filter, reduce), async/await, dan module import/export
Jika Anda belum familiar dengan JavaScript modern (ES6+), luangkan waktu 2-4 minggu untuk mempelajarinya terlebih dahulu. Fondasi yang kuat akan membuat belajar React jauh lebih mudah dan menyenangkan.
Langkah 1: Menyiapkan Environment Development
Untuk membuat website dengan React, Anda memerlukan beberapa tools berikut:
Install Node.js dan npm
React memerlukan Node.js sebagai runtime environment. Kunjungi nodejs.org dan unduh versi LTS (Long Term Support) terbaru. Node.js sudah menyertakan npm (Node Package Manager) secara otomatis.
Verifikasi instalasi dengan perintah berikut di terminal:
node --version
npm --version
Install Code Editor
Visual Studio Code (VS Code) adalah pilihan terbaik untuk mengembangkan aplikasi React. Install beberapa extension yang sangat membantu:
- ES7+ React/Redux/React-Native snippets - shortcut kode React
- Prettier - Code formatter - format kode otomatis
- ESLint - deteksi error dan code style
- Auto Rename Tag - ubah tag pembuka dan penutup secara bersamaan
- Tailwind CSS IntelliSense - jika menggunakan Tailwind
Langkah 2: Membuat Proyek React Baru
Ada dua cara utama untuk membuat proyek React baru di tahun 2026:
Opsi A: Vite (Direkomendasikan)
Vite adalah build tool modern yang jauh lebih cepat dari Create React App. Ini adalah pilihan yang direkomendasikan untuk proyek baru:
npm create vite@latest nama-proyek-anda -- --template react-ts
cd nama-proyek-anda
npm install
npm run dev
Gunakan template react-ts jika ingin menggunakan TypeScript (sangat direkomendasikan),
atau react untuk JavaScript biasa.
Opsi B: Create React App (CRA)
CRA adalah cara tradisional yang lebih lambat tetapi masih banyak digunakan dalam tutorial lama:
npx create-react-app nama-proyek-anda
cd nama-proyek-anda
npm start
Struktur Folder Proyek Vite + React
nama-proyek-anda/
├── public/
│ └── vite.svg
├── src/
│ ├── assets/
│ ├── components/ ← folder untuk komponen reusable
│ ├── pages/ ← folder untuk halaman
│ ├── App.tsx ← komponen root
│ ├── main.tsx ← entry point
│ └── index.css
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts
Langkah 3: Memahami Komponen React
Komponen (Component) adalah blok bangunan utama dari setiap aplikasi React. Setiap bagian dari UI - header, tombol, kartu produk, form - adalah sebuah komponen.
Membuat Komponen Pertama
Buat file src/components/Greeting.tsx:
// src/components/Greeting.tsx
interface GreetingProps {
name: string;
role?: string;
}
export default function Greeting({ name, role = "Pengguna" }: GreetingProps) {
return (
<div className="greeting">
<h1>Halo, {name}!</h1>
<p>Selamat datang sebagai {role}.</p>
</div>
);
}
Gunakan komponen ini di App.tsx:
// src/App.tsx
import Greeting from "./components/Greeting";
export default function App() {
return (
<main>
<Greeting name="Budi" role="Developer" />
<Greeting name="Siti" />
</main>
);
}
JSX: HTML di Dalam JavaScript
JSX (JavaScript XML) adalah sintaks yang memungkinkan Anda menulis markup mirip HTML di dalam JavaScript. Beberapa perbedaan penting JSX vs HTML:
- Gunakan
classNamebukanclass - Gunakan
htmlForbukanforpada label - Setiap elemen harus memiliki tag penutup (termasuk
<img />,<br />) - Ekspresi JavaScript ditulis dalam kurung kurawal:
{nama_variabel} - Komponen harus mengembalikan satu elemen root (atau gunakan Fragment
<>...</>)
Langkah 4: State dan Event Handling
State adalah data yang dimiliki sebuah komponen dan dapat berubah seiring waktu. Ketika state berubah, React secara otomatis me-render ulang komponen tersebut.
Hook useState
Contoh membuat counter sederhana:
import { useState } from "react";
export default function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Jumlah klik: <strong>{count}</strong></p>
<button onClick={() => setCount(count + 1)}>Tambah</button>
<button onClick={() => setCount(count - 1)}>Kurangi</button>
<button onClick={() => setCount(0)}>Reset</button>
</div>
);
}
Mengelola Form dengan State
import { useState } from "react";
export default function LoginForm() {
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
console.log("Login dengan:", email, password);
// kirim ke API
};
return (
<form onSubmit={handleSubmit}>
<input
type="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Email"
/>
<input
type="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Password"
/>
<button type="submit">Masuk</button>
</form>
);
}
Langkah 5: Rendering List dan Kondisional
Menampilkan List Data
Gunakan metode .map() untuk merender array data menjadi daftar elemen:
const produk = [
{ id: 1, nama: "Web Hosting", harga: "Rp 15.000/bln" },
{ id: 2, nama: "VPS Hosting", harga: "Rp 75.000/bln" },
{ id: 3, nama: "Cloud Hosting", harga: "Rp 50.000/bln" },
];
export default function DaftarProduk() {
return (
<ul>
{produk.map((item) => (
<li key={item.id}>
<strong>{item.nama}</strong> - {item.harga}
</li>
))}
</ul>
);
}
Perhatikan atribut key yang wajib ada pada setiap elemen dalam list.
React menggunakan key untuk mengidentifikasi elemen mana yang berubah.
Rendering Kondisional
interface StatusProps {
isLoggedIn: boolean;
username?: string;
}
export default function Status({ isLoggedIn, username }: StatusProps) {
return (
<div>
{isLoggedIn ? (
<p>Selamat datang, {username}! <button>Logout</button></p>
) : (
<p>Silakan <a href="/login">login</a> untuk melanjutkan.</p>
)}
</div>
);
}

Langkah 6: Mengambil Data dari API (useEffect)
Hook useEffect digunakan untuk side effects - termasuk fetching data dari API
setelah komponen dimuat.
import { useState, useEffect } from "react";
interface Post {
id: number;
title: string;
body: string;
}
export default function BlogPosts() {
const [posts, setPosts] = useState<Post[]>([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/posts?_limit=5")
.then((res) => res.json())
.then((data) => {
setPosts(data);
setLoading(false);
})
.catch(() => {
setError("Gagal memuat data.");
setLoading(false);
});
}, []); // array kosong = jalankan sekali saat mount
if (loading) return <p>Memuat artikel...</p>;
if (error) return <p>{error}</p>;
return (
<div>
{posts.map((post) => (
<article key={post.id}>
<h3>{post.title}</h3>
<p>{post.body}</p>
</article>
))}
</div>
);
}
Langkah 7: Routing dengan React Router
React sendiri tidak memiliki fitur routing bawaan. Gunakan library React Router untuk navigasi antar halaman:
npm install react-router-dom
Setup routing di main.tsx:
import { BrowserRouter, Routes, Route } from "react-router-dom";
import HomePage from "./pages/HomePage";
import AboutPage from "./pages/AboutPage";
import BlogPage from "./pages/BlogPage";
import NotFoundPage from "./pages/NotFoundPage";
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/tentang" element={<AboutPage />} />
<Route path="/blog" element={<BlogPage />} />
<Route path="*" element={<NotFoundPage />} />
</Routes>
</BrowserRouter>
);
}
Navigasi antar halaman menggunakan komponen Link:
import { Link } from "react-router-dom";
export default function Navbar() {
return (
<nav>
<Link to="/">Beranda</Link>
<Link to="/tentang">Tentang</Link>
<Link to="/blog">Blog</Link>
</nav>
);
}
Langkah 8: Styling Website React
Ada beberapa pendekatan populer untuk styling di React:
1. Tailwind CSS (Direkomendasikan) — Tailwind vs Bootstrap?
Install dan konfigurasi Tailwind CSS:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Tailwind memungkinkan styling langsung di JSX tanpa menulis CSS terpisah:
<button className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
Daftar Sekarang
</button>
2. CSS Modules
Buat file Button.module.css di samping komponen:
/* Button.module.css */
.button {
background-color: #3b82f6;
color: white;
padding: 8px 16px;
border: none;
cursor: pointer;
}
.button:hover {
background-color: #2563eb;
}
import styles from "./Button.module.css";
export default function Button({ label }: { label: string }) {
return <button className={styles.button}>{label}</button>;
}
Langkah 9: Build dan Optimasi untuk Production
Sebelum deploy, build proyek untuk production:
npm run build
Perintah ini akan membuat folder dist/ berisi file HTML, CSS, dan JavaScript
yang sudah diminifikasi dan dioptimasi untuk performa.
Tips Optimasi Performa React
- React.memo - cegah re-render yang tidak perlu pada komponen
- useMemo dan useCallback - memoize nilai dan fungsi yang mahal secara komputasi
- Code splitting dengan lazy() - muat komponen hanya saat dibutuhkan
- Optimalkan gambar - gunakan format WebP dan atribut
loading="lazy" - Bundle analyzer - gunakan
rollup-plugin-visualizeruntuk analisis ukuran bundle
Langkah 10: Deploy Website React ke Hosting
Setelah website React Anda siap, saatnya deploy ke hosting agar bisa diakses publik. Jika belum punya hosting, cek panduan hosting terbaik untuk kebutuhan website React Anda.
Opsi 1: Deploy ke Vercel (Termudah)
- Push kode ke GitHub
- Kunjungi vercel.com dan login dengan akun GitHub
- Klik "New Project" dan pilih repository Anda
- Vercel akan otomatis mendeteksi Vite/React dan mengkonfigurasi build settings
- Klik "Deploy" - selesai! Website Anda live dalam hitungan menit
Opsi 2: Deploy ke Shared Hosting / VPS
Untuk deploy ke hosting tradisional (shared hosting atau VPS), ikuti langkah berikut:
- Jalankan
npm run builduntuk membuat folderdist/ - Upload seluruh isi folder
dist/ke direktoripublic_html/via FTP atau File Manager cPanel - Buat file
.htaccessdi root untuk mendukung client-side routing:
# .htaccess untuk React Router
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Opsi 3: Deploy ke VPS dengan Nginx
# Konfigurasi Nginx untuk React SPA
server {
listen 80;
server_name domainanda.com;
root /var/www/html/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# Cache aset statis
location ~* .(js|css|png|jpg|gif|svg|ico)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
FAQ: Cara Membuat Website dengan React
Pertanyaan yang Sering Diajukan
Apakah React cocok untuk pemula yang baru belajar web development?
React tidak direkomendasikan sebagai langkah pertama. Pelajari HTML, CSS, dan JavaScript dasar terlebih dahulu minimal 2-3 bulan. Setelah memahami fundamental JavaScript (terutama ES6+), baru mulai belajar React. Dengan fondasi yang kuat, belajar React akan terasa lebih logis dan menyenangkan.
Apa perbedaan React, Vue, dan Angular?
React adalah library (bukan framework penuh) yang fokus pada UI, sangat fleksibel, dan memiliki ekosistem terbesar. Vue lebih mudah dipelajari oleh pemula dengan kurva belajar lebih landai. Angular adalah framework lengkap dari Google, cocok untuk enterprise. Untuk pemula, React atau Vue adalah pilihan yang lebih baik.
Haruskah saya belajar TypeScript untuk React?
TypeScript sangat direkomendasikan meski tidak wajib. TypeScript menambahkan type safety yang mencegah banyak bug runtime dan membuat kode lebih mudah di-maintain. Mulai dengan JavaScript biasa dulu jika masih pemula, lalu migrasi ke TypeScript setelah nyaman dengan React.
Apa itu Next.js dan apa bedanya dengan React biasa?
Next.js adalah framework berbasis React yang menambahkan fitur SSR, SSG, routing berbasis file, dan optimasi otomatis. React biasa (SPA) kurang optimal untuk SEO. Next.js sangat direkomendasikan jika SEO adalah prioritas, seperti website bisnis atau e-commerce.
Berapa lama waktu yang dibutuhkan untuk bisa membuat website dengan React?
Dengan belajar 1-2 jam per hari: fundamental React bisa dikuasai dalam 4-6 minggu. Untuk membuat website lengkap dengan routing dan API fetching, butuh sekitar 2-3 bulan. Menjadi developer React yang produktif membutuhkan 6-12 bulan pengalaman membangun proyek nyata.
Hosting apa yang cocok untuk website React?
Untuk SPA React, Vercel dan Netlify adalah pilihan termudah dengan tier gratis. Untuk hosting Indonesia, Anda bisa upload hasil build ke shared hosting biasa karena React menghasilkan file statis HTML/CSS/JS. Jika menggunakan Next.js dengan SSR, diperlukan hosting Node.js atau VPS.
Apakah bisa membuat website e-commerce dengan React?
Ya, sangat bisa! Untuk e-commerce, gunakan Next.js sebagai framework, Midtrans atau Stripe untuk pembayaran, dan hubungkan ke backend pilihan Anda. React memberikan fleksibilitas penuh untuk membangun pengalaman belanja yang unik dan berperforma tinggi.
Kesimpulan
Belajar cara membuat website dengan React adalah investasi yang sangat berharga dalam karier Anda sebagai web developer. Dimulai dari memahami konsep komponen dan JSX, mengelola state dengan hooks, routing antar halaman, hingga deploy ke hosting - setiap langkah membawa Anda lebih dekat ke kemampuan membangun aplikasi web modern yang profesional.
Kunci keberhasilan belajar React adalah konsistensi dan praktek nyata. Jangan hanya membaca tutorial - bangun proyek sungguhan, sekecil apapun. Setiap bug yang Anda selesaikan adalah pelajaran berharga yang tidak bisa didapat dari menonton video tutorial.
Ketika website React Anda sudah siap dipublikasikan, pastikan memilih layanan hosting yang mendukung performa optimal - baik itu shared hosting untuk aplikasi statis, atau VPS/Node.js hosting untuk aplikasi Next.js dengan server-side rendering. Dengan hosting yang tepat, website React Anda akan berjalan cepat dan dapat diandalkan untuk pengguna di seluruh Indonesia.
Artikel Terkait
Cara Membuat REST API: Panduan Lengkap untuk Pemula 2026
Panduan lengkap cara membuat REST API dari nol untuk pemula. Pelajari konsep API, metode HTTP, cara membuat endpoint, autentikasi, hingga deploy API ke hosting - dilengkapi contoh kode Node.js dan PHP.
Baca Selengkapnya →Cara Membuat Website dari Nol: Panduan Lengkap 2026
Pelajari cara membuat website dari nol dengan panduan lengkap step-by-step. Pilih hosting, domain, CMS, dan desain website profesional untuk bisnis Anda.
Baca Selengkapnya →Review 10 Web Hosting Terbaik Indonesia 2026: Perbandingan Lengkap
Review web hosting terbaik Indonesia 2026: perbandingan 10 layanan web hosting indonesia terbaik berdasarkan kecepatan, uptime, harga, dan kualitas support.
Baca Selengkapnya →Hosting Node.js Terbaik Indonesia 2026: Rekomendasi & Panduan Deploy
Rekomendasi hosting Node.js terbaik di Indonesia 2026. Panduan lengkap cara memilih, deploy aplikasi Node.js ke hosting, konfigurasi PM2 dan Nginx, serta perbandingan provider hosting Node.js terpopuler.
Baca Selengkapnya →Cara Deploy Website ke Server: Panduan Lengkap 3 Metode 2026
Panduan lengkap cara deploy website ke server dengan 3 metode: FTP, Git, dan cPanel File Manager. Cocok untuk website statis, PHP, WordPress, hingga aplikasi Node.js dan Laravel di hosting maupun VPS.
Baca Selengkapnya →Butuh Hosting untuk Website Anda?
Dapatkan hosting cepat, aman, dan terpercaya dengan harga terjangkau. Gratis domain, SSL, dan support 24/7.
Jangan Ketinggalan Promo!
Subscribe newsletter kami dan dapatkan diskon hingga 50% untuk pembelian pertama kamu.
Gratis, tanpa spam. Bisa unsubscribe kapan saja.