Understanding Requirement Engineering

cover-1

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

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

Fase ini terdiri dari beberapa tahapan:

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

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

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

Analisa Kebutuhan Pengguna

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

Klasifikasi Kebutuhan Pengguna

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

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

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

Pemodelan Sistem

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

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

Negosiasi dan Spesifikasi Kebutuhan

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

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

Validasi Kebutuhan

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

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

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

Beberapa kendala yang memungkinkan terjadi pada proses Requirement Engineering adalah:

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

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

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

Mengenal Bahasa Pemrograman Python dan Django

Python telah lama menjadi salah satu bahasa pemrograman yang paling populer, dan salah satu alasan utama kepopulerannya adalah kemampuan untuk mengembangkan aplikasi web dengan cepat dan efisien. Python memiliki beragam framework yang sering digunakan dalam pengembangan berbagai jenis aplikasi, diantaranya seperti framework Flask, Pyramid, Tornado dan Falcon. Namun yang paling populer dan banyak digunakan adalahan Framework Django, sebuah alat yang mempermudah pengembangan aplikasi web yang kuat dan skalabel. Artikel ini akan membahas bagaimana Python, bersama dengan Django, memungkinkan pengembangan aplikasi web yang efisien dan kuat.

Python: Bahasa Pemrograman yang Populer

Faktanya menurut IEE Spectrum mengatakan bahwa python adalah bahasa pemrograman paling populer. Sebelum kita membahas Django, mari tinjau mengapa Python menjadi pilihan utama dalam pengembangan web

  1. Sintaksis yang Mudah Dipahami: Python dikenal dengan sintaksisnya yang sederhana dan mudah dipahami. Ini membuatnya menjadi bahasa yang ideal untuk pemula dan pengembang yang ingin fokus pada logika aplikasi daripada menangani kompleksitas sintaksis.
  2. Ekosistem yang Kaya: Python memiliki ekosistem yang kaya dengan berbagai pustaka dan framework yang mendukung pengembangan web, analisis data, kecerdasan buatan, dan banyak lagi. Ini berarti Anda dapat dengan mudah mengakses alat-alat yang diperlukan untuk tugas-tugas khusus dalam pengembangan web.
  3. Komunitas yang Besar: Python memiliki komunitas yang besar dan beragam. Komunitas ini menyediakan dukungan, tutorial, dan sumber daya yang berlimpah, membuatnya mudah untuk menyelesaikan masalah dan memperdalam pengetahuan Anda.
  4. Kemampuan Cross-Platform: Python dapat berjalan di berbagai platform, termasuk Windows, macOS, dan Linux. Ini membuatnya cocok untuk pengembangan aplikasi web yang bersifat lintas platform.

Django: The Web Framework for Perfectionists with Deadlines

Menurut penelitian yang dilakukan dengan judul “Pemanfaatan Python dan Framework Django Sebagai Dashboard Sistem Informasi Pengelolaan Skripsi Pada STIMIK Pontianak” (Gat,2023) mengatakan bahwa Bahasa pemrograman Python dan framework Django hadir dengan kesederhaan, memiliki sintaks yang mudah dipahami untuk dibaca dan juga menyedikan banyak library yang siap dipergunakan. Dari segi keamanan, python menawarkan keamanan yang lebih kuat dari framework kebanyakan bahasa pemrograman lainnya. Hasil dari penelitian tersebut membuktikan bahwa, bahasa pemrograman Python dengan framework Django yang dilengkapi dengan banyak fitur dan library yang lengkap, mampu menghasilkan sistem informasi pengelolaan skripsi dengan mudah dan cepat.

Hal yang paling menarik dari Django adalah arsitektur sistem MTV (Model, Template, View) yang dimilikinya, berbeda dengan kebanyakan framework yang menggunakan sistem MVC (Model, View, Control) hal ini merupakan setara namun istilahnya saja yang berbeda.

assitektur-sistem-mtv

 

  • Model mewakili struktur data aplikasi Anda dan berfungsi untuk berinteraksi dengan basis data.
  • View bertanggung jawab untuk mengatur logika presentasi dan mengatur bagaimana data dari model ditampilkan kepada pengguna.
  • Template adalah komponen yang mengontrol tampilan akhir yang diberikan kepada pengguna, seringkali dalam bentuk halaman web HTML.

