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

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: 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

 

Mengenal Business Intelligence

Cover BI

Halo Sobat Akhdani! Di era teknologi saat ini, para pelaku usaha mulai menggunakan Businesss Intelligence sebagai tools untuk memonitoring performa bisnisnya. Secara umum, Businesss Intelligence dapat membantu mengumpulkan informasi dari berbagai sumber, yang kemudian disimpan, diolah dan diproses menjadi data visual. Untuk mengenal lebih dalam apa itu BI dan bagaimana cara kerjanya, mari simak artikel berikut ini!

Apa itu Business Intelligence?

Business Intelligence merupakan bentuk pengolahan data menggunakan model matematis dan analitis yang kemudian akan menghasilkan informasi untuk memudahkan perusahaan dalam pengambilan keputusan pada proses bisnis yang dijalankan.

Dalam artian lain, BI dapat membantu perusahaan melihat secara rinci dan real-time kondisi bisnis yang sedang berjalan saat ini, apakah sedang mengalami penurunan, peningkatan, atau bahkan stagnan. BI juga dapat membantu menyajikan informasi secara lebih ringkas, sehingga perusahaan dapat mengambil langkah lebih cepat dan tepat untuk perencanaan bisnis kedepannya.

BI

Komponen Business Intelligence

Business Intelligence terdiri atas beberapa komponen pembentuk, antara lain:

  • OLAP (On-line Analytical Processing)

OLAP melakukan query data dari berbagai sumber untuk menghasilkan berbagai sudut pandang. Dengan kata lain, BI menggunakan OLAP untuk menggabungkan dan mengelompokkan data ke dalam beberapa kategori untuk memberikan informasi yang lebih ringkas dalam bentuk pelaporan, analisis, pemodelan, dan perencanaan. Beberapa operasi OLAP yang digunakan adalah roll up, drill down, slice and dice, dan pivot.

  • Analisis lanjutan

BI menerapkan teknik machine learning, otomasi proses bisnis, teknik statistik tren, mengenali pola, karakteristik, serta menganalisa anomali dari berbagai sumber data.

  • Manajemen Kinerja Perusahaan

Peran utama BI adalah integrasi dari beberapa data untuk menghasilkan informasi kinerja bisnis. Dalam komponen ini, BI berperan untuk meningkatkan kinerja perusahaan dengan melacak fluktuasi pasar, menganalisis tren jangka pendek dan jangka panjang, serta menciptakan peluang investasi

Cara kerja Business Intelligence

Untuk menghasilkan sebuah data visual berbentuk laporan, BI perlu melewati beberapa proses seperti pengumpulan data, pemrosesan dan penyimpanan data, serta analisis dan penyajian.

konsep BI

Sumber: Pengantar BI dalam Bisnis

  • Pengumpulan data

Pada tahapan ini, BI akan melakukan ekstraksi pada data-data “mentah” yang telah tercatat pada database, seperti data penjualan, laporan laba rugi, penggajian, dan lain-lain sebelum disimpan dan diintegrasikan antar satu dengan yang lain.

  • Penyimpanan pada Data Warehouse

Data mentah yang telah dikumpulkan berikutnya akan disimpan dalam bentuk Data Warehouse untuk dilakukan proses integrasi dari beragam database yang ada.

  • Akses dan Analisis Data

Setelah proses integrasi data, peran BI berikutnya adalah mengakses informasi dari Data Warehouse untuk kemudian dianalisa dan diinterpretasikan dalam bentuk tren, pola, dan menyajikannya dengan bentuk yang lebih ringkas.

  • Pembuatan Laporan

Dari hasil analisa dan interpretasi data tersebut, dilakukan proses pembuatan laporan yang nantinya akan menampilkan data visual beserta informasi pendukung agar pengguna dapat lebih mudah memahami data yang telah diolah.

Aplikasi Business Intelligence

Nah, berikut ini terdapat beberapa rekomendasi aplikasi yang dapat mendukung penerapan Business Intelligence, antara lain:

  1. Microsoft Power BI
  2. Tableau
  3. Oracle BI

 


Referensi:
Business Intelegent (Pengantar Business Intelligence dalam Bisnis)
PT. Sonpedia Publishing Indonesia
Bagian 1 - Pengenalan dan Konsep Dasar Business Intellegence

Understanding Requirement Engineering

cover-1

Fase Requirement Engineering merupakan proses memahami kebutuhan sistem, baik dari segi bisnis, kebutuhan fungsional, ataupun dari segi interaksi pengguna dengan sistem nantinya.

Tujuan dilakukannya fase Requirement Engineering adalah untuk menyamakan presepsi setiap pemangku kepentingan yang terlibat, agar dapat menghasilkan solusi yang efektif dan efisien.

