m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
No Result
View All Result
Home Database

Tutorial Membuat CRUD dengan Laravel untuk Pemula: Step-by-Step

Seraphina by Seraphina
June 25, 2025
in Database, Laravel, Pemrograman, Pemula, Tutorial
0
Share on FacebookShare on Twitter

Laravel, framework PHP yang elegan dan populer, seringkali menjadi pilihan utama bagi para developer web. Salah satu alasan utamanya adalah kemudahannya dalam membangun aplikasi web yang kompleks dengan cepat dan efisien. Nah, kalau kamu seorang pemula yang ingin belajar Laravel, salah satu hal mendasar yang wajib kamu kuasai adalah CRUD (Create, Read, Update, Delete).

Artikel ini akan memandu kamu langkah demi langkah dalam tutorial membuat CRUD dengan Laravel untuk pemula. Kita akan membahas dari nol, mulai dari persiapan lingkungan hingga implementasi lengkap fungsi CRUD pada sebuah tabel. Jadi, siapkan kopi dan mari kita mulai!

1. Apa itu CRUD dan Mengapa Penting di Laravel?

CRUD adalah singkatan dari Create, Read, Update, dan Delete. Ini adalah empat operasi dasar yang dilakukan pada data dalam sebuah database. Hampir setiap aplikasi web membutuhkan fungsi CRUD, mulai dari manajemen user, pengelolaan produk, hingga postingan blog.

  • Create: Menambah data baru ke database.
  • Read: Membaca data dari database.
  • Update: Memperbarui data yang sudah ada di database.
  • Delete: Menghapus data dari database.

Di Laravel, CRUD dipermudah dengan adanya fitur-fitur bawaan seperti Eloquent ORM (Object-Relational Mapping), Migrations, dan Controller. Eloquent memungkinkan kita berinteraksi dengan database menggunakan object PHP, bukan lagi query SQL yang rumit. Migrations membantu kita mengelola struktur database secara terstruktur. Dan Controller, bertugas menangani logika bisnis dari aplikasi kita.

Related Post

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

June 26, 2025

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

June 26, 2025

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

June 26, 2025

Cara Menggunakan Laravel Eloquent untuk Query Database: Panduan Lengkap

June 25, 2025

Menguasai CRUD di Laravel adalah kunci untuk membangun aplikasi web yang dinamis dan interaktif. Jadi, jangan sampai ketinggalan, ya!

2. Persiapan Lingkungan Pengembangan Laravel untuk CRUD

Sebelum memulai tutorial membuat CRUD dengan Laravel untuk pemula, pastikan kamu sudah memiliki lingkungan pengembangan yang siap. Berikut adalah beberapa hal yang perlu kamu persiapkan:

  • PHP: Pastikan kamu sudah menginstal PHP minimal versi 7.3. Kamu bisa cek versi PHP dengan perintah php -v di terminal.
  • Composer: Composer adalah package manager untuk PHP. Instalasi Composer sangat penting karena kita akan menggunakannya untuk menginstal Laravel dan package-package lainnya. Download dan instal Composer dari https://getcomposer.org/.
  • Database: Kamu bisa menggunakan MySQL, PostgreSQL, atau database lainnya yang didukung Laravel. Pastikan database server sudah berjalan. Dalam contoh ini, kita akan menggunakan MySQL.
  • Text Editor/IDE: Pilih text editor atau IDE yang kamu sukai. Beberapa rekomendasi adalah Visual Studio Code, Sublime Text, atau PHPStorm.
  • Laravel Installer: Laravel Installer akan memudahkan kita dalam membuat project Laravel baru. Instal dengan perintah composer global require laravel/installer.

Setelah semua persiapan selesai, mari kita lanjut ke langkah berikutnya.

3. Membuat Project Laravel Baru untuk Implementasi CRUD

Setelah lingkungan pengembangan siap, sekarang saatnya membuat project Laravel baru. Buka terminal kamu dan jalankan perintah berikut:

laravel new crud-laravel

Perintah ini akan membuat direktori baru bernama crud-laravel dan menginstal semua dependencies yang dibutuhkan untuk menjalankan project Laravel. Tunggu hingga proses instalasi selesai.

