Ingin membangun blog impianmu sendiri tapi merasa kesulitan? Jangan khawatir! Panduan ini akan memandu kamu langkah demi langkah tentang membuat blog sederhana dengan Laravel 9. Laravel 9 adalah framework PHP yang kuat dan elegan, dan dengan panduan ini, kamu akan terkejut betapa mudahnya membangun blog yang fungsional dan menarik. Kita akan membahas semuanya, mulai dari persiapan awal hingga penyesuaian tampilan. Yuk, langsung saja kita mulai!
1. Persiapan Awal: Lingkungan Pengembangan dan Instalasi Laravel 9
Sebelum memulai membuat blog sederhana dengan Laravel 9, kita perlu menyiapkan lingkungan pengembangan. Pastikan kamu sudah memiliki:
-
PHP: Laravel 9 membutuhkan PHP versi 8.0 atau lebih tinggi. Periksa versi PHP kamu dengan menjalankan perintah
php -vdi terminal. Jika belum memenuhi syarat, unduh dan instal versi PHP yang sesuai. Saya merekomendasikan menggunakan XAMPP atau Laragon untuk kemudahan instalasi. -
Composer: Composer adalah pengelola paket (package manager) untuk PHP. Ini digunakan untuk mengunduh dan mengelola dependensi Laravel. Kamu bisa mengunduh dan menginstalnya dari https://getcomposer.org/.
-
Node.js dan NPM (Optional): Meskipun tidak wajib untuk fungsi dasar blog, Node.js dan NPM (Node Package Manager) berguna untuk mengelola aset frontend seperti JavaScript dan CSS, terutama jika kamu ingin melakukan kustomisasi tampilan. Kamu bisa mengunduhnya dari https://nodejs.org/.
Setelah semua persiapan terpenuhi, kita bisa mulai menginstal Laravel 9. Buka terminal dan jalankan perintah berikut:
composer create-project laravel/laravel:^9.0 nama-blog-kita
cd nama-blog-kita
Ganti nama-blog-kita dengan nama yang kamu inginkan untuk direktori blogmu. Perintah ini akan mengunduh dan menginstal Laravel 9 beserta dependensi yang dibutuhkan.
Setelah proses instalasi selesai, kamu bisa menjalankan server pengembangan dengan perintah:
php artisan serve
Buka browser kamu dan arahkan ke http://localhost:8000. Jika kamu melihat halaman selamat datang Laravel, berarti instalasi berhasil!
2. Konfigurasi Database: Menghubungkan Blog Laravel ke Database MySQL
Langkah selanjutnya dalam membuat blog sederhana dengan Laravel 9 adalah mengkonfigurasi koneksi ke database. Blog kita akan menyimpan data postingan, pengguna, dan informasi lainnya di database. Dalam panduan ini, kita akan menggunakan MySQL.
-
Buat Database: Buka aplikasi MySQL kamu (misalnya, phpMyAdmin atau MySQL Workbench) dan buat database baru. Beri nama yang sesuai, misalnya
blog_database. -
Konfigurasi .env: Buka file
.envdi direktori proyek Laravel kamu. Cari bagian yang berisi pengaturan database:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=Ubah nilai-nilai tersebut sesuai dengan konfigurasi database kamu:
DB_DATABASE: Gantilaraveldengan nama database yang kamu buat (blog_database).DB_USERNAME: Gantirootdengan username MySQL kamu.DB_PASSWORD: Isi dengan password MySQL kamu. Jika kamu tidak menggunakan password, biarkan kosong.
Setelah mengkonfigurasi .env, Laravel akan dapat terhubung ke database MySQL kamu.
3. Membuat Model dan Migrasi: Struktur Data Postingan Blog
Sekarang kita akan mendefinisikan struktur data untuk postingan blog kita. Kita akan membuat model dan migrasi.
-
Membuat Model Post: Jalankan perintah berikut di terminal:
php artisan make:model Post -mPerintah ini akan membuat dua file:
app/Models/Post.php: File model untuk representasi data postingan.database/migrations/[timestamp]_create_posts_table.php: File migrasi untuk membuat tabelpostsdi database.
-
Memodifikasi Migrasi: Buka file migrasi yang baru dibuat. Di dalam fungsi
up(), definisikan kolom-kolom yang akan ada di tabelposts. Misalnya:<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->string('slug')->unique(); // Untuk URL yang SEO friendly $table->text('content'); $table->unsignedBigInteger('user_id'); // Foreign key ke tabel users $table->foreign('user_id')->references('id')->on('users'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('posts'); } };Penjelasan kolom:
id: Primary key (otomatis dibuat).title: Judul postingan (string).slug: URL yang ramah SEO, dibuat berdasarkan judul (string, unique).content: Isi postingan (text).user_id: Foreign key yang menghubungkan postingan ke user yang membuatnya.timestamps: Otomatis membuat kolomcreated_atdanupdated_at.
-
Menjalankan Migrasi: Jalankan perintah berikut di terminal:
php artisan migratePerintah ini akan membuat tabel
posts(dan tabel lainnya yang belum ada) di database kamu. -
Memodifikasi Model Post: Buka file
app/Models/Post.php. Tambahkan kode berikut untuk mendefinisikan fillable attributes, yaitu kolom-kolom yang boleh diisi secara massal (mass assignment):<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Post extends Model { use HasFactory; protected $fillable = [ 'title', 'slug', 'content', 'user_id', ]; //Relasi dengan tabel User public function user() { return $this->belongsTo(User::class); } }
4. Membuat Controller dan Routes: Menangani Permintaan HTTP untuk Blog
Selanjutnya, kita akan membuat controller dan routes untuk menangani permintaan HTTP yang terkait dengan blog.
-
Membuat Controller: Jalankan perintah berikut di terminal:
php artisan make:controller PostController --resourcePerintah ini akan membuat controller
app/Http/Controllers/PostController.phpdengan metode-metode dasar untuk operasi CRUD (Create, Read, Update, Delete). Opsi--resourcesecara otomatis membuat metode-metode yang umum digunakan. -
Mendefinisikan Routes: Buka file
routes/web.php. Tambahkan route berikut:<?php use AppHttpControllersPostController; use IlluminateSupportFacadesRoute; /* |-------------------------------------------------------------------------- | 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('posts', PostController::class); // Rute untuk CRUD postinganRoute
Route::resource('posts', PostController::class);akan otomatis membuat rute-rute berikut:GET /posts: Menampilkan daftar semua postingan (index).GET /posts/create: Menampilkan form untuk membuat postingan baru (create).POST /posts: Menyimpan postingan baru ke database (store).GET /posts/{post}: Menampilkan detail sebuah postingan (show).GET /posts/{post}/edit: Menampilkan form untuk mengedit postingan (edit).PUT/PATCH /posts/{post}: Mengupdate postingan di database (update).DELETE /posts/{post}: Menghapus postingan dari database (destroy).
-
Implementasi Controller: Buka file
app/Http/Controllers/PostController.phpdan implementasikan logika untuk setiap metode. Contoh implementasi untuk metodeindex():<?php namespace AppHttpControllers; use AppModelsPost; use IlluminateHttpRequest; class PostController extends Controller { /** * Display a listing of the resource. * * @return IlluminateHttpResponse */ public function index() { $posts = Post::latest()->paginate(10); // Ambil semua postingan terbaru, paginasi 10 per halaman return view('posts.index', compact('posts')); } // ... Metode-metode lainnya (create, store, show, edit, update, destroy) }Implementasikan metode-metode lainnya sesuai kebutuhan. Kamu akan perlu berinteraksi dengan model
Postuntuk mengambil, membuat, mengupdate, dan menghapus data postingan. Jangan lupa validasi data input dari form sebelum menyimpan ke database.
5. Membuat Views (Tampilan): Menampilkan Data Blog ke Pengguna
Bagian penting dalam membuat blog sederhana dengan Laravel 9 adalah membuat views (tampilan) untuk menampilkan data blog kepada pengguna. Kita akan membuat views untuk menampilkan daftar postingan, detail postingan, form pembuatan postingan, dan form edit postingan.
-
Membuat Direktori Views: Buat direktori
resources/views/postsuntuk menyimpan views yang terkait dengan postingan. -
Membuat View
index.blade.php(Daftar Postingan): Buat fileresources/views/posts/index.blade.phpdan isi dengan kode berikut (contoh):<!DOCTYPE html> <html> <head> <title>Daftar Postingan</title> </head> <body> <h1>Daftar Postingan</h1> @if (count($posts) > 0) <ul> @foreach ($posts as $post) <li> <a href="{{ route('posts.show', $post->id) }}">{{ $post->title }}</a> </li> @endforeach </ul> {{ $posts->links() }} <!-- Menampilkan link paginasi --> @else <p>Belum ada postingan.</p> @endif <a href="{{ route('posts.create') }}">Buat Postingan Baru</a> </body> </html>Kode ini menampilkan daftar postingan yang diambil dari controller.
{{ $posts->links() }}digunakan untuk menampilkan link paginasi jika jumlah postingan melebihi batas per halaman. -
Membuat View
show.blade.php(Detail Postingan): Buat fileresources/views/posts/show.blade.phpdan isi dengan kode berikut (contoh):<!DOCTYPE html> <html> <head> <title>{{ $post->title }}</title> </head> <body> <h1>{{ $post->title }}</h1> <p>Oleh: {{ $post->user->name }}</p> <p>{{ $post->content }}</p> <a href="{{ route('posts.index') }}">Kembali ke Daftar Postingan</a> <a href="{{ route('posts.edit', $post->id) }}">Edit Postingan</a> </body> </html>Kode ini menampilkan detail sebuah postingan, termasuk judul, isi, dan penulis.
-
Membuat View
create.blade.php(Form Pembuatan Postingan): Buat fileresources/views/posts/create.blade.phpdan isi dengan kode berikut (contoh):<!DOCTYPE html> <html> <head> <title>Buat Postingan Baru</title> </head> <body> <h1>Buat Postingan Baru</h1> <form action="{{ route('posts.store') }}" method="POST"> @csrf <label for="title">Judul:</label><br> <input type="text" id="title" name="title"><br><br> <label for="content">Isi:</label><br> <textarea id="content" name="content" rows="4" cols="50"></textarea><br><br> <button type="submit">Simpan</button> </form> <a href="{{ route('posts.index') }}">Kembali ke Daftar Postingan</a> </body> </html>Kode ini menampilkan form untuk membuat postingan baru.
@csrfdigunakan untuk melindungi form dari serangan CSRF. -
Membuat View
edit.blade.php(Form Edit Postingan): Buat fileresources/views/posts/edit.blade.phpdan isi dengan kode berikut (contoh):<!DOCTYPE html> <html> <head> <title>Edit Postingan</title> </head> <body> <h1>Edit Postingan</h1> <form action="{{ route('posts.update', $post->id) }}" method="POST"> @csrf @method('PUT') <label for="title">Judul:</label><br> <input type="text" id="title" name="title" value="{{ $post->title }}"><br><br> <label for="content">Isi:</label><br> <textarea id="content" name="content" rows="4" cols="50">{{ $post->content }}</textarea><br><br> <button type="submit">Update</button> </form> <a href="{{ route('posts.index') }}">Kembali ke Daftar Postingan</a> </body> </html>Kode ini menampilkan form untuk mengedit postingan yang sudah ada.
@method('PUT')digunakan untuk mengindikasikan bahwa kita melakukan update.
Pastikan kamu mengimplementasikan logika yang sesuai di controller untuk mengirimkan data yang dibutuhkan ke setiap view.
6. Implementasi Fitur Slug: Membuat URL yang SEO Friendly
Salah satu aspek penting dalam membuat blog sederhana dengan Laravel 9 yang memperhatikan SEO adalah penggunaan slug. Slug adalah bagian dari URL yang mengidentifikasi halaman secara unik dan sebaiknya mudah dibaca oleh manusia dan mesin pencari. Kita akan membuat slug otomatis berdasarkan judul postingan.
-
Instal Package
cviebrock/eloquent-sluggable: Jalankan perintah berikut di terminal:composer require cviebrock/eloquent-sluggablePackage ini akan membantu kita membuat slug secara otomatis.
-
Konfigurasi Package: Ikuti petunjuk konfigurasi di dokumentasi package: https://github.com/cviebrock/eloquent-sluggable. Biasanya, kamu perlu menambahkan trait
Sluggableke modelPost. -
Modifikasi Model
Post: Buka fileapp/Models/Post.phpdan tambahkan kode berikut:<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; use CviebrockEloquentSluggableSluggable; class Post extends Model { use HasFactory; use Sluggable; protected $fillable = [ 'title', 'slug', 'content', 'user_id', ]; //Relasi dengan tabel User public function user() { return $this->belongsTo(User::class); } public function sluggable(): array { return [ 'slug' => [ 'source' => 'title' ] ]; } }Kita menambahkan
use Sluggable;dan mendefinisikan fungsisluggable()yang mengindikasikan bahwa kolomslugakan dibuat secara otomatis berdasarkan kolomtitle. -
Update Controller: Pastikan kamu tidak lagi menginput
slugsecara manual di controller. Packagecviebrock/eloquent-sluggableakan menangani pembuatanslugsecara otomatis sebelum data disimpan ke database. Contoh diPostController:public function store(Request $request) { $request->validate([ 'title' => 'required|max:255', 'content' => 'required', ]); // Asumsi user sedang login, ambil ID user $user_id = auth()->user()->id; Post::create([ 'title' => $request->title, 'content' => $request->content, 'user_id' => $user_id, ]); return redirect()->route('posts.index')->with('success', 'Postingan berhasil dibuat.'); }
Setelah implementasi ini, setiap kali kamu membuat postingan baru, slug akan dibuat secara otomatis berdasarkan judul postingan. URL postingan akan menjadi lebih SEO friendly, misalnya /posts/judul-postingan-anda.
7. Autentikasi dan Otorisasi: Mengelola Pengguna dan Hak Akses Blog
Dalam membuat blog sederhana dengan Laravel 9, penting untuk memiliki sistem autentikasi dan otorisasi untuk mengelola pengguna dan hak akses. Laravel menyediakan fitur autentikasi yang mudah digunakan.
-
Jalankan Perintah
ui:auth: Jalankan perintah berikut di terminal:composer require laravel/ui php artisan ui:auth npm install && npm run devPerintah ini akan menghasilkan views dan routes yang diperlukan untuk autentikasi (login, registrasi, reset password).
npm install && npm run devdigunakan untuk mengkompilasi aset frontend (CSS dan JavaScript) yang dihasilkan olehlaravel/ui. Jika kamu tidak memiliki Node.js dan NPM, kamu bisa menghapus baris ini dan menggunakan CSS dan JavaScript bawaan. -
Migrasi Database: Jalankan perintah berikut di terminal:
php artisan migratePerintah ini akan membuat tabel
usersyang digunakan untuk menyimpan data pengguna. -
Proteksi Routes: Gunakan middleware
authuntuk melindungi rute yang hanya boleh diakses oleh pengguna yang sudah login. Misalnya, untuk memproteksi rute pembuatan dan edit postingan, tambahkan middlewareauthke grup rute yang bersangkutan diroutes/web.php:Route::middleware(['auth'])->group(function () { Route::resource('posts', PostController::class)->except(['index', 'show']); // Kecuali index dan show }); Route::resource('posts', PostController::class)->only(['index', 'show']); // Untuk semua orangKode ini membagi rute
postsmenjadi dua grup: satu untuk operasi yang membutuhkan autentikasi (create, store, edit, update, destroy) dan satu untuk operasi yang tidak membutuhkan autentikasi (index, show). -
Implementasi Autentikasi di Controller: Di dalam controller
PostController, tambahkan logika untuk memastikan bahwa hanya pengguna yang sudah login yang dapat membuat, mengedit, atau menghapus postingan. Kamu bisa menggunakan helperauth()->user()untuk mendapatkan informasi pengguna yang sedang login. Lihat contoh di atas di bagian slug untuk implementasi distoremethod.
Dengan sistem autentikasi dan otorisasi ini, kamu dapat mengontrol siapa yang dapat mengakses dan memodifikasi konten blogmu.
8. Menambahkan Fitur Komentar: Meningkatkan Interaksi Pengguna
Fitur komentar adalah cara yang bagus untuk meningkatkan interaksi pengguna di blog kamu. Kita akan menambahkan fitur komentar sederhana menggunakan Laravel.
-
Membuat Model dan Migrasi
Comment: Jalankan perintah berikut di terminal:php artisan make:model Comment -m -
Memodifikasi Migrasi: Buka file migrasi
database/migrations/[timestamp]_create_comments_table.phpdan definisikan kolom-kolom untuk tabelcomments:<?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('comments', function (Blueprint $table) { $table->id(); $table->text('content'); $table->unsignedBigInteger('post_id'); // Foreign key ke tabel posts $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); $table->unsignedBigInteger('user_id'); // Foreign key ke tabel users $table->foreign('user_id')->references('id')->on('users'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('comments'); } };Perhatikan bahwa kita menambahkan
onDelete('cascade')pada foreign keypost_id. Ini berarti jika sebuah postingan dihapus, semua komentarnya juga akan dihapus. -
Menjalankan Migrasi: Jalankan perintah berikut di terminal:
php artisan migrate -
Memodifikasi Model
Comment: Buka fileapp/Models/Comment.phpdan tambahkan kode berikut:<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Comment extends Model { use HasFactory; protected $fillable = [ 'content', 'post_id', 'user_id', ]; // Relasi ke tabel Post public function post() { return $this->belongsTo(Post::class); } // Relasi ke tabel User public function user() { return $this->belongsTo(User::class); } } -
Membuat Controller
CommentController: Jalankan perintah berikut di terminal:php artisan make:controller CommentController -
Implementasi di
CommentController<?php namespace AppHttpControllers; use AppModelsComment; use AppModelsPost; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; class CommentController extends Controller { public function store(Request $request, Post $post) { $request->validate([ 'content' => 'required', ]); $comment = new Comment([ 'content' => $request->get('content'), 'user_id' => Auth::id(), ]); $post->comments()->save($comment); return back()->with('success', 'Komentar berhasil ditambahkan.'); } } -
Tambahkan Relasi di Model
Postpublic function comments() { return $this->hasMany(Comment::class); } -
Tambahkan Route
Route::post('/posts/{post}/comments', [CommentController::class, 'store'])->middleware('auth'); -
Menampilkan Komentar di View
show.blade.php: Buka fileresources/views/posts/show.blade.phpdan tambahkan kode berikut untuk menampilkan komentar:<h2>Komentar:</h2> @if ($post->comments->count() > 0) <ul> @foreach ($post->comments as $comment) <li> <strong>{{ $comment->user->name }}:</strong> {{ $comment->content }} </li> @endforeach </ul> @else <p>Belum ada komentar.</p> @endif <h3>Tambahkan Komentar:</h3> <form method="post" action="{{ route('comments.store', $post) }}"> @csrf <textarea name="content" placeholder="Tulis komentar..." required></textarea><br> <button type="submit">Kirim</button> </form>
Dengan implementasi ini, pengguna yang login dapat menambahkan komentar ke postingan blog.
9. Kustomisasi Tampilan: Menggunakan Template dan CSS
Tampilan blog kamu adalah hal pertama yang dilihat pengunjung. Membuat blog sederhana dengan Laravel 9 juga melibatkan kustomisasi tampilan agar terlihat menarik dan profesional.
-
Memilih Template: Ada banyak template HTML/CSS gratis dan berbayar yang bisa kamu gunakan untuk blog kamu. Beberapa sumber template yang populer adalah:
- Bootstrap: https://getbootstrap.com/ (Framework CSS populer dan responsif)
- Start Bootstrap: https://startbootstrap.com/ (Template Bootstrap gratis dan premium)
- Creative Tim: https://www.creative-tim.com/ (Template premium dengan desain modern)
-
Mengintegrasikan Template: Setelah memilih template, unduh dan ekstrak file template ke direktori
resources/views. Sesuaikan struktur direktori template agar sesuai dengan struktur direktori view Laravel. -
Menggunakan Blade Templates: Gunakan Blade templates untuk mengintegrasikan template HTML ke dalam aplikasi Laravel kamu. Pisahkan template menjadi beberapa bagian (misalnya, header, footer, sidebar, konten) dan gunakan
@includedirective untuk menggabungkannya. -
Menyesuaikan CSS: Ubah file CSS template untuk menyesuaikan tampilan blog sesuai dengan preferensi kamu. Kamu bisa mengubah warna, font, layout, dan elemen visual lainnya. Gunakan CSS framework seperti Bootstrap untuk kemudahan kustomisasi.
-
Menggunakan Laravel Mix: Laravel Mix adalah alat yang mempermudah proses kompilasi aset frontend (CSS dan JavaScript). Kamu bisa menggunakan Laravel Mix untuk mengkompilasi file Sass/SCSS menjadi CSS, mengminify file CSS dan JavaScript, dan menggabungkan file-file aset.
Dengan kustomisasi tampilan yang tepat, kamu dapat membuat blog yang terlihat profesional dan sesuai dengan identitas brand kamu.
10. Deploy Blog Laravel 9 ke Hosting: Membuat Blog Online
Setelah selesai mengembangkan dan mengkustomisasi blog Laravel 9 kamu, langkah terakhir adalah mendeploy blog tersebut ke hosting agar dapat diakses secara online. Ada berbagai penyedia hosting yang mendukung aplikasi Laravel.
-
Memilih Penyedia Hosting: Pilih penyedia hosting yang memenuhi kebutuhan kamu. Pertimbangkan faktor-faktor seperti harga, fitur, dukungan, dan lokasi server. Beberapa penyedia hosting yang populer untuk aplikasi Laravel adalah:
- Laravel Forge: https://forge.laravel.com/ (Layanan deployment yang dioptimalkan untuk Laravel)
- DigitalOcean: https://www.digitalocean.com/ (Penyedia cloud hosting dengan harga terjangkau)
- Vultr: https://www.vultr.com/ (Penyedia cloud hosting dengan berbagai pilihan lokasi server)
- Hostinger: https://www.hostinger.co.id/ (Penyedia shared hosting dan VPS yang populer)
-
Konfigurasi Server: Setelah memilih penyedia hosting, konfigurasi server kamu. Pastikan server kamu memenuhi persyaratan sistem Laravel 9 (PHP 8.0 atau lebih tinggi, ekstensi PHP yang diperlukan, dll.).
-
Upload File: Upload file proyek Laravel kamu ke server. Kamu bisa menggunakan FTP, SSH, atau alat deployment lainnya.
-
Konfigurasi Database: Buat database baru di server hosting kamu dan impor data dari database lokal kamu. Ubah konfigurasi database di file
.envdi server agar sesuai dengan konfigurasi database server. -
Konfigurasi Web Server: Konfigurasi web server (misalnya, Apache atau Nginx) untuk mengarahkan permintaan ke direktori
publicproyek Laravel kamu. -
Set Permissions: Pastikan direktori
storagedanbootstrap/cachememiliki izin writeable oleh web server. -
Jalankan Migrasi dan Seeder: Jalankan perintah berikut di server untuk menjalankan migrasi dan seeder (jika ada):
php artisan migrate php artisan db:seed -
Konfigurasi Caching: Aktifkan caching di aplikasi Laravel kamu untuk meningkatkan performa.
Setelah semua langkah ini selesai, blog Laravel 9 kamu seharusnya sudah dapat diakses secara online!
Kesimpulan:
Selamat! Kamu telah berhasil membuat blog sederhana dengan Laravel 9 menggunakan panduan lengkap dan praktis ini. Kamu telah mempelajari cara menyiapkan lingkungan pengembangan, mengkonfigurasi database, membuat model dan migrasi, membuat controller dan routes, membuat views, mengimplementasikan fitur slug, autentikasi, komentar, dan akhirnya mendeploy blog kamu ke hosting. Teruslah bereksplorasi dan mengembangkan blogmu agar semakin menarik dan bermanfaat bagi orang lain!

