API Authentication using Laravel Sanctum

Hallo, Kreatif Readers! Laravel Sanctum adalah salah satu package autentikasi dari Laravel yang dirancang khusus untuk menyediakan layanan autentikasi dan otorisasi untuk aplikasi berbasis RESTful API. Laravel Sanctum menggunakan token yang memperbolehkan 1 user memiliki beberapa token dengan batasan/scope yang berbeda-beda. Hal tersebut dapat digambarkan seperti ilustrasi berikut

ilustrasi-proses-kerja-sanctum

Fitur utama dari Laravel Sanctum adalah sebagai berikut:

1. API Token Authentication

Sanctum memungkinkan aplikasi untuk generate token API yang nantinya digunakan untuk mengakses API yang dilindungi. Setiap token dapat memiliki scope yang berbeda, tergantung pengaturan batasan API yang telah ditentukan

2. SPA Authentication

Sanctum juga mendukung autentikasi untuk SPA. Dengan menggunakan Laravel sebagai backend dan framework JavaScript modern seperti Vue.js atau React di frontend, Sanctum dapat mengelola otentikasi pengguna melalui cookie-based session.

3. Mobile Application Authentication

Selain untuk SPA, Sanctum juga dapat digunakan untuk autentikasi aplikasi mobile, memberikan fleksibilitas lebih dalam mengelola akses pengguna di berbagai platform.

Penggunaan Laravel Sanctum

1. Installasi dan konfigurasi

Install menggunakan composer

composer require laravel/sanctum

Publish konfigurasi sanctum

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Migrasi tabel yang dibutuhkan sanctum

php artisan migrate

2. Penggunaan API Token

Panggil method createToken pada model User:

$token = $user->createToken('token-name')->plainTextToken;

Token ini kemudian bisa digunakan untuk autentikasi request API dengan menyertakannya pada header Authorization:

Authorization: Bearer <token>

3. Autentikasi SPA

Untuk SPA, Sanctum menggunakan session-based authentication. Pertama, konfigurasikan middleware pada file api.php:

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
 return $request->user();
});

Studi Kasus penggunaan Laravel Sanctum

Beberapa perusahaan dan startup menggunakan Laravel Sanctum untuk menangani autentikasi API karena kemudahan dan keamanannya. Bentuk penggunaannya adalah penerpana autentikasi pada proses jual beli, dimana data yang diproses merupakan data konfidental seperti nomor telepon, nomor rekening, alamat, dll.

Reference:
[1] Tampilan IMPLEMENTASI WEB SERVICE DENGAN METODE RESTFUL PADA SISTEM PENJUALAN BARANG DI PT. WELLCOMM GROUP (budiluhur.ac.id)

[2] Laravel Sanctum - Laravel 11.x - The PHP Framework For Web Artisans

Penggunaan Laravel dalam mencegah serangan XSS (cross-site scripting)

Hallo, Kreatif Readers! Saat ini, banyak situs yang memanfaatkan konten client-server (sebagian besar ditulis dalam JavaScript) untuk menambah user experience. Sebaliknya, tren ini juga telah memperluas keberadaan dan frekuensi serangan cross-site scripting (XSS).

XSS sendiri merupakan serangan injeksi kode pada sisi klien dengan menggunakan sarana halaman website atau web aplikasi. Peretas akan mengeksekusi script berbahaya di browser dengan cara memasukkan kode berbahaya ke halaman web atau web aplikasi yang sah. Serangan ini dapat dilakukan menggunakan JavaScript, VBScript, ActiveX, Flash, dan bahasa sisi klien lainnya.

Kerentanan ini memungkinkan pencurian terhadap identitas pengguna, melewati batasan sistem, serangan malware, dll. Reflected XSS dieksekusi melalui browser dan terjadi jika website menyediakan tempat bagi pengguna untuk melakukan inputan.