Setelah selesai, masuk ke direktori project:

cd crud-laravel

Sekarang project Laravel sudah siap! Kamu bisa menjalankan server development dengan perintah:

php artisan serve

Buka browser kamu dan akses http://localhost:8000. Kamu akan melihat halaman default Laravel yang menandakan bahwa instalasi berhasil.

4. Konfigurasi Database: Menghubungkan Laravel dengan Database

Langkah selanjutnya adalah mengkonfigurasi database. Buka file .env di direktori project kamu. Cari bagian yang berhubungan dengan database dan sesuaikan dengan informasi database kamu.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_kamu
DB_USERNAME=username_database_kamu
DB_PASSWORD=password_database_kamu

Ganti nama_database_kamu, username_database_kamu, dan password_database_kamu dengan informasi yang sesuai.

Setelah itu, buat database dengan nama yang sudah kamu tentukan di .env. Kamu bisa menggunakan phpMyAdmin, MySQL Workbench, atau command line untuk membuat database.

5. Membuat Migration dan Model: Struktur Data untuk CRUD

Sekarang kita akan membuat migration dan model untuk tabel yang akan kita gunakan dalam contoh CRUD ini. Misalkan kita ingin membuat CRUD untuk data “Produk”.

Jalankan perintah berikut di terminal:

php artisan make:model Product -m

Perintah ini akan membuat dua file:

  • app/Models/Product.php (Model)
  • database/migrations/xxxx_xx_xx_xxxxxx_create_products_table.php (Migration)

Buka file migration (database/migrations/xxxx_xx_xx_xxxxxx_create_products_table.php) dan tambahkan field-field yang dibutuhkan untuk tabel products. Contoh:

<?php

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('description');
            $table->integer('price');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}

Kode di atas akan membuat tabel products dengan field id, name, description, price, created_at, dan updated_at.

Setelah selesai, jalankan migration dengan perintah:

php artisan migrate

Perintah ini akan membuat tabel products di database kamu.

Selanjutnya, buka file app/Models/Product.php dan tambahkan $fillable property untuk menentukan field mana saja yang boleh diisi secara massal.

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Product extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'description',
        'price',
    ];
}

6. Membuat Controller: Logika Bisnis untuk CRUD

Sekarang kita akan membuat controller untuk menangani logika bisnis dari CRUD Product. Jalankan perintah berikut di terminal:

php artisan make:controller ProductController

Perintah ini akan membuat file app/Http/Controllers/ProductController.php. Buka file tersebut dan tambahkan method-method untuk implementasi CRUD:

<?php

namespace AppHttpControllers;

use AppModelsProduct;
use IlluminateHttpRequest;

