ReactJS

Belum masuk. Progresmu tidak tersimpan.

Masuk
  • Bab 1 dari 10
  • 25 menit
  • 1 latihan kode
  • 4 soal kuis

Pengenalan React: library UI, sejarah, dan ekosistemnya

Di bab ini (8 bagian)
  1. Tujuan
  2. Apa itu React?
  3. Sejarah singkat React
  4. Kenapa memilih React?
  5. React vs Angular vs Vue
  6. Ekosistem React
  7. Kesalahan umum
  8. Rangkuman

Tujuan bab ini

  • Menjelaskan apa itu React dan kenapa React disebut library UI, bukan framework.
  • Menceritakan perjalanan React dari 2013 sampai React 19.
  • Membandingkan React dengan Angular dan Vue secara adil.
  • Mengenal alat-alat penting di ekosistem React: Vite, React Router, TanStack Query, dan Next.js.

Apa itu React?

Menurut dokumentasi resminya di react.dev, React adalah library JavaScript untuk membangun antarmuka pengguna (UI). Kata kuncinya ada dua: library dan UI.

React hanya mengurus satu lapisan aplikasi, yaitu tampilan. React tidak punya fitur bawaan untuk pindah halaman (routing), memanggil API, atau menyimpan data ke server. Untuk hal-hal itu kamu memilih sendiri pustaka tambahan dari ekosistemnya.

Bedanya library dan framework sering dijelaskan begini:

  • Library: kamu yang memanggil kode library saat butuh. Kamu memegang kendali struktur aplikasi.
  • Framework: framework yang memanggil kodemu. Framework menentukan struktur folder, cara routing, cara mengambil data, dan seterusnya.

Analogi gampangnya: library itu seperti kotak perkakas. Kamu ambil obeng saat perlu obeng. Framework itu seperti rumah siap huni dengan denah yang sudah ditentukan; kamu tinggal mengisi kamarnya.

Inti cara berpikir React ada tiga:

  1. Berbasis komponen. UI dipecah jadi potongan kecil yang mandiri, misalnya Navbar, KartuProduk, Tombol. Potongan ini bisa dipakai berulang.
  2. Deklaratif. Kamu menulis "tampilannya harus seperti apa untuk data ini", bukan "langkah-langkah mengubah DOM".
  3. Tampilan mengikuti data. Saat data (state) berubah, React memperbarui bagian layar yang terdampak secara otomatis.

Contoh kecil supaya kamu punya gambaran. Ini sebuah komponen React:

function Sapaan({ nama }) {
  return <h1>Halo, {nama}!</h1>;
}

// Dipakai di komponen lain:
<Sapaan nama="Rina" />
// Tampil di layar: Halo, Rina!

Sintaks yang mirip HTML di dalam JavaScript itu namanya JSX. Tenang, JSX dibahas tuntas di bab berikutnya. Untuk sekarang cukup tahu: satu komponen itu cuma fungsi yang mengembalikan tampilan.

Slide apa itu React

Sejarah singkat React

React lahir dari masalah nyata di Facebook. News feed mereka makin rumit, dan menjaga tampilan tetap sinkron dengan data yang terus berubah jadi sumber bug. Berikut perjalanannya:

TahunPeristiwa
2011Jordan Walke, engineer Facebook, membuat prototipe awal bernama FaxJS.
2013React dirilis open-source di JSConf US.
2015React Native hadir, membawa konsep React ke aplikasi mobile.
2017React 16 dengan mesin baru bernama Fiber; muncul Error Boundary dan Portal.
2019Hooks (React 16.8) membuat function component bisa punya state.
2022React 18 membawa concurrent rendering.
2024React 19 stabil: Actions, hook baru seperti use dan useActionState, dan Server Components.

Titik balik terbesar adalah Hooks di awal 2019. Sebelumnya, komponen yang butuh state wajib ditulis sebagai class component dengan this.state dan method lifecycle seperti componentDidMount. Setelah Hooks, cukup fungsi biasa plus useState atau useEffect.

// Cara modern: function component + hook
import { useState } from "react";

function Penghitung() {
  const [angka, setAngka] = useState(0);
  return <button onClick={() => setAngka(angka + 1)}>Klik: {angka}</button>;
}

Di kelas ini kita hanya memakai function component dan hooks. Class component masih bisa kamu temui di kode lama, tapi bukan cara menulis proyek baru.

Kenapa memilih React?

Ada banyak alasan React jadi salah satu skill front-end paling dicari:

  • Komponen bisa dipakai ulang. Bikin KartuProduk sekali, pakai di halaman beranda, pencarian, dan keranjang. Mengubah desainnya cukup di satu tempat.
  • Performa terjaga. React membandingkan tampilan lama dan baru di memori dulu (Virtual DOM), lalu hanya mengubah bagian DOM yang benar-benar berbeda.
  • Ekosistem luas. Mau routing, form, fetching data, animasi, sampai testing, pustakanya sudah matang.
  • Cukup JavaScript. Tidak ada bahasa template khusus. Perulangan pakai map, percabangan pakai if atau ternary. Skill JavaScript kamu langsung terpakai.
  • Sekali belajar, banyak platform. Konsep yang sama dipakai di web, mobile lewat React Native, bahkan desktop.
  • Komunitas dan karier. Banyak perusahaan, dari Meta, Netflix, Airbnb sampai startup lokal, memakai React. Lowongan kerja dan materi belajarnya melimpah.

