Mengkoneksikan Database Ke Matlab – Bagian 1

Berikut ini akan kita coba menghubungkan Matlab dengan sebuah database, misalnya Microsoft Access 2007. Cara termudah yang menjadi favorit siswa-siswa adalah dengan Open Database Connectivity (ODBC) Windows. Untuk Matlab yang diinstall di Linux, terpaksa Anda menggunakan Java Database Container (JDBC) untuk mengakses database. Buat database berikut, beri nama rab.mdb dan buat satu tabel dengan field2 kode, nama, dan harga.


Baik, kita mulai langkah awal membuat ODBC. Buka Control Panel – Administrative Tool, pilih ODBC. Maka akan muncul jendela ODBC. Klik Add untuk menambah suatu ODBC baru.


Berikutnya Anda diminta memilih driver sesuai software database yang Anda gunakan. Untuk kasus ini pilih Microsoft Access Driver (*.mdb, *.accdb).


Kemudian Anda diminta untuk memberi nama ODBC yang akan diakses Matlab, pilih Select untuk memilih file Microsoft Access, cari letak file tersebut di komputer Anda.


Klik OK, dan Anda telah berhasil membuat ODBC. Untuk tulisan berikutnya kita akan belajar mengkoneksikan ODBC tersebut dengan Matlab. Cao ..


3AS

Creating an Adaptive Neuro Fuzzy Inference System (ANFIS)

Oleh: Dr. Ir. Prabowo Pudjo Widodo, MS. & Rahmadya Trias H., ST., MKom.

Studi Kasus:

Buatlah rancangan Adaptive Neuro Fuzzy Inference System untuk kasus penentuan bonus pegawai restoran berdasarkan pelayanan dan masakan yang disajikan. Gunakan rule yang dibentuk dengan proses learning.

