Implementasi Elasticsearch dengan Laravel Scout

Hallo Kreatif Readers, artikel kali ini akan membahas mengenai Elasticsearch dengan Laravel Scout

Laravel Scout adalah extension package untuk framework PHP Laravel yang memimgkinkan integrasi dengan search engine seperti Elasticsearch. Dengan menggunakan Larvaravel Scout dapat dengan mudah untuk mengimplementasikan fitur pencarian dan penelususan 9search and browse)  dalam aplikasi laravel.

Fitur utama dari Laravel Scout meliputi:

  • Driver Agnostic: Scout didesain agar bisa bekerja dengan berbagai mesin pencari, seperti Algolia dan Elasticsearch, tanpa harus mengubah kode aplikasi Anda secara signifikan.
  • Pencarian Full-Text: Mendukung pencarian teks lengkap (full-text search) yang memungkinkan pengguna untuk mencari data berdasarkan kata kunci atau frasa tertentu.
  • Integrasi dengan Eloquent: Memanfaatkan ORM (Object-Relational Mapping) Laravel, yaitu Eloquent, untuk mengelola data dan mengintegrasikan fitur pencarian dengan model Eloquent.
  • Kemudahan Penggunaan: Scout menyediakan API yang sederhana untuk menentukan model mana yang harus diindeks dan bagaimana cara melaksanakan pencarian di dalamnya.

Elasticsearch adalah mesin pencari dan analisis yang bersifat open source dan terdistribusi untuk segaja jenis data, menggunakan REST dan JSON. Konsep intinya adalah indeks dokumen, pencarian teks penuh dan pemroresan data. Laravel scout memberikan solusi sederhana untuk menambahkan pencarian teks lengkap ke model eloquest.

Implementasi Elastisearch dengan LAravel Scout melibatkan beberapa langkah utama. Elasticsearch akan bertindak sebagai mesin pencari utama, sedangkan Laravel Scout akan memfasilitasi integrasi anatar aplikasi laravel dengan Elasticsearch.

Berikut langkah – langkah mengimplementasikan Elasticsearch dengan Laravel Scout

1. Install Package Laravel Scout dan Elasticsearch driver

Install Package Scout:

composer require laravel/scout

Install Elasticsearch Driver untuk Scout:

composer require babenkoivan/scout-elasticsearch-driver

2. Konfigurasi Laravel Scout

Tambahkan ScoutServiceProvider ke dalam array providers di dalam file config/app.php:

'providers' => [
 // ...
 Laravel\Scout\ScoutServiceProvider::class,
],

Tambahkan konfigurasi driver Elasticsearch ke dalam file .env:

SCOUT_DRIVER=elasticsearch
ELASTICSEARCH_HOST=localhost
ELASTICSEARCH_PORT=9200

3. Konfigurasi Model Eloquent

Implementasikan interface Searchable pada model Eloquent yang ingin Anda indeks dengan Elasticsearch:

use Laravel\Scout\Searchable;
class Artikel extends Model
{
 use Searchable;
}

Tentukan pengindeksan dan fitur pencarian dalam model dengan menentukan metode toSearchableArray():

public function toSearchableArray()
{
 $array = $this->toArray();
// Customize the searchable fields
 return $array;
}

4. Indeks Data dengan Elasticsearch

Setelah mengonfigurasi model dan konfigurasi driver Elasticsearch, Anda dapat mengindeks data dengan menggunakan perintah artisan:

php artisan scout:import "App\Artikel"

5. Implementasi Pencarian

Gunakan fitur pencarian dalam aplikasi Anda dengan menggunakan method search() pada model yang mendukung pencarian Scout:

$results = Artikel::search('kata kunci pencarian')->get();

Dengan menggunakan Laravel Scout, dapat dengan mudah menambahkan dan mengelola fitur pencarian yang kuat dalam aplikasi Laravel tanpa perlu menghadapi kompleksitas dalam mengimplementasikan mesin pencari dari awal.

Referensi: Ardian Prima Atmaja, Susilo Veri Yulianto. Pemanfaatan Elasticsearch untuk Temu Kembali Informasi Tugas Akhir: Jurnal Nasional Teknologi dan Sistem Informasi.2018
Laravel.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

 

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

Laravel Forge

Hallo Kreatif Reader…. Kali ini aku mau bahas soal Laravel Forge

Apa itu Laravel Forge?

