Mengarahkan Fuzzy C-Mean ke “Jalan Yang Benar”

Clustering merupakan masalah yang lumayan rumit. Misalkan kita punya serangkaian data yang terdiri dari dua kategori yaitu nilai IPA dan nilai IPS. Jika kita lakukan klasifikasi langsung dengan FCM kita tidak serta merta mendapatkan hasil klasifikasi nilai yang rata-rata besar di IPA dan yang rata-rata besar di IPS. Mengapa demikian? Karena ada kemungkinan data tersebut terklasifikasi menjadi nilai yang rata-rata IPA dan IPS kecil dan nilai rata-rata IPA dan IPS besar. Berikut ini grafik hasil olah data yang dilakukan oleh contoh help matlab (ketik help fcm). Coba lihat … data tercluster menjadi siswa yang pinter IPA dan IPS dengan yang bodoh IPA dan IPS, padahal yang kita cari siswa yang cenderung IPA (nilai IPA > IPS) dengan yang cenderung IPS (nilai IPS>IPA).


Oleh karena itu agar kita memperoleh klasifikasi antara kelompok IPA dan kelompok IPS kita harus menambahkan satu kategori di kolom berikutnya. Katakanlah jika kelompok IPA (besar nilai IPA-nya) kita kategorikan “1” dan sebaliknya IPS dengan “0”. Pindahkan ke Excel lalu beri satu kolom baru dengan instruksi IF: “=IF(A1<B1;0;1)”. Sehingga diperoleh data baru yang akan diklasifikasi oleh fcm.


… dst

Rename data lama dengan data baru yang tiga kolom ini, lakukan instruksi fcm seperti pada help fcm:

[center,U,obj_fcn] = fcm(data,2);

plot(data(:,1), data(:,2),’o’);

hold on;

maxU = max(U);

% Find the data points with highest grade of membership in cluster 1

index1 = find(U(1,:) == maxU);

% Find the data points with highest grade of membership in cluster 2

index2 = find(U(2,:) == maxU);

line(data(index1,1),data(index1,2),’marker’,’*’,’color’,’g’);

line(data(index2,1),data(index2,2),’marker’,’*’,’color’,’r’);

% Plot the cluster centers

plot([center([1 2],1)],[center([1 2],2)],’*’,’color’,’k’)

hold off;

center:

0.6525 0.2942 0.9853 à Pusat cluster IPA

0.3025 0.5733 0.0113 à Pusat cluster IPS

Hasilnya dapat dilihat pada grafik di bawah ini:


Hasilnya akurat bangettttt …

Menampilkan gambar pada Form di Matlab

Biasanya pada gui yang kita rancang membutuhkan logo atau informasi lainnya yang berkaitan dengan software yang kita buat. Matlab menyediakan fasilitas menampilkan gambar dengan fungsi-fungsinya.

Langkah pertamanya adalah mendrag objek Axes ke layar disain Form. Karena axes inilah yang akan menayangkah gambar yang kita perlu tampilkan. Berikut ini contoh script sederhana yang diletakkan pada fungsi “Opening Function”.

 

  1. axes(handles.axes1);
  2. image(imread(‘logo’,‘jpg’));
  3. grid off;
  4. axis off;

 

Penjelasan:

Baris 1) bermaksud mengarahkan gambar (image) ke object bernama axes1 dilanjutkan dengan line 2) membaca (imread) file gambar bernama “logo.jpeg”. Baris 3) dan 4) hanya bermaksud meniadakan grid dan axis karena memang yang ditampilkan bukan grafik (citra).

 

Insert Data dari Workspace ke Database Access dari MATLAB

Setelah kita mencoba mengambil data dari suatu tabel pada database, kini saatnya kita mencoba memasukan record baru ke database via Visual Query Builder Matlab. Pertama-tama kita memerlukan data record yang akan diinsert ke database. Jangan lupa, format datanya adalah “cell”.

>> b={[‘008’] [‘kaca’] [‘1000’]}

b =

‘008’ ‘kaca’ ‘1000’

Variabel inilah yang akan kita insert ke database, maka langkah yang perlu kita lakukan adalah mengklik “Inser” pada “Data Operation” di Visual Query Builder, pilih tabel tulis variabel b, dilanjutkan dengan klik “Execute”.

