1. FULLSTACK LARAVEL
INSTALLASI LARAVEL
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.
TEMPLATING LARAVEL
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.
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:
Berikut tutorial sederhana templating pada laravel. Silahkan mengekdplore diri terkait Laravel,
agar pemahaman kalian lebih dalam dan lebih luas.
CRUD LARAVEL
SELECT DATA
3. Konfigurasi file .env yang terletak pada root folder Laravel kalian seperti bawah ini:
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.
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:
CRUD LARAVEL
INSERT DATA
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
3. Buatlah kategoriModel dengan cmd dengan script seperti dibawah ini:
php artisan make:model kategoriModel
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.
Jika inputannya tidak diisi akan tampil seperti ini
***
CRUD LARAVEL
UPDATE DATA
1. Untuk menampilkan halaman tambah data kontak, kalian perlu membuat sebuah view
baru bernama kontak_edit.blade.php dan masukkan script dibawah 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.
***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL
CRUD LARAVEL
DELETE DATA
1. Sebelumnya kita sudah membuat button Hapus pada kontak.blade.php. Button tersebut
akan mengarah ke url kontak/hapus/parameter id_kontak.
***
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)
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.
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
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:
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
Delete
1. Buka App\http\controller\Siswacontroller.php
Select JOIN
1. App\http\controller\Siswacontroller.php
2. Buatlah function tampil_siswa() di siswacontroller.php seperti script dibawah ini:
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;
/**
* 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;
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;
$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;
/**
* 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
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
25. Coba juga untuk mengakses localhost/nama_folder/api/user untuk mendapatkan
informasi data user yang sedang login
***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL