Membangun aplikasi web modern yang cepat, skalabel, dan memiliki antarmuka pengguna (UI) yang memukau adalah impian setiap pengembang. Dalam ekosistem pengembangan web saat ini, kombinasi antara backend yang kuat dan frontend yang reaktif menjadi standar industri. Jika Anda mencari cara terbaik untuk menggabungkan teknologi terbaru, maka tutorial integrasi react js shadcn ui dengan api laravel 12 ini dirancang khusus untuk Anda.
Laravel 12 baru saja dirilis dengan berbagai peningkatan performa dan fitur terbaru yang memudahkan pembuatan API. Di sisi lain, React JS tetap menjadi library frontend paling populer, dan Shadcn UI muncul sebagai revolusi dalam desain komponen yang memberikan kontrol penuh kepada developer. Artikel ini akan memandu Anda langkah demi langkah, mulai dari nol hingga aplikasi Anda berjalan sempurna.
Daftar Isi
- Mengapa Memilih Laravel 12, React, dan Shadcn UI?
- Persiapan Sistem dan Prasyarat
- Langkah 1: Membangun Backend API dengan Laravel 12
- Langkah 2: Konfigurasi Database dan Migrasi
- Langkah 3: Membuat API Resource dan Controller
- Langkah 4: Setup Frontend React JS dengan Vite
- Langkah 5: Instalasi dan Konfigurasi Shadcn UI
- Langkah 6: Menghubungkan React ke API Laravel
- Langkah 7: Menampilkan Data Menggunakan Komponen Shadcn
- Tips Keamanan dan Optimasi Performa
- Kesimpulan dan Langkah Berikutnya
Mengapa Memilih Laravel 12, React, dan Shadcn UI?
Sebelum kita masuk ke teknis tutorial integrasi react js shadcn ui dengan api laravel 12, penting untuk memahami mengapa kombinasi ini sangat powerful. Laravel 12 menawarkan efisiensi pengembangan backend dengan sintaks yang elegan dan fitur keamanan bawaan seperti Laravel Sanctum untuk autentikasi API.
React JS memberikan fleksibilitas dalam membangun Single Page Application (SPA) yang interaktif. Namun, tantangan terbesar di React seringkali adalah membangun komponen UI dari awal. Di sinilah Shadcn UI berperan. Berbeda dengan library komponen tradisional seperti MUI atau Ant Design, Shadcn UI bukanlah library yang diinstal sebagai paket NPM yang kaku. Ia adalah sekumpulan komponen yang bisa Anda salin dan sesuaikan sepenuhnya dengan Tailwind CSS.
“Shadcn UI memberikan kebebasan desain tanpa mengorbankan aksesibilitas dan fungsionalitas, menjadikannya pasangan sempurna untuk backend Laravel yang terstruktur.”
Persiapan Sistem dan Prasyarat
Untuk mengikuti tutorial ini, pastikan komputer Anda sudah terinstall perangkat lunak berikut:
- PHP >= 8.2 (Direkomendasikan versi terbaru untuk Laravel 12)
- Composer untuk manajemen dependency PHP
- Node.js & NPM (Versi LTS terbaru)
- Database Engine (MySQL, PostgreSQL, atau SQLite)
- Code Editor (Visual Studio Code sangat direkomendasikan)
Langkah 1: Membangun Backend API dengan Laravel 12
Langkah pertama dalam tutorial integrasi react js shadcn ui dengan api laravel 12 adalah menyiapkan backend. Buka terminal Anda dan jalankan perintah berikut untuk membuat proyek Laravel baru:
composer create-project laravel/laravel:^12.0 backend-api
Setelah proses instalasi selesai, masuk ke direktori proyek:
cd backend-api
Laravel 12 secara default sudah sangat siap untuk API, namun kita perlu memastikan package Laravel Sanctum terkonfigurasi jika nantinya Anda ingin menambahkan sistem login. Untuk saat ini, kita akan fokus pada pembuatan API CRUD sederhana.
Langkah 2: Konfigurasi Database dan Migrasi
Buka file .env di root direktori proyek Laravel Anda. Sesuaikan konfigurasi database dengan lingkungan lokal Anda:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_anda
DB_USERNAME=root
DB_PASSWORD=password_anda
Sekarang, mari kita buat model dan migrasi untuk contoh data “Product”. Jalankan perintah:
php artisan make:model Product -m
Buka file migrasi yang baru dibuat di folder database/migrations/ dan tambahkan beberapa kolom:
public function up(): void
{
Schema::create('products', function (Table $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->decimal('price', 10, 2);
$table->timestamps();
});
}
Jalankan migrasi dengan perintah: php artisan migrate.
Langkah 3: Membuat API Resource dan Controller
Agar integrasi berjalan mulus, kita perlu mengekspos data melalui endpoint API. Buat controller dengan perintah:
php artisan make:controller Api/ProductController --api
Di dalam ProductController, tambahkan logika untuk mengambil data:
use AppModelsProduct;
public function index()
{
return response()->json(Product::all());
}
Daftarkan route tersebut di file routes/api.php. Jika file tersebut belum ada di Laravel 12, Anda bisa menginstalnya dengan php artisan install:api. Tambahkan baris berikut:
use AppHttpControllersApiProductController;
Route::get('/products', [ProductController::class, 'index']);
Langkah 4: Setup Frontend React JS dengan Vite
Sekarang kita beralih ke bagian frontend dari tutorial integrasi react js shadcn ui dengan api laravel 12. Kita akan menggunakan Vite karena kecepatannya yang luar biasa.
Keluar dari folder backend, lalu jalankan:
npm create vite@latest frontend-react -- --template react
Masuk ke folder frontend dan install dependency dasar:
cd frontend-react
npm install
npm install axios lucide-react
Langkah 5: Instalasi dan Konfigurasi Shadcn UI
Shadcn UI membutuhkan Tailwind CSS. Pertama, install Tailwind CSS di proyek React Anda:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Selanjutnya, inisialisasi Shadcn UI dengan perintah CLI mereka:
npx shadcn-ui@latest init
Ikuti instruksi di terminal (pilih gaya, warna dasar, dan pastikan Anda memilih untuk menggunakan variabel CSS). Setelah selesai, Anda bisa mulai menambahkan komponen yang dibutuhkan, misalnya tabel dan tombol:
npx shadcn-ui@latest add table button card
Langkah 6: Menghubungkan React ke API Laravel
Masalah yang sering muncul dalam tutorial integrasi react js shadcn ui dengan api laravel 12 adalah masalah CORS (Cross-Origin Resource Sharing). Pastikan di Laravel, file config/cors.php sudah mengizinkan origin dari URL React Anda (biasanya http://localhost:5173).
Di folder React, buat sebuah file service src/lib/api.js untuk mengelola instance Axios:
import axios from 'axios';
const api = axios.create({
baseURL: 'http://localhost:8000/api',
});
export default api;
Langkah 7: Menampilkan Data Menggunakan Komponen Shadcn
Sekarang mari kita buat komponen utama untuk menampilkan data produk menggunakan komponen Table dari Shadcn UI. Edit file App.jsx:
import React, { useEffect, useState } from 'react';
import api from './lib/api';
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "./components/ui/table";
import { Card, CardHeader, CardTitle, CardContent } from "./components/ui/card";
function App() {
const [products, setProducts] = useState([]);
useEffect(() => {
api.get('/products').then(response => {
setProducts(response.data);
}).catch(error => console.error(error));
}, []);
return (
<div className="p-10">
<Card>
<CardHeader>
<CardTitle>Daftar Produk dari Laravel 12</CardTitle>
</CardHeader>
<CardContent>
<Table>
<TableHeader>
<TableRow>
<TableHead>Nama</TableHead>
<TableHead>Harga</TableHead>
<TableHead>Deskripsi</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{products.map((product) => (
<TableRow key={product.id}>
<TableCell>{product.name}</TableCell>
<TableCell>{product.price}</TableCell>
<TableCell>{product.description}</TableCell>
</TableRow>
))}
</TableBody>
</Table>
</CardContent>
</Card>
</div>
);
}
export default App;
Tips Keamanan dan Optimasi Performa
Setelah berhasil menjalankan tutorial integrasi react js shadcn ui dengan api laravel 12, ada beberapa hal penting yang perlu Anda perhatikan untuk skala produksi:
- Autentikasi: Gunakan Laravel Sanctum untuk mengamankan endpoint API Anda. Jangan biarkan data sensitif terbuka tanpa token Bearer.
- Validation: Selalu lakukan validasi data di sisi Laravel menggunakan
FormRequestuntuk memastikan data yang masuk ke database bersih. - Caching: Gunakan Redis atau driver cache Laravel lainnya untuk mempercepat respon API pada data yang jarang berubah.
- Lazy Loading: Di sisi React, gunakan
React.lazy()untuk memuat komponen UI hanya saat dibutuhkan guna mempercepat waktu load awal. - Error Handling: Implementasikan Error Boundaries di React dan Global Exception Handler di Laravel untuk pengalaman pengguna yang lebih profesional.
Kesimpulan dan Langkah Berikutnya
Mengintegrasikan React JS dengan Shadcn UI dan backend Laravel 12 adalah langkah cerdas untuk membangun aplikasi tingkat enterprise. Anda mendapatkan kecepatan pengembangan dari Laravel, fleksibilitas dari React, dan keindahan estetika dari Shadcn UI.
Dalam tutorial ini, kita telah membahas dasar-dasar setup hingga menampilkan data. Langkah selanjutnya yang bisa Anda ambil adalah menambahkan fitur CRUD lengkap (Create, Update, Delete) dan menerapkan sistem autentikasi berbasis peran (Role Based Access Control).
Jika Anda ingin mempelajari lebih lanjut atau mengunduh source code lengkap dari tutorial ini, silakan klik tombol di bawah ini:
Semoga tutorial integrasi react js shadcn ui dengan api laravel 12 ini bermanfaat bagi perjalanan karir programming Anda. Selamat mencoba!