Penjadwalan Task Otomatis Menggunakan Laravel Scheduler

Hallo, Kreatif Readers! Sebagai strategi dalam menghemat waktu dan tenaga, fitur Laravel Scheduler merupakan salah satu tools yang efektif dalam otomatisasi proses development. Fitur ini biasa digunakan untuk pembersihan cache serta melakukan backup website secara berkala. Selain itu, beberapa fungsi lain seperti sinkronisasi data eksternal serta pengiriman email berkala juga memungkinkan dilakukan menggunakan Laravel Scheduler.

Apa itu Laravel Scheduler?

Mengutip dari situs resmi Laravel, Task Scheduler merupakan salah satu fitur dari framework Laravel yang memungkinkan untuk menjalankan tugas secara otomatis pada waktu tertentu. Umumnya fitur ini diterapkan task yang harus dijalankan secara rutin dan berulang, sehingga tidak perlu lagi dijalankan secara manual.

Mengapa harus Laravel Scheduler?

Beberapa manfaat utama menggunakan Laravel Scheduler adalah:

  1. Pengaturan yang mudah: Anda dapat mendefinisikan task terjadwal hanya dengan beberapa baris code.
  2. Pembuatan Task yang Lebih Mudah: Laravel menyediakan berbagai metode untuk menjadwalkan tugas seperti menjalankan artisan command, menjalankan closure, atau bahkan menjalankan system command
  3. Pengaturan Frekuensi yang Fleksibel: Anda dapat dengan mudah mengatur frekuensi tugas seperti setiap menit, setiap jam, harian, mingguan, dan seterusnya.
  4. Logging dan Monitoring: Laravel Scheduler memungkinkan logging dan monitoring dari tugas yang dijalankan, sehingga Anda dapat memastikan semua tugas berjalan sesuai rencana.

Contoh penggunaan Laravel Scheduler

Berikut merupakan contoh penggunaan Laravel Scheduler untuk melakukan backup database setiap minggu/weekly.

1. Buat command untuk Backup

php artisan make:command BackupDatabase

2. Mendifinisikan logic Backup di command

Buka file BackupDatabase.php dan edit metode handle:

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;

class BackupDatabase extends Command
{
 protected $signature = 'backup:database';
 protected $description = 'Backup the database';

 public function __construct()
 {
 parent::__construct();
 }

 public function handle()
 {
 $filename = "backup-" . now()->format('Y-m-d-H-i-s') . ".sql";
 $command = "mysqldump --user=" . env('DB_USERNAME') .
 " --password=" . env('DB_PASSWORD') .
 " --host=" . env('DB_HOST') .
 " " . env('DB_DATABASE') . " > " . storage_path('app/' . $filename);

 $returnVar = NULL;
 $output = NULL;

 exec($command, $output, $returnVar);

 if ($returnVar != 0) {
 $this->error('Database backup failed');
 } else {
 $this->info('Database backup was successful');
 }
 }
}

3. Definisikan jadwal Backup

Setelah membuat command, Anda perlu menjadwalkannya di app/Console/Kernel.php. Tambahkan tugas ini ke metode schedule untuk menjalankannya setiap minggu.

protected function schedule(Schedule $schedule)
{
 $schedule->command('backup:database')->weekly();
}

Selain itu, Anda juga dapat menentukan waktu tertentu untuk menjalankan backup, contohnya setiap hari Senin pukul 02.00

protected function schedule(Schedule $schedule)
{
 $schedule->command('backup:database')->weeklyOn(1, '02:00'); // Setiap Senin jam 02:00
}

Anda dapat melakukan test untuk menjalankan scheduler menggunakan perintah berikut

php artisan schedule:work

4. Jalankan Laravel Scheduler pada server

Untuk menjalankan scheduler, Anda hanya perlu menambahkan cron configuration pada server untuk menjalankan perintah the schedule:run pada waktu yang ditentukan. Berikut adalah syntax yang dibutuhkan

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

5. Verifikasi Laravel Scheduler dengan melakukan Logging dan Monitoring

Berikut adalah perintah untuk melihat daftar semua tugas yang telah dijadwalkan di Laravel Scheduler

php artisan schedule:list

Tedapat beberapa variable yang akan ditampilkan, antara lain:

  • Expression: Menunjukkan ekspresi cron untuk tugas tersebut.
  • Command: Perintah yang dijalankan.
  • Next Due: Waktu berikutnya tugas dijadwalkan untuk dijalankan.
  • Previous: Waktu sebelumnya tugas dijalankan.
  • Description: Deskripsi singkat tentang tugas.

Selain perintah di atas, Laravel Scheduler juga memungkinkan Anda untuk memonitor dan log setiap tugas yang dijalankan. Anda dapat menggunakan metode ->sendOutputTo untuk mengarahkan output ke file log menggunakan perintah berikut:

$schedule->command('backup:run')->daily()->sendOutputTo(storage_path('logs/backup.log'));

Kesimpulan

