Press ESC to close

Laravel 11 #8 Cara Membuat CRUD di Laravel 11

Panduan Lengkap CRUD di Laravel: Buat Operasi Create, Read, Update, dan Delete dengan Mudah

CRUD (Create, Read, Update, Delete) adalah empat operasi dasar yang digunakan dalam mengelola data di aplikasi web. Di Laravel, CRUD sangat mudah diimplementasikan karena framework ini menyediakan Eloquent ORM yang mempermudah interaksi dengan database. Artikel ini akan membahas cara membuat operasi CRUD di Laravel secara lengkap dan mudah dipahami.


Apa Itu CRUD di Laravel?

CRUD adalah singkatan dari Create, Read, Update, dan Delete, yang merupakan operasi dasar dalam mengelola data di aplikasi. Dalam konteks Laravel, CRUD mengacu pada bagaimana kita membuat, membaca, memperbarui, dan menghapus data di database menggunakan model Eloquent ORM. Dengan fitur CRUD ini, Laravel memungkinkan kita untuk mengelola data secara lebih efisien dan terstruktur.


Persiapan: Membuat Model dan Migration

Sebelum memulai dengan operasi CRUD, kita perlu membuat model dan tabel database yang akan digunakan. Misalnya, kita akan membuat model Produk dengan beberapa kolom, seperti nama, harga, dan stok.

Buat model dan migration dengan perintah berikut:shellCopy codephp artisan make:model Produk -m Perintah ini akan membuat file model Produk.php di app/Models dan file migration di database/migrations.

Buka file migration yang baru dibuat dan tambahkan kolom berikut:php

public function up() { 
  Schema::create('produk', function (Blueprint $table) { 
    $table->id(); 
    $table->string('nama'); 
    $table->decimal('harga', 10, 2); 
    $table->integer('stok'); $table->timestamps();
  }); 
}

Jalankan migration untuk membuat tabel di database:shellCopy codephp artisan migrate Sekarang, tabel produk sudah siap digunakan untuk operasi CRUD.


1. Create: Menyimpan Data Baru ke Database

Operasi pertama dalam CRUD adalah Create. Operasi ini memungkinkan kita untuk menyimpan data baru ke dalam tabel produk.

a. Membuat Form Input di Blade

Untuk membuat produk baru, kita bisa menambahkan form di file Blade (create.blade.php), misalnya:

><form action="{{ route('produk.store') }}" method="POST">
    @csrf
    <label for="nama">Nama Produk:</label>
    <input type="text" name="nama" id="nama" required>

    <label for="harga">Harga Produk:</label>
    <input type="number" name="harga" id="harga" step="0.01" required>

    <label for="stok">Stok Produk:</label>
    <input type="number" name="stok" id="stok" required>

    <button type="submit">Tambah Produk</button>
</form>

b. Menangani Penyimpanan di Controller

Selanjutnya, tambahkan fungsi store di ProdukController untuk menangani request penyimpanan data:

use App\Models\Produk;
use Illuminate\Http\Request;

class ProdukController extends Controller
{
    public function store(Request $request)
    {
        $validatedData = $request->validate([
            'nama' => 'required|string|max:255',
            'harga' => 'required|numeric',
            'stok' => 'required|integer',
        ]);

        Produk::create($validatedData);

        return redirect()->route('produk.index')->with('success', 'Produk berhasil ditambahkan!');
    }
}

Jangan lupa tambahkan $fillable di model Produk untuk mengizinkan pengisian massal:

protected $fillable = ['nama', 'harga', 'stok'];

Sekarang, kita bisa menyimpan data produk baru ke dalam database.


2. Read: Membaca Data dari Database

Operasi Read memungkinkan kita mengambil dan menampilkan data dari database. Untuk menampilkan daftar produk, kita perlu menambahkan fungsi index di ProdukController.

a. Mengambil Data di Controller

Tambahkan method index di ProdukController:

public function index()
{
    $produk = Produk::all();
    return view('produk.index', compact('produk'));
}

b. Menampilkan Data di Blade

Selanjutnya, buat file index.blade.php untuk menampilkan daftar produk:

<h2>Daftar Produk</h2>
<table>
    <thead>
        <tr>
            <th>Nama</th>
            <th>Harga</th>
            <th>Stok</th>
            <th>Aksi</th>
        </tr>
    </thead>
    <tbody>
        @foreach($produk as $item)
        <tr>
            <td>{{ $item->nama }}</td>
            <td>{{ $item->harga }}</td>
            <td>{{ $item->stok }}</td>
            <td>
                <a href="{{ route('produk.edit', $item->id) }}">Edit</a>
                <form action="{{ route('produk.destroy', $item->id) }}" method="POST" style="display:inline;">
                    @csrf
                    @method('DELETE')
                    <button type="submit">Hapus</button>
                </form>
            </td>
        </tr>
        @endforeach
    </tbody>
</table>

Dengan begitu, kita bisa melihat semua produk yang ada di tabel produk secara langsung.


3. Update: Memperbarui Data di Database

Operasi Update memungkinkan kita memperbarui data yang sudah ada. Untuk melakukan update, kita akan membuat form edit dan menambahkan fungsi edit serta update di controller.

a. Menampilkan Form Edit

Tambahkan method edit di ProdukController untuk mengambil data produk berdasarkan ID:

public function edit($id)
{
    $produk = Produk::findOrFail($id);
    return view('produk.edit', compact('produk'));
}

Lalu, buat file edit.blade.php untuk menampilkan form edit:

<form action="{{ route('produk.update', $produk->id) }}" method="POST">
    @csrf
    @method('PUT')

    <label for="nama">Nama Produk:</label>
    <input type="text" name="nama" id="nama" value="{{ $produk->nama }}" required>

    <label for="harga">Harga Produk:</label>
    <input type="number" name="harga" id="harga" value="{{ $produk->harga }}" step="0.01" required>

    <label for="stok">Stok Produk:</label>
    <input type="number" name="stok" id="stok" value="{{ $produk->stok }}" required>

    <button type="submit">Update Produk</button>
</form>

b. Menyimpan Data yang Diperbarui

Tambahkan method update di ProdukController untuk menyimpan perubahan:

public function update(Request $request, $id)
{
    $validatedData = $request->validate([
        'nama' => 'required|string|max:255',
        'harga' => 'required|numeric',
        'stok' => 'required|integer',
    ]);

    $produk = Produk::findOrFail($id);
    $produk->update($validatedData);

    return redirect()->route('produk.index')->with('success', 'Produk berhasil diperbarui!');
}

4. Delete: Menghapus Data dari Database

Operasi terakhir dalam CRUD adalah Delete untuk menghapus data dari database. Tambahkan fungsi destroy di ProdukController.

a. Menghapus Data di Controller

Tambahkan method destroy di ProdukController:

public function destroy($id)
{
    $produk = Produk::findOrFail($id);
    $produk->delete();

    return redirect()->route('produk.index')->with('success', 'Produk berhasil dihapus!');
} 

Form untuk menghapus produk sudah ditambahkan pada langkah Read di bagian index.blade.php, jadi kita tidak perlu menambahkan form baru.


Kesimpulan

Dengan Laravel, membuat operasi CRUD sangat mudah dan efisien. Artikel ini telah menjelaskan cara membuat operasi CRUD di Laravel mulai dari menambahkan data baru (Create), membaca data (Read), memperbarui data (Update), hingga menghapus data (Delete). Dengan mengikuti panduan ini, kamu sudah memiliki dasar yang kuat dalam mengelola data di aplikasi Laravel.

Selamat mencoba dan semoga artikel ini membantu!

Leave a Reply

Your email address will not be published. Required fields are marked *