Pada dasarnya terdapat tiga jenis serangan XSS yaitu:

  1. Stored XSS(Persistent XSS) merupakan jenis XSS yang paling merusak. Dalam stored XSS, script jahat yang disuntikkan akan disimpan secara permanen di server target, seperti database, forum pesan, visitor log, dan lain-lain.
  2. Reflected XSS(Non-persistent XSS) terjadi ketika skrip berbahaya dipantulkan dari web aplikasi ke browser korban.
  3. DOM-based XSS, serangan ini terjadi jika webaplikasi menulis data ke Document Object Model(DOM) tanpa sanitization yang tepat. Penyerang dapat memanipulasi data ini untuk memasukkan kontenXSS pada halaman webseperti kode Javascript yang berbahaya.

Berikut adalah data flow XSS Attack:

xss

Berdasarkan gambar diatas dapat diketahui serangan XSS dilakukan dengan memasukan script ke dalam inputan yang akan diolah oleh website untuk disimpan ke dalam database yang akan ditampilkan pada website yang diakses oleh user.

Laravel sendiri telah dilengkapi fitur-fitur yang dapat mencegah terjadinya serangan XSS, diantaranya adalah:

Escape Output dengan Blade Templating

Blade secara otomatis akan melakukan escape karakter khusus HTML pada data yang ditampilkan dengan menggunakan sintaks Blade {{ }} atau {!! !!} saat menampilkan data dari sumber eksternal pada tampilan Blade. Contoh sintaksnya adalah:

<p>{{ $user->name }}</p>

Form Request Validation

Gunakan fitur validasi Laravel untuk memastikan bahwa input yang diterima dari pengguna telah divalidasi dengan benar sebelum digunakan dalam aplikasi. Contoh sintaksnya adalah:

public function store(Request $request)
{
 $validatedData = $request->validate([
 'name' => 'required|string|max:255',
 'email' => 'required|email',
 ]);

 save()
}

HTML Purifier

Fitur ini berfungsi sebagai filtering input HTML yang masuk dari pengguna. Contoh sintaksnya adalah:

use HTMLPurifier;

$purifier = new HTMLPurifier();
$cleanHtml = $purifier->purify($html);

Content Security Policy (CSP)

Terapkan kebijakan keamanan konten (CSP) di aplikasi untuk membatasi jenis konten yang diizinkan untuk dimuat pada halaman web Anda. Contoh sintaksnya adalah:

header("Content-Security-Policy: default-src 'self'");

Dengan menerapkan langkah-langkah di atas, developer dapat meningkatkan perlindungan terhadap serangan XSS di aplikasi Laravel. Selain itu, selalu penting untuk secara teratur memperbarui framework Laravel dan dependensinya untuk mendapatkan perlindungan keamanan terbaru.

Reference:

View of Analisis Implementasi Laravel 9 Pada Website E-Book Dalam Mengatasi N+1 Problem Serta Penyerangan Csrf dan Xss (unity-academy.sch.id)

View of ANALISIS CROSS-SITE SCRIPTING (XSS) INJECTION – REFLECTED XSS AND STORED XSS MENGGGUNAKAN FRAMEWORK OWASP 10 (pnk.ac.id)

Understanding Data Migration Proccess

Halo, Kreatif Readers! Artikel ini akan membahas mengenai serba-serbi Data Migration, mulai dari pengertian, tahapan, serta hal-hal apa saja yang harus diperhatikan dalam melakukan migrasi data.

Dalam pengembangan sebuah aplikasi, migrasi data memungkinkan terjadi karena beberapa hal, salah satunya adalah adanya upgrade teknologi sehingga diperlukan pemindahaan data dari versi lama ke versi baru.

Migrasi data sendiri dapat diartikan sebuah proses pemindahan data dari suatu sistem, platform, atau environment ke lokasi baru untuk meng-upgrade software atau hardware, atau sebagai bagian dari perubahan arsitektur aplikasi.