Laravel Scheduler adalah alat yang sangat berguna untuk mengotomatisasi berbagai tugas dalam aplikasi web Anda. Dengan menggunakan Laravel Scheduler, Anda dapat mengelola tugas terjadwal dengan cara yang lebih terstruktur dan mudah dipahami, meningkatkan produktivitas dan efisiensi pengembangan aplikasi Anda. Mengingat kemudahan pengaturannya, fleksibilitas, dan fitur logging yang disediakan, Scheduler menjadi salah satu fitur esensial yang layak dipelajari dan digunakan dalam proyek Laravel.

Reference:
[1] https://laravel.com/docs/11.x/scheduling
[2] Cara Menjalankan Laravel Scheduler untuk Otomatisasi Cron Job (idwebhost.com)

Meningkatkan kinerja aplikasi dengan laravel octane

Hallo, Kreatif Readers!! Artikel kali ini akan membahas tentang kinerja aplikasi

Kinerja aplikasi adalah aspek yang sangat penting dalam pengembangan aplikasi. Kinerja yang baik memastikan aplikasi berjalan cepat, responsif dan meningkatkan kepuasan pengguna dan efisiensi operasional

Laravel Octane adalah salah satu terobosan terbaru dalam dunia pengembangan aplikasi web menggunakan framework Laravel. Laravel octame dirangcang untuk meningkatkan kinerja aplikasi, menjadikannya lebih cepat, lebih efisien dan lebih responsif daripada sebelumnya.

Bagaimana cara menggunakan Laravel Octane?

Menggunakan Laravel Octane memerlukan beberapa langkah konfigurasi awal. Berikut adalah langkah – langkah umum untuk mengaktifkan Laravel Octane dalam projek yang sedang dikerjakan:

1. Instalasi Laravel Octane

Instal Laravel Octane dengan menggunakan Composer

composer require laravel/octane

2. Konfigurasi Octane

Setelah instal Laravel Octane, langkah berikutnya adalah melakukan konfigurasi.

php artisan octane:install

ini akan membuat berkas octane.php di directory config

3. Konfigurasi server dan worker

Dalam berkas octane.php, anda dapat melakukan konfigurasi server yang akan digunakan oleh Laravel Octane ( Misalnya, Swoole atau RoadRunner) dan jumlah worker yang akan dijalankan.

'server' => env('OCTANE_SERVER', 'swoole'), 'workers' => env('OCTANE_WORKERS', 4),

4. Aktifkan Mode Octane

Setelah melakukan konfigurasi Laravel Octane, berikutnya aktifkan dengan menjalankan perintah berikut

php artisan octane:start

Setelah melakukan tahapan di atas aplikasi Laravel akan berjalan dalam mode Octane

5. Uji Kinerja Aplikasi

Setelah mengaktifkan Laravel Octane, sangat penting untuk menguji kinerja aplikasi untuk memastikan bahwa perubahan tersebut memberikan hasil yang diharapkan

Manfaat Menggunakan Laravel Octane

  • Pengurangan waktu respons, dengan menjaga aplikasi tetap berada di memori dan mengelola resource secara lebih efisien, Ocatne dapat mengurangi latency dan meningkatkan kecepatan respons aplikasi
  • Penghapusan overhead reinisialisasi, overhead yang biasanya terjadi karena reinisialisasi framework laravel pada setiap request dapat dihilangkan, mengurangi beban CPU dan mempercepat waktu eksekusi
  • Konfigurasi yang mudah, octane dirancang untuk itegrasi yang dengan aplikasi Laravel, dengan konfigurasi yang mudah melalui file konfigurasi config / octane.php

Kinerja aplikasi adalah salah satu faktor penting yang dapat mempengaruhi banyak aspek teknis. Dengan memperhatikan optimasi kinerja, pegembang dapat memastikan aplikasi tidak hanya cepat dan responsif, tetapi juga efisien, stabil dan mampu memenuhi ekspektasi pengguna dalam berbagai kondisi. Menggunakan Laravel Octane untuk aplikasi adalah langkah yang tepat untuk meningkatkan kinerja aplikasi yang optimal

 

Referensi : Laravel octane

 

Penggunaan CRUD Generator pada Laravel

Hallo kreatif readers..
Deadline yang singkat merupakan tantangan yang besar bagi para penyedia jasa pembuatan aplikasi sehingga banyak masalah yang dapat timbul, dimulai dari aplikasi yang tidak dapat selesai sempurna dan keterlambatan selesainya project. Untuk mengatasi masalah tersebut, kita perlu tahu mengenai Laravel package untuk mendesain dan generate aplikasi siap pakai.

Salah satu package itu adalah CRUD generator menggunakan Laravel yang dapat memudahkan programmer dalam membuat operasi CRUD secara otomatis. Berikut ini beberapa manfaat menggunakan CRUD generator:

  1. Waktu pengembangan yang lebih singkat, membutuhkan waktu kurang lebih 1-2 menit untuk membuat CRUD apps.
  2. Coding yang dihasilkan konsisten dan terstruktur, sehingga memudahkan pada saat pemeliharaan dan kolaborasi tim pengembang.
  3. CRUD generator biasanya sudah diuji dan dioptimalkan, sehingga mengurangi kemungkinan adanya bug atau kesalahan.

Beberapa contoh alat CRUD generator:
– Laravel Artisan untuk PHP Laravel.
– Rails Scaffold untuk Ruby on Rails.
– Django Admin untuk Python Django.

