Panduan Laravel CRUD di Mac

Hal yang Dibutuhkan Untuk Menjalankan Laravel / Requirement to Run Laravel

Sebelum melanjutkan langkah-langkah dibawah, pastikan komputer telah terinstall PHP minimum versi 8, Composer. Aplikasi text editor menggunakan VS Code. Sistem operasi yang saya gunakan adalah macOS Monterey. Jadi pada kali ini akan mencoba untuk membuat / setup laravel di mac.

Jika belum memiliki PHP versi 8 dan Composer di mac, maka harap gunakan "Homebrew" untuk instalasinya. Jika homebrew sudah terinstall maka jalankan perintah dibawah untuk menginstall php 8:

brew install php@8.1

Jika PHP sudah terinstall, lakukan instalasi 'composer' dengan perintah 'brew' juga. Ketik perintah:

brew install composer

Dan hal terakhir sebelum memulai langkah dibawah, sebaiknya sudah paham atau setidaknya tahu mengenai PHP dan tentunya HTML/CSS.

Cara Membuat Project Laravel/ How to Make Laravel Project

Langkah pertama yang dilakukan untuk membuat web berbasis laravel, yaitu dengan mengetikan perintah dibawah di terminal di VS Code. 

Membuka terminal di VS Code

Ketik perintah dan Enter:

composer create-project laravel/laravel nama-aplikasinya

Pada contoh gambar diatas saya membuat aplikasi laravelnya bernama 'backend'. Setelah selesai membuat projectnya harap buka folder, dan pindah ke folder tersebut. Bisa dilakukan dengan mengetik :

cd nama-aplikasinya

Cara Menjalankan Aplikasi Web berbasis Laravel di Lokal / How To Run Laravel Local Project

Setelah membuka foldernya, sekarang akan menjalankan aplikasinya untuk melihat apa yang telah terbentuk dari perintah pertama untuk membuat project laravelnya. Perintah untuk melihat aplikasinya di browser yaitu dengan mengetikan:

php artisan serve

Secara bawaan, aplikasi laravel yang baru dibuat akan jalan di port 8000. Selain itu juga, di terminal akan diberi link untuk membuka aplikasi laravel yang baru dibuat. Untuk membuka aplikasi tersebut ketik 'command + klik' atau 'ctrl+klik' pada windows.

Alamat Bawaan Laravel

Cara Mengubah Tampilan Laravel / How to Change Laravel Default Page

Saat mengklik link yang diberikan di terminal, sebenarnya laravel akan memanggil file 'web.php' lalu file tersebut mempunyai fungsi yang menampilkan halaman diatas. Lalu bagaimana cara mengganti halaman bawaan Laravel? Pertama-tama, harus mengetahui struktur aplikasi Laravel. Laravel menyimpan semua file html/css nya di dalam folder bernama 'resources'. Dan untuk htmlnya sendiri ada di folder 'views' yang terletak di dalam folder 'resources'. Disinilah programmer membuat tampilan atau halaman web yang disajikan kepada pengguna.

Tampilan Bawaan Laravel

Pada file inilah dapat diubah tampilannya, dan walaupun ekstensinya blade.php, untuk mengubahnya dapat menggunakan bahasa html saja, seperti file .html pada umumnya. 

[!] Hal yang perlu diingat saat membuat file html-nya laravel harus menggunakan ekstensi '.blade.php'. Karena ekstensi itu yang bisa dan biasa dilihat oleh Laravel sebagai tampilan.

Apa itu Laravel Blade? / What is Laravel Blade

Laravel blade bisa dikatakan frontendnya laravel, yang bertugas menyajikan tampilan atau halaman dari sebuah website. File blade berisi html, css dan javascript seperti ekstensi .html pada umumnya. Lantas mengapa tidak menggunakan ekstensi .html saja? Karena blade lebih hebat dari html, dimana programmer dapat langsung menerapkan bahasa PHP di dalamnya untuk keperluan aplikasi jika dibutuhkan.

Cara Membuat Halaman Lain di Laravel / How to Make Pages in Laravel

