Kamis, 01 September 2022

Fuzzy - 1

DASAR-DASAR MATLAB

[KEMBALI KE MENU SEBELUMNYA]


1. Tujuan

a. Mahasiswa mampu memahami konsep dasar Fuzzy Kontrol serta dasar-dasar aplikasi Matlab

b. Mahasiswa mampu merancang Fuzzy Kontrol Sistem menggunakan matlab

2. 
Alat dan Bahan


Alat yang dibutuhkan pada pembelajaran ini yaitu software MATLAB


3.
Dasar Teori 

MATLAB

MATLAB merupakan bahasa pemrograman tingkat tinggi yang dikembangkan oleh MathWorks dan dikhususkan untuk komputasi numerik, visualisasi,  dan  pemrograman.  

Tampilan MATLAB:



DASAR-DASAR MATLAB

MATLAB adalah bahasa pemrograman tingkat tinggi dimana arti perintah dan fungsi-fungsinya bisa dimengerti dengan mudah, meskipun untuk seorang pemula. Hal ini karena dalam MATLAB masalah dan solusi bisa diekspresikan dalam notasi-notasi matematik yang biasa dipakai. Nama MATLAB adalah singkatan dari matrix laboratory. Pada awalnya, MATLAB ditujukan sesuai dengan namanya, yaitu untuk menangani berbagai operasi matriks dan vektor menggunakan rutin-rutin dan library LINPACK dan EISPACK. Spektrum penggunaan MATLAB yang luas ini dimungkinkan karena MATLAB telah melengkapi diri dengan berbagai toolbox. Sebuah toolbox dalam MATLAB adalah koleksi berbagai fungsi MATLAB (M-Files, yaitu file berekstensi .m), yang merupakan perluasan MATLAB untuk memecahkan masalah-masalah khusus pada bidang tertentu. Oleh karenanya, dengan memakai toolbox dalam MATLAB, para pengguna bisa belajar dan menerapkan berbagu specialized technology. Beberapa bidang sudah tersedia toolbox-nya dalam MATLAB meliputi fu logic, neural netwerk Garingan syaraf tiruan), control Ditem (sistem kontrol), signal processing (pengolahan sinyal), dan wavelet.

 

4.1 Memulai dan mengakhiri MATLAB



Gambar 4.1 : Tampilan utama MATLAB

 

4.2 Perintah-perintah dasar

4.2.1 Perintah langsung pada MATLAB Prompt

Pada MATLAB prompt, coba ketikkan:

a=2

lalu tekan ENTER, maka MATLAB akan merespons dengan

a =

Perhatikan bahwa setiap perintah pada MATLAB Prompt hanya akan dieksekusi jika ENTER sudah ditekan. Coba sekarang:

a=2;

maka tidak ada tampilan respons MATLAB. Hal ini karena tampilan respons tidak akan muncul jika perintah diakhiri dengan "", namun variabel a tetap tersimpan di memori selama Anda belum menghapusnya dan bisa digunakan untuk operasi-operasi selanjutnya. Sekarang coba variabel lain:

b=3;

kemudian lakukan penjumlahan dengan memberikab perintah:

a+b

maka respons MATLAB adalah

ans=

5

dimana ans (singkatan dari answer) adalah sebuah variabel yang otomatis dibuat MATLAB jika variabel output tidak diberikan. Agar bisa lebih mudah dipahami, coba berikan perintah

c=a+b% penjumlahan

maka respons MATLAB adalah

c =

5

disini e adalah variabel output, pengganti ans. Cara ini akan lebih disukai jika ingin digunakan untuk melakukan operasi-operasi selanjutnya. C Sembarang ekspresi di sebelah kanan tanda "" diabaikan, sehingga tanda ini sering dipakai untuk memberi komentar suatu perintah. Perhatikan pula. bahwa variabel MATLAB adalah sensitive case, sehingga variabel a tidak akan sama dengan a .Selama belum dihapus, semua variabel yang sudah diketikkan akan tetap disimpan dalam memori. Setelah melakukan banyak operasi, Anda mungkin akan cenderung lupa, variabel apa saja yang sudah diketikkan pada MATLAB Prompt. Lalu bagamana mengetahur variabel apa saja yang sudah diketikk pada MATLAB prompt? Jangan kuatir, MATLAB tahu keinginan anda. Perhatikan Gambar 4.1, pada kolom kiri bawah ada tab Workspace. Klik tab ini, maka akan ditampilkan semua variabel yang sudah dieksekusi pada MATLAB Prompt. Anda bisa memanggil kembali semua variabel dalam yang terdaftar dalam Workspace. Coba ketikkan a pada MATLAB prompt, maka akan didapat respons

