0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan9 halaman

Backend Fundamental #Modul 2 - Intro To Integration

Dokumen ini adalah modul praktik yang memperkenalkan PHP dan RESTful API menggunakan Laravel. PHP digunakan untuk membuat aplikasi web dinamis, sedangkan RESTful API memungkinkan komunikasi antara backend dan frontend. Modul ini juga mencakup langkah-langkah untuk menginstal Laravel, mengonfigurasi database, dan membuat model serta controller untuk mengelola produk.

Diunggah oleh

Nantungga Putra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
11 tayangan9 halaman

Backend Fundamental #Modul 2 - Intro To Integration

Dokumen ini adalah modul praktik yang memperkenalkan PHP dan RESTful API menggunakan Laravel. PHP digunakan untuk membuat aplikasi web dinamis, sedangkan RESTful API memungkinkan komunikasi antara backend dan frontend. Modul ini juga mencakup langkah-langkah untuk menginstal Laravel, mengonfigurasi database, dan membuat model serta controller untuk mengelola produk.

Diunggah oleh

Nantungga Putra
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 9

Introduction To Integration

MODUL PRAKTIK
#2
Backend Fundamental: PHP & Restful API Laravel
Muhammad Raihan Nismara Jendra
1-26-2024

BAB I

PENGENALAN PHP

1.1 Pengertian PHP


PHP merupakan bahasa pemrograman skrip yang diletakkan dalam server yang biasa
digunakan untuk membuat aplikasi web yang bersifat dinamis. Berbeda dengan HTML yang
hanya bisa menampilkan konten statis, PHP bisa berinteraksi dengan database, file dan folder,
sehingga membuat PHP bisa menampilkan konten yang dinamis dari sebuah website. Dengan
menggunakan PHP maka maintenance suatu situs web menjadi lebih mudah. Proses Update
data dapat dilakukan dengan menggunakan aplikasi yang dibuat dengan menggunakan script
PHP.

1.2 Penulisan PHP


PHP dimulai dengan tag awal <?php yang di isi diikuti dengan elemen dan tag akhir
?>. Misal <?php echo “halo” ?>. Contoh lengkap sperti berikut ini :

<!DOCTYPE html>

<html>
<body>

<?php
echo "My first PHP script!";
?>

</body> </html>

1.3 Aturan PHP


BAB II

PENGENALAN RESTful API: Laravel

2.1 Apa itu RESTful API


RESTful API adalah cara bagi layanan web, seperti aplikasi atau situs web, untuk
saling berkomunikasi dan berbagi informasi di Internet. Sebagai contoh, digunakan untuk
memungkinkan backend (bagian yang mengelola data dan logika) berbagi informasi dengan
frontend (bagian yang ditampilkan kepada pengguna) dan sebaliknya.

RESTful API menggunakan metode HTTP sebagai aturan dasar untuk berkomunikasi
antar layanan web. Setiap metode HTTP memiliki peran spesifik, sebagai contoh :

• GET /users: Mendapatkan daftar pengguna.


• POST /users: Membuat pengguna baru.
• PUT /users/{id}: Memperbarui data pengguna dengan ID tertentu.
• DELETE /users/{id}: Menghapus pengguna dengan ID tertentu.

2.2 RESTful API dengan Laravel


Laravel adalah kerangka kerja (Framework) bahasa pemrograman PHP yang
digunakan untuk membantu para pengembang web membuat aplikasi dengan lebih mudah
dan cepat.
2.2.1 Install Laravel Project
Sebelum memulai pastikan anda telah memiliki PHP, Composer dan MySQL
di komputer anda. Buka terminal dan ketik perintah untuk membuat project Laravel
baru seperti berikut.
composer create-project --prefer-dist laravel/laravel my-
inventory

2.2.2 Konfigurasi Database


Setelah installasi selesai, buka folder project yang telah di buat, lalu buka file
.env dan masukan sintak untuk konfigurasi database seperti berikut.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=<DATABASE NAME>
DB_USERNAME=<DATABASE USERNAME>
DB_PASSWORD=<DATABASE PASSWORD>

2.2.3 Buat File Migration, Model dan Controller


