Membuat Component
Membuat Custom Component Pertama di React
Salah satu konsep penting dalam React adalah kemampuan untuk membuat Custom Component.
Custom Component memungkinkan kita membagi User Interface (UI) yang besar menjadi beberapa bagian kecil yang lebih terstruktur, reusable, dan mudah dikelola.
Daripada menempatkan seluruh kode UI di dalam satu component seperti App, kita dapat memisahkannya menjadi component-component yang memiliki tanggung jawab masing-masing.
Mengapa Membuat Custom Component?
Bayangkan sebuah aplikasi memiliki UI seperti:
App
├── Header
├── Navigation
├── Main Content
└── Footer
Jika seluruh kode tersebut ditulis di dalam App, kode akan menjadi panjang dan sulit dikelola.
Dengan Custom Component, kita dapat memisahkannya:
App
├── Header
├── Navigation
├── MainContent
└── Footer
Masing-masing bagian dapat dibuat sebagai component tersendiri.
Contohnya:
function Header() {
return <header>My Website</header>;
}
function Footer() {
return <footer>Copyright 2026</footer>;
}
Kemudian digunakan di dalam App:
function App() {
return (
<>
<Header />
<main>Konten utama</main>
<Footer />
</>
);
}
Dengan cara ini, App menjadi lebih sederhana dan mudah dibaca.
Langkah Membuat Custom Component
Untuk membuat Custom Component, kita dapat mengikuti beberapa langkah sederhana.
1. Membuat Fungsi JavaScript
Pertama, buat sebuah fungsi JavaScript baru.
Nama component harus diawali dengan huruf kapital.
Contoh:
function Header() {
// ...
}
Nama Header menggunakan huruf kapital sehingga React dapat mengenalinya sebagai Custom Component.
Gunakan pola PascalCase untuk nama component:
Header
UserProfile
ProductCard
NavigationBar
ShoppingCart
Hindari penamaan seperti:
header
userProfile
productCard
2. Memindahkan Markup ke Component
Misalnya sebelumnya kita memiliki component App seperti berikut:
function App() {
return (
<div>
<header>
<h1>My Website</h1>
<nav>
<a href="/">Home</a>
<a href="/products">Products</a>
</nav>
</header>
<main>
<h2>Welcome!</h2>
</main>
</div>
);
}
Kita dapat memindahkan bagian <header> ke Custom Component.
Buat component:
function Header() {
return (
<header>
<h1>My Website</h1>
<nav>
<a href="/">Home</a>
<a href="/products">Products</a>
</nav>
</header>
);
}
Kemudian App menjadi lebih sederhana:
function App() {
return (
<div>
<Header />
<main>
<h2>Welcome!</h2>
</main>
</div>
);
}
3. Mengembalikan JSX
Sebuah component harus mengembalikan sesuatu yang dapat dirender oleh React.
Contoh:
function Header() {
return <h1>My Website</h1>;
}
Untuk JSX yang terdiri dari beberapa baris, biasanya digunakan tanda kurung:
function Header() {
return (
<header>
<h1>My Website</h1>
<p>Belajar React.js</p>
</header>
);
}
Tanda kurung:
(...)
membantu membuat JSX multi-baris menjadi lebih mudah dibaca dan terstruktur.
Menggunakan Custom Component
Setelah component dibuat, kita dapat menggunakannya di dalam JSX.
Misalnya:
function Header() {
return <h1>My Website</h1>;
}
Untuk menggunakan Header, kita tidak menulis:
Header();
Meskipun Header merupakan fungsi JavaScript, React Component digunakan melalui sintaks JSX.
Gunakan:
<Header />
Component Bukan Dipanggil Seperti Function Biasa
Perhatikan perbedaan berikut.
Function JavaScript biasa
function greet() {
console.log("Hello");
}
greet();
Function dipanggil menggunakan:
greet();
React Component
function Header() {
return <h1>My Website</h1>;
}
Component digunakan menggunakan:
<Header />
Jadi:
<Header />
merupakan cara React menggunakan component tersebut dalam JSX.
Opening dan Closing Tag
Custom Component dapat ditulis menggunakan opening dan closing tag.
<Header></Header>
Namun, jika component tidak memiliki content di dalamnya, kita dapat menggunakan self-closing tag:
<Header />
Keduanya dapat digunakan untuk Custom Component.
Self-Closing Tag
Dalam JSX, self-closing tag harus menggunakan:
/>
Contoh:
<Header />
Bukan:
<Header>
Jika sebuah elemen tidak memiliki content di antara opening dan closing tag, gunakan self-closing syntax.
Self-Closing pada HTML Element
Aturan self-closing juga berlaku pada beberapa elemen HTML yang tidak memiliki content.
Contohnya:
<img src="logo.png" alt="Logo" />
<input type="text" />
<br />
Perhatikan penggunaan:
/>
di akhir tag.
Dalam JSX, penulisan seperti:
<img src="logo.png" alt="Logo">
tidak valid karena elemen tersebut belum ditutup.
Gunakan:
<img src="logo.png" alt="Logo" />
Contoh Custom Component Sederhana
Berikut contoh lengkap membuat component Header.
function Header() {
return (
<header>
<h1>My Website</h1>
<p>Belajar React.js</p>
</header>
);
}
function App() {
return (
<div>
<Header />
<main>
<h2>Welcome to My Website</h2>
</main>
</div>
);
}
Struktur component:
App
└── Header
React akan merender Header sebagai bagian dari App.
Membuat Beberapa Custom Component
Kita dapat membuat beberapa component untuk membangun UI yang lebih kompleks.
function Header() {
return (
<header>
<h1>My Website</h1>
</header>
);
}
function MainContent() {
return (
<main>
<h2>Welcome!</h2>
<p>Selamat datang di website saya.</p>
</main>
);
}
function Footer() {
return (
<footer>
<p>Copyright 2026</p>
</footer>
);
}
function App() {
return (
<>
<Header />
<MainContent />
<Footer />
</>
);
}
Strukturnya menjadi:
App
├── Header
├── MainContent
└── Footer
Pendekatan seperti ini membuat aplikasi lebih terorganisir.
Memisahkan Component ke File Berbeda
Dalam proyek React yang lebih besar, setiap component biasanya dapat dipisahkan ke file tersendiri.
Contoh struktur:
src/
├── App.jsx
├── Header.jsx
├── MainContent.jsx
└── Footer.jsx
File Header.jsx:
function Header() {
return (
<header>
<h1>My Website</h1>
</header>
);
}
export default Header;
Kemudian di App.jsx:
import Header from "./Header.jsx";
function App() {
return (
<div>
<Header />
</div>
);
}
export default App;
Dengan cara ini, setiap component memiliki file sendiri dan dapat digunakan kembali di bagian aplikasi lainnya.
Poin Penting
Ada beberapa aturan dasar yang perlu diingat ketika membuat Custom Component.
1. Nama Component Harus Kapital
function Header() {
return <h1>Header</h1>;
}
Gunakan PascalCase:
Header
UserProfile
ProductCard
2. Component Harus Mengembalikan JSX
function Header() {
return <h1>My Website</h1>;
}
3. Gunakan Component dengan JSX
Benar:
<Header />
Bukan:
Header();
4. Gunakan Self-Closing Tag dengan Benar
<Header />
<img src="logo.png" alt="Logo" />
5. Component Dapat Dipisahkan ke File
Contoh:
Header.jsx
Footer.jsx
Product.jsx
Kemudian dihubungkan menggunakan:
import
export
Kesimpulan
Custom Component memungkinkan kita memecah UI menjadi bagian-bagian kecil yang lebih mudah dikelola dan digunakan kembali.
Proses sederhananya:
1. Buat fungsi
↓
2. Gunakan nama dengan huruf kapital
↓
3. Kembalikan JSX
↓
4. Gunakan component dengan <NamaComponent />
Contoh paling sederhana:
function Header() {
return <h1>My Website</h1>;
}
function App() {
return (
<div>
<Header />
</div>
);
}
Konsep ini merupakan fondasi penting dalam React. Setelah memahami cara membuat Custom Component, langkah berikutnya adalah mempelajari bagaimana mengirim data ke component menggunakan Props sehingga satu component dapat digunakan dengan data yang berbeda.