Mengenal Single Sign-On (SSO) dengan Keycloak

Halo kreative readers, tahu kah kamu bahwa dalam era digital yang semakin berkembang, keamanan informasi menjadi hal yang sangat penting bagi pengguna dan penyedia layanan. Di tengah perjalanan ini, konsep Single Sign-On (SSO) telah menjadi solusi yang semakin populer untuk mengelola otentikasi pengguna dengan efisien dan aman. Salah satu alat yang menonjol dalam mendukung SSO adalah Keycloak, sebuah platform open-source yang dirancang untuk mengelola identitas dan manajemen akses secara terpusat. Pada kesempatan kali ini mari kita lihat lebih dalam tentang bagaimana Keycloak dan SSO bekerja bersama-sama untuk memberikan solusi identifikasi yang aman dan nyaman.

Pengertian Keycloak

Keycloak adalah platform open-source yang dikembangkan oleh Red Hat untuk manajemen identitas dan akses. Dirancang untuk memenuhi kebutuhan aplikasi modern, Keycloak menyediakan berbagai fitur termasuk otentikasi multi-faktor, manajemen akses berbasis peran, dan tentu saja, dukungan SSO. Dengan Keycloak, organisasi dapat mengelola otentikasi pengguna, otorisasi, dan administrasi identitas dengan mudah dan efisien.

Konsep Single Sign-On (SSO)

SSO adalah sebuah mekanisme otentikasi yang memungkinkan pengguna untuk login hanya sekali dan mendapatkan akses ke berbagai aplikasi atau layanan tanpa perlu memasukkan kredensial mereka lagi saat mengakses sumber daya lain yang terhubung. Dengan SSO, pengguna dapat menghindari kebingungan dan kerumitan yang terkait dengan pengelolaan banyak kredensial login.

Cara Keycloak Mendukung SSO

SSO

Keycloak menyediakan infrastruktur otentikasi yang kuat yang memungkinkan integrasi mudah dengan aplikasi atau layanan yang ada. Dengan mengimplementasikan protokol OpenID Connect (OIDC) di atas protokol OAuth 2.0, Keycloak menghasilkan token otentikasi yang digunakan untuk mengidentifikasi pengguna secara aman saat mengakses aplikasi yang terhubung. Pengguna hanya perlu login sekali ke Keycloak, dan token yang diberikan akan digunakan untuk mengotentikasi mereka secara otomatis saat mengakses aplikasi atau layanan lain yang terhubung.

Keuntungan Menggunakan Keycloak dan SSO

1. Kenyamanan Pengguna

SSO memungkinkan pengguna untuk mengakses berbagai aplikasi dengan satu login, meningkatkan kenyamanan dan efisiensi.

2. Keamanan yang Ditingkatkan

Dengan mekanisme otentikasi yang terpusat dan token yang dienkripsi, Keycloak dan SSO membantu meningkatkan keamanan identifikasi pengguna.

3. Manajemen Identitas yang Efisien

Keycloak menyediakan antarmuka administrasi yang kuat untuk mengelola pengguna, peran, dan kebijakan akses secara terpusat, menyederhanakan manajemen identitas di seluruh organisasi.

Kesimpulan

Dalam dunia yang semakin terhubung secara digital, keamanan dan kenyamanan dalam identifikasi sangatlah penting. Dengan menggunakan Keycloak dan SSO, organisasi dapat mengimplementasikan solusi otentikasi yang kuat dan efisien untuk pengguna mereka. Dengan demikian, Keycloak menjadi salah satu pilihan terbaik untuk memenuhi kebutuhan identifikasi yang kompleks dalam lingkungan modern yang terus berkembang.

Referensi : 
1) K. Sergey, "The Comparative Analysis of Technologies and Software for Single Sign-On," 2023 19th International Asian School-Seminar on Optimization Problems of Complex Systems (OPCS), Novosibirsk, Moscow, Russian Federation, 2023, pp. 44-47. 
2) Keahey K, Anderson J, Sherman M, Hammock C, Zhen Z, Tillotson J, Bargo T, Long L, Ul Islam T, Babu S, Zhang H and Halbach F. CHI-in-a-Box: Reducing Operational Costs of Research Testbeds. Practice and Experience in Advanced Research Computing. (1-8). 
3) Muhammad Edwin, “How to implement single sign-out in Keycloak with Spring Boot”, 2023 7th, Red Hat Developer.

 

 

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

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)

Laravel Telescope Alat Debugging dan Monitoring yang Efisien

