Anda di halaman 1dari 34

 

1. FULLSTACK LARAVEL
 

INSTALLASI LARAVEL

1.  Install XAMPP terbaru yang memiliki PHP versi 7.x.x


Download di : 
: https://www.apachefriends.org/download.html 
https://www.apachefriends.org/download.html 

2.  Install Composer, merupakan aplikasi command prompt digunakan untuk membantu
proses install Laravel dan paket library
Download di : 
: https://getcomposer.org/ 
https://getcomposer.org/ 

3.  Setelah ke dua aplikasi di atas terinstall, silahkan buka CMD dan jalankan
jalankan perintah :
Composer -V
Untuk mengecek apakah composer kalian telah terinstall dengan benar atau belum. Jika
muncul versi composer, maka composer berhasil terinstall di computer kalian.

4.  Proses installasi Laravel


-  Arahkan directory CMD kalian ke C:\XAMPP\htdocs\ dengan perintah
cd c:/xampp/htdocs
atau sesuaikan dengan lokasi installasi xampp kalian.
-  Masukan perintah:
composer create-project laravel/laravel nama_project
nama_project --prefer-dist 5.8
-  Kita menggunakan laravel versi 5.8 karena sudah stabil
-  Tunggu beberapa saat untuk mendownload file-file framework Laravel pada folder
htdocs

5.  Setelah installasi selesai, buka http://localhost/nama_project/public


 

TEMPLATING LARAVEL 

--------- copy assets ----------


1.  Untuk studi kasus, silahkan download template front end sederhana yang sudah di share di
classroom
2.  Buka project Laravel yang telah terinstall menggunakan code editor
3.  Extract template frint end yang telah di download, kemudian copy
c opy paste folder
css,js,fonts,img,sass ke dalam folder public pada Laravel

--------- buat file template -------


4.  buat view baru di folder resource -> views klik kanan dan buat file baru bernama
template.blade.php
5.  Copy script yang ada di halaman index.html, kemudian paste ke dalam
template.blade.php. Modifikasi script tersebut seperti di bawah ini.

