https://demarches.yvetot-normandie.fr/?daftar=QQ+SLOT+ONLINE+TERPERCAYA Uncategorized – Page 3 – Official Blog of Akhdani Reka Solusi

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

PHP Framework Codeigniter

blog-ars

Halo kreatif readers.. kali ini saya akan membahas tentang salah satu framework PHP yaitu Codeigniter.

Codeigniter (CI) adalah framework PHP yang digunakan untuk membangun aplikasi berbasis web yang dinamis.  Codeigniter merupakan platform open-source yang cukup populer dikalangan tim pengembang yang menggunakan bahasa pemrograman PHP. Keunggulan dari Codeigniter ini yaitu ringan dan menerapkan konsep MVC (Model, View, Controller) sehingga membuat pekerjaan lebih efektif dan cepat.

MVC (Model, View, Controller) adalah konsep atau paradigma pemrograman yang memisahkan komponen utama menjadi 3 bagian berikut:
1. Model
Model adalah bagian penanganan yang berhubungan atau manipulasi data dengan database, seperti pengambilan data dari database dan instruksi untuk proses CRUD.
2. View
View merupakan bagian penanganan interface atau antarmuka web yang muncul kepada user.
3. Controller
Controller yaitu bagian instruksi aksi yang merupakan jembatan yang menghubungkan model dan view.

Berikut ini merupakan gambaran alur kerja MVC:

mvc

Dari gambar diatas dapat dilihat alur kerja MCV, dari bagian view yang bertugas meminta informasi ke controller untuk ditampilkan ke device pengguna, permintaan itu diteruskan oleh controller ke bagian model agar dieksekusi. Lalu model mengolah dan mencari informasi ke database, setelah selesai hasil diberikan ke controller kemudian diproses untuk ditampilkan ke view.

Beberapa manfaat dari penggunaan Codeigniter adalah:
1. Lebih cepat dan efisien, hal ini karena beberapa modul yang dibutuhkan untuk melakukan pengembangan sudah disediakan oleh Codeigniter, sehingga dapat menghemat waktu dan dapat bekerja dengan efisien.
2. Mendukung kolaborasi, karena pengerjaan proyek dapat dengan mudah dikembangkan bersama tim dengan adanya standar penulisan kode yang sama.
3. Salah satu keunggulan Codeigniter dibandingkan kerangka kerjanya lainnya adalah ukurannya yang kecil (kurang dari 5 MB), sehingga lebih hemat ruang di server.
4. Keamanan lebih baik karena sudah tersedia beberapa fitur untuk meningkatkan keamanan pada framework-nya.
5. Kerangka dan penulisan kode akan lebih terskturkur karena sudah menerapkan model MVC.

Saat ini Codeigniter telah tersedia dengan versi terbaru yaitu Codeigniter 4 yang dirilis pada tahun 2020. Perbedaan utama dari CI 4 dibandingkan dengan versi sebelumnya terletak pada struktur direktori, sistem penulisan kode, konfigurasi, dan adanya fitur-fitur baru.

Beberapa keunggulan baru  yang diberikan dari CI4 ini yaitu sebagai berikut:
1. Dapat melakukan instalasi langsung menggunakan Composer
2. Memiliki Local Development Server
3. Menggunakan PHP versi 7.2 ke atas
4. Struktur direktori berbeda, dimana semua file diletakkan dalam folder app
5. Menggunakan NameSpace
6. Memiliki AutoLoading yang efektif
7. Memiliki File.env
8. Memiliki CLI (Command Line Interface)
9. Adanya fitur REST
10. Dokumentasi lebih praktis

Dari keunggulan yang diberikan Codeigniter 4 diatas, penggunaan Codeigniter 4 memungkinkan pengembang untuk membangun aplikasi web yang lebih modern dan responsif. Namun untuk pemilihan penggunaan framework ini tetap perlu memperhatikan kembali dari segi struktur dan kebutuhan aplikasi web yang akan dibangun/dikembangkan.

Software Testing

Presentation are communication tools that can be used to as demo

Halo sahabat Akhdani, tulisan kali ini membahas tentang Software Testing dari buku Software Engineering – Ian Sommerville.