Pada Laravel jika ingin membuat halaman baru, kita wajib membuatnya di dalam folder views, di tempat yang sama dengan 'welcome.blade.php'. Untuk cara pembuatannya tidak ada perintah khusus, kita dapat langsung tambah file baru. Hanya saja harus mengingat poin penting yang telah disebutkan diatas yaitu wajib berekstensi .blade.php . Di file ini, kita dapat menuliskan HTML, CSS dan JS seperti yang sudah disebutkan diatas. 

Membuat halaman baru/ view di Laravel

Cara Akses Halaman Lain dan Membuat URL baru di Laravel

Setelah dapat membuat halaman baru, tentu harus membuat link untuk mengakses halaman tersebut. Di Laravel terdapat file 'web.php'. Dimana file itu adalah kumpulan alamat/ link dari halaman atau alamat request atas suatu fungsi. Hal yang pertama harus dilakukan adalah mendaftarkan URL baru untuk menampilkan halaman yang telah dibuat.

Mendaftarkan URL di Laravel

Jika telah mendaftarkannya, route atau URL yang telah dibuat dapat dikases di live server di browser. Berhubung saya membuatnya '/home' maka dapat diakses dengan http://localhost:8000/home.

Akses URL yang telah dibuat di Route Laravel

Dan seperti yang disebutkan di gambar, harap mengikuti cara terbaik / best practice pada saat membuat route. Dan jika keperluan hanya untuk menampilkan halaman harap gunakan metode 'GET' pada route yang dibuat.

Cara Setting Database pada Laravel

Pada aplikasi web tentulah terdapat fitur dimana pengguna dapat menyiman dan mengolah data mereka. Hal itu mungkin dilakukan jika kita memiliki Database untuk menyimpan data tersebut. Untuk menyetel Database di Laravel, langkah pertama tidak lain dan tidak bukan yaitu kita harus membuat databasenya terlebih dahulu. Pada kali ini saya akan menggunakan MySQL dan SQL Ace pada mac saya. Tetapi sebelumnya pastikan bahwa anda telah menginstall mysql dan juga telah menjalankan server lokalnya di komputer Anda. Jika pengguna windows, harap pastikan server lokal juga berjalan contohnya XAMPP.

Cara membuat DB pada SQL Ace

Setelah membuat database, wajib di daftarkan atau diberitahukan ke proyek Laravel yang sudah dibuat. File yang mengurusi tentang hal ini bernama '.env'. Dalam Laravel terdapat '.env' dan '.env.example', example merupakan template atau hasil copy dari .env itu sendiri. Mengapa diperlukan? karena pada saat developer menggunakan git, file '.env' masuk dalam gitignore secara bawaan. Hal ini dikarenakan mungkin tiap developer memiliki nama db yang berbeda atau environment yang berbeda, sehingga file ini dianggap tidak relevan untuk semua developer yang terlibat dalam pembuatan proyek Laravel. 

Langkah untuk mengedit file '.env' untuk menyetel database tadi terdapat di baris yang berawalan 'DB'. berhubung saya memberikan nama database saya backend-db, saya akan mengisi backend-db pada file env saya, tepatnya 'DB_DATABASE=backend-db'.  Intinya DB_DATABASE=nama databasenya , dan jangan menggunakan spasi.

Menyetel ENV Database Laravel

Cara Membuat CRUD API Sederhana di Laravel

Jika kamu ingin membuat aplikasi dengan operasi CRUD (Create, Read, Update, Delete) di Laravel, ikuti langkah-langkah sederhana ini:

Buat Migration

Pertama, buat file migration untuk tabel di database. Misalnya, jika kamu ingin membuat tabel personal_computers, jalankan perintah berikut:

php artisan make:migration create_personal_computers_table

Setelah itu, salin kode berikut ke dalam file migration yang baru dibuat:

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;


return new class extends Migration

{

    public function up(): void

    {

        Schema::create('personal_computers', function (Blueprint $table) {

            $table->id();

            $table->string('pc_type')->nullable();

            $table->timestamps();

            $table->softDeletes()->index();

        });

    }


    public function down(): void

    {

        Schema::drop('personal_computers');

    }

};

Setelah itu, jalankan perintah ini untuk mengaplikasikan perubahan ke database:

php artisan migrate

Buat Model

Selanjutnya, buat model untuk tabel yang baru saja dibuat:

php artisan make:model PersonalComputer

Salin kode berikut ke dalam file model PersonalComputer.php:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogActivity;