Laravel forge adalah platfrom manajemen server web yang dirancang khusus untuk memudahkan pengembangan, deployment, dan pengelolaan aplikasi. Laravel Forge menyederhanakan proses konfigurasi server, instansi perangkat lunak dan manajemen deployment sehingga pengembang dapat fokus pada pengembangan aplikasi tanpa harus menghabiskan waktu dan usaha untuk menangani aspek infrastruktur server.

Fitur – fitur Laravel Forge

1. Manajemen Server

Laravel Forge memudahkan pengguna dalam pembuatan, konfigurasi , dan manajemen server. Kemudahan ini terlihat dalam pilihan penyedia cloud yang beragam, termasuuk DigitalOcean, Linode, AWS, dan lainnya.

screenshot_1

2. Manajemen Database

Laravel Forge mempermudah instalasi dan konfigurasi database, termasuk MySQL. Pengguna dapat dengan cepat membuat database. Pengguna dapat dengan cepat membuat database dan mengonfigurasi pengaturan dengan mudah.

3. Manajemen SSl

Integrasi SSL yang disediakan oleh Laravel Forge memudahkan pengguna untuk mengaktifkan keamanan SSL pada situs web. Ini tidak hanya penting untuk keamanan, tetapi juga mendukung optimasi SEO.

4. Deployment Otomatis

Pengguna dapat mengatur proses deployment secara otomatis dari repositori Git atau Mercurial ke server. Setiap kali terjadi perubahan pada kode, Forge dapat secara otomatis megeksekusi proses deployment, meminimalkan potensi kesalahan dan mempercepat siklus pengembangan.

5. Monitoring dan Log

Forge menyediakan alat pemantauan sederhana untuk server dan aplikasi.Pengguna dapat dengan mudah mengakses log server dan log aplikasi untuk memantau kinerja dan menanggapi perubahan atau masalah dengan cepat.

6. Manajemen Pengguna

Laravel Forge memfasilitasi pengaturan izin dan akses untuk anggota tim. Dengan konfigurasi yang mudah, anggota tim dapat bekerja sama dengan efisien dalam pengembangan dan pemeliharaan aplikasi.

Secara keseluruhan Laravel Forge menyediakan kemudahan untuk tim pengembang, memungkinkan fokus pada pengembangan aplikasi tanpa harus terlalu terlibat dalam kompleksitas konfigurasi server. Dengan fitur – fitur ini, Forge menjadi alat yang efektif dalam mendukung siklus hidup pengembangan aplikasi Laravel.

Cara Kerja Laravel Forge

Laravel Forge menginstal perangkat lunak yang diperlukan untuk menjalankan aplikasi PHP dengan menghubungkan ke server melalui SSH.

Laravel Forge membuat, menerapkan, mengelola dan memelihara situs web untuk pengguna setelah melakukan hal berikut:

1. Membuat akun Forge

2. Memilih paket berlangganan

3. Memilih penyedia server seperti DigitalOcean atau AWS dan memberikan detail autentikasi

4. Memilih jenis server seperti server aplikasi atau server database

5. Mengatur konfigurasi situs baru, seperti memberikan nama, memilih versi PHP dan memilih penyedia datanase seperti MySQL

6. Menghubungkan kode sumber aplikasi ke Forge melalui control sumber seperti Github.

Referensi
Judul Buku: Mudah Menguasai Framework Laravel
Penulis: Yudho Yudhanto, Helmi Adi Prasetyo
Penerbit: PT Elex MEdi Komputindo

Integrasi Laravel Dengan No SQL

Hallo Kreatif Reader…. Kali ini, aku mau sharing nih mengenai integrasi laravel dengan No SQL. Semoga bermanfaat

Laravel adalah kerangka pengembangan web populer untuk PHP. Laravel menawarkan banyak default dan menyediakan struktur kode yang mudah dipahami dan cepat digunakan untuk mengimplementasikan aplikasi web dan API. MongoDB memiliki integrasi resmi dengan Laravel, dan paket terseut tersedia di GitHub.

Integrasi Laravel dengan basis data NoSQL seperti MongoDB dapat dilakukan dengan cukup mudah, karena Laravel mendukung beberapa driver basis data NOSQL. MongoDB adalah salah satu pilihan populer untuk basis data NoSQL, dan kita akan fokus pada integrasi Laravel dengan MongoDB.

Berikut adalah langkah – langkah  umum untuk integrasi Laravel dengan MongoDB:

