tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
No Result
View All Result
Home Bahasa Indonesia

Tutorial Laravel 9 Bahasa Indonesia: Panduan Lengkap dan Mudah Dipahami

venus by venus
September 24, 2025
in Bahasa Indonesia, Framework, Laravel, Pengembangan, Tutorial
0
Share on FacebookShare on Twitter

Selamat datang di panduan lengkap Laravel 9 dalam Bahasa Indonesia! Laravel adalah salah satu framework PHP yang paling populer dan powerful, digunakan untuk membangun aplikasi web modern dengan cepat dan efisien. Artikel ini akan membimbing Anda, langkah demi langkah, melalui dasar-dasar hingga konsep yang lebih mendalam dalam Laravel 9. Jika Anda seorang pemula yang ingin memulai dengan Laravel, atau seorang developer berpengalaman yang ingin meningkatkan skill Anda, panduan ini cocok untuk Anda. Kami akan membahas semuanya, dari instalasi hingga deployment, dengan penjelasan yang mudah dipahami.

Daftar Isi

  1. Apa Itu Laravel dan Mengapa Memilih Laravel 9?
  2. Persiapan Lingkungan Pengembangan Laravel 9: XAMPP, Composer, dan Lainnya
  3. Instalasi Laravel 9: Langkah Demi Langkah dengan Composer
  4. Struktur Direktori Laravel 9: Memahami Organisasi File
  5. Routing di Laravel 9: Membuat dan Mengelola Rute Aplikasi
  6. Controller di Laravel 9: Logika Aplikasi dan Interaksi Model
  7. View di Laravel 9: Menampilkan Data dengan Blade Template Engine
  8. Model dan Database di Laravel 9: Mengelola Data dengan Eloquent ORM
  9. Migration dan Seeder Laravel 9: Membuat dan Mengisi Database
  10. Authentication Laravel 9: Sistem Login dan Registrasi
  11. Middleware Laravel 9: Mengamankan Rute dan Aplikasi
  12. Deployment Laravel 9: Menayangkan Aplikasi Web Anda

1. Apa Itu Laravel dan Mengapa Memilih Laravel 9?

Laravel adalah sebuah framework PHP open-source yang didesain untuk memudahkan para developer dalam membangun aplikasi web dengan kode yang bersih, terstruktur, dan mudah dipelihara. Framework ini menyediakan banyak fitur built-in yang membantu mempercepat proses pengembangan, seperti routing, templating engine (Blade), ORM (Eloquent), authentication, dan masih banyak lagi.

Mengapa Memilih Laravel 9?

Related Post

Tutorial AI untuk Pemula Bahasa Indonesia: Memulai Petualangan Kecerdasan Buatan

December 1, 2025

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

November 30, 2025

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

November 30, 2025

Laravel Eloquent Relationship Tutorial Indonesia: Hubungan Antar Tabel dengan Mudah

November 30, 2025

Laravel 9 adalah versi terbaru dari framework Laravel, dan menawarkan beberapa keunggulan signifikan dibandingkan versi sebelumnya:

  • PHP 8 Support: Laravel 9 sepenuhnya mendukung PHP 8, yang membawa peningkatan performa dan fitur-fitur baru. Ini berarti aplikasi Anda akan berjalan lebih cepat dan lebih efisien.
  • Symfony 6 Components: Laravel 9 menggunakan komponen Symfony 6, yang memberikan stabilitas dan keamanan yang lebih baik.
  • Flysystem 3.x: Integrasi dengan Flysystem terbaru memberikan kemudahan dalam mengelola storage, baik lokal maupun cloud.
  • Improved Eloquent Accessors/Mutators: Fitur ini ditingkatkan untuk memberikan kemudahan dan fleksibilitas dalam memanipulasi data model.
  • Enums in Route Bindings: Anda sekarang dapat menggunakan Enums sebagai parameter dalam route bindings.
  • New Design for Ignition Error Page: Ignition error page yang baru memberikan tampilan yang lebih informatif dan memudahkan dalam debugging.
  • Stringable Object: Stringable class menyediakan cara yang lebih mudah untuk bekerja dengan string.
  • Dependency Injection in Anonymous Stub Migrations: Sekarang Anda dapat menggunakan dependency injection dalam anonymous stub migrations.

Dengan memilih Laravel 9, Anda mendapatkan teknologi terkini, peningkatan performa, dan fitur-fitur baru yang akan membuat proses pengembangan aplikasi web Anda menjadi lebih menyenangkan dan produktif. Tutorial Laravel 9 Bahasa Indonesia ini akan membahas fitur-fitur tersebut secara mendalam.