Salah satu contoh migrasi data adalah pemindahan data file excel ke database, agar data yang dihimpun dapat diakses melalui sebuah sistem (dapat berupa website atau aplikasi) dengan alur dan proses bisnis yang lebih terstruktur dan efisien.

Tahapan Migrasi Data

screenshot_12

Untuk melakukan migrasi data, terdapat beberapa tahapan, meliputi:

1. Data Assessment

Tahap ini melibatkan analisis data yang akan dimigrasikan, termasuk menentukan struktur, kualitas, dan volume data.

phase-1

2. Data Cleansing

Pada tahap ini, data dibersihkan dari duplikat, kesalahan, atau data yang tidak relevan. Proses pembersihan ini penting untuk memastikan bahwa data yang dipindahkan adalah data yang akurat dan konsisten.

phase-2

3. Test Extract and Load

Tahap ini dilakukan untuk menguji sample data yang akan dimigrasi untuk memastikan apakah migration plan yang dibuat dapat berjalan lancar, efektif, dan efisien.

phase-3

4. Final Extract and Load

Final extract dan load data dilakukan setelah hasil pengujian sukses. Seluruh data akan dipindahkan ke lokasi baru.

phase-4

5.  Migration Validation

Setelah data dipindahkan ke lokasi baru, tahap ini melibatkan verifikasi dan validasi data untuk memastikan bahwa data telah dipindahkan dengan benar dan tidak ada kehilangan atau kerusakan data.

Proses validasi dapat berupa penghitungan jumlah record, pengecekan tabel dan kolom pada data target, serta pengecekan setiap record untuk memastikan tidak ada format yang berubah ataupun duplikasi data.

phase-5

6. Post Migration Activity

Di akhir proses migrasi, dilakukan pendokumentasian dan pelaporan hasil migrasi. Dokumen ini dapat berisi detail perencanaan migrasi, infrastruktur yang digunakan, metode handling data, validasi data, serta report mengenai akurasi, durasi waktu yang dibutuhkan dan hasil dari migrasi yang telah dilakukan, apakah lebih baik atau sebaliknya.

phase-6

Data Migration Risk

Dalam proses migrasi data, tentunya terapat beberapa risiko yang harus diidentifikasi, diantisipasi, dan dilakukan penanganan dengan efektif, diantaranya:

1. Kualitas Data

Data yang tidak akurat, tidak lengkap, dan tidak konsisten dapat menyebabkan mis-informasi ketika diakses di lokasi baru (target migrasi). Sehingga perlu dipastikan data yang akan dimigrasi telah bersih dan konsisten.

2. Kompleksitas Extract and Load Data

Proses extract and load data yang kompleks dapat meningkatkan risiko kesalahan ataupun kegagalan migrasi, terutama jika data memiliki format atau struktur khusus yang rumit. Hal ini dapat dicegah dengan melakukan pengjian extract and load menggunakan data sampling.

3. Performa Sistem

Ketika data yang dimigrasi memiliki volume yang besar, maka hal ini dapat mempengaruhi beban kinerja target sistem. Perlu dilakukan perencanaan yang tepat terkait pemilihan waktu migrasi, penyesuaian infrastruktur, serta monitoring kinerja sistem setelah migrasi.

4. Koordinasi Proyek

Dalam proses migrasi diperlukan koordinasi yang baik untuk mencegah keterlambatan dan kesalahan. Perlu dipastikan proses migrasi telah direncanakan dengan baik, berkaitan dengan timeline, jumlah personil, hingga dari segi biaya.

Kesimpulan

Migrasi Data merupakan proses yang cukup memakan waktu dalam pengembangan sebuah sistem. Perlu adanya pemahaman, ketelitian, dan pengambilan keputusan yang tepat agar proses migrasi data dapat berjalan dengan baik. Faktor keamanan, kelengkapan, serta kebenaran sebuah data juga menjadi hal penting yang perlu diperhatikan.