Langkah-langkah penggunaan CRUD generator di Laravel
generator-builder

  1. Pertama, pastikan Laravel sudah terinstal. Selanjutnya install paket CRUD generator, seperti InfyOm Laravel Generator.
    composer create-project --prefer-dist laravel/laravel myapp
    cd myapp
    composer require infyomlabs/laravel-generator
    composer require laravel/ui
    php artisan ui vue --auth
  2. Publikasikan file vendor untuk konfigurasi CRUD generator.
    php artisan vendor:publish --provider="InfyOm\Generator\InfyOmGeneratorServiceProvider"
    php artisan vendor:publish --provider="InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider"
  3. Pastikan konfigurasi database di .env sudah sesuai dengan database yang akan digunakan.
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=my_database
    DB_USERNAME=root
    DB_PASSWORD=
  4. Membuat CRUD dengan Generator. Misalnya: membuat CRUD untuk Post. Buat model dan migrasi menggunakan generator.

    php artisan infyom:scaffold Post --fromTable --tableName=posts
    
  5. Jalankan migrasi untuk membuat tabel posts di database.
    php artisan migrate
    
  6. Selanjutnya generator akan membuat semua file yang diperlukan (model, controller, views, dan route). Kemudian programmer dapat mengakses fitur CRUD di browser dengan menuju URL yang sesuai, misalnya:
    http://localhost:8000/posts
  7. Kemudian sesuaikan dan tambahkan logika spesifik sesuai kebutuhan aplikasi. Ini bisa mencakup validasi tambahan, otentikasi, otorisasi, atau fitur lain yang diperlukan.
  8. Lakukan pengujian semua operasi CRUD untuk memastikan bahwa semua fungsi bekerja dengan baik dan tidak ada bug.

Kesimpulan
Penggunaan CRUD generator sangat bermanfaat dalam pengembangan aplikasi berbasis basis data. Tidak hanya meningkatkan produktivitas dan efisiensi tim pengembang, tetapi juga memastikan kualitas kode yang lebih konsisten dan terstruktur. Dengan otomatisasi pembuatan kode dasar, pengembang dapat lebih fokus pada pengembangan fitur-fitur yang lebih kompleks pada aplikasi.

Referensi:
[1] Suryo Atmojo, Ruli Utami, Suzana Dewi, Nurwahyudi Widhiyanta, Nur Ali Sholikin, “Pengembangan Generator Aplikasi Web CRUD Builder Menggunakan Laravel”, Teknik Informatika, Universitas Wijaya Putra.
[2] CRUDGenerator-backpackforlaravel

Penerapan SEO (Search Engine Optimization) pada Website Menggunakan Laravel

Hallo kreatif readers..
Dalam era digital saat ini, penting bagi pemilik situs web untuk memastikan bahwa situs mereka mudah ditemukan oleh mesin pencari seperti Google. Salah satu cara terbaik untuk mencapai ini adalah dengan menerapkan praktik SEO (Search Engine Optimization) yang efektif. Dalam blog ini akan dibahas bagaimana meningkatkan SEO situs web dengan menggunakan framework Laravel, yang merupakan salah satu framework PHP yang paling populer.

Apa sih SEO (Search Engine Optimization)? 
SEO (Search Engine Optimization) adalah salah satu teknik untuk optimalisasi mesin pencarian seperti Google menemukan website yang sudah dibuat berada pada peringkat teratas atau halaman pertama. Tujuan utamanya adalah membuat situs web lebih mudah ditemukan oleh pengguna yang mencari informasi dengan relevan.
1

  1. SEO dikategorikan menjadi tiga komponen utama:
    SEO pada halaman, yang dilakukan dalam halaman dan konten situs web (misal: optimalisasi judul halaman, gambar, deskripsi meta, tag header, kualitas konten, dan penempatan kata kunci)
  2. SEO di luar halaman, yang dilakukan di luar situs web untuk meningkatkan otoritas, reputasi, dan peringkatnya (misal: pembuatan tautan, media sosial, penyebutan merk, dan kutipan lokal)
  3. SEO teknis, yang dilakukan untuk memastikan mesin pencari seperti Google dapat menelusuri, mengindeks, dan preview situs web secara efisien (misal: struktur situs web, URL, kecepatan situs, dan keramahan seluler)