2. Persiapan Lingkungan Pengembangan Laravel 9: XAMPP, Composer, dan Lainnya

Sebelum memulai tutorial Laravel 9 Bahasa Indonesia ini, Anda perlu menyiapkan lingkungan pengembangan. Berikut adalah software dan tools yang Anda butuhkan:

  • XAMPP (atau sejenisnya): XAMPP adalah paket software yang berisi Apache web server, MySQL database, dan PHP interpreter. Ini adalah pilihan populer untuk local development karena mudah diinstal dan dikonfigurasi. Anda bisa mengunduhnya dari https://www.apachefriends.org/index.html. Alternatif lain termasuk MAMP (untuk macOS) dan WAMP (untuk Windows).
  • PHP: Pastikan versi PHP Anda memenuhi persyaratan Laravel 9. Laravel 9 membutuhkan PHP 8.0 atau lebih tinggi. XAMPP biasanya menyediakan PHP yang sudah terinstal, tetapi pastikan versinya sudah benar. Anda dapat memeriksa versi PHP Anda dengan menjalankan perintah php -v di terminal atau command prompt.
  • Composer: Composer adalah dependency manager untuk PHP. Ini akan membantu Anda menginstal Laravel dan library-library lain yang dibutuhkan oleh proyek Anda. Anda bisa mengunduhnya dari https://getcomposer.org/.
  • Text Editor atau IDE: Anda memerlukan text editor atau Integrated Development Environment (IDE) untuk menulis kode. Beberapa pilihan populer termasuk Visual Studio Code (VS Code), Sublime Text, PHPStorm, dan Atom. VS Code direkomendasikan karena gratis, open-source, dan memiliki banyak extension yang berguna untuk pengembangan PHP dan Laravel.
  • Database Client (Opsional): Database client seperti MySQL Workbench atau phpMyAdmin dapat memudahkan Anda untuk mengelola database MySQL Anda. phpMyAdmin biasanya sudah terinstal bersama XAMPP.

Langkah-langkah Persiapan:

  1. Instal XAMPP: Ikuti petunjuk instalasi yang disediakan di website XAMPP. Pastikan Anda memulai Apache dan MySQL services setelah instalasi selesai.
  2. Instal Composer: Ikuti petunjuk instalasi yang disediakan di website Composer. Pastikan Anda menambahkan Composer ke PATH environment variable agar Anda bisa menjalankannya dari terminal atau command prompt.
  3. Instal Text Editor/IDE: Pilih text editor atau IDE yang Anda sukai dan instal.
  4. Konfigurasi PHP (Opsional): Beberapa konfigurasi PHP mungkin perlu disesuaikan tergantung pada kebutuhan proyek Anda. Misalnya, Anda mungkin perlu mengaktifkan extension PHP tertentu atau mengatur memory limit. Konfigurasi PHP dapat ditemukan di file php.ini. Lokasi file ini tergantung pada instalasi XAMPP Anda. Biasanya ada di C:xamppphpphp.ini (untuk Windows).

Setelah semua persiapan selesai, Anda siap untuk menginstal Laravel 9 dan memulai proyek Anda.

3. Instalasi Laravel 9: Langkah Demi Langkah dengan Composer

Setelah lingkungan pengembangan siap, langkah selanjutnya dalam tutorial Laravel 9 Bahasa Indonesia ini adalah menginstal Laravel 9. Proses instalasi Laravel 9 sangat mudah dengan menggunakan Composer.