Software testing adalah proses pengujian pada perangkat lunak yang bertujuan untuk memastikan aplikasi yang dibangun sesuai dengan kebutuhan klien dan untuk menemukan cacat fitur sebelum aplikasi digunakan.

Proses pengujian dilakukan dengan dua pendekatan. Yang pertama adalah pengujian validasi yaitu melakukan pengujian menggunakan serangkaian test case untuk memastikan sistem bekerja dengan baik dan sesuai dengan kebutuhan yang tercantum dalam dokumen requirement. Yang kedua adalah melakukan pengujian untuk menemukan cacat (bug) menggunakan serangkaian test case dan data dummy yang sengaja dibuat untuk menghasilkan sistem agar berjalan dengan tidak semestinya. Selanjutnya hasil pengujian ditunjukkan kepada tim pengembang dan klien.

Pengujian juga merupakan bagian dari proses verifikasi dan validasi perangkat lunak. Proses ini bertujuan untuk membangun keyakinan bahwa sistem perangkat lunak “sesuai dengan tujuannya.” Artinya, sistem tersebut harus cukup baik untuk tujuan penggunaannya, dan sudah memenuhi spesifikasi dan memberikan fungsionalitas sesuai yang diharapkan.

A. Development Testing
Development testing merupakan keseluruhan aktivitas pengujian yang dilakukan oleh tim yang sedang membangun sistem. Pengujian biasanya dilakukan oleh programmer yang membuat software, namun bisa juga programmer memiliki pasangan penguji yang membantu dan mengembangkan proses pengujian. Untuk sistem yang critical dan proses yang lebih formal, dapat dibuat kelompok pengujian (tim tester) terpisah dalam tim pengembangan. Kelompok ini bertanggung jawab untuk mengembangkan pengujian dan memelihara catatan ricin hasil pengujian.
Pengujian dalam pengembangan aplikasi terdiri dari beberapa tahap pengujian berikut:
1. Unit testing adalah proses pengujian komponen aplikasi yang paling sederhana, seperti function, method atau object class yang ada di dalamnya. Pertama-tama penguji harus merancang test case pengujian dan mengelompokkan test case menjadi  positive test case dan negative test case untuk setiap method. Pemilihan atau pengelompokan unit test cases ini dilakukan untuk mengefektifkan proses pengujian.
2. Component testing merupakan pengujian dari beberapa objek yang saling berinteraksi. Component testing ini difokuskan pada komponen antarmuka.
3. System testing adalah pengujian yang memeriksa seluruh komponen sistem yang sudah terintegrasi, pada pengujian ini dipastikan apakah interaksi pada sistem sudah berjalan dengan baik.

B. Test Driven Development
Test Driven Development (TDD) merupakan suatu pendekatan pengembangan aplikasi yang mengacu pada pengujian sebelum melakukan proses coding. Pengembangan berbasis pengujian ini merupakan pendekatan yang banyak digunakan karena dianggap lebih produktif untuk mengembangkan perangkat lunak. Berikut ini gambaran langkah-langkah proses TDD:

Proses TDD
Gambar: Proses TDD

Keuntungan dari penggunaan TDD yaitu:
– Mengurangi biaya produksi pembangunan perangkat lunak.
– Rangkaian regression test terus dikembangkan secara bertahap seiring dengan pengembangan kode program.
– Menyederhanakan proses debug, ketika pengujian gagal maka letak masalah akan terlihat jelas.
– Tes yang dibuat merupakan dokumentasi sistem yang dideskripsikan dalam bentuk kode, sehingga memudahkan proses pembuatan dokumentasi.

C. Release Testing
Pengujian ini dilakukan untuk memastikan bahwa sistem sudah cukup baik untuk digunakan dari segi fungsionalitas, kinerja, dan keandalan sistem. Pada pengujian ini dilakukan requirement-based testing yaitu memeriksa setiap persyaratan untuk mengembangkan pengujian sertam pembuatan test case dan test scenario.
Setelah sistem terintegrasi sepenuhnya, di tahap ini dilakukan performace test dengan menjalankan serangkai pengujian peningkatan bebanpada aplikasi untuk melihat kegagalan yang terjadi pada aplikasi. Contohnya yaitu pengujian pada suatu aplikasi yang bisa memproses 300 transaksi per detik, lalu dilakukan pengujian lebih dari 300 transaki per detik hingga melampaui beban desain maksimum sistem dan sistem gagal. Jika sistem berjalan dengan baik sampai batas transaksi sesuai dengan kebutuhan sistem, maka aplikasi dinyatakan lulus pengujian.

