Skip to content Skip to sidebar Skip to footer

Membangun Aplikasi CRUD dengan Laravel

Membangun Aplikasi CRUD dengan Laravel

Membangun Aplikasi CRUD dengan Laravel: Panduan Step-by-Step

Laravel adalah salah satu framework PHP paling populer untuk membangun aplikasi web. Dalam tutorial ini, kita akan membangun aplikasi CRUD (Create, Read, Update, Delete) sederhana menggunakan Laravel. Aplikasi ini akan memungkinkan pengguna untuk membuat, membaca, memperbarui, dan menghapus data dari database.

Persiapan

Sebelum memulai, pastikan bahwa Anda telah menginstal Laravel di komputer Anda. Untuk memeriksa apakah Laravel telah terinstal, jalankan perintah berikut pada terminal Anda:

php artisan –version

Pastikan Anda juga telah menginstal database seperti MySQL atau PostgreSQL. Dalam tutorial ini, kita akan menggunakan MySQL.

Membuat Database dan Table

Langkah pertama dalam membangun aplikasi CRUD adalah membuat database dan tabel untuk menyimpan data. Untuk membuat database, jalankan perintah berikut pada terminal Anda:

mysql -u root -p

Setelah berhasil masuk ke MySQL, jalankan perintah berikut untuk membuat database:

CREATE DATABASE laravel_crud;

Setelah membuat database, jalankan perintah berikut untuk membuat tabel:

USE laravel_crud;

CREATE TABLE products (

id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255) NOT NULL,

description TEXT,

price DECIMAL(10,2),

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

);

Tabel products akan memiliki kolom id, name, description, price, created_at, dan updated_at.

Membuat Model

Setelah membuat tabel, langkah berikutnya adalah membuat model untuk tabel products. Untuk membuat model, jalankan perintah berikut pada terminal Anda:

php artisan make:model Product

Model Product akan terletak di direktori app/Models. Pastikan untuk mengatur nama tabel dan primary key pada model Anda:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;

use Illuminate\Database\Eloquent\Model;

class Product extends Model

{

    use HasFactory;

    protected $table= 'products';

    protected $primaryKey = 'id';

}

Membuat Controller

Selanjutnya, kita akan membuat controller untuk mengatur logika aplikasi. Untuk membuat controller, jalankan perintah berikut pada terminal Anda:

php artisan make:controller ProductController –resource

Controller ProductController akan terletak di direktori app/Http/Controllers. Pastikan untuk menambahkan model Product pada controller Anda:

namespace App\Http\Controllers;

use App\Models\Product;

use Illuminate\Http\Request;

class ProductController extends Controller

{

    // methods here

}

Membuat Route

Selanjutnya, kita akan membuat route untuk menghubungkan URL dengan controller. Untuk membuat route, buka file routes/web.php dan tambahkan route berikut:

use App\Http\Controllers\ProductController;

Route::resource('products', ProductController::class);

Membuat View

Terakhir, kita akan membuat view untuk menampilkan data pada aplikasi. Untuk membuat view, buat file index.blade.php di direktori resources/views/products dan tambahkan kode berikut:

