Kamis, 31 Oktober 2019

MEMBUAT PHP LUMEN REST CRUD


Tutorial kali ini adalah kelanjutan dari tutorial sebelumnya yaitu Membuat PHP Lumen DatabaseKita akan membuat service menggunakan PHP Lumen yang bisa melakukan aksi CRUD(Create, Read, Update, Delete) berdasarkan pada ​Restful API Design​. Adapun tujuan tutorial ini adalah untuk :
1. Mampu mengimplementasi Restful API
2. Memahami HTTP Verbs
3. Mampu membuat function untuk Insert Data ke Database (Create)
4. Mampu membuat function untuk Read Data dari Database (Read)
5. Mampu membuat function untuk Update Data ke Database (Update)
6. Mampu membuat function untuk Delete Data dari Database (Delete)
Endpoint
Dibawah ini adalah Endpoint yang akan implementasikan berdasarkan Restful API Design :
Method (HTTP Verbs)EndpointDescription
GET/postsGet all post
GET/posts/{postId}Get single post
POST/usersCreate new post
PUT/posts/{postId}Update single post
DELETE/posts/{postId}Delete single post

Di Lumen ada istilah request yaitu proses menerima atau menangkap data dari inputan POST dan penangkapan dari URL, silahkan tambahkan kode dibawah ini pada PostController :




Fungsi Create
1. Buka file routes/web.php, dan tambahkan router baru



2. Buka file app/Http/Controllers/PostsController.php dan tambahkan function store : 



Untuk function index sudah kita buat di module sebelumnya.

3. Buka file app/Models/Post.php dan tambahkan code ini untuk melakukan update field created_at dan updated_at secara otomatis : 

4. Buka aplikasi Postman untuk melakukan pengetesan fungsi create. Dibawah ini adalah tampilan Postman untuk melakukan testing dan hasilnya.

Fungsi Read All
Untuk membuat fungsi read all, anda harus menyelesaikan dulu module Membuat Lumen Database . Implementasi di controller nya adalah fungsi index di PostsController.php :
1. Buka aplikasi Postman untuk melakukan pengetesan fungsi Read All. Dibawah ini adalah tampilan Postman untuk melakukan testing dan hasilnya.



Fungsi Read Detail
1. Buka file routes/web.php, dan tambahkan router baru :

2. Buka file app/Http/Controllers/PostsController.php dan tambahkan function show : 


3. Buka aplikasi Postman untuk melakukan pengetesan fungsi read detail. Dibawah ini adalah tampilan Postman untuk melakukan testing dan hasilnya.



Fungsi Update
1. Buka file routes/web.php, dan tambahkan router baru : 

    
2. Buka file app/Http/Controllers/PostsController.php dan tambahkan function update :


    
3. Buka aplikasi Postman untuk melakukan pengetesan fungsi update. Dibawah ini adalah tampilan Postman untuk melakukan testing dan hasilnya.




Fungsi Delete
1. Buka file routes/web.php, dan tambahkan router baru : 


    
2. Buka file app/Http/Controllers/PostsController.php dan tambahkan function destroy :

    
3. Buka aplikasi Postman untuk melakukan pengetesan fungsi delete. Dibawah ini adalah tampilan Postman untuk melakukan testing dan hasilnya.



4. Pastikan ketika me-request ke ​http://localhost:8000/posts​, Post dengan id=1 sudah tidak ada.

Jumat, 25 Oktober 2019

MEMBUAT PHP LUMEN DATABASE


Ini adalah tutorial membuat service menggunakan PHP Lumen yang akan bisa melakukan query ke database.

1. Kita harus install composser terlebih dahulu di composser.com
2. Lalu kita create project dengan mengetikkan:
     composser create-project --prefer-dist laravel/lumen lumen-database




Database Connection
   Untuk melakukan setting database, mari kita ikuti langkah-langkah dibawah ini :
   1. Edit file bootstrap/app.php, uncomment kode dibawah ini :
     $app->withFacades();
     $app->withEloquent();
2.Buka file .env. Ubah settingan dibawah ini sesuaikan dengan kebutuhan

     DB_CONNECTION=mysql
     DB_HOST=127.0.0.1
     DB_PORT=3306
     DB_DATABASE=​lumen-database
     DB_USERNAME=root
     DB_PASSWORD=

3.Create database dengan nama ​ lumen-database , sesuai dengan yang ada di .env

Database Migration

    Database migration digunakan untuk melakukan DDL pada SQL database denganmenggunakan code PHP. 
    Untuk membuat database migration, mari ikuti langkah-langkahdibawah ini:
1. Pertama kita akan membuat table ​posts​. Untuk membuat table ​posts​ jalankan script dibawah ini
    php artisan make:migration create_posts_table Kalau berhasil, tampilan terminalnya          seperti        ini :