D. User Testing
User testing merupakan tahapan proses pengujian dimana pengguna atau klien memberikan masukan dan saran terhadap pengujian sistem. User testing terdiri dari beberapa jenis, sebagai berikut:
1. Alpha testing, pengujian yang dilakukan oleh tim pengembang di lingkup internal.
2. Beta testing, pengujian yang dilakukan oleh tim pengembang bersaam dengan end user sebelum aplikasi resmi dirilis.
3. Acceptance testing, klien menguji aplikasi unutk memutuskan apakah aplikasi sudah sesuai dan siap diterima atau tidak diterapkan di lingkungan klien.
Berikut ini gambaran proses acceptance testing:

acrobat_twxnwq1its
Gambar: Acceptance testing process

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

Software Process Model

Judul Buku: Software Engineering
Edisi : Tenth Edition
Pengarang : Ian Sommerville
Penerbit : Pearson Education Limited
Bagian yang dibaca
Bab 2 : Software Processes
Halaman : 43 s.d 65


Software Process adalah serangkaian aktivitas pada pembuatan perangkat lunak.

Ada 4 aktivitas dasar dalam rekaya perangkat lunak yaitu:

  1. Specification, menentukan spesifikasi dari fungsionalitas perangkat lunak dan batasan pengoperasiannya.
  2. Design and implementation, pengembangan perangkat lunak yang sesuai dengan spesifikasi diatas.
  3. Validation, validasi perangkat lunak Perangkat untuk memastikan bahwa perangkat lunak tersebut berfungsi diinginkan pelanggan.
  4. Evolution, evolusi perangkat lunak untuk memenuhi perubahan kebutuhan pelanggan

Software process model atau yang biasa disebut Software Development Life Cyctle (SDLC) adalah suatu representasi sederhana dari rangkaian proses pengembangan software. Dari proses model kita hanya melihat kerangka proses, tetapi tidak melihat detail dari aktivitas masing-masing proses tersebut.
Pada buku ini dijelaskan sejumlah model proses yang sangat umum (paradigma proses) dan biasa digunakan dalam membuat rekayasa perangkat lunak yang lebih spesifik. Berikut ini akan dijelaskan beberapa model proses yang umum digunakan:

1. The Waterfall Model
Tahapan pada model ini dari satu fase ke fase lainnya bersifat cascade, hal ini lah yang menjadikan proses model ini dikenal sebagai model waterfall.Berikut ini adalah tahapan pengembangan software pada model waterfall:

1. Requirements analysis and definition
Pada tahap ini dilakukan analisis requirement dan batasan-batasan pembuatan aplikasi. Hasil dari analisis akan didefinisikan sebagai spesifikasi dari sistem yang dibuat.
2. System and software design
Pada tahap ini dilakukan desain sistem dan aplikasi seperti membuat desain arsitektur sistem secara keseluruhan untuk hardware dan software yang digunakannya.
3. Implementation and unit testing
Tahap ini adalah pembangunan perangkat lunak, selama pembangunan perangkat lunak berlangsung dilakukan juga unit tes terhadap aplikasi untuk memastikan perangkat lunak yang dibuat memenuhi spesifikasi yang telah dibuat.
4. Integration and system testing
Pada tahap ini dilakukan integrasi dari modul-modul yang sudah dibuat sebelumnya dan diuji sebagai sebuah sistem yang lengkap. Pengujian dilakukan untuk memastikan perangkat lunak telah memenuhi semua requirement-nya. Setelah pengujian selesai, perangkat lunak diserahkan ke pelanggan.
5. Operation and maintenance
Pada tahap terakhir ini sistem diinstal di environment production untuk dijalankan. Selama sistem berjalan dilakukan pemeliharaan berupa perbaikan bug.

Model waterfall ini cocok untuk pengembangan software yang memerlukan banyak biaya produksi. Setiap proses yang dilakukan tidak saling tumpah tindih karena untuk melanjutkan fase berikutnya harus menunggu fase sebelumnya benar-benar selesai. Hal ini menjadikan model ini kurang cocok untuk diimplementasi dalam pembangunan software dengan kompleksitas yang tinggi.

