Belajar Lumen, kalau ndak praktik ndak seru. Kali ini kita akan praktikkan bagaimana menggunakan Lumen dengan cara yang sederhana. Siap?

Pertama, instal lumen. Lakukan caranya seperti artikel sebelumnya yang sudah pernah saya tulis. Hanya saja, pada file .env harus Anda setting terlebih dahulu pengaturan databasenya, yakni nama host, database, username, hingga passwordnya. Oiya, kali ini kita menggunakan database mySQL ya.

Tahap pertama, kita gunakan perintah php artisan berikut:


$ php artisan make:migration buat_tabel_peserta --create=peserta

 

Hasilnya seperti ini:

Selection_022

Selanjutnya, buka file migrasi yang sudah dibuat di atas (2015_09_20_212227_buat_tabel_peserta) dan modifikasi struktur databasenya sesuai kebutuhan. Ubahlah pada bagian function up() seperti berikut:

 Schema::create('peserta', function (Blueprint $table) {
            $table->increments('id');
            $table->string('nama');
            $table->string('nip');
            $table->integer('sex');
            $table->date('tgllahir');
            $table->text('biodata');
            $table->timestamps();
        });

 

Nah, dari sana kita jalankan lagi php artisan untuk membuat tabel secara otomatis.


$ php artisan migrate

 

Hasil di terminal kita akan muncul seperti ini:

Selection_023

Sementara itu di database mysql juga sudah terbuat sebuah tabel nan indah bernama peserta:

Selection_024

Berikutnya, kita membuat model untuk tabel peserta yang sudah kita buat. Ada dua cara, manual dan menggunakan artisan. Jika manual, buatlah sebuah file Peserta.php pada folder /app yang isinya kurang lebih begini:

<?php namespace App;

 use Illuminate\Database\Eloquent\Model;
 

 class Peserta extends Model
 {
     protected $table = 'peserta'; //kalau tidak begini, table akan di-set ke pesertas (asumsi bentuk plural dari peserta)
     
    protected $fillable = ['nama', 'nip', 'sex', 'tgllahir', 'biodata'];
     
 }

 

Ups….. ternyata untuk lumen tidak ada perintah artisan untuk membuat model…. Wkwkwkwk…

Selection_025

Ya sudah, cara manual saja ya….

Kalau mau menggunakan perintah make:model ya kita terpaksa harus meminjam artisan yang ada di framework laravel.

Baiklah, selanjutnya adalah membuat controller. Manual saja ya. Buat file /app/Http/Controllers/PesertaController.php. Isinya kurang lebih begini:

<?php

namespace App\Http\Controllers;

use App\Peserta;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;


class PesertaController extends Controller{


    public function index(){

        $parapeserta  = Peserta::all();

        return response()->json($parapeserta);

    }

    public function getPeserta($id){

        $peserta  = Peserta::find($id);

        return response()->json($peserta);
    }

    public function simpanPeserta(Request $request){

        $peserta = Peserta::create($request->all());

        return response()->json($peserta);

    }

    public function hapusPeserta($id){
        $peserta  = Peserta::find($id);

        $peserta->delete();

        return response()->json('berhasil');
    }

    public function updatePeserta(Request $request,$id){
        $peserta  = Peserta::find($id);

        $peserta->nama = $request->input('nama');
        $peserta->nip = $request->input('nip');
        $peserta->sex = $request->input('sex');
        $peserta->tgllahir = $request->input('tgllahir');
        $peserta->biodata = $request->input('biodata');

        $peserta->save();

        return response()->json($peserta);
    }

}

Berikutnya, pada file /app/Http/routes.php tambahkan baris-baris berikut:


$app->get('peserta', 'PesertaController@index');

Untuk mengujinya, coba isikan beberapa data contoh pada tabel peserta. Setelah itu, silakan tes di browser dengan mengetikkan alamat http://localhost/peserta. Hasilnya?

[{"id":"1","nama":"fulan","nip":"123131231312","sex":"1","tgllahir":"1995-01-02","biodata":"Biodata peserta adalah begini begitu. Kemudian pada tahun segitu dia mengikuti itu.","created_at":"-0001-11-30 00:00:00","updated_at":"-0001-11-30 00:00:00"}]
Advertisements