searching

Thursday, 31 July 2025

Struktur dan Aturan Penulisan JSX yang Benar

# Aturan Dasar Penulisan JSX: Panduan Lengkap untuk Pemula


Aturan dasar penulisan JSX merupakan pondasi penting bagi setiap pengembang React. Tanpa memahami aturan ini, Anda akan sering menemui error saat koding. JSX sendiri adalah ekstensi sintaksis yang sangat populer di ekosistem modern. Artikel ini akan membedah secara mendalam semua ketentuan teknisnya.

## Mengenal Apa Itu JSX dan Cara Kerjanya di React

JSX adalah singkatan dari **JavaScript XML**. Sintaks ini memungkinkan Anda menulis kode mirip HTML di JavaScript. Namun, perlu diingat bahwa browser tidak bisa membaca JSX secara langsung. Di sinilah peran penting dari **Babel Transpiler**.

Babel bertugas mengubah kode JSX menjadi fungsi JavaScript biasa. Fungsi tersebut biasanya berupa `React.createElement()`. Hasil dari proses ini adalah objek JavaScript yang mendeskripsikan UI. Kumpulan objek tersebut membentuk apa yang kita kenal sebagai **Virtual DOM**.

Virtual DOM memungkinkan React memperbarui tampilan secara efisien. React hanya akan mengubah bagian yang memang perlu diperbarui. Hal ini membuat performa aplikasi menjadi sangat cepat dan responsif. Penggunaan JSX membuat proses deklarasi UI menjadi jauh lebih intuitif.



## Aturan Dasar Penulisan JSX untuk Struktur Komponen

Dalam membangun **React Components**, ada aturan struktur yang sangat ketat. Anda tidak bisa sembarangan menumpuk elemen di dalam fungsi return. Aturan pertama adalah setiap komponen wajib mengembalikan satu elemen root saja. Jika Anda memiliki dua elemen `<div>`, Anda harus membungkusnya.

Kegagalan membungkus elemen akan menyebabkan error pada proses kompilasi. Ini terjadi karena fungsi JavaScript hanya bisa mengembalikan satu nilai. Sebagai solusi, Anda bisa menggunakan elemen pembungkus seperti `<div>` atau `<section>`. Namun, terkadang penambahan div ekstra bisa merusak struktur tata letak CSS Anda.

Untuk mengatasi masalah tersebut, React menyediakan fitur bernama Fragments. Anda bisa menggunakan sintaks kosong `<>...</>` atau `<React.Fragment>`. Fragments memungkinkan Anda mengelompokkan elemen tanpa menambah node tambahan di DOM. Ini adalah praktik terbaik untuk menjaga kebersihan struktur HTML Anda.

Selain elemen tunggal, Anda harus memperhatikan penutupan tag. Dalam HTML biasa, beberapa tag seperti `<img>` atau `<input>` tidak perlu ditutup. Namun, dalam aturan dasar penulisan JSX, semua tag wajib ditutup. Untuk tag tanpa isi, Anda harus menggunakan self-closing tags seperti `<img />` atau `<br />`.

## Ketentuan Atribut dan Properti pada Sintaksis JSX

Saat bekerja dengan **React.js Syntax**, Anda akan menyadari perbedaan penamaan atribut. JSX menggunakan standar penamaan camelCase untuk hampir semua atributnya. Misalnya, Anda tidak menggunakan `onclick`, melainkan `onClick`. Hal yang sama berlaku untuk `tabindex` yang menjadi `tabIndex`.

Perbedaan paling mencolok ada pada penggunaan kelas CSS. Di HTML, kita menggunakan atribut `class`. Namun, di dalam JSX, Anda harus menggunakan `className`. Hal ini dikarenakan kata `class` adalah kata kunci yang sudah dipesan di JavaScript. Menggunakan `class` di dalam JSX akan memicu peringatan error di konsol browser.



Selain itu, ada juga atribut `for` pada elemen label yang berubah. Anda harus menggantinya dengan `htmlFor`. Perubahan-perubahan kecil ini sangat penting untuk diingat agar kode tetap valid. Pengembang pemula sering kali terjebak pada kesalahan penulisan atribut yang sederhana seperti ini.

