Difference between revisions of "Membuat komponen dan mengelola state"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah modul praktik yang dirancang untuk membantu Anda memahami cara membuat komponen dan mengelola state dalam React.js sebagai bagian dari mata kuliah Pemrograman W...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Berikut adalah modul praktik yang dirancang untuk membantu Anda memahami cara membuat komponen dan mengelola state dalam React.js sebagai bagian dari mata kuliah Pemrograman Web. Modul ini menggunakan Ubuntu 24.04 sebagai lingkungan pengembangan dan disusun tanpa menggunakan alat dari Microsoft.
+
==Tujuan Pembelajaran:==
 +
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
 +
* Memahami konsep '''komponen''' dalam framework frontend modern
 +
* Membedakan antara komponen '''stateless''' dan '''stateful'''
 +
* Mengelola '''state''' menggunakan React Hooks (`useState`)
 +
* Membuat interaksi antar komponen menggunakan props dan state
  
**Tujuan Pembelajaran:**
+
==Persiapan di Ubuntu 24.04==
  
1. Memahami konsep komponen dalam React.js dan cara pembuatannya.
+
'''1. Install Node.js dan npm'''
2. Mampu mengelola state dalam komponen React.js.
 
3. Mampu membuat aplikasi React.js sederhana yang memanfaatkan komponen dan state.
 
  
**Prasyarat:**
+
sudo apt update
 +
sudo apt install nodejs npm -y
  
- Pemahaman dasar tentang HTML, CSS, dan JavaScript.
+
'''2. Verifikasi versi'''
- Akses ke sistem yang menjalankan Ubuntu 24.04.
 
- Koneksi internet untuk menginstal paket yang diperlukan.
 
  
**Langkah 1: Instalasi Node.js dan npm**
+
node -v
 +
npm -v
  
React.js memerlukan Node.js dan npm (Node Package Manager) untuk pengelolaan paket dan dependensi.
 
  
1. **Perbarui daftar paket:**
+
'''3. Install Vite (alternatif lebih ringan dari create-react-app)'''
  
  ```bash
+
npm create vite@latest nama-proyek -- --template react
  sudo apt update
+
cd nama-proyek
  ```
+
npm install
 +
npm run dev
  
+
> Proyek React siap dijalankan di `http://localhost:5173`
  
2. **Instal Node.js dan npm:**
 
  
  ```bash
+
==1. Konsep Komponen==
  sudo apt install nodejs npm
 
  ```
 
  
+
'''Apa Itu Komponen?'''
  
3. **Verifikasi instalasi:**
+
Komponen adalah blok bangunan UI yang dapat digunakan kembali. Dalam React, komponen bisa ditulis sebagai '''function'''.
  
  ```bash
+
'''Contoh Komponen Sederhana:'''
  node -v
 
  npm -v
 
  ```
 
  
+
<pre>
 +
// File: src/components/Header.jsx
 +
function Header() {
 +
  return <h1>Selamat Datang di Web Saya</h1>;
 +
}
 +
export default Header;
 +
</pre>
  
  Perintah di atas akan menampilkan versi Node.js dan npm yang telah diinstal.
+
Kemudian digunakan di `App.jsx`:
  
**Langkah 2: Membuat Proyek React Baru**
+
<pre>
 +
import Header from './components/Header';
 +
 +
function App() {
 +
  return (
 +
    <div>
 +
      <Header />
 +
    </div>
 +
  );
 +
}
 +
</pre>
  
Setelah Node.js dan npm terinstal, Anda dapat membuat proyek React baru menggunakan Vite, alat build yang cepat dan modern untuk proyek JavaScript.
+
==2. Mengelola State==
  
1. **Buat proyek baru dengan Vite:**
+
'''Apa Itu State?'''
  
  ```bash
+
State adalah data yang dikelola di dalam komponen yang bisa berubah seiring interaksi user.
  npm create vite@latest my-react-app
 
  ```
 
  
+
'''Contoh: Counter dengan `useState`'''
  
   Ikuti prompt yang muncul:
+
<pre>
 +
import { useState } from 'react';
 +
 +
function Counter() {
 +
   const [count, setCount] = useState(0);
  
   - Pilih nama proyek (misalnya, `my-react-app`).
+
   return (  
   - Pilih framework: **React**.
+
    <div>
  - Pilih varian: **JavaScript** atau **TypeScript** sesuai kebutuhan.
+
      <p>Nilai: {count}</p>
 +
      <button onClick={() => setCount(count + 1)}>Tambah</button>
 +
    </div>
 +
   );
 +
}
  
2. **Masuk ke direktori proyek dan instal dependensi:**
+
export default Counter;
 +
</pre>
  
  ```bash
+
==3. Mengoper Data dengan Props==
  cd my-react-app
 
  npm install
 
  ```
 
  
+
'''Apa Itu Props?'''
  