Perhatikan jika kita berhasil memasukkan data ke database, akan muncul pesan “Data in variable b successfully written to table barang”. Apa benar data telah masuk? Coba saja klik “Select” pada “Data Operation” ganti variabel b menjadi a dilanjutkan dengan klik pada “Execute” hasilnya pada command window sebagai berikut:

>> a

 

a =

‘001’ ‘bata’ ‘550’

‘002’ ‘pasir’ ‘300000’

‘003’ ‘koral’ ‘200000’

‘004’ ‘semen’ ‘55000’

‘008’ ‘kaca’ ‘1000’

Tampak record baru (kaca) pada baris terakhir .. Selamat Mencoba.

Mengambil Data Dari Database Kemudian Melakukan Perhitungan

Tulisan yang lalu sempat membahas teknik mengambil data dari suatu database dengan bahasa Matlab. Berikutnya adalah dari data yang diambil tersebut akan kita gunakan untuk perhitungan. Permasalah yang muncul adalah teknik mengkonversi data karena data yang diambil lewat instruksi “select” pada Visual Query Builder adalah tipe “cell”. Anggaplah Anda sudah membuat ODBC dari suatu database (Access, MySQL, dll) di windows. Buka Visual Query Builder Anda lalu koneksikan disertai perintah sql “Select”. Beri nama variabel keluaran Matlab di workspace-nya “a”.

Setelah ditekan tombol “execute” maka di workspace Anda menjumpai suatu variabel “a” yang jika diketik pada Command Window muncul:

>> a

a =

‘001’ ‘bata’ ‘550’

‘002’ ‘pasir’ ‘300000’

‘003’ ‘koral’ ‘200000’

‘004’ ‘semen’ ‘55000’

Misal kita diminta menjumlahkan harga bata dengan harga pasir (550 + 300000). Jika langsung menggunakan instruksi a(1,3)+a(2,3) akan muncul pesan error: ??? Undefined function or method ‘plus’ for input arguments of type ‘cell’. Itu tandanya Matlab menolak karena yang dijumlahkan bukan numerik. Ikuti langkah berikut ini untuk melakukan konversi.

Gunakan instruksi “cell2mat” untuk merubah format “cell” dari database menjadi format “mat”. Perhatikan instruksi pada command window di bawah ini:

>> bata=str2num(cell2mat(a(1,3))) % merubah cell ke mat dilanjutkan ke numerik !!!

bata =

550

>> pasir=str2num(cell2mat(a(2,3)))

pasir =

300000

>> bata+pasir

ans =

300550

Bagaimana melakukannya di GUI (Form)? Itu ceritanya lain lagi .. tapi prinsip konversi tipe datanya tetap sama.

 

Merancang Kontroler PID

Karena merubah Plant sangat tidak layak, maka perancang Sistem Kendali biasanya menambahkan suatu kontroler untuk memperbaiki kinerja system. Kontroler ada tiga bagian, yaitu: Proporsional, Integrator dan Diferensiator. Buka Matlab, masuk ke simulink, klik New.

Rancanga sistem kendali lingkar tertutup, dengan G(s)=1/(s+4). Jika tanpa kontroler menghasilkan output sebagai berikut. Klik Simulation > Start. Dobel klik pada Scope, dan klik pada gambar

Tampak bahwa ada error sebesar 0,8. Perhatikan display. Oleh karena itu kita diminta menambah kontroler guna mengurangi kesalahan tunak itu. Sedangkan kecepatan (Respon Time) dua detik. Coba tambahkan kontroler proporsional. Coba tambahkan proporsional Gain 10 x.