Penting juga untuk memahami konsep [Props Passing](/dasar-react) dalam komponen. Atribut yang Anda tulis di JSX akan dikirim sebagai objek props. Ini adalah cara utama untuk mengalirkan data dari induk ke anak. Pastikan nama properti yang Anda kirim konsisten dengan yang diterima di komponen tujuan.

## Implementasi Logika dan Gaya dalam Penulisan JSX

Salah satu kekuatan utama JSX adalah kemampuannya menyisipkan logika JavaScript. Anda bisa menggunakan kurung kurawal `{}` untuk menulis ekspresi JavaScript di tengah markup. Di dalam kurung kurawal ini, Anda bisa memanggil variabel atau menjalankan fungsi. Anda juga bisa melakukan perhitungan matematika sederhana secara langsung.

Namun, Anda tidak bisa menulis pernyataan seperti `if-else` atau `for loop` di sana. Sebagai gantinya, gunakan operator ternary atau operator logika `&&`. Teknik ini disebut dengan conditional rendering. Misalnya, Anda bisa menampilkan tombol login hanya jika status user adalah false. Ini membuat UI Anda menjadi sangat dinamis dan cerdas.

Untuk urusan gaya atau styling, JSX mendukung penggunaan inline CSS. Namun, sintaksnya berbeda dengan HTML standar yang menggunakan string. Di React, inline style ditulis sebagai objek JavaScript. Properti CSS juga harus menggunakan format camelCase, misalnya `backgroundColor` bukan `background-color`.

Contoh penulisan style yang benar adalah `style={{ color: 'red', fontSize: '16px' }}`. Perhatikan penggunaan kurung kurawal ganda di sana. Kurung luar adalah penanda ekspresi JSX, sedangkan kurung dalam adalah objek JavaScript. Anda bisa mempelajari lebih lanjut tentang [styling di React](/panduan-css-react) untuk teknik yang lebih rapi.

## Menangani Interaksi Pengguna dalam Format JSX

Interaksi pengguna adalah bagian inti dari aplikasi web modern. Dalam JSX, menangani event seperti klik sangatlah mudah. Anda cukup memberikan referensi fungsi ke atribut event yang sesuai. Pastikan Anda tidak memanggil fungsi tersebut secara langsung dengan tanda kurung. Cukup tuliskan nama fungsinya saja agar dieksekusi saat event terjadi.

Misalnya, penulisan yang benar adalah `onClick={handleClick}`. Jika Anda menulis `onClick={handleClick()}`, fungsi akan berjalan saat render pertama kali. Ini adalah kesalahan umum yang sering menyebabkan bug "infinite loop". Terutama jika fungsi tersebut mengubah state di dalam komponen Anda.

Pengelolaan data atau state juga sangat berkaitan erat dengan tampilan JSX. Setiap kali state berubah, React akan memicu proses re-render secara otomatis. JSX Anda akan dievaluasi ulang untuk mencerminkan data terbaru. Integrasi antara logika state dan deklarasi UI inilah yang membuat React sangat powerful.

Pastikan Anda selalu menjaga kebersihan kode di dalam bagian return. Jika logika conditional rendering terlalu kompleks, sebaiknya pindahkan ke variabel di luar return. Hal ini akan meningkatkan keterbacaan kode Anda secara signifikan. Kode yang bersih akan jauh lebih mudah untuk didebug di masa depan.

## Kesimpulan: Pentingnya Memahami Aturan Standar JSX

Memahami aturan dasar penulisan JSX adalah langkah awal menjadi ahli React. Aturan ini bukan sekadar formalitas, melainkan kebutuhan teknis sistem. Dengan mengikuti standar, Anda memastikan kode dapat ditranspilasi dengan sempurna oleh Babel. Aplikasi Anda pun akan berjalan lancar tanpa error sintaksis yang tidak perlu.

Selalu ingat untuk menutup setiap tag dengan benar. Gunakan satu elemen root atau Fragments sebagai pembungkus utama. Jangan lupa gunakan camelCase untuk atribut dan `className` untuk kelas CSS. Manfaatkan kurung kurawal untuk menyisipkan dinamika logika ke dalam tampilan antarmuka Anda.