Halo Kreatif Readers, tahu kah kamu dalam pengembangan aplikasi web, pemantauan dan debugging merupakan bagian penting untuk memastikan kinerja aplikasi yang optimal. Laravel Telescope adalah alat yang dirancang khusus untuk membantu pengembang Laravel dalam proses ini. Dengan antarmuka pengguna yang cukup elegan dan fitur-fitur yang menarik, Laravel Telescope menjadi pilihan yang sangat berguna untuk mengamati dan menganalisis apa yang terjadi di dalam aplikasi Laravel. Pada kesempatan kali ini kita akan mengenal Laravel Telescope berdasarkan referensi jurnal yang diterbitkan oleh Technomedia, studi report yang dilakukan Universitas Concordia di Kanada, dan buku yang berjudul Building Real-Time Marvels with Laravel.

Apa itu Laravel Telescope?

Laravel Telescope adalah alat debugging dan monitoring yang kuat yang dikembangkan oleh Laravel. Ini menyediakan panel kontrol yang memungkinkan pengembang untuk melihat aktivitas aplikasi secara real-time. Dengan Telescope, pengguna dapat melihat log pesan, query database, jobs, notifikasi, dan banyak lagi, semuanya bersumber dari antarmuka yang sama.

laravel-telescope

Fitur Utama Laravel Telescope

  1. Panel Antarmuka Pengguna yang User FriendlyLaravel Telescope menyediakan antarmuka pengguna yang bersih dan mudah digunakan. Pengguna dapat dengan cepat menjelajahi informasi yang dibutuhkan tanpa harus menyibukkan diri dengan menulis perintah atau mengonfigurasi pengaturan
  2. Log Pesan : Pengembang dapat dengan mudah melihat log pesan yang dihasilkan oleh aplikasi. Ini sangat membantu dalam melacak masalah atau kesalahan yang mungkin terjadi di dalam kode.
  3. Query DatabaseLaravel Telescope memungkinkan pengguna untuk melihat query database yang dilakukan oleh aplikasi secara langsung. Hal ini memungkinkan pengembang untuk mengoptimalkan kueri dan memperbaiki masalah performa.
  4. Pekerjaan (Jobs) : Laravel Telescope juga memantau pekerjaan dan antrian (Queque) yang diproses oleh Laravel. Pengguna dapat melihat status pekerjaan, waktu eksekusi, dan detail lainnya untuk memahami bagaimana pekerjaan diatur dan beroperasi di dalam aplikasi.
  5. Notifikasi : Alat ini membantu dalam melacak notifikasi yang dikirim oleh aplikasi. Dengan Laravel Telescope, pengembang dapat memastikan bahwa notifikasi terkirim dengan benar dan menangani kasus-kasus di mana notifikasi tidak bekerja seperti yang diharapkan.
  6. Lihat Informasi tentang Permintaan (Request Information) : Pengguna dapat dengan mudah melihat informasi tentang permintaan HTTP yang masuk ke aplikasi, termasuk informasi tentang header, parameter, dan banyak lagi.
  7. Catatan Stack TraceLaravel Telescope menyediakan stack trace yang rinci untuk membantu dalam debugging masalah yang kompleks.

Kesimpulan

Berdasarkan referensi yang telah dibaca, Laravel Telescope telah terbukti menjadi alat yang sangat berguna bagi pengembang Laravel, sebagai alat pengecek kueri yang berjalan serta berfungsi untuk merekam dan melihat segala proses yang berjalan di dalam aplikasi yang berbasis. Dengan fitur-fitur yang kuat dan antarmuka yang intuitif, Laravel Telescope membuat proses debugging dan monitoring menjadi lebih mudah dan lebih efisien.

Referensi:

  1. Selvaraj, S. (2024). Performance Monitoring and Debugging. In: Building Real-Time Marvels with Laravel. Apress, Berkeley, CA. https://doi.org/10.1007/978-1-4842-9789-6_12
  2. Nur  Ramadhan,  I.,  &  Saraswati,  G.  (2023).  Implementation  of  the  Redis  Database  as Optimization of User Data Query Processing for the Laravel-Based SIRESMA Application: Penerapan Database Redis Sebagai Optimalisasi Pemrosesan Kueri Data Pengguna Aplikasi SIRESMA Berbasis Laravel.Technomedia Journal,8(3 Februari), 394–407. https://doi.org/10.33050/tmj.v8i3.2152
  3. SOEN7481 Fall 2018: Replicating the paper “How not to structure your database-backend web application : a study of performance bugs in the wild” by Junwen Yang et al.
  4. Repository GitHub Laravel Telescope: https://github.com/laravel/telescope

 

Pengaruh Redis dalam Meningkatkan Kinerja Aplikasi Web

