Selamat datang di sonoku.com

Akses Remote Desktop pada Raspberry Pi

raspberry_desktop_4

Selain akses Raspberry Pi dengan mode shell dengan PC/Laptop, desktop Raspberry Pi juga bisa diakses secara remote melalui PC/Laptop. Umumnya Raspberry Pi dengan OS Debian sudah terinstal LXDE (Lightweight X11 Desktop Environment), sebuah tampilan desktop alternatif (selain GNOME, KDE, dll) yang sangat ringan dan menarik, tentunya cocok untuk komputer dengan kecepatan atau RAM yang rendah. Dengan menggunakan mode desktop, organisasi file, menjalankan aplikasi, atau main game akan menjadi mudah dan lebih interaktif, karena tidak perlu mengetik perintah-perintah seperti jika kita menjalankan Raspberry Pi pada mode shell (console). Ikuti langkah berikut: Read More

Memperbaiki Driver WiFi Adapter RTL8188CUS di Beaglebone Black

WiFi Beaglebone

Untuk proyek yang akan saya bangun berikutnya, saya membutuhkan koneksi wireless dari Laptop ke modul Beaglebone Black (BBB). Kebetulan saya membeli WiFi dongle dari adafruit.com. Waktu itu saya membelinya tanpa melihat detil spesifikasi teknisnya, kalau dari judulnya perangkat ini bisa digunakan untuk Raspberry Pi dan lainnya termasuk Beaglebone. Read More

Membangun Webserver dengan Lighttpd pada Beaglebone Black

webserver

Tutorial ini menjelaskan langkah instalasi webserver pada Beaglebone Black (BBB) dengan OS Debian menggunakan Lighttpd dilengkapi dengan MySQL dan support PHP5. Lighttpd adalah sebuah aplikasi web server yang bekerja pada sistem operasi UNIX/Linux dan Windows. Ada yang menyebutnya dengan Lighty. Aplikasi ini bisa dikatakan sebagai alternatif dari Apache. Lighttpd sangat cocok untuk anda yang menginginkan web server yang aman dan cepat. Untuk info lebih lanjut Read More

Internet Connection on Beaglebone over USB

Sometimes, we meet a condition that forced us to have an internet connection to our Beaglebone Black (BBB), such as updating OS package, upgrading OS package, or even a program installation. BBB has an useful feature to get an internet connection through USB port. The idea is to share/forward our laptop’s internet connection to our BBB through USB cable instead of ethernet cable. Here is the tutorial to get an internet connection to our BBB. Read More

Reinforcement Learning (intro)

Apa itu Reinforcement Learning?

Reinforcement Learning (RL) adalah pembelajaran (learning) terhadap apa yang akan dilakukan (bagaimana memetakan situasi kedalam aksi) untuk memaksimalkan reward. Pembelajar (learner) tidak diberitahu aksi mana yang akan diambil, tetapi lebih pada menemukan aksi mana yang dapat memberikan reward yang maksimal dengan mencobanya. Aksi tidak hanya mempengaruhi reward langsung, tetapi juga situasi berikutnya, begitu juga semua reward berikutnya. Dua karekteristik inilah (pencarian trial-error dan reward tertunda) yang membedakan RL dengan yang lain.

Agen harus mampu untuk mengindera (sense) keadaan (state) lingkungan luas dan harus dapat mengambil aksi yang mempengaruhi state.

RL berbeda dengan pembelajaran terawasi (Supervised learning ). Pembelajaran terawasi merupakan pembelajaran dari contoh-contoh yang disediakan oleh pengawas luar yang berpengetahuan. Hal ini sangat penting dalam pembelajaran, tapi itu sendiri tidak cukup untuk belajar dari sebuah interaksi. Dalam permasalahan interaksi, hampir tidak mungkin secara praktis mendapatkan contoh dari perilaku yang diinginkan baik yang benar dan mewakili semua situasi dimana agen harus beraksi. Karena itu agen harus belajar dari pengalamannya.

Salah satu tantangan yang muncul dalam RL dan tidak terdapat pada jenis pembelajaran lain adalah eksplorasi dan eksploitasi. Untuk mendapatkan banyak reward, agen RL lebih mementingkan aksi yang telah dicoba waktu lalu dan terbukti efektif menghasilkan reward. Tapi untuk menemukan aksi tersebut, harus mencoba aksi yang belum pernah terpilih sebelumnya. Agen harus mengeksplotasi apa yang telah diketahui untuk mendapatkan reward, tetapi juga harus  mengkeksplorasi untuk membuat pemilihan aksi yang lebih baik kedepannya.