class PersonalComputer extends Model
{
    use SoftDeletes, LogsActivity;
    protected $table = 'personal_computers';
    protected static $logAttributes = ['*'];
    protected $fillable = ['pc_type'];

    protected $appends = [
        'created_at_formatted',
        'updated_at_formatted'
    ];

    public function getActivitylogOptions(): LogOptions
    {
        return LogOptions::defaults()->logAll()->logOnlyDirty();
    }

    public function scopeSearch($query, $field, $value)
    {
        if($value && $field) $query->where($field, 'LIKE', '%' . $value . '%');
    }

    public function getCreatedAtFormattedAttribute()
    {
        return $this->created_at ? date('d F Y', strtotime($this->created_at)) : '';
    }

    public function getUpdatedAtFormattedAttribute()
    {
        return $this->updated_at ? date('d F Y', strtotime($this->updated_at)) : '';
    }
}

Buat Controller

Buat controller untuk mengelola operasi CRUD:

php artisan make:controller PersonalComputerController

Salin kode berikut ke dalam file controller PersonalComputerController.php:

<?php

namespace App\Http\Controllers;

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

class PersonalComputerController extends Controller
{
    public function index(Request $request)
    {
        try {
            $query = PersonalComputer::query();
            
            if ($keyword = $request->input('keyword')) {
                $query->search('pc_type', $keyword);
            }

            $perPage = $request->input('dataCount', 25);
            $personalComputers = $query->paginate($perPage);

        } catch (\Throwable $error) {
            return response()->json([
                'error' => true,
                'message' => 'Gagal mendapatkan data Personal Computers',
            ], 500);
        }

        return response()->json([
            'error' => false,
            'personal_computers' => $personalComputers,
            'message' => 'Berhasil mendapatkan data Personal Computers',
        ]);
    }

    public function store(Request $request)
    {
        $personalComputer = PersonalComputer::create($request->all());
        return response()->json([
            'error' => false,
            'personal_computer' => $personalComputer,
            'message' => 'Berhasil membuat Personal Computer',
        ]);
    }

    public function show($id)
    {
        $personalComputer = PersonalComputer::find($id);
        if (!$personalComputer) {
            return response()->json([
                'error' => true,
                'message' => 'Personal Computer tidak ditemukan',
            ], 404);
        }
        return response()->json([
            'error' => false,
            'personal_computer' => $personalComputer,
            'message' => 'Berhasil mendapatkan Personal Computer',
        ]);
    }

    public function update(Request $request, $id)
    {
        $personalComputer = PersonalComputer::find($id);
        if (!$personalComputer) {
            return response()->json([
                'error' => true,
                'message' => 'Personal Computer tidak ditemukan',
            ], 404);
        }

        $personalComputer->update($request->all());
        return response()->json([
            'error' => false,
            'personal_computer' => $personalComputer,
            'message' => 'Berhasil memperbarui Personal Computer',
        ]);
    }

    public function destroy($id)
    {
        $personalComputer = PersonalComputer::find($id);
        if (!$personalComputer) {
            return response()->json([
                'error' => true,
                'message' => 'Personal Computer tidak ditemukan',
            ], 404);
        }

        $personalComputer->delete();
        return response()->json([
            'error' => false,
            'message' => 'Berhasil menghapus Personal Computer',
        ]);
    }
}

Tambahkan Routing

Terakhir, tambahkan routing untuk controller CRUD ini. Buka file routes/api.php dan tambahkan:

use App\Http\Controllers\PersonalComputerController;

Route::prefix('api')->group(function () {
    Route::resource('personal_computers', PersonalComputerController::class);
});


Masih Bingung?

Jika kamu masih bingung atau butuh bantuan lebih lanjut, jangan ragu untuk mengunjungi 
(Harap Login terlebih dahulu) Di sana, kamu bisa mencoba template CRUD ini secara gratis dengan membuat akun. Situs tersebut menyediakan panduan yang jelas untuk membantu kamu memulai dengan cepat!

Komentar

Postingan populer dari blog ini

Cara Mudah Menguasai Cities: Skylines: Tips dan Trik untuk Pemula

Tips Ampuh Menghindari Kemacetan di Cities: Skylines

Hal Dasar Sebelum Mendesain Layout Kota di Cities: Skylines