Hallo kreatif readers, dalam era digital yang terus berkembang, peningkatan kinerja aplikasi web menjadi semakin penting dalam memenuhi kebutuhan pengguna yang semakin tinggi. Salah satu alat yang telah membantu para pengembang dalam mencapai tujuan ini adalah Redis. Dalam artikel ini, kami akan menjelajahi bagaimana Redis mempengaruhi kinerja aplikasi web berdasarkan temuan dari penelitian terbaru yang diterbitkan di Technomedia Journal (TJM).

Pengantar

Redis adalah sebuah basis data open-source berkinerja tinggi yang menyediakan penyimpanan data di dalam memori yang cepat dan efisien. Dalam penelitian yang dilakukan oleh tim peneliti di Universitas Dian Nuswantoro yang diterbitkan di Technomedia Journal, Redis digunakan sebagai solusi caching untuk meningkatkan kinerja aplikasi XYZ yang cenderung lambat, hal tersebut dikarenakan aplikasi digunakan oleh user secara serentak. Peneliti mengaitkan masalah tersebut dengan proses kueri yang ada di dalam sistem API aplikasi XYZ serta penggunaan database relasional untuk aplikasi berskala besar yang kurang tepat.

Metodologi Penelitian

Dalam penelitian ini, para peneliti mengambil sampel dan menganalisis kinerja sistem sebelum dan sesudah mengimplementasikan Redis sebagai solusi caching. Mereka menggunakan alat-alat pengukuran Apache Jmeter untuk mengukur kinerja standar seperti waktu respon, beban server, dan penggunaan memori untuk mengevaluasi efektivitas Redis dalam meningkatkan kinerja aplikasi. Perbandingan alur sistem di dalam API aplikasi XYZ sebelum dan sesudah menerapkan Redis adalah seperti yang diperlihatkan pada gambar di bawah ini.

aaa-page-1

Temuan

Berdasarkan hasil penelitian, ditemukan bahwa penggunaan Redis sebagai caching layer memberikan perbaikan yang signifikan terhadap kecepatan akses sebagian besar endpoint API, dengan total peningkatan waktu respons sekitar 6.74%. Terdapat penurunan yang mencolok pada beberapa endpoint sebesar 13.94% dan 37.80% , sedangkan beban server dan penggunaan memori juga berkurang secara signifikan. Hal ini menunjukkan bahwa Redis efektif dalam mengurangi beban pada server dan meningkatkan responsivitas aplikasi.

Manfaat Penggunaan Redis

Adapun manfaat dari penggunaan Redis adalah sebagai berikut:

  1. Penyimpanan Data Cepat: Redis menyimpan data di dalam memori, yang membuatnya sangat cepat dalam menyimpan dan mengambil data. Hal ini memungkinkan aplikasi untuk memberikan respons yang cepat kepada pengguna.
  2. Solusi Caching yang Efisien: Redis adalah salah satu solusi caching yang paling efisien. Dengan menyimpan data yang sering diakses di dalam cache, Redis mengurangi waktu respon aplikasi dan mempercepat kinerjanya secara keseluruhan.
  3. Skalabilitas Horizontal: Redis dirancang untuk mendukung partisi data secara horizontal, yang memungkinkan untuk peningkatan skalabilitas yang mudah dan efisien ketika aplikasi Anda berkembang.
  4. Pub/Sub Messaging: Redis mendukung model pub/sub yang memungkinkan aplikasi untuk melakukan komunikasi real-time antar bagian-bagian yang berbeda dari sistem. Ini sangat berguna untuk pengembangan aplikasi real-time seperti aplikasi obrolan atau sistem notifikasi.
  5. Struktur Data Fleksibel: Redis menyediakan berbagai jenis struktur data yang dapat digunakan untuk berbagai keperluan, mulai dari penyimpanan sederhana hingga penghitungan yang rumit dan analisis data.

Kesimpulan

Dalam konteks pengembangan aplikasi web, penelitian ini menegaskan bahwa Redis adalah alat yang berharga untuk meningkatkan kinerja aplikasi. Dengan menyediakan penyimpanan data yang cepat dan efisien di dalam memori, Redis membantu mengurangi waktu respon aplikasi dan meningkatkan skalabilitasnya. Penelitian ini memberikan pemahaman yang lebih baik tentang pentingnya penggunaan Redis dalam pengembangan aplikasi web yang efisien.

Referensi

Nur Ramadhan, I., & Saraswati, G. (2023). “Implementation of the Redis Database as Optimization of User Data Query Processing for the Laravel-Based SIRESMA Application: Penerapan Database Redis Sebagai Optimalisasi Pemrosesan Kueri Data Pengguna Aplikasi SIRESMA Berbasis Laravel”, Technomedia Journal, 8(3 Februari), 394–407.

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.

