Tutorial CRUD Lumen versi 5.8

Yulianto Pambudi
5 min readMar 19, 2020

--

sumber ilustrasi : https://lumen.laravel.com/

Pada tulisan ini saya ingin berbagi pengetahuan tentang Micro-Framework PHP yang bernama Lumen. Tulisan ini terinspirasi dari tutorial ini, kemudian saya berinisiatif untuk menulis kembali dengan bahasa sendiri agar jika dikemudian hari saya lupa bisa langsung pergi ke tulisan ini wkwk. Pada tulisan ini akan dibahas mengenai pembuatan CRUD (Create, Read, Update, Delete) beserta pengujian masing-masing fungsi. Semoga tulisan ini bermanfaat, selamat membaca :D.

Apa itu Lumen?

Lumen merupakan Micro-Framework PHP yang berbasis dari Framework Laravel. Lumen diciptakan untuk membuat RESTful API dan microservices dengan kecepatan dan performa yang tinggi. Singkatnya Lumen merupakan framework turunan dari Laravel yang lebih fleksibel dan ringan. Performa Laravel vs Lumen disajikan pada tabel berikut :

Perbandingan request per second
perbandingan response time (ms)

sumber tabel : https://medium.com/@laurencei/lumen-vs-laravel-performance-in-2018-1a9346428c01.

Dari tabel tersebut terlihat bahwa Lumen lebih unggul dalam request per second dan response time jika dibandingkan dengan Laravel, walaupun Lumen merupakan turunan dari Laravel. Hal ini di karenakan ada beberapa komponen Laravel yang ada di Lumen telah dilepas sehingga membuat performa nya semakin cepat dan ringan.

Instalasi dan Konfigurasi

Pada tutorial ini siapkan alat dan bahan sebagai berikut :

  1. PHP >= 7.1.3
  2. Composer
  3. Text editor favorit (saya menggunakan VSCODE)

Kalo alat dan bahan belum siap baiknya download alat dan bahan tersebut terlebih dahulu :

Link Install PHP;
Link Install Composer;
Link Install VSCODE .

Oke, jika alat dan bahan sudah siap kita lanjutkan ke instalasi dan konfigurasi.

Ohya, sebagai catatan saya menggunakan sistem operasi Windows 10, jadi perintah-perintah dan susunan direktori pada tutorial ini mungkin akan berbeda di sistem operasi berbasis Linux, OS X dan lainnya.

Pertama-tama kita install Lumen terlebih dahulu, buka CMD kemudian pindah ke direktori C:\xampp\htdocs. Kemudian jalankan perintah berikut untuk menginstall Lumen versi 5.8 :

composer create-project laravel/lumen LatihanLumen "5.8.*" --prefer-dist

Tunggu hingga instalasi selesai. Jika instalasi sudah selesai kita lakukan beberapa konfigurasi terlebih dahulu.

Buka folder instalasi LatihanLumen (C:\xampp\htdocs\LatihanLumen) menggunakan VSCODE atau text editor favorit kalian. Struktur folder Lumen akan terlihat seperti ini :

Buka bootstrap > app.php. Kita akan mengedit beberapa konfigurasi. Hapus komentar pada baris 24 dan 26.

Masih di bootstrap > app.php kemudian scroll down sampai baris 79 kemudian hapus komentar pada baris 79 sampai 81.

Lanjut ke konfigurasi database, buka file .env kemudian sesuaikan nama database, username dan password. Kalo database belum ada buat terlebih dahulu. Kurang lebih seperti ini jadinya konfigurasi di file .env :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbmahasiswa
DB_USERNAME=root
DB_PASSWORD=

Nama database yang saya gunakan “dbmahasiswa”. Kemudian username “root” dan password kosong sesuai dengan konfigurasi database pada komputer yang saya gunakan.

Tambahkan baris berikut setelah DB_PASSWORD

DB_TIMEZONE=+07:00

Perintah tersebut digunakan agar timestamp sesuai dengan zona waktu Indonesia bagian barat.