Langkah-langkah Instalasi:

  1. Buka Terminal atau Command Prompt: Buka terminal (macOS/Linux) atau command prompt (Windows).

  2. Navigasi ke Direktori Web Server: Navigasi ke direktori tempat Anda ingin menyimpan proyek Laravel Anda. Biasanya, ini adalah direktori htdocs di dalam instalasi XAMPP Anda (misalnya, C:xampphtdocs).

  3. Jalankan Perintah Instalasi Composer: Gunakan perintah composer create-project untuk membuat proyek Laravel baru. Perintahnya adalah sebagai berikut:

    composer create-project laravel/laravel nama-proyek

    Ganti nama-proyek dengan nama proyek yang Anda inginkan. Misalnya, jika Anda ingin membuat proyek dengan nama “blog”, perintahnya akan menjadi:

    composer create-project laravel/laravel blog

    Composer akan mengunduh dan menginstal semua dependencies yang dibutuhkan untuk Laravel 9. Proses ini mungkin memakan waktu beberapa menit, tergantung pada kecepatan koneksi internet Anda.

  4. Navigasi ke Direktori Proyek: Setelah instalasi selesai, navigasi ke direktori proyek yang baru dibuat:

    cd nama-proyek

    Contoh:

    cd blog
  5. Jalankan Server Pengembangan Laravel: Laravel menyediakan server pengembangan built-in yang memudahkan Anda untuk menjalankan aplikasi secara lokal. Jalankan perintah berikut:

    php artisan serve

    Ini akan memulai server pengembangan di http://127.0.0.1:8000. Anda bisa membuka alamat ini di browser Anda untuk melihat aplikasi Laravel Anda.

  6. Konfigurasi Database (Opsional): Jika aplikasi Anda membutuhkan database, Anda perlu mengkonfigurasi koneksi database di file .env. File ini terletak di direktori root proyek Anda. Buka file .env dan cari bagian yang berkaitan dengan database. Ubah nilai-nilai berikut sesuai dengan konfigurasi database Anda:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=nama_database_anda
    DB_USERNAME=username_database_anda
    DB_PASSWORD=password_database_anda

    Ganti nama_database_anda, username_database_anda, dan password_database_anda dengan nilai yang sesuai. Pastikan Anda sudah membuat database di MySQL sebelum mengkonfigurasi file .env.

Selamat! Anda telah berhasil menginstal Laravel 9. Sekarang Anda siap untuk memulai pengembangan aplikasi web Anda.

4. Struktur Direktori Laravel 9: Memahami Organisasi File

Memahami struktur direktori Laravel sangat penting untuk navigasi dan pengelolaan proyek yang efisien. Berikut adalah penjelasan singkat mengenai direktori-direktori utama dalam Laravel 9, penting untuk tutorial Laravel 9 Bahasa Indonesia ini:

  • app/: Direktori ini berisi kode inti aplikasi Anda, termasuk controllers, models, providers, dan lainnya. Ini adalah tempat sebagian besar kode aplikasi Anda akan berada.
    • app/Http/Controllers/: Berisi controllers yang menangani request HTTP dan merespon dengan views atau data.
    • app/Models/: Berisi Eloquent models yang berinteraksi dengan database.
  • bootstrap/: Direktori ini berisi file-file yang digunakan untuk booting framework Laravel.
  • config/: Direktori ini berisi file-file konfigurasi untuk berbagai aspek aplikasi Anda, seperti database, mail, session, dan lainnya.
  • database/: Direktori ini berisi file-file yang berkaitan dengan database.
    • database/migrations/: Berisi migrations yang digunakan untuk membuat dan memodifikasi skema database.
    • database/seeders/: Berisi seeders yang digunakan untuk mengisi database dengan data awal.
  • public/: Direktori ini adalah document root aplikasi Anda. Ini berisi file index.php yang merupakan entry point aplikasi Anda, serta assets seperti CSS, JavaScript, dan images.
  • resources/: Direktori ini berisi resources yang digunakan oleh aplikasi Anda, seperti views, language files, dan assets yang belum dikompilasi.
    • resources/views/: Berisi Blade templates yang digunakan untuk menghasilkan HTML.
    • resources/lang/: Berisi language files untuk lokalisasi aplikasi Anda.
    • resources/assets/: (Opsional) Berisi assets yang belum dikompilasi, seperti Sass, Less, atau JavaScript.
  • routes/: Direktori ini berisi file-file yang mendefinisikan rute aplikasi Anda.
    • routes/web.php: Berisi rute web aplikasi Anda.
    • routes/api.php: Berisi rute API aplikasi Anda.
  • storage/: Direktori ini digunakan untuk menyimpan file-file yang dihasilkan oleh aplikasi Anda, seperti logs, cache, dan uploaded files.
  • tests/: Direktori ini berisi tests untuk aplikasi Anda.
  • vendor/: Direktori ini berisi dependencies yang diinstal oleh Composer. Anda tidak perlu mengubah file-file di direktori ini.
  • .env: File ini berisi environment variables untuk aplikasi Anda, seperti koneksi database, API keys, dan lainnya. File ini tidak boleh disimpan di repository public.
  • artisan: File ini adalah command-line interface (CLI) Laravel. Ini digunakan untuk menjalankan berbagai perintah, seperti membuat controllers, models, migrations, dan lainnya.
  • composer.json: File ini berisi informasi tentang dependencies proyek Anda.
  • package.json: File ini berisi informasi tentang dependencies JavaScript proyek Anda.