Pemahaman & Manfaat Penggunaan Migrasi dan Seeder pada Laravel

mengenal-migra

Halo kreatif readers, pada kesempatan kali ini kita akan mengenal dan memahami manfaat penggunaan migrasi dan seeder yang ada pada Laravel.

Seperti yang kita ketahui bahwa Laravel, sebagai kerangka kerja PHP yang populer, menyediakan dua fitur kunci, yaitu migration dan seeder. Migrasi (migration) memungkinkan pengembang untuk mengelola struktur database dengan mudah, sementara seeder memfasilitasi pengisian data awal.

Migrasi pada Laravel

Migrasi adalah cara Laravel mengelola perubahan struktur database. Dengan migrasi, pengembang dapat membuat dan memodifikasi tabel database tanpa harus berurusan dengan SQL langsung. Setiap migrasi adalah file PHP yang berisi instruksi untuk membuat atau memodifikasi tabel database, kemudian dijalankan dengan perintah ‘Php artisan migrate’. Dibawah ini merupakan contoh file PHP yang berisi migrasi.

migrasi

Seeder pada Laravel

Seeder digunakan untuk mengisi database dengan data awal. Seeder adalah file PHP yang berisi kode untuk menyisipkan data ke dalam tabel. Ini berguna untuk menguji aplikasi atau mengisi database dengan data awal untuk pengembangan. Kemudian dijalankan dengan perintah ‘php artisan db:seed’. Dibawah ini merupakan contoh file PHP yang berisi seeder.

seeder

Integrasi Migrasi dan Seeder

Pada umumnya, setelah membuat tabel menggunakan migrasi, seeder digunakan untuk mengisi tabel tersebut dengan data awal. Pengguna dapat menjalankan keduanya dengan satu perintah menggunakan ‘php artisan migrate –seed’. Dengan menggunakan migrasi dan seeder, pengembang dapat dengan mudah mengelola struktur database dan menyediakan data awal untuk pengujian atau pengembangan.

Manfaat Migrasi dan Seeder pada Laravel

Penggunaan migrasi dan seeder dalam pengembangan web dengan Laravel membawa sejumlah manfaat yang signifikan, Berikut adalah beberapa manfaat penggunaan migrasi dan seeder pada laravel.

1. Manajemen Struktur Database yang Efisien

Migrasi memungkinkan pengembang untuk membuat dan mengelola struktur database secara efisien. Dengan menyediakan file migrasi, perubahan struktur dapat dilakukan secara terorganisir tanpa perlu menyusun perintah SQL secara manual. Ini mempermudah tim pengembangan dalam mengelola skema database.

2. Rekam Historis Perubahan Database

Migrasi mencatat histori perubahan struktur database. Setiap migrasi mewakili langkah-langkah yang diambil untuk membuat atau memodifikasi tabel. Hal ini memungkinkan pengembang untuk melacak dan mengelola versi database, membantu dalam pengembangan kolaboratif dan pemeliharaan sistem.

3. Kemudahan Penyesuaian dengan Tim Pengembangan

Migrasi menyederhanakan upaya kolaborasi tim pengembangan. Setiap perubahan dalam struktur database terdokumentasi melalui migrasi, memungkinkan anggota tim untuk dengan mudah menyelaraskan langkah-langkah pengembangan mereka. Hal ini mengurangi risiko kesalahan yang mungkin muncul ketika melakukan pengelolaan skema database secara manual.

4. Isi Data Awal untuk Pengembangan dan Uji

Seeder memungkinkan pengisian data awal ke dalam tabel, mempermudah pengujian dan pengembangan. Dengan menggunakan seeder, pengembang dapat membuat dataset awal yang dibutuhkan untuk menguji fungsionalitas aplikasi atau mengembangkan fitur baru. Ini mendukung pengembangan yang lebih cepat dan efisien.

5. Konsistensi Server Pengembangan dan Produksi

Migrasi dan seeder membantu menjaga konsistensi antara server pengembangan dan produksi. Dengan menjalankan migrasi dan seeder di kedua server tersebut, pastikan bahwa struktur database dan data awal dijaga konsistensinya, mengurangi potensi masalah saat merilis ke produksi.

6. Pemeliharaan dan Pembaruan Sistem yang Aman

Penggunaan migrasi memungkinkan pemeliharaan dan pembaruan sistem yang lebih aman. Dengan memanfaatkan migrasi, perubahan pada struktur database dapat diuji terlebih dahulu di lingkungan pengembangan sebelum diaplikasikan ke lingkungan produksi. Ini membantu mencegah kemungkinan kegagalan.

Referensi : 

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