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)

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

 

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.

Mengenal Laravel Spatie untuk Pengaturan Role dan Permission

Haloo kreatif reader.. kali ini aku mau bahas tentang laravel spatie untuk pengaturan role dan permission.

Sebelum masuk ke pembahasan laravel spatie, kita pahami dulu apa perbedaan antara role dan permission. Role digunakan untuk menentukan izin tindakan apa yang dapat dilakukan oleh pengguna atas role tersebut. Misalnya, dalam platform blog, role dapat mencakup “admin”, “penulis”, dan “pelanggan”, dengan beberapa permission seperti “buat postingan”, “edit postingan”, atau “kelola pengguna”.

Pembuatan role dan permission pada proses pembangunan aplikasi web merupakan hal yang penting, untuk itu dalam pembuatan aplikasi laravel sudah terdapat package untuk mengelola role dan permission yaitu dengan menggunakan laravel spatie. Dengan Spatie Permissions ini, kita dapat menentukan izin akses pengguna untuk setiap tindakan pada aplikasi secara dinamis.

Fitur utama dari Laravel Spatie permission adalah sebagai berikut:

1. Manajemen Peran
Dengan menggunakan package ini akan mempermudah pengelolaan role seperti membuat, mengedit, dan menghapus role. Selain itu peran yang dibuat bisa di kustom sesuai kebutuhan aplikasi.

2. Manajemen Izin
Dalam laravel spatie permission, dapat mendefinisikan berbagai izin yang dapat diberikan kepada setiap peran. Misalnya izin untuk “Membuat”, “Mengedit”, atau “Menghapus” suatu data dalam apliaksi yang dibuat.

3. Penugasan Peran
Penugasan banyaknya peran dan tingkatan akses pengguna berdasarkan peran dapat diatur dengan dengan mudah dan cepat.

4. Pemeriksaan Izin
Laravel spatie menyediakan metode untuk memeriksa izin yang dimiliki oleh pengguna saat aplikasi berjalan, selain itu dapat ditentukan juga apakah pengguna tersebut memiliki izin untuk melakukan aksi tertentu dalam aplikasi.

5. Pengelompokkan Izin
Pada package ini memungkinkan untuk membuat pengelompokan izin ke dalam beberapa kategori tertentu sehingga izin yang ada lebih terstruktur.

Selain fitur-fitur utama diatas, salah satu keunggulan laravel spatie adalah penerapannya yang mudah dan cepat. Laravel Spatie juga merupakan salah satu package yang cukup populer, sehingga banyak referensi dokumentasi untuk menggunakan package tersebut.


Referensi:
Hisyam Al Qossam, Abbad. Membangun Website Reservasi Restoran dengan Laravel dan Reactsjs. 2023. fliphtml5.com
Angga, Buildwith. (2023, July 27). 5 Package Laravel Terbaik Untuk Web Developer. BuildWithAngga

Exploring Laravel Dusk: End-to-End Testing

Halo, Sobat Kreatif! Pada artikel ini, akan membahas pengenalan Laravel Dusk. Laravel Dusk merupakan salah satu tools untuk melakukan automation testing pada web browser. Fitur ini diinisiasi pada Laravel versi 5.4. dengan memanfaatkan otomasi menggunakan ChromeDriver dan Facebook Php-webdriver, sehingga tidak lagi memerlukan instalasi JDK atau Selenium.

Laravel Dusk melakukan testing dengan memanfaatkan selektor pada elemen JavaScript ataupun CSS seperti name, class, dan id.

Untuk selektor berdasarkan nama (name) bisa langsung menuliskannya dalam action. Seperti selektor elemen input dengan name email, maka dapat ditulis

…->type(‘email’, $user->email)

