Tuesday, October 29, 2019

Tutorial PHP Lumen Rest CRUD


Deskripsi
Pada tutorial kali ini merupakan lanjutan project dari tutorial sebelum nya dengan nama  Tutoarial Menggunakan PHP Lumen yang bisa Melakukan Query ke Database  Kita akan membuat service menggunakan PHP Lumen yang bisa melakukan aksi CRUD (Create, Read, Update, Delete) berdasarkan pada Restful API Design. Tujuan praktek ini adalah :

  1. Mampu implementasi 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)

Prasyarat
Harus menyelesaikan dulu modul dengan judul ‘PHP Lumen Database’(tutorial yang sebelumnya)

Endpoint
Dibawah ini adalah Endpoint yang akan implementasikan berdasarkan Restful API Design:

Method (HTTP Verbs)
Endpoint
Description
GET
/posts
Get list of all post
GET
/post/{postId}
Get single post
POST
/users
Create new post
PUT
/post/{postId}
Update single post
DELETE
/post/{postId}
Delete single post

Buat tabel
Kita akan membuat sebuah tabel baru dengan nama users di database tutorial sebelumnya.
Untuk struktur tablenya sebagai berikut:

- id
- nama
- email
- alamat
- gender

Jalankan Xampp
Buka Command Prompt(CMD) lanjut masuk ke direktori folder projek lumennya.
lalu ketik php artisan make:migration create_users_table kemudian Enter.

jika berhasil maka akan tampil sepereti ini


jika sudah berhasil maka pada projeck kita maka akan tampil seperti gambar berikut


Setelah itu buka file tersebut lanjut tambahkan beberapa script didalam functionnya saja, untuk membuat strukur tabel yang akan kita buat.


Kembali ke CMD
dan ketik php artisan migrate

jika berhasil maka akan tampil seperti berikut



jika langkah diatas berhasil maka pada database akan tampil seperti berikut



Buat Controller dan Model

Buat terlebih dahulu routes terlebih dahulu di file "routes\web.php"


kemudian kita membuat Controller dan Model untuk persiapan CRUD kita.
Mauskan script ini dan Buat di file baru dengan nama UsersController di folder "app\Http\Controllers\"



Lanjut buat file lagi dengan nama User di folder "Models\User.php" dan masukan script ini.

code ini akan membuat untuk melakukan update field created_at dan updated_at secara otomatis : perhatikan line 17



Selanjutnya kita akan melakukan test apakah sudah terhudung dengan table suers dengan cara ke CMD dan masih di direktori projek kita dan ketik php -S localhost:8000 -t public
jika berhasil tampilannya sebagai berikut:



Untuk tes buka software Postman dan di url http://localhost:8000/users/ dengan tipe GET.
jika berhasil maka akan tampil seperti gambar dibawah ini:


Fungsi Create
Untuk membuat fungsi create, mari kita ikuti langkah-langkah berikut ini:

1. Buka file "routes/web.php", dan tambahkan code ini



2. Buka file "app/Http/Controllers/UsersController.php" dan tambahkan  code function ini:




Buka aplikasi Postman untuk melakukan pengetesan. Dibawah ini adalah tampilan Postman untuk melakukan testing dan berhasil.
Isi seusai dengan kolom/field yang ada ditable users ,tipe nya adalah POST bukan GET


Read All

Buka aplikasi Postman untuk melakukan pengetesan. Ubah POST menjadi GET kembali untuk melihat semua yang ada didatabase.
Dibawah ini adalah tampilan Postman untuk melakukan testing dan berhasil.


Fungsi Read Detail
Untuk membuat fungsi read detail, mari kita ikuti langkah-langkah berikut ini:

Buka file "routes/web.php", dan tambahkan code ini:



Buka file "app/Http/Controllers/PostsController.php" dan tambahkan code ini:


Buka aplikasi Postman untuk melakukan pengetesan. Pstikan tipenya GET. Dibawah ini adalah tampilan Postman untuk melakukan testing dan berhasil.

http://localhost:8000/users/[id] 