1. Instalsi MongoDB dan Ekstensi PHP MongoDB:

Pastikan MongiDB telah terinstal di server anda

Instal ekstensi PHP MongoDB dengan menggunakan Composer:

composer require jenssegers/mongodb

2. Konfigurasi koneksi ke MongoDB

Buka berkas ‘config/database.php’ dan tambahkan konfigurasi untuk mongoDB:

'mongodb' => [
 'driver' => 'mongodb',
 'host' => env('DB_HOST', 'localhost'),
 'port' => env('DB_PORT', 27017),
 'database' => env('DB_DATABASE', 'your_database'),
 'username' => env('DB_USERNAME', 'your_username'),
 'password' => env('DB_PASSWORD', 'your_password'),
 'options' => [
 'database' => 'admin',
 ],
],

Sesuaikan nilai ‘database’, ‘username’, dan ‘password’ sesuai dengan konfigurasi MongoDB

3. Atur koneksi pada Berkas.env

Sesuaikan nilai ‘DB_Connection’ dan kredensial MongoDB pada berkas ‘.env’:

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

4. Gunakan model Eloquent MongoDB:

Buat model Eloquent untuk menggunakan MongoDB. Misalkan, jika anda memiliki model ‘Book’, buat file ‘Book.php’:

<?php
namespace App;
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class Book extends Eloquent
{
 protected $connection = 'mongodb';
 protected $collection = 'books';
 protected $fillable = ['title', 'author', 'published_at'];
}

Pastikan untuk menyesuaikan nilai – nilai seperti ‘$collection’ sesuai dengan struktur database anda.

5. Migrasi dan penggunaan model:

Buat migrasi untuk struktur MongoDB jika diperlukan:

php artisan make:migration create_books_collection

Gunakan model Eloquent seperti menggunakan model biasa pada Laravel

Referensi
Judul Buku: Belajar Cepat Database NoSQL, Menggunakan Document Priented Databse (MongoDB) pada Pengaplikasian Big Data
Penulis: Agit Amrullah &Kusnawi
Penerbit: Penerbit ANDI
MongoDB

PHP Framework Zend

Halo Kreatif Readers!! Kali ini aku mau sharing tentang salah satu framework PHP yaitu Zend. Selamat membaca….

Apa itu Zend Framework?

Zend Framework merupakan sebuah kerangka kerja yang dikembangkan menggunakan bahasa pemrograman PHP 5.x. Kerangka kerja ini telah diimplementasikan secara penuh dengan paradigma OOP (Object Oriented Programming) dan terdiri dari berbagai pustaka (library) yang memungkinkan pembangunan aplikasi berbasis web secara cepat dan efisien.

Saat ini, perkembangan aplikasi berbasis web mendominasi pasar perangkat lunak. Pelaku bisnis umumnya cenderung meninggalkan aplikasi berbasis desktop karena pertimbangan efektivitas. Aplikasi desktop biasanya hanya efektif digunakan dalam lingkup kerja terbatas, seperti intranet. Sebaliknya, aplikasi berbasis web menawarkan lingkup kerja yang tidak terbatas, membuatnya sangat efektif bagi pelaku bisnis dengan mobilitas kerja yang tinggi.

screenshot_5

 

Zend Framework memberikan alat yang kuat dan fleksibel bagi pengembang untuk membangun aplikasi berbasis web yang tangguh. Dengan pendekatan berorientasi objek dan dukungan penuh terhadap PHP 5.x, Zend Framework memberikan solusi yang dapat diandalkan untuk kebutuhan pengembangan aplikasi web modern. Oleh karena itu, banyak pelaku bisnis memilih Zend Framework sebagai fondasi untuk membangun aplikasi mereka, memanfaatkan keunggulan fitur dan fungsionalitas yang dimilikinya.

Arsitektur desainnya memungkinkan pengembang untuk menambahkan komponen-komponen secara individual, suatu konsep yang sering disebut sebagai “Use At Will design” atau desain yang dapat digunakan sesuai kebutuhan. Dengan fleksibilitas ini, pengembang dapat memanfaatkan komponen-komponen Zend Framework sesuai dengan kebutuhan spesifik aplikasi yang sedang dibangun, memberikan tingkat kontrol yang tinggi dalam proses pengembangan.

