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

 


Wednesday, 25 June 2025

Pengenalan React dan JSX

React adalah library JavaScript yang di gunakan untuk membangun antarmuka pengguna (UI) terutama untuk aplikasi web yang interaktif dan dinamis. React dikembangkan oleh Facebook dan pertama kali di rilis pada tahun 2013

Ciri Khas Dan Keunggulan React

1. Komponen (Component Based)

  • Aplikasi dibangun dari komponen kecil dan independen yang dapat digunakan kembali
  • Contoh <Navbar /> <Footer /> <ProductCard />

2. Virtual DOM

  • React menggunakan virtual Dom untuk mempercepat kinerja dengan meminimalkan manipulasi DOM langsung

3. Deklaratif

  • Kamu hanya perlu mendeskripsikan apa yang ingin kita tampilkan dan react akan menangani sisanya
Contoh jsx : <h1>Hello {user.name}! <h1 />

4. JSX (JavaScript XML)

  • React menggunakan JSX yaitu sintak yang mirip dengan HTML yang di tulis didalam JavaScript, agar kode UI lebih mudah dibaca dan ditulis

5. Unidirectional Data Flow

  • Data Mengalir satu arah dari parent ke child membuat logika aplikasi lebih mudah dipahami dan di-debug
Contoh Sederhana :