Laravel, sebagai framework PHP yang populer, menyediakan banyak fitur yang mendukung praktik SEO. Beberapa cara untuk meningkatkan SEO dalam proyek Laravel yaitu:

  1. Optimasi URL
    Salah satu langkah pertama yang dapat dilakukan adalah dengan memastikan URL situs web mudah dibaca dan mengandung kata kunci yang relevan. Dalam Laravel dapat menggunakan routing yang bersih dan deskriptif untuk mencapainya. Pastikan untuk menggunakan kata kunci dalam URL, tetapi hindari over-optimasi.
    Contoh: Daripada menggunakan domain.com/page?id=123, lebaih baik gunakan domain.com/product-name
  2. Penggunaan Metadata
    Metadata seperti meta deskripsi, judul, dan tag lainnya sangat penting untuk SEO. Pada framework Laravel ini, dapat ditambahkan metadata ke halaman-halaman dengan menggunakan template blade. Pastikan untuk membuat deskripsi meta yang menarik dan relevan untuk setiap halaman.
    Contoh: <title>Akhdani Reka Solusi</title>
  3. Pemilihan Kata Kunci
    Identifikasi kata kunci yang relevan dan pastikan untuk menggunakannya dalam konten situs web yang dibuat, termasuk judul halaman, gambar, dan deskripsi meta. Gunakan alat-alat seperti Google Keyword Planner untuk menemukan kata kunci yang paling relevan.
    Contoh: gunakan kata kunci “software house company” dalam deskripsi website.
  4. Pengoptimalan Kecepatan
    Kecepatan situs web adalah faktor penting dalam peringkat SEO. Pastikan situs Laravel memuat dengan cepat untuk mengoptimalkan gambar, mengurangi pemanggilan server, dan menggunakan teknik caching.
    Contoh: gunakan Laravel Mix untuk mengkompilasi asset dan cache hasil permintaan.
    Contoh: Mendapatkan backlink dari situs fashion terkemuka dengan anchor textsoftware house“.
  5. Optimalkan Penggunaan Teknologi
    Pastikan penggunaan teknologi di dalam Laravel tidak menghambat pengindeksan oleh mesin pencari.
    Contoh: gunakan JavaScript dengan bijak dan pastikan konten dapat diakses oleh crawler.
  6. Pemeliharaan dan Pembaruan Konten
    Perbarui konten secara teratur untuk tetap relevan dan tambahkan konten baru untuk meningkatkan otoritas situs.
    Contoh: Tulis ulasan website, tambahkan artikel blog tentang tren mode terbaru

Kesimpulan
Dengan menerapkan SEO pada website, dapat meningkatkan visibilitas situs web Laravel dalam hasil pencarian Google. Namun SEO adalah proses yang berkelanjutan, jadi pastikan untuk terus memantau dan memperbarui strategi sesuai kebutuhan. Dengan melakukan ini, website akan mencapai peringkat yang lebih tinggi dalam hasil pencarian dan lebih banyak yang menelusuri situs website anda.

Referensi:
[1] Halilintar, R. B., & Ariyus, D. (2018). Implementasi SEO ( Search Engine Optimization ) Pada Website Agc ( Auto Generated Content ) Untuk Meningkatkan Serp ( Search Engine Result Page ) Studi Kasus : Website Gallery (pp. 13–18).
[2] Riyanto, A. (2018). Analisis Dan Penerapan Search Engine Optimization Pada Website Menggunakan Metode White Hat Seo. Jurnal Teknologi Informasi,1.

Implementasi Role Based Access Control

Hallo, Kreatif Readers! Artikel ini akan membahas mengenai Role Based Access Control, mulai dari pengertian, konsep dan komponen.

Role Based Access Control adalah control akses yang merupakan perpaduan mandatory access control (MAC) dan Discretionary Access Control (DAC). RBAC mengacu pada role based security yang bersifat netral dan merupakan teknologi kontrol akses yang fleksibel untuk simulasi DAC dan MAC. RBAC sebenarnya adalah bentuk MAC, tetapi tidak didasarkan pada persyaratan keamanan yang bertingkat.

Kebijakan akses yang dilakukan oleh MAC berdasarkan pada ketentuan yang ditentukan oleh otoritas pusat bukan dilakukan oleh pemilik individu objek tersebut dan pemilik tidak dapat mengubah hak akses yang telah dibuat. MAC memperlakukan kontrol akses berdasarkan keamanan informasi yang melekat pada pengguna dan objek.

RBAC memberikan hak akses untuk roles bukan menerapkan hak akses pelaku atau subjek pengguna tidak bisa mengambil hak akses pengguna lain merupakan dasar perbedaan antara RBAC dan DAC. Roles dibuat untuk fungsi kerja yang berbeda sesuai dengan peran keanggotaan yang didasarkan pada kompetensi tugas dan kewenangan. Tugas keamanan RRBAC diberikan pada kontrol akses prioritas tertinggi untuk mengontrol akses ke aplikasi. Administrator sangat berperan dalam memberikan hak kepada pengguna, sehingga subjek hak kepada pengguna akan mendapatkan akses ke objek melalui role yang telah diberikan oleh administrator.

flow-halaman-6-drawio-1

 

Konsep Role Based Access Control

Role bases acces control adalah pendekatan pengendalian akses yang mengutamakan penggunaan peran atau role sebagai dasar untuk pemberian izin, yang menyederhanakan proses administrasi secara signifikan. Dalam RBAC terdapat tiga prinsip utama yang umum digunakan, yaitu:

1. User role assigment

Prinsip ini menentukan izin atau hak akses pengguna berdasarkan peran atau tugas yang mereka miliki dalam organisasi atau sistem. Ketika seorang pengguna mengalami perubahan posisi atau jika mereka tidak lagi terkait dengan organisasi, administrator dapat dengan mudah mengubah peran mereka dan izin secara otomatis diperbarui. RBAC memungkinkan pengguna untuk ditugaskan dalam beberapa peran sekaligus yang memberikan fleksibilitas dalam manajemen akses.