Reference:
[1] Data-Migration.pdf (researchgate.net)
[2] jis_2021011814491338.pdf (scirp.org)

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

API Documentation using Scramble

screenshot_14

Halo, Kreatif Reader! Pada artikel ini, saya akan membahas mengenai salah satu tools untuk mendokumentasian API, yaitu Scramble. Sebelum kesana, mari kita pahami terlebih dahulu apa itu API serta mengapa API perlu didokumentasikan dengan baik.

API (Application Programming Interface) merupakan interface yang dibangun oleh tim pengembang untuk menyimpan function atau aturan sehingga memungkinkan adanya interaksi dan komunikasi antar aplikasi yang berbeda. Sederhananya, API dapat memudahkan developer untuk mengkonsumsi data dari sistem lain yang terintegrasi, tanpa harus menulis ulang code.

API sendiri memiliki beberapa jenis arsitektur, salah satunya adalah REST API. Pada gambar berikut ini, adalah ilustrasi cara kerja REST API sebagai jembatan antar aplikasi atau platform.rest-api-model

Seperti yang telah disebutkan sebelumnya, bahwa API berisikan function atau aturan, maka perlu dilakukan pendokumentasian yang baik, agar developer dapat dengan mudah memahami fungsi serta cara penggunaan setiap baris kodenya. Idealnya, dokumentasi API berisikan informasi detail API, termasuk fungsi, parameter, tipe pengembalian, kelas, dan lainnya, dalam urutan yang logis.

Salah satu tools yang dapat digunakan untuk dokumentasi API adalah Scramble. Mengutip dari dokumentasi resminya, Scramble merupakan generator otomatis untuk mendokumentasikan API pada Laravel. Scramble menggunakan format penulisan OpenAPI 3.1.0, dimana penyajiannya direpresentasikan menggunakan format JSON atau YAML, seperti contoh di bawah ini.

{
 "name": "John Doe",
 "email": "john.doe@example.com",
 "password": "password"
}

Dokumentasi yang dihasilkan kemudian dibungkus dengan User Interface Stoplight Elements seperti gambar berikut ini:

demo_scramble Continue reading API Documentation using Scramble

PHPUnit Testing pada Laravel

1200px-phpunit_logo-svg_-1024x413

Hallo kreatif reader, pada kesempatan kali ini aku mau sharing dari artikel yang udah aku baca..

Apa sih itu PHPUnit?
PHPUnit adalah kerangka pengujian (testing framework) untuk bahasa pemrograman PHP yang bertujuan untuk memastikan bahwa setiap bagian kecil dari program berfungsi sebagaimana mestinya. Dengan menggunakan PHPUnit, developer PHP dapat meningkatkan kualitas software dengan mengidentifikasi dan memperbaiki bug lebih awal dalam siklus pengembangan.

Adapun tahapan-tahapan yang dilakukan dalam automated testing menggunakan PHPUnit adalah sebagai berikut:

1. Instalasi software testing menggunakan PHPUnit yang terintegrasi dengan framework laravel untuk pengembangan aplikasi. Ini dapat dilakukan menggunakan Composer. Sebelumnya pastikan Composer telah diinstal, kemudian buka terminal dan eksekusi perintah berikut:

composer require --dev phpunit/phpunit ^9.6

2. Menuliskan kode pengujian pada PHPUnit dengan nama file pengujian (misalnya: MyMathTest.php) untuk menguji fitur yang telah ditentukan sesuai dengan kebutuhan output yang diharapkan. Berikut contoh kode pengujian pada PHPUnit:

// File: MyMathTest.php

use PHPUnit\Framework\TestCase;

class MyMathTest extends TestCase {
 public function testAdd() {
 $math = new MyMath();
 $result = $math->add(3, 5);
 $this->assertEquals(8, $result);
 }

 public function testSubtract() {
 $math = new MyMath();
 $result = $math->subtract(8, 3);
 $this->assertEquals(5, $result);
 }
}