Penyelesaian:

  1. Langkah pertama adalah buka Matlab Anda. Arahkan Current Directory pada posisi folder yang tepat.


  1. Berikutnya kita akan membuat proses learning pada ANFIS. Kembali ke command window, ketik “anfisedit“.


 

  1. Yang perlu diperhatikan adalah kita diminta untuk me-load data. Data yang akan dijadikan sarana training ANFIS adalah gabungan antara masukan dengan keluaran. Dari kombinasi-kombinasi yang mungkin dapat kita bentuk menjadi matrik dengan jumlah kolom sebanyak tiga kolom yang menggambarkan dua masukan dan satu keluaran. Matriks tersebut terdiri dari komposisi beberapa kemungkinan, misalnya jika pelayanan nol dan masakan nol harapannya bonusnya juga nol. Buat matriks pada command window sebagai berikut (sekedar ilustrasi):

    train_data =

     

    0 0 0

    1 0 1

    0 1 1

    2 1 3

    2 2 4

    1 2 3

    3 0 3

    3 1 4

    3 2 5

    4 1 5

    1 4 5

    5 1 6

    5 2 7

    5 3 8

    5 4 9

    5 5 10

    Anda dapat membentuk training data ini selengkap mungkin. Kembali ke ANFIS editor, pada isian load data, klik tombol radio worksp, yang artinya kita akan mengambil data dari workspace command window. Klik Load data, maka kita akan diminta mengisikan variabelnya, ketik: train_data, lalu OK.

  2. Pada isian generate FIS, pilih tombol radio Load from file, karena kita akan memanggil FIS hasil kreasi kita sebelumnya. Klik Load, dan arahkan ke file bonus.fis. Berikutnya pada isian Train FIS, klik Train now. Gunakan Epoch secukupnya, misalnya 10.

     


 

  1. Kemudian kita akan membuat FIS secara otomatis. Pada isian Generate FIS, pilih Grid partition, dilanjutkan dengan mengklik Generate FIS.
  2. Akan muncul jendela isian tentang tipe fungsi keanggotaannya. Pilih misalnya gbellmf dengan masing-masing 3 fungsi yang pada isian number of MFs berisi 3 3. Klik OK. Pada ANFIS info jika kita klik Structure, maka akan muncul informasi neuron pada ANFIS yang baru kita generate tadi.

 


 

  1. Selamat, Anda telah berhasil membuat satu engine FIS dengan cara Training ANFIS. Untuk menyimpan dapat kita lakukan dengan mengklik: file – export. Ada dua pilihan yang tersedia, yaitu to Workspace dan to File. Bila kita pilih to workspace maka hanya akan muncul pada Matlab saat aktif sekarang saja. Bila di-shutdown, data akan hilang. Sebaiknya kita pilih to file agar lebih permanen. Setelah diklik to file, beri nama misalnya bonis. File fuzzy akan tersimpan dengan ekstensi “fis”.
  2. Untuk memperjelas FIS hasil training ANFIS, buka FIS tersebut dengan mengetik pada command window:

    >> fuzzy bonus

     


 

  1. Ganti nama input1 menjadi pelayanan, input2 menjadi masakan dan output menjadi bonus, pada isian Name di Current Variable.

 


 

  1. Dobel klik pada pelayanan, maka akan memunculkan membership function editor, ganti nama yang sesuai misalnya buruk, rata-rata dan baik seperti pada gambar di bawah ini. Lakukan hal yang sama untuk masakan.

     


 

  1. Setelah kita edit nama input beserta fungsi keanggotannya, maka secara otomatis, rule akan berubah mengikuti nama tersebut. Dobel klik pada bagian rule, sehingga memunculkan logika sebagai berikut:

 


 

  1. Berikutnya kita akan menguji fuzzy yang telah kita buat. Kembali ke command window, ketik: fis=readfis(‘bonus’) lalu enter maka Matlab akan meload engine FIS yang kita miliki yaitu bonus.fis. Berarti variabelnya diberi nama “fis”.

    fis=readfis(‘bonus’)

     

    fis =

     

    name: ‘bonus’

    type: ‘sugeno’

    andMethod: ‘prod’

    orMethod: ‘probor’

    defuzzMethod: ‘wtaver’

    impMethod: ‘prod’

    aggMethod: ‘sum’

    input: [1×2 struct]

    output: [1×1 struct]

    rule: [1×9 struct]

 

  1. Berikutnya kita uji misalnya pelayanan buruk, yaitu 1 sedangkan masakannya pun tidak enak. Instruksi yang diperlukan adalah evalfis.

    >> out = evalfis([1 1],fis)

     

    out =

     

    1.6195

     

    Hasil defuzzifikasi, dengan variabel out, adalah 3,2863 yang jika dibandingkan dengan skala 10 masih dibilang buruk.

    >> out = evalfis([5 5],fis)

     

    out =

     

    9.9078

     

    Engine FIS hasil training ANFIS yang telah kita bentuk ini dapat kita aplikasikan dengan GUI yang tersedia pada Matlab agar interaksi dengan user lebih baik.

 

 

 

 

 


Membuat Fuzzy dgn Toolbox Matlab

Hari/Tgl/Mt Kuliah/Dosen/Kampus: Sabtu/16-10-2010/Metode Riset/Dr. Prabowo – Rahmadya, M.Kom./S2 STMIK Nusa Mandiri

 

Studi Kasus:

Buatlah rancangan Fuzzy Inference System untuk kasus penentuan bonus pegawai restoran berdasarkan pelayanan dan masakan yang disajikan. Gunakan rule Mamdani dengan logika yang tepat.

 