Satu catatan jujur: karena React cuma library, kamu harus membuat lebih banyak keputusan sendiri (pakai router apa, state management apa). Buat pemula ini bisa terasa membingungkan. Kabar baiknya, ada pilihan "default" yang umum dipakai, dan kita bahas di bawah.

React vs Angular vs Vue

Tiga nama ini paling sering dibandingkan. Ketiganya sama-sama mampu membangun aplikasi modern.

AspekReactAngularVue
JenisLibrary UIFramework lengkapFramework progresif
PengembangMetaGoogleEvan You & komunitas
Bahasa utamaJavaScript + JSXTypeScriptJavaScript + Single File Component
Kurva belajarSedangCuramLandai
Routing & HTTPPustaka pihak ketigaSudah bawaanPustaka resmi terpisah
Ukuran intiKecilBesarKecil sampai sedang

Cara membaca tabel ini:

  • Angular memberi paket lengkap: routing, HTTP client, form, dependency injection. Cocok untuk tim enterprise yang ingin semua orang menulis dengan pola yang sama.
  • Vue terkenal ramah pemula dengan template mirip HTML dan dokumentasi yang rapi.
  • React paling fleksibel dan ekosistemnya paling besar, tapi kamu yang merakit potongannya.

Jangan terjebak debat "mana yang terbaik". Pilihan teknologi ditentukan kebutuhan proyek, keahlian tim, dan dukungan jangka panjang. Konsep seperti komponen, props, dan state ada di ketiganya, jadi ilmu dari kelas ini tetap berguna kalau suatu saat kamu pindah.

Ekosistem React

React inti sengaja dibuat minimal. Kekuatannya justru ada di alat-alat sekitarnya. Empat yang paling penting untuk pemula:

AlatFungsi
ViteBuild tool untuk membuat dan menjalankan proyek React. Server dev-nya cepat dan langsung memperbarui browser saat file disimpan.
React RouterNavigasi antar halaman di aplikasi satu halaman (SPA), misalnya / ke /produk/5.
TanStack QueryMengambil, menyimpan cache, dan menyinkronkan data dari server tanpa menulis banyak useEffect.
Next.jsFramework di atas React: routing berbasis folder, render di server (SSR) yang ramah SEO, dan Server Components.

Masih ada yang lain: TypeScript untuk tipe data, Tailwind CSS untuk styling, Redux Toolkit untuk state global yang besar, MUI untuk komponen siap pakai, serta Vitest/Jest dan React Testing Library untuk pengujian.

Peta sederhananya: belajar React dasar dulu dengan Vite, lalu tambahkan React Router saat butuh banyak halaman, TanStack Query saat sering mengambil data API, dan Next.js saat butuh SEO atau render di server.

Penting: create-react-app (CRA) sudah usang dan tidak direkomendasikan lagi oleh tim React. Kalau menemukan tutorial lama yang memakai npx create-react-app, ganti dengan Vite atau Next.js.

Kesalahan umum

  • Menganggap React framework lengkap, lalu bingung kenapa tidak ada fitur routing atau HTTP bawaan.
  • Belajar dari tutorial lama yang masih memakai class component atau create-react-app.
  • Langsung lompat ke Next.js sebelum paham komponen, props, dan state. Next.js menambah banyak konsep sekaligus.
  • Lompat ke React sebelum JavaScript kuat. React sangat bergantung pada arrow function, destructuring, spread, map, dan filter.
  • Terlalu lama memilih framework. Konsepnya mirip; yang penting mulai membangun sesuatu.

Rangkuman

  • React adalah library JavaScript untuk membangun UI berbasis komponen yang deklaratif.
  • Dirilis open-source oleh Facebook pada 2013; Hooks (2019) menjadikan function component standar, dan React 19 adalah versi terbaru.
  • Kelebihannya: komponen reusable, performa terjaga, ekosistem luas, cukup modal JavaScript.
  • Angular framework lengkap, Vue framework progresif, React library fleksibel; pilih sesuai kebutuhan tim.
  • Ekosistem inti: Vite untuk proyek, React Router untuk halaman, TanStack Query untuk data server, Next.js untuk SSR.

Selesaikan bab ini

  1. 1. Baca materi
  2. 2. Latihan kode (1)
  3. 3. Kuis (4 soal)

Latihan kode: Rekomendasi alat ekosistem React

Buat fungsi rekomendasiAlat(kebutuhan) yang menerima array kebutuhan proyek dan mengembalikan array nama alat dari ekosistem React, sesuai urutan kebutuhan:

KebutuhanAlat
"proyek-baru""Vite"
"routing""React Router"
"data-server""TanStack Query"
"seo""Next.js"

Kebutuhan yang tidak dikenal dilewati, dan alat yang sama tidak boleh muncul dua kali. Contoh: rekomendasiAlat(["routing", "seo", "routing"]) menghasilkan ["React Router", "Next.js"].

Di komponen React, hasil fungsi ini nanti tinggal dirender sebagai list: rekomendasiAlat(pilihan).map((alat) => <li key={alat}>{alat}</li>). Karena nama alat unik, nama itu sendiri aman dipakai sebagai key.

Cek pemahaman

  1. 1Kenapa React disebut library, bukan framework?

  2. 2Hooks diperkenalkan di React 16.8 pada 2019, sehingga function component bisa memiliki state.

  3. 3Alat mana yang dipakai untuk mengambil, menyimpan cache, dan menyinkronkan data dari server?

  4. 4Apa yang tampil di layar?

    function Sapaan({ nama }) {
      return <h1>Halo, {nama}!</h1>;
    }
    
    // dirender sebagai:
    <Sapaan nama="Rina" />