<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Membuat_komponen_dan_mengelola_state</id>
	<title>Membuat komponen dan mengelola state - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Membuat_komponen_dan_mengelola_state"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;action=history"/>
	<updated>2026-04-19T23:52:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72470&amp;oldid=prev</id>
		<title>Unknown user: /* Pranala Menarik */</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72470&amp;oldid=prev"/>
		<updated>2025-04-08T03:51:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Pranala Menarik&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:51, 8 April 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l165&quot;&gt;Line 165:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 165:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Pranala Menarik==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Pranala Menarik==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Web &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programmming&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Web &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Programming&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72469&amp;oldid=prev</id>
		<title>Unknown user at 03:50, 8 April 2025</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72469&amp;oldid=prev"/>
		<updated>2025-04-08T03:50:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;amp;diff=72469&amp;amp;oldid=72334&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72334&amp;oldid=prev</id>
		<title>Unknown user: Created page with &quot;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...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Membuat_komponen_dan_mengelola_state&amp;diff=72334&amp;oldid=prev"/>
		<updated>2025-04-06T02:22:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;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...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;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.&lt;br /&gt;
&lt;br /&gt;
**Tujuan Pembelajaran:**&lt;br /&gt;
&lt;br /&gt;
1. Memahami konsep komponen dalam React.js dan cara pembuatannya.&lt;br /&gt;
2. Mampu mengelola state dalam komponen React.js.&lt;br /&gt;
3. Mampu membuat aplikasi React.js sederhana yang memanfaatkan komponen dan state.&lt;br /&gt;
&lt;br /&gt;
**Prasyarat:**&lt;br /&gt;
&lt;br /&gt;
- Pemahaman dasar tentang HTML, CSS, dan JavaScript.&lt;br /&gt;
- Akses ke sistem yang menjalankan Ubuntu 24.04.&lt;br /&gt;
- Koneksi internet untuk menginstal paket yang diperlukan.&lt;br /&gt;
&lt;br /&gt;
**Langkah 1: Instalasi Node.js dan npm**&lt;br /&gt;
&lt;br /&gt;
React.js memerlukan Node.js dan npm (Node Package Manager) untuk pengelolaan paket dan dependensi.&lt;br /&gt;
&lt;br /&gt;
1. **Perbarui daftar paket:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   sudo apt update&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. **Instal Node.js dan npm:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   sudo apt install nodejs npm&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. **Verifikasi instalasi:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   node -v&lt;br /&gt;
   npm -v&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Perintah di atas akan menampilkan versi Node.js dan npm yang telah diinstal.&lt;br /&gt;
&lt;br /&gt;
**Langkah 2: Membuat Proyek React Baru**&lt;br /&gt;
&lt;br /&gt;
Setelah Node.js dan npm terinstal, Anda dapat membuat proyek React baru menggunakan Vite, alat build yang cepat dan modern untuk proyek JavaScript.&lt;br /&gt;
&lt;br /&gt;
1. **Buat proyek baru dengan Vite:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   npm create vite@latest my-react-app&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Ikuti prompt yang muncul:&lt;br /&gt;
&lt;br /&gt;
   - Pilih nama proyek (misalnya, `my-react-app`).&lt;br /&gt;
   - Pilih framework: **React**.&lt;br /&gt;
   - Pilih varian: **JavaScript** atau **TypeScript** sesuai kebutuhan.&lt;br /&gt;
&lt;br /&gt;
2. **Masuk ke direktori proyek dan instal dependensi:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   cd my-react-app&lt;br /&gt;
   npm install&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. **Jalankan server pengembangan:**&lt;br /&gt;
&lt;br /&gt;
   ```bash&lt;br /&gt;
   npm run dev&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Aplikasi React.js Anda sekarang berjalan dan dapat diakses melalui alamat yang ditampilkan, biasanya `http://localhost:5173`.&lt;br /&gt;