3. Menjalankan PHPUnit untuk mengetahui hasil pengujian (lulus atau tidak), lakukan perintah berikut melalui terminal dari direktori proyek:

vendor/bin/phpunit MyMathTest.php

Jika memiliki banyak file pengujian, dapat menjalankan semua pengujian dengan perintah berikut:

vendor/bin/phpunit

4. Jika fitur yang diuji lulus, status hasil pengujian menjadi “passed”.
5. Jika fitur yang diuji tidak lulus, maka PHPUnit akan menampilkan pesan error.
Catatan: untuk mempermudah deteksi dan eksekusi pengujian oleh PHPUnit, sebaiknya developer memberikan nama file pengujian dengan format “nama class” dan akhiran “.php”

Berikut ini adalah beberapa fitur PHPUnit dengan keunggulannya:
1. Pengujian Unit Otomatis: Fitur ini membantu dalam mendeteksi kesalahan dan memastikan bahwa perubahan kode tidak merusak fungsionalitas yang ada.
2. Pelaporan Hasil: PHPUnit memberikan laporan hasil pengujian yang jelas dan terstruktur. Ini membantu developer untuk dengan cepat mengidentifikasi masalah dan memperbaikinya.
3. Pengujian Fungsionalitas dan Integrasi: PHPUnit juga mendukung pengujian fungsionalitas dan integrasi, untuk menguji sejauh mana berbagai komponen bekerja bersama.
4. Kemampuan Pengujian Paralel: PHPUnit mendukung pengujian paralel, yang dapat menjalankan beberapa unit pengujian secara bersamaan untuk meningkatkan efisiensi.

Sehingga dapat disimpulkan, apabila tim developer sudah menggunakan PHPUnit untuk pengujian otomatis maka dapat mengurangi error dan menghemat waktu dalam pengembangan aplikasi.

Referensi:
[1] Zhang Tao and He Lei, 2018, Design and Implementation of HTTP Interface Automation Test Framework PHPUnit, Department of Informatics, Beijing University of Technology, China, Atlantis Press.
[2] PHPUnit Testing.

PHP Framework Symfony

Hallo kreatif reader, aku mau sedikit sharing nih dari artikel yang udah aku baca..

Apa itu Web Framework?
Web framework atau yang biasa dikenal dengan web application framework merupakan sebuah software yang menyediakan struktur dan alat untuk membangun dan mengembangkan aplikasi web, web service, dan web dinamis.
Salah satu contoh web framework adalah Symfony (PHP).

logoLalu, apa sih Framework Symfony?
Symfony dibangun pada tahun 2005 sesuai dengan standar PSR yang direkomendasikan oleh standar PHP. Symfony adalah framework lengkap yang dirancang untuk mengoptimalkan kode PHP dalam pengembangan aplikasi Web berdasarkan pola Model View Controller (MVC).

Adapun beberapa fitur pada framework symfony:
1. Struktur MVC (Model-View-Controller)
Symfony mengikuti pola desain arsitektur MVC, yang membantu dalam memisahkan logika aplikasi menjadi komponen-komponen yang terpisah, termasuk Model untuk representasi data, View untuk tampilan, dan Controller untuk mengelola logika bisnis.
2. Twig Template Engine
Symfony menggunakan Twig sebagai mesin template resmi. Twig adalah mesin template yang digunakan dalam kerangka kerja Symfony untuk membangun tampilan (views) dalam aplikasi web. Twig dirancang untuk membuat proses penulisan template lebih bersih, aman, dan ekspresif.
3. Doctrine ORM
Symfony menggunakan Doctrine sebagai Object-Relational Mapping (ORM) untuk berinteraksi dengan basis data. Doctrine memudahkan pengembangan basis data dengan memetakan objek PHP ke struktur basis data.
4. Security Component
Symfony memiliki komponen keamanan yang menyediakan alat dan fitur-fitur untuk mengelola otentikasi, otorisasi, dan perlindungan terhadap ancaman keamanan.
5. Routing
Symfony menyediakan sistem routing yang kuat yang memetakan URL ke tindakan-tindakan dalam aplikasi. Ini memungkinkan untuk pengelolaan URL yang fleksibel dan pembuatan tautan antar halaman.