Fitur Framework Zend

  1. Object-Oriented (Berorientasi Objek): Zend Framework sepenuhnya berorientasi objek, yang berarti bahwa pendekatannya dalam membangun aplikasi web didasarkan pada konsep pemrograman berorientasi objek (OOP). Hal ini membantu dalam pengorganisasian dan strukturisasi kode.
  2. MVC Implementation (Implementasi MVC Tingkat Lanjut): Zend Framework mendukung implementasi Model-View-Controller (MVC) tingkat lanjut. Model-View-Controller adalah pola desain yang memisahkan logika aplikasi menjadi tiga komponen utama, mempermudah pengelolaan dan pengembangan aplikasi.
  3. Multi-database (Multi-database): Zend Framework menyediakan dukungan untuk berbagai jenis basis data, termasuk PostgreSQL, SQLite, dan lainnya. Ini memungkinkan pengembang memilih basis data yang sesuai dengan kebutuhan proyek.
  4. API (API Cloud Sederhana): Zend Framework dilengkapi dengan API cloud yang sederhana, memfasilitasi integrasi dengan layanan cloud dan pengembangan aplikasi berbasis awan.
  5. Session Management (Manajemen Sesi): Zend Framework menyediakan mekanisme untuk manajemen sesi, memungkinkan pengembang untuk melacak dan mempertahankan status sesi pengguna.
  6. Data Encryption (Enkripsi Data): Zend Framework mendukung enkripsi data, memberikan lapisan keamanan tambahan terhadap informasi sensitif yang diproses oleh aplikasi.
  7. URI (Perutean URI yang Fleksibel): Zend Framework menawarkan sistem perutean URI yang fleksibel, memudahkan penanganan permintaan dan respons URI dalam aplikasi web.
  8. Reusability (Penggunaan Kembali): Zend Framework mendukung penggunaan kembali kode, memungkinkan pengembang untuk membuat dan menggunakan komponen-komponen yang telah dibuat sebelumnya, meningkatkan efisiensi pengembangan.
  9. Loosely Coupled (Arsitektur Yang Digabungkan Secara Longgar): Arsitektur Zend yang digabungkan secara longgar memungkinkan pengembang untuk menggunakan komponen-komponen secara terpisah, tanpa ketergantungan yang kuat antara satu komponen dengan yang lain. Hal ini mendukung fleksibilitas dan modularitas dalam pengembangan aplikasi.

Kelebihan Framework Zend

  1. Membantu Praktik dan Pembuatan Program yang Lebih Baik: Kerangka kerja membantu pengembang dalam menerapkan praktik terbaik dan membangun program dengan pendekatan yang lebih baik, termasuk penggunaan pola desain yang sesuai.
  2. Kode Lebih Aman: Dengan menggunakan kerangka kerja, keamanan kode dapat ditingkatkan karena kerangka kerja umumnya mencakup praktik keamanan terbaik dan standar.
  3. Menghindari Kode Duplikat dan Redundan: Kerangka kerja membantu mengurangi atau menghindari duplikasi kode serta redundansi, sehingga meningkatkan efisiensi dan memudahkan pemeliharaan.
  4. Pengembangan Kode yang Konsisten dengan Lebih Sedikit Bug: Dengan panduan dan struktur yang telah ditetapkan oleh kerangka kerja, pengembang dapat mengembangkan kode dengan konsistensi, yang pada gilirannya mengurangi jumlah bug.
  5. Mudah Bekerja pada Teknologi Canggih: Kerangka kerja umumnya mendukung integrasi dengan teknologi terkini, memudahkan pengembang untuk bekerja pada proyek-proyek yang memanfaatkan teknologi canggih.
  6. Pembuatan Software Framework Sendiri atau Berkontribusi pada Tim dengan Sumber Terbuka: Pengembang dapat membuat kerangka kerja mereka sendiri atau berkontribusi pada proyek kerangka kerja tim dengan sumber terbuka, menciptakan peningkatan berkesinambungan dalam fungsionalitas.
  7. Pra-Dibangun dan Pra-Diuji: Beberapa segmen kode dan fungsionalitas dalam kerangka kerja biasanya telah dibangun dan diuji sebelumnya, meningkatkan keandalan dan ketahanan aplikasi.
  8. Uji dan Debugging Lebih Mudah: Kerangka kerja menyediakan alat bantu yang memudahkan uji dan debugging kode, bahkan bagi pengembang yang mungkin tidak akrab dengan setiap baris kode.

Demikianlah ringkasan tentang Zend Framework. Semoga informasi ini bermanfaat bagi  Kreatif Readers.

