FULLSTACK LARAVEL
INSTALLASI LARAVEL
3. Setelah ke dua aplikasi di atas terinstall, silahkan buka CMD dan 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.
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 berikut
Jangan lupa melakukan import model pada controller Kontak dengan memasukan script
berikut pada bagian atas:
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 simpan_tambah digunakan untuk melakukan penyimpanan ketika kita menambah data.
***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL
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:
2. Setelah membuat view edit kontak, ubah controller 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.
***
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)
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 session yang 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:
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
2. Buatlah function destroy() di siswacontroller.php seperti script dibawah ini:
Select JOIN
1. App\http\controller\Siswacontroller.php
2. Buatlah function tampil_siswa() di siswacontroller.php seperti script dibawah ini:
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
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
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(['error' =>
'invalid_credentials'], 400);
}
} catch (JWTException $e) {
return response()->json(['error' =>
'could_not_create_token'], 500);
}
return response()->json(compact('token'));
}
if($validator->fails()){
return response()->json($validator->errors()-
>toJson(), 400);
}
$user = User::create([
'name' => $request->get('name'),
'email' => $request->get('email'),
'password' => Hash::make($request->get('password')),
]);
$token = JWTAuth::fromUser($user);
return response()->json(compact('user','token'),201);
}
if (! $user = JWTAuth::parseToken()->authenticate())
{
return response()->json(['user_not_found'],
404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException
$e) {
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException
$e) {
return response()->json(compact('user'));
}
}
12. Setelah itu buat BookController untuk mengecek mengimplementasikan JWT Auth yang kita
buat tadi dengan mengetik perintah
php artisan make:controller BookController
13. Setelah itu isi BookControllernya di folder app/Http/Controller/BookController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
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 function handle($request, Closure $next)
{
try {
$user = JWTAuth::parseToken()->authenticate();
} catch (Exception $e) {
if ($e instanceof
\Tymon\JWTAuth\Exceptions\TokenInvalidException){
return response()->json(['status' => 'Token is
Invalid']);
}else if ($e instanceof
\Tymon\JWTAuth\Exceptions\TokenExpiredException){
return response()->json(['status' => 'Token is
Expired']);
}else{
return response()->json(['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\Middleware\JwtMiddleware::class,
17. Lalu buat routing di routes/api.php
Route::post('register', 'UserController@register');
Route::post('login', 'UserController@login');
Route::get('book', 'BookController@book');
Route::get('bookall', 'BookController@bookAuth')-
>middleware('jwt.verify');
Route::get('user', 'UserController@getAuthenticatedUser')-
>middleware('jwt.verify')
18. Setelah itu ketik perintah ini jika file laravel tidak berada di folder htdocs
php artisan serve
19. Lalu cek di postman
20. Buka 2 link berikut ini dengan postman (jangan melakukan login terlebih dahulu)
Localhost/nama_foldernya/api/book
21. Localhost/nama_folder/api/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
***
SELAMAT BELAJAR LARAVEL
JANGAN LUPA EKSPLORASI HAL-HAL TERKAIT LARAVEL