DASAR-DASAR MATLAB
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
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