Referensi 
Judul Buku : Zend Framework 2.X Solusi Mempercepat Pengembangan Aplikasi    Berbasis Web dengan PHP5.x Framework
Penulis : Edison siregar
Tahun : 2015
Edisi : 1

 

PHP Framework Slim

Hallo Kreatif Reader, aku mau sharing nih mengenai framewok PHP Slim. Selamat membaca….

Apa itu Slim Framework?

Slim framework adalah salah satu micro framework PHP untuk membuat aplikasi web. Slim biasanya digunakan untuk membuat aplikasi – aplikasi kecil dan lebih banyak banyak dipakai untuk membuat RESTful API atau webservice. 

Integrasi data antara aplikasi mobile Facebook dan versi webnya dapat terjadi melalui penggunaan RESTful API atau Webservice. Fungsinya adalah menyediakan data dalam format umum seperti JSON, yang dapat diambil dan dikonsumsi oleh aplikasi klien, baik itu aplikasi mobile atau aplikasi web. Dengan menggunakan RESTful API atau Webservice, Facebook dapat memastikan konsistensi data, sehingga apa yang terlihat melalui aplikasi mobile akan sama dengan yang terlihat melalui versi webnya. Ini memungkinkan pengguna untuk mengakses dan berinteraksi dengan data mereka secara seragam, tidak peduli dari platform apa data tersebut diakses

white-red-and-orange-modern-elegant-project-proposal-cover-6

Disebut sebagai micro framework, Slim memiliki fokus yang terpusat pada kebutuhan dasar suatu aplikasi web, seperti menerima HTTP request, mengarahkan request tersebut ke kode yang sesuai, dan menghasilkan HTTP response. Sifatnya yang ‘micro‘ menandakan bahwa framework ini dirancang untuk proyek-proyek skala kecil dengan tujuan khusus dan tingkat kompleksitas yang rendah. Dengan demikian, Slim menjadi solusi yang ringan dan efisien untuk membangun aplikasi web sederhana dan spesifik.

Fitur – fitur pada Slim Framework  adalah sebagai berikut:

1. HTTP Router

Slim menyediakan sistem router yang sederhana dan fleksibel, memungkinkan pengguna untuk mendefinisikan router dengan mudah.

2. Middleware

Memproses permintaan HTTP sebelum atau setetalh aktivitas dijalankan. Dapat dicontohkan pada proses otentikasi

3. Dependency Injection

Slim mendukung Dependency Injection yang memungkinkan pengguna untuk mengelola dependensi dengan mudah.

4. PSR Standars

Mengikutistandar PHP-FIG PSR, memungkinkan interoperabilitas dengan framework dan pustaka lainnya yang mengikuti standar yang sama.

Framework Slim  memiliki beberapa kelebihan yang menjadi solusi untuk membangun aplikasi web. Berikut adalah kelebihan dari Framework Slim

1. Ringan dan sederhana

Slim dirancang ringan dan sederhana sehingga mudah untuk dipelajari dan cepat untuk dikembangkan.

2. Performa Tinggi

Karena ringan, slim dapat memberikan kinerja yang baik, terutama untuk aplikasi kecil hingga menengah.

3. Dokumentasi yang baik

Slim memiliki dokumentasi yang baik dan jelas, membantu pengembang untuk memahami dan menggunakan framework dengan efisien.

4. Sesuai untuk RESTful APIs

Slim merupakan pilihan yang baik untuk membangun RESTfulAPIs karena desain ringan dan dukungan yang baik untuk routing dan middleware.

Kelebihan-kelebihan tersebut membuat Slim Framework menjadi solusi yang tepat untuk membangun aplikasi web, terutama ketika Anda fokus pada pengembangan aplikasi kecil hingga menengah. Dengan desain yang ringan dan dukungan yang baik untuk routing dan middleware, Slim juga menjadi pilihan unggul untuk membangun RESTful APIs. Dokumentasi yang baik semakin mempermudah pengembang dalam memahami dan menggunakan framework ini secara efisien, sehingga mempercepat proses pengembangan aplikasi web Anda. Dengan kata lain, Slim Framework memberikan keseimbangan yang baik antara sederhana, performa tinggi, dan fleksibilitas untuk memenuhi kebutuhan proyek-proyek pengembangan web

Hamdani, Ahmad Faqih,'Analisa Performa Web Service menggunakan Slim Framework'Undergraduate thenis, Politeknik Negeri Jember,2020

