Penggunaan CRUD Generator pada Laravel

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

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

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

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

Langkah-langkah penggunaan CRUD generator di Laravel
generator-builder

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

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

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

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

Penerapan SEO (Search Engine Optimization) pada Website Menggunakan Laravel

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

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

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

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

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

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

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

Pengembangan Aplikasi Menggunakan Web Service & Framework Laravel

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

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

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

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

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

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

Laravel Eloquent ORM

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

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

Beberapa fitur utama dari Eloquent ORM

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

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

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

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

    php artisan make:model Article

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

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

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

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

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

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

Software Engineering #Chapter 22 : Project Management – Risk Management

risk_management-removebg-preview

 

Hallo teman-teman Akhdani, aku mau sedikit sharing nih dari buku yang udah aku baca

Apa itu Project Management?
Project Management adalah metode penyelesaian proyek dengan melakukan proses initiating, planning, executing, control and monitoring, hingga closing untuk mencapai output/tujuan yang sudah ditentukan.

Dalam pengelolaan proyek dapat mengikuti panduan dari PMBOK Guide 4th Edition yang salah satu isinya ada Risk Management.

Apa itu Risk Management?

Risk Management adalah salah satu pekerjaan terpenting seorang Project Manager yang memikirkan kemungkinan terjadinya risiko dan konsekuensinya terhadap proyek. Risk Management dapat mengantisipasi risiko yang mungkin mempengaruhi jadwal proyek atau kualitas software yang sedang dikembangkan, kemudian mengambil tindakan untuk menghindari risiko tersebut.

Beberapa tahapan yang dapat dilakukan:

screenshot-2023-10-30-105801

  1. Risk Identification
    Pada tahapan ini tim berkumpul untuk bertukar pikiran mengenai kemungkinan risiko yang terjadi sehingga project manager dapat mengidentifikasi risiko berdasarkan pengalaman pada proyek sebelumnya.
    Sebagai titik awal untuk identifikasi risiko, ada 6 (enam) jenis risiko yang dapat dimasukkan dalam daftar risiko:
    a. Estimation
    b. Organizational
    c. People
    d. Requirements
    e. Technology
    f. Tools
  2. Risk Analysis
    Pada tahapan ini project manager harus mempertimbangkan setiap risiko yang teridentifikasi dan mengambil tindakan penilaian tentang kemungkinan dan keseriusan risiko tersebut. Project manager tidak mungkin membuat penilaian numerik yang tepat mengenai probabilitas dan keseriusan setiap risiko, sehingga dapat dilakukan penilaian dengan cara berikut ini:
    a. Kemungkinan risiko dapat dinilai sebagai tidak signifikan (rendah, sedang, tinggi, atau sangat tinggi).
    b. Dampak risiko dapat dinilai sebagai bencana besar (mengancam kelangsungan hidup proyek), serius (akan menyebabkan penundaan besar), dapat ditoleransi (keterlambatan akan terjadi kontingensi yang diperbolehkan), atau tidak signifikan.
  3. Risk Planning
    Pada tahapan ini project manager mengembangkan strategi untuk mengelola risiko-risiko utama yang mengancam proyek. Untuk setiap risiko, project manager harus memikirkan tindakan yang memungkinkan dalam meminimalisir gangguan terhadap proyek jika masalah yang diidentifikasi dalam risiko tersebut terjadi.
  4. Risk Monitoring
    Pada tahapan ini project manager harus memantau risiko secara teratur di semua tahapan proyek, mempertimbangkan dan mendiskusikan setiap risiko utama secara terpisah, memutuskan apakah risiko tersebut lebih besar atau lebih kecil kemungkinannya untuk timbul dan apakah konsekuensi risiko telah berubah.

Sehingga dapat disimpulkan untuk pengajuan proposal manajemen proyek bagian Risk Management tertulis seperti berikut ini: 

421315

Software Engineering #Chapter 3 – Agile Software Development

blog-removebg-preview

Ringkasan Agile Software Development
Metode agile adalah metode pengembangan berulang yang berfokus pada pengurangan biaya overhead dan proses dokumentasi serta pengiriman perangkat lunak tambahan. Metode ini cocok untuk pengembangan aplikasi dimana persyaratan sistem biasanya berubah dengan cepat, kemudian mengusulkan persyaratan baru dan perubahan untuk disertakan dalam iterasi sistem selanjutnya selama proses pengembangan.

Scrum merupakan metode agile yang telah muncul sebagai metode yang paling banyak digunakan. Proses scrum atau siklus sprint menghasilkan peningkatan produk dari setiap iterasi proses, kemudian dapat dikirimkan ke pelanggan. Titik awal siklus sprint scrum adalah product backlog. Product backlog merupakan daftar dari item seperti fitur produk, dokumen requirement, daftar cerita pengguna, atau deskripsi lain dari software yang akan dikembangkan oleh tim Scrum. Kemudian seluruh tim dilibatkan dalam memilih item mana yang memiliki prioritas tertinggi dan memperkirakan waktu yang dibutuhkan untuk menyelesaikan setiap sprint.

Dalam berbagai kisah sukses Scrum (Schatz and Abdelshafi 2005; Mulder and van Vliet 2008; Bellouiti 2009), hal-hal yang disukai pengguna tentang metode Scrum adalah:

  1. Produk dipecah menjadi serangkaian bagian yang dapat dikelola bersamaan dan dipahami oleh para pemangku kepentingan.
  2. Perubahan requirement saat pengembangan software tidak menghambat kemajuan progress.
  3. Seluruh tim dapat melihat progress pengerjaan produk, sehingga komunikasi dan semangat tim meningkat.
  4. Pelanggan melihat kemajuan progress, deliverable tepat waktu, dan mendapatkan feedback tentang produk dengan jangka waktu yang cukup pendek.
  5. Kepercayaan antara pelanggan dan pengembang terjalin, dimana setiap pelanggan mengharapkan produk berhasil dan sesuai dengan yang diharapkan.

Diketahui sebagian besar software engineering melakukan pemeliharaan dan pengembangan dari sistem yang ada. Berikut adalah keunggulan pada metode agile software development:

  1. Up to date, karena lebih fleksibel dan menerima perubahan berkelanjutan.
  2. Resource yang dibutuhkan tidak terlalu banyak.
  3. Alur kerja lebih singkat dan efisien,  sehingga kinerja tim menjadi lebih stabil.
  4. Interaksi antara client dan developer menjadi lebih intens dan responsif terhadap kebutuhan pengembangan software.

Tetapi bagaimana jika business requirement saat pemeliharaan perangkat lunak melibatkan sistem kustom yang harus diubah, tidak ada konsensus yang jelas mengenai kesesuaiannya?
Tiga jenis masalah dapat terjadi:

  1. Kurangnya dokumentasi produk dari pembangunan perangkat lunak sebelumnya
  2. Menjaga keterlibatan pelanggan dalam proses pengembangan
  3. Tim pengembangan harus dapat memahami perangkat lunak sebelumnya

Kesimpulan
Menurut saya buku ini sangat menarik untuk pembaca yang ingin mengetahui teknik agile development seperti user stories, refactoring, pair programming and test-first development. Pada buku ini pembaca juga dapat memahami perbedaan antara metode agile software development dengan plan-driven development, dan isu-isu pada scaling agile methods.