Dengan memahami struktur direktori Laravel 9, Anda dapat dengan mudah menemukan dan mengelola file-file yang dibutuhkan untuk mengembangkan aplikasi web Anda.

5. Routing di Laravel 9: Membuat dan Mengelola Rute Aplikasi

Routing adalah bagian penting dari setiap aplikasi web. Di Laravel 9, routing digunakan untuk mendefinisikan bagaimana aplikasi Anda merespon request HTTP yang berbeda. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara membuat dan mengelola rute di Laravel 9.

Definisi Rute:

Rute didefinisikan di file routes/web.php (untuk rute web) dan routes/api.php (untuk rute API). Anda dapat menggunakan berbagai metode HTTP (GET, POST, PUT, DELETE) untuk mendefinisikan rute.

Contoh Rute Sederhana:

use IlluminateSupportFacadesRoute;

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

Kode di atas mendefinisikan rute GET untuk URL /. Ketika pengguna mengunjungi /, Laravel akan menampilkan view welcome.blade.php.

Menggunakan Controller:

Biasanya, Anda akan menggunakan controller untuk menangani logika yang lebih kompleks.

use IlluminateSupportFacadesRoute;
use AppHttpControllersHomeController;

Route::get('/', [HomeController::class, 'index']);

Kode di atas mendefinisikan rute GET untuk URL /. Ketika pengguna mengunjungi /, Laravel akan memanggil method index di controller HomeController.

Rute dengan Parameter:

Anda dapat mendefinisikan rute dengan parameter.

use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;

Route::get('/users/{id}', [UserController::class, 'show']);

Kode di atas mendefinisikan rute GET untuk URL /users/{id}. {id} adalah parameter yang akan diteruskan ke method show di controller UserController.

Rute Bernama (Named Routes):

Memberi nama pada rute memudahkan Anda untuk mereferensikan rute tersebut di dalam kode Anda.

use IlluminateSupportFacadesRoute;
use AppHttpControllersUserController;

Route::get('/users/{id}', [UserController::class, 'show'])->name('users.show');

Anda kemudian dapat menggunakan fungsi route() untuk menghasilkan URL untuk rute tersebut:

<a href="{{ route('users.show', ['id' => 1]) }}">Lihat User</a>

Grup Rute (Route Groups):

Anda dapat menggunakan grup rute untuk mengelompokkan rute dengan middleware, namespace, atau prefix yang sama.

use IlluminateSupportFacadesRoute;

Route::middleware(['auth'])->group(function () {
    Route::get('/profile', function () {
        // Hanya pengguna yang terautentikasi yang bisa mengakses rute ini
    });

    Route::get('/settings', function () {
        // Hanya pengguna yang terautentikasi yang bisa mengakses rute ini
    });
});

Resource Controller:

Resource controller menyediakan cara yang mudah untuk membuat rute CRUD (Create, Read, Update, Delete) untuk resource tertentu.

use IlluminateSupportFacadesRoute;
use AppHttpControllersPhotoController;

Route::resource('photos', PhotoController::class);

Kode di atas akan membuat rute-rute berikut:

  • GET /photos (index)
  • POST /photos (store)
  • GET /photos/{photo} (show)
  • PUT /photos/{photo} (update)
  • DELETE /photos/{photo} (destroy)
  • GET /photos/create (create)
  • GET /photos/{photo}/edit (edit)

Middleware:

Middleware digunakan untuk memfilter request HTTP yang masuk ke aplikasi Anda. Misalnya, Anda dapat menggunakan middleware untuk memastikan bahwa hanya pengguna yang terautentikasi yang bisa mengakses rute tertentu.

Dengan memahami routing di Laravel 9, Anda dapat mendefinisikan bagaimana aplikasi Anda merespon request HTTP yang berbeda dan mengelola rute aplikasi Anda dengan mudah.

6. Controller di Laravel 9: Logika Aplikasi dan Interaksi Model

Controllers adalah kelas yang bertanggung jawab untuk menangani request HTTP yang masuk dan merespon dengan view atau data. Controllers berisi logika aplikasi Anda dan berinteraksi dengan model untuk mengambil dan menyimpan data. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara membuat dan menggunakan controller di Laravel 9.

Membuat Controller:

Anda dapat membuat controller menggunakan perintah Artisan:

php artisan make:controller NamaController

Misalnya, untuk membuat controller dengan nama UserController, jalankan perintah berikut:

php artisan make:controller UserController

Ini akan membuat file controller baru di app/Http/Controllers/UserController.php.

Contoh Controller:

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;