class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        $products = Product::all();
        return view('products.index', compact('products'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('products.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'description' => 'required',
            'price' => 'required|integer',
        ]);

        Product::create($request->all());

        return redirect()->route('products.index')
                         ->with('success','Product created successfully.');
    }

    /**
     * Display the specified resource.
     *
     * @param  AppModelsProduct  $product
     * @return IlluminateHttpResponse
     */
    public function show(Product $product)
    {
        return view('products.show',compact('product'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  AppModelsProduct  $product
     * @return IlluminateHttpResponse
     */
    public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  AppModelsProduct  $product
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, Product $product)
    {
        $request->validate([
            'name' => 'required',
            'description' => 'required',
            'price' => 'required|integer',
        ]);

        $product->update($request->all());

        return redirect()->route('products.index')
                         ->with('success','Product updated successfully');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  AppModelsProduct  $product
     * @return IlluminateHttpResponse
     */
    public function destroy(Product $product)
    {
        $product->delete();

        return redirect()->route('products.index')
                         ->with('success','Product deleted successfully');
    }
}

Setiap method di atas memiliki fungsi masing-masing:

  • index(): Menampilkan daftar semua produk.
  • create(): Menampilkan form untuk membuat produk baru.
  • store(): Menyimpan produk baru ke database.
  • show(): Menampilkan detail sebuah produk.
  • edit(): Menampilkan form untuk mengedit sebuah produk.
  • update(): Memperbarui data produk di database.
  • destroy(): Menghapus produk dari database.

7. Membuat Route: Menghubungkan URL dengan Controller

Setelah membuat controller, kita perlu mendefinisikan route untuk menghubungkan URL dengan method-method di controller. Buka file routes/web.php dan tambahkan route berikut:

<?php

use IlluminateSupportFacadesRoute;
use AppHttpControllersProductController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

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

Route::resource('products', ProductController::class); adalah cara mudah untuk membuat semua route yang dibutuhkan untuk CRUD resource products. Route ini akan menghasilkan route-route berikut:

Method URI Action Route Name
GET /products index products.index
GET /products/create create products.create
POST /products store products.store
GET /products/{product} show products.show
GET /products/{product}/edit edit products.edit
PUT/PATCH /products/{product} update products.update
DELETE /products/{product} destroy products.destroy

8. Membuat View: Tampilan Antarmuka Pengguna untuk CRUD

Langkah terakhir adalah membuat view untuk menampilkan data dan form. Kita akan membuat beberapa file view di direktori resources/views/products:

  • index.blade.php: Menampilkan daftar semua produk.
  • create.blade.php: Menampilkan form untuk membuat produk baru.
  • show.blade.php: Menampilkan detail sebuah produk.
  • edit.blade.php: Menampilkan form untuk mengedit sebuah produk.

Berikut adalah contoh kode untuk index.blade.php:

<!DOCTYPE html>
<html>
<head>
    <title>CRUD Products</title>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.css" rel="stylesheet">
</head>
<body>

<div class="container">
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>CRUD Products</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-success" href="{{ route('products.create') }}"> Create New Product</a>
            </div>
        </div>
    </div>

    @if ($message = Session::get('success'))
        <div class="alert alert-success">
            <p>{{ $message }}</p>
        </div>
    @endif

    <table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Description</th>
            <th>Price</th>
            <th width="280px">Action</th>
        </tr>
        @foreach ($products as $product)
        <tr>
            <td>{{ ++$i }}</td>
            <td>{{ $product->name }}</td>
            <td>{{ $product->description }}</td>
            <td>{{ $product->price }}</td>
            <td>
                <form action="{{ route('products.destroy',$product->id) }}" method="POST">

                    <a class="btn btn-info" href="{{ route('products.show',$product->id) }}">Show</a>

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

                    @csrf
                    @method('DELETE')

                    <button type="submit" class="btn btn-danger">Delete</button>
                </form>
            </td>
        </tr>
        @endforeach
    </table>

    {!! $products->links() !!}
</div>

</body>
</html>

Untuk create.blade.php, show.blade.php, dan edit.blade.php, kamu bisa membuatnya sendiri dengan mengikuti logika yang sama. Pastikan form di create.blade.php dan edit.blade.php memiliki field yang sesuai dengan field di tabel products.

9. Menjalankan dan Menguji Aplikasi CRUD Laravel Kita

Setelah semua langkah di atas selesai, sekarang saatnya menjalankan dan menguji aplikasi CRUD Laravel kita. Buka browser kamu dan akses http://localhost:8000/products. Kamu akan melihat daftar produk (jika sudah ada). Kamu bisa menambahkan produk baru dengan mengklik tombol “Create New Product”. Edit produk yang sudah ada dengan mengklik tombol “Edit”. Dan hapus produk dengan mengklik tombol “Delete”.

Jika semua berjalan lancar, berarti kamu sudah berhasil membuat CRUD dengan Laravel untuk pemula! Selamat!

10. Tips dan Trik Tambahan untuk Optimasi CRUD di Laravel

Berikut adalah beberapa tips dan trik tambahan untuk mengoptimasi CRUD di Laravel:

  • Gunakan Resource Controller: Seperti yang sudah kita lakukan di atas, gunakan Route::resource untuk membuat semua route CRUD secara otomatis.
  • Gunakan Form Request: Gunakan Form Request untuk validasi data yang lebih terstruktur dan reusable.
  • Gunakan Eloquent Relationships: Manfaatkan Eloquent Relationships untuk menghubungkan tabel-tabel yang saling berelasi.
  • Gunakan Pagination: Gunakan pagination untuk menampilkan data dalam jumlah besar secara efisien.
  • Gunakan Caching: Gunakan caching untuk mempercepat akses data yang sering digunakan.
  • Gunakan Middleware: Gunakan middleware untuk menambahkan otentikasi dan otorisasi pada route-route CRUD.

11. Kesimpulan: Menguasai CRUD adalah Kunci Pengembangan Laravel

Dalam tutorial membuat CRUD dengan Laravel untuk pemula ini, kita sudah membahas langkah demi langkah cara membuat CRUD dengan Laravel. Mulai dari persiapan lingkungan, membuat project, konfigurasi database, membuat migration dan model, membuat controller, membuat route, hingga membuat view.

Menguasai CRUD adalah fundamental dalam pengembangan Laravel. Dengan memahami konsep CRUD, kamu akan lebih mudah membangun aplikasi web yang dinamis dan interaktif. Jangan berhenti belajar dan terus eksplorasi fitur-fitur Laravel lainnya untuk menjadi developer Laravel yang handal!

Selamat mencoba dan semoga berhasil!

Tags: Bahasa IndonesiaCRUDFrameworkLaravelpemulaPHPProgrammingstep-by-steptutorialWeb Development
Seraphina

Seraphina

Related Posts

API

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

by Jasper
June 26, 2025
Hacker

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

by Willow
June 26, 2025
Development

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

by Seraphina
June 26, 2025
Next Post

Cara Menggunakan Laravel Eloquent untuk Query Database: Panduan Lengkap

Leave a Reply Cancel reply

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

Recommended

Tutorial Laravel Dasar untuk Pemula Bahasa Indonesia: Mulai Membangun Aplikasi Web

June 9, 2025

Desain Website Modern dan Menarik: Tingkatkan Konversi dengan Visual yang Memukau

April 9, 2025

Lowongan Kerja Web Development Fresh Graduate: Tips Mendapatkan Pekerjaan Impian

June 9, 2025

Cara Membuat Artikel SEO-Friendly dengan Bantuan AI

June 26, 2025

Aplikasi AI Terbaik untuk Mengedit Foto Produk Online: Tingkatkan Penjualanmu Sekarang!

June 26, 2025

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

June 26, 2025

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

June 26, 2025

m.techreview.click

Our media platform offers reliable news and insightful articles. Stay informed with our comprehensive coverage and in-depth analysis on various topics.
Read more »

Recent Posts

  • Cara Membuat Artikel SEO-Friendly dengan Bantuan AI
  • Aplikasi AI Terbaik untuk Mengedit Foto Produk Online: Tingkatkan Penjualanmu Sekarang!
  • Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

Categories

  • 2024
  • Agency
  • AI
  • Akses
  • Aktif
  • Akuntansi
  • Algoritma
  • Analisis
  • Anggaran
  • Antarmuka
  • Antisipasi
  • API
  • Aplikasi
  • Artikel
  • Asynchronous
  • Audio
  • Authentication
  • Authorization
  • Backend
  • Background
  • Backup
  • Bahasa
  • Bandwidth
  • Bantuan
  • Belajar
  • Bergabung
  • Biaya
  • Bisnis
  • Blogger
  • Bootstrap
  • Branding
  • Bukti
  • Cepat
  • Chatbot
  • Cloud
  • Coding
  • Company
  • Contoh
  • cPanel
  • CRM
  • CSS
  • Custom
  • Dampak
  • Dasar
  • Data
  • Database
  • Deployment
  • Desain
  • Design
  • Detail
  • Developer
  • Development
  • Digital
  • Diskusi
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efisiensi
  • Eloquent
  • Email
  • Engine
  • Enterprise
  • Error
  • Error generating categories
  • Estimasi
  • Etika
  • Event
  • Faktor
  • Fitur
  • Fleksibel
  • Fortify
  • Foto
  • Framework
  • Freelancer
  • Fresh
  • Frontend
  • Fungsi
  • Gambar
  • Garansi
  • Gratis
  • Hacker
  • Harga
  • Hemat
  • Here are 5 categories derived from the article title "Hosting dengan Dukungan Pelanggan 24 Jam: Bantuan Kapanpun Dibutuhkan": Hosting
  • Here are 5 categories derived from the article title "Hosting Domain Murah Indonesia dengan Proteksi DDoS Gratis: Solusi Terbaik untuk Website Anda": Hosting
  • Here are 5 categories derived from the provided list and the article titles: Company
  • Hosting
  • HTML
  • Hybrid
  • Implementasi
  • Indonesia
  • Inovasi
  • Inspirasi
  • Instalasi
  • Integrasi
  • Investasi
  • Jakarta
  • Jasa
  • JavaScript
  • Kantor
  • Kapasitas
  • Karir
  • Karyawan
  • Keamanan
  • Keandalan
  • Kebutuhan
  • Kecepatan
  • Kecil
  • Kehidupan
  • Kemampuan
  • Kemudahan
  • Kerja
  • Kesalahan
  • Kesehatan
  • Keterampilan
  • Keuntungan
  • Keyword
  • Kode
  • Kompetensi
  • Komponen
  • Komunikasi
  • Komunitas
  • Konsep
  • Konten
  • Konversi
  • Kreativitas
  • Kredibilitas
  • Kualitas
  • Langkah
  • Laravel
  • Latihan
  • Layanan
  • Library
  • Listener
  • Livewire
  • Logika
  • Logo
  • Lokal
  • Loyalitas
  • Machine Learning
  • Mahasiswa
  • Mahir
  • Maintenance
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Medis
  • Memilih
  • Meningkatkan
  • Middleware
  • Migration
  • Mobile
  • Modern
  • Murah
  • MySQL
  • Observer
  • Online
  • Operasional
  • Optimasi
  • ORM
  • Otentikasi
  • Otomatis
  • Package
  • Panduan
  • Pasar
  • Pekerjaan
  • Pelajaran
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemahaman
  • Pemanfaatan
  • Pemasaran
  • Pemilihan
  • Pemrograman
  • Pemula
  • Penawaran
  • Pengalaman
  • Pengenalan
  • Pengguna
  • Penggunaan
  • Pengujian
  • Penipuan
  • Penjualan
  • Penulisan
  • Peran
  • Perbandingan
  • Perbedaan
  • Performa
  • Performance
  • Peringkat
  • Pertimbangan
  • Pertumbuhan
  • Perusahaan
  • PHP
  • Pilihan
  • Platform
  • Policy
  • Portofolio
  • Praktik
  • Prediksi
  • Pribadi
  • Process
  • Produktivitas
  • Profesional
  • Profil
  • Profile
  • Project
  • Proyek
  • Python
  • Queue
  • Real-Time
  • Redis
  • Referensi
  • Rekomendasi
  • Relasi
  • Remote
  • Request
  • Responsive
  • Retail
  • Retensi
  • Review
  • Riset
  • Ritel
  • Roadmap
  • Saham
  • Sanctum
  • Sederhana
  • Seeding
  • SEO
  • Sertifikat
  • Server
  • Sharing
  • Sinkronisasi
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • Space
  • SSL
  • Startup
  • Strategi
  • Struktur
  • Studi Kasus
  • Sukses
  • Tanggung Jawab
  • Tantangan
  • Teknis
  • Teknologi
  • Teks
  • Template
  • Tenaga Kerja
  • Terbaik
  • Terjangkau
  • Terjemahan
  • Terlengkap
  • Terpercaya
  • Tim
  • Tips
  • Toko
  • Tools
  • Training
  • Transkripsi
  • Tren
  • Tugas
  • Tutorial
  • Uji Coba
  • UMKM
  • Umum
  • Unlimited
  • Uptime
  • URL
  • User Experience
  • Video
  • Visual
  • VPS
  • Wajah
  • Web
  • Web Development
  • Website
  • Windows
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 m.techreview.click.

No Result
View All Result
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development

© 2024 m.techreview.click.