2. User role authorization

Prinsip ini memastikan bahwa seorang pengguna disetujui untuk mendapatkan suatu peran dan melakukan fungsi terkait. Artinya, tidak semua pengguna memiliki akses ke semua peran.

3. User role permission and access rights

Prinsip ini mendefinisikan dengan jelas apa yang dapat dan tidak dapat dilakukan oleh seorang pengguna berdasarkan peran mereka. Izin ini mencakup aspek – aspek seperti:

  • Akses, prinsip ini menentukan pengguna mana yang dapat membuka item tertentu seperti file atau database. Selain itu, perlu dipertimbangkan juga siapa yang harus mengetahui keberadaan aset tertentu dan batasan – batasan yang diterapkan terkait visibilitas.
  • Modifikasi, prinsip ini mengatur pengguna yang dapat melakukan perubahan item – item tertentu. Selain itu, dijelaskan pula persetujuan apa yang diperlukan untuk melakukan perubahan.
  • Berbagi, prinsip ini mengidentifikasi pengguna yang dapat mengunduh dokumen dan pengguna yang dapat berbagi dokumen dengan pengguna lainnya.

Dalam RBAC, penting diingat bahwa izin mengikuti peran, bukan sebaliknya. Artinya, terlebih dahulu tentukan apa yang setiap peran harus lakukan dan kemudian terapkan izin sesuai dengan peran tersebut.

Komponen – komponen role based access control

Role based access control adalah suatu sistem pengendalian akses yang komplek dan untuk memahami bagaimana RBAC berfungsi, penting untuk memahami komponen – komponennya yang penting. Berikut adalah lima komponen utama dari RBAC:

1. Routing

Routing dalam RBAC menentukan bagaiaman permintaan akses dari pengguna dialihkan ke sistem yang tepat. Ini adalah langkah awal yang penting dalam proses pengendalian akses. Routing yang efisien memastikan bahwa permintaan akses sampai ke tempat yang benar dengan cepat dan aman.

2. Permission

Permission mengacu pada hak akses yang diberikan kepada setiap peran dalam sistem. Izin ini secara spesifik menentukan tindakan apa yang dapat dilakukan oleh pemegang peran.

3. Role

Role adalah entitas atau fungsi yang diberikan kepada pengguna atau entitas dalam RBAC. Setiap peran memiliki seperangkat izin atau hak akses yang ditentukan.

4. Access Assignment

Access assignment adalah proses pemberian peran kepada pengguna atau entitas dalam sistem. Penugasan akses ini harus dilakukan dengan cermat sesuai dengan tugas dan tanggung jawab individu atau entitas tersebut.

5. Rules

Rules dalam RBAC adalah panduan yang mengatur bagaimana izin – izin diberikan dan dikelola. Aturan – aturan ini dapat bervariasi tergantung pada kebijakan keamanan sistem.

 

Referensi: Rubiyanto, Selo, Widyaman, 2017. Seminar Nasional Sains dan Teknologi

Pengujian Aplikasi Menggunakan Metode Load Testing

Haloo kreatif reader.. kali ini aku mau bahas pengujian aplikasi menggunakan metode load testing

Pengujian adalah suatu proses pelaksanaan suatu program dengan tujuan menemukan suatu kesalahan. Suatu kasus test yang baik adalah apabila test tersebut mempunyai kemungkinan menemukan sebuah kesalahan yang tidak terungkap. Suatu test yang sukses adalah apabila test tersebut menemukan suatu kesalahan yang awalnya tidak ditemukan. Tujuan utama dari pengujian adalah untuk mendesain test yang secara sistematik menemukan jenis kesalahan dengan usaha dan waktu yang minumum.

Load testing adalah teknik performance testing yang mana respon sistem diukur dalam berbagai load condition. Pengujian menggunakan metode black box testing sebagai test case sampling. Balck box testing adalah pengujian fungsional software tanpa mengetahui struktur internal program.

whatsapp-image-2024-03-25-at-08-37-35

 

Load testing diperlukan untuk membuat simulasi akses aplikasi web / service secara simultan. Cara ini lebih baik di bandingkan dengan harus mengundang sekian belas atau puluh orang sekaligus untuk mengakses sebuah website.

Langkah – langkah pengujian softwre ada 4 yaitu:

1. Unit testing – testing per unit yaitu mencoba alur spesifik pada struktur modul kontrol untuk memastikan pelengkapan secara penuhu dan pendeteksian erroe secara maksimum.

2. Integration testing – testing per penggabungan unit yaitu pengalaman dari isu – isu yang diasosiasikan dengan masalah pada ganda pada verifikasi dan kontruksi progam

3. High-order-test yaitu terjadi ketika software telah selesai diintegrasikan atau dibangun menjadi satu  tidak terpisah – pisah

4. Validation test yaitu menyediakan jaminan akhir bahwa software memenuhi semua kebutuhan fungsional kepribadian dan perfoma.

Langkah – langkah pengujian dengan Load Testing

1. Perencanaan Load Testing