Setelah itu kita buat migration dengan perintah berikut (jalankan di C:\xampp\htdocs\LatihanLumen).

php artisan make:migration tabel_mahasiswa --create=mahasiswa

Tunggu migration selesai kemudian buka database > migration > tabel_mahasiswa.php

Kemudian tambahkan field nama dan nim seperti baris kode berikut :

Kemudian jalankan perintah ini di C:\xampp\htdocs\LatihanLumen :

php artisan migrate

Perintah tersebut digunakan untuk membuat tabel mahasiswa pada “dbmahasiswa” dengan field id (big int), nama(varchar), nim(integer) created_at (timestamp) dan updated_at (timestamp)

Struktur tabel mahasiswa.

Membuat Model

Buka folder app kemudian buat file baru disana dengan nama “ModelMahasiswa.php”.

Letak ModelMahasiswa.php

Kemudian salin kode berikut ini

Catatan : $table diisi nama tabel yang kita buat pada database.

Lanjut ke pembuatan controller.

Membuat Controller

Lumen merupakan microframework turunan Laravel dengan beberapa komponen yang sudah dilepas sehingga kita tidak bisa menggunakan php artisan untuk membuat controller. Kenapa dilepas? karena dengan dilepasnya beberapa komponen/library dari Laravel bisa membuat Lumen semakin ringan. Jadi mau tidak mau kita harus membuat file controller secara manual wkwkwk.

Oke, sekarang kita buat file baru di app > Http > Controllers dengan nama “MahasiswaController.php”.

Setelah controller selesai dibuat, lanjut ke pembuatan routes.

Membuat Routes

Jika sudah membuat model lanjutkan dengan membuat routes dan endpoint. Buka routes > web.php, kemudian edit file web.php. Secara keseluruhan isi file web.php akan seperti ini :

Kemudian jalankan perintah berikut untuk menyalakan Lumen (jalankan di C:\xampp\htdocs\LatihanLumen)

php -S localhost:8000 -t ./public

Untuk mengakses Lumen buka browser kemudian arahkan ke localhost:8000, Jika berhasil akan muncul seperti ini:

Pengujian

Pada pengujian ini saya menggunakan Postman desktop versi 7.20.1. Gunakan JSON untuk mengirim data.

  1. Pengujian POST

Jika berhasil maka akan return response

2. Pengujian GET ALL

Gunakan method GET dengan endpoint http://localhost:8000/mahasiswa.

Jika berhasil akan return response :

3. Pengujian GET by Id

Gunakan method GET dengan endpoint http://localhost:8000/mahasiswa/{id} .

Jika berhasil akan return response :

4. Pengujian UPDATE

Gunakan method PUT dengan endpoint http://localhost:8000/mahasiswa/{id}. Kita akan mengubah nama dari “Yulianto Pambudi” menjadi “Budi”.

Jika berhasil akan return response :

5. Pengujian DELETE

Gunakan method DELELTE dengan endpoint http://localhost:8000/mahasiswa/{id}.

Jika berhasil akan return response :

Jika kalian tidak mau repot-repot mengikuti tutorial ini secara keseluruhan, bisa lihat repository git yang telah saya buat. Namun, alangkah baiknya jika kalian mengikuti tutorial ini secara step by step agar semakin paham cara kerja Lumen.

Repository git nya bisa liat disini.

Kesimpulan dari tutorial ini Lumen merupakan micro-framework turunan dari Laravel yang di desain untuk performa yang cepat dan ringan. Kita juga sudah bisa membuat fungsi CRUD menggunakan Lumen versi 5.8. Kemudian melakukan pengujian terhadap fungsi CRUD yang sudah dibuat menggunakan Postman.

Oke sekian tutorial CRUD menggunakan Lumen 5.8, jika ada kurang dan lebih mohon maaf. Semoga ilmunya bermanfaat, selamat belajar dan terima kasih :D.

Referensi
Lumen vs Laravel performance in 2018;
Tutorial CRUD Lumen 5.4 : Microframework RESTful API untuk Laravel.

--

--