Untuk referensi lebih lanjut yang lebih teknis, Anda bisa mengunjungi [Dokumentasi Resmi React](https://react.dev). Teruslah berlatih dengan membuat proyek-proyek kecil. Semakin sering Anda menulis JSX, semakin terbiasa Anda dengan pola uniknya. Jangan ragu untuk mengeksplorasi [tutorial hooks](/hooks-tutorial) setelah Anda menguasai dasar-dasar sintaksis ini.


JSX (JavaScript XML) adalah ekstensi sintaks JavaScript yang memungkinkan kita menulis kode yang mirip HTML di dalam file JavaScript, terutama digunakan dalam React. JSX memudahkan kita membangun antarmuka pengguna (UI) dengan sintaks yang lebih deklaratif dan intuitif.

berikut contoh sederhana dari struktur JSX
const element = (
  <div>
    <h1>Halo Sahabatku!</h1>
    <p>Berikut Ini adalah Contoh Sederhana paragraf di dalam JSX.</p>
  </div>
);



bagian bagian pada JSX Tag Pembuka dan Penutup Seperti <div>....</div> sedangkan Isi atau anak element bisa berupa text, element JSX lainnya atau ekpresi javascript dalam {}

  1. Harus Punya Satu Root Element
JSX hanya bisa mengembalikan satu elemen utama. Gunakan <div> atau React.Fragment (<> ... </>) jika ingin menulis lebih dari satu elemen:
// ❌ Salah:
return (
  <h1>Halo</h1>
  <p>Selamat datang sahabatku</p>
);

// ✅ Benar:
return (
  <div>
    <h1>Halo</h1>
    <p>Selamat datang sahabatku</p>
  </div>
);


    
       2. Gunakan ClassName Untuk CSS
Karena class adalah keyword di dalam javascript, maka kita gunakan ClassName di JSX 
// HTML
<div class="kotakForm"></div>

// JSX
<div className="kotakForm"></div>

         3. Atribut Menggunakan camleCase
JSX menggunakan penulisan atribut seperti onClick, htmlFor, tabIndex, bukan lowercase seperti HTML biasa.
<button onClick={handleClick}>Klik Saya</button>
<label htmlFor="email">Email</label>

         4. Gunakan {} untuk ekpresi JavaScript
Kita bisa menyisipkan JavaScript (bukan statement) dengan {}

const nama = "Andi";
<p>Halo, Saya {nama}</p>

         5. Komentar JSX
Untuk memberikan komentar pada JavaScript kita bisa mengisi seperti berikut :
{/* Ini Komentar dalam JavaScript */}

         6. Tag harus di tutup
Semua element di JSX harus di tutup, termasuk element kosong harus di tutup juga berikut contoh
// Benar
<img src="logo.png" alt="Logo" />
<br />

Contoh Lengkap:
function App() {
  const nama = "Ali";
  const umur = 17;

  return (
    <div className="container">
      <h1>Selamat Datang, {nama}</h1>
      <p>Umur kamu adalah {umur} tahun</p>
    </div>
  );
}



         7. Tabel Ringkasan Aturan JSX
AturanPenjelasan Singkat
Satu elemen root        Bungkus semua elemen dalam satu tag
Gunakan className        Gantikan class untuk CSS
Gunakan camelCase        Atribut seperti onClick, htmlFor
Sisipkan ekspresi dengan {}        Bukan statement (jangan pakai if)
Semua tag harus ditutup        Tag seperti <img />, <br />


Berikut contoh sederhana yang menampilkan dua variabel nama dan umur

function App() {

  const nama = "Andi";
  const umur = 22;

  return (
    <div>
      <h1>Halo, nama saya {nama}</h1>
      <p>Umur saya {umur} tahun</p>
    </div>
  );
}

export default App;


Tambahkan Materi Berikut : 
  • Penanganan Atribut dan Event
  • Fragment dan Elemen Pembungkus

Sunday, 13 July 2025

Menyisipkan JavaScript dalam JSX



Berikut sedikit penjelasan tentang pembelajaran "Menyisipkan JavaScript dalam JSX" yang cocok untuk pemula yang sedang mempelajari React:

JSX adalah ekstensi JavaScript yang digunakan dalam React. Salah satu keunggulan JSX adalah kemampuannya untuk menyisipkan ekspresi JavaScript langsung di dalam markup (tampilan) menggunakan tanda kurung kurawal {}

Apa Itu Ekspresi JavaScript?

Ekpresi adalah bagian dari code JavaScript yang menghasilkan sebuah nilai misalnya

  • Nilai langsung "Haloo" atau 123
  • Variabel : nama
  • Fungsi : getName
  • Operasi : 2+2 atau angka * 10
Hanya ekpresi bukan statemen for if atau while

Cara Menyisipkan JavaScript di JSX

Gunakan kurung kurawel {} untuk menyisipkan JavaScript dalam JSX

const nama = "jono";

const elemen = <h1>Heloo , {nama}!</h1>

Contoh Penggunaan JavaScript di JSX

1. Variabel

const nama = "Jono";
return <p>Selamat datang, {nama}</p>;
2. Operasi Matematika
const a = 5, b = 10;
return <p>Hasil: {a + b}</p>; // Output: Hasil: 15
3. Ternary Operator (if sederhana)
const isLoggedIn = true;
return <p>{isLoggedIn ? "Selamat Datang" : "Silakan Login"}</p>;
4. Fungsi
function getWaktu() {
  return new Date().toLocaleTimeString();
}
return <p>Waktu sekarang: {getWaktu()}</p>;
4. Array dan .Map
const buah = ["Apel", "Jeruk", "Mangga"];
return (
  <ul>
    {buah.map((item, index) => (
      <li key={index}>{item}</li>
    ))}
  </ul>
);

Hal yang Tidak Boleh Dilakukan

Tidak bisa menggunakan pernyataan (statement) seperti :

// x ini tidak boleh

{ if (true) { return "Halo" } }
Gunakan ternary atau ekpresi pendek
//  Gunakan ini:
{true && <p>Halo</p>}

Kesimpulan

JSX hanya menerima ekspresi di dalam {} karena JSX pada akhirnya dikompilasi ke dalam fungsi JavaScript biasa.




Link 1

Link 2

Link 3

Link 4

Link 5

Link 6

Link 7

Sintaks Dasar JSX dan HTML

# Belajar JSX dari Dokumentasi Resmi React: Panduan Lengkap


Belajar jsx dari dokumentasi resmi react merupakan langkah fundamental bagi setiap pengembang web. Saat Anda mulai menggunakan React, Anda akan sering menemui sintaks yang unik. Sintaks tersebut terlihat mirip seperti HTML tetapi berada di dalam file JavaScript. Inilah yang kita kenal dengan istilah JSX atau JavaScript XML.

Dokumentasi resmi menyediakan panduan yang sangat komprehensif mengenai teknologi ini. Dengan mengikuti panduan tersebut, Anda akan memahami cara membangun antarmuka yang dinamis. Artikel ini akan mengupas tuntas materi penting dari sumber resminya. Kami akan membantu Anda memahami setiap detail teknis dengan cara yang sederhana.


## 1. Apa Itu JSX dan Mengapa Penting Saat Belajar React?

Banyak pemula bertanya mengapa mereka harus menggunakan JSX. Secara teknis, JSX adalah ekstensi sintaks untuk JavaScript. Meskipun opsional, mayoritas pengembang menggunakannya karena kemudahannya. Penulisan kode menjadi lebih visual dan terstruktur dengan format ini.

### Memahami Konsep JavaScript XML sebagai Dasar

Konsep utama dari JavaScript XML adalah penggabungan logika dan tampilan. Dahulu, pengembang memisahkan file HTML dan JavaScript secara ketat. Namun, React mengubah paradigma ini dengan menyatukannya. Hal ini memudahkan kita dalam memantau perubahan pada elemen antarmuka.

### Cara React Component Memanfaatkan Struktur Deklaratif

Sebuah React Component berfungsi sebagai blok bangunan utama dalam aplikasi. Komponen ini menggunakan JSX untuk mendeskripsikan apa yang harus muncul di layar. Sifatnya deklaratif, artinya Anda hanya perlu mendefinisikan tampilan akhirnya. React akan mengurus segala hal detail untuk memperbarui tampilan tersebut.

### Peran Virtual DOM dalam Mempercepat Rendering

Salah satu alasan React sangat cepat adalah penggunaan Virtual DOM. Saat JSX berubah, React tidak langsung memperbarui seluruh halaman web. Ia akan membandingkan perubahan tersebut dalam memori terlebih dahulu. Hanya bagian yang berubah saja yang akan dikirim ke layar pengguna. Hal ini meminimalkan beban proses pada browser Anda.


## 2. Panduan Memahami Sintaks dan Aturan Dasar Penulisan JSX

Ada beberapa aturan ketat yang harus Anda ikuti saat menulis JSX. Aturan ini sedikit berbeda dengan penulisan HTML biasa pada umumnya. Dokumentasi resmi sangat menekankan kepatuhan terhadap standar ini. Jika melanggar, kode Anda mungkin akan mengalami eror saat dijalankan.

### Menggunakan CamelCase Syntax untuk Atribut

Dalam HTML biasa, kita sering menggunakan atribut seperti `onclick` atau `tabindex`. Namun, dalam JSX, Anda wajib menggunakan format camelCase. Contohnya, Anda harus menulis `onClick` dengan huruf "C" besar. Begitu pula dengan atribut lain seperti `tabIndex` atau `readOnly`. Ini adalah standar JavaScript yang harus tetap kita patuhi.

### Perbedaan ClassName Attribute dengan Class Biasa

Ini adalah perbedaan yang paling sering membingungkan para pemula. Dalam JSX, kita tidak boleh menggunakan kata kunci `class` untuk CSS. Hal ini dikarenakan `class` adalah kata kunci milik internal JavaScript. Sebagai gantinya, Anda harus selalu menggunakan atribut `className`. Pastikan Anda mengingat hal ini saat memindahkan kode dari HTML biasa.

### Pentingnya Self-closing Elements pada Elemen Tunggal

Setiap tag dalam JSX harus ditutup dengan benar dan konsisten. Dalam HTML, tag seperti `<img>` atau `<br>` bisa dibiarkan terbuka. Namun, dalam JSX, Anda wajib menambahkan garis miring di akhir. Contoh penulisan yang benar adalah `<img />` atau `<br />`. Kelalaian dalam menutup tag akan menyebabkan aplikasi berhenti berfungsi.

### Mengelompokkan Elemen dengan React Fragment

Terkadang Anda ingin mengembalikan beberapa elemen sekaligus dari satu komponen. Namun, JSX mengharuskan semua elemen dibungkus dalam satu induk saja. Jika Anda tidak ingin menambah elemen `<div>` tambahan, gunakan Fragment. Penulisannya sangat sederhana yaitu menggunakan tanda kurung siku kosong `<> ... </>`. Ini menjaga struktur DOM Anda tetap bersih dan rapi.


## 3. Cara Dokumentasi Resmi Menjelaskan Mekanisme Kerja JSX

Memahami apa yang terjadi di balik layar sangatlah penting. JSX sebenarnya tidak bisa dibaca langsung oleh browser modern saat ini. Ada proses transformasi yang terjadi sebelum kode sampai ke pengguna.

### Babel Transpiler: Mengubah JSX Menjadi JavaScript Murni

Di sinilah peran Babel Transpiler menjadi sangat krusial dalam ekosistem React. Babel bertugas mengubah kode JSX yang indah menjadi fungsi JavaScript biasa. Kode seperti `<h1>Hello</h1>` akan diubah menjadi `React.createElement('h1', null, 'Hello')`. Tanpa bantuan alat ini, browser akan menganggap JSX sebagai kesalahan sintaks.


### Implementasi ECMAScript 6 (ES6) dalam Penulisan Kode

React sangat bergantung pada fitur-fitur modern dari ECMAScript 6 (ES6). Fitur seperti arrow functions, classes, dan destructuring sering digunakan dalam JSX. Dokumentasi resmi menyarankan kita untuk menguasai dasar-dasar ES6 ini terlebih dahulu. Hal ini akan memudahkan Anda dalam menulis logika yang kompleks. Anda bisa mempelajari lebih lanjut tentang [Tips JavaScript Modern](/tips-javascript-modern) di blog kami.

### Bagaimana JSX Mendukung Konsep Declarative UI

Dengan JSX, Anda cukup fokus pada hasil akhir tampilan aplikasi. Anda tidak perlu memberi instruksi langkah demi langkah pada browser. Misalnya, Anda tidak perlu lagi melakukan manipulasi DOM secara manual. Fokuslah pada bagaimana data berubah, dan biarkan React yang bekerja. Anda bisa merujuk ke [Dokumentasi Resmi React](https://react.dev) untuk melihat contoh lengkapnya.


## 4. Teknik Menampilkan Data Dinamis dalam Komponen React

Kekuatan utama JSX terletak pada kemampuannya menampilkan data secara dinamis. Anda bisa menyisipkan variabel JavaScript langsung ke dalam elemen tampilan. Caranya adalah dengan membungkus variabel tersebut menggunakan kurung kurawal `{ }`.

### Mengelola Props and State untuk Antarmuka Interaktif

Props digunakan untuk mengirim data dari induk ke komponen anak. Sementara itu, state digunakan untuk menyimpan data internal yang bisa berubah. Saat state berubah, JSX akan secara otomatis melakukan render ulang. Ini membuat aplikasi Anda terasa sangat interaktif dan responsif. Untuk panduan awal, baca [Pengenalan React](/pengenalan-react) di website kami.

### Melakukan Map Function untuk Rendering Daftar Data

Menampilkan daftar item adalah tugas yang sangat umum dalam pengembangan web. Dalam JSX, kita biasanya menggunakan fungsi `.map()` dari JavaScript. Fungsi ini akan mengulangi setiap item dan mengembalikan elemen JSX baru. Jangan lupa untuk memberikan properti `key` yang unik pada setiap elemen. Ini membantu React mengenali item mana yang berubah atau dihapus.

### Logika Conditional Rendering di Dalam Blok JSX

Anda sering kali perlu menampilkan sesuatu hanya jika kondisi tertentu terpenuhi. Dalam JSX, Anda bisa menggunakan operator logika `&&` atau operator ternary. Misalnya, Anda bisa menampilkan pesan "Login" hanya jika status user salah. Teknik ini memungkinkan antarmuka yang cerdas dan adaptif terhadap data user.

### Penulisan Gaya dengan Inline Styles Object

Meskipun CSS eksternal lebih disarankan, terkadang kita butuh gaya inline. Dalam JSX, gaya inline tidak ditulis sebagai string seperti di HTML. Anda harus menggunakan objek JavaScript untuk mendefinisikan gaya tersebut. Contohnya adalah `style={{ color: 'blue', fontSize: '14px' }}`. Perhatikan penggunaan kurung kurawal ganda yang merupakan standar wajib di sini.


## 5. Kesimpulan: Tips Efektif Belajar JSX dari Dokumentasi Resmi React

Belajar jsx dari dokumentasi resmi react adalah investasi waktu yang sangat berharga. Anda tidak hanya belajar tentang tampilan, tetapi juga logika JavaScript modern. JSX membuat struktur kode Anda lebih mudah dibaca oleh tim lain. Selain itu, proses pemeliharaan aplikasi menjadi jauh lebih sederhana dan cepat.

### Meminimalkan Manual DOM Manipulation

Setelah menguasai JSX, Anda akan jarang menyentuh fungsi manipulasi DOM manual. Anda tidak perlu lagi mencari elemen berdasarkan ID atau class tertentu. Semua perubahan dikendalikan melalui perubahan data atau state di dalam komponen. Ini mengurangi risiko bug yang sulit dilacak pada aplikasi besar.

### Konsistensi Dokumentasi

Dokumentasi resmi selalu diperbarui mengikuti versi React yang paling baru saat ini. Dengan membacanya secara rutin, Anda tidak akan tertinggal informasi fitur terbaru. Ini adalah cara terbaik untuk menjadi pengembang React yang profesional. Pastikan Anda selalu mempraktikkan kode yang Anda pelajari setiap hari.

### Langkah Berikutnya

Setelah Anda merasa nyaman dengan JSX, jangan berhenti sampai di sini saja. Pelajari topik yang lebih lanjut seperti Hooks dan Context API. Pahami juga bagaimana cara melakukan fetch data dari API eksternal. Semua kemampuan ini akan saling melengkapi untuk membangun aplikasi yang luar biasa. Selamat belajar dan teruslah bereksperimen dengan kode Anda setiap saat!

 

Pengertian JSX

JSX (JavaScript XML) merupakan eksistensi sintaks JavaScript yang di pergunakan di react untuk menulis element UI. JSX terlihat seperti HTML, tetapi di tulis didalam file JavaScript dan dikompilasi menjadi JavaScript murni oleh Babel.

HTML adalah bahasa markup standard yang digunakan di browser untuk menyusun halaman web

Contoh :

const element = <h1>Hello, Dunia!</h1>;


> Membuat kode lebih mudah dibaca dan di tulis
> Mendeklarasikan element UI seperti menulis HTML
> Mendukung ekspresi JavaScript di dalam tanda kurung {}

1. Element JSX
const heading = <h1>Selamat Datang!</h1>;
const paragraph = <p>Ini paragraf pertama saya di React.</p>;



2. JSX Harus Satu Element Root
// ❌ SALAH (tidak bisa punya 2 elemen berdampingan tanpa pembungkus)
return (
  <h1>Hello</h1>
  <p>World</p>
)

// ✅ BENAR (dibungkus dengan div atau fragment)
return (
  <div>
    <h1>Hello</h1>
    <p>World</p>
  </div>
)


3. Menyisipkan JavaScript dalam JSX
Gunakan {} untuk memasukan ekpresi JavaScript
const name = "Ujang";
const element = <h1>Halo, {name}!</h1>;


1. Gunakan className bukan class
// ❌ SALAH
<div class="container"></div>

// ✅ BENAR
<div className="container"></div>



2. Gunakan camelCase untuk nama atribut
<input type="text" placeholder="Masukkan nama" />
<button onClick={handleClick}>Klik Saya</button>



> HTML : class, for, Atribut lowercase
> JSX     : className, htmlFor, camelCase(onClick, OnChange) 



HTML 
<input id="email" />
<label for="email">Email</label>
JSX
<label htmlFor="email">Email</label>
<input id="email" />


Contoh JSX
function App() {
  const user = "Ujang";
  return (
    <>
      <div className="app">
        <h1>Halo, {user}</h1>
        <p>Ini adalah aplikasi React pertamaku.</p>
      </div>
    </>
  );
}


Contoh HTML 
<div class"container">Halo</div>

Wednesday, 2 July 2025

Instalasi Dan Setup Awal Proyek React

Instalasi Dan Setup Awal Proyek React


Persiapkan Alat

Sebelum membuat proyek React pastikan alat-alat berikut sudah terpasang

a. Node.js dan NPM

Ract membutuhkan Node.js karna react menggunakan NPM (Node Package Manager) untuk mengelola depedensi 

bisa di download di https://nodejs.org 

Langkah - Langkah Install Bisa di cek di sini

Setelah instalasi, buka terminal dan ketik : 


jika muncul version maka node.js dan npm sudah terinstall

b. Code Editor 
Gunakan Visual Code atau editor yang sesuai dengan ke inginan kita
Visual Code Bisa di download di sini https://code

Membuat Proyek React Dengan Create React App

Cara paling mudah untuk membuat proyek React adalah dengan menggunakan Create React App
Buka terminal CMD, GIT Bash, lalu jalankan perintah :
- npx create-react-app nama-proyek-anda
- npx create-react-app belajar-react
tunggu beberapa menit sampai semua depedensi selesai di unduh

Struktur Folder Proyek

Instalasi Awal Proyek React (Recommended)

Sekarang yang paling direkomendasikan adalah Vite karena cepat dan ringan.

npm create vite@latest my-react-app
cd my-react-app
npm install
npm run dev

Pilih:

  • Framework: React
  • Variant: JavaScript atau TypeScript

Struktur Folder Standar Proyek React

my-react-app/
├─ node_modules/
├─ public/
│ ├─ favicon.svg
│ └─ index.html
├─ src/
│ ├─ assets/
│ │ ├─ images/
│ │ ├─ icons/
│ │ └─ styles/
│ ├─ components/
│ │ ├─ Button.jsx
│ │ ├─ Navbar.jsx
│ │ └─ Footer.jsx
│ ├─ pages/
│ │ ├─ Home.jsx
│ │ ├─ About.jsx
│ │ └─ Contact.jsx
│ ├─ layouts/
│ │ └─ MainLayout.jsx
│ ├─ routes/
│ │ └─ AppRoutes.jsx
│ ├─ services/
│ │ └─ api.js
│ ├─ hooks/
│ │ └─ useAuth.js
│ ├─ utils/
│ │ └─ formatter.js
│ ├─ App.jsx
│ ├─ main.jsx
│ └─ index.css
├─ .gitignore
├─ package.json
├─ vite.config.js
└─ README.md

Penjelasan Fungsi Folder (Penting!)

public/
Berisi file statis:
  • index.html → root HTML
  • favicon, gambar publik

src/assets/

Aset pendukung:

  • images/ → gambar
  • icons/ → icon SVG
  • styles/ → CSS / Tailwind config

src/components/

Komponen kecil & reusable:

  • Button
  • Navbar
  • Modal
  • Card

Tidak berisi logic halaman

src/pages/

Halaman utama aplikasi:

  • Home
  • Login
  • Dashboard

Biasanya terhubung ke routing

src/layouts/

Template layout:

  • Header
  • Sidebar
  • Footer

Digunakan ulang oleh banyak halaman

src/routes/

Konfigurasi routing:

  • React Router
  • Protected routes

src/services/

Komunikasi ke backend:

  • API
  • Axios
  • Auth service

src/hooks/

Custom React Hooks:

  • useAuth
  • useFetch

src/utils/

Helper & fungsi umum:

  • Formatter tanggal
  • Validator
  • Helper string

 

main.jsx

Entry point React

App.jsx

Root component utama

Contoh Setup Routing Sederhana

src/routes/AppRoutes.jsx

import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "../pages/Home";
import About from "../pages/About";

export default function AppRoutes() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

Struktur untuk Proyek Besar (Best Practice)

Jika aplikasi makin besar:

 src/

├─ features/
│ ├─ auth/
│ │ ├─ Login.jsx
│ │ ├─ authService.js
│ │ └─ authSlice.js
│ └─ product/
│ ├─ ProductList.jsx
│ └─ productService.js


Buat Project React (Vite)

npm create vite@latest react-tailwind-app
cd react-tailwind-app
npm install

Pilih:

  • Framework: React
  • Variant: JavaScript (atau TypeScript kalau mau)

 

Install Tailwind CSS

npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

 

Konfigurasi Tailwind

tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{js,jsx}"
  ],
  theme: {
    extend: {},
  },
  plugins: [],
}

 