2. Incremental Development
Pembangunan inkremental adalah pengembangan software yang dibuat berdasarakan rancangan awal yang dipecah menjadi beberapa fungsi atau bagian sehingga pengembangan software dilakukan secara bertahap. Untuk increment pertama dilakukan pengembangan fitur-fitur utama sesuai dengan spesifikasi kebutuhan aplikasi yang telah didefinisikan diawal pekerjaan. Beberapa modul atau fitur yang telah dibangun dapat langsung dievaluasi lebih awal oleh klien untuk dilihat apakah sistem sudah sesuai kebutuhan. Untuk modifikasi fitur yang lebih canggih dapat dikerjakan pada inkremen selanjutnya dengan tetap memperhatikan timeline penyelesaian proyek.
Dengan mengembangkan software secara bertahap ini akan lebih murah dari segi biaya dan mempermudah dalam melakukan perubahan pada software yang sedang dikembangkan. Tetapi model ini tidak cocok diimplementasi dalam pembangunan sistem yang besar, kompleks, dan berjangka watu yang panjang. Karena sistem yang besar memerlukan kerangka kerja dan arsitektur yang stabil.

3. Integration and Configuration
Proses ini melakukan pendekatan yang berorientasi penggunaan kembali software dengan mengintegrasikannya. Tahapan porses model ini yaitu:
Requirement Specification, tahap ini melakukan deskripsi singkat mengenai pesyaratan penting dan fitur sistem yang akan dibangun.

  1. Software discovery and evaluation, berdasarkan requirement yang sudah dibuat dilakukan pencarian komponen dan sistem yang menyediakan fungsionalitas yang diperlukan lalu dievaluasi untuk melihat apakah komponen tersebut benar-benar penting dan secara umum cocok diimplementasi pada sistem yang akan dibangun.
  2. Requirements refinement
  3. Application system configuration, jika sistem aplikasi siap pakai dan memenuhi persayaratan yang telah ada, maka sistem dapat dikonfigurasi dan digunakan dalam pembuatan sistem baru.
  4. Component adaption and integration, jika tidak ada sistem yang siap pakai, maka masing-masing komponen yang dapat digunakan kembali akan dimodifikasi dan komponen baru akan dikembangkan. Nantinya komponen-komponen ini akan dintegrasikan untuk membuat suatu sistem.
    Dengan menggunakan model ini maka dapat mengurangi biaya pengembangan dan delivery software cenderung lebih cepat.

Pada proses pengembangan software juga terdapat beberapa aktivitas untuk mengatasi perubahan. Hal ini dapat dilakukan dengan pembuatan Prototipe yang bisa membantu mengeksplorasi solusi software dan dalam pembuatan antarmuka. Atau bisa dengan melakukan proses penyampaian yang bertahap sehingga perubahan dapat dilakukan tanpa mengganggu sistem secara keseluruhan. Lalu lakukanlan proses improvement dari pengembangan software yang telah dilakukan sehingga dapat meningkatkan kualitas software yang dibuat.


Kesimpulan:
Pada buku ini dijelaskan proses model dan aktivitasnya yang umum digunakan dalam software development. Setiap tahapan pada masing-masing proses model dijelaskan dengan rinci sampai dengan keuntungan dan kekurangannya. Selain membahas proses model, pada buku ini dijelaskan aktivitas untuk mengatasi perubahan dalam pengambangan software, dan bagaimana kita melakukan proses improvement-nya. Sehingga buku ini dapat dijadikan referensi untuk mempelajari software processes model. Dengan mengetahui tentang beberapa proses model ini dapat memudahkan tim pengembang dalam memilih model proses yang sesuai dengan pekerjannya dan dapar menerapkan sehingga dapat membantu tim pengembang memahami keseluruhan proses bisnis dan proses pengembangan software dapat berjalan dengan efektif.

 

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

 

Akhdani Tech Talk 2021 Series #6 – Load Test WebRTC

Load Test WebRTC

Oleh: Muhamad Indra Kusmana, Rahmat Hidayat, Rahmat Setiawan

Apa itu WebRTC?