class UserController extends Controller
{
    /**
     * Menampilkan daftar user.
     *
     * @return IlluminateHttpResponse
     */
    public function index()
    {
        $users = User::all();
        return view('users.index', compact('users'));
    }

    /**
     * Menampilkan detail user.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function show($id)
    {
        $user = User::findOrFail($id);
        return view('users.show', compact('user'));
    }

    /**
     * Membuat user baru.
     *
     * @return IlluminateHttpResponse
     */
    public function create()
    {
        return view('users.create');
    }

    /**
     * Menyimpan user baru.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6',
        ]);

        User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => bcrypt($request->password),
        ]);

        return redirect()->route('users.index')->with('success', 'User berhasil ditambahkan.');
    }

    /**
     * Menampilkan form untuk mengedit user.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function edit($id)
    {
        $user = User::findOrFail($id);
        return view('users.edit', compact('user'));
    }

    /**
     * Mengupdate user.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function update(Request $request, $id)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users,email,' . $id,
        ]);

        $user = User::findOrFail($id);
        $user->update([
            'name' => $request->name,
            'email' => $request->email,
        ]);

        return redirect()->route('users.index')->with('success', 'User berhasil diupdate.');
    }

    /**
     * Menghapus user.
     *
     * @param  int  $id
     * @return IlluminateHttpResponse
     */
    public function destroy($id)
    {
        $user = User::findOrFail($id);
        $user->delete();

        return redirect()->route('users.index')->with('success', 'User berhasil dihapus.');
    }
}

Penjelasan Controller:

  • index(): Menampilkan daftar user dari database dan mengirimkannya ke view users.index.
  • show(): Menampilkan detail user berdasarkan ID dan mengirimkannya ke view users.show.
  • create(): Menampilkan form untuk membuat user baru.
  • store(): Menyimpan user baru ke database setelah validasi input.
  • edit(): Menampilkan form untuk mengedit user berdasarkan ID.
  • update(): Mengupdate user di database setelah validasi input.
  • destroy(): Menghapus user dari database berdasarkan ID.

Request:

Class IlluminateHttpRequest digunakan untuk mengakses data dari request HTTP, seperti input form, headers, dan cookies.

Validasi:

Anda dapat menggunakan method validate() pada request untuk memvalidasi input form. Jika validasi gagal, Laravel akan secara otomatis redirect pengguna kembali ke form dengan pesan error.

Model:

Controller berinteraksi dengan model untuk mengambil dan menyimpan data di database. Model Eloquent menyediakan cara yang mudah untuk berinteraksi dengan database menggunakan sintaks yang sederhana dan intuitif.

Dengan memahami controllers di Laravel 9, Anda dapat menulis logika aplikasi Anda dan berinteraksi dengan model untuk mengelola data dengan mudah.

7. View di Laravel 9: Menampilkan Data dengan Blade Template Engine

Views bertanggung jawab untuk menampilkan data kepada pengguna. Di Laravel 9, Anda dapat menggunakan Blade template engine untuk membuat views yang dinamis dan mudah dipelihara. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara membuat dan menggunakan views di Laravel 9.

Membuat View:

Views disimpan di direktori resources/views. Anda dapat membuat view baru dengan membuat file .blade.php di direktori tersebut. Misalnya, untuk membuat view dengan nama welcome, buat file resources/views/welcome.blade.php.

Contoh View:

<!DOCTYPE html>
<html>
<head>
    <title>Selamat Datang</title>
</head>
<body>
    <h1>Selamat Datang di Aplikasi Saya!</h1>
    <p>Halo, {{ $name }}!</p>
</body>
</html>

Penjelasan View:

  • {{ $name }}: Ini adalah contoh Blade syntax yang digunakan untuk menampilkan data. $name adalah variabel yang diteruskan dari controller.

Meneruskan Data ke View:

Anda dapat meneruskan data ke view dari controller menggunakan fungsi view().

use IlluminateSupportFacadesRoute;

Route::get('/', function () {
    $name = 'John Doe';
    return view('welcome', ['name' => $name]);
});

Kode di atas akan meneruskan variabel $name dengan nilai 'John Doe' ke view welcome.blade.php.

Blade Template Engine:

