
Introduction
Halo Sobat Developer! Salah satu kebutuhan umum dalam pengembangan aplikasi web adalah menghasilkan Unique Identifier (ID) yang unik dan aman. Untuk itu, UUID (Universally Unique Identifier) sering kali menjadi pilihan utama. UUID adalah string yang panjang dan unik, yang memungkinkan setiap entitas dalam aplikasi Anda memiliki ID yang tidak akan bentrok, bahkan jika ada banyak instance yang berjalan di sistem yang berbeda.
Di Laravel 11, Anda dapat dengan mudah menghasilkan UUID menggunakan built-in support yang disediakan oleh framework ini. Dalam artikel ini, saya akan membahas bagaimana cara generate UUID di Laravel 11 dengan cara yang sangat sederhana. Mulai dari instalasi project Laravel, konfigurasi yang diperlukan, hingga contoh penggunaan UUID dalam model Laravel. Yuk, langsung saja kita mulai!
Langkah 1: Install Project Laravel 11
Sebelum kita mulai, pastikan Anda sudah menginstal Laravel. Jika belum, mari kita mulai dari awal dengan menginstal Laravel 11.
1.1 Install Laravel dengan Composer
Buka terminal atau command prompt di komputer Anda dan jalankan perintah berikut untuk membuat project Laravel baru:
composer create-project --prefer-dist laravel/laravel laravel-uuid
Perintah ini akan mengunduh dan menginstal Laravel versi terbaru (Laravel 11) dalam folder laravel-uuid
. Setelah selesai, masuk ke dalam folder project Anda:
cd laravel-uuid
1.2 Jalankan Laravel Development Server
Setelah project terinstal, jalankan server Laravel dengan perintah:
php artisan serve
Buka browser dan kunjungi http://127.0.0.1:8000
untuk memastikan aplikasi Laravel Anda berjalan dengan baik.
Langkah 2: Menggunakan UUID di Laravel
Laravel mendukung UUID secara built-in. Anda bisa menggunakan UUID di Laravel dengan beberapa cara, seperti di model, route, atau migrasi. Di bagian ini, saya akan menjelaskan bagaimana cara menghasilkan UUID secara langsung menggunakan fungsi yang sudah disediakan oleh Laravel.
2.1 Menggunakan UUID dengan Str::uuid()
Laravel memiliki class Str
yang menyediakan berbagai metode string, termasuk Str::uuid()
yang bisa digunakan untuk menghasilkan UUID. Untuk menggunakan UUID, Anda cukup memanggil method ini di mana pun Anda membutuhkan UUID unik.
Untuk mencobanya, buka Tinker di terminal dengan perintah berikut:
php artisan tinker
Kemudian, jalankan perintah berikut untuk menghasilkan UUID:
use Illuminate\Support\Str;
Str::uuid();
Ini akan menghasilkan UUID yang unik, seperti berikut:
"c9f9f4c6-9861-4f91-8fd7-5d5b3458b564"
UUID yang dihasilkan di atas dapat digunakan di berbagai tempat dalam aplikasi Anda.
Langkah 3: Menggunakan UUID di Model Laravel
UUID sering kali digunakan sebagai primary key di database, menggantikan auto-increment integer ID yang biasanya digunakan oleh Laravel. Anda bisa mengonfigurasi model untuk menggunakan UUID sebagai primary key.
3.1 Buat Model dengan UUID
Sebagai contoh, mari kita buat model baru yang menggunakan UUID sebagai primary key. Jalankan perintah berikut untuk membuat model baru, misalnya model Product
:
php artisan make:model Product
Buka file model Product.php
yang berada di folder app/Models
dan lakukan beberapa penyesuaian seperti berikut:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class Product extends Model
{
// Tentukan bahwa primary key menggunakan UUID
protected $primaryKey = 'uuid';
// Nonaktifkan auto increment (karena kita akan menggunakan UUID)
public $incrementing = false;
// Tentukan tipe data primary key
protected $keyType = 'string';
// Tambahkan UUID ke model saat pembuatan
protected static function booted()
{
static::creating(function ($product) {
$product->uuid = (string) Str::uuid();
});
}
}
Penjelasan kode:
protected $primaryKey = 'uuid';
: Kita mengganti primary key dari default (id
) menjadiuuid
.public $incrementing = false;
: Karena UUID bukanlah auto-incrementing value, kita menonaktifkan fitur auto-increment di Laravel.protected $keyType = 'string';
: Karena UUID adalah string, kita menetapkan tipe primary key menjadistring
.static::creating()
: Ini adalah event model yang dipanggil setiap kali modelProduct
baru dibuat. Kita memanfaatkan event ini untuk menambahkan UUID saat record baru dibuat.
3.2 Buat Migrasi untuk products
Table
Sekarang, kita perlu membuat migrasi untuk tabel products
yang akan menyimpan UUID sebagai primary key. Jalankan perintah berikut untuk membuat migrasi:
php artisan make:migration create_products_table
Buka file migrasi yang baru saja dibuat di folder database/migrations
dan ubah struktur tabel seperti berikut:
public function up()
{
Schema::create('products', function (Blueprint $table) {
$table->string('uuid')->primary(); // Menggunakan UUID sebagai primary key
$table->string('name');
$table->decimal('price', 8, 2);
$table->timestamps();
});
}
Setelah itu, jalankan perintah berikut untuk menjalankan migrasi:
php artisan migrate
Dengan migrasi ini, tabel products
akan dibuat dengan kolom uuid
sebagai primary key.
Langkah 4: Menambahkan Data ke Tabel dengan UUID
Sekarang, mari kita coba untuk menambahkan data ke tabel products
dan memastikan UUID secara otomatis di-generate. Anda bisa menggunakan Tinker untuk menambah data ke database:
php artisan tinker
Kemudian, jalankan kode berikut untuk membuat instance Product
baru:
$product = App\Models\Product::create([
'name' => 'Product A',
'price' => 99.99
]);
echo $product->uuid;
Kode di atas akan mencetak UUID yang dihasilkan untuk produk baru yang telah disimpan ke database.
Langkah 5: Menampilkan UUID di Controller dan View
Sekarang, mari kita buat controller untuk menampilkan produk beserta UUID-nya di aplikasi. Jalankan perintah berikut untuk membuat controller:
php artisan make:controller ProductController
Buka file controller ProductController.php
di folder app/Http/Controllers
dan tambahkan kode berikut:
namespace App\Http\Controllers;
use App\Models\Product;
class ProductController extends Controller
{
public function index()
{
// Ambil semua produk
$products = Product::all();
// Kirim data ke view
return view('products.index', compact('products'));
}
}
Buat view baru di resources/views/products/index.blade.php
untuk menampilkan data produk, termasuk UUID:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daftar Produk</title>
</head>
<body>
<h1>Daftar Produk</h1>
<table border="1" cellspacing="0" cellpadding="5">
<thead>
<tr>
<th>UUID</th>
<th>Nama</th>
<th>Harga</th>
</tr>
</thead>
<tbody>
@foreach ($products as $product)
<tr>
<td>{{ $product->uuid }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->price }}</td>
</tr>
@endforeach
</tbody>
</table>
</body>
</html>
Terakhir, tambahkan route di routes/web.php
untuk mengakses halaman produk:
use App\Http\Controllers\ProductController;
Route::get('products', [ProductController::class, 'index']);
Sekarang, jika Anda mengunjungi http://localhost:8000/products
, Anda akan melihat daftar produk lengkap dengan UUID-nya.
Kesimpulan
Membuat dan menggunakan UUID di Laravel 11 sangat mudah dan dapat membantu memastikan bahwa ID yang Anda gunakan dalam aplikasi Anda tetap unik dan aman. Dalam artikel ini, kita telah membahas cara generate UUID menggunakan Str::uuid()
, bagaimana menggunakannya sebagai primary key di model Laravel, serta bagaimana menambah dan menampilkan data dengan UUID. Dengan mengikuti langkah-langkah ini, Anda dapat meningkatkan integritas data dan membuat aplikasi Anda lebih fleksibel dalam menangani data unik.
Semoga artikel ini bermanfaat dan memudahkan Anda dalam menggunakan UUID di Laravel 11. Selamat mencoba!
Leave a Reply