Tutorial Instalasi Laragon 6 dengan PHP 8.4

Tutorial Instalasi Laragon 6 dengan PHP 8.4

Seperti yang mungkin Anda ketahui jika sedang membaca ini, sejak Februari 2025, Laragon tidak lagi gratis. Versi gratis terakhir sebelum itu adalah versi 6.0, dan saya ingin menggunakan versi tersebut bersamaan dengan PHP 8.4 (versi terbaru pada saat penulisan).

1. Pendahuluan

Saya menemukan bahwa Laragon lebih praktis dibandingkan menginstal dan menggunakan Xampp.

2. Unduhan – Perangkat Lunak

Ini adalah perangkat lunak yang saya gunakan. Klik tombol di bawah untuk mengunduh:

3. Cara Menginstalnya

Prosedur langkah demi langkah:

  1. Instal Laragon
  2. Instal Apache
  3. Instal PHP

Pastikan Anda sudah mengunduh semua file di atas:

  • laragon-wamp.exe
  • apache-httpd-2.4.63-250207-win64-VS17.zip
  • php-8.4.4-Win32-vs17-x64.zip

3.1. Instal Laragon

Jalankan file laragon-wamp.exe dan ikuti langkah “agree-next-next”. Restart PC setelah selesai.
Instalasi default berada di: C:\laragon\

3.2. Instal Apache

Buka: C:\laragon\bin\apache\
Buat folder sesuai versi Apache, misal: C:\laragon\bin\apache\apache-httpd-2.4.63-250207-win64-VS17\
Salin semua isi folder “Apache24” yang diunduh ke folder baru tersebut.

Laragon icon in the taskbar

 

Selecting the desired Apache version using Laragon's GUI menu

 

3.3. Instal PHP

Buka: C:\laragon\bin\php\
Buat folder sesuai nama file PHP yang diunduh (tanpa ekstensi), misal: C:\laragon\bin\php\php-8.4.4-Win32-vs17-x64\
Salin semua file dari .zip ke folder tersebut. Pilih versi PHP melalui menu GUI Laragon.

 

Selecting the desired PHP version using Laragon's GUI menuSelecting the desired PHP version using Laragon's GUI menu
Pastikan PHP berjalan dengan membuka: http://localhost

 

 

Laragon showing the Apache and PHP versions running when you open the http://localhost link

Membuat RESTful API Chat Multi-User Menggunakan Laravel: Panduan Lengkap

Membuat RESTful API Chat Multi-User Menggunakan Laravel: Panduan Lengkap

Laravel adalah framework PHP yang kuat dan fleksibel, menjadikannya pilihan terbaik untuk membangun aplikasi seperti sistem chat multi-user. Dalam tutorial ini, Anda akan mempelajari cara membuat RESTful API untuk mendukung fitur chat multi-user menggunakan Laravel.

1. Persiapan Awal

Langkah pertama adalah memastikan Laravel terinstal di sistem Anda. Jika belum, instal Laravel menggunakan Composer:

composer create-project –prefer-dist laravel/laravel chat-api
cd chat-api
php artisan serve

Laravel akan berjalan di server lokal. Selanjutnya, kita mulai membangun API chat multi-user.

2. Struktur Database

Sistem chat multi-user memerlukan tabel berikut:

  1. Users: Menyimpan informasi pengguna.
  2. Messages: Menyimpan pesan chat.
  3. Chat Rooms (opsional): Jika sistem mendukung chat dalam grup.

Membuat Model dan Migrasi

Gunakan perintah berikut untuk membuat model dan migrasi:

php artisan make:model User -m
php artisan make:model Message -m
php artisan make:model ChatRoom -m

Kemudian, edit file migrasi:

  • Tabel users (bawaan Laravel, hanya tambahkan kolom jika perlu):

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->timestamps();
});

Tabel messages

Schema::create(‘messages’, function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger(‘sender_id’);
$table->unsignedBigInteger(‘receiver_id’)->nullable(); // Untuk pesan langsung
$table->unsignedBigInteger(‘chat_room_id’)->nullable(); // Untuk pesan grup
$table->text(‘message’);
$table->timestamps();

$table->foreign(‘sender_id’)->references(‘id’)->on(‘users’)->onDelete(‘cascade’);
$table->foreign(‘receiver_id’)->references(‘id’)->on(‘users’)->onDelete(‘cascade’);
$table->foreign(‘chat_room_id’)->references(‘id’)->on(‘chat_rooms’)->onDelete(‘cascade’);
});