Fungsi Update
Untuk membuat fungsi read detail, mari kita ikuti langkah-langkah berikut ini:
Buka file "routes/web.php", dan tambahkan code ini:



Buka file "app/Http/Controllers/UsersController.php" dan tambahkan code ini:


Buka aplikasi Postman untuk melakukan pengetesan. isi datanya, data yang ingin kita ubah sesuai dengan idnya, dan ubah tipenya dari GET menjadi PUT. Dibawah ini adalah tampilan Postman untuk melakukan testing dan berhasil.
Pastikan aksesnya seperti ini : http://localhost:8000/users/[id]



Fungsi Delete
Untuk membuat fungsi read detail, mari kita ikuti langkah-langkah berikut ini:

Buka file routes/web.php, dan tambahkan code ini:


Buka file "app/Http/Controllers/UsersController.php" dan tambahkan code ini:


Buka aplikasi Postman untuk melakukan pengetesan. Ubah tipe menjadi DELETE. Dibawah ini adalah tampilan Postman untuk melakukan testing dan berhasil.

Pastikan aksesnya seperti ini : http://localhost:8000/users/[id]



dan selei sudah tutorial kali ini semoga bermanfaat.

Monday, October 14, 2019

Tutorial Crud Codeigniter Sound Meggunakana Grocery Crud



Berikut ini adalah tutorial menggunakan CodeIgniter + Grocery Crud yang bisa membuat fungsi Sound CRUD dalam hitungan detik. Dalam tutorial kali ini, fokusnya adalah menyimpan dan memainkan beberapa jenis file yang berbeda seperti suara, film, dokumen, atau file lainnya

Sebelum melakukan tutorial ini, pastikan anda telah menghilangkan konfigurasi khusus untuk menghilangkan pemanggilan index.php dalam url yang bisa dilihat di tutorial berikut ini:

https://www.codinglabs.online/2019/10/cara-menghilangkan-index-php.html

lankahnya pertama simpan script ini dan simpan di folder codeigniter dengan nama
 .htacces

tiliskan script berikut :

 <IfModule mod_rewrite.c>
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
 
   RewriteEngine on
   RewriteRule ^(.*)$ index.php/$1 [L]
 </IfModule>


Anda juga mengubah bahasa komponen di Grocery CRUD menjadi bahasa Indonesia yang tutorialnya bisa anda baca di sini:

https://www.codinglabs.online/2019/10/cara-mengubah-bahasa-grocery-crud.html


Selanjutnya buka file config.php di folder Application/ConfigGanti Ganti base_url dengan http://localhost/[NAMA FOLDER].
Kemudian cari index_page dan hapus isinya.


hapus tulisan 'index.php' menjadi seperti ini ;



Buatlah database pada phpmyadmin seperti gambar dibawah ini


kemudian Export file SQL dengan klik tombol Export


Buka di text editor (misal Sublime)


Ganti nama tabelnya (misal, jadi tb_sound)


Dan paste kan seluruh file sql serta eksekusi di PHPMyAdmin


Jika tidak ada kesalahan maka anda baru saja berhasil membuat sebuah tabel baru


Dengan cara yang sama, buat tabel untuk Image, Document, dan Object


Selanjutnya masuk ke dalam folder Codeigniters > Assets > Uploads di folder ini buatlah beberapa buah folder sesuai dengan jumlah tabel yang anda buat


Satu buah tabel akan berasosiasi dengan satu buah folder untuk penyimpanan filenya



Selanjutnya, masih berhubungan dengan tutorial sebelumnya, pastikan anda telah memiliki file Main.php (Controller) seperti ini.

 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 class Main extends CI_Controller {
   function __construct()
   {
     parent::__construct();
     /* Standard Libraries of codeigniter are required */
     $this->load->database();
     $this->load->helper('url');
     /* ------------------ */ 
     $this->load->library('grocery_CRUD');
   }
   public function index()
   {
     echo "<h1>Welcome to the world of Codeigniter</h1>";//Just an example to ensure that we get into the function
         die();
   }
   public function employees()
   {
     $crud = new grocery_CRUD();
     $crud->set_table('employees');
     $output = $crud->render();
     $this->_example_output($output);   
   }
   function _example_output($output = null)
   {
     $this->load->view('our_template.php',$output); 
   }
 }
 /* End of file Main.php */