Penyelesaian:

  1. Langkah pertama adalah buka Matlab Anda. Arahkan Current Directory pada posisi folder yang tepat.

 


 

  1. Pada Command Window ketik “fuzzy”, maka akan muncul jendela berikut ini.

     


 

  1. Secara default Matlab menyediakan satu masukan, satu kelauaran dan satu rule bertipe Mamdani. Karena kita diminta untuk membuat dua masukan yaitu pelayanan dan masakan, klik: edit – Add Variable – Klik “input”. Tambahkan pelayanan dan masakan sebagai variabel masukan. Beri nama yang sesuai untuk output, misalnya “bonus”.

 


 

  1. Langkah berikutnya adalah kita membuat fungsi keanggotaan (membership function) untuk input. Misal pelayanan terlebih dahulu, dobel klik pada masukan pelayanan, maka akan muncul jendela baru untuk mengatur fungsi keanggotaan. Yang perlu kita atur adalah nama fungsi keanggotaan, range dan tipe-nya. Nama fungsi keanggotaan pada FIS berupa ciri verbal seperti baik, rata-rata atau buruk. Range menyatakan jangkauan angka misalnya lima menyatakan paling baik, nol menyatakan paling buruk, berarti antara dua dan tiga adalah rata-rata. Coba sendiri membuat fungsi keanggotaan seperti pada gambar di bawah ini. Agar lebih cepat, coba gunakan tipe z, gauss dan s untuk berturut-turut pada fungsi buruk, rata-rata dan baik.

 


 

  1. Dengan cara yang sama dengan langkah keempat, buat untuk masukan masakan. Untuk mudahnya gunakan nama fungsi masakan tidak enak, rata-rata dan enak. Range gunakan jangkauan yang sama untuk pelayanan.

 


 

  1. Berikutnya kita merancang fungsi keanggotaan pada variabel keluaran yaitu bonus. Misalnya kita akan mengkategorikan bonus menjadi banyak, rata-rata dan sedikit. Untuk memudahkan, gunakan range penjumlahan dua masukan yaitu sepuluh. Gunakan fungsi sederhana yaitu fungsi segitiga. Atur nama fungsi serta tipenya sehingga menghasilkan gambar sebagai berikut.

 


 

  1. Jika telah selesai, maka terakhir kita akan membuat logika pada rule. Close terlebih dahulu Membership Function Editor. Dobel klik pada bagian tengah FIS editor. Isikan logika yang sesuai, coba skenario terbaik, terburuk dan rata-rata.

 


 

  1. Untuk melihat apakah sesuai dengan yang diharapkan, klik: view – surface, perhatikan apakah sudah sesuai dengan keinginan.

 


 

  1. Untuk mengatur kecenderungan kita apakah memberi bonus baik atau tidak, dapat kita lakukan dengan mengklik: view – rules. Untuk mengatur kecenderungannya dapat kita lakukan dengan menggeser garis tengah berwarna merah untuk tiap fungsi keanggotaan.

 


 

  1. Selamat, Anda telah berhasil membuat satu engine FIS. Untuk menyimpan dapat kita lakukan dengan mengklik: file – export. Ada dua pilihan yang tersedia, yaitu to Workspace dan to File. Bila kita pilih to workspace maka hanya akan muncul pada Matlab saat aktif sekarang saja. Bila di-shutdown, data akan hilang. Sebaiknya kita pilih to file agar lebih permanen. Setelah diklik to file, beri nama misalnya bonis. File fuzzy akan tersimpan dengan ekstensi “fis”.
  2. Berikutnya kita akan menguji fuzzy yang telah kita buat. Kembali ke command window, ketik: fis=readfis(‘bonus’) lalu enter maka Matlab akan meload engine FIS yang kita miliki yaitu bonus.fis. Berarti variabelnya diberi nama “fis”.

    >> fis=readfis(‘bonus’)

 

  1. Berikutnya kita uji misalnya pelayanan buruk, yaitu 1 sedangkan masakannya pun tidak enak. Instruksi yang diperlukan adalah evalfis.

    >> out = evalfis([1 1],fis)

     

    out =

     

    3.2863

     

    Hasil defuzzifikasi, dengan variabel out, adalah 3,2863 yang jika dibandingkan dengan skala 10 masih dibilang buruk.

    >> out = evalfis([5 5],fis)

     

    out =

     

    7.3379

     

    Selamat Mencoba.

 

 

 

 

 

 


 

Perbandingan Kinerja ANFIS dan ANN

Artificial Neural Network (ANN) banyak dikembangkan untuk sistem pencocokan pola. Sedangkan Adaptive Neuro-Fuzzy Inference System merupakan gabungan antara fuzzy dengan neural untuk menghasilkan sistem yang melakukan adaptasi lewat pembelajaran (learning) biasanya dipakai pada sistem kendali, clustering ataupun pencocokan pola seperti pada syaraf tiruan. Sayangnya ANFIS kalah dibanding dengan ANN berdasarkan hasil riset berikut ini.

Di bawah ini program GUI dengan Matlab untuk menguji hasil pembelajaran.


Sedangkan script-nya adalah berikut ini (hanya untuk syaraf tiruan-nya):


input=reshape(handles.y7,[1,19200]);
target=input;
net=newff(input,target,50);
net.trainParam.epochs=3;
net.trainParam.shows=1;
net=train(net,input,target);
a=sim(net,input);
axes(handles.axes1);
a=reshape(a,[120,160]);
imshow(a),title('Hasil Learning');

