Melanjutkan seri tutorial pengembangan aplikasi website sebelumnya, kali ini kita masuk pada proses instalasi framework laravel dan library dasar. Output yang akan kita hasilkan adalah starter kit yang akan mempermudah kita dalam pengembangan aplikasi web. Dalam dunia pengembangan aplikasi, developer manapun pasti membutuhkan yang namanya pola atau pattern dalam membuat aplikasi. Pola yang terus berulang tentu tidak akan efisien jika harus dibuat setiap kali ada proyek pengembangan aplikasi. Starter kit akan mempermudah pengembang sehingga semua fungsi dasar yang diperlukan sudah tersedia, sehingga pengembang tinggal membuat modifikasi sederhana sesuai dengan tujuan aplikasi yang dibuat. Dari best practice yang telah saya lalui, ada beberapa fungsi dasar yang seharusnya ada dalam sebuah aplikasi website yaitu:
- User Management atau Authentication Management. User management akan mengelola hal-hal terkait dengan role dari masing-masing user yang login. Secara sederhana, autentikasi dibutuhkan dalam hal pembuatan backend, dimana pengelolaan konten harus dilakukan oleh admin, sehingga dibatasi hanya oleh yang berhak saja. Pada kondisi tertentu, misalnya aplikasi publishing/blog dimana masing-masing user bisa membuat konten artikel sendiri, maka user manegement juga dibutuhkan untuk pengelolaan masing-masing akun pribadi user. Lalu bagaiman pembagian user role yang baik dalam pengembangan suatu aplikasi? dari pengalaman saya, user role yang dibuat pada dasarnya dibagi menjadi 3 yaitu:
- Role Super Admin, yang bertugas mengelola aplikasi secara menyeluruh baik segi teknis aplikasi maupun admin untuk pemberian hak akses.
- Role Admin Konten, yang bertugas mengelola aplikasi secara konten, data umum website, maupun user support.
- Role User, yaitu role sebagai pengguna pada umumnya yang telah melakukan registrasi dan terdaftar.
- Fungsi Print atau mencetak data dalam berbagai format seperti PDF, Excel, Word atau tampilan lainnya. Fungsi ini sangat diperlukan untuk menghasilkan berbagai report atas data yang dikelola. Biasanya fungsi ini dapat ditambahkan dengan fitur keren lain yaitu mencetak QR Code untuk setiap dokumen yang dihasilkan. Penggunaan QR Code ini akan menambah validitas data jika didalamnya diberikan informasi untuk validasi dokumen hasil cetakan tersebut.
- Fungsi Debugging. Dalam mode pengembangan atau development, fitur ini harus dimiliki bagi pengembang. Tujuannya yaitu menghasilkan solusi yang tepat atas error yang terjadi di aplikasi yang sedang dibangun.
- API Management. Jika aplikasi yang kamu buat akan terhubung dengan aplikasi mobile, maka fungsi ini wajib kamu tambahkan. Dengan API Management, maka proses transaksi data antar sistem menjadi lebih mudah dikelola.
- Frontend Design. Beberapa fitur untuk tampilan depan halaman website yang perlu kamu siapkan antara lain tampilan untuk message seperti popup message atau modal, tampilan tanggal dalam format bahasa Indonesia, tampilan list data dalam bentuk table, sampai pada Error handling design, yaitu tampilan dalam hal terjadi error atau url tidak tersedia. Walaupun sederhana fungsi ini akan sangat membantu kamu dalam membuat format-fromat yang sesuai dengam kebutuhan.
- Fungsi Pendukung Database. Beberapa library yang dibutuhkan seperti yang sudah dibahas pada artikel sebelumnya yaitu library untuk membuat UUID sebagai referensi ID unik setiap transaksi yang disimpan ke dalam database.
Mungkin masih banyak fitur lainnya yang belum terdaftar, namun secara umum semua fitur di atas akan sangat diperlukan untuk menghasilkan starter kit yang sangat berguna untuk semua jenis aplikasi.
Instalasi Laravel Framework 5.8
Saatnya memulai proses instalasi framework Laravel 5.8. Saya memilih laravel 5.8 dengan berbagai pertimbangan, yaitu karena pada versi ini sudah tersedia helper yang lengkap untuk mendukung pengembangan aplikasi. Jika kamu ingin versi yang lebih tinggi yaitu laravel 6 atau 7 itu pilihan yang bebas. Pada tutorial sebelumnya, saya sudah memberikan instruksi untuk melakukan instalasi beberapa tool dasar, salah satunya Composer. Composer akan membantu kita dalam melakukan proses instalasi dari server laravel serta untuk library utama yang akan diinstall.
1. Buka Command prompt di windows atau bash pada mac. Lalu ketikkan perintah untuk change directory ke folder htdocs di dalam server XAMPP.
2. Ketikkan perintah composer untuk install Laravel 5.8, composer create-project –prefer-dist laravel/laravel blog “5.8.*”. blog merupakan folder baru yang akan dibuat dengan framework laravel 5.8. Tunggu sampai proses unduh seluruh file selesai. Proses ini akan memakan waktu tergantung koneksi internet kamu.
3. Setelah proses selesai, buka editor text dengan Visual Studio Code atau Sublime dan arahkan ke folder instalasi yaitu di c:\xampp\htdocs\blog.
4. Hal pertama yang harus disetting adalah file konfigurasi dengan nama .env. Secara default, file ini akan bernama .env.example, kita hanya perlu melakukan duplikasi file ini dan mengubah namanya menjadi .env. Pada file ini, akan kita gunakan untuk menghubungkan database dengan aplikasi, juga sebagai media penyimpanan variable global yang dibutuhkan aplikasi. Variable yang harus diisi yaitu:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=(isikan nama database)
DB_USERNAME=root
DB_PASSWORD=
5. Sampai disini aplikasi kamu sudah bisa dijalankan baik dengan mengetik langsung pada browser alamat fisik (web server xampp sudah dijalankan PHP dan Mysql) dengan mengakses localhost/blog/public atau juga tanpa web server xampp dengan menjalankan perintah php artisan serve pada command prompt. Setelah menjalankan fungsi tersebut maka akan muncul alamat yang bisa dijalankan, biasanya di localhost:8000.
Yeay! Kamu sudah berhasil menjalankan aplikasi laravel kamu.
Instalasi Library Utama Laravel
Pada struktur organisasi laravel pada gambar sebelumnya, kita melihat beberapa file seperti .env, lalu ada composer.json dan composer.lock. Pada file composer.json terdapat konfigurasi library laravel yang sudah terinstall pada aplikasi kita. Sedangkan file composer.lock adalah hasil terjemahan dari file composer.json yang sudah terparsing untuk dieksekusi aplikasi. Jika kamu mencoba hapus file composer.lock maka akan terjadi error. Sedangkan jika file composer.json yang dihapus maka tidak akan error, namun kamu akan kesulitan jika akan melakukan instalasi library.
Untuk melakukan instalasi library dapat dilakukan dengan 2 cara yaitu pertama dengan mengubah file composer.json lalu menghapus file composer.lock (akan direfresh dan dibuat kembali dengan file terbaru), atau cara kedua dengan menggunakan command prompt. Struktur file composer.json akan terlihat sebagai berikut:
Variabel “require” berisi parameter atau list library yang akan ada pada mode production, sedangkan variable “require-dev” berisi parameter atau list library yang hanya akan ada pada mode development. Lalu bagaimana cara mengubah mode tersebut? kamu bisa mengubahnya pada file .env pada variable APP_ENV atau pada folder config/app.php.
Dari gambar di atas sudah dapat dilihat library yang harus dipersiapkan yaitu:
1. “barryvdh/laravel-dompdf“: “^0.8.5”, library untuk membantu melakukan cetak dalam format pdf.
2. “jenssegers/date“: “^3.5”, library untuk membantu format tanggal yang ditampilkan sesuai dengan format tanggal Indonesia.
3. “laravel/framework“: “5.8.*”, library utama yaitu laravel framework versi 5.8.
4. “ramsey/uuid“: “3.9.3”, library untuk menggenerate UUID untuk id unik transaksi di dalam database.
5. “simplesoftwareio/simple-qrcode“: “~1”, library untuk membuat QR Code di dalam cetakan file pdf.
6. “uxweb/sweet-alert“: “^2.0”, library untuk menampilkan popup alert setiap ada interaksi user, seperti insert, update, delete data untuk konfirmasi atau informasi.
7. “yajra/laravel-datatables-oracle“: “~9.0”, library untuk menampilkan data dalam bentuk tabel yang dinamis, baik client side maupun server side dengan menggunakan fungsi ajax / dom.
8. “maatwebsite/excel”, library untuk mencetak data dalam format excel. Selain library maatwebsite kamu juga bisa menggunakan library bawaan yajra untuk export data dalam berbagai format dengan variabel “yajra/laravel-datatables-buttons”:”^4.0″
9. “barryvdh/laravel-debugbar“: “^3.2”, library untuk menampilkan pesan error pada laravel dengan lebih rinci, sehingga proses debugging lebih mudah dilakukan oleh developer. Library ini sebaiknya diletakkan pada variabel require-dev sehingga hanya akan muncul pada mode development.
Seperti yang sudah saya sebutkan sebelumnya, kamu bisa langsung menuliskan list library pada file composer.json, kemudian menghapus file composer.lock. Setelah itu barulah kamu jalankan perintah di command prompt “Composer Install”. Perintah ini akan menginstall library yang ada pada file composer.json dan membuat kembali file composer.lock.
Cara kedua yang menurut saya lebih mudah dipahami adalah dengan mengetikkan perintah instalasi masing-masing library. Dari list library di atas, maka yang perlu dilakukan adalah dengan mengetik perintah sebagai berikut pada command prompt kamu:
1. composer require barryvdh/laravel-dompdf
2. composer require jenssegers/date
3. composer require ramsey/uuid
4. composer require simplesoftwareio/simple-qrcode
5. composer require uxweb/sweet-alert
6. composer require yajra/laravel-datatables-oracle
7. composer require maatwebsite/excel
8. composer require yajra/laravel-datatables-buttons
9. composer require barryvdh/laravel-debugbar
Untuk library utama framework laravel 5.8 tidak perlu dilakukan instalasi lagi.
Catatan Penting!
Untuk menjalankan update secara menyeluruh aplikasi maka kamu bisa menggunakan perintah composer update, namun saya sangat tidak menyarankan perintah ini, karena semua depedencies akan berubah mengikuti versi laravel yang terbaru. Dari pengalaman saya, dengan menjalankan perintah composer update, maka ada saja beberapa library yang menjadi tidak support alias tidak berfungsi. Saya lebih menyarankan kamu untuk menghapus file composer.lock terlebih dahulu, kemudian menjalankan perintah composer install jika ada perubahan versi library di file composer.json.
Demikian akhir dari tutorial melakukan instalasi framework laravel dan library utama untuk dijadikan bahan starter kit kamu. Semoga bermanfaat. Untuk file hasil pembuatan starter kit ini merupakan konten eksklusif yang bisa kamu dapatkan dengan mendukung saya melalui karyakarsa.
Selamat mencoba!
Referensi: https://solutech.id