Tahap perencanaan adalah tahapan penting dalam melakukan load testing. Pada tahap ini, perlu menentukan tujuan pengujian dan skenario beban serta perlu menyiapkan infrastruktur dan alat yang dibutuhkan untuk melakukan testing.

2. Persiapan Load Test

Setelah tahap perencanaan, tahap selanjutnya adalah persiapan untuk load test. Pada tahap ini, perlu menyiapkan data dan skrip uji beban serta mengatur pengaturan seoerti cache browser dan cookie.

3. Pelaksanaan Load Test

Pada tahap pelaksanaan, dapat menjalankan skrip uji beban dan mengumpulkan data kinerja aplikasi. Perlu memonitor dan menganalisis hasil uji beban serta mencatatat semua masalah yang ditemukan selama pengujian.

4. Analisis dan Optimasi

Setelah uji beban selesai, perlu menganalisis data yang dihasilkan. Analisis ini akan memberikan pemahaman yang lebih baik tentang performa aplikasi dan bagaimana masalah dapat diperbaiki.

Referensi: Desi Intan Permatasasi, (2020). Jurnal Sistem dan Teknologi Informasi

Pengembangan Aplikasi Menggunakan Web Service & Framework Laravel

Hallo kreatif readers..
Di era pengembangan aplikasi sekarang, web services menjadi sangat populer karena kemampuannya dalam mengintegrasikan aplikasi-aplikasi yang berbeda platform menggunakan internet. Sehingga harus dipastikan informasi yang dialirkan dalam keadaan aman.

Nah, kali ini akan dibahas mengenai pengembangan aplikasi menggunakan web service & framework laravel..
Kenapa sih menggunakan web service? 
Karena web services memiliki web protokol (HTTP) yang mampu mengintegrasikan aplikasi yang berbeda platform dengan lebih sederhana. Web services juga memiliki interface berupa web API (Application Programming Interface) untuk mengakses aplikasi yang mengimplementasikan layanan web services.
Kenapa menggunakan framework laravel?
Laravel merupakan developments tool framework yang cocok karena Laravel memiliki waktu eksekusi yang sedikit sehingga website memiliki proses loading yang cepat.

Berikut ini adalah beberapa jenis web service yang umum digunakan, terutama yang dapat mendukung integrasi dan komunikasi antar aplikasi.
web-service

  1. SOAP (Simple Object Access Protocol)
    SOAP adalah protokol komunikasi yang menggunakan XML untuk pertukaran informasi antara sistem yang berbeda. Biasanya digunakan dalam lingkungan perusahaan dan aplikasi yang membutuhkan keamanan dan keandalan tinggi. SOAP juga mendukung metode panggilan jarak jauh (remote procedure call) dengan menggunakan WSDL (Web Services Description Language) untuk mendefinisikan struktur pesan.
    Contohnya:
    a. Aplikasi Enterprise Resource Planning (ERP)
    b. Sistem Manajemen Pelanggan (CRM)
  2. REST (Representational State Transfer)
    REST merupakan gaya arsitektur untuk sistem terdistribusi yang menggunakan HTTP seperti (GET, POST, PUT, DELETE) untuk mengakses, memanipulasi data, serta komunikasi antara klien dan server. REST biasanya digunakan dalam aplikasi web modern dan layanan yang dapat diskalakan karena lebih ringan dan sederhana dibandingkan SOAP.
    Contohnya:
    a. Aplikasi E-Commerce (melacak pesanan, transaksi, dll)
    b. Aplikasi M-Banking (transfer, cek saldo, dll)
    c. Aplikasi Pemesanan Tiket (Booking.com atau Expedia)
  3. JSON-RPC
    JSON-RPC adalah format pertukaran data/informasi yang ringan, mudah dibaca dan ditulis, serta mudah diterjemahkan dan dibuat (generate). JSON (JavaScript Object Notation) menggunakan format yang merupakan bagian dari Bahasa Pemrograman JavaScript untuk pertukaran informasi antara klien dan server. JSON-RPC serupa dengan SOAP, tetapi lebih mudah diimplementasikan dan lebih efisien dalam penggunaan sumber daya karena menggunakan format JSON yang lebih ringan.
    Contohnya:
    a. Aplikasi Keuangan (platform perdagangan mata uang kripto)
    b. Aplikasi Permainan (untuk menangani aksi pemain secara dinamis)
  4. WebSocket
    WebSocket merupakan protokol komunikasi dua arah yang memungkinkan komunikasi real-time antara klien dan server. Biasanya digunakan untuk aplikasi yang memerlukan komunikasi real-time seperti permainan online, obrolan, atau pembaruan data real-time.
    Contohnya:
    a. Aplikasi Sosial Media (Twitter, Facebook)
    b. Aplikasi Chat Real-Time (Slack, Discord)

Kesimpulan
Web service dapat mempermudah dalam proses integrasi data/informasi yang dapat dilakukan secara terpusat. Selain itu, penggunaan framework Laravel juga bermanfaat karena membuat sistem memiliki peforma yang cepat dalam memproses data serta ringan untuk dijalankan.