Setup CSS Utama

src/index.css
@tailwind base;
@tailwind components;
@tailwind utilities;
/* custom style */
body {
  @apply bg-gray-50 text-gray-800;
}

 

Struktur Folder Template

src/
├─ assets/
  └─ images/
├─ components/
  ├─ Navbar.jsx
  └─ Button.jsx
├─ layouts/
  └─ MainLayout.jsx
├─ pages/
  └─ Home.jsx
├─ App.jsx
├─ main.jsx
└─ index.css

 

Contoh Komponen

src/components/Navbar.jsx
export default function Navbar() {
  return (
    <nav className="bg-white shadow">
      <div className="max-w-7xl mx-auto px-4 py-3 flex justify-between">
        <h1 className="text-xl font-bold text-blue-600">
          React + Tailwind
        </h1>
        <ul className="flex gap-4">
          <li className="hover:text-blue-500 cursor-pointer">Home</li>
          <li className="hover:text-blue-500 cursor-pointer">About</li>
        </ul>
      </div>
    </nav>
  );
}

 

src/components/Button.jsx
export default function Button({ children }) {
  return (
    <button className="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition">
      {children}
    </button>
  );
}

Layout Utama

src/layouts/MainLayout.jsx
import Navbar from "../components/Navbar";
export default function MainLayout({ children }) {
  return (
    <>
      <Navbar />
      <main className="max-w-7xl mx-auto p-6">
        {children}
      </main>
    </>
  );
}

 

Halaman Home

src/pages/Home.jsx
import Button from "../components/Button";
import MainLayout from "../layouts/MainLayout";
export default function Home() {
  return (
    <MainLayout>
      <section className="text-center py-20">
        <h2 className="text-4xl font-bold mb-4">
          React + Tailwind Template
        </h2>
        <p className="text-gray-600 mb-6">
          Template siap pakai untuk project modern
        </p>
        <Button>Mulai Sekarang</Button>
      </section>
    </MainLayout>
  );
}

App Entry

src/App.jsx
import Home from "./pages/Home";
export default function App() {
  return <Home />;
}

src/main.jsx
import React from 'react'
import ReactDOM from 'react-dom/client'
import App from './App'
import './index.css'
ReactDOM.createRoot(document.getElementById('root')).render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
)

Jalankan Project

npm run dev
Buka browser: http://localhost:5173