Beberapa contoh aplikasi yang menggunakan framework symfony:
1. Accenture
accenture 2. Trivago
trivago 3. Typeform
typeform

Kesimpulan
Symfony adalah framework lengkap yang dirancang untuk memaksimalkan pengembangan aplikasi berbasis web dengan memperkenalkan beberapa fitur yang dapat diandalkan untuk pemula.

Referensi:
[1] M. Laaziri, K. Benmoussa, S. Khoulji, K. M. Larbi, and A. El Yamami, “A comparative study of laravel and symfony PHP frameworks,” vol. 9, no. 1, pp. 704–712, 2019
[2] Website Symfony

Phalcon: Unique and Fastest PHP Framework

Halo, Kreatif Readers! Pada artikel ini, saya akan membahas salah satu Framework PHP, yaitu Phalcon. Sebelum kesana, mari kita mengenal apa itu framework.

Pada dasarnya, framework merupakan bentuk sederhana dari desain arsitektur sebuah bahasa pemrograman. Salah satu desain arsitektur yang diterapkan pada PHP Framework adalah MVC (Model, View, Controller). Tujuan dari arsitektur ini adalah untuk memisahkan antara pemodelan data dengan tampilan atau user interface website. Nantinya, kedua hal tersebut akan dihubungkan menggunakan Controller berisikan request dari user yang telah ditampung dalam sebuah function.

Phalcon sendiri merupakan salah satu framework PHP yang cukup unik. Mengutip dari situs resminya, Phalcon merupakan full-stack framework yang ditulis dalam bentuk PHP extension menggunakan bahasa C. Namun, developer tidak diharuskan memahami bahasa C untuk dapat menggunakan Phalcon, karena setiap baris codenya telah dikemas dalam PHP class untuk memudahkan implementasinya.

phalcon_framework_logo_square

Dalam penggunaanya, Phalcon telah menyediakan “starter pack” berupa installer yang berisikan struktur kode siap pakai untuk memudahkan developer memahami cara kerja Phalcon. Selain itu, telah tersedia pula eksternal code generator yang dapat meningkatkan efesiensi proses pengembangan.

Phalcon memiliki beberapa karakteristik, seperti:

  1. Semua komponen code ditulis dalam bahasa C
  2. Kompatibel dengan berbagai sistem operasi
  3. Memiliki performa tinggi dengan konsumsi penyimpanan server yang rendah
  4. Merupakan salah satu framework PHP tercepat
  5. Mendukung implementasi database menggunakan metode ORM (Object Relation Mapping)

Seperti yang dijanjikan pada situs resminya, bahwa Phalcon merupakan PHP Framework tercepat, berikut merupakan hasil studi komparasi antara Phalcon dengan beberapa framework lainnya, dengan menggunakan acuan jangka waktu eksekusi pada proses CRUD (Create, Read, Update, Delete).

screenshot_43Berdasarkan grafik tersebut, terbukti Phalcon lebih unggul dibanding PHP framework lainnya, dengan jangka waktu eksekusi sebesar 28-45 ms. Selain itu, studi juga membuktikan bahwa Phalcon merupakan salah satu framework dengan konsumsi penyimpanan server yang rendah. Dapat dilihat pada grafik perbandingan di bawah ini, terhitung Phalcon hanya mengkonsumsi sebesar 0.17 MB, jauh lebih rendah dibandingkan ketiga framework lain.

memory usage