Elemen RL

Terdapat empat sub-elemen RL yaitu,

1. Policy

“Apa yang akan dilakukan sekarang?

Policy adalah cara agen berperilaku pada saat waktu yang diberikan. Atau bisa dikatakan, policy adalah pemetaan dari keadaan (state) lingkungan ke aksi yang akan diambil pada saat keadaan tersebut. Dalam beberapa kasus  policy dapat berupa fungsi sederhana atau tabel (lookup table), atau dapat melibatkan komputasi seperti proses pencarian. Policy ini merupakan inti dari RL yang sangat menentukan behavior dari suatu agent.

2. Fungsi Reward (reward function)

“Seberapa bagus aksi ini?”

Fungsi reward didefinisikan sebagai gol/tujuan yang ingin dicapai dalam permasalahan RL. Atau bisa dikatakan, fungsi tersebut memetakan tiap state yang diterima (atau pasangan keadaan-aksi) dari lingkungan kedalam angka tunggal.

Agen RL bertujuan untuk memaksimalkan perolehan reward selama proses. Fungsi reward mendefinisikan apa yang baik dan apa yang buruk bagi agen.

3. Fungsi nilai (value function)

“Seberapa bagus keadaan/state ini?”

Fungsi reward mengindikasikan apa yang baik segera, sedangkan fungsi nilai (value function) lebih spesifik ke pada apa yang baik dalam waktu yang panjang. Atau bisa dikatakan, nilai sebuah keadaan (state) adalah jumlah total reward yang bisa dikumpulkan agen hingga masa berikutnya, dimulai dari keadaan (state) tersebut.

Reward diberikan langsung oleh lingkungan, sedangkan value harus diestimasi dan diestimasi ulang dari urutan pengamatan agen sepanjang waktu.

4. Model lingkungan (Dinamika Lingkungan)

“Apa yang terjadi jika saya lakukan aksi ini”

Model lingkungan adalah sesuatu yang menirukan kelakuan sebuah lingkungan. Sebagai contoh, diketahui sebuah keadaan dan aksi, model dapat memprediksikan keadaan selanjutnya dan reward selanjutnya. Elemen ini tidak harus ada, elemen ini digunakan untuk perencanaan (planning) maksudnya adalah berbagai cara dalam memutuskan aksi dengan memperhatikan kemungkinan situasi masa depan, sebelum benar-benar mengalaminya. Kolaborasi planning dan RL merupakan hal baru. Saat ini sistem RL  secara eksplisit merupakan pembelajaran secara trial-and-error.

Interaksi agent dan environment

Pembelajar (Learner) dan pengambil keputusan (decision maker) disebut agen (agent). Segala sesuatu yang berinteraksi dengan agen disebut lingkungan (environment). Agen memilih aksi dan lingkungan merespon kepada aksi tersebut dan memberikan keadaan (state) baru kepada agen. Lingkungan juga menghasilkan reward, nilai numerik tertentu yang coba dimaksimalkan agen tiap waktu.

Secara spesifik, agen dan lingkungan berinteraksi pada tiap urutan langkah waktu diskrit, t = 1, 2, 3,,….Pada tiap langkah t, agen menerima beberapa bentuk keadaan (state) lingkungan, , dimana S adalah himpunan semua keadaan yang mungkin, dan berdasarkan itu kemudian memilih sebuah aksi, , dimana adalah himpunan semua aksi yang mungkin pada keadaan . Satu langkah kemudian, akibat dari aksi yang diberikan, agen meneriman reward , dan sekarang berada pada keadaan baru .

Gambar 1.    Interaksi agen dan lingkungan pada RL

Pada tiap langkah, agen mengimplementasikan pemetaaan keadaan (state) ke probabilitas dalam memilih tiap aksi yang mungkin. Pemetaan ini disebut policy agen, dinotasikan dengan , dimana yaitu probabilitas  dimana jika . Metode RL adalah bagaimana agen merubah policy sebagai hasil dari pengalamannya. Tujuan yang ingin dicapai oleh agen adalah memaksimalkan jumlah reward yang diterima selama masa pembelajaran.

Goal dan Rewards