Fase ini terdiri dari beberapa tahapan:

  1. Identifikasi permasalahan
  2. Analisa kebutuhan pengguna
  3. Klasifikasi kebutuhan pengguna
  4. Pemodelan sistem
  5. Negosiasi dan spesifikasi kebutuhan
  6. Validasi kebutuhan
Identifikasi Permasalahan

Tahapan ini merupakan awal dari proses Requirement Engineering. Identifikasi permasalahan biasanya dilakukan menggunakan teknik kolaborasi meeting yang akan dihadiri oleh pihak user atau pengguna, serta vendor atau tim yang akan melakukan pengembangan sistem. Tahapan ini dapat juga disebut Requirement Gathering.

Tujuan utama dari Requirement Gathering adalah memahami permasalahan yang dihadapi oleh user yang kemudian dilanjutkan dengan penawaran solusi secara garis besar.

Analisa Kebutuhan Pengguna

Tahapan ini merupakan tindak lanjut atas informasi yang telah diperoleh pada tahap sebelumnya. Pemasalahan akan dipetakan menjadi poin-poin kebutuhan yang nantinya akan direalisasikan dalam bentuk fitur-fitur pada sistem yang dikembangkan.

Klasifikasi Kebutuhan Pengguna

Setelah diperoleh daftar kebutuhan pengguna, maka selanjutnya akan dilakukan klasifikasi kebutuhan berdasarkan level kepentingannya, yaitu:

  1. Normal Requirement (Kebutuhan objektif sesuai dengan permintaan user)
  2. Expected Requirement (Kebutuhan dasar sebuah sistem)
  3. Exciting Requirement (Kebutuhan tambahan yang berada di luar ekspektasi user)

Klasifikasi kebutuhan dilakukan untuk memudahkan tim pengembang dalam menentukan prioritas ketika proses pengerjaan nantinya.

Pemodelan Sistem

Tahapan ini bertujuan untuk menggambarkan sistem dalam bentuk dokumen teknis untuk memperjelas elemen apa saja yang dibutuhkan, bagaimana hubungan antar entitas, serta bagaimana behavior atau perilaku sistem atas berbagai kondisi yang diminta oleh setiap aktor.

Pemodelan dapat dilakukan menggunakan Use Case Skenario ataupun Use Case Diagram, UML, Class Diagram, ataupun Prototype sistem.

Negosiasi dan Spesifikasi Kebutuhan

Setelah dilakukan pemodelan, gambaran alur serta fungsional sistem akan semakin jelas. Tahapan berikutnya adalah melakukan diskusi dan negosiasi antara vendor dan user untuk menentukan prioritas pada proses pengembangan, biaya yang dibutuhkan, risiko yang akan ditimbulkan, serta kemungkinan untuk menggabungkan, memodifikasi atau bahkan mengeliminasi kebutuhan-kebutuhan yang telah dituliskan di awal agar mencapai kesepakatan bersama.

Hasil terbaik negosiasi adalah terbentuknya Project Plan dimana pihak user dapat memperoleh sistem yang diinginkan sesuai spesifikasi yang telah diminta, dan pihak vendor dapat bekerja dengan realistis, mendapatkan upah yang sesuai, serta deadline yang wajar.

Validasi Kebutuhan

Setelah proses negosiasi menghasilkan kesepakatan bersama, maka tahapan berikutnya adalah proses validasi dari kedua belah pihak yaitu user dan vendor. Hal ini dilakukan untuk mencegah kesalahan interpretasi, kurangnya informasi, inkonsistensi, serta kemungkinan tidak terpenuhinya kebutuhan yang telah disepakati di awal.

Jika seluruh informasi telah dinyatakan valid, maka dilanjutkan dengan proses pengembangan sistem sesuai dengan kebutuhan yang telah dituliskan dalam dokumen Requirement Engineering.

Dalam beberapa kasus, proses Requirement Engineering dapat berlangsung secara paralel atau beriringan dengan proses pengembangan sistem, tergantung pada kebutuhan setiap projectnya. Semakin banyak pemangku kepentingan yang terlibat, maka akan bertambah pula kebutuhan yang harus diidentifikasi. Maka dibutuhkan kemampuan manajemen informasi dan pendokumentasian yang baik, agar memudahkan pelacakan perubahan sepanjang proses pengembangan.

Beberapa kendala yang memungkinkan terjadi pada proses Requirement Engineering adalah:

  1. User kesulitan dalam mengkomunikasikan kebutuhannya.
  2. Terlalu banyak pemangku kepentingan yang terlibat, sehingga menyulitkan dalam proses pengambilan keputusan.
  3. Ketidaksesuaian antara permintaan, deadline, serta budget yang ditawarkan.

It’s your worst nightmare. A customer walks into your office, sits down, looks you straight in the eye, and says, “I know you think you understand what I said, but what you don’t understand is what I said is not what I meant.” Invariably, this happens late -Ralph Young

Reference: Software Engineering A Practitioner’s Approach / Roger S. Pressman / Seventh Edition