Salah satu faktor yang mempengaruhi kecepatan dan efisiensi kinerja Phalcon adalah penggunaan bahasa C dalam penulisannya. Bahasa C merupakan compile language, dimana sistem dapat lebih mudah mengeksekusi setiap perintah yang dijalankan. Hal ini sangat berdampak pada efektifitas kinerja sistem dan efisiensi penggunaan memory. Berbeda dengan PHP yang merupakan interpreter language, dimana PHP dapat lebih mudah dimengerti penggunanya, namun diperlukan effort lebih bagi sistem untuk menerjemahkannya.

Dalam hal ini, Phalcon berhasil mengadaptasi bahasa C dan mengkombinasikannya dengan kemudahan penggunaan PHP dalam sebuah framework yang dapat dipertimbangakan dalam pengembangan sebuah website.

Referensi:
1. Phalcon.io
2. Analysis and Practical Application of PHP Frameworks in Development of Web Information Systems
3. Comparing Performance of Plain PHP and Four of Its Popular Frameworks

PHP Framework Laravel

laravel

Hallo kreatif reader, aku mau sedikit sharing nih dari buku yang udah aku baca..

Apa itu PHP framework?
PHP framework dapat membantu mempromosikan metode Rapid Application Development (RAD) atau bersifat incremental terutama untuk waktu pengerjaan yang pendek, menghemat waktu, membantu membuat aplikasi lebih stabil dan mengurangi jumlah pengkodean berulang bagi pengembang aplikasi.

Apa sih Laravel itu?
Laravel adalah PHP framework yang mengikuti pola arsitektur Model-View-Controller (MVC). Sejak diluncurkan tahun 2011, laravel banyak digunakan oleh programmer karena mudah dipahami dan dokumentasinya yang lengkap. Framework ini menyediakan beberapa jenis library dan fungsi lain yang bisa memudahkan dalam penulisan baris kode dengan tujuan memperindah website.

12-fitur-laravel-framework-php-untuk-membangun-website-2Fitur-fitur yang ada pada framework laravel adalah sebagai berikut:
1. Blade Template Engine
Laravel menggunakan blade template engine yang memungkinkan programer untuk mendesain layout yang unik, konsisten dan terstruktur selama proses pengembangan. Kelebihannya dapat menggunakan kode PHP biasa di dalam tampilan, kemudian desain tampilan akan tetap di cache sampai adanya modifikasi.
2. Routing
Laravel memiliki sistem routing yang memungkinkan programer mendefinisikan rute URL dengan mudah, menentukan rute untuk mengarahkan permintaan HTTP ke tindakan (controller) yang sesuai. Routing membantu untuk memperluas dan meningkatkan performa aplikasi web.
3. Eloquent ORM
Eloquent adalah sistem ORM (Object-Relational Mapping) yang terintegrasi dengan Laravel. Ini memungkinkan pengembang berinteraksi dengan database menggunakan model PHP, mengurangi kompleksitas dalam bekerja dengan database.
4. Middleware
Middleware dalam laravel memungkinkan pengembang untuk memodifikasi permintaan HTTP sebelum atau setelah mencapai tujuan akhir, memberikan fleksibilitas dalam memanipulasi permintaan.
5. Authentication and Authorization
Laravel menyediakan sistem autentikasi yang terintegrasi dengan kemudahan konfigurasi dan ekstensibilitas, serta fitur otorisasi yang memungkinkan pengembang mengontrol akses ke bagian-bagian tertentu dari aplikasi.
6. Artisan Command-Line Tool
Laravel dilengkapi dengan Artisan, sebuah perintah baris yang memudahkan pengembang dalam menjalankan tugas-tugas rutin seperti migrasi database, pembuatan controller, dan pengelolaan modul.
7. Migrations
Migrations dalam Laravel memungkinkan programmer mengelola struktur basis data menggunakan kode ataupun membuat dan mengubah tabel serta kolom menggunakan file migrasi. Hal ini memungkinkan tim bekerjasama dengan mudah dan menjaga konsistensi skema basis data dalam pengembangan aplikasi.
8. Testing Support
Laravel mendukung pengujian aplikasi menggunakan framework pengujian PHPUnit. Programmer dapat membuat dan menjalankan pengujian dengan mudah menggunakan alat bawaan Laravel.