ans =

2

yang mana adalah isi variabel a yang diketikkan sebelumnya. Sekarang coba berikan perintah

clear a

maka variabel a akan dihapus dari Workspace (juga dari memori), dan tidak bisa lagi dipanggil. Coba ketikkan a pada MATLAB prompt, maka

responsnya

??? Undefined function or variable 'a'.

yang menandakan variabel a sudah tidak ada. Jika ingin menghapus semua variabel yang tersimpan di memori, berikan perintah

clear all

Jika ingin menghapus hanya tampilan dalam Command Window, berikan perintah

clc

Perintah ini tidak akan menghapus variabel-variabel yang disimpan dalam memori.

 

4.2.2 Memotong Perintah Yang Panjang

Sesekali mungkin Anda perlu memberikan perintah yang cukup panjang Dalam kasus demikian, akan tidak praktis jika perintahnya ditulis dalam satu bans. MATLAB mengjinkan Anda untuk menuliskan satu perintah yang panjang dalam dua baris atau lebih dengan menambahkan titik tiga " pada posisi yang ingin dipotong dan diletakkan pada baris berikutnya. Sebagai contoh, perintah berikut:

c=a+b+d+ ...

e+f+g+ ...

h+i+j;

merupakan perintah satu baris tetapi ditulis dalam tiga baris.

 

4.2.3 Menyimpan Data Workspace

Semua variabel dalam workspace dapat disimpan dalam bentuk file .mat.

Caranya, melalui menu File à Save Workspace As. Untuk memanggil kembali file .mat, gunakan File à Import Data. Untuk menyimpan per variabel dalam suatu file, gunakan perintah save. Perintah save juga bisa menyimpan dalam mode teks ASCII. Contoh sintaksnya diberikan berikut:

 

save dataku x menyimpan x dalam file dataku.mat

save dataku x y z menyimpan x, y, z dalam file dataku. mat. Tanda wildcard (*) dapat digunakan untuk menyimpan variabel-variabel yang cocok dengan

 

pattern yang diberikan

 

save dataku x y = -ascii menyimpan x,y,z dalam file dataku.txt

 

menggunakan ASCII 8 dijit save dataku x y z -ascii -tabs menyimpan x,y,z dalam file dataku.txt

 

save dataku x y z -ascii-double menyimpan x,y,z dalam file dataku.txt menggunakan ASCII 16 dijit

save dataku x y z -ascii-tabs menyimpan x,y,z dalam file dataku.txt menggunakan ASCII 8 dijit dengan TAB delimited

 

4.2.4 Perintah melalui M-Files

Setelah memberikan sekian banyak perintah pada MATLAB prompt, seringkali kita ingin mengulangi beberapa perintah dengan sintaks yang sama persis atau serupa dengan perintah-perintah yang sudah diberikan sebelumnya.

MATLAB selalu menyimpan semua perintah yang sudah dijalankan pada MATLAB prompt dan bisa dilihat melalui Command History Window (lihat Gambar 4.1). Untuk memanggil kembali perintah-perintah yang disimpan dalam Command History, tekan tombol 1, kalau perlu beberapa kali sampai perintah yang diinginkan muncul, lalu tekan ENTER. Menekan tombol (panah bawah), akan memunculkan perintah-perintah dalam Command History dalam urutan sebaliknya.

Namun bagaimanapun juga akan sangat tidak praktis jika sederetan perintah harus diketikkan satu per satu pada MATLAB prompt. Anda bisa menyimpan terlebih dahulu sederetan perintah dalam M-Files (yaitu, file teks biasa berekstensi .m), kemudian dengan sekali panggil pada MATLAB prompt nama file m tersebut, maka sederetan perintah akan dijalankan sekaligus oleh MATLAB. Misalkan, Anda menyimpannya dengan nama file perintahku.m, maka untuk menjalankan perintah-perintah dalam file tersebut, cukup panggil dengan perintahku melalui MATLAB prompt. MATLAB menyediakan editor khusus untuk membuat M-Files. Untuk memanggil editor M-Files, ketikkan edit pada MATLAB prompt. Bisa juga dipanggil melalui menu File à New à M-File. Secara default, semua fungsi yang Anda ketikkan melalui Editor M-Files akan disimpan dalam folder work. Selam untuk menyimpan sederetan perintah, M-Files juga dipakai untuk mendefinisikan fungsi, dan sebenamya hampir semua fungsi MATLAB didefinisikan dalam M-Files. Berikut adalah contoh mendefinisikan suatu fungsi dengan M-Files. Ketikkan berikut dalam Editor M-Files MATLAB:

 