@extends('layout

@section('content')

  <div class="container">

    <div class="row">

      <div class="col-md-12">

        <h1>Daftar Produk</h1>

        <table class="table">

          <thead>

            <tr>

              <th>Nama</th>

              <th>Deskripsi</th>

              <th>Harga</th>

              <th>Aksi</th>

            </tr>

          </thead>

          <tbody>

            @foreach ($products as $product)

              <tr>

                <td>{{ $product->name }}</td>

                <td>{{ $product->description }}</td>

                <td>{{ $product->price }}</td>

                <td><a href="{{ route('products.edit', $product->id) }}" class="btn btn-primary">Edit</a>             

  <form action="{{ route('products.destroy', $product->id) }}" method="POST" style="display: inline-block;">              

    @csrf             

    @method('DELETE')              

    <button type="submit" class="btn btn-danger">Hapus</button>              

  </form>

              </td>

              </tr>

            @endforeach

          </tbody>

        </table>

        <a href="{{ route('products.create') }}" class="btn btn-success">Tambah Produk</a>

      </div>

    </div>

  </div>

@endsection

Selain itu, buat juga file create.blade.php di direktori resources/views/products dan tambahkan kode berikut:

@extends('layout')

@section('content')

  <div class="container">

    <div class="row">

      <div class="col-md-12">

      <h1>Tambah Produk</h1>

        <form action="{{ route('products.store') }}" method="POST">

          @csrf

          <div class="form-group">

            <label for="name">Nama Produk</label>

            <input type="text" name="name" class="form-control" required>

          </div>

          <div class="form-group">

            <label for="description">Deskripsi Produk</label>

            <textarea name="description" class="form-control"></textarea>

           </div>

          <div class="form-group">

            <label for="price">Harga Produk</label>

            <input type="number" name="price" class="form-control" step=".01" required>

           </div>

          <button type="submit" class="btn btn-primary">Simpan</button>

        </form>

      </div>

    </div>

  </div>

@endsection

Dan terakhir, buat file edit.blade.php di direktori resources/views/products dan tambahkan kode berikut:

@extends('layout')

@section('content')

  <div class="container">

    <div class="row">

      <div class="col-md-12">

        <h1>Edit Produk</h1>

        <form action="{{ route('products.update', $product->id) }}" method="POST">

          @csrf

          @method('PUT')

          <div class="form-group">

            <label for="name">Nama Produk</label>

            <input type="text" name="name" class="form-control" value="{{ $product->name }}" required>

          </div>

          <div class="form-group">

            <label for="description">Deskripsi Produk</label>

            <textarea name="description" class="form-control">{{ $product->description }}</textarea>

          </div>

          <div class="form-group">

            <label for="price">Harga Produk</label>

            <button type="submit" class="btn btn-primary">Simpan</button>

          </div>

        </form>

      </div>

    </div>

  </div>

@endsection

Dengan kode di atas, kita telah berhasil membuat tampilan dan fitur CRUD sederhana menggunakan Laravel. Sekarang mari kita coba jalankan aplikasi ini di browser.

Menjalankan Aplikasi CRUD

Untuk menjalankan aplikasi CRUD ini, buka terminal dan masuk ke direktori projek Laravel kita. Selanjutnya, jalankan perintah php artisan serve untuk memulai server lokal Laravel.

$ cd path/to/project

$ php artisan serve

Setelah server berhasil dijalankan, buka browser dan masukkan alamat http://localhost:8000/products pada bar URL. Anda akan melihat tampilan daftar produk yang sudah kita buat sebelumnya.

Untuk menambahkan produk baru, klik tombol "Tambah Produk" dan isi formulir yang disediakan. Setelah itu, Anda akan kembali ke halaman daftar produk dan produk yang baru ditambahkan akan terlihat di sana.

Untuk mengedit atau menghapus produk yang sudah ada, klik tombol "Edit" atau "Hapus" pada baris produk yang diinginkan. Setelah itu, ikuti instruksi yang muncul pada layar.

Kesimpulan

Dalam tutorial ini, kita telah belajar bagaimana cara membangun aplikasi CRUD sederhana menggunakan framework Laravel. Dalam prosesnya, kita telah mempelajari konsep dasar MVC, routing, dan database query di Laravel.

Namun, ini hanya permulaan. Masih ada banyak hal yang dapat kita pelajari dan kembangkan dalam pengembangan aplikasi web dengan Laravel. Semoga tutorial ini dapat menjadi bekal awal bagi Anda untuk memulai belajar lebih dalam tentang Laravel dan pengembangan aplikasi web secara keseluruhan.

Untuk dokumentasi lengkap silahkan kunjungi https://laravel.com/docs

Post a Comment for "Membangun Aplikasi CRUD dengan Laravel"