Dalam RL, tujuan adanya agen adalah menerima sinyal reward yang diberikan lingkungan kepada agen. Reward berupa angka sederhana, . Tujuan agen adalah memaksimalkan jumlah keseluruhan reward yang diterima (bukan reward langsung, tetapi akumulasi) selama pembelajaran.

Download Gratis Tutorial Menggambar PCB

Dalam dunia elektronika dapat dipastikan ada keperluan untuk desain layout PCB (Printed Circuit Board). Kalau dahulu sebelum komputer dapat dengan mudah dan murah dimiliki tiap orang, biasanya membuat papan rangkaian tercetak/PCB secara manual menggunakan spidol tahan air. Kali ini komputer sangat mudah diperoleh, sehingga pekerjaan desain PCB-pun sangat mudah dilakukan orang per orang, bukan lagi oleh pabrik. Nah kali ini sonoku.com memberikan tutorial gratis merancang PCB menggunakan perangkat lunak komputer yang dapat anda download pada link berikut.

Download Tutorial Membuat PCB
Tutorial Membuat PCB

Merancang Kendali Fuzzy Sederhana

Untuk memahami bagaimana Fuzzy Logic Controler (FLC) dirancang dan bagaimana bekerja, dapat dimulai dengan beberapa contoh kasus sederhana seperti salah satunya berikut ini. Akan dirancang kontroler untuk mengatur kecepatan motor DC dengan merubah besar tegangan masukan motor. Pada saat motor berputar terlalu cepat dari set point yang ditetapkan, maka untuk memperlambat putaran motor tegangan motor DC perlu dikurangi. Jika motor terlalu lambat, maka tegangan masukan motor harus ditambah agar kecepatan motor mencapai nilai set point.


Gambar 1. Diagram Blok Sistem Kendali Kecepatan Motor

Menentukan masukan dan keluaran kontroler

Sesuai dengan Gambar 1 diatas masukan kontroler fuzzy hanya satu yaitu error (Error). Error merupakan selisih antara kecepatan motor saat ini dengan kecepatan yang diinginkan (setpoint). Dalam kasus ini kecepatan motor diatur agar mempunyai kecepatan yang stabil pada 260 rpm.

Keluaran kontroler yaitu besar tegangan kontrol motor (Teg). Tegangan kerja yang diberikan pada motor mempunyai rentang antara 0 Volt hingga 5 volt. Motor akan berputar dengan kecepatan 260 rpm (yg diinginkan) jika tegangan yang diberikan pada motor sebesar 2.5 volt.

Menentukan Membership Function (MF)

Langkah berikutnya adalah menentukan fungsi keanggotaan (membership function), baik masukan maupun keluaran. Fungsi keanggotaan masukan Error ditentukan terdiri dari 3 himpunan yaitu, Negatif (Neg), Zero (Zero), dan Positif (Pos).


Gambar 2. MF Error (error)

Secara matematis fungsi keanggotaan Error dapat dituliskan sebagai berikut.




Sedangkan untuk keluaran kontroler Teg dibagi menjadi 3 himpunan juga yaitu, Kecil (K), Sedang (S), Besar (B).


Gambar 3. MF Tegangan (Teg)

Secara matematis fungsi keanggotaan Tegangan dapat dituliskan sebagai berikut.




Membuat rule (aturan)

Setelah menenutukan fungsi keanggotaan masing-masing masukan dan keluaran, selanjutnya ditentukan rules (aturan) yang akan diterapkan kontroler. Aturan dibuat untuk mengendalikan motor agar kecepatannya stabil pada 260 rpm. Jadi ketika kecepatan motor sekarang dinilai terlalu cepat (>260rpm) daripada nilai setpoint maka nilai error-nya bernilai negatif (-). Dengan demikian kontroler harus menurunkan tegangan motor agar motor melambat. Sebaliknya jika kecepatan motor terlalu lambat maka nilai error-nya positif (+) maka tegangan motor perlu dinaikkan. Jika kecepatan telah tepat pada 260 rpm maka kontroler mengeluarkan tegangan sebesar 2.5 volt. Diharapkan dengan aturan tersebut motor akan berputar dengan kecepatan yang stabil pada 260 rpm.

Dari penjelasan diatas dapat ditentukan ada 3 aturan pengendalian sebagai berikut:

Aturan #1:

IF error IS negatif THEN teg IS kecil

Aturan #2:

IF error IS zero THEN teg IS sedang

Aturan #3:

IF error IS positif THEN teg IS besar