Sementara untuk selektor type class dan id, penulisannya seperti pada CSS atau JavaScript, yaitu dengan menggunakan prefix titik ( . ) untuk class dan prefix tanda hash ( # ) untuk id.

Untuk dokumentasi pada saat melakukan testing, Laravel Dusk menyediakan fitur screenshot, dimana setiap test case yang di running kemudian terdeteksi failed atau gagal dieksekusi, maka akan otomatis mengambil screenshot hasil testing dan menyimpannya dalam direktori screenshottests/Browser/screenshots.

Tahapan yang harus dilakukan untuk melakukan installasi Laravel Dusk adalah sebagai berikut:

1. Lakukan installasi Google Chrome dan tambahkan dependency Composer pada project dengan syntax berikut

composer require laravel/dusk --dev

2. Install konfigurasi Laravel Dusk

php artisan dusk:install

3. Lakukan konfigurasi browser driver dengan menjalankan perintah berikut

php artisan dusk:chrome-driver --all

4. Generate script dasar test case

php artisan dusk:make NamaTest

5. Modifikasi script test case dengan skenario yang diinginkan.

6. Running test case yang telah dibuat

//Running semua test case
php artisan dusk

//Running test case yang gagal
php artisan dusk:fails

//Running test case secara spesifik
php artisan dusk -‐filter LoginTest

7. Hasil test akan muncul pada log dengan menunjukkan keterangan berhasil ataupun gagal.


Reference: Laravel Dusk - Laravel 10.x - The PHP Framework For Web Artisans

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 

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.

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

Dokumentasi API L5-Swagger pada Laravel

Haloo kreatif reader.. kali ini aku mau bahas tentang Dokumentasi API L5 Swagger pada Laravel.

Dokumentasi API adalah dokumentasi yang berisi kumpulan panduan penggunaan API terhadap suatu program atau aplikasi. Dokumentasi API ini digunakan sebagai acuan untuk mendeskripsikan API secara menyeluruh sehingga penggunaan API dapat mudah dipahami oleh seluruh tim pengembang ataupun pengembangan lain untuk pemeliharaan aplikasi selanjutnya.

Salah satu tools  yang dapat digunakan untuk mendokumentasikan API adalah Swagger. Swagger merupakan framework populer yang digunakan untuk OpenAPI Specification (OAS). Penggunaan swagger dapat menyederhanakan proses dokumentasi API secara  interaktif. Dokumentasi yang dihasilkan dapat dengan mudah dipahami oleh pengguna teknis maupun non-teknis.

Saat ini swagger sudah dapat digunakan langsung pada framework Laravel dalam bentuk package L5 Swagger yang bekerja dengan mengadaptasi swagger-php dan swagger-ui.

Untuk melakukan instalasi dan setup L5 Swagger pastikan laravel dan composer sudah terinstall di laptop pengguna. Setelah itu ikuti langkah-langkah instalasi package l5swagger berikut ini:

1. Install package l5 swagger melalui composer

composer requires darkonline/l5-swagger tymon/jwt-auth

2. Publish file konfigurasi L5Swagger

php artisan vendor: publish --provider "L5Swagger\L5SwaggerServiceProvider"

3. Konfigurasi Swagger
Buka file config/l5-swagger.php dan sesuaikan pengaturan misalnya dengan mengonfigurasi path API documentation, keamanan, dan lainnya.

4. Tambah anotasi swagger ke Route dan Controllers
Contoh penggunaan anotasi pada route:

/**
* @OA\Get(
* path="/api/user",
* summary="Get a list of users",
* tags={"Users"},
* @OA\Response(response=200,
* description="List of users",
* ),
* )
*/

Contoh penggunaan anotas pada contollers

/**
* @OA\Info(
* title="Swagger with Laravel",
* version="1.0.0",
* )
* @OA\SecurityScheme(
* type="http",
* securityScheme="bearerAuth"
* scheme="bearer"
* bearerFormat="JWT"
* )
*/

5. Generate dokumentasi Swagger

php artisan l5-swagger:generate

Perintah ini akan menghasilkan file JSON swagger dan secara default menyimpannya di direktori publik.

6. Akses halaman swagger dengan mengunjungi url yang telah dibuat pada file konfigurasi. Contohnya ‘http://your-app-url/api/documentation’

Berikut ini contoh tampilan hasil generate dokumentasi swagger:

swagger-ui-1-768x363

Dengan penggunaan l5 swagger yang mudah diimplementasi ini, diharapkan dapat mendorong kolaboarasi yang lebih baik dan mempercepat pengembangan API pada aplikasi laravel yang dibuat.


Referensi:
Upadhyay, Mayur. (2024, January 04). Laravel Swagger Integration: A Step-by-Step-Guide. WPWEB Infotech.
Kolodii, Ivan. (2020, May 10). How to write Swagger Documentation for Laravel API. Tips & Example. Medium.