Sekarang kita akan membuat file migration, model dan controller dengan cara
mengetik perintah berikut di terminal.

php artisan make:model Product -mcr

2.2.4 Setting Migration


Buka file migration yang telah dibuat di database/migrations, lalu ubah kode
didalam function up() dengan kode dibawah ini.

public function up()


{
Schema::create('products', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->text('description');
$table->text('image');
$table->timestamps();
});
}

Setelah itu, buka terminal dan jalankan perintah berikut untuk mengeksekusi
file migration yang telah kita buat menjadi sebuah table di database.

php artisan migrate

2.2.5 Setting Model


Buka file Product.php didalam folder app/models dan update kodenya seperti
berikut.

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory; use


Illuminate\Database\Eloquent\Model;

class Product extends Model {

use HasFactory;

protected $fillable = ['title', 'description', 'image'];


}

2.2.6 Setting Controller


Lalu, buka ProductController.php dan tambahkan function index, store, show,
update, dan delete di dalam class ProductController seperti berikut.
<?php

namespace App\Http\Controllers;

use App\Models\Product; use


Illuminate\Http\Request;

use Illuminate\Support\Str; use


Illuminate\Support\Facades\Storage;
use Carbon\Carbon;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return
Product::select('id','title','description','image')->get();
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'title'=>'required',
'description'=>'required',
'image'=>'required|image'
]);

try{
$imageName = Str::random().'.'.$request->image-
>getClientOriginalExtension();
Storage::disk('public')->putFileAs('product/image',
$request->image,$imageName);
Product::create($request-
>post()+['image'=>$imageName]);

return response()->json([
'message'=>'Product Created Successfully!!'
]);
}catch(\Exception $e){
\Log::error($e->getMessage());
return response()->json([
'message'=>'Something goes wrong while creating
a product!!' ],500);
}
}
/**
* Display the specified resource.
*
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function show(Product $product)
{
return response()->json([
'product'=>$product
]);
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Product $product)
{
$request->validate([
'title'=>'required',
'description'=>'required',
'image'=>'nullable'
]);

try{

$product->fill($request->post())->update();

if($request->hasFile('image')){

// remove old image


if($product->image){
$exists =
Storage::disk('public')>exists("product/image/{$product-
>image}"); if($exists){
Storage::disk('public')-
>delete("product/image/{$product->image}");
}
}

$imageName = Str::random().'.'.$request->image-
>getClientOriginalExtension();
Storage::disk('public')-
>putFileAs('product/image', $request->image,$imageName);
$product->image = $imageName;
$product->save();
}

return response()->json([
'message'=>'Product Updated Successfully!!'
]);

}catch(\Exception $e){
\Log::error($e->getMessage());
return response()->json([
'message'=>'Something goes wrong while updating
a product!!' ],500);
}
}

/**
* Remove the specified resource from storage.
*
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function destroy(Product $product)
{
try {

if($product->image){
$exists =
Storage::disk('public')>exists("product/image/{$product-
>image}"); if($exists){
Storage::disk('public')-
>delete("product/image/{$product->image}");
}
}

$product->delete();

return response()->json([
'message'=>'Product Deleted Successfully!!'
]);

} catch (\Exception $e) {


\Log::error($e->getMessage());
return response()->json([
'message'=>'Something goes wrong while deleting
a product!!' ]);
}
}
}

2.2.7 Definisikan Route


Definisikan route di dalam file routes/api.php dengan cara menambahkan kode
dibawah ini didalam file tersebut

use App\Http\Controllers\ProductController;

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

2.2.8 Beri Akses Storage


Dikarenakan sintak yang kita buat diatas memerlukan akses storage, maka kita
perlu memberi akses tersebut dengan menjalankan perintah ini di terminal.

php artisan storage:link

Perintah diatas membuat pintu akses untuk file-file yang Anda simpan di folder
“storage/app/public”. Ini berguna ketika Anda ingin membagikan file-file tersebut ke
publik melalui web.

2.2.9 Jalankan Development Server


Terakhir, jalankan perintah dibawah untuk menjalankan development server.
Kamu dapat mengakses backend yang telah dibuat di localhost:8000

php artisan serve

Anda mungkin juga menyukai