Contoh laravel untuk e-commerce
working-of-mvc-1024x686-removebg-preview
Pengembang aplikasi dapat mengunakan konsep Model-View-Controller (MVC) untuk mengorganisir logika aplikasi yang diuraikan seperti berikut:
1. Model, dalam framework laravel akan mewakili entitas. Contohnya: produk dan keranjang belanja, kemudian berinteraksi dengan database untuk menyimpan dan mengambil data.
2. Controller, dalam framework laravel akan mengatur aliran informasi antara model dan view, kemudian mengambil data dari model lalu memperbarui tampilan yang relevan ke view.
3. View, dalam framework laravel akan menangani tampilan. Contohnya: halaman daftar produk, halaman detail produk dan halaman keranjang belanja.

Kesimpulan
Dengan kombinasi fitur-fitur yang sudah dijelaskan dan konsep Model-View-Controller (MVC) yang jelas, Laravel menjadi pilihan untuk pengembangan aplikasi web modern. Penggunaan laravel dapat meningkatkan efisiensi, kualitas, keamanan pengembangan aplikasi web, dan juga dokumentasi yang lengkap. Terimakasih..

PHP: Web Programming Language for Beginner

cover

Halo, Kreatif Readers! Pada artikel ini, akan membahas mengenai bahasa pemrograman PHP beserta cara kerjanya.

PHP (Hypertext Prepocessor) merupakan salah satu bahasa pemrograman yang sering digunakan dalam pembangunan sebuah website. Beberapa situs besar yang masih menggunakan PHP antara lain Facebook, Wikipedia, dan WordPress. Seiring berjalannya waktu, PHP telah merilis berbagai versi, dengan versi terbaru saat ini adalah PHP 8.3

PHP bekerja pada sisi server, atau biasa disebut dengan server-side rendering. Hal ini memungkinkan PHP dapat mengelola konten website dengan dinamis, didukung dengan penggunaan database. Di bawah ini merupakan ilustrasi pemrosesan data menggunakan PHP.

php

Pada proses ini, PHP berperan dalam mengambil dan mengelola data pada server, seperti yang digambarkan pada step nomor 2 di bawah ini.

server-side-rendering-php

Selain itu, bahasa pemrograman ini juga bersifat scripting language, yaitu kumpulan bahasa pemrograman yang telah ditafsirkan. Sehingga, untuk menjalankan sebuah kode PHP tidak diperlukan compiler khusus. Hal ini cukup membantu para pemula dalam mempelajari bahasa pemrograman tanpa harus melewati langkah-langkah yang “rumit”. Beberapa kelebihan lain dari PHP yaitu:

  • Gratis dan open-source
  • Mendukung integrasi dengan berbagai teknologi
  • Dukungan komunitas yang telah tersebar di seluruh dunia

Selain beberapa keuntungan di atas, PHP juga memudahkan penggunanya dengan menyediakan beberapa framework yang berisikan basic structure untuk mengakomodir pengembangan sebuah website. Penggunaan framework dapat membantu penyusunan kode menjadi lebih terstruktur, mempersingkat proses pembuatan, serta memudahkan proses maintanance atau perawatan pada sebuah website.

Contoh framework PHP yang cukup familiar digunakan dalam pembangunan sebuah website adalah Laravel, CodeIgniter, Phalcon, serta masih banyak lainnya. Pembahasan dari masing-masing framework akan dijelaskan pada artikel-artikel berikutnya. Stay tune!

Referensi:
Pemrograman Web dengan PHP & MySQL
Achmad Solichin
Bab 1 - Pengantar Pemrograman Web

PHP: Hypertext Preprocessor