Blade menyediakan berbagai directive yang memudahkan Anda untuk membuat views yang dinamis.

  • @if: Untuk membuat conditional statements.

    @if ($age >= 18)
        <p>Anda sudah dewasa.</p>
    @else
        <p>Anda masih anak-anak.</p>
    @endif
  • @foreach: Untuk membuat loop.

    <ul>
        @foreach ($users as $user)
            <li>{{ $user->name }}</li>
        @endforeach
    </ul>
  • @include: Untuk menyertakan view lain.

    @include('partials.header')
    <h1>Selamat Datang</h1>
    @include('partials.footer')
  • @extends: Untuk mewarisi layout dari view lain.

    @extends('layouts.app')
    
    @section('content')
        <h1>Selamat Datang</h1>
        <p>Ini adalah halaman utama.</p>
    @endsection
  • @yield: Untuk mendefinisikan section yang dapat diisi oleh view yang mewarisi layout.

    <!DOCTYPE html>
    <html>
    <head>
        <title>@yield('title')</title>
    </head>
    <body>
        @yield('content')
    </body>
    </html>

Layouts:

Layouts adalah template dasar yang digunakan untuk membungkus views Anda. Ini membantu Anda untuk menjaga konsistensi tampilan aplikasi Anda. Anda dapat membuat layout di direktori resources/views/layouts.

Dengan memahami views dan Blade template engine di Laravel 9, Anda dapat membuat views yang dinamis dan mudah dipelihara untuk menampilkan data kepada pengguna.

8. Model dan Database di Laravel 9: Mengelola Data dengan Eloquent ORM

Eloquent ORM (Object-Relational Mapper) adalah tool yang disediakan oleh Laravel untuk memudahkan interaksi dengan database. Dengan Eloquent, Anda dapat berinteraksi dengan database menggunakan sintaks yang berorientasi objek, tanpa perlu menulis query SQL secara manual. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara membuat dan menggunakan model Eloquent di Laravel 9.

Membuat Model:

Anda dapat membuat model menggunakan perintah Artisan:

php artisan make:model NamaModel

Misalnya, untuk membuat model dengan nama User, jalankan perintah berikut:

php artisan make:model User

Ini akan membuat file model baru di app/Models/User.php.

Contoh Model:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class User extends Model
{
    use HasFactory;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
    ];
}

Penjelasan Model:

  • $fillable: Mendefinisikan attributes yang boleh diisi (mass assignable). Ini penting untuk keamanan, karena mencegah pengguna untuk mengubah attributes yang tidak seharusnya diubah.
  • $hidden: Mendefinisikan attributes yang harus disembunyikan ketika model di-serialize ke JSON atau array. Biasanya, ini digunakan untuk menyembunyikan password dan token.
  • $casts: Mendefinisikan bagaimana attributes harus di-cast. Misalnya, email_verified_at di-cast ke datetime dan password di-cast ke hashed.

Konvensi Penamaan:

Secara default, Eloquent akan menganggap bahwa model User berkorespondensi dengan tabel users di database. Anda dapat mengubah ini dengan mendefinisikan property $table di model.

Relasi:

Eloquent mendukung berbagai jenis relasi, seperti one-to-one, one-to-many, many-to-many, dan polymorphic relations.

  • One-to-One:

    // User Model
    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
    
    // Profile Model
    public function user()
    {
        return $this->belongsTo(User::class);
    }
  • One-to-Many:

    // User Model
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
    
    // Post Model
    public function user()
    {
        return $this->belongsTo(User::class);
    }
  • Many-to-Many:

    // User Model
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
    
    // Role Model
    public function users()
    {
        return $this->belongsToMany(User::class);
    }

Querying Data:

Anda dapat menggunakan Eloquent untuk melakukan berbagai operasi database, seperti:

  • Mengambil Semua Data:

    $users = User::all();
  • Mengambil Data Berdasarkan ID:

    $user = User::find(1);
  • Mengambil Data dengan Kondisi:

    $users = User::where('name', 'John Doe')->get();
  • Membuat Data Baru:

    $user = new User();
    $user->name = 'John Doe';
    $user->email = '[email protected]';
    $user->password = bcrypt('password');
    $user->save();
  • Mengupdate Data:

    $user = User::find(1);
    $user->name = 'Jane Doe';
    $user->save();
  • Menghapus Data:

    $user = User::find(1);
    $user->delete();

Dengan memahami model dan database di Laravel 9, Anda dapat berinteraksi dengan database menggunakan Eloquent ORM dengan mudah dan efisien.

9. Migration dan Seeder Laravel 9: Membuat dan Mengisi Database

Migration dan Seeder adalah fitur yang sangat berguna di Laravel untuk mengelola dan menginisialisasi database Anda. Migration memungkinkan Anda untuk membuat dan memodifikasi skema database Anda dengan kode, sehingga memudahkan untuk melacak perubahan dan berkolaborasi dengan tim. Seeder memungkinkan Anda untuk mengisi database Anda dengan data awal untuk keperluan pengembangan dan pengujian. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara menggunakan Migration dan Seeder di Laravel 9.