2. Migration tersebut akan mebuat file di folder
    database/migrations/2019_10_25_095953_create_posts_table. Nama file nya akan berbeda-beda,
    tapi patternya sama, yakni:[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php
3. Buka
    filedatabase/migrations/[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php,
    kemudian edit function up menjadi seperti ini :

4. Untuk mengubah code migration diatas ke dalam bentuk tabel di SQL database,jalankan script
    dibawah ini.
    php artisan migrate
    Kalau berhasil, tampilan terminal nya seperti ini :

5. Untuk pertama kali melakukan migration, kita akan dibuatkan satu table dengan nama migrations​
    Table ini digunakan Lumen untuk mencatat file migration mana saja yang sudah dijalankan.

 6. Kalau berhasil, maka ditabase kita akan ada dua table, dengan nama:

      a.migrations
      b.posts


API Client Tool

API client tool digunakan untuk mengakses API. Tool yang kita gunakan adalah Postman,silahkan install Postman dengan mengunjungi halaman ini ​https://www.getpostman.com​.
Dibawah ini adalah tampilan ketika mengakses API menggunakan Postman.

- ketikan di cmd untuk menjalankan server

php -S localhost:8000 -t public

Jumat, 18 Oktober 2019

MEMBUAT PHP LUMEN SERVICE APP





Lumen adalah Micro-framework yang diciptakan pengembang Laravel untuk mengakomodasi kebutuhan developer yang ingin membuat aplikasi dalam skala lebih kecil dari Laravel. Karena banyak library yang dihilangkan dalam bundle source code, Lumen bisa dijadikan framework untuk membuat REST API.

Di dalam Lumen ini ada beberapa fitur unggulan yaitu :

  • Caching
  • Queues
  • Validation
  • Routing
  • Mailer
  • Database
  • Autorisasi
  • Autentikasi
  • Response
  • Request
  • Controller
  • Middleware

Cara membuat Service App dengan Lumen
Contoh studi kasus nya yaitu menentukan lulus dan tidak lulus nilai siswa, dengan ketentuan :
1. Jika nilai >= 75 maka dinyatakan LULUS
2. Jika nilai < 75 maka dinyatakan TIDAK LULUS

Langkah-langkah :


Installasi Composer

Untuk menjalankan PHP Lumen, kita memerlukan composer yang sudah terinstall. Composer adalah PHP Package Manager, jadi kita bisa menginstall module-module PHP untuk mempercepat kita dalam mengembangkan aplikasi. 

Installasi Lumen

Untuk instalasi dan membuat project Lumen ada dua cara : 

1. Via Lumen Installer

    a. Buka command prompt/cmd
    b. composer global require "laravel/lumen-installer" 
    c. lumen new [nama_projek] 
    d. Contoh:  lumen new LumenServiceApp 

2. Via Composer Installer 

    a. Buka command prompt/cmd
    b. composer create-project --prefer-dist laravel/lumen [nama_projek] 
    c. Contoh:  composer create-project --prefer-dist laravel/lumen LumenServiceApp 

Untuk menjalankan installasi Lumen komputer kita harus memiliki koneksi internet 


Dibawah ini adalah process yang dijalankan ketika script no 1 atau no 2 dijalankan. Process ini adalah mendownload module-module yang dibutuhkan oleh Lumen. 



 Struktuk folder Lumen seperti dibawah ini :

Menjalankan Server

Untuk menjalankan server nya jalankan perintah ini di command prompt/terminal 

a. Pindah direktori ke folder aplikasi lumen yg telah dibuat :
    cd LumenServiceApp
b. Jalankan server :
    php -S localhost:8000 -t public

c. Apabila server berjalan, akan tampil seperti berikut 
Buka browser dan akses url : localhost:8000


Lumen Routing

Routing digunakan untuk menyediakan alamat path yang bisa di akses dan memberikan response atau menjalankan fungsi tertentu. Fungsi ini biasanya diarahkan ke Controllers.


Lumen routing support beberapa HTTP method, diantaranya : 
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • OPTIONS

Dibawah ini adalah contoh routing: 
1. http://localhost:8000/hello-word
2. Routing lah yang bertanggung jawab dalam menydiakan path ​/hello-word​ supaya bisa diakses 

Untuk melakukan settingan routing, silahkan ikuti langkah-langkah dibawah ini: 

1. Buka file routes/web.php 
2. Tambahkan script router dibawah router /


 Tampilan ketika mengakses : localhost:8000/hello-word

 Untuk menambahkan parameter dinamis, tambahkan script berikut dibawah router /hello-word

Tampilan ketika diakses dengan menggunakan parameter : localhost:8000/hello-word/Human


Lumen Middleware
Middleware adalah mekanisme atau metode untuk melakukan pembatasan akses dalam menerima request dari user.

Lumen Controller
Controller adalah Struktur (Class dan function) di Lumen yang digunakan untuk mengatur alur proses (business logic), baik untuk mengembalikan response, menghubungkan ke model dan views maupun hanya menggunakan model saja.  1. Model adalah Struktur (Class dan function) di Lumen yang digunakan untuk melakukan koneksi dan query ke Database.  2. View adalah template datau halaman untuk ditampilkan di browser.  Saat ini, kita tidak kana menggunakan View, karena kita tidak membutuhkan halaman untuk ditampilkan di browser.