Menganalisa bagaimana FLC bekerja

Diambil contoh ketika kecepatan motor 285 rpm, dimana lebih besar dari kecepatan yang diinginkan yaitu 260 rpm, berapakah tegangan yang dikeluarkan kontroler agar motor berputar pada kecepatan normalnya (260 rpm)?

Sesuai kasus diatas, nilai error adalah sebesar -25 rpm. Langkah pertama yang dilakukan kontroler adalah menentukan derajat keanggotaan dari -25 rpm terhadap fungsi error (fuzzyfikasi). Nilai -25 rpm masuk dalam keanggotaan dari Zero dan Neg (Gambar 4), untuk itu ada dua proses fuzzyfikasi untuk menentukan derajat keanggotaannya.




Gambar 4. Fuzzyfikasi masukan error

Dari dua nilai derajat keanggotaan Error kemudian kita tentukan nilai derajat keanggotaannya terhadap keluaran Tegangan. Untuk menentukan termasuk fungsi keanggotaan keluaran yang mana, sebelumnya kita tentukan aturan (rule) yang aktif. Karena nilai masukan Error masuk dalam keanggotaan Zero dan Pos, maka setelah dievaluasi aturan yang aktif adalah Aturan #1 dan Aturan #2. Untuk itu selanjutnya dilakukan inmplikasi untuk memperoleh consequent/keluaran sebuah aturan IF THEN
berdasarkan derajat keanggotaan antecedent.


Gambar 5. Proses Implikasi

Langkah selanjutnya adalah melakukan agregasi, yaitu mengombinasikan keluaran aturan IF-THEN menjadi fuzzy set tunggal. Pada kasus ini ditentukan menggunakan fungsi max sehingga menghasilkan fuzzyset seperti gambar berikut.

Gambar 6. Proses Agregasi


Hasil dari proses agregasi masih merupakan informasi fuzzy, untuk itu perlu dilakukan perhitungan yang menghasilkan bilangan tunggal sebagai nilai keluaran kontroler (defuzzyfikasi). Proses defuzzifikasi pada kasus ini menggunakan metode COG (Center of Gravity), dengan perhitungan seperti berikut.


Dengan metode COG (Center of Gravity) didapat nilai defuzzifikasi (nilai teg) sebesar 1.87 Volt. Jadi dapat disimpulkan bahwa pada saat kecepatan motor 285 rpm (terlalu cepat), kontroler harus memberikan tegangan pada motor lebih kecil dari tegangan normalnya (2.5Volt) yaitu sebesar 1.87 Volt agar kecepatan motor melambat.


Pengujian Transistor

Transistor

Transistor adalah piranti elektronik yang menggantikan fungsi tabung elektron-trioda, dimana transistor ini mempunyai tiga elektroda , yaitu Emitor, Collector dan Basis. Dengan menganggap transistor adalah gabungan dua buah dioda, maka dapat dilakukan pengujian terhadap kemungkinan kerusakan pada suatu

transistor dengan menggunakan ohmmeter dari suatu multitester.

Kemungkinan penyebab kerusakan pada transistor ada tiga penyebab yaitu :

a. Salah pemasangan pada rangkaian

b. Penanganan yang tidak tepat saat pemasangan

c. Pengujian yang tidak professional

Jenis kerusakan transistor yaitu :

a. Putus (open circuit)

b. Hubung singkat (short circuit)

2. Cara menentukan kaki transistor

2.1. Cara menentukan kaki Base

Atur multimeter pada pengukuran ohmmeter x100.
Lakukan pengukuran seperti gambar dibawah ini.

Gambar 1. Cara menentukan kaki basis transistor

Perhatikan penunjukkan pergerakan jarum. Apabila jarum bergerak ke kanan dengan posisi probe yang satu tetap pada kaki 3 dan probe lainnya pada kaki 1 atau kaki 2 berarti kaki 3 adalah base transistor. Jika probe positif yang berada pada kaki 3 berarti transistor tersebut berjenis NPN, sebaliknya jika probe negatif berada pada kaki 3 berarti transistor tersebut berjenis PNP.

2.3. Cara menentukan kaki Collector dan Emitter