3. **Jalankan server pengembangan:**
+
'''Props''' (properties) digunakan untuk mengirim data dari satu komponen ke komponen lain.
  
  ```bash
+
'''Contoh Props:'''
  npm run dev
 
  ```
 
  
+
<pre>
 +
function Welcome(props) {
 +
  return <h2>Halo, {props.name}!</h2>;
 +
}
 +
 +
// Di App.jsx
 +
<Welcome name="Dzaq" />
 +
</pre>
  
  Aplikasi React.js Anda sekarang berjalan dan dapat diakses melalui alamat yang ditampilkan, biasanya `http://localhost:5173`.
+
==4. Interaksi antar Komponen==
  
**Langkah 3: Membuat Komponen dalam React.js**
+
'''Parent dan Child Component'''
  
Komponen adalah blok bangunan utama dalam React.js yang memungkinkan Anda membagi UI menjadi bagian-bagian yang dapat digunakan kembali.
+
Misal: `App.jsx` mengelola state dan mengirimkan ke `ChildComponent`
  
1. **Membuat Komponen Fungsional Sederhana:**
+
<pre>
 +
function Child({ message }) {
 +
  return <p>Pesan dari parent: {message}</p>;
 +
}
 +
 +
function App() {
 +
  const [msg, setMsg] = useState("Halo Dunia");
 +
 +
  return (
 +
    <div>
 +
      <Child message={msg} />
 +
    </div>
 +
  );
 +
}
 +
</pre>
  
  Buat file baru bernama `Greeting.js` dalam folder `src` dengan isi berikut:
+
'''Struktur Proyek yang Disarankan'''
  
  ```jsx
+
src/
  import React from 'react';
+
 +
├── components/
 +
│  ├── Header.jsx
 +
│  ├── Counter.jsx
 +
│  └── Footer.jsx
 +
 +
├── App.jsx
 +
└── main.jsx
  
  function Greeting(props) {
+
==Tugas Praktik Mahasiswa==
    return <h1>Halo, {props.name}!</h1>;
 
  }
 
  
  export default Greeting;
+
'''Tujuan:'''
  ```
 
  
+
Membuat halaman sederhana dengan komponen dinamis menggunakan state dan props.
  
  Komponen `Greeting` menerima properti `name` dan menampilkan pesan sapaan.
+
'''Instruksi:'''
 +
* Buat komponen `Header`, `Counter`, dan `Footer`
 +
* `Counter` memiliki 2 tombol: Tambah & Kurangi
 +
* `Footer` menampilkan total klik tombol (dikirim dari `App` via props)
 +
* Gunakan minimal 2 state dan 1 props
 +
* Jalankan dan screenshot hasilnya
  
2. **Menggunakan Komponen dalam `App.js`:**
+
==Tugas Diskusi (Kelompok)==
  
  Buka file `App.js` dan modifikasi menjadi:
+
'''Topik: "State vs Props – Kapan Kita Gunakan Salah Satunya?"'''
  
  ```jsx
+
* Buat presentasi mini 5 menit
  import React from 'react';
+
* Sertakan contoh kode
  import Greeting from './Greeting';
+
* Bandingkan penggunaan state dan props dalam komponen kompleks (misal: form input, shopping cart, dsb.)
  
  function App() {
+
==Referensi==
    return (
 
      <div>
 
        <Greeting name="Budi" />
 
        <Greeting name="Siti" />
 
      </div>
 
    );
 
  }
 
  
  export default App;
+
* [React Docs – Components and Props](https://react.dev/learn/passing-props-to-a-component)
  ```