WebRTC (Web Real-TIme Communication) merupakan teknologi yang memungkinkan kita melakukan komunikasi secara real-time menggunakan video dan audio secara langsung pada halaman web. Contoh aplikasi yang menggunakan teknologi ini misalnya Google Meet, Zoom, Microsoft Teams, dan sebagainya.

Teknologi WebRTC

WebRTC menggunakan 3 komponen utama:

  1. Media Stream
    Untuk penggunaan media device dan merepresentasikan data audio dan video kedalam bentuk stream.
  2. Peer Connection
    Memungkinkan 2 atau lebih pengguna terkoneksi secara bersamaan.
  3. Data Channel
    Memungkinkan pengguna mengirim data dalam bentuk text chat, file sharing, dsb secara bersamaan.

Apa itu Load Test?

Load test adalah proses pengujian non-functional suatu aplikasi dimana performa diuji dengan load tertentu. Proses ini dilakukan untuk mengetahui bagaimana suatu aplikasi dapat berjalan pada saat penggunaan dalam jumlah banyak dan waktu bersamaan.

Permasalahan Load Test pada WebRTC

Seperti aplikasi berbasis web yang diakses oleh banyak pengguna pada umumnya, tentunya load test perlu dilakukan pada aplikasi WebRTC untuk mengetahui performa dari aplikasi tersebut saat diakses oleh banyak pengguna pada waktu bersamaan. Sayangnya saat ini tidak banyak tools open source untuk yang tersedia untuk melakukan load test pada WebRTC. Selain itu beberapa tools hanya tersedia untuk aplikasi yang menggunakan platform yang sama dengan tools tersebut.

Tujuan

Sample aplikasi yang kami gunakan pada pengujian kali ini adalah sebuah aplikasi sederhana, dimana terdapat 2 halaman podium dan student. Halaman podium akan melakukan broadcast ke halaman student yang berada pada room yang sama berupa screen sharing dan audio. 

 1-1

Gambar 1.1: tampilan halaman podium

 1-2

Gambar 1.2: tampilan halaman student

Pada pengujian ini, akan dilakukan load test pada aplikasi WebRTC menggunakan Apache Jmeter dan Cypress. Metode pengujian dilakukan dengan cara melakukan sejumlah koneksi pada aplikasi. Hal ini dapat berguna untuk mengetahui berapa jumlah maksimal pengguna yang dapat terhubung pada aplikasi yang dibangun pada waktu bersamaan.

Apache JMeter

JMeter merupakan aplikasi berbasis Java yang didesain untuk melakukan load test mengukur performa suatu aplikasi. Pada pengujian ini, JMeter akan mensimulasikan sejumlah pengguna dengan membuat banyak koneksi menggunakan chrome headless mode.

 2-1

Gambar 2.1: Script untuk melakukan koneksi ke aplikasi WebRTC menggunakan chrome headless mode

2-2

Gambar 2.2: Hasil build dalam bentuk jar

2-3

Gambar 2.3: Konfigurasi pada JMeter dengan sampler menggunakan Java Request

2-4

Gambar 2.4: Hasil eksekusi JMeter(1)

2-5

Gambar 2.5: Hasil eksekusi JMeter (2)

2-6

Gambar 2.6: Console log aplikasi WebRTC menampilkan jumlah subscriber yang terhubung

 

Cypress

Cypress merupakan end-to-end test framework berbasis Javascript. Pada pengujian ini, penggunaan Cypress dilakukan untuk menyimulasikan sejumlah pengguna dengan membuka aplikasi WebRTC pada banyak halaman sekaligus.

3-1

Gambar 3.1: Script untuk melakukan koneksi ke aplikasi WebRTC

3-2

Gambar 3.2: Script untuk melakukan replikasi koneksi

3-3

Gambar 3.3: Hasil eksekusi Cypress

Kesimpulan

Beberapa poin penting pada penggunaan Apache JMeter:

  1. Tidak bisa menggunakan HTTP Sampler, sehingga harus menggunakan Sampler Java Request.
  2. Sulit mencari referensi, karena masih sangat jarang yang melakukan. Referensi terbaik yang didapat: https://www.cnblogs.com/chenkx6/p/13639629.html
  3. Hasil eksekusi pada JMeter menampilkan error meskipun koneksi berhasil dilakukan, sehingga untuk melihat jumlah koneksi yang terhubung dapat dilihat melalui log aplikasi