Anda copy code di atas, edit di text Editor, dan COPY-PASTE fungsi/method employees menjadi fungsi lain (misal sound) serta sesuaikan nama tabelnya.

PERBEDAAN terbesar pada tutorial kali ini adalah, adanya seting baru pada field FileContent dengan mengubahnya menjadi input file/upload file seperti pada gambar berikut.



Cek di URL dengan menjalankan localhost/<folder-root>/<class>/<method>


setelah berhasil kita coba input suaranya dengan cara click "Add file Suara" dan inputkan


Tes aplikasi anda dengan mengupload file di atas 5 MB. Jika upload anda gagal, cobalah tutorial ini untuk mengganti ukuran upload file yang bisa diterima oleh PHP dan CodeIgniter.
setelah berhasil coba click suaranya  https://www.codinglabs.online/2019/10/cara-mengubah-uploadsize-grocery-crud.html



ketika sudah diinputkan suara maka akan tampil seperti berikut.


Seharusnya file suara akan berjalan secara otomatis di file lainnya


Rahasia selanjutnya adalah, semua file yang diupload tadi secara otomatis akan tersimpan di folder yang telah kita buat.




Dan Selesai sudah tutorial kali ini
semoga bermanfaat
selamat mencoba....!!!!

Sunday, October 13, 2019

Tutoarial Menggunakan PHP Lumen yang bisa Melakukan Query ke Database


kali ini kita akan membuat tutorial menggunakan PHP Lumen yang bisa melakukan query ke database, tujuannya mampu membuat koneksi ke database dari Lumen kemudian mampu membuat database migration dan mampu melakukan query ke database.

Database Connection

Untuk melakukan setting database, mari kita ikuti langkah-langkah dibawah ini:

1.   Edit file bootstrap/app.php, uncomment:

     $app->withFacades();

     $app->withEloquent();

perhatikan perubahannya











disini saya buat menjadi
                                                   



2. Buka file .env. Ubah settingan dibawah ini sesuaikan dengan kebutuhan 
    seperti gambar dibawah ini

 3. Create database dengan nama lumen_service_app, sesuai dengan settingan .env file.



Database Migration

Database migration digunakan untuk melakukan DDL pada SQL database dengan menggunakan code PHP. Untuk membuat database migration, mari ikuti langkah-langkah dibawah 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_12_030749_create_posts_table. Nama file nya akan berbeda-beda, tapi patternya sama, yakni: [tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php

3. Open file database/migrations/[tahun]_[bulan]_[tanggal]_[randon_number]_create_posts_table.php, kemudian edit function up menjadi seperti ini (lihat line 19 - 22)







4. Untuk mengubah code migration diatas ke dalam bentuk tabel di SQL database, jalankan script dibawah ini.

php artisan migrate

jika berhasil maka tampilannya akan tampil 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
    jika berhasil maka tampilannya seperti berikut









Model

Model digunakan untuk melakukan koneksi dan query ke Database. Untuk membuat model, mari ikuti langkah-langkah dibawah ini:

1. Untuk memudahkan dalam memanage code, buat folder app/Models

2. Buat file app/Models/Post.php, code nya seperti ini















3. Buat file controller app/Http/Controllers/PostsController.php, code nya seperti ini
                                                             

4. Buka file routes/web.php, tambahkan code dibawah ini

5. Buka di browser http://localhost:8000/posts maka haslinya akan sepeti berikut



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.



Dan selesai...., itu adalah cara menggunakan PHP Lumen yang bisa melakukan query ke database, semoga bermanfaat!!!





Architecture Microservices

  Microservice merupakan pengembangan dari Monolitik Arsitektur. Microservice ini merupakan kumpulan proses independen dan kecil yang ...