Tampak ada perbaikan kesalahan tunak dari 0,8 menjadi 0,29. Sedangkan kecepatan membaik (dari 2 detik menjadi 1,2 detik.

Berikutnya kita coba Integrator, misalnya tambahkan integrator 1/s sebagai kontroler. Tampak adanya perbaikan yang sempurna dari kesalahan tunak (mendekati nol).

Hanya saja ada masalah pada kecepatan system. Perhatikan gambar outputnya, walaupun kesalahan membaik tetapi kecepatannya turun drastis, dari 2 detik menjadi hamper 10 detik. Untuk system tertentu sangat tidak menguntungkan (biasanya system servo membutuhkan kecepatan system).

Tetapi jika digabung, proporsional + integrator, maka ada perbaikan dari kecepatan dari 10 detik menjadi hampir 3 detik dan kesalahan membaik (mendekati nol).

Hanya saja muncul gejala baru yang dikenal dengan istilah “Overshoot”, sebesar 10%.

Terkadang Overshoot bisa berbahaya jika terlampau tinggi. Misal listrik, jika terlalu sering overshoot, akan merusak komponen. Berikutnya gabungan antara Proporsional (P), Integrator (I) dengan Diferensiator (D), atau dikenal dengan istilah PID.

Pada prinsipnya diferensiator bermanfaat untuk mempercepat system, tetapi dampaknya ada riak (derau) pada system. Mungkin sangat mengganggu untuk system tertentu. Pada Matlab, PID dapat kita rancang dengan toolbox PID. Pada simulink, search “PID” makan akan diperoleh toolbox tersebut.

Letakan pada posisi kontroler, atur ukuran P, I dan D sesuai dengan kebutuhan system yang optimal. Selamat mencoba.

 

Membuat Jaringan Syaraf Tiruan (JST) di Matlab

Beberapa literatur banyak kita jumpai baik terbitan lokal maupun internasional yang membahas mengenai JST. Teknik yang merupakan salah satu dari sekian banyak teknik dalam Soft Computing. Ada baiknya kita membaca landasan teori mengenai JST pada salah satu buku itu, bila perlu buat ulang dari algoritma yang tersedia dengan bahasa pemrograman yang Anda kuasai seperti C++, Pascal atau Java. Matlab menyediakan toolbox yang dapat kita lihat struktur programnya. Misal kita ingin tahu bagaimana Matlab membuat JST. Ketik saja di command window: >> edit newff. Maka kita dapat melihat alur program M-File yang merupakan fungsi untuk merakit JST.

Misalnya kita memiliki tiga buah masukan dan satu keluaran. Keluaran yang dihasilkan akan kita arahkan ke sasaran tertentu. Teknik ini sering dikenal dengan nama Supervised Learning. Misal kita memiliki tiga buah sampel yang masing-masing menyatakan kurang, baik, dan cukup. Katakanlah sampel itu A, B, dan C. A=[0; 0; 1], B=[1; 0; 1] dan C=[1; 1; 1]. Perhatikan, di Matlab vektor kita nyatakan dengan matriks kolom. Berikutnya, karena bertipe pembelajaran terpandu, kita harus membuat target, T=[1 5 10]. Perhatikan, untuk target matriks dibuat dengan vektor baris. Artinya jika ada masukan seperti A, keluarannya harus mendekati target=1, jika masukan B, keluaran harus mendekati 5, dan begitu pula untuk masukan C. Untuk pembelajarannya, JST melakukan secara simultan A, B dan C. Jadi input untuk pembelajarannya: Input = [A B C] yang sama dengan, Input =[0 1 1; 0 0 1; 1 1 1] yang merupakan matriks tiga baris dan tiga kolom. Jika seluruh matriks sudah diinput pada command window, maka kita sudah siap untuk merakit JST. Ketik “nntool” pada Comand Window.

Klik Import, pilih variabel input pada workspace untuk input dan T pada workspace untuk target. Klik OK saat Anda diminta konfirmasinya. Jika sudah berarti kita telah memberikan masukan dan target pembelajaran. Tinggal kita merakit JST, klik “New” dilanjutkan dengan melakukan setting di Toolbox. Pilih masukan dan targetnya (Input dan T). Secara default, jumlah neuron per layer adalah 10 (layer tersembunyi). Di sinilah letak kelemahan JST. Jika Anda gunakan neuron terlalu banyak, jangan heran jika ada pesan kesalahan “Out of Memory”.


Jika sudah OK, pada nntool, dobel klik network1. Tentu saja Anda boleh merubah nama network1 menjadi nama lain sesuai selera. Lakukan proses pembelajaran dengan mengklik “Train”. Kembali kita diminta memilih Input dan Target. Jika sudah klik “Train Network”.


Selamat, Anda telah berhasil membuat JST sekaligus melakukan pembelajaran terhadap JST tersebut dengan tiga masukan tersebut. Kembali ke nntool, langkah terakhir yang tidak kalah pentingnya adalah mengeksport JST itu ke workspace dengan mengklik tombol “Export”. Pilih salah satu saja yaitu network1, karena akan kita gunakan untuk menguji masukan tertentu apakah masuk kategori kurang(1), cukup(5) atau baik(10).

Untuk mengujinya, pada command window, jika anda ketik sim(network1,A), anda harus menemukan jawaban= 1. sim(network1,B), jawabannya harus 5, begitu juga yang C, jawaban harus 10. Coba misalkan ada data baru D=[1; 1; 0], cenderung masuk kelas baik, cukup atau kurang? Ketik saja sim(network1,D). Jawabannya adalah 10, berarti dia masuk kelas “Baik”. Mudah bukan? Tinggal tugas Anda adalah membuat tampilan visualnya (GUI) agar pengguna mudah memakai program JST yang baru saja Anda hasilkan lewat console. (Note: untuk yang ingin mengetahui competitive network, lihat posting berikutnya). Siapa tahu ada yang ingin melihat penerapan JST di identifikasi pola, lihat di sini. Atau jika ada yang tertarik untuk menerapkan JST untuk peramalan, bisa lihat di sini.


Rahmadya Trias Handayanto


Seputar Jaringan Syaraf Tiruan

Jaringan Syaraf Tiruan (JST) merupakan salah satu teknik dalam Soft Computing yang bermaksud meniru mekanisme otak biologi. Otak biologi yang terdiri dari Neron dengan Axon dan Dendritnya ditiru oleh JST berupa pembobotan pada neuronnya. Bobot dapat berisi penguatan ataupun pelemahan dengan fungsi yang berbeda-beda seperti linear, sigmoid, tangen sigmoid, dan fungsi matematis lainnya. Untuk merubah bobot agar sesuai dengan yang diharapkan perlu dibuat mekanisme pembelajaran. Salah satu teknik pembelajaran yang terkenal adalah perambatan balik (backpropagation).

Matlab menyediakan toolbox yang lengkap untuk membuat sistem JST, baik berupa fungsi ataupun layanan GUI-nya. Untuk yang gemar mempelajari Algoritma, ada baiknya Anda membaca algoritma dari M-File yang ada pada Source Code Matlab. Karena beberapa dosen tidak menyukai Matlab untuk pembelajaran karena khawatir mahasiswanya tidak berfikir tentang Algoritma pemrograman dan cenderung tinggal pakai. Sebenarnya banyak situs-situs yang menyediakan source code dengan bahasa C++ untuk sistem JST (atau mungkin Java). Akan tetapi jika anda sudah familiar dengan algoritmanya, dan ingin membangun aplikasi dengan cepat dan berpenampilan visual yang menarik, tentu saja pilihan kita jatuh ke software yang mendukung untuk itu, salah satunya adalah Matlab.

Salah satu yang kerap mengganggu saya untuk membuat aplikasi berbasis JST adalah kendala pembelajaran (learning). JST sangat membutuhkan sumber daya RAM yang tinggi, kerap kali jika neuron terlalu banyak, Matlab terkadang memunculkan pesan Out of Memory. Salah satu contohnya adalah saat saya membuat klasifikasi dari grafik yang diumpan oleh software “Wireshark” dengan target klasifikasi ke dalam kategori jaringan normal, padat ataukah tidak normal (ada virus, DOS, dan sejenisnya). Matriks gambar ukuran 200 x 300 harus sanggup saya konversi menjadi berukuran kecil bervektor kolom 100, dan tetap saja meminta saya menaikan RAM 3 Gb, padahal laptop saya memiliki RAM 2 Gb dan terpaksa saya perkecil lagi resolusinya menjadi vektor kolom 20 saja. Tentu saja akurasinya akan berkurang. Oleh karena itu saat pembelajaran sebaiknya pinjam saja komputer setara server dengan RAM yang besar dan Prosesor terbaru.


Aslinya gambar tersebut adalah grafik trafik jaringan dengan axis dan ordinat yang dibuang dengan fungsi “Imcrop” yang merupakan fungsi cropping suatu gambar untuk menghilangkan bagian lain yang diperlukan.


Pengolahan citra bermaksud mengkonversi gambar menjadi matriks dan vektor yang kemudian akan diolah oleh JST untuk keperluan pembelajaran ataupun klasifikasi ke dalam kelas tertentu. Sehingga saat dijalankan akan menghasilkan pesan tertentu.


Selamat mencoba


Rahmadya Trias Handayanto


 

Instalasi Matlab

Matlab tersedia dalam dua pilihan, yakni untuk sistem operasi Windows dan Linux dan bahkan tersedia juga untuk komputer Machintosh. Untuk versinya, setiap tahun biasanya mengeluarkan versi terbaru, misal Matlab 2009, 2010, 2011, dan seterusnya. Misalnya saya akan menginstall versi 2010, sediakan terlebih dahulu source Matlabnya. Beberapa situs terkadang menyediakan file master yang disharing, misalnya www.avaxhome.ws. Masukkan pada kolom search: Matlab, maka akan ditampilkan baik software maupun ebook tentang Matlab. Atau coba Link ini. Biasanya dalam satu paket berisi file-file berikut ini:


Jika dalam bentuk CD biasanya langsung AutoRUN, atau klik saja file “setup”, maka Anda akan masuk ke proses instalasi Matlab 2010. Biasanya akan muncul instalasi Microsoft visual c++.


Yang dilanjutkan dengan mengkopi file-file yang dibutuhkan Matlab.


Saat akan menginstall matlab, diperlukan serial number, dan diakhiri dengan aktivasi setelah Matlab berhasil diinstall. Ada dua pilihan, yaitu Matlab Stand Alone dan Matlab network. Biasanya yang kita gunakan adalah Stand Alone. Untuk mudahnya baca readme di CD/File master Matlab 2010 dan ikuti saja langkah-langkahnya. Pilih install tanpa menggunakan internet saat muncul pesan di awal proses instalasi, lalu klik “Next>”.


Bacalah license agreement sebelum mengklik tomblo radio “Accept”. Matlab termasuk software mahal, akan tetapi untuk pendidikan memiliki harga khusus yang jauh lebih murah.


Berikutnya pada jendela File Installation key, pilih “I have the File Installation Key for my license ” jika sudah memiliki, dan masukan angkanya.


Klik “Next>” maka jendela berikutnya adalah pilihan instalasi. Pilih Typical saja dan biarkan default lokasi program di C:\ kecuali jika Anda ingin memindahkan letak folder instalasinya.


Setelah mengklik “Yes” maka Matlab akan membuatkan folder di C:\Program Files\MATLAB\R2010b\. Terakhir, sebelum proses instalasi, Matlab akan menampilkan fitur-fitur apa saja yang akan dipasang, pilih “Install” dan tunggu beberapa saat (tergantung kecepatan prosesor Anda) sampai proses instalasi selesai.


 Perhatikan dua tiga file pada source file, tampak satu buah file readme (txt) dan dua buah file aktivasi (dat) yang akan digunakan saat aktivasi.


Saat proses instalasi selesai, maka Anda diminta memilih menggunakan langsung Matlab yang baru diinstall itu, ataukah melakukan proses aktivasi. Jika Anda telah memiliki file Aktivasi, anda tinggal mengarahkan (Browse) ke file aktivasi pada komputer Anda. Untuk server, gunakan lic_server dan untuk standalone gunakan lic_standalone. Berikut ini cara penggunaannya. Jika Icon Matlab tidak muncul di Desktop, tidak berarti Anda gagal menginstall Matlab, coba cari dengan explore di lokasi: C:\Program Files\MATLAB\R2010b\bin. Anda akan menjumpai Matlab.exe, buat short cut ke dekstop dengan klik kanan – Send to – Desktop (Create Shortcut). Banyak software yang mirip dengan Matlab tetapi berbasis open source seperti Scilab, Octave, Euler Math Toolbox dan FreeMat. Namun, tentu saja sedikit kurang fleksibel dibanding Matlab. Jika dibuka, tampilan Matlab akan seperti gambari berikut ini.


[update:3.5.2018]

Beberapa versi Matlab lama sejak akhir 2017 diminta untuk aktivasi kembali. Jika tidak maka tidak bisa digunakan. Selain dengan mengundurkan “date and time” windows yang digunakan, cara lain adalah dengan menggunakan kode aktivasi versi terbaru, misal 2013 ke atas.

Mengkoneksikan Database Ke Matlab – Bagian 3

Mengambil data dari database lewat GUI membutuhkan sedikit pengetahuan mengenai sistem kerja GUI dan M-File pada Matlab. Jika tulisan ini pertama kali Anda baca sebaiknya Anda lihat materi sebelumnya di: BAG 1 dan BAG 2 . Jika sudah Anda mengerti, barulah bisa mengikuti tulisan ini, tentu saja sambil membuka Matlab Anda. Berhubung ActiveX  antara satu komputer dengan komputer lainnya berbeda, di sini untuk melihat data yang kita ambil saya menggunakan objek “Table” pada GUI. Coba kita mulai dari awal, buka GUI dengan mengetik guide di command window atau dengan cara File – New – GUI di pulldown menu. Pilih Blank GUI karena kita akan membuat GUI dari nol. Karena hanya sekedar mengakses database, coba rancang bentuk berikut ini yang rencananya nanti tabel tersebut akan berisi data yang dipanggil oleh GUI tersebut.


Untuk mengisi nama kolom, klik kanan pada tabel tersebut pilih Properti Editor … Isikan nama-nama kolom sesuai dengan tabel yang anda miliki. Untuk menambah kolom ketikkan klik insert, lalu isi nama pada kolom kosong seperti berikut ini.


Klik Apply dan OK jika sudah selesai, maka Anda telah berhasil membuat tabel kosong yang nantinya akan kita isikan datanya lewat script. Jika tabel dan ODBC sudah Anda buat, mari kita mencoba mengakses data dari database tersebut dengan toolbox database yang disediakan oleh matlab. Perhatikan ujung kanan bawah Matlab Anda, ada tulisan Start bukan? Banyak pengguna Matlab baru yang tidak “ngeh” dengan tombol tersebut. Coba tekan, arahkan ke toolbox, lalu pilih Visual Query Builder pada database. Gunakan cara seperti pada tulisan saya terdahulu . Berikutnya agar bisa diterapkan di GUI yang baru kita buat, maka kita mau tidak mau harus mengkonversi menjadi bahasa Matlab dengan cara mengklik: Query – Generate M-File. Oiya, pilih seluruh Fields (kode, nama dan harga) dan isikan databrg pada MATLAB workspace variable.


Hasilnya adalah serangkaian kode Matlab yang berisi koneksi database dilanjutkan dengan script SQL ambil data (Select). Simpan dan beri nama dengan nama ambildata. Sekarang kembali ke GUI yang telah Anda buat, coba jalankan (RUN) sehingga Anda akan diminta mengisi nama file GUI itu, beri nama, misalnya data. Masih kosong? Tentu saja karena belum kita isi programnya. Pada grid_opening function isikan dengan script m-file hasil generasi dari querybuilder. Bingung? Coba anda klik simbol “f” di M-file editor anda, maka akan muncul grid_openingfunction, klik maka anda diarahkan ke function tersebut. Function itu dieksekusi saat GUI dijalankan. Coba edit script berikut ini, dengan menginsert script ambildata ke data_openingfcn:


Oke, kembali ke command window, coba ketik ambildata agar variabel databrg muncul di workspace. Mengapa? Nanti Anda akan tahu sendiri maksudnya. Di fasilitas help mungkin tidak ada, tetapi jika Anda memiliki bakat “utak-atik” tentu akan menemukannya. Buka GUI dan klik kanan pada tabel dan pilih table property editor. Ribet ya bolak balik? Kalau tadi anda mengedit kolom untuk mengisi kode, nama dan harga, di sini anda klik Data untuk mengisikan data. Nah, karena Anda sudah menjalankan script ambildata, muncul dah di sana variable databrg, klik pada variabel tersebut, lanjutkan dengan apply dan OK.


Harusnya Anda melihat ada isian pada list data (conn, databrg, e dan s). Jika tidak berarti Anda belum menjalankan instruksi yang saya berikan di atas. Jika sudah, coba Anda jalankan GUI yang telah anda buat, hasilnya adalah GUI tersebut berhasil mengakses database kemudian diambil datanya dan diletakkan di objek tabel pada GUI.


Selamat mencoba, pusing dikit ga pa pa kan? Sumpah .. itu cara paling gampang !!!


Rahmadya Trias Handayanto

ActiveX Control Pada Matlab

Salah satu fasilitas menarik pada GUI di Matlab adalah fungsi Aktif X . Coba klik dan drag di lembar kerja GUI maka secara otomatis anda akan diminta memilih tipe ActiveX Control yang Anda inginkan. Jika komputer Anda telah terinstall Visual Basic, anda dapat memanfaatkan fasilitas, misalnya DBGrid Control. Klik “Create” .


Buat GUI sederhana yang fungsinya memanggil data yang telah dikoneksikan ke Matlab.


Untuk mengkoneksikan Database lihat https://rahmadyatrias.wordpress.com/2011/03/17/mengkoneksikan-database-ke-matlab-–-bagian-2/ . Coba ya ..


Rahmadya Trias Handayanto

Kesalahan Tunak

 

Hari/Tgl/MK/Ruang: Rabu/13-04-2011/P. Pengaturan/Lab. Software

Sistem lingkar tertutup bermaksud mengurangi kesalahan yang terjadi dengan mekanisme umpan balik negatif. Secara matematis kesalahan tunak diperoleh dengan rumusan sebagai berikut:



Untuk mempraktekan hasil perhitungan dengan simulasi menggunakan simulink pada Matlab. Buka simulink dengan mengklik icon: dilanjutkan dengan untuk membuat model baru.


Buat gambar di bawah ini:


Coba Running hasilnya, tampak adanya error tunak sebesar 0,8. Buktikan dengan menghitung langsung dengan persamaan (1) di atas.


Secara teori, untuk menghilangkan kesalahan, biasanya menggunakan integrator, coba sisipkan integrator, maka Anda akan melihat kesalahan yang telah diperbaiki. Tetapi salah satu kelemahan integrator adalah respon jadi lambat.



 

Sebagai latihan, coba sendiri untuk masukan jenis lainnya yakni Ramp.


Rahmadya Trias Handayanto

Mengkoneksikan Database Ke Matlab – Bagian 2

Menyambung tulisan yang lalu (https://rahmadyatrias.wordpress.com/2011/02/22/mengkoneksikan-database-ke-matlab-–-bagian-1/), berikut ini akan dipaparkan bagaimana cara menghubungkan Matlab dengan Open Database Connectivity (ODBC) yang telah dibuat. Setelah ODBC dibuat dengan software apapun, Windows akan menjembatani antara software database dengan beragam aplikasi. Inilah yang sedikit membantu, hanya saja, ODBC berplatform Windows.

Cara paling gampang untuk mengkoneksikan suatu database dengan Matlab adalah dengan memanfaatkan Visual Query Builder yang ada pada toolbox Matlab. Cara ini merupakan cara paling mudah (tanpa coding), sangat disukai oleh para Mahasiswa S2 yang alergi dengan coding. Jangan heran ya, kalo menjumpai mahasiswa komputer yang alergi ama coding.

Gambar berikut ini menunjukkan tampilan jendela visual query builder (querybuilder) yang membantu kita mengambil dan mengirim data dari Matlab ke database dan sebaliknya. Sebelumnya, Anda harus telah membuat ODBC, karena jika belum, pada “data source” database Anda tidak ada. Perhatikan, karena saya telah membuat ODBC bernama rab, maka tampak pada “data source” ODBC milik saya.

Jika saya klik “rab” maka Matlab akan melakukan proses pemanggilan tabel yang akan diletakkan di kolom “Tables”. Dan jika tabel “barang” saya klik, maka akan menampilkan Fields yang terdiri dari kode, nama dan harga. Misalnya saya akan membuat suatu variabel, katakanlah “Kode” yang berisi data kode pada tabel barang, maka klik “kode” pada Fields dan beri nama variabel dengan mengetik “Kode” pada MATLAB workspace variable. Setelah itu klik “Execute”, maka Matlab secara otomatis akan membuat bahasa SQL “SELECT ALL kode FROM barang dan akan membentuk variabel baru bernama Kode. Ketik pada Command Window, maka Anda akan memperoleh isi dari variabel Kode.

>> Kode

Kode =

‘001’

‘002’

‘003’

‘004’

Bagaimana menerapkannya dalam GUI, seperti form penjualan, pembelian dan sebagainya? Wah, panjang banget ceritanya. Donlot videonya di https://rahmadyatrias.wordpress.com/2009/12/07/tutorial-menulis-program-berbasis-gui-dalam-bahasa-matlab-7 , coba praktekan, semoga berjalan lancar.

 

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.

 

 

 

 

 


Kontroller PID untuk Pengaturan

Hari/Tgl/M.Kul/Dosen: Rabu/27-10-2010/Sis. Kendali Digital/Rahmadya Trias, ST, MKom.

Berikut ini adalah contoh sistem pengaturan untuk menjaga sistem tetap berada di setpoint. Buka Matlab, klik file – model , lalu gambar sistem di bawah ini:

Diumpamakan Plant memiliki fungsi alih 1/(s+1), jika diranning diharapkan sistem tetap bertahan di setpoint, seperti pada gambar di bawah ini:

Selamat Mencoba !!!