Master Laravel: Pelajari 3 Proyek Nyata untuk Keahlian Profesional

Tingkatkan keahlian Anda dengan pelajari 3 proyek nyata Master Laravel! Temukan teknik profesional yang akan meningkatkan karier Anda. Klik untuk mulai!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Master Laravel: Pelajari 3 Proyek Nyata untuk Keahlian Profesional
  • Laravel, Pengembangan Web, Proyek Nyata, Keahlian Profesional, Pemrograman

Baca Online

Master Laravel: Pelajari 3 Proyek Nyata untuk Keahlian Profesional

Daftar Isi

  1. Pengantar Laravel
  2. Persiapan Lingkungan dan Instalasi
  3. Proyek 1: Blog Sederhana
  4. Proyek 2: Sistem Manajemen Tugas
  5. Proyek 3: E-Commerce Mini
  6. Sumber Belajar dan Source Code

Pengantar Laravel

Laravel adalah framework PHP yang sangat populer dan powerful untuk membangun aplikasi web modern. Dengan sintaks yang elegan dan fitur lengkap, Laravel memudahkan pengembang dalam membuat aplikasi yang scalable, aman, dan mudah dipelihara.

Dalam ebook ini, Anda akan belajar Laravel melalui 3 proyek nyata yang akan membimbing Anda dari dasar hingga mahir. Setiap proyek dilengkapi dengan penjelasan step-by-step, source code, dan referensi pembelajaran tambahan.

Persiapan Lingkungan dan Instalasi

Sebelum memulai pengembangan dengan Laravel, pastikan Anda sudah menyiapkan lingkungan pengembangan yang sesuai. Berikut langkah-langkahnya:

  1. Install PHP (versi 8.0 ke atas) - Laravel membutuhkan PHP versi terbaru untuk fitur dan performa terbaik.
  2. Install Composer - Composer adalah dependency manager untuk PHP yang digunakan untuk mengelola paket Laravel.
  3. Install Laravel via Composer - Jalankan perintah composer create-project laravel/laravel nama-proyek untuk membuat proyek baru.
  4. Setup Database - Laravel mendukung berbagai database seperti MySQL, PostgreSQL, SQLite. Pastikan database sudah siap dan konfigurasi di .env sudah benar.
  5. Jalankan Server Development - Gunakan perintah php artisan serve untuk menjalankan server lokal.

Proyek 1: Blog Sederhana

Tujuan

Membuat aplikasi blog sederhana yang memungkinkan pengguna membuat, membaca, mengedit, dan menghapus artikel.

Langkah 1: Membuat Model dan Migrasi

Buat model Post beserta migrasi untuk tabel posts:

php artisan make:model Post -m
      

Edit file migrasi di database/migrations/xxxx_xx_xx_create_posts_table.php :

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}
      

Jalankan migrasi:

php artisan migrate
      

Langkah 2: Membuat Controller dan Route

Buat controller resource untuk Post:

php artisan make:controller PostController --resource
      

Tambahkan route resource di routes/web.php :

use App\Http\Controllers\PostController;

Route::resource('posts', PostController::class);
      

Langkah 3: Implementasi CRUD di Controller

Contoh method index dan store di PostController.php :

public function index()
{
    $posts = Post::latest()->paginate(10);
    return view('posts.index', compact('posts'));
}

public function store(Request $request)
{
    $request->validate([
        'title' => 'required|max:255',
        'content' => 'required',
    ]);

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

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

Langkah 4: Membuat View Blade

Contoh sederhana file resources/views/posts/index.blade.php :

@extends('layouts.app')

@section('content')
  <div class=""container mx-auto p-4"">
    <h1 class=""text-3xl font-bold mb-6"">Daftar Post</h1>

    <a href=""{{ route('posts.create') }}"" class=""bg-indigo-600 text-white px-4 py-2 rounded hover:bg-indigo-700"">Buat Post Baru</a>

    @if(session('success'))
      <div class=""mt-4 p-3 bg-green-200 text-green-800 rounded"">{{ session('success') }}</div>
    @endif

    <ul class=""mt-6 space-y-4"">
      @foreach($posts as $post)
        <li class=""border p-4 rounded shadow-sm"">
          <h2 class=""text-xl font-semibold"">{{ $post->title }}</h2>
          <p class=""mt-2"">{{ Str::limit($post->content, 150) }}</p>
          <a href=""{{ route('posts.show', $post) }}"" class=""text-indigo-600 hover:underline"">Baca Selengkapnya</a>
        </li>
      @endforeach
    </ul>

    <div class=""mt-6"">{{ $posts->links() }}</div>
  </div>
@endsection
      

Proyek 2: Sistem Manajemen Tugas

Tujuan

Membuat aplikasi manajemen tugas yang memungkinkan pengguna menambah, mengedit, menandai selesai, dan menghapus tugas.

Langkah 1: Membuat Model dan Migrasi

Buat model Task dan migrasi:

php artisan make:model Task -m
      

Edit migrasi di database/migrations/xxxx_xx_xx_create_tasks_table.php :

public function up()
{
    Schema::create('tasks', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->boolean('is_completed')->default(false);
        $table->timestamps();
    });
}
      

Jalankan migrasi:

php artisan migrate
      

Langkah 2: Membuat Controller dan Route

Buat controller resource untuk Task:

php artisan make:controller TaskController --resource
      

Tambahkan route resource di routes/web.php :

use App\Http\Controllers\TaskController;

Route::resource('tasks', TaskController::class);
      

Langkah 3: Implementasi CRUD dan Toggle Status

Contoh method update dan method tambahan untuk toggle status selesai:

public function update(Request $request, Task $task)
{
    $request->validate([
        'title' => 'required|max:255',
    ]);

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

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

public function toggle(Task $task)
{
    $task->is_completed = ! $task->is_completed;
    $task->save();

    return redirect()->route('tasks.index');
}
      

Tambahkan route untuk toggle status di routes/web.php :

Route::patch('tasks/{task}/toggle', [TaskController::class, 'toggle'])->name('tasks.toggle');
      

Langkah 4: Membuat View Blade

Contoh file resources/views/tasks/index.blade.php :

@extends('layouts.app')

@section('content')
  <div class=""container mx-auto p-4"">
    <h1 class=""text-3xl font-bold mb-6"">Daftar Tugas</h1>

    <a href=""{{ route('tasks.create') }}"" class=""bg-indigo-600 text-white px-4 py-2 rounded hover:bg-indigo-700"">Tambah Tugas</a>

    @if(session('success'))
      <div class=""mt-4 p-3 bg-green-200 text-green-800 rounded"">{{ session('success') }}</div>
    @endif

    <ul class=""mt-6 space-y-4"">
      @foreach($tasks as $task)
        <li class=""border p-4 rounded shadow-sm flex justify-between items-center"">
          <div>
            <form action=""{{ route('tasks.toggle', $task) }}"" method=""POST"" class=""inline"">
              @csrf
              @method('PATCH')
              <button type=""submit"" class=""mr-3"">
                @if($task->is_completed)
                  <i class=""fas fa-check-circle text-green-500""></i>
                @else
                  <i class=""far fa-circle text-gray-400""></i>
                @endif
              </button>
            </form>
            <span class=""{{ $task->is_completed ? 'line-through text-gray-500' : '' }}"">{{ $task->title }}</span>
          </div>
          <div>
            <a href=""{{ route('tasks.edit', $task) }}"" class=""text-indigo-600 hover:underline mr-4"">Edit</a>
            <form action=""{{ route('tasks.destroy', $task) }}"" method=""POST"" class=""inline"">
              @csrf
              @method('DELETE')
              <button type=""submit"" class=""text-red-600 hover:underline"">Hapus</button>
            </form>
          </div>
        </li>
      @endforeach
    </ul>

    <div class=""mt-6"">{{ $tasks->links() }}</div>
  </div>
@endsection
      

Proyek 3: E-Commerce Mini

Tujuan

Membuat aplikasi e-commerce mini yang memungkinkan pengguna melihat produk, menambah ke keranjang, dan melakukan checkout sederhana.

Langkah 1: Membuat Model dan Migrasi Produk

Buat model Product dan migrasi:

php artisan make:model Product -m
      

Edit migrasi di database/migrations/xxxx_xx_xx_create_products_table.php :

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->text('description')->nullable();
        $table->decimal('price', 10, 2);
        $table->string('image_url')->nullable();
        $table->timestamps();
    });
}
      

Jalankan migrasi:

php artisan migrate
      

Langkah 2: Membuat Controller dan Route

Buat controller resource untuk Product:

php artisan make:controller ProductController --resource
      

Tambahkan route resource di routes/web.php :

use App\Http\Controllers\ProductController;

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

Langkah 3: Implementasi Controller

Contoh method index dan show di ProductController.php :

public function index()
{
    $products = Product::paginate(12);
    return view('products.index', compact('products'));
}

public function show(Product $product)
{
    return view('products.show', compact('product'));
}
      

Langkah 4: Membuat View Produk

Contoh file resources/views/products/index.blade.php :

@extends('layouts.app')

@section('content')
  <div class=""container mx-auto p-4"">
    <h1 class=""text-3xl font-bold mb-6"">Daftar Produk</h1>

    <div class=""grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6"">
      @foreach($products as $product)
        <div class=""border rounded shadow p-4 flex flex-col"">
          <img src=""{{ $product->image_url ?? 'https://placehold.co/400x300/png?text=No+Image' }}"" alt=""Gambar produk {{ $product->name }}"" class=""mb-4 rounded"">
          <h2 class=""text-xl font-semibold mb-2"">{{ $product->name }}</h2>
          <p class=""mb-4 text-gray-700 flex-grow"">{{ Str::limit($product->description, 100) }}</p>
          <div class=""text-lg font-bold mb-4"">Rp {{ number_format($product->price, 0, ',', '.') }}</div>
          <a href=""{{ route('products.show', $product) }}"" class=""bg-indigo-600 text-white px-4 py-2 rounded hover:bg-indigo-700 text-center"">Lihat Detail</a>
        </div>
      @endforeach
    </div>

    <div class=""mt-6"">{{ $products->links() }}</div>
  </div>
@endsection
      

Sumber Belajar dan Source Code

Berikut beberapa sumber belajar dan channel yang sangat membantu untuk menguasai Laravel secara mendalam:

Source Code Proyek

Anda dapat mengunduh source code lengkap dari ketiga proyek ini di GitHub berikut:

Edukasi Terkait