Berikut adalah 10  keunggulan framework Django dibandingkan beberpa framework python lainnya:

  1. Kekuatan Batteries-Included: Django sering dijuluki sebagai “framework yang memiliki baterai terisi penuh” karena menyertakan banyak komponen bawaan (seperti ORM, sistem admin, sistem otentikasi, dll.) yang membuat pengembangan web lebih cepat dan mudah. Ini mengurangi kebutuhan untuk mencari pustaka pihak ketiga atau menggabungkan berbagai komponen sendiri.
  2. ORM Kuat: Django dilengkapi dengan Django ORM (Object-Relational Mapping) yang kuat, yang memungkinkan Anda berinteraksi dengan basis data relasional tanpa harus menulis SQL secara eksplisit. Ini mempermudah pemodelan dan pengaksesan data.
  3. Sistem Admin yang Kuat: Django menyertakan sistem admin bawaan yang memungkinkan Anda membuat antarmuka administrasi web untuk aplikasi Anda dengan sedikit atau tanpa penulisan kode tambahan. Ini sangat berguna untuk mengelola data aplikasi Anda.
  4. Dokumentasi yang Luar Biasa: Django memiliki dokumentasi yang sangat baik dan komprehensif, yang membuatnya mudah bagi pengembang baru untuk memahami dan memulai dengan framework ini. Dokumentasi yang baik juga membantu dalam pemeliharaan dan pengembangan aplikasi.
  5. Keamanan Terintegrasi: Django menerapkan banyak praktik keamanan terbaik secara bawaan, termasuk proteksi terhadap serangan umum seperti SQL injection, Cross-Site Scripting (XSS), dan Cross-Site Request Forgery (CSRF). Ini membantu menjaga aplikasi Anda aman secara default.
  6. Skalabilitas: Meskipun Django cocok untuk proyek-proyek kecil, itu juga dapat digunakan untuk proyek-proyek besar dan rumit. Dengan desain yang kuat dan kemampuan untuk membagi aplikasi menjadi komponen yang terpisah, Anda dapat mengembangkan aplikasi yang sangat skalabel.
  7. Dukungan Komunitas dan Ekosistem: Django memiliki komunitas yang besar dan aktif, sehingga Anda dapat dengan mudah menemukan dukungan, tutorial, dan pustaka pihak ketiga yang memperluas fungsionalitas Django.
  8. Ketersediaan Hosting dan Deployment yang Luas: Ada banyak penyedia hosting web dan layanan PaaS yang mendukung Django, membuatnya mudah untuk mendeploy aplikasi Anda secara online.
  9. Berfokus pada Prinsip “Don’t Repeat Yourself” (DRY): Django mendorong praktik pengembangan yang menghindari pengulangan kode (DRY) dengan menyediakan alat-alat seperti template dan middleware yang memungkinkan Anda mengorganisir kode Anda dengan baik.
  10. Desain URL yang Elegan: Django memiliki sistem routing URL yang sangat baik yang memungkinkan Anda mendefinisikan pola URL dengan mudah, membuat aplikasi Anda lebih terstruktur dan mudah dipahami.

Namun, penting untuk diingat bahwa setiap framework memiliki kelebihan dan kelemahan masing-masing. Pilihan framework web Python terbaik tergantung pada kebutuhan proyek Anda dan preferensi pribadi Anda sebagai pengembang.

Kesimpulan:

Python dengan Django adalah kombinasi yang sangat kuat untuk pengembangan aplikasi web. Python memberikan sintaksis yang mudah dipahami, ekosistem yang kaya, dan dukungan komunitas yang besar, sementara Django menawarkan produktivitas tinggi, keamanan terintegrasi, dan kemampuan skalabilitas. Kombinasi ini membuat Python dan Django menjadi pilihan yang luar biasa untuk pengembangan aplikasi web yang efisien dan andal. Jika Anda ingin membangun aplikasi web, pertimbangkan untuk memulai dengan Python dan Django untuk mendapatkan hasil terbaik dalam waktu singkat.

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.

 

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.

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