Keterkaitan Sistem Failover dengan Downtime Disaster Recovery Planing

hallo – hallo Sahabat Akhdani, aku mau sedikit sharing nih dari jurnal yang udah aku baca

Apa itu Disaster Recovery Planning??

Disaster Recovery Planning  itu adalah perencanaan untuk pengelolaan secara rasional dan cost-effective bencana terhadap sistem informasi yang akan dan telah terjadi. 

Apa itu Failover??

Failover itu adalah sebuah metode operasional backup yang dijalankan secara otomatis. Kondisi sistem yang digunakan untuk failover harus dalam posisi standby baik itu database, server ataupun jaringan. Dalam proses kerjanya failover system akan bekerja secara smooth berdasarkan permintaan yang muncul setelah diterima indikasi – indikasi sistem utama mengalami downtime.

Jadi, apa hubungannya data dengan Disaster Recovery Planning  dan Failover??

Data tidak hanya digunakan sebagai media untuk pertukaran informasi melainkan juga sebagai alat komunikasi antar perangkat yang sudah diintegrasikan. Data menjadi kebutuhan yang penting, tidak terbayangkan bagaimana data hilang atau tidak dapat diakses lagi. Beberapa sebab data tidak dapat diakses seperti data corrupt atau bisa juga data mengalami gangguan saat akan diakses, akses gangguan bisa berasal dari koneksi jaringan bisa juga berasal dari server dari data tersebut. Bahaya yang paling besar adalah bencana. Jika bencana tersebut terjadi menyebabkan banyak data hilang, maka dari itulah Disaster Recovery Planning diperlukan. Waktu downtime menjadi penentu apakah suatu DRP efektif atau tidak. Sehingga waktu downtime permasalahan ketersediaan data server erat kaitannya dengan high availability  dengan protokol heartbeat

Protokol heartbeat digunakan untuk sistem failover dari server web server. Selain failover web server, proses backup dan restore database server melibatkan backup dari database server utama, untuk restore akan menggunakan differential backup. Sinkronisasi server dilakukan dengan rsync. Perintah rsync dikombinasikan dengan crontab untuk proses penjadwalan sedangkan proses restore pada server backup bergantung pada waktu pemindahan data dari server utama dan proses backup pada server utama itu sendiri. Hasil pengujian menunjukkan bahwa sinergi dari sistem failover dan replikasi server mereduksi waktu downtime untuk link server efektif diterapkan pada suatu DRP dengan mereduksi waktu downtime jika dibandingkan dengan DRP yang dilakukan secara manual.

Downtime artinya erat kaitannya dengan ketersedian website yang selalu dapat diakses kapanpun dan dimanapun, sangat beresiko jika website tersebut mengalami error atau tidak dapat diakses ini lah fungsi dari high availability yang perlu ada pada system dari website tersebut. Proses backup ataupun restore pada suatu database sudah wajar dilakukan, baik untuk keperluan pemindahan database, untuk update aplikasi, untuk migrasi server, ataupun pengambilan data agar tidak mengganggu proses yang ada di suatu perusahaan.

Database memiliki beberapa jenis, seperti MySQL, MSSQL, Postgree, Oracle Database, sedangkan layanan cloud juga saat ini telah banyak tersedia contohnya Microsoft Azure dan Amazon Web Service (AWS). Selain backup otomatis juga tidak lupa ada fitur backup manual yang bisa dilakukan dengan mengakses menu task selanjutnya pilih backup atau restore. Pada backup database SQL server ini bisa dilakukan back up full artinya backup dilakukan dengan membackup seluruh data yang ada mulai dari database di inisialisasi sedangkan terdapat differential/incremental backup dimana backup ini hanya meliputi tambahan data dari database tersebut. Kedua metode backup database ini sudah meliputi transaksi dan juga log pada database yang akan di backup. Berikut adalah gambar detail backup database server.

diagram-tanpa-judul-drawio-1

 

 

Referensi :A.P. Wahyu Ari Yuliono, " Sinergi Replikasi Server dan Ssitem Failover pada Datavase untuk Mereduksi Downtime Disaster REcovery Plning ( DRO)," Journal of Informatics and Computer Science, vol.03,2021

Sistem Fuzzy #Bab 5 – Aplikasi Praktis Fuzzy Dunia Nyata

SISTEM FUZZY

Bab 5 ” Aplikasi Praktis Fuzzy Dunia Nyata”