Tabel chat_rooms:

Schema::create(‘chat_rooms’, function (Blueprint $table) {
$table->id();
$table->string(‘name’);
$table->timestamps();
});

Jalankan migrasi:

php artisan migrate

3. Membuat API Endpoint

Buka file routes/api.php dan tambahkan route berikut:

User Authentication

Tambahkan endpoint untuk registrasi dan login:

use App\Http\Controllers\UserController;

Route::post(‘/register’, [UserController::class, ‘register’]);
Route::post(‘/login’, [UserController::class, ‘login’]);

Pesan

Tambahkan endpoint untuk mengirim dan mengambil pesan:

use App\Http\Controllers\MessageController;

Route::middleware(‘auth:sanctum’)->group(function () {
Route::get(‘/messages’, [MessageController::class, ‘index’]); // Ambil semua pesan
Route::post(‘/messages’, [MessageController::class, ‘store’]); // Kirim pesan
});

Chat Room (opsional)

Jika mendukung grup chat:

use App\Http\Controllers\ChatRoomController;

Route::middleware(‘auth:sanctum’)->group(function () {
Route::get(‘/chat-rooms’, [ChatRoomController::class, ‘index’]);
Route::post(‘/chat-rooms’, [ChatRoomController::class, ‘store’]);
});

4. Membuat Controller

UserController

Tambahkan logika registrasi dan login:

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class UserController extends Controller
{
public function register(Request $request)
{
$user = User::create([
‘name’ => $request->name,
’email’ => $request->email,
‘password’ => Hash::make($request->password),
]);
return response()->json($user, 201);
}

public function login(Request $request)
{
$user = User::where(’email’, $request->email)->first();
if ($user && Hash::check($request->password, $user->password)) {
$token = $user->createToken(‘chat-api-token’)->plainTextToken;
return response()->json([‘token’ => $token], 200);
}
return response()->json([‘error’ => ‘Invalid credentials’], 401);
}
}

MessageController

Tambahkan logika untuk pesan:

namespace App\Http\Controllers;

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

class MessageController extends Controller
{
public function index(Request $request)
{
$messages = Message::where(‘receiver_id’, $request->user()->id)
->orWhere(‘sender_id’, $request->user()->id)
->get();
return response()->json($messages);
}

public function store(Request $request)
{
$message = Message::create([
‘sender_id’ => $request->user()->id,
‘receiver_id’ => $request->receiver_id,
‘message’ => $request->message,
]);
return response()->json($message, 201);
}
}

buatkan ChatRoomController:

namespace App\Http\Controllers;

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

class ChatRoomController extends Controller
{
public function index()
{
return response()->json(ChatRoom::all());
}

public function store(Request $request)
{
$chatRoom = ChatRoom::create($request->all());
return response()->json($chatRoom, 201);
}
}

 

5. Pengujian API

Gunakan Postman atau cURL untuk menguji endpoint. Berikut contoh:

  • POST /register: Daftarkan pengguna.
  • POST /login: Login dan dapatkan token.
  • GET /messages: Ambil semua pesan.
  • POST /messages: Kirim pesan baru.
6. Keamanan API

Gunakan Laravel Sanctum untuk autentikasi berbasis token. Instal dan konfigurasikan Sanctum:

composer require laravel/sanctum
php artisan vendor:publish –provider=”Laravel\Sanctum\SanctumServiceProvider”
php artisan migrate

use App\Http\Controllers\MessageController;

Route::middleware(‘auth:sanctum’)->group(function () {
Route::get(‘/messages’, [MessageController::class, ‘index’]); // Ambil semua pesan
Route::post(‘/messages’, [MessageController::class, ‘store’]); // Kirim pesan
Route::delete(‘/messages/{id}’, [MessageController::class, ‘destroy’]); // Hapus pesan
});

 

use App\Http\Controllers\MessageController;
use App\Http\Controllers\AuthController;

Route::post(‘/login’, [AuthController::class, ‘login’]);

Route::middleware(‘auth:sanctum’)->group(function () {
Route::get(‘/messages’, [MessageController::class, ‘index’]);
Route::post(‘/messages’, [MessageController::class, ‘store’]);
Route::delete(‘/messages/{id}’, [MessageController::class, ‘destroy’]);
});