Misal: transistor berjenis NPNPerhatikan penunjukkan jarum, apabila jarum bergerak ke kanan maka kaki 1 (pada probe positif) adalah emitter dan kaki 2 (pada posisi probe negatif) adalah Collector. Atau Jika dipasang kebalikkannya (probe positif pada kaki 2 dan probe negatif pada kaki 1) dan jarum tidak bergerak, maka kaki 1 adalah emitter dan kaki 2 adalah Collector. Untuk transistor jenis PNP dapat dilakukan seperti diatas dan hasilnya kebalikan dari transistor jenis NPN.

2.4. Pengujian transistor

a. Transistor jenis NPN

pengujian dengan jangkah pada x100 , penyidik hitam ditempel pada Basis dan merah pada Collector, jarum harus meyimpang ke kanan. Bila penyidik merah dipindah ke Emitor, jarum harus ke kanan lagi.

b. Transitor jenis PNP

pengujian dilakukan dengan penyidik merah pada Basis dan hitam pada Collector, jarum harus meyimpang ke kanan. Demikian pula bila penyidik merah dipindah ke Emitor, jarum arus menyimpang ke kanan lagi.

2.5. Rangkaian Transistor Tester

Rangkaian sederhana untuk menguji transistor ini menggunakan 2 buah LED untuk mengetahui kondisi transistor. Transistor yang diuji dengan rangkaian ini adalah jenis NPN dan PNP

Lakukan pengukuran seperti gambar dibawah ini.

Gambar 2. Cara menentukan kaki Collector dan Emitor transistor

Gambar 3. Pengujian pada transistor NPN

Kemudian penyidik merah pada Basis dan hitam pada Collector, jarum harus tidak menyimpang dan bila penyidik hitam dipindah ke Emitor jarum juga harus tidak menyimpang. Selanjutnya dengan jangkah pada 1 k , penyidik hitam ditempel pada Collector dan merah pada emitor, jarum harus sedikit menyimpang ke kanan dan bila dibalik jarum harus tidak menyimpang. Bila salah satu peristiwa tersebut tidak terjadi, maka kemungkinan transistor rusak.

.

Gambar 7. Rangkaian Transistor Tester

Empat buah gerbang NAND (NOT AND) 2 input 1 output dari IC CD4011B adalah inti dari rangkaian ini, tetapi yang digunakan hanya 3 gerbang NAND. Gerbang U1a, U1b, variable resistor R1 dan capacitor C1 membentuk rangkaian oscillator dengan keluaran square wave (gelombang kotak/pulsa).

Frekuensi dari oscillator ini dapat diatur menggunakan variable resistor R1. Output dari oscillator di inverting (dibalik) menggunakan gerbang U1c. Kegunaan dari pembalik ini agar gelombang kotak yang dihubungkan antara Emitor dan Basis selalu berlawanan, hal ini sesuai dengan prinsip transistor sebagai switching dimana untuk jenis NPN Emitor dihubungkan dengan Ground (-) dan Basis mendapatkan bias fordward, sedangkan untuk jenis PNP Emitor dihubungkan dengan VCC (+) dan Basis mendapatkan bias reverse.

Gambar 5. Transistor NPN

Gambar 6. Transistor PNP

Status LED D1 dan D2 merepresentasikan kondisi dari transistor yang diuji, jika LED merah ON maka transistor NPN yang diuji dalam kondisi baik (gambar 7), jika LED hijau ON maka transistor PNP yang diuji dalam kondisi baik (gambar 8). Tapi jika kedua LED ON maka transistor tersebut short circuit sedangkan jika kedua LED OFF maka transistor tersebut open circuit atau salah dalam menghubungkan kaki Basis Emitor Collector.

Gambar 7. Menguji Transistor NPN


Gambar 8. Menguji Transistor PNP

Rangkaian transistor tester ini meskipun sederhana dan mudah digunakan tapi masih ada kelemahan dimana pada saat menghubungkan kaki-kaki Basis Emitor Collector harus benar, jika tidak maka kondisi transistor tersebut tidak dapat diketahui.

Membuat Adaptive Neuro Fuzzy Inference System (ANFIS) di MATLAB

Akan dibuat rancangan FIS (Fuzzy Inference System) dengan proses training Adaptive Neuro Fuzzy Inference System (ANFIS) di MATLAB.

TRAINING DATA

Untuk membuat training data mulailah dengan membuat matrik pada command window MATLAB sesuai tabel dibawah ini (atau dapat disesuaikan).

Ketik perintah berikut pada command window MATLAB

>> trainData=[1 20 0; 1.1 25.6 0.146;…dst]