function (X,Y,2]-plusmin (a,b)

X=a+b:

Y=a-b;

Z=a*b:

 

simpan dengan nama file plussin.m. Fungsi ini mempunyai dua argumen input: a dan b, dan tiga argumen output: x, y, dan z. Fungsi ini melakukan tiga operasi sekaligus, yaitu penjumlahan, pengurangan, dan perkalian antara kedua variabel masukan. Hasil penjumlahan diisikan dalam variabel x, hasil pengurangan diisikan dalam y, dan hasil perkalian diisikan dalam variabes 7. Untuk menggunakan fungsi plusmin secara lengkap, misalkan dengan argumen masukan 2 dan 3, berikan perintah

[r,s,t) = plusmin (2,3)

r=

5

s=

-1

t=

6

 

Perhatikan bahwa nama variabel keluaran dan masukan pada MATLAB prompt tidak harus sama persis dengan nama variabel keluaran yang dipakai dalam file plusmin.m. Jika hanya diketikkan

plusmin (2,3)

ans =

5

maka hanya hasil operasi penjumlahan yang berikan. Jika sintaks fungsi terdiri dari lebih dari satu keluaran, maka pemanggilan tanpa menuliskan variabel keluaran sacara lengkap hanya akan menampilkan isi variabel keluaran pertama.

 

Gambar 4.3

 

4.2.5 Search Path

 

Sembarang M-Files yang ingin dieksekusi dari MATLAB prompt harus ditaruh di current directory (secara default adalah folder work dalam direktori instalasi MATLAB) atau di direktori-direktori yang terdaftar dalam search path. Secara default semua M-Files bawaan MATLAB ditaruh dalam search path. Untuk melihat isi current directory, gunakan perintah dir. Untuk pindak direktori (sekaligus mengubah current directory), gunakan perintah ed. Gunakan perintah delete untuk menghapus sebuah file dalam current directory.

Untuk melihat search path atau mengubahnya, gunakan menu File à Set Path (lihat Gambar 4.3), akan ditampilkan dialog box seperti diperlihatkan dalam Gambar 4.4. Untuk menambahkan sebuah folder tanpa subfolder, gunakan tombol Add Folder, jika dengh subfolder, gunakan Add with Subfolder.

 

Gambar 4.4

 

Cara lain untuk melihat search path, pada MATLAB prompt berikan perintah Path akan ditampilkan daftar semua direktori dalam search path. Untuk menambahkan direktori baru dalam search path, misalkan e:\data, berikan perintah