+
* [React Docs – State: A Component’s Memory](https://react.dev/learn/state-a-components-memory)
 +
* [Vite + React Setup](https://vitejs.dev/guide/)
  
 
  
  Dalam `App.js`, komponen `Greeting` digunakan dua kali dengan properti `name` yang berbeda, menunjukkan bagaimana komponen dapat digunakan kembali dengan parameter yang berbeda.
+
==Pranala Menarik==
  
**Langkah 4: Mengelola State dalam Komponen React.js**
+
* [[Web Programming]]
 
 
State adalah objek dalam React.js yang digunakan untuk menyimpan data atau informasi tentang komponen yang dapat berubah seiring waktu.
 
 
 
1. **Menggunakan Hook `useState`:**
 
 
 
  React menyediakan hook `useState` untuk mengelola state dalam komponen fungsional.
 
 
 
  Buat file baru bernama `Counter.js` dalam folder `src` dengan isi berikut:
 
 
 
  ```jsx
 
  import React, { useState } from 'react';
 
 
 
  function Counter() {
 
    const [count, setCount] = useState(0);
 
 
 
    const increment = () => {
 
      setCount(count + 1);
 
    };
 
 
 
    return (
 
      <div>
 
        <p>Nilai: {count}</p>
 
        <button onClick={increment}>Tambah</button>
 
      </div>
 
    );
 
  }
 
 
 
  export default Counter;
 
  ```
 
 
 
 
 
 
  Komponen `Counter` memiliki state `count` yang diinisialisasi dengan nilai 0. Fungsi `increment` digunakan untuk menambah nilai `count` ketika tombol ditekan.
 
 
 
2. **Menggunakan Komponen `Counter` dalam `App.js`:**
 
 
 
  Buka file `App.js` dan tambahkan komponen `Counter`:
 
 
 
  ```jsx
 
  import React from 'react';
 
  import Greeting from './Greeting';
 
  import Counter from './Counter';
 
 
 
  function App() {
 
    return (
 
      <div>
 
        <Greeting name="Budi" />
 
        <Greeting name="Siti" />
 
        <Counter />
 
      </div>
 
    );
 
  }
 
 
 
  export default App;
 
  ```
 
 
 
 
 
 
  Sekarang, aplikasi Anda memiliki komponen `Greeting` dan `Counter` yang menunjukkan penggunaan komponen dan state dalam React.js.
 
 
 
**Catatan Tambahan:**
 
 
 
- **Mengelola State yang Lebih Kompleks:** Untuk state yang lebih kompleks atau untuk berbagi state antar komponen, Anda dapat mempertimbangkan penggunaan Context API atau pustaka manajemen state seperti Redux.
 
 
 
- **Penggunaan Props:** Props digunakan untuk mengirim data dari komponen induk ke komponen anak, sedangkan state digunakan untuk data yang dikelola dalam komponen
 

Latest revision as of 10:51, 8 April 2025

Tujuan Pembelajaran:

Setelah mempelajari modul ini, mahasiswa diharapkan mampu:

  • Memahami konsep komponen dalam framework frontend modern
  • Membedakan antara komponen stateless dan stateful
  • Mengelola state menggunakan React Hooks (`useState`)
  • Membuat interaksi antar komponen menggunakan props dan state

Persiapan di Ubuntu 24.04

1. Install Node.js dan npm

sudo apt update
sudo apt install nodejs npm -y

2. Verifikasi versi

node -v
npm -v


3. Install Vite (alternatif lebih ringan dari create-react-app)

npm create vite@latest nama-proyek -- --template react
cd nama-proyek
npm install
npm run dev

> Proyek React siap dijalankan di `http://localhost:5173`


1. Konsep Komponen

Apa Itu Komponen?

Komponen adalah blok bangunan UI yang dapat digunakan kembali. Dalam React, komponen bisa ditulis sebagai function.

Contoh Komponen Sederhana:

 // File: src/components/Header.jsx
 function Header() {
   return <h1>Selamat Datang di Web Saya</h1>;
 }
 export default Header;

Kemudian digunakan di `App.jsx`:

 import Header from './components/Header';
 
 function App() {
   return (
     <div>
       <Header />
     </div>
   );
 }

2. Mengelola State

Apa Itu State?

State adalah data yang dikelola di dalam komponen yang bisa berubah seiring interaksi user.

Contoh: Counter dengan `useState`

 import { useState } from 'react';
 
 function Counter() {
   const [count, setCount] = useState(0); 

   return ( 
     <div>
       <p>Nilai: {count}</p>
       <button onClick={() => setCount(count + 1)}>Tambah</button>
     </div>
   );
 }

 export default Counter;

3. Mengoper Data dengan Props

Apa Itu Props?

Props (properties) digunakan untuk mengirim data dari satu komponen ke komponen lain.

Contoh Props:

 function Welcome(props) {
   return <h2>Halo, {props.name}!</h2>;
 }
 
 // Di App.jsx
 <Welcome name="Dzaq" />

4. Interaksi antar Komponen

Parent dan Child Component

Misal: `App.jsx` mengelola state dan mengirimkan ke `ChildComponent`

 function Child({ message }) {
   return <p>Pesan dari parent: {message}</p>;
 }
 
 function App() {
   const [msg, setMsg] = useState("Halo Dunia");
 
   return (
     <div>
       <Child message={msg} />
     </div>
   );
 }

Struktur Proyek yang Disarankan

src/
│
├── components/
│   ├── Header.jsx
│   ├── Counter.jsx
│   └── Footer.jsx
│
├── App.jsx
└── main.jsx

Tugas Praktik Mahasiswa

Tujuan:

Membuat halaman sederhana dengan komponen dinamis menggunakan state dan props.

Instruksi:

  • Buat komponen `Header`, `Counter`, dan `Footer`
  • `Counter` memiliki 2 tombol: Tambah & Kurangi
  • `Footer` menampilkan total klik tombol (dikirim dari `App` via props)
  • Gunakan minimal 2 state dan 1 props
  • Jalankan dan screenshot hasilnya

Tugas Diskusi (Kelompok)

Topik: "State vs Props – Kapan Kita Gunakan Salah Satunya?"

  • Buat presentasi mini 5 menit
  • Sertakan contoh kode
  • Bandingkan penggunaan state dan props dalam komponen kompleks (misal: form input, shopping cart, dsb.)

Referensi


Pranala Menarik