{{url(‘public/bla/blabla’}} digunakan untuk memanggil file assets, kita sering menyebutnya


dengan base_url

6.  Untuk menampilkan halaman dashboard/home, buat file view baru dengan nama
index.blade.php. isikan view tersebut dengan script di bawah ini
 

7.  Untuk menampilkan view template dan halaman home di atas, kita perlu sebuah
controller. Buat controller baru dengan nama Kontak.php.
Dengan menerapkan composer, kita dapat membuat controller dengan cepat. Masukan
perintah berikut pada CMD.

php artisan make:controller Kontak --resource

Note: resource adalah command otomatis laravel sehingga tercipta fungsi-fungsi dasar Controller seperti
Index, Create, Store, Update, Show, dan Destroy.

8.  Tambahkan script di bawah ini pada method index controller Kontak untuk menampilkan
view halaman dashboard/home

9.  Antara controller Kontak dan view Index masih belum bisa terhubung meskipun kita sudah
menambahkan pada sebuah method. Pada Laravel perlu penambahan ROUTE yang
berfungsi untuk mengarahkan/menyambungkan view dengan controller, sehingga kita
dapat mengakses melalui browser.
Letak file ROUTE pada folder routes->web.php

10.  Hapus semua route default yang ada sebelumnya, ganti dengan script di bawah ini:

Maksud dari route di atas adalah, jika kita membuka halaman


http://localhost/belajar_laravel/ 
http://localhost/belajar_laravel/ maka secara otomatis url tersebut akan mengarahkan ke
dalam controller Kontak method index. Kita ketahui bahwa di dalam method index yang
kita buat tadi sudah ditambahkan script untuk menampilkan halaman dashboard/home.

Berikut tutorial sederhana templating pada laravel. Silahkan mengekdplore diri terkait Laravel,
agar pemahaman kalian lebih dalam dan lebih luas.
 

CRUD LARAVEL

SELECT DATA

------------ konfigurasi Connect DB -------------


1.  Buat database baru dengan nama belajar_laravel 
2.  Buat desain database seperti dibawah ini :

3.  Konfigurasi file .env yang terletak pada root folder Laravel kalian seperti bawah ini:

sesuaikan dengan konfigurasi database kalian

-------------- Model --------------


4.  Buat model baru dengan nama ModelKontak.php. Caranya dengan menggunakan
composer, ketikan perintah berikut ini :
php artisan make:model ModelKontak

5.  Ubah file Model yang sudah kita buat dengan membuka folder app -> ModelKontak.php 
dan edit isinya seperti ini:
 

note: protected $table adalah variable untuk menentukan bahwa table yang digunakan pada model itu
adalah kontak.

-------------- Controller ------------


------------  
6.  Buat controller baru bernama Kontak, cara membuatnya dengan memasukan perintah
seperti di bawah ini:
php artisan make:controller Kontak

7.  Buka controller pada app -> Http -> Controllers -> Kontak.php lalu edit pada bagian
method index  seperti
 seperti berikut

Jangan lupa melakukan import model pada controller Kontak dengan memasukan script
berikut pada bagian atas:

----------- Views ------------


8.  Buat sebuah view baru dengan nama kontak.blade.php untuk menampilkan/menselect
semua data kontak, dan dimasukan ke dalam tabel. Berikut script untuk menampilkan data
kontak ke dalam tampilan tabel.
 

--------------- Routes --------------


9.  Untuk menggabungkan method index pada controller Kontak dengan view
kontak.blade.php, maka kalian perlu menambahkan
men ambahkan script pada routes untuk mengatur
URL dan nantinya URL tersebut dapat diakses melalui
mela lui browser.
10. Buka routes pada folder routes->web.php, kemudian ubah script routes yang sebelumnya
seperti ini:

11. Akses hasilnya dengan membuka halaman 


halaman http://localhost/belajar_laravel/public/kontak 
http://localhost/belajar_laravel/public/kontak 
 

CRUD LARAVEL

INSERT DATA

…..Lanjutan dari modul CRUD LARAVEL (SELECT)  

1.  Untuk menampilkan halaman tambah data kontak, kalian perlu membuat sebuah view
baru bernama kontak_create.blade.php dan masukkan script dibawah ini:

2.  Setelah membuat view tambah data, ubah controller Kontak.php dengan menambahkan
script method tambah seperti berikut ini.

Method tambah

note: method tambah digunakan untuk menampilkan halaman tambah data


 jangan lupa untuk menambahkan
menambahkan script pemanggilan model kat
kategori
egori (kategoriModel) di
paling atas
 

3.  Buatlah kategoriModel dengan cmd dengan script seperti dibawah ini:
php artisan make:model kategoriModel

edit file model kategori di  app/kategoriModel seperti dibawah ini 


gambar kategoriModel 

4.  Edit routesnya di web.php


5.  Routes Ini untuk menampilkan desain tambah
6. 
7.  Routes Ini untuk proses simpan kontaknya

8.  Buatlah method simpan_tambah di controller Kontak


9.
 

10. 
11. Jangan lupa ditambahkan script use Session di paling atas untuk memanggil class session
seperti dibawah ini

Note: method simpan_tambah digunakan untuk melakukan penyimpanan ketika kita menambah data.

Silahkan membuka url 


url http://localhost/belajar_laravel/public/kontak/tambah
http://localhost/belajar_laravel/public/kontak/tambah  kemudian
masukan penambahan data sesuai form isian.
Jika muncul tampilan seperti berikut, maka kalian telah berhasil melakukan insert data
menggunakan Laravel.
 

 
Jika inputannya tidak diisi akan tampil seperti ini

Jika formnya diisi dengan benar akan tampil seperti ini

***

JANGAN LUPASELAMAT BELAJAR


EKSPLORASI LARAVEL
HAL-HAL TERKAIT LARAVEL
 

CRUD LARAVEL

UPDATE DATA

…..Lanjutan dari modul CRUD LARAVEL (INSERT)  

1.  Untuk menampilkan halaman tambah data kontak, kalian perlu membuat sebuah view
baru bernama kontak_edit.blade.php dan masukkan script dibawah ini:

2.  Setelah membuat view edit kontak, ubah controller


c ontroller Kontak.php dengan menambahkan
script pada method edit dan update seperti berikut ini.

Method edit

note: method edit digunakan untuk menampilkan halaman edit dan data sebelum diubah
 

Method update

Note: method update digunakan untuk melakukan penyimpanan ketika kita mengubah data.

3.  Silahkan membuka url 


url http://localhost/belajar_laravel/public/kontak/
http://localhost/belajar_laravel/public/kontak/  , kemudian klik
button Edit pada data yang akan di ubah.

Tampilan data sebelum di edit


 

Tampilan data berhasil diedit

***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL
 

CRUD LARAVEL

DELETE DATA

…..Lanjutan dari modul CRUD LARAVEL (UPDATE) 

1.  Sebelumnya kita sudah membuat button Hapus pada kontak.blade.php. Button tersebut
akan mengarah ke url kontak/hapus/parameter id_kontak.

2.  Edit routesnya di web.php


3. 
4.  Setelah membuat button hapus pada view kontak dan mengedit routesnya, ubah
controller Kontak.php dengan menambahkan script pada method hapus seperti berikut ini.

5.  Silahkan membuka url 


url http://localhost/belajar_laravel/public/kontak
http://localhost/belajar_laravel/public/kontak  , kemudian klik
button hapus pada data yang akan di hapus.

***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL
 

CRUD LARAVEL

LOGIN PAGE

…..Lanjutan dari modul CRUD LARAVEL (setelah semua CRUD selesai dibuat)

1.  Buatlah halaman view login.blade.php di folder resource/view (template login BSB admin
material design)

2.  Atur routesnya di web.php

3.  Buatlah controller Login dengan cmd


4.  php artisan make:controller Login
5.   jika sudah membuat controller
controller menggunakan cmd php artisan, buka controller
controller Login ,
buatlah method index seperti dibawah ini

6.  Atur routesnya di web.php untuk url login/cek


7. 
 
8. ini
Buka controller login , buatlah method cek dengan parameter Request seperti di gambar
 

9. 
10. Jika sudah selesai membuat method cek, buatlah halaman dashboard.blade.php untuk user
yang sudah melakukan login benar. Seperti diawah ini

11. 
12. Atur routesnya di web.php untuk menampilkan dashboard
13. 
14. Jika blm punya controller dashboard, silahkan membuat controller dengan cmd artisan
15. php artisan make:controller Dashboard
16. buka controller dashboard, lalu buatlah method index untuk menampilkan halaman
dashboard

17. 
 

18. Membuat mengecekan status login


19. Ini berfungsi untuk menghalangi user membuka halaman dashboard atau yang lainnya
yang membutuhkan login dulu dengan menggunakan middleware
20. Buatlah halaman middleware dengan cmd artisan seperti dibawah ini:
21. php artisan make:middleware cek_login
22. buka file middleware cek_login di app/http/middleware
23. dan tambahkan script if pengecekan variable session login_status true atau tidak. Dan
 jangan lupa memanggil class
class session yang diletakkan
diletakkan di diatas class cek_login

24. 
25. Selanjutnya tambahkan script pemanggilan middleware cek_login di kernel.php yang
terletak di app/http/kernel.php , cari variable $routeMiddleware dan letakkan didalamnya
seperti dibawah ini:

26. 
27. Selanjutnya pemasangan cek_login di setiap controller yang hanya bisa diaccess setelah
login sukses.
28. Misalkan di dashboard yang mana halaman ini perlu login terlebih dahulu.
29. Buka controller dashboard lalu tambahkan script construct didalam class diluar method.
 

30. 
31. Di controller kontak kita kasih middleware agar login dulu sebelum buka kontak
Membuat logout 
32. Buatlah menu logout di template.blade.php seperti dibawah ini
33. 
34. Atur routesnya di web.php dengan menambahkan script dibawah ini
35. 
36. Sekarang buka controller login dan buatlah method logout

37. 

Silahkan dicoba buka kontak atau dashboard tanpa login, akan langsung ditolak dan diarahkan ke
login
 

2. RESTFULL API LARAVEL


 

CRUD API LARAVEL

Insert
1.  Siapkan database dengan nama crud_laravel di phpmyadmin.
2.  Buatlah table dengan nama siswa beserta kolom-kolom sebagai berikut:
-  id (int primaryKey autoIncrement)
-  nama_siswa (varchar 100)

-  tanggal_lahir (date)
-  gender (enum)
-  alamat (text)
-  id_kelas (int)
3.  buatlah table dengan nama kelas beserta kolom-kolom sebagai berikut:
-  id (int primaryKey autoIncrement)
-  nama_kelas (varchar 100)
-  kelompok (varchar 100)
4.  Buatlah Siswamodel dan Kelasmodel di command prompt dengan ketik
php artisan make:model Siswamodel
php artisan make:model Kelasmodel
5.  Buka file model Kelasmodel di App/Kelasmodel.php
6.  Edit isinya seperti dibawah ini:

7.  Buka file model Siswamodel di App/Siswamodel.php


8.  Edit isinya seperti dibawah ini:

9.  Buatlah file controller Siswacontroller di command prompt dengan ketik :


 

php artisan make:controller Siswacontroller


php artisan make:controller Kelascontroller
10. Buka file controller Kelascontroller di App\http\controller\Kelascontroller.php lalu isikan
seperti dibawah ini:

11. Buka routes\api.php untuk mengatur url nya, lalu edit seperti dibawah ini:

12. Jika sudah selesai, maka saatnya percobaan entri data kelas di aplikasi postman, jika belum
ada aplikasi postman, silahkan diinstal terlebih dahulu.
13. Untuk mencobanya buka postman lalu masukkan url
http://localhost/crud_api_laravel/public/api/simpan_kelas
14. Ganti method nya dengan POST 
15. Isikan nama kolom sesuai kolom yang ada di database pada table siswa dan datanya.
16. Jangan lupa centang tab body lalu pilih form-data 
 

 
17. Buka controller Siswacontroller di App\http\controller\Siswacontroller.php lalu isikan
seperti dibawah ini:

18. Buka routes\api.php untuk mengatur url nya, lalu edit seperti dibawah ini:
 

 
19. Jika sudah selesai, maka saatnya percobaan entri data siswa di aplikasi postman.
20. Untuk mencobanya buka postman lalu masukkan url
http://localhost/crud_api_laravel/public/api/simpan_siswa
21. Ganti method nya dengan POST 
22. Isikan nama kolom sesuai kolom yang ada di database pada table siswa dan datanya.
23. Jangan lupa centang tab body lalu pilih form-data 

Update
1.  Buka App\http\controller\Siswacontroller.php
2.  Buatlah function update() di siswacontroller.php seperti script dibawah ini:
 

 
3.  Tambahkan setting routes di routes\api.php

4.  Untuk mencobanya buka postman lalu masukkan url


http://localhost/crud_api_laravel/public/api/ubah_siswa/1
5.  Ganti method nya dengan PUT 
6.  Isikan nama kolom sesuai kolom yang ada di database pada table siswa dan datanya.
7.  Jangan lupa centang tab body lalu pilih x-www-form-urlencoded 
8.  Lalu klik send 

Delete
1.  Buka App\http\controller\Siswacontroller.php
 

2.  Buatlah function destroy() di siswacontroller.php seperti script dibawah ini:

3.  Tambahkan setting routes di routes\api.php

4.  Untuk mencobanya buka postman lalu masukkan url


http://localhost/crud_api_laravel/public/api/hapus_siswa/1
5.  Ganti method nya dengan delete 
6.  Lalu klik send 

Select JOIN
1.  App\http\controller\Siswacontroller.php
2.  Buatlah function tampil_siswa() di siswacontroller.php seperti script dibawah ini:

3.  Tambahkan setting routes di routes\api.php

4.  Untuk mencobanya buka postman lalu masukkan url


http://localhost/crud_api_laravel/public/api/tampil_siswa
5.  Ganti method nya dengan GET 
6.  Lalu klik send 
 

 
 

JWT-LARAVEL Api Authentication

1.  Install JWT Packagenya dengan mengetik perintah


composer require tymon/jwt-auth:dev-de
tymon/jwt-auth:dev-develop velop --prefer-source

2.  Jangan lupa setting .env sesuai dengan settingan database kalian. 
3.  Lalu buka config/app.php 
 
4. DiTymon\JWTAuth\Providers\LaravelServiceProvider::class,
bagian Provider tambahkan 1 baris code seperti ini:
5.  Di Bagian Aliases tambahkan 2 baris code seperti ini
'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,
Tymon\JWTAuth\Facades\JWTAuth::class,
'JWTFactory' => Tymon\JWTAuth\Faca
Tymon\JWTAuth\Facades\JWTFactory::class
des\JWTFactory::class, ,
6.  Setelah itu publish JWT Packagenya dengan mengetik perintah
php artisan vendor:publish --
provider="Tymon\JWTAuth\Providers\LaravelS
provider="Tymon\JWTA uth\Providers\LaravelServiceProvider"
erviceProvider"
7.  Lalu buat jwt-auth secretnya dengan mengetik perintah
php artisan jwt:secret
8.  Setelah itu buka file Model User, lokasi filenya ada di app/User.php buatlah seperti ini
 <?php
 <?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Tymon\JWTAuth\Contracts\JWTSubject;

class User extends Authenticatable implements JWTSubject


{
use Notifiable;

/**
* The attributes that are mass assignable.
*
* @var array
*/
 protec
 pro ted $fillable = [
tected
'name', 'email', 'password',
 

  ];

/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
 protec
 pro ted $hidden = [
tected
'password', 'remember_token',
];

 public
 public function getJWTIdentifier()
function
{
return $this->getKey();
}
 public
 public function getJWTCustomClaims()
function
{
return [];
}
}
9.  Setelah itu, ketikkan perintah migrasi database untuk membuat tabel dengan perintah
 php artisan
artisan migrate
migrate
 
10. Lalu buat UserController untuk membuat fungsi register dan login, dengan mengetik
perintah
 php artisan
artisan make:contro
make:controller
ller UserContro
UserController
ller
11. Setelah itu buka UserController di bagian
folder app/Http/Controller/UserController.php dan buka isi isi controller seperti ini
 <?php
 <?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;

class UserController extends Controller


{
 public
 public function login(Request $request)
function
{
$credentials = $request->only('email', 'password');

try {
if (! $token = JWTAuth::attempt($credentials)) {
return response()->json(['
response()->json(['error'
error' =>
'invalid_credentials'], 400);
'invalid_credentials'],
}
} catch (JWTException $e) {
return response()->json(['
response()->json(['error'
error' =>
'could_not_create_token'],
'could_not_create_token'], 500);
}
 

 
return response()->json(compact('token'));
}

 public
 public function register(Request $request)
function
{
$validator = Validator::make($request->all(), [
'name' => 'required|string|max:255',
'required|string|max:255',
'email' =>
'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'required|string|min:6|confirmed',
]);

if($validator->fails()){
return response()->json($validator->errors()-
>toJson(), 400);
}

$user = User::create([
'name' => $request->get('name'),
$request->get('name'),
'email' => $request->get('email'),
$request->get('email'),
'password' => Hash::make($request->get('password')),
Hash::make($request->get('password')),

]);
$token = JWTAuth::fromUser 
($user);
($user);

return response()->json(compact('user','token'),201);
}

 public
 public function getAuthenticatedUser()
function
{
try {

if (! $user = JWTAuth::
 parseToke
 parseT n()->authenticate())
oken
{
return response()->json(['user_not_found'],

404);
}

} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException
$e) {

return response()->json(['
response()->json(['token_expired'],
token_expired'], $e-
>getStatusCode());

} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException
$e) {

return response()->json(['
response()->json(['token_invalid'],
token_invalid'], $e-
>getStatusCode());

} catch (Tymon\JWTAuth\Exc
(Tymon\JWTAuth\Exceptions\JWTException
eptions\JWTException $e) {
 

  return response()->json(['
response()->json(['token_absent'],
token_absent'], $e-
>getStatusCode());

return response()->json(compact('user'));
}
}
12. Setelah itu buat BookController untuk mengecek mengimplementasikan JWT Auth yang kita
buat tadi dengan mengetik perintah
 php artisan
artisan make:contro
make:controller
ller BookContro
BookController
ller
13. Setelah itu isi BookControllernya di folder app/Http/Controller/BookController.php  
 <?php
 <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Auth;

class BookController extends Controller


{
 public
 public function book() {
function

$data =response()->json($data,
"Data All Book"; data, 200);
return response()->json($
}

 public
 public function bookAuth() {
function
$data = "Welcome " . Auth::user 
()->name;
()->name;
return response()->json($
response()->json($data,
data, 200);
}
}
14. Setelah itu buat JwtMiddleware dengan mengetik perintah
 php artisan
artisan make:middle
make:middleware
ware JwtMiddlewa
JwtMiddleware
re
15. Setelah itu edit app/Http/Middleware/JwtMiddleware.php seperti di bawah ini
 <?php
 <?php

namespace App\Http\Middleware;

use Closure;
use JWTAuth;
use Exception;
use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;

class JwtMiddleware extends BaseMiddleware


{

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
 

   public
 public function handle($request, Closure $next)
function
{
try {
$user = JWTAuth::  parseTok
 parse Tokenen()->authenticate();
} catch (Exception $e) {
if ($e instanceof
\Tymon\JWTAuth\Exceptions\TokenInvalidException){
return response()->json(['
response()->json(['status'status' => 'Token is
Invalid']);
}else if ($e instanceof
\Tymon\JWTAuth\Exceptions\TokenExpiredException){
return response()->json(['
response()->json(['status'status' => 'Token is
Expired']);
}else{
return response()->json(['
response()->json(['status'status' =>
'Authorization Token not found']);
}
}
return $next($request);
}
}
16. Setelah itu edit Kernel.php di app/http/Kernel.php di bagian $routeMiddleware tambahkan

sebaris code berikut


'jwt.verify' => \App\Http\Middlewa
\App\Http\Middleware\JwtMiddleware::cla
re\JwtMiddleware::class,
ss,
17. Lalu buat routing di routes/api.php  
Route::  post('register', 'UserController@regi
 post 'UserController@register');
ster');
Route::  post('login', 'UserController@login');
 post 'UserController@login');
Route::get('book', 'BookController@book');
'BookController@book');

Route::get('bookall', 'BookController@bookAuth')-
'BookController@bookAuth')-
>middleware('jwt.verify');
Route::get('user', 'UserController@getAuthenticatedUser')-
'UserController@getAuthenticatedUser')-
>middleware('jwt.verify')
18. Setelah itu ketik perintah ini jika file laravel tidak berada di folder htdocs
 php artisan
artisan serve
serve
19. Lalu cek di postman
20. Buka 2 link berikut ini dengan postman (jangan melakukan login terlebih dahulu)
Localhost/nama_foldern
Localhost/na ma_foldernya/api/book
ya/api/book

21. Localhost/na
Localhost/nama_folder/api
ma_folder/api/bookall
/bookall
 

 
22. Lalu lakukan registrasi dan login untuk mencoba akses localhost:8000/api/bookall dengan
link registrasi localhost/nama_folder/api/register  

23. Setelah registrasi coba melakukan login dengan email dan password yang sudah di
daftarkan dengan link localhost/nama_folder/api/login , setelah itu kita akan mendapat
token, token tersebut akan kita gunakan untuk mengakses localhost:8000/api/bookall  

24. Setelah itu coba akses localhost/nama_folder/api/bookall dengan menambahkan Bearer


dan token di dalam header. Copy token yang di dapat saat melakukan login
 

 
25. Coba juga untuk mengakses localhost/nama_folder/api/user untuk mendapatkan
informasi data user yang sedang login

26. Sekian tutorial laravel, semoga bermanfaat. Terimakasih~

***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL

Anda mungkin juga menyukai