Hallo – hallo sahabat Auls, aku mau sedikit sharing nih dari buku yang udah aku baca

Pada masa kini, sistem fuzzy berkembang dengan pesat. Banyak sistem fuzzy yang dikembangkan menyelesaikan permasalahan – permasalahan yang terjadi di dunia nyata. Permasalah – permasalahan ini mencakup berbagai bidang antara lain bidang kendali, bidang manajemen, bidang rantai pasok, bidang telekomunikasi, dan lain – lain. Pada bab ” Aplikasi Praktis Fuzzy Dunia Nyata” akan membahas aplikasi praktis sitem fuzzy yang digunakan untuk menyelesaikan aplikasi permasalahan di dunia nyata.

1. Permasalahan Bidang Kendali ( Aplikasi Microcontroller)

Perkembangan teknologi kendali mengalami banyak kemajuan dan kendali  konvensional ke kendali otomatik sampai ke kendali cerdas. Logika Fuzzy digunkaan sebagai sistem kendali, karena proses kendali ini relatif mudah, fleksibel, dan dirancang dengan tidak melibatkan model matematis yan rumit dari sistem yang akan dikendalikan.Permasalahan di bidang kendali biasanya adalah mengendalikan sesuatu ( actuar, motor dc, dan lain – lain) berdasarkan input dari sensor yang digunakan ( misalkan suhu, intesitas cahaya, dan lain – lain). Beberapa pengendalian menggunakan microcontroller sebagai unit processing-nya. Sedangkan untuk output biasanya menggunakan metode PWM untuk melakukan kendalinya. Pada sistem pengendalian fuzzy menggunakan microcontroller ini biasanya menggunakan metode Mamdani atau Sugeno.

2. Permasalahan Bidang Telekomunikasi ( Routing pada WSN)

  Wireless Sensor Network (WSN) sebagai salah satu teknologi telekomunikasi bertujuan untuk mngurangi biaya infrastruktur dengan menggunakan komunikasi node to node baiik untuk aplikasi kota maupun aplikasi hutan. Masalah muncul secara alami, karena node dalam jaringan sensor nirkabel tersebar dan bekerja secara independen untuk setiap node.Masalah lain juga terjadi ketika data observasi telah dikumpulkan oleh semua node, data observasi tersebut harus dapat disampaikan kepada node teratas dengan error data minimum. Untuk dapat meminimalkan kesalahan pengirimkan data ketika data hasil pengamatan sensor dikirim ke node teratas, diperlukan adanya suatu algoritma yang mengatur routing (jalur pemilihan transmisi data) pada jaringan sensor nirkabel.

Algoritma routing adalah perilaku dari node jaringan yang mengatur tentang bagaimana node berkomunikasi antara satu sama lain dan memberikan data hasil pengamatan sensor dengan menggunakan komunikasi dan node ke node lainnya, dari node terjauh menuju node terdekat dengan node teratas (stasiun pengumpulan data). Dapat dengan mudah diketahui bahwa cara sederhana untuk mengirimkan dat ahsil pengamatan sensor adalah menggunakan routing jalur terpendek. Algoritma routing rute terpendek adalah algoritma unttuk menemukan jalur terpendek dari node terjauh ke node terminal lebih dekat dengan base stasiun.

3. Permasalah di Bidang Big Data ( Aplikasi Forecasting/Peramalan)

Salah satu permasalahan big data adalah forecasting atau perkiraan adalah cara untuk memberikan infromasi tambahan kepada para pembuat keputusan dengan mengolah data menjadi sebuah data yang menunjukkan tren pergerakan data tersebut dari waktu ke waktu, baik tren naik, tren turun, maupun trend datar.Pada contoh kasus ini, akan menggunakan data mentah berupa data – data penggunaan mesin ATM dari tahun 2017 sampai dengan tahun 2019. Dengan data – data mentah ini, akan memcoba untuk membuat perkiraan tentang kerusakan ATM yang terjadi karena penggunaan sehari – hari.

1. Pengumpulan Data Semesta

2. Mengelompokkan Data – Data

3. Menentukan Interval Setiap Kelompok ( Klasifikasi Data)

4. Fuzifikasi Nilai Linguistik

5. Menentukan FLR dan FLRG (Fuzzy Rule/Inference)

6. Defuzifikasi

7. Pengujian Akurasi Forecasting

Semoga bermanfaat untuk semua

TERIMA KASIH