Mengapa Kita Harus Menggunakan React
1. Komponen Yang Dapat Digunakan Kembali
React berbasis komponen artinya kita bisa membuat satu komponen misal tombol, navbar, atau produk lalu menggunkan berulang kali di seluruh aplikasi, ini menghemat waktu dan membuat kode menjadi lebih rapih.
2. Performa Tinggi Dengan Virtual DOM
React menggunakan virtual DOM yaitu refresentasi ringan dari DOM asli, saat ada perubahan react hanya memperbaharui bagian yang berubah saja bukan seluruh halaman, ini membuat aplikasi lebih ringan dan lebih responsif.
3. Penulisan Kode Lebih Mudah Dengan JSX
React menggunakan JSX gabungan antara JavaScript dan HTML-like syntax. ini memudahkan develover membuat tampilan tanpa perlu memisahkan logika dan UI terlalu jauh.
Contoh :
4. Data Flow Yang Jelas (One-Way Data Binding
React menggunakan alur data satu arah (dari parent ke child). Ini membuat alur logika data lebih mudah dipahami dan debug jadi lebih gampang
5. Ekosistem Besar dan Komunitas Aktif
React punya ekosistem tools dan pustaka pendukung yang luas: React Router (navigasi), Redux / Zustand (state management), Axios / Fetch (API request), Next.js (framework React untuk SSR & SEO)
6. Cocok Untuk Sekala Kecil Maupun Besar

Mulai dari blog pribadi hingga dashboard admin yang kompleks, React bisa digunakan karena skalabilitasnya tinggi.


Monday, 16 June 2025

Cara Buat Template Dasar Dengan ( Tailwind CSS atau Routing ) JSX

 Berikut ini template dasar React + Tailwind CSS + Routing (React Roter DOM) menggunakan vite


Dalam pengembangan aplikasi React, template dasar sangat penting agar:

  • Struktur proyek rapi
  • Kode mudah dikembangkan
  • Tampilan konsisten
  • Routing halaman jelas

Pada materi ini kita akan membahas dua pendekatan utama:

  • Template dasar menggunakan Tailwind CSS
  • Template dasar menggunakan Routing (React Router) dengan JSX

1. Buat Project baru dengan vite

npm create vite@latest my_app -- --template react

2. Masuk ke folder dalam project

cd my_app

3. Install dependency 

npm install

4. Install Tailwind CSS dan inisialisasi

npm install -D tailwindcss postcss autoprefixer

npx tailwindcss init -p

5. Install React Router DOM

npm install react-router-dom

6. Konfiguration Tailwind di tailwind.config.js

Template Dasar Menggunakan Tailwind CSS (JSX)

Persiapan Project React

Buat project React:

npx create-react-app my-template

cd my-template

npm start

Install Tailwind CSS:

npm install -D tailwindcss postcss autoprefixer

npx tailwindcss init -p

Konfigurasi tailwind.config.js:

content: ["./src/**/*.{js,jsx}"],

theme: {

  extend: {},

},

plugins: [],

Tambahkan di src/index.css :

@tailwind base;

@tailwind components;

@tailwind utilities;

Struktur Folder Dasar

Contoh Template Navbar (Tailwind + JSX)
components/Navbar.jsx

function Navbar() {
  return (
    <nav className="bg-blue-600 text-white px-6 py-4 flex justify-between">
      <h1 className="font-bold text-lg">MyApp</h1>
      <ul className="flex gap-4">
        <li className="hover:underline cursor-pointer">Home</li>
        <li className="hover:underline cursor-pointer">About</li>
      </ul>
    </nav>
  );
}

export default Navbar;
Halaman Home
pages/Home.jsx
function Home() {
  return (
    <div className="p-10 text-center">
      <h2 className="text-3xl font-bold mb-4">Hello World!</h2>
      <button className="bg-green-500 text-white px-6 py-2 rounded">
        Klik Saya
      </button>
    </div>
  );
}

export default Home;
Menggabungkan Template
App.jsx
import Navbar from "./components/Navbar";
import Home from "./pages/Home";

function App() {
  return (
    <>
      <Navbar />
      <Home />
    </>
  );
}

export default App;

Hasil: Template satu halaman dengan layout rapi & modern.
Template Dasar Menggunakan Routing (JSX)
Install React Router
npm install react-router-dom
Struktur Folder Routing
Contoh Routing di App.jsx
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";
import Navbar from "./components/Navbar";

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

export default App;
Navbar dengan Link Routing
import { Link } from "react-router-dom";

function Navbar() {
  return (
    <nav className="bg-gray-800 text-white px-6 py-4 flex gap-4">
      <Link to="/" className="hover:underline">Home</Link>
      <Link to="/about" className="hover:underline">About</Link>
    </nav>
  );
}

export default Navbar;





Thursday, 8 May 2025

Realme C33 Dibandingkan Realme C21Y: Peningkatan atau Sekadar Ganti Nama



🔍 Realme C33 Dibandingkan RealmeC21Y: Peningkatan atau Sekadar Ganti Nama?

Realme terus menghadirkan seri entry-level yang menarik perhatian pengguna smartphone dengan budget terbatas. Dua model yang cukup populer adalah Realme C33 dan Realme C21Y. Sekilas tampak serupa, namun apakah C33 benar-benar membawa peningkatan signifikan dibanding pendahulunya? Mari kita bandingkan!

📊 Perbandingan Spesifikasi Utama

🔧 Apa Saja Peningkatan di Realme C33?

  1. Kamera 50MP vs 13MP

Realme C33 hadir dengan kamera utama 50MP, jauh lebih besar dibanding 13MP di C21Y. Hasil foto lebih tajam dan detail, terutama di kondisi cahaya cukup.

  1. Desain Lebih Premium

Realme C33 mengusung "Boundless Sea Design" dengan finishing glossy yang terlihat lebih modern dibandingkan desain matte pada C21Y.

  1. Sistem Operasi Lebih Baru

C33 sudah menggunakan Android 12 dengan antarmuka UI yang lebih ringan dan efisien.

  1. Sensor Sidik Jari di Samping

Letak sensor di sisi samping memberikan akses yang lebih cepat dan nyaman.

🤔 Kesimpulan: Upgrade Worth It atau Tidak?

Jika kamu pengguna Realme C21Y dan mempertimbangkan untuk upgrade ke Realme C33, jawabannya ya, terutama jika:

  • Kamu menginginkan kualitas kamera lebih baik
  • Ingin desain yang lebih modern
  • Membutuhkan penyimpanan internal hingga 128GB
  • Ingin sistem operasi terbaru (Android 12)

Namun, jika kebutuhanmu hanya sebatas penggunaan ringan (chat, sosial media, browsing), Realme C21Y masih cukup layak untuk digunakan.

 ✔️ Realme C33 adalah peningkatan moderat dari C21Y, dengan keunggulan di kamera, desain, dan versi Android yang lebih baru.

Namun, performa tidak melonjak drastis, dan port charging masih menggunakan microUSB.

🟢 Cocok untuk Anda jika:

  • Menginginkan kamera lebih baik
  • Suka desain yang modern
  • Butuh penyimpanan hingga 128GB

🔵 Tapi jika Anda sudah memiliki C21Y:

  • Tidak wajib upgrade, kecuali kamera dan desain penting bagi Anda.

 




Spesifikasi Lengkap Realme C33: Tampil Stylish dengan Kamera 50MP

Realme C33 hadir sebagai salah satu pilihan smartphone entry-level yang tampil stylish dan bertenaga. Mengusung desain modern serta kamera utama 50MP, Realme C33 cocok bagi pengguna yang mencari performa mumpuni di kelas harga terjangkau. Berikut ini adalah spesifikasi lengkap dan fitur unggulannya:

Berikut adalah spesifikasi lengkap dari Realme C33, smartphone entry-level yang menawarkan desain stylish dan kamera 50MP dengan harga terjangkau:



📱 Spesifikasi Utama Realme C33

  • Layar: 6,5 inci IPS LCD, resolusi HD+ (720 x 1600 piksel), touch sampling rate 120Hz, tingkat kecerahan hingga 400 nits
  • Prosesor: Unisoc T612 (12nm), CPU Octa-core hingga 1.82GHz, GPU Mali-G57 .
  • RAM & Penyimpanan:
    • 3GB RAM / 32GB ROM
    • 4GB RAM / 64GB ROM
    • 4GB RAM / 128GB ROM
    • Mendukung ekspansi microSD hingga 1TB .
  • Kamera Belakang:
    • 50MP kamera utama dengan AI
    • 0,3MP kamera depth
    • Fitur: HDR, Mode Malam, Panorama, Portrait, Time-lapse, Expert Mode .
  • Kamera Depan: 5MP dengan fitur AI Beauty dan HDR .Realme
  • Baterai: 5.000 mAh dengan pengisian daya 10W; dilengkapi fitur Ultra Saving Mode
  • Sistem Operasi: Android 12 dengan antarmuka realme UI S Edition .
  • Desain: Ketebalan 8,3mm, berat 187g, desain "Boundless Sea" dengan efek cahaya dinamis .Realme+4detikinet+4Realme+4
  • Fitur Tambahan:
    • Sensor sidik jari di samping
    • Jack audio 3,5mm
    • Port microUSB
    • Dual SIM + slot microSD


💰 Harga Realme C33 di Indonesia (per Mei 2025)

  • 3GB/32GB: sekitar Rp 1.160.000
  • 4GB/64GB: sekitar Rp 1.199.000
  • 4GB/128GB: sekitar Rp 1.355.000

🎨 Pilihan Warna

  • Aqua Blue
  • Night Sea
  • Sandy Gold (varian terbaru dengan efek visual keemasan)

📸 Galeri Foto Realme C33

Berikut beberapa sumber resmi yang menyediakan galeri foto Realme C33:

  1. GSMArena: Menampilkan foto resmi Realme C33 dari berbagai sudut, termasuk tampilan depan, belakang, dan samping.
  2. MobileDokan: Menyediakan gambar Realme C33 varian 4GB/64GB dengan detail desain dan warna.
  3. Gadgets Now: Menampilkan galeri foto resmi Realme C33 dalam resolusi tinggi.

🎨 Pilihan Warna Realme C33

Realme C33 hadir dalam beberapa pilihan warna menarik:

  • Aqua Blue: Warna biru cerah dengan efek cahaya dinamis.
  • Night Sea: Warna hitam pekat dengan sentuhan kilau.
  • Sandy Gold: Warna emas pasir dengan tampilan elegan.

🔍 Spesifikasi Singkat Realme C33

  • Layar: 6,5 inci IPS LCD, resolusi HD+ (720 x 1600 piksel).
  • Prosesor: Unisoc T612 (12nm), CPU Octa-core hingga 1.82GHz.
  • RAM & Penyimpanan: Varian 3GB/32GB, 4GB/64GB, dan 4GB/128GB.
  • Kamera Belakang: 50MP kamera utama dengan AI, 0,3MP kamera depth.
  • Kamera Depan: 5MP dengan fitur AI Beauty dan HDR.
  • Baterai: 5.000 mAh dengan pengisian daya 10W.
  • Sistem Operasi: Android 12 dengan antarmuka realme UI S Edition.

Berikut beberapa pilihan produk Realme C33 yang tersedia:

  1. Realme C33 RAM 3GB / ROM 32GB: Pilihan ekonomis dengan performa cukup untuk penggunaan sehari-hari.
  2. Realme C33 RAM 4GB / ROM 128GB: Varian dengan kapasitas penyimpanan besar, cocok untuk pengguna yang membutuhkan ruang lebih.
  3. Realme C33 2023 RMX3627 4GB RAM Unlocked: Versi internasional dengan dukungan jaringan GSM global, ideal untuk traveler.

✅ Fitur Unggulan Realme C33

  1. Kamera 50MP di Kelas Entry-Level
    Menghasilkan foto tajam dengan dukungan AI dan mode malam.

  2. Desain Premium
    Efek cahaya dinamis di bodi belakang membuatnya terlihat mewah.

  3. Performa Stabil untuk Harian
    Unisoc T612 memberikan performa cukup baik untuk multitasking ringan dan aplikasi sosial.

  4. Baterai Tahan Lama
    Kapasitas 5000mAh bisa bertahan seharian penuh untuk penggunaan normal.

 


 

Wednesday, 7 May 2025

Cara Flash Realme C33 Tanpa PC: Apakah Bisa

Flash Realme C33 tanpa PC bisa dilakukan, tetapi terbatas hanya untuk update firmware via recovery mode atau SD card, bukan untuk unbrick atau flashing total seperti lewat PC.

Kapan Flash Tanpa PC Bisa Dilakukan

  • Update ke versi firmware lebih baru atau perbaiki bug ringan
  • Mengatasi bootloop ringan (jika masih bisa masuk Recovery Mode)
  • Restore sistem dari file OTA resmi

🔧 Syarat dan Persiapan

  1. Firmware versi Recovery (format .zip)
    • Bukan format .pac, karena .pac hanya bisa diflash lewat PC.
    • Cari firmware dari situs resmi Realme atau forum seperti Realme Community.
  2. SD Card minimal 8GB
  3. Baterai minimal 50%
  4. HP masih bisa masuk ke Recovery Mode (Power + Volume Down)

📥 Langkah-Langkah Flash Realme C33 Tanpa PC

1. Unduh Firmware Recovery (.zip)

  • Cari file firmware Realme C33 yang formatnya .zip (bukan .pac)
  • Contoh nama file: RMX3624_11_A.59_OTA.zip

2. Salin ke SD Card

  • Salin firmware .zip ke SD Card (letakkan di folder utama, jangan di dalam folder lain)

3. Masuk ke Recovery Mode

  • Matikan HP
  • Tekan dan tahan Power + Volume Down secara bersamaan hingga muncul logo Realme
  • Akan masuk ke ColorOS Recovery / Realme Recovery

4. Flash Firmware

  • Pilih menu: Install from storage device
  • Pilih file firmware .zip tadi
  • Konfirmasi dan tunggu proses selesai (biasanya 5–10 menit)

5. Reboot System

  • Setelah selesai, pilih Reboot
  • HP akan menyala dengan sistem baru

Kapan Tidak Bisa Flash Tanpa PC                                        

 

LANJUTAN

🔎 Ingin saya bantu carikan link firmware .zip yang bisa di-flash lewat recovery untuk Realme C33?