Poin penting pada penggunaan Cypress:

  1. Selalu terjadi error di sekitar iterasi ke-10. Terdapat tiket terkait issue tersebut pada forum https://github.com/cypress-io/cypress/issues/1305 (status: open saat pengujian dilakukan, 28 Januari 2021)

Akhdani Tech Talk 2021 Series #3 – PENGGUNAAN E-PROCUREMENT BAGI PERUSAHAAN

Apakah e-Procurement itu??
e-Procurement adalah proses pengadaan barang/jasa pemerintah yang pelaksanaannya dilakukan secara elektronik dan berbasis web/internet dengan memanfaatkan fasilitas teknologi komunikasi dan informasi yang meliputi pelelangan umum secara elektronik yang diselenggarakan oleh Pusat Layanan Pengadaan Secara Elektronik (LPSE).
Dilatarbelakangi oleh tuntutan masyarakat dalam memperoleh informasi seluas-luasnya mengenai pengadaan barang/jasa pemerintah dan penyelenggaraan pemerintah yang baik dan bebas dari Korupsi, Kolusi, dan Nepotisme (KKN), maka pemerintah menerapkan e-Procurement dengan tujuan untuk menciptakan transparansi, efisiensi dan efektivitas serta akuntabilitas dalam pengadaan barang/jasa melalui media elektronik antara panitia dan penyedia jasa.

Jika kita berbicara tentang LPSE, Apakah LPSE itu? LPSE (Layanan Pengadaan Secara Elektronik) adalah layanan pengelolaan teknologi informasi untuk memfasilitasi pelaksanaan Pengadaan Barang/Jasa secara elektronik.

Dasar Hukum Pembentukan LPSE
Dasar hukum pembentukan Layanan Pengadaan Secara Elektronik adalah Pasal 73 Nomor 16 Tahun 2018 tentang pengadaan barang/jasa pemerintah yang ketentuan teknis operasionalnya diatur oleh Peraturan Lembaga LKPP Nomor 14 Tahun 2018 tentang Layanan pengadaan Secara Elektronik. Layanan Pengadaan Secara Elektronik dalam menyelenggarakan sistem pelayanan Pengadaan Barang/Jasa secara elektronik juga wajib memenuhi persyaratan sebagaimana yang ditentukan dalam Undang-undang Nomor 11 Tahun 2008 tentang Informasi dan Transaksi Elektronik.

SPSE (Sistem Pengadaan Secara Elektronik)
SPSE merupakan aplikasi e-Procurement yang dikembangkan oleh Direktorat Pengembangan Sistem Pengadaan Secara Elektronik – LKPP untuk digunakan oleh Layanan Pengadaan Secara Elektronik di seluruh K/L/PD. Aplikasi ini dikembangkan dengan semangat efisiensi nasional sehingga tidak memerlukan biaya lisensi, baik lisensi SPSE itu sendiri maupun perangkat lunak pendukungnya.
SPSE dikembangkan oleh LKPP bekerja sama dengan:
1. Badan Siber dan Sandi Negara (BSSN) untuk fungsi enkripsi dokumen;

logo_bssn
2. Badan Pengawasan Keuangan dan Pembangunan (BPKP) untuk sub sistem audit.

bpkp_logo

 

LKPP (Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah)

foto-lkpp
Lembaga Kebijakan Pengadaan Barang/Jasa Pemerintah (LKPP) merupakan Lembaga Pemerintah Non Departemen yang berada di bawah dan bertanggung jawab kepada Presiden dan dibentuk berdasarkan Perpres No 106 tahun 2007.
LKPP merupakan lembaga pemerintah satu-satunya yang mempunyai tugas melaksanakan pengembangan dan perumusan kebijakan pengadaan barang/jasa Pemerintah, dan dalam melaksanakan tugas dan fungsinya LKPP dikoordinasikan oleh Menteri Negara Perencanaan Pembangunan Nasional.

SIKaP (Sistem Informasi Kinerja Penyedia)

Aplikasi yang merupakan subsistem dari SPSE yang digunakan untuk mengelola data/informasi mengenai data kualifikasi Pelaku Usaha dan riwayat kinerja Penyedia Barang/Jasa.