Referensi:
[1] Manes, Anne T. (2003). Web Services: A Manager Guide. Pearson Education, Inc: Boston USA.
[2] Ramos Somya, Tan Michelle Esmeralda Nathanael. (2019). Pengembangan Sistem Informasi Pelatihan Berbasis Web Menggunakan Teknologi Web Service dan Framework Laravel. Jurnal TECHNO Nusa Mandiri Vol. 16.
[3] Das, R., dan Saikia, L. P. (2016). NComparison of Procedural PHP with Codeigniter and Laravel Frameworko Title. International Journal of Current Trends in Engineering & Research (IJCTER), 2(6), 42–48.

Mengenal Laravel Spatie untuk Pengaturan Role dan Permission

Haloo kreatif reader.. kali ini aku mau bahas tentang laravel spatie untuk pengaturan role dan permission.

Sebelum masuk ke pembahasan laravel spatie, kita pahami dulu apa perbedaan antara role dan permission. Role digunakan untuk menentukan izin tindakan apa yang dapat dilakukan oleh pengguna atas role tersebut. Misalnya, dalam platform blog, role dapat mencakup “admin”, “penulis”, dan “pelanggan”, dengan beberapa permission seperti “buat postingan”, “edit postingan”, atau “kelola pengguna”.

Pembuatan role dan permission pada proses pembangunan aplikasi web merupakan hal yang penting, untuk itu dalam pembuatan aplikasi laravel sudah terdapat package untuk mengelola role dan permission yaitu dengan menggunakan laravel spatie. Dengan Spatie Permissions ini, kita dapat menentukan izin akses pengguna untuk setiap tindakan pada aplikasi secara dinamis.

Fitur utama dari Laravel Spatie permission adalah sebagai berikut:

1. Manajemen Peran
Dengan menggunakan package ini akan mempermudah pengelolaan role seperti membuat, mengedit, dan menghapus role. Selain itu peran yang dibuat bisa di kustom sesuai kebutuhan aplikasi.

2. Manajemen Izin
Dalam laravel spatie permission, dapat mendefinisikan berbagai izin yang dapat diberikan kepada setiap peran. Misalnya izin untuk “Membuat”, “Mengedit”, atau “Menghapus” suatu data dalam apliaksi yang dibuat.

3. Penugasan Peran
Penugasan banyaknya peran dan tingkatan akses pengguna berdasarkan peran dapat diatur dengan dengan mudah dan cepat.

4. Pemeriksaan Izin
Laravel spatie menyediakan metode untuk memeriksa izin yang dimiliki oleh pengguna saat aplikasi berjalan, selain itu dapat ditentukan juga apakah pengguna tersebut memiliki izin untuk melakukan aksi tertentu dalam aplikasi.

5. Pengelompokkan Izin
Pada package ini memungkinkan untuk membuat pengelompokan izin ke dalam beberapa kategori tertentu sehingga izin yang ada lebih terstruktur.

Selain fitur-fitur utama diatas, salah satu keunggulan laravel spatie adalah penerapannya yang mudah dan cepat. Laravel Spatie juga merupakan salah satu package yang cukup populer, sehingga banyak referensi dokumentasi untuk menggunakan package tersebut.


Referensi:
Hisyam Al Qossam, Abbad. Membangun Website Reservasi Restoran dengan Laravel dan Reactsjs. 2023. fliphtml5.com
Angga, Buildwith. (2023, July 27). 5 Package Laravel Terbaik Untuk Web Developer. BuildWithAngga

Exploring Laravel Dusk: End-to-End Testing

Halo, Sobat Kreatif! Pada artikel ini, akan membahas pengenalan Laravel Dusk. Laravel Dusk merupakan salah satu tools untuk melakukan automation testing pada web browser. Fitur ini diinisiasi pada Laravel versi 5.4. dengan memanfaatkan otomasi menggunakan ChromeDriver dan Facebook Php-webdriver, sehingga tidak lagi memerlukan instalasi JDK atau Selenium.

Laravel Dusk melakukan testing dengan memanfaatkan selektor pada elemen JavaScript ataupun CSS seperti name, class, dan id.

Untuk selektor berdasarkan nama (name) bisa langsung menuliskannya dalam action. Seperti selektor elemen input dengan name email, maka dapat ditulis

…->type(‘email’, $user->email)