Untuk me-load kita bisa lakukan di ANFIS editor. Ketik anfisedit pada command window MATLAB. Kemudian pada kolom Load Data pilih type Training, dan kita bisa ambil dari file atau workspace. Klik Load Data, kemudian pada window kecil yang muncul ketikkan nama file training data yang kita buat tadi (trainData). Hasil plot trainData akan tampak seperti gambar berikut.

GENERATE ANFIS

Selanjutnya menentukan parameter-parameter fungsi keanggotaan dalam ANFIS. Untuk melakukannya, pada kolom generate ANFIS kita pilih GridPartition. Kemudian kita tentukan banyaknya input MF sebanyak 5 dengan type trapesium masing-masing untuk input 1 dan 2, sedangkan type MF ouput kita pilih constant.

Untuk melihat struktur model ANFIS yang kita buat, pada bagian ANFIS info klik Structure. Hasil ANFIS yang kita buat akan tampak seperti berikut.

Pada gambar diatas tampak bahwa ANFIS terdiri dari dua input, dengan masing-masing terdiri dari 5 Membership Function. Terdapat rule sebanyak 25 buah, dengan operator and. ANFIS terdiri dari satu output dengan output MF yang terbentuk sebanyak 25 buah. Garis-garis yang menghubungkan antar node menunjukkan sebuah rule yang bersesuaian.

TRAINING ANFIS

Untuk pelatihan FIS, ANFIS menyediakan dua metode optimasi parameter fungsi keanggotaan yaitu Backpropagation dan Hybrid (gabungan backpropagation dan least square). Untuk kali ini akan dicoba menggunakan optimasi Hybrid.

Untuk menghentikan proses training, ANFIS menggunakan nilai error tolerance, sehingga jika setelah training data error memasuki daerah error tolerance ini maka training akan berhenti. Dipilih error tolerance sebesar 0 (default). Kemudian banyaknya epoch (iterasi) proses training ditentukan sebanyak 40.

Untuk memulai proses training, klik train now. Hasilnya akan seperti gambar berikut.

Jika diperhatikan, training error grafiknya semakin menurun dan mencapai titik erorr tetap pada angka 0.0083152 pada saat epoch mencapai 20. Artinya bahwa proses training menghasilkan error minimum pada nilai 0.0083152 yaitu selisih 0.0016848 dari toleransi error yang kita definisikan (tidak pernah mencapai nilai 0), untuk itu proses training dibatasi dengan banyaknya iterasi (epoch), yaitu 40 kali.

PENGUJIAN PASCA TRAINING ANFIS

Untuk mengetahui performance ANFIS yang telah ditraining dengan data awal (trainData), kita bisa lakukan test dengan melakukan ploting data trainData dan ANFIS dengan nilai input yang sama. Pada kolom Test FIS di ANFIS editor klik Test Now dengan sebelumnya memilih training data.

Jika kita perhatikan gambar diatas tampak bahwa hasil ploting trainData (o) dan ANFIS output (*) pada beberapa nilai berhimpitan. Artinya ANFIS yang kita training telah dapat memetakan masukan terhadap keluaran dengan baik. Pada saat tertentu hasil ploting FIS output tampak bergeser dari trainData, ini menunjukkan ada error yang relatif besar ketika ANFIS diberi masukan pada masukan sekitar nilai tersebut.


Pada perancangan FIS sebelumnya didasarkan pada IF-THEN rules yang sudah didefinisikan sebelumnya. Jadi pendekatan yang dipakai sebelumnya diasumsikan kita sudah memiliki IF-THEN rules, dengan kata lain kita sudah mengetahui lebih dulu bagaimana kelakukan dari sistem yang dimodelkan. Tujuannya adalah mentransfer pengetahuan kita tersebut kedalam sistem fuzzy dalam bentuk FIS.

Sedangkan pada ANFIS, pemodelan didasarkan pada pasangan input dan output. Jadi diasumsikan kita mempunyai data input dan output dari sistem sebelumnya, kemudian baru mencari IF-THEN rules yang bisa memetakan input menjadi output. ANFIS mengandaikan bahwa data input dan output dari suatu Blackbox system telah ada, kemudian kita menebak model apa yang cocok pada blackbox tersebut.

ANFIS dapat mengatasi kesulitan menentukan prameter-parameter fungsi keanggotaan untk mendapatkan FIS yang memetakan input ke output dengan benar pada pemodelan yang didasarkan pada data.