Akhdani Tech Talk 2021 Series #2 – Smarthome

Masalah dan Ide

Pada zaman sekarang, dimana internet sudah menjadi hal yang lumrah bagi banyak orang, membuat teknologi ini dimanfaatkan dalam berbagai aspek untuk mempermudah pekerjaan sehari-hari. Salah satu penerapannya adalah smarthome, sekarang banyak perangkat-perangkat yang berada dirumah dan dapat di-Monitoring dan dikontrol secara lebih mudah melalui aplikasi mobile atau web dari jarak jauh dengan memanfaatkan jaringan internet. Tujuan dari smarthome ini adalah untuk mempermudah pekerjaan yang sebelumnya harus dilakukan secara manual dan berada di rumah, menjadi lebih efisien dan bisa dilakukan dari jarak jauh. Hal ini tentu saja membuat penghematan daya lebih maksimal, meningkatkan keamanan dan juga kenyamanan penghuni rumah. Smarthome sendiri merupakan sistem yang telah diprogram dan dapat bekerja dengan bantuan komputer untuk mengendalikan sebuah perangkat. Montoring dan kontrol  pada sistem smarthome membutuhkan berbagai macam komponen mulai dari hardware dan software yang terintegrasi. Pada penerapan kali ini perangkat yang digunakan adalah gabungan Lampu i-Switch dari Anjels, i-Net dari Anjels, Router, dan Server API. Anjels sendiri merupakan perusahaan yang menyediakan produk-produk IoT dan juga sebagai konsultan IoT.

Rencana Implementasi

Mengatur lampu melalui smartphone

schematic-document-page-1

Berikut ini merupakan skema pemasangan wireless control system pada lampu :

  1. Smarthome App (Smartphone)
    • Menerima status terkini dari Server API
    • Mengirimkan perintah konfigurasi lampu ke Server API
  2. Server API
    • Menerima perintah konfigurasi dari Smarthome App, kemudian Meneruskan perintah konfigurasi ke I-Net
    • Menerima status terkini lampu melalui I-Net, kemudian meneruskan status status terkini lampu ke Smarthome App
  3. I-Net
    • Menerima perintah dari Server API atau Voice Bridge dan mengirim konfigurasi ke I-Switch untuk penggunaan lampu.
  4. I-Switch
    • Menerima perintah dari I-Net, kemudian mengatur lampu sesuai perintah yang diterima
  5. Router
    • Menyediakan jaringan internet agar dapat diakses oleh publik

 

Cara Pemakaian dan Contoh

Contoh penggunaan dari sistem smarthome ini terdiri dari dua jenis, yaitu untuk monitoring, dan yang kedua untuk kontrol.

1. Hardware setup

  • Sambungkan i-Net dengan router yang tersambung koneksi internet
  • Sambungkan Server API dengan router yang satu jaringan dengan i-Net
  • Siapkan aplikasi smarthome app, bisa berupa web/mobile yang tersambung dengan koneksi internet

2. Software Setup

  • Install i-Net configurator
  • Untuk menambahkan device baru, buka i-Net configurator dan pilih menu Edit Devices (No. 10)

home-anjels

  • Kemudian pilih Add Device (B)

add-device-anjels

  • Setelah itu akan muncul device id yang tersedia, isi flied sesuai yang diinginkan dan pilih Save
  • Untuk mengakses device yang sudah didaftarkan, akses melalui

http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}. Id_device adalah id_device yang sudah didaftarkan sebelumnya, cmd adalah perintah yang di-request ke device.
Contoh untuk melihat status lampu :

http://192.168.1.81:8181/device.cgi?dev=2&cmd=128

Response dari comman ini adalah string angka 152 = on, 144 = off

  • Untuk contoh penerapan kali ini akan menggunakan sistem yang sedang dikembangkan untuk suatu apartemen, Server API menggunakan Java Spring Boot yang akan menerima request dengan parameter device id dan command, kemudian Server API akan mengirim url beserta parameter tersebut sesuai format berikut :
    http://192.168.1.81:8181/device.cgi?dev={id_device}&cmd={command}.
    Setelah itu response dari i-Net berupa string angka 1 = sukses, -1 = gagal.
    Pada sisi pengguna, aplikasi menggunakan Android Native. Untuk mengontrol lampu, dapat dilakukan dengan 2 metode :

    1. Mengatur lampu nyala atau mati
    2. Mengatur lampu sesuai kecerahan (jika lampu mendukung)

    whatsapp-image-2021-03-05-at-10-14-13-am