path (path, e:\data')

dimana direktori baru akan ditaruh di urutan terakhir dalam search path. Jika ingin menaruh direktori baru dalam urutan pertama dalam search path, gunakan perintah:

path('e:\data', path)

4.3 Matriks

4.3.1 Membuat dan mengakses elemen

Sebagai contoh untuk membuat sebuah matriks, pada MATLAB prompt ketikkan berikut

A = [12 11 8 9; 4 2 7 10; 7 2 13 7; 3 2 5 1] % membuat matriks

lalu tekan ENTER, maka MATLAB akan merespon dengan

A=

12 11 8 9 4 27 10

7 2 13 7

3 2 5 1

Untuk mendapatkan tranpose dari A, cukup berikan perintah A. Perhatikan cara pengetikan sebuah matriks. Keseluruhan elemen dari matriks harus berada dalam "11". Tiap elemen dalam satu baris dipisahkan dengan spasi (atau, bisa juga koma). Untuk ganti baris, gunakan "". Untuk mengakses sebuah elemen matriks A, misalkan baris 2 kolom 3, ketikkan:

 

A(2,3)

ans =

7

 

Sekarang ketikkan

 

a = A(2,3)

a =

7

 

dimana isi dari A(2,3) disikan ke a. MATLAB akan memberitahu Anda jika Anda memasukkan indeks matriks yang salah. Coba akses elemen matriks baris 2 kolom 5 (yang mana sebenarnya tidak adal):

 

A(2,5)

??? Index exceeds matrix dimensions.

 

Sebaliknya, jika Anda mengisinya dengan suatu harga, misalkan a(2,5)-1, maka MATLAB akan mengubah dimensi A dan mengisi elemen lainnya dalam kolom 5 dengan nol:

 

A(2,5) =1

A =

12 11 8 9 0

4 2 7 10 1

7 2 13 7 0

3 2 5 1 0

 

4.3.2 Operator ":"

 

Dalam operasi matriks, kita akan sering memakai operator titik dua ":", salah satu operator yang paling penting dalam MATLAB. Operator in: sering dipakai untuk membuat vektor baris dengan elemen bilangan berurutan atau dengan interval tertentu, dan juga mengeset indeks matriks yang ingin diakses. Coba berikan perintah

1:10

akan menghasikan sebuah vektor baris si elemen integer dari 1 sampai

 

10:

ans =

1 2 3 4 5 6 7 8 9 10

 

Untuk mendapatkan vektor bars dengan elemen berurutan dengan interval 2, dari 1 sampai 10, ketikkan

 

1:2:10

ans =

1 3 5 7 9

 

Untuk mendapatkan vektor baris dengan elemen berurutan dengan interval -2, dari 10 sampai 1, ketikkan

 

10: -2 : 2

ans =

10 8 6 4 2

 

Untuk mendapatkan vektor baris dengan elemen berurutan dengan interval 0.5, dari 1 sampai 3, ketikkan

 

1:0.5:3

ans =

45

1.5000 2.0000 2.5000 3.0000

 

Contoh penggunaan operator ini untuk mengakses sebagian atau seluruh elemen baris atau kolom adalah

 

a = A(2, :)

a =

4 27 10

 

yang mana mengakses baris 2 semua kolom. Untuk mengakses semua baris kolom 2

 

A(:,2)

a =

11

2

2

2

 

Untuk mengakses baris 2 kolom 2 dan 3

 

a = A(2,2:3)

a =

27

 

4.3.3 Membuat matriks dari file

 

Membuat variabel matriks dalam MATLAB tidak harus selalu dilakukan dan Command Window: Tetapi, bisa juga dilakukan dengan mengimpor file teks atau biner. Sebagai contoh, coba buat sebuah file teks memakai notepad atau editor teks lainnya, dengan isi file berupa data berikut:

 

10.0 4.0 2.0 12.0

13.0 5.0 1.0 17.0

19.0 1.0 4.0 14.0

20.0 2.0 3.0 15.0

25.0 6.0 9.0 18.0

 

lalu beri nama file dataku.txt dan simpan di folder Current Directory atau direktori kerja (lihat Gambar 4.1). Untuk mengimpor file data ini ke MATLAB (tepatnya ke MATLAB Workspace), berikan perintah:

load dataku.txt

MATLAB akan membuat variabel baru dengan nama yang sama dengan nama file (tanpa ekstensi), yaitu dataku. Untuk memastikannya, berikan perintah

 

Dataku

 

dataku =

10 4 2 12 1351 17

19 1 4 14

20 2 3 15

25 69 18

 

Cara lain untuk membuat matriks dari file adalah dengan memakai M-files. Coba buat file teks dengan nama dataiku.m dan isi dengan berikut:

 

A = [

10.0 4.0 2.0 12.0

13.0 5.0 1.0 17.0

19.0 1.0 4.0 14.0

20.0 2.0 3.0 15.0

25.0 6.0 9.0 18.0];

 

Kemudian, pada MATLAB prompt panggil file dataiku.n tersebut dengan

datalku

 

maka MATLAB akan membuat variabel barua yang berupa matriks dengan isi di atas.

 

4.3.4 Menghapus/menambah baris/kolom

Sebuah baris/kolom sebuah matriks bisa dihapus dengan perintah singkat, yaitu mengeset baris atau kolom dengan "11". Mulai dengan

 

X-A

X =

12 11 89

4 2 7 10

7 2 13 7

3 2 5 1

 

Kemudian, untuk menghapus kolom 2 dari x, gunakan

X(:,2)=[]

X =

1 2 8 9

4 7 10

 

7 13 7

3 5 1

 

Namun cara ini tidak berlaku untuk menghapus sebuah elemen matriks Penambahan baris dan kolom suatu matriks dicontohkan dalam perintah berikut. Misalkan diberikan vektor baris:

 

A=[2 3 4 51:

ingin disisipkan di baris terbawah dari matriks:

A =[12 11 0 9; 4 27 10:7 2 13 7:3 2 5 1]:

 

maka perintahnya adalah

 

A [A ;a]

A=

12 11 8 9

4 2 7 10

7 2 13 7

3 2 5 1

2 3 4 5

 

dimana A dusi dengan a sebelumnya yang disisipi a pada baris paling bawah dari A


4.4 Operasi Matriks

 

Operasi penjumlahan, pengurangan, perkalian antar matriks dalam MATLAB dilakukan dengan sintaks yang hampir tidak ada bedanya dengan notas: matematika biasa. Operasi penjumlahan menggunakan operator pengurangan menggunakan "-", dan perkalian menggunakan ".". Selain operator-operator standar ini, ada beberapa operator khusus yang beroperasi elemen demi elemen antara dua matriks: ..perkalian elemen demi elemen

 

./pembagian elemen demi elemen A pembagian elemen demi elemén (elemen kiri sebagai pembagi)

 

perpangkatan elemen demi elemen.

 

Operasi elemen demi elemen juga berlaku pada penggunaan semua fungsi yang diberi input berupa matriks atau vektor. Contohnya: [0.2 0.6

 

0.7 0.91:

 

sin(a)

 

0.1987 0.5646 0.5442 0.7833

 

4.4.1 Operasi logika internal matriks

Dalam beberapa kasus, mungkin Anda ingin mengganti/menghapus beberapa elemen suatu matriks berdasarkan operasi logika tertentu. Misalkan, suatu matriks x mempunyai beberapa elemen yang nilainya Int (Infinite, yaitu bilangan yang tak terdefisinikan, terjadi karena pembagian dengan nol):

 

X-11 2 3 Inf 47 Inf 9);

[9:57 AM, 9/16/2022] 2010951035_Mawaddatur R: Disini bilangan Int langsung diketikkan apa adanya karena sudah dikenali MATLAB sebagai bilangan Infinite. Kalau diinginkan setiap elemen yang bernilai Inf diganti dengan 9999, maka gunakan perintah:

 

X(-isfinite (X))=9999

 

1 2 3 9999 4.7 9999 9

 

Fungsi istinite (X) akan menemukan indeks elemen matriks yang bernilai finite. Sebaliknya, dengan manambahkan tanda tilde pada fungsi di atas menjadi istinite (x), akan dihasilkan indeks elemen matriks yang bernilai Infinite.

 

4.4.2 Fungsi find

 

Fungsi fand berguna untuk menentukan indeks elemen matriks yang memenuhi kondisi logika yang diberikan. Misalkan

 

X-11 23 Inf 27 Inf 9 3 Hall 2 Inf

 

43 Inf -11:

 

dan dinginkan untuk menentukan indeks baris dari kolom 3 matriks x yang bernilai Inf, maka gunakan

 

k-find(-iafinite (X(1,3)))

 

2

 

Sekarang jika ingin menentukan indeks elemen yang bernilai tnr di semua baris dan kolom, gunakan

Disini bilangan Int langsung diketikkan apa adanya karena sudah dikenali MATLAB sebagai bilangan Infinite. Kalau diinginkan setiap elemen yang bernilai Inf diganti dengan 9999, maka gunakan perintah:

 

X(-isfinite (X))=9999

 

1 2 3 9999 4.7 9999 9

 

Fungsi istinite (X) akan menemukan indeks elemen matriks yang bernilai finite. Sebaliknya, dengan manambahkan tanda tilde pada fungsi di atas menjadi istinite (x), akan dihasilkan indeks elemen matriks yang bernilai Infinite.

 

4.4.2 Fungsi find

 

Fungsi fand berguna untuk menentukan indeks elemen matriks yang memenuhi kondisi logika yang diberikan. Misalkan

 

X-11 23 Inf 27 Inf 9 3 Hall 2 Inf

 

43 Inf -11:

 

dan dinginkan untuk menentukan indeks baris dari kolom 3 matriks x yang bernilai Inf, maka gunakan

 

k-find(-iafinite (X(1,3)))

 

2

 

Sekarang jika ingin menentukan indeks elemen yang bernilai tnr di semua baris dan kolom, gunakan

k-find(-isfinite (X))

 

x

7

10

12

13

15

 

Perhatikan bahwa penomoran indeks dilakukan per kolom mulai dari kolom paling kiri, sehingga untuk indeks yang diberikan baris pertama x, yaitu 7, adalah indeks elemen baris 3 kolom 2 matriks x.










Tidak ada komentar:

Posting Komentar

Mikro

Kontrol Irigasi Sawah DAFTAR ISI 1. Judul 2. Abstrak 3. Pendahuluan 4. Metodologi Penelitian 5. Hasil dan Pembahasan 6. Kesimpulan 7. Saran ...