&lt;br /&gt;
**Langkah 3: Membuat Komponen dalam React.js**&lt;br /&gt;
&lt;br /&gt;
Komponen adalah blok bangunan utama dalam React.js yang memungkinkan Anda membagi UI menjadi bagian-bagian yang dapat digunakan kembali.&lt;br /&gt;
&lt;br /&gt;
1. **Membuat Komponen Fungsional Sederhana:**&lt;br /&gt;
&lt;br /&gt;
   Buat file baru bernama `Greeting.js` dalam folder `src` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
   ```jsx&lt;br /&gt;
   import React from &amp;#039;react&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
   function Greeting(props) {&lt;br /&gt;
     return &amp;lt;h1&amp;gt;Halo, {props.name}!&amp;lt;/h1&amp;gt;;&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   export default Greeting;&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Komponen `Greeting` menerima properti `name` dan menampilkan pesan sapaan.&lt;br /&gt;
&lt;br /&gt;
2. **Menggunakan Komponen dalam `App.js`:**&lt;br /&gt;
&lt;br /&gt;
   Buka file `App.js` dan modifikasi menjadi:&lt;br /&gt;
&lt;br /&gt;
   ```jsx&lt;br /&gt;
   import React from &amp;#039;react&amp;#039;;&lt;br /&gt;
   import Greeting from &amp;#039;./Greeting&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
   function App() {&lt;br /&gt;
     return (&lt;br /&gt;
       &amp;lt;div&amp;gt;&lt;br /&gt;
         &amp;lt;Greeting name=&amp;quot;Budi&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;Greeting name=&amp;quot;Siti&amp;quot; /&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
     );&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   export default App;&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Dalam `App.js`, komponen `Greeting` digunakan dua kali dengan properti `name` yang berbeda, menunjukkan bagaimana komponen dapat digunakan kembali dengan parameter yang berbeda.&lt;br /&gt;
&lt;br /&gt;
**Langkah 4: Mengelola State dalam Komponen React.js**&lt;br /&gt;
&lt;br /&gt;
State adalah objek dalam React.js yang digunakan untuk menyimpan data atau informasi tentang komponen yang dapat berubah seiring waktu.&lt;br /&gt;
&lt;br /&gt;
1. **Menggunakan Hook `useState`:**&lt;br /&gt;
&lt;br /&gt;
   React menyediakan hook `useState` untuk mengelola state dalam komponen fungsional.&lt;br /&gt;
&lt;br /&gt;
   Buat file baru bernama `Counter.js` dalam folder `src` dengan isi berikut:&lt;br /&gt;
&lt;br /&gt;
   ```jsx&lt;br /&gt;
   import React, { useState } from &amp;#039;react&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
   function Counter() {&lt;br /&gt;
     const [count, setCount] = useState(0);&lt;br /&gt;
&lt;br /&gt;
     const increment = () =&amp;gt; {&lt;br /&gt;
       setCount(count + 1);&lt;br /&gt;
     };&lt;br /&gt;
&lt;br /&gt;
     return (&lt;br /&gt;
       &amp;lt;div&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;Nilai: {count}&amp;lt;/p&amp;gt;&lt;br /&gt;
         &amp;lt;button onClick={increment}&amp;gt;Tambah&amp;lt;/button&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
     );&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   export default Counter;&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Komponen `Counter` memiliki state `count` yang diinisialisasi dengan nilai 0. Fungsi `increment` digunakan untuk menambah nilai `count` ketika tombol ditekan.&lt;br /&gt;
&lt;br /&gt;
2. **Menggunakan Komponen `Counter` dalam `App.js`:**&lt;br /&gt;
&lt;br /&gt;
   Buka file `App.js` dan tambahkan komponen `Counter`:&lt;br /&gt;
&lt;br /&gt;
   ```jsx&lt;br /&gt;
   import React from &amp;#039;react&amp;#039;;&lt;br /&gt;
   import Greeting from &amp;#039;./Greeting&amp;#039;;&lt;br /&gt;
   import Counter from &amp;#039;./Counter&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
   function App() {&lt;br /&gt;
     return (&lt;br /&gt;
       &amp;lt;div&amp;gt;&lt;br /&gt;
         &amp;lt;Greeting name=&amp;quot;Budi&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;Greeting name=&amp;quot;Siti&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;Counter /&amp;gt;&lt;br /&gt;
       &amp;lt;/div&amp;gt;&lt;br /&gt;
     );&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   export default App;&lt;br /&gt;
   ```&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Sekarang, aplikasi Anda memiliki komponen `Greeting` dan `Counter` yang menunjukkan penggunaan komponen dan state dalam React.js.&lt;br /&gt;
&lt;br /&gt;
**Catatan Tambahan:**&lt;br /&gt;
&lt;br /&gt;
- **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.&lt;br /&gt;
&lt;br /&gt;
- **Penggunaan Props:** Props digunakan untuk mengirim data dari komponen induk ke komponen anak, sedangkan state digunakan untuk data yang dikelola dalam komponen&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>