Mengenal Build Tools Gradle

Bagi para pengembang aplikasi, mungkin pernah mendengar istilah ant, gradle, maven, nodejs, npm, composer atau bower ketika sedang mencari sesuatu. Namun apakah yang dimaksud dengan istilah-istilah tersebut ?

Istilah-istilah tersebut merupakan beberapa contoh build tools yang digunakan oleh java, php, atau javascript. Build tools itu sendiri adalah program yang mengotomatiskan proses eksekusi aplikasi dari suatu soure code. Pada dasarnya proses otomatisasi dilakukan oleh pengembang aplikasi untuk melakukan hal hal seperti:

1. Mendownload dependencies.

2. Mengcompile dan mempackaging source code kedalam binary.

3. Melakukan deployment ke production sistem.

Setiap build tools yang digunakan memiliki konfigurasi yang berbeda beda agar dapat berjalan. Contohnya untuk build tools gradle, langkah pertama agar gradle dapat berjalan adalah dengan cara mendownload gradle terlebih dahulu lalu ekstrak hasil file download tersebut. Selanjutnya tambahkan variabel GRADLE_HOME pada environtment variabel (klik kanan my computer -> properties -> advance system settings ->environtment variable ), dan tambahkan juga GRADLE_HOME\bin pada variable path. Agar mengetahui apakah gradle sudah terpasang atau belum, cukup ketikkan gradle -v pada console cmd.

Konfigurasi gradle ada pada file build.gradle. Berikut adalah contoh isi dari file build.gradle

buildscript {
   ext {
      springBootVersion = '2.0.3.RELEASE'
   }
   repositories {
      mavenCentral()
   }
   dependencies {
      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
   }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'id.co.akhdani'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
   mavenCentral()
}


dependencies {
   // Apache commons
   compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
   compile group: 'commons-codec', name: 'commons-codec', version: '1.9'
   // DB Connection Pool
   compile group: 'com.zaxxer', name: 'HikariCP', version: '3.2.0'

   // thymeleaf
   compile('org.springframework.boot:spring-boot-starter-thymeleaf')
   compile group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect', version: '2.3.0'
   compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity4')

   runtime('org.postgresql:postgresql')

   runtime('org.springframework.boot:spring-boot-devtools')
   testCompile('org.springframework.boot:spring-boot-starter-test')
   compile('org.springframework.boot:spring-boot-starter-web')

   compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.6'
   compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.6'

}

Untuk menambahkan suatu library gradle  kedalam project yang sedang dikerjakan, dapat dilakukan dengan cara menambahkan nya pada file build.gradle, dependencies. Sebagai contoh, kita ingin menambahkan library hikaricp kedalam project, langkah pertama yang dilakukan adalah dengan cara mencari nya pada google, biasanya akan diarahkan pada situs mvnrepository.com. setelah selesai memilih versi berapa yang akan dipakai, klik pada tab gradle, lalu copy tulisan yang ada pada tab tesebut (misal)

   compile group: 'com.zaxxer', name: 'HikariCP', version: '3.2.0'

kedalam dependencies, sehingga dependencies nya akan menjadi seperti ini

dependencies {
   // DB Connection Pool
   compile group: 'com.zaxxer', name: 'HikariCP', version: '3.2.0'
}

 

Setelah project selesai dibuat, langkah selanjutnya adalah melakukan build project. caranya dengan mengetikkan

gradle build

pada console atau terminal. gradle build berfungsi untuk mengkompile code kedalam suatu jar file yang dapat dieksekusi. Apabile build berhasil makan akan muncul tulisan

BUILD SUCCESSFUL

 

Sumber

https://www.techopedia.com/definition/16359/build-tool

https://www.okedroid.com/2016/10/belajar-mengenal-gradle-di-android-studio.html

http://ansorpunya.blogspot.com/2014/12/memulai-spring-dengan-gradle.html

https://spring.io/guides/gs/gradle/#initial