Untuk ANFIS digunakan form yang sama, script sedikit berbeda:



input_data=reshape(handles.y7,19200,1);
target=input_data;
trnData=[input_data target];
numMFs = 50;
mfType = 'gbellmf';
epoch_n=3;
in_fis=genfis1(trnData,numMFs,mfType);
out_fis=anfis(trnData,in_fis,3);
output=evalfis(input_data,out_fis);
a=reshape(output,120,160)
axes(handles.axes1);
imshow(a),title('Hasil Learning');

Dibutuhkan script untuk pengolah citranya agar dihasilkan tanda tangan yang berupa matrix dan siap diolah oleh sistem. Untuk network ANFIS adalah sebagai berikut:


Sedangkan bagan untuk ANN dapat dilihat saat proses learning berlangsung:


Untuk adil dalam perbandingan, masing-masing teknik memiliki parameter sebagai berikut:

  1. Number of Neuron = 50
  2. Number of Epoch = 3
  3. Number of Layer = 1
  4. Learning Methods : Backpropagation

Hasilnya dimenangkan oleh ANN baik dalam akurasi maupun kecepatan akan diseminarkan di Seminar Internasional ISIT Universitas BSI Bandung, insya Allah 23 Oktober mendatang.

Link berikut merupakan hasil keluaran verifikasi tanda tangan dengan ANN:

NOTE: Terima kasih atas pinjaman sampel tanda tangannya untuk Kajur TK UNISMA Bekasi, Bpk Dadan Irwan, ST., M.Kom.

Training MATLAB dan SIMULINK

PROPOSAL

INHOUSE TRAINING

 

PELATIHAN APLIKASI MATLAB & SIMULINK

 

Rahmadya Trias H., S.T., M.Kom.

 

 

Fakultas Teknik

Universitas Islam “45” Bekasi

2010

 

Maksud & Tujuan    : Memberi pengetahuan dasar Matlab & Simulink serta penerapannya pada mata kuliah: Matematika, Teknik Kendali dan Pemrograman Komputer.

 

Pelaksanaan        : 31 Juli 2010

Waktu            : 09.00 WIB – 16.00 WIB

Tempat        : Fakultas Teknik Universitas Islam “45” Bekasi

Peserta        : Dosen Fakultas Teknik UNISMA


Materi:

  1. Dasar-Dasar Matlab
  2. Matematika dengan Matlab
    1. Diferensial dan Integral
    2. Grafik
    3. Fungsi-fungsi lanjut (Transformasi Laplace, transformasi-z dsb)
  3. Simulasi dengan SIMULINK
    1. Dasar-dasar SIMULINK
    2. Merakit Diagram Blok Sistem Kendali
    3. Penerapan Fuzzy pada SIMULINK
  4. Pemrograman Berbasis GUI dengan MATLAB

 

Demikian proposal ini Kami buat, semoga terlaksana dengan baik dan atas perhatiannya Kami mengucapkan terima kasih.

 

Hormat Saya,

 

 

 

Rahmadya Trias H., ST, Mkom.

Pemateri

Lotfi A. Zadeh, Bapak Fuzzy Logic

Bernama lengkap, Lotfali Askar-Zadeh (لطف‌علی عسکرزاده) dilahirkan di Baku, Azerbaijan 4-02-1921 merupakan peletak dasar-dasar fuzzy logic. Pria yang panjang umur ini, besar di Iran, dan sekarang bekerja sebagai profesor di Universitas California, Barkeley.

Penemuannya tentang sistem fuzzy, dengan pergeseran sudut pandang dari perhitungan sistem yang akurat, teliti, lengkap (hard computing)menjadi perhitungan sistem yang mentolerir adanya ketidakpastian, kekurangan data, dan sebagainya (Soft Computing) yang ternyata lebih mendekati pada kenyataan sehari-hari. Bapak dua orang anak ini ternyata “pluralis” dengan mengatakan “The question really isn’t whether I’m American, Russian, Iranian, Azarbaijani, or anything else. I’ve been shaped by all these people and cultures and I feel quite comfortable among all of them”. Sistem Fuzzy saat ini banyak digunakan dari mesin, elektronik, kontrol hingga sains.


Lotfi A. Zadeh, Bapak Fuzzy Logic (Sumber: Wikipedia)