Sementara untuk selektor type class dan id, penulisannya seperti pada CSS atau JavaScript, yaitu dengan menggunakan prefix titik ( . ) untuk class dan prefix tanda hash ( # ) untuk id.

Untuk dokumentasi pada saat melakukan testing, Laravel Dusk menyediakan fitur screenshot, dimana setiap test case yang di running kemudian terdeteksi failed atau gagal dieksekusi, maka akan otomatis mengambil screenshot hasil testing dan menyimpannya dalam direktori screenshottests/Browser/screenshots.

Tahapan yang harus dilakukan untuk melakukan installasi Laravel Dusk adalah sebagai berikut:

1. Lakukan installasi Google Chrome dan tambahkan dependency Composer pada project dengan syntax berikut

composer require laravel/dusk --dev

2. Install konfigurasi Laravel Dusk

php artisan dusk:install

3. Lakukan konfigurasi browser driver dengan menjalankan perintah berikut

php artisan dusk:chrome-driver --all

4. Generate script dasar test case

php artisan dusk:make NamaTest

5. Modifikasi script test case dengan skenario yang diinginkan.

6. Running test case yang telah dibuat

//Running semua test case
php artisan dusk

//Running test case yang gagal
php artisan dusk:fails

//Running test case secara spesifik
php artisan dusk -‐filter LoginTest

7. Hasil test akan muncul pada log dengan menunjukkan keterangan berhasil ataupun gagal.


Reference: Laravel Dusk - Laravel 10.x - The PHP Framework For Web Artisans

Laravel Eloquent ORM

Hallo kreatif readers..
Di era pengembangan aplikasi sekarang banyak yang menggunakan Laravel. Dengan kerangka kerja Laravel, anda memiliki akses ke Eloquent ORM yang merupakan salah satu fitur penting untuk mengatasi berbagai tantangan.

Apa sih Eloquent ORM?
Eloquent ORM adalah sistem ORM (Object-Relational Mapping) yang terdapat di dalam framework PHP Laravel, yang memungkinkan pengembang untuk berinteraksi dengan basis data menggunakan objek dan kelas daripada menulis query SQL secara langsung. Eloquent menyediakan antarmuka yang ekspresif dan intuitif untuk mengelola data dalam basis data menggunakan model PHP.

Beberapa fitur utama dari Eloquent ORM

  • Model: Eloquent dapat merepresentasikan tabel dalam basis data. Pengembang dapat menentukan relasi antara model, seperti one-to-one, one-to-many, dan many-to-many.
  • Query Builder: untuk membangun query basis data dengan sintaks yang ekspresif dan mudah dipahami. Ini memungkinkan pengembang untuk menulis query kompleks tanpa perlu menulis SQL mentah.
  • Eloquent Collections: Hasil query dikembalikan dalam bentuk koleksi yang merupakan objek terstruktur yang dapat diiterasi dan dimanipulasi dengan mudah.
  • Soft Deletes: memungkinkan penghapusan data dengan menandai data yang dihapus daripada menghapusnya secara permanen dari basis data.
  • Event System: memungkinkan pengembang untuk menetapkan tindakan sebelum atau sesudah operasi dasar pada model, seperti menyimpan, menghapus, atau memperbarui.

Penggunaan Eloquent ORM di Laravel
laravel-eloquent-2-1

  1. Pastikan sudah menginstal Laravel dan mengonfigurasi proyek. Jika belum melakukannya, Anda dapat mengikuti panduan instalasi resmi Laravel di (https://laravel.com/docs/10.x/installation).
  2. Lakukan pembuatan model yang akan mewakili tabel dalam basis data. Anda juga perlu membuat migrasi untuk tabel tersebut. Berikut cara melakukannya:
    #Membuat Model
    php artisan make:model Article
    
    #Membuat Migrasi
    php artisan make:migration create_articles_table

    Selanjutnya dapat mengedit file migrasi yang baru dibuat dan menentukan skema tabel. Kemudian jalankan migrasi untuk membuat tabel:

    php artisan make:model Article

Salah satu kekuatan terbesar Laravel Eloquent adalah kemampuannya untuk menangani relasi antar tabel, berikut ini merupakan jenis relasi yang dapat di definisikan dalam model Eloquent:

  • Relasi BelongsTo
    Misalnya, jika setiap artikel “memiliki” satu penulis:
class Article extends Model {
 public function author() {
  return $this->belongsTo(User::class, 'user_id');
 }
}
  • Relasi HasOne
    Misalnya, jika anda ingin menetapkan bahwa setiap pengguna “memiliki” satu profil:
class User extends Model {
 public function profile() {
  return $this->hasOne(Profile::class);
 }
}
  • Relasi HasMany
    Misalnya, hubungan antara pengguna dan komentar. Setiap pengguna dapat memiliki banyak komentar:
class User extends Model {
 public function comments() {
  return $this->hasMany(Comment::class);
 }
}
  • Relasi BelongsToMany
    Misalnya, pengguna dan peran. Diman, setiap pengguna nantinya bisa mempunyai banyak peran dan setiap peran dapat dimiliki oleh banyak pengguna:
class User extends Model {
 public function roles() {
  return $this->belongsToMany(Role::class);
 }
}

Kesimpulan
Eloquent sangat membantu dalam pengelolaan basis data dengan mudah dan efisien. Dengan memahami konsep dasar, relasi, pengoptimalan query, dan fitur-fitur terbaru dalam Laravel. Anda akan menjadi pengembang yang lebih produktif dan terampil dalam mengelola data untuk proyek PHP Laravel.

Referensi
[1] Febryan Akhdani dan Danur Wijayanto, 2022, Comparison of Eloquent ORM with Query Builder in Work Management System, Faculty of Science and Technology, Universitas Aisyiyah Yogyakarta Indonesia.
[2] M. Mahdi Maulana Lubis, Tommy, Divi Handoko, Nur Wulan, 2023, Analisis Implementasi Laravel 9 pada Website E-Book Dalam Mengatasi N+1 Problem serta Penyerangan Csrf dan Xss, Prodi Teknik Informatika Universitas Harapan Medan.
[3] Laravel Eloquent ORM