Migration:

Migration adalah file PHP yang berisi kode untuk membuat dan memodifikasi skema database.

Membuat Migration:

Anda dapat membuat migration menggunakan perintah Artisan:

php artisan make:migration create_users_table

Ini akan membuat file migration baru di database/migrations/.

Contoh Migration:

<?php

use IlluminateDatabaseMigrationsMigration;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateSupportFacadesSchema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

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

Penjelasan Migration:

  • up(): Method ini berisi kode untuk membuat atau memodifikasi skema database.
  • down(): Method ini berisi kode untuk membatalkan perubahan yang dilakukan oleh method up().

Menjalankan Migration:

Anda dapat menjalankan migration menggunakan perintah Artisan:

php artisan migrate

Ini akan menjalankan semua migration yang belum dijalankan.

Membatalkan Migration:

Anda dapat membatalkan migration terakhir menggunakan perintah Artisan:

php artisan migrate:rollback

Anda juga dapat membatalkan semua migration dan menjalankan kembali dari awal:

php artisan migrate:fresh

Seeder:

Seeder adalah file PHP yang berisi kode untuk mengisi database dengan data awal.

Membuat Seeder:

Anda dapat membuat seeder menggunakan perintah Artisan:

php artisan make:seeder UsersTableSeeder

Ini akan membuat file seeder baru di database/seeders/.

Contoh Seeder:

<?php

namespace DatabaseSeeders;

use IlluminateDatabaseConsoleSeedsWithoutModelEvents;
use IlluminateDatabaseSeeder;
use IlluminateSupportFacadesDB;
use IlluminateSupportFacadesHash;
use IlluminateSupportStr;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        DB::table('users')->insert([
            'name' => Str::random(10),
            'email' => Str::random(10).'@example.com',
            'password' => Hash::make('password'),
        ]);
    }
}

Penjelasan Seeder:

  • run(): Method ini berisi kode untuk mengisi database.

Menjalankan Seeder:

Anda dapat menjalankan seeder menggunakan perintah Artisan:

php artisan db:seed

Secara default, perintah ini akan menjalankan DatabaseSeeder.php yang dapat Anda gunakan untuk memanggil seeder-seeder lain. Anda juga dapat menjalankan seeder tertentu dengan menentukan nama class seeder:

php artisan db:seed --class=UsersTableSeeder

Dengan memahami migration dan seeder di Laravel 9, Anda dapat mengelola dan menginisialisasi database Anda dengan mudah dan efisien.

10. Authentication Laravel 9: Sistem Login dan Registrasi

Authentication adalah proses verifikasi identitas pengguna. Laravel menyediakan sistem authentication yang mudah digunakan, termasuk fitur login, registrasi, reset password, dan verifikasi email. Bagian ini dari tutorial Laravel 9 Bahasa Indonesia akan menjelaskan bagaimana cara menggunakan sistem authentication di Laravel 9.

Scaffolding Authentication:

Laravel menyediakan perintah Artisan untuk menghasilkan scaffolding authentication secara otomatis:

composer require laravel/ui

php artisan ui:auth

Untuk menggunakan Bootstrap:

php artisan ui bootstrap --auth

Untuk menggunakan Vue:

php artisan ui vue --auth

Untuk menggunakan React:

php artisan ui react --auth

Setelah menjalankan perintah di atas, Anda perlu menginstal dependencies JavaScript dan mengompilasinya:

npm install
npm run dev

Migration:

Jika Anda belum membuat migration untuk tabel users, Anda perlu menjalankannya:

php artisan migrate

Rute:

Scaffolding authentication akan membuat rute-rute berikut:

  • /login: Halaman login
  • /register: Halaman registrasi
  • /password/reset: Halaman reset password
  • /password/email: Halaman untuk mengirim email reset password

Controllers:

Scaffolding authentication akan membuat controller-controller berikut:

  • `AppHttpControllers
Tags: Bahasa IndonesiaBelajar LaravelLaravel 9Laravel IndonesiaLaravel Tutorial IDPanduan LaravelPemrograman WebPHP FrameworkTutorial Laravelweb development
venus

venus

Related Posts

AI

Tutorial AI untuk Pemula Bahasa Indonesia: Memulai Petualangan Kecerdasan Buatan

by Lyra Silverbrook
December 1, 2025
Contoh

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

by Elara Meadowlight
November 30, 2025
Belajar

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

by Elara Meadowlight
November 30, 2025
Next Post

Cara Install Laravel di Windows: Panduan Langkah Demi Langkah

Leave a Reply Cancel reply

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

Recommended

Contoh Website Company Profile Sederhana dengan HTML CSS: Inspirasi Desain Modern

July 30, 2025

Contoh Implementasi AI dalam Bisnis UKM: Studi Kasus dan Peluang Bisnis

June 20, 2025

Contoh Project Web Development Sederhana: Inspirasi dan Tutorial Lengkap

June 12, 2025

Cara Implementasi Authentication di Laravel: Keamanan Website Terjamin

August 1, 2025

Cara Meningkatkan Penjualan dengan CRM: Strategi Efektif untuk Pertumbuhan Bisnis

June 5, 2026

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

June 5, 2026

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

June 5, 2026

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

June 5, 2026

tutwuri

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 Meningkatkan Penjualan dengan CRM: Strategi Efektif untuk Pertumbuhan Bisnis
  • Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan
  • Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

Categories

  • AI
  • Akuntansi
  • Algoritma
  • Alternatif
  • Analisis
  • and separated by commas: Hosting
  • API
  • Aplikasi
  • Asuransi
  • Authentication
  • Backend
  • Bahasa Indonesia
  • Belajar
  • Berita
  • Biaya
  • Bisnis
  • Blog
  • Bootstrap
  • Branding
  • Bulanan
  • Business
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • CMS
  • Command
  • Contoh
  • CPanel
  • CRM
  • CRUD
  • CSS
  • Data
  • Database
  • Debugging
  • Deployment
  • Desain
  • Design
  • Developer
  • Development
  • Digital
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efektivitas
  • Efisiensi
  • Email
  • Error
  • Error generating categories
  • Etika
  • Event
  • Excel
  • Fashion
  • File
  • Fitur
  • Fleksibilitas
  • Framework
  • Freelance
  • Frontend
  • Fungsional
  • Gambar
  • Game
  • Garansi
  • Generatif
  • Google
  • Gratis
  • Harga
  • Here are 5 categories
  • Here are 5 categories based on the article titles
  • Hosting
  • HTML
  • Ide
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Integrasi
  • Investasi
  • Jakarta
  • JavaScript
  • Kapasitas
  • Karir
  • Kasus
  • Keamanan
  • Keandalan
  • Keberhasilan
  • Kebutuhan
  • Kecepatan
  • Kepuasan
  • Kerugian
  • Kesehatan
  • Kinerja
  • Kolaborasi
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konstruksi
  • Konten
  • Kota
  • Kreativitas
  • Kualitas
  • Kustomisasi
  • Laporan
  • Laravel
  • Layanan
  • Lokasi
  • Machine Learning
  • Mahasiswa
  • Manajemen
  • Manajemen Proyek
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Media Sosial
  • Migrasi
  • Migration
  • Mobile
  • Model
  • Monitoring
  • Murah
  • Negosiasi
  • Node JS
  • Online
  • Open Source
  • Optimasi
  • Otentikasi
  • Otomatis
  • Otomatisasi
  • Otomotif
  • Panduan
  • Pariwisata
  • Payment Gateway
  • Pekerjaan
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemasaran
  • Pemrograman
  • Pemula
  • Pendidikan
  • Pengambilan Keputusan
  • Pengembangan
  • Pengguna
  • Penggunaan
  • Penghasilan
  • Penipuan
  • Penjualan
  • Perbandingan
  • Perbedaan
  • Performa
  • Personalisasi
  • Pertumbuhan
  • Perubahan
  • PHP
  • Pilihan
  • Plugin
  • Portfolio
  • Prediksi
  • Produktivitas
  • Profesional
  • Programmer
  • Promo
  • Prospek
  • Python
  • Queue
  • Rekomendasi
  • Responsive
  • Retensi
  • Review
  • SEO
  • Sertifikat
  • Server
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • SSD
  • SSL
  • Stabilitas
  • Startup
  • Strategi
  • Syarat
  • Tanggung Jawab
  • Tantangan
  • Technology
  • Teknologi
  • Template
  • Terbaik
  • Terbaru
  • Terpercaya
  • Testimoni
  • Tips
  • Tools
  • Traffic
  • Trafik
  • Tren
  • Troubleshooting
  • Tutorial
  • UI
  • UKM
  • Unlimited
  • Upload
  • Uptime
  • using one word per category: Software
  • using only one word from the list provided per category
  • Validasi
  • Video
  • VPS
  • Web
  • Website
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 tutwuri.

No Result
View All Result
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis

© 2024 tutwuri.