Matlab Hari 1

106
MATLAB Terapan 1 1. Apa itu MATLAB MATLAB merupakan bahasa pemrograman dengan performansi tinggi untuk komputasi numerik dan visualisasi. Kombinasi kemampuan, fleksibilitas, reability dan powerfull grafik membuat MATLAB menjadi program yang sangat cocok digunakan untuk keteknikan. MATLAB merupakan suatu bahasa pemrograman sederhana dengan fasilitas yang jauh lebih hebat dan lebih mudah digunakan dari bahasa pemrograman lain, seperti BASIC, Pascal, atau PC, melalui kemampuan grafisnya, MATLAB menyediakan banyak pilihan untuk visualisasi data. MATLAB adalah suatu lingkungan untuk membuat aplikasi dimana anda dapat membuat antarmuka grafis dan menyediakan pendekatan visual untuk menyelesaikan program- program tertentu. Lebih dari itu MATLAB menyediakan sekelompok alat penyelesaian masalah untuk problem-problem khusus, yang dinamakan Toolbox. Sebagai contoh menyediakan Control System Toolbox, Signal Processing Toolbox, Symbolix Math Toolbox dan bahkan anda dapat membuat toolbox sendiri.. MATLAB mengintegrasikan komputasi, visualisasi dan pemrograman dalam ruang yang mudah digunakan dimana masalah dan solusi diekpresikan dalam notasi matematika yang umum. MATLAB adalah sebuah sistem interaktif dimana elemen dasar data berupa array yang tidak perlu definisi dimensi. Ini memberikan kebebasan untuk menyelesaikan banyak masalah komputasi teknik, terutama yang berkaitan rumus vektor dan matriks. Ansar Suyuti - ikhlas kitta 1

Transcript of Matlab Hari 1

Page 1: Matlab Hari 1

MATLAB Terapan 1

1. Apa itu MATLAB

MATLAB merupakan bahasa pemrograman dengan performansi tinggi

untuk komputasi numerik dan visualisasi. Kombinasi kemampuan,

fleksibilitas, reability dan powerfull grafik membuat MATLAB menjadi

program yang sangat cocok digunakan untuk keteknikan. MATLAB

merupakan suatu bahasa pemrograman sederhana dengan fasilitas yang

jauh lebih hebat dan lebih mudah digunakan dari bahasa pemrograman

lain, seperti BASIC, Pascal, atau PC, melalui kemampuan grafisnya,

MATLAB menyediakan banyak pilihan untuk visualisasi data. MATLAB

adalah suatu lingkungan untuk membuat aplikasi dimana anda dapat

membuat antarmuka grafis dan menyediakan pendekatan visual untuk

menyelesaikan program-program tertentu. Lebih dari itu MATLAB

menyediakan sekelompok alat penyelesaian masalah untuk problem-

problem khusus, yang dinamakan Toolbox. Sebagai contoh menyediakan

Control System Toolbox, Signal Processing Toolbox, Symbolix Math

Toolbox dan bahkan anda dapat membuat toolbox sendiri..

MATLAB mengintegrasikan komputasi, visualisasi dan pemrograman

dalam ruang yang mudah digunakan dimana masalah dan solusi

diekpresikan dalam notasi matematika yang umum. MATLAB adalah

sebuah sistem interaktif dimana elemen dasar data berupa array yang

tidak perlu definisi dimensi. Ini memberikan kebebasan untuk

menyelesaikan banyak masalah komputasi teknik, terutama yang

berkaitan rumus vektor dan matriks.

2. Bagaimana memulai MATLAB

Apabila telah diinstal MATLAB pada PC anda, maka untuk menjalankan

MATLAB, anda cukup klik double pada icon MATLAB. Beberapa saat

Ansar Suyuti - ikhlas kitta 1

Page 2: Matlab Hari 1

kemudian muncul command window dari MATLAB. Commond Window

merupakan jendela utama dimana penggunaannya untuk berkomunikasi

dengan interpreter MATLAB. Tampilan prompt interpreter MATLAB ( » )

menunjukkan bahwa MATLAB siap untuk menerima perintah dari

pengguna. Adapun tampilan command window seperti dibawah ini.

Cara termudah untuk menggambarkan MATLAB adalah menganggapnya

sebagai sebuah kalkulator. Seperti umumnya kalkulator biasa, MATLAB

sanggup mengerjakan perhitungan sederhana seperti penambahan,

pengurangan, perkalian dan pembagian. Seperti kalkulator sains, MATLAB

dapat menangani bilangan kompleks, akar dan pangkat, logaritma,

operasi trigonometri seperti sinus, cosinus dan tangen. Seperti kalkulator

yang dapat diprogram, MATLAB dapat digunakan untuk menyimpan dan

memanggil data. Anda dapat membuat, menjalankan dan menyimpan

sederetan perintah untuk mengotomatisasi perhitungan suatu persamaan

penting; anda dapat melakukan perbandingan logika dan mengatur

urutan pelaksanaan perintah. Seperti kalkulator terbaik saat ini, MATLAB

memungkinkan anda untuk menggambarkan data dengan berbagai cara,

mengerjakan aljabar matriks, memanipuasi polinomial, mengintegralkan

fungsi, memanipulasi persamaan secara simbol, dll. Sesungguhnya

MATLAB menyediakan lebih banyak lagi fasilitas dan jauh lebih kompleks

Ansar Suyuti – ikhlas kitta 2

Page 3: Matlab Hari 1

MATLAB Terapan 1

dari kalkulator manapun. MATLAB adalah alat untuk melakukan

perhitungan matematika.

Sebagai contoh, untuk menginput sebuah matrik 3x2, dapat diketik :

» A=[1 2;3 4;5 6]

setelah ditekan Enter, maka respon MATLAB berupa hasil

A =

1 2 3 4 5 6

3. Ruang Kerja MATLAB

Ruang kerja MATLAB, merupakan kumpulan tool dan fasilitas dimana kita

bekerja dalam pemrograman MATLAB. Termasuk fasilitas untuk mengatur

variabel dalam ruang kerja dan untuk import dan eksport data, termasuk

tool untuk pengembangan. Perintah dan variabel yang telah dibuat,

dikatakan tinggal dalam ruang kerja MATLAB dan dapat dipanggil

kapanpun anda menghendakinya.

Jika anda tidak dapat mengingat nama variabel, maka anda tinggal mengetik who:

» whoYour variables are:

A

Untuk memanggil perintah sebelumnya, MATLAB menggunakan tombol

panah [ ] pada keyboard anda, Sebagai alternatif mouse dapat

digunakan bersama dengan cip-bord untuk menghapus (cut), mengcopy

(copy), mengeluarkan kembali (paste), dan mengedit teks yang ada di

prompt command.

Ansar Suyuti - ikhlas kitta 3

Page 4: Matlab Hari 1

4. Variabel

Pada program MATLAB, expresi tanpa nama variabel tetap diproses dan

hasilnya dengan nama variabel ans (singkatan answer). Tetapi untuk

pemrograman dimana beberapa konstanta dioperasikan, maka nama

variabel mutlat ada. Variabel adalah nama atau simbol yang digunakan

untuk mewakili suatu nilai.

Contoh 4-1:

» A=10;» B=20;» C=A*B

C =

200

Pada program contoh di atas, A B, dan C disebut dengan variabel.

Variabel A mewakili nilai 10 dan B mewakili nilai 20, sedangkan variabel C

mewakili hasil perhitungan, yang mana nilai yang diwakili dapat berubah

tergantung dari nilai variabel A dan B.

Aturan penulisan nama variabel MATLAB adalah :

1. Nama variabel dibedakan antara huruf kecil dan huruf kapital, contoh ;

Jumlah, jumlah, juMlah, jumlaH dan JUMLAH.

2. Panjang maksimal nama variabel adalah 31 karakter, dan karakter

setelah karakter ke-31 diabaikan.

3. Nama variabel harus diawali dengan huruf, diikuti dengan sembarang

bilangan, huruf, atau garis bawah. Karakter-karakter tanda baca tidak

diperbolehkan karena banyak diantaranya mempunyai arti tersendiri

dalam MATLAB, contoh; biaya_rata_rata, x25065.

Ansar Suyuti – ikhlas kitta 4

Page 5: Matlab Hari 1

MATLAB Terapan 1

4. Tidak menggunakan variabel khusus.

Beberapa variabel khusus pada MATLAB adalah :

anseps i,j

NaN atu nanpirealmaxrealmin

hasil/jawaban untuk untuk statemen yang tidak nama variabelbilangan terkecil sedemikian rupa sehingga bila ditambahkan satu, menghasilkan bilangan lebih besar dari satu

atau simbol yang mewakili bilangan imajiner pada bilangan kompleksbukan suatu bilangan/ hasil bukan numerik.nilai dari bilangan bilangan real positip terbesarbilangan real positif terkecil

Variabel dalam ruang kerja MATLAB dapat dihapus dengan menggunakan

perintah clear.

» clear A

untuk menghapus variabel A

» clear B*

untuk menghapus semua variabel yang diawali dengan huruf B

» clear

untuk menghapus semua variabel diruang kerja

Syarat pemberian nama variabel numerik dan variabel string dalam

MATLAB tidak dibedakan. Tetapi penulisan konstanta variabel string harus

diapit dengan tanda apostrop tunggal ( ' ).

Contoh 4-2:

Ansar Suyuti - ikhlas kitta 5

Page 6: Matlab Hari 1

» c='Selamat'

c =

Selamat

» cd=[c,' datang']

cd =

Selamat datang

5. Komentar

Jika program dibuat cukup panjang dan rumit, akan lebih baik bila di

dalam program diberi penjelasan seperlunya sehingga mereka yang

membaca program akan dapat mengerti maksud dari program dengan

lebih jelas. Komentar pada MATLAB berupa tanda persen (%), sehingga

semua teks sesudah tanda persen (%) dianggap sebagai statemen

komentar

Contoh 5-1:

» A=[1 2;3 4]; % matriks A(2x2)» B=[5 6 7;8 9 0]; %matriks B(2x3)» Mat_C=A*B

Mat_C =

21 24 7 47 54 21

Kalimat matriks A(2x2) dan matriks B(2x3) setelah tanda %

diabaikan/tidak diproses oelh MATLAB.

Ansar Suyuti – ikhlas kitta 6

Page 7: Matlab Hari 1

MATLAB Terapan 1

Beberapa perintah dapat diletakkan pada baris yang sama jika dipisahkan

dengan koma ( , ) atau titik koma ( ; ). Tanda koma memberitahu MATLAB

untuk menampilkan hasil dan titik koma untuk tidak menampilkan hasil.

Contoh 5-2 :

» jml=10; harga=1000, bayar =jml*harga

harga =

1000

bayar =

10000

Deretan tiga titik berfungsi sebagai tanda sambung/lanjutan statemen

pada baris berikutnya. Biasanya digunakan apabila sebuah statemen

melebihi dari satu baris.

tetapi nama variabel tidak bisa dipisah menjadi dua baris

Terlihat bahwa perintah yang diinput tidak dapat diproses oleh MATLAB

6. Bilangan Kompleks

Ansar Suyuti - ikhlas kitta 7

» bayar=jml*har...ga??? bayar=jml*harga |Missing operator, comma, or semi-colon.

» harga=bayar/...jml

harga =

1000

Page 8: Matlab Hari 1

Salah satu kelebihan MATLAB adalah bahwa ia tidak memerlukan

penanganan khusus untuk bilangan kompleks. Bagian imajiner ( )

dalam MATLAB, diwakili oleh variabel i atau j.

Contoh 6-1:

Carilah nilai V =Zc Cosh g + Sinh g/Zc,

Dimana : Zc= 200 + j300 dan g=0,02 + j1,5.

» Zc=200+300j;» g=0.02+1.5j;» V=Zc*cosh(g)+sinh(g)/Zc

V =

8.1672 +25.2172i

Perubahan bentuk polar bilangan kompleks ke bentuk rectanguler-nya

juga dapat dilakukan ;

dengan bentuk polar diberikan oleh besarnya M dan sudut , sedangkan

bentuk rectanguler diberikan dengan a+bi. Hubungan antara bentuk-

bentuk ini adalah:

M=

a= M cos

b=M sin

Dalam MATAB, konversi antara bentuk polar dan rectanguler

menggunakan fungsi-fungsi real, imag dan angle.

Ansar Suyuti – ikhlas kitta 8

Page 9: Matlab Hari 1

MATLAB Terapan 1

Untuk merubah bentuk rectanguler ( V ) menjadi bentuk polar, maka

dapat dilakukan :

Contoh 6-2:

» Real_V=abs(V)

Real_V =

26.5068

» Sudut_V=angle(V)*180/pi

Sudut_V =

72.0542

Sedangkan untuk merubah polar ke rectanguler, maka dapat dilakukan :

» P_V=Real_V*exp(j*Sudut_V*pi/180)

P_V =

8.1672 +25.2172i

» real_PV=real(P_V)

real_PV =

8.1672

» imaj_PV=imag(P_V)

imaj_PV =

25.2172

Fungsi abs menghitung besarnya bilangan kompleks atau harga mutlak

dari bilangan real, tergantung argumen apa yang diberikan. Fungsi angle

menghitung sudut bilangan kompleks dalam radian.

7. Menyimpan dan memanggil data

Ansar Suyuti - ikhlas kitta 9

Page 10: Matlab Hari 1

MATLAB dapat menyimpan dan memanggil data dari file. Pilihan Save

Workspace as... dalam menu File akan membuka kotak dialog untuk

menyimpan semua variabel yang ada. Mirip dengan itu, pilihan Load

workspace as.. dari menu File akan membuka kotak dialog untuk

memanggil variabel yang telah disimpan sebelumnya. Memanggil variabel

yang bernama sama dengan variabel yang aktif akan membuat isi

variabel aktif ditimpa oleh isi variabel yang dipanggil dari file.

Jika menu File belum cukup bagi anda, MATLAB menyediakan dua perintah Save dan load yang jauh

lebih fleksibel. Perintah save membuat anda dapat menyimpan satu atau lebih variabel dalam file

format yang sesuai dengan pilihan anda.

» save

Saving to: matlab.mat

Menyimpan semua variabel MATLAB dalam format biner di file matlab.mat

» save data

menyimpan semua variabel MATLAB dalam format biner di file data.mat

» clear» load matlab

memanggil data/variabel-variabel yang telah di save dengan nama

matlab setelah dihapus dengan perintah clear dari ruang kerja MATLAB.

8. M- File

Script M-FILE

Ansar Suyuti – ikhlas kitta 10

Page 11: Matlab Hari 1

MATLAB Terapan 1

Jika masalah yang dihadapi sederhana, mengetikkan beberapa perintah

langsung di jendela command memang cukup tepat dan efektif. Akan

tetapi jika jumlah perintahnya sangat banyak, atau jika anda ingin

mengubah nilai beberapa variabel dan kemudian mengulang kembali

perhitungannya, maka mengetikkan perintah-perintah langsung akan

sangat menyusahkan. Untuk menyelesaikan masalah ini, MATLAB

memungkinkan anda untuk mengetikkan sederetan perintah tersebut

dalam suatu teks file dan kemudian memerintahkan MATLAB untuk

membuka file tersebut dan menjalankannya seolah-olah diketikkan

langsung di jendela Command. File seperti ini dinamakan file Script atau

M-File. Ketika file scrip dipanggil, MATLAB langsung mengeksekusi

perintah-perintah yang ditemui dalam file. Statemen file scrip dioperasi

secara global terhadap data di workspace. Scrip berguna untuk

menyelesaikan analisis atau desain dengan urutan-urutan statemen yang

cukup panjang.

MATLAB menyediakan beberapa fungsi pada M-File, perintah-perintah itu

adalah

Disp(ans)Echo

inputkeyboard

pausepause (n)waitforbuttonpress

menampilkan hasil tanpa menampilkan nama variabelmengatur jendela command dalam penampilan kembali perintah yang sedang dikerjakan meminta pemakai untuk memberikan inputmemberikan kontrol pada keyboard sementara waktu. Ketikkan retour untuk kembaliberhenti sampai pemakai menekan semarang tombolberhenti selama n detikberhenti sampai ada penekanan tombol mouse atau tombol keyboard

Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil dari perintah

itu serta nama variabelnya akan ditampilkan kembali dalam jendela

command.

Function M-File

Ansar Suyuti - ikhlas kitta 11

Page 12: Matlab Hari 1

File fungsi dari MATLAB, tidak sama dengan file script dalam hal bahwa

variabel yang dioperasikan didalamnya bersifat lokal terhadap fungsi itu

saja. File script akan bersifat global terhadap variabel yang ada di

workspace. File fungsi digunakan untuk suatu keperluan yang berulang

satu atau beberapa kali dalam suatu program. File fungsi pada sama

fungsinya dengan functions pada bahasa C, subroutines pada FORTRAN

dan BASIC dan procedures pada PASCAL. M-file berisi kata function pada

awal program adalah file fungsi. File fungsi diawali dengan kata function

dengan perintah

function [output variabel]=nama fungsi (input variabel)

output variabel berada dalam kurung segi empat atau [ ] dan input

variabel dalam kurung parentheses atau ( ). Nama file fungsi harus di

save sama dengan nama fungsi. Misalnya function[S]=tegangan(Z,I),

nama file fungsi tersebut harus tegangan.m.

Contoh 8-1 :

function [S]=tegangan(V,I)S=V.*conj(I);

File tersebut bernama tegangan dengan variabel output V dan variabel

input V dan I

Untuk menjalankan program tersebut, pada command window dibuat

suatu statemen sebagai berikut :

Jika nilai V dan I hanya mempunyai masing-masing satu elemen , maka

» S=tegangan(10+12j,5+10j)

S = 1.7000e+002 -4.0000e+001i

Ansar Suyuti – ikhlas kitta 12

Page 13: Matlab Hari 1

MATLAB Terapan 1

Jika nilai V dan I hanya mempunyai merupakan matrik, maka

» s=tegangan([1 2;3 4],[10 10;10 10])s = 10 20

30 40

Dari hasil diperoleh terlihat bahwa, input untuk varibel V dan I dapat

berupa skalar maupun matrik.

9. Operator Aritmetik

Operator aritmetik adalah simbol-simbol yang digunakan untuk maksud

operasi numerik. MATLAB menyediakan operator aritmatik dasar berikut :

Operasi Simbol ContohPenambahan a+b + 15+10Pengurangan, a-b - 15-10Perkalian, a.b * 15*10Pembagian, a: b / atau \ 15/10=10\15Pemangkatan, ab ^ 15^10

Urutan operasi ini dikerjakan dalam suatu ekspresi yang mengikuti aturan

prioritas yang biasa. Aturan ini diringkas sebagai berikut : Ekspresi

dikerjakan dari kiri ke kanan, dengan pemangkatan mempunyai prioritas

tertinggi, diikuti dengan perkalian atau pembagian yang mempunyai

prioritas yang sama, diikuti dengan penambahan dan pengurangan yang

juga mempunyai prioritas yang sama. Tanda kurung dapat digunakan

untuk mengubah urutan pengerjaan yang biasa, dimana bagian yang

dikerjakan lebih dulu adalah bagian yang ada dibagian kurung paling

dalam kemudian keluar.

Contoh : Carilah nilai

A=P , untuk P=1000, I=12% dan N=10

Ansar Suyuti - ikhlas kitta 13

Page 14: Matlab Hari 1

» P=1000; i=0.12; N=10;» A=P*((i*(1+i)^N)/((1+i)^N-1))

A =

176.9842

% Contoh penggunaan pembagian kiri dan kanan» C=P/N

C =

100

» D=N\P

D =

100

10. Operator relasi dan logika

Matlab menyediakan operasi relasi dan logika. Kegunaan dari operator

dan fungsi tersebut ialah untuk menyediakan jawaban atas pertanyaan

benar salah. Salah satu kegunaan penting dari kemampuan ini ialah untuk

mengontrol urutan eksekusi sederetan perintah MATLAB berdasarkan

pada hasil benar/salah. MATLAB menganggap semua angka tidak nol

sebagai benar, dan nol sebagai salah. Hasil dari ekspresi relasi dan logika

adalah satu untuk Benar dan nol untuk Salah dengan tipe array logika,

yaitu hasilnya membuat bilangan 1 dan 0 yang tidak saja dapat

digunakan untuk statemen matematika, tetapi juga dapat digunakan

untuk pengalamatan.

Operator Relasi

Operator relasi MATLAB terdiri dari :

Operator relasi Deskripsi<

<=Kurang dariKurang dari atau sama dengan

Ansar Suyuti – ikhlas kitta 14

Page 15: Matlab Hari 1

MATLAB Terapan 1

>>==

~=

Lebih dariLebih dari atau sama denganSama denganTidak sama dengan

Operator relasi MATLAB dapat dipergunakan untuk membandingkan dua

array berukuran sama atau untuk membandingkan array dengan skalar.

Skalar dibandingkan dengan semua elemen array dan hasilnya berukuran

sama.

Contoh penggunaan :

» A=1:9,B=9-AA = 1 2 3 4 5 6 7 8 9B = 8 7 6 5 4 3 2 1 0» tf=A>4tf = 0 0 0 0 1 1 1 1 1» tf=(A==B)tf = 0 0 0 0 0 0 0 0 0

Operator Logika

Operator logika menyediakan cara untuk menggabung ekspresi logika.

Operator logika terdiri dari :

Operator Logika Deskripsi&|~

ANDORNOT

Contoh penggunaan :

Ansar Suyuti - ikhlas kitta 15

Page 16: Matlab Hari 1

» A=1:9; b=9-A;» tf=A>4tf = 0 0 0 0 1 1 1 1 1» tf=~(A>4)tf = 1 1 1 1 0 0 0 0 0» tf=(A>2)&(A<6)tf = 0 0 1 1 1 0 0 0 0

» x=[1,1,0,0];» y=[1,1,1,1];» z1=~y>x

z1 = 0 0 0 0» z2=x&yz2 = 1 1 0 0» z3=x|yz3 = 1 1 1 1

» z4=xor(x,y)z4 = 0 0 1 1

» A=[1,1,0,0]';» B=[0,0,1,1]';» [A,B,~A,A|B,A&B,xor(A,B)]

ans =

1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1

11. Fungsi-fungsi Dasar Matematis

Ansar Suyuti – ikhlas kitta 16

Page 17: Matlab Hari 1

MATLAB Terapan 1

Sebagian dari fungsi-fungsi dasar matematis yang dimiliki MATLAB dapat

dilihat berikut :

Fungsi trigonometri

abs (x)acos(x)acosh(x)angle(x)asin(x)asinh(x)atan(x)atan2(x)atanh(x)ceil(x)conj(x)cos(x)cosh(x)exp(x)fix(x)floor(x)gdc(x,y)imag(x)lcm(x)log(x)log10(x)real(x)rem(x,y)round(x)sign(x)sin(x)sinh(x)sqrt(x)tan(x)

harga mutlak atau besarnya bilangan kompleksinvers cosinusinvers cosinus hiperboliksudut pada suatu bilangan kompleksinvers sinusinvers sinus hiperbolikinvers tangeninvers tangen empat kuadraninvers tangen hiperbolikpembulatan ke arah plus tak berhinggakonjuget bilangan komplekscosinuscosinus hiperbolikeksponensialpembulatan ke arah nolpembulatan ke arah minus tak berhinggafaktor persekutuan terbesar bilangan bulat x dan ybilangan imajinerkelipatan persekutuan terkecil bilangan bulat x dan ylogaritma naturallogaritma biasabagian real suatu bilangan komplekssisa pembagian x dibagi ypembulatan ke arah bilangan bulat terdekatmenghasilkan tanda dari argumensinussinus hiperbolikakar kuadrattangen

contoh :

carilah nilai V(t)= A sin wt +30o, dimana A=10 dan t=1,2,3,4,5

Ansar Suyuti - ikhlas kitta 17

Page 18: Matlab Hari 1

» t=1:1:5;» A=10;f=100;» Vt=A*sin(2*pi*f*t+30*180/pi)

Vt =

-4.0977 -4.0977 -4.0977 -4.0977 -4.0977

Fungsi dasar MATLAB

exploglog10sqrtabsangleconjimagrealfixfloorceilroundmodremsign

exponensiallogaritma naturallogaritma biasa (basis 10)akar kuadratharga mutlaksudut fasakompleks konjugatebagian imajiner bilangan kompleksbagian real bilangan kompleksmembulatkan ke arah nolmembulatkan ke arah minus tak terhinggamembulatkan ke arah plus tak terhinggamembulatkan ke arah bilangan bulat terdekatmodulus (sisa pembagian)pembagian bilangan bulattanda bilangan

Contoh :

» x=exp(-0.2696*.2)*sin(2*pi*0.2)/(0.01*sqrt(3)*log(18))

x = 18.0001

12. Format Input

Ansar Suyuti – ikhlas kitta 18

Page 19: Matlab Hari 1

MATLAB Terapan 1

Pemberian nilai pada variabel dalam MATLAB dapat dilakukan dengan

mengetikkan nama variabel kemudian tanda sama dengan ( = ) dan nilai

variabel yang diinginkan.

Contoh 12-1;

Untuk variabel skalar

» A=10

A = 10

» B=5;» C=A*BC = 50

dari contoh terlihat bahwa saat kita mengetik nilai A = 10 kemudian

ditekan enter, maka MATLAB akan merespon dengan menampilkan hasil,

sedangkan pada saat kita ketik B = 10; lalu dienter, MATLAB tidak

menampilkan hasilnya karena kita menambahkan tanda titik koma ( ; ).

Contoh 12-2:

Untuk variabel bentuk array/matriks

» A=[1 2 3;4 5 6]

A =

1 2 3 4 5 6

» B=[7,6,5;3,2,1];

» C=A+B

C =

8 8 8 7 7 7

Ansar Suyuti - ikhlas kitta 19

Page 20: Matlab Hari 1

untuk program yang mempunyai data yang banyak, maka pemberian nilai

variabel dapat dilakukan secara terpisah.Data dapat dibuatkan M-file

tersendiri, selanjutnya kapan data tersebut dibutuhkan maka tinggal

mengetikkan nama file M-file yang telah dibuat.

Contoh 12-3:

Data Y dan I disimpan pada M-file dengan nama data1.m

Y=[0-8.5i 0+2.50i 0+5.0i 0+0i 0+2.5i 0-8.75i 0+5.0i 0+0i 0+5.0i 0+5.00i 0-22.5i 0+12.5i 0+0.0i 0+0.00i 0+12.5i 0-12.5i];I=[0-1.1i;0-1.25i;0;0];

Untuk mengguanakan data tersebut, kita tinggal menulis nama M-file

( data1) pada program

data1 % nama file data berisi Y dan I% I=Y.V ===>V=inv(Y)*IZ=inv(Y) % membuat invers YV=Z*I % perkalian

Hasil program

Z =

0 + 0.5000i 0 + 0.4000i 0 + 0.4500i 0 + 0.4500i0 + 0.4000i 0 + 0.4800i 0 + 0.4400i 0 + 0.4400i0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.5450i0 + 0.4500i 0 + 0.4400i 0 + 0.5450i 0 + 0.6250i

V =

1.0500 1.0400 1.0450 1.0450

Ansar Suyuti – ikhlas kitta 20

Page 21: Matlab Hari 1

MATLAB Terapan 1

Dalam program contoh di atas, kita membuat dua buah M-file, satu M-file

khusus berisi data sedangkan M-file lainnya berisi program. File yang

berisi data yang kita beri nama data1.m dapat digunakan dengan hanya

mengetikkan data1 pada program, walaupun file tersebut tidak aktif

diruang kerja MATLAB.

Tetapi kadang-kadang pada kondisi tertentu kita menginginkan bahwa

suatu variabel, dapat mempunyai nilai yang berubah sesuai dengan

keinginan si pengguna yang dapat di input dari keyboard. Pada M-file

input nilai variabel dapat dilakukan dari keyboard dengan menggunakan

perintah

x = input (' komentar')

dimana x adalah nama variabel, komentar akan ditampilkan dilayar saat

program dijalankan.

Contoh 12-4 :

R=input (' input nilai R (ohm) =');I=input (' input nilai I (Amp) =');V=I*R

Jika program tersebut di run, maka hasilnya :

» input nilai R (ohm) =10 input nilai I (Amp) =2

V =

20

dengan demikian nilai variabel R dan I dapat berubah sesuai besar nilai

yang diinput.

Ansar Suyuti - ikhlas kitta 21

Page 22: Matlab Hari 1

Sedangkan untuk variabel string, maka perintahnya

x=input ( 'komentar' , 'string' )

string harus berisi hurup 's' atau ' S ',yang menunujukkan string,

sedangkan komentar dapat berisi apa saja yang inginkan

contoh 12-5:

tanya=input (' anda ingin lanjut ? Y/N :','s');if(isempty(tanya))|(tanya=='Y')|(tanya=='y') tanya='Y'else tanya='N'end

Hasil program

anda ingin lanjut ? Y/N :

tanya =

Y

13. Format Output

Saat MATLAB menampilkan hasil proses numerik, MATLAB mengikuti

beberapa aturan. Dalam keadaan biasa, jika hasilnya berupa bilangan

bulat, maka akan ditampilkan sebagai bilangan bulat. Jika hasilnya suatu

bilangan real, MATLAB akan menampilkan sebagai bilangan dengan

empat digit desimal. Perintah format ini hanya mengendalikan format

numerik nilai yang ditampilkan dilayar, hanya berefek pada berapa jumlah

Ansar Suyuti – ikhlas kitta 22

Page 23: Matlab Hari 1

MATLAB Terapan 1

angka yang ditampilkan, bukan bagaimana MATLAB menghitung atau

menyimpannya.

MATLAB COMMAND

Average_Cost Keterangan

Format short 50.833 5 digitsFormat long 50.83333333333334 16 digitsFormat short e 5.0833e+01 5 digits plus exponentFormat long e 5.083333333333334e+01 16 digits plus exponentFormat short g 50.833 Better of format short or

format short eFormat long g 50.83333333333333 Better of format longt or

format long eFormat hex 40496aaaaaaaaaab HexadecimalFormat bank 50.83 2 decimal digitsFormat + + Positive, negative, or zeroFormat rat 305/6 Rational approximation

Untuk lebih fleksibelnya dalam format output, MATLAB menyediakan

statemen fprintf untuk menampilkan hasil/output numerik dari program.

Beberapa farmat dari fprintf dapat dilihat pada tabel.

Kode Format Kontrol Karakter%e scientific format, lower case e%E sientific format, upper case E%f format desimal%s string%i integer%u mengikuti tipe%x hexadecimal, lower case%X hexadecimal, upper case

\n baris baru\r permulaan dari baris\b back space\t tabulasi\g halaman baru" apostrop\\ back slash\a bell

Contoh 13-1:

» fprintf('Luas= %7.3f meter per segi \n',pi*10^2)

Luas= 314.159 meter per segi

Ansar Suyuti - ikhlas kitta 23

Page 24: Matlab Hari 1

Format %7.3f, menunjukkan format bilangan desimal tujuh angka dengan

tiga angka dibelakang koma. Sedangkan /n untuk baris baru.

Contoh 13-2:

» V=[ 10;20;30;40;50];» R=[ 5;7;9;11;13];» y=[V R]

y = 10 5 20 7 30 9 40 11 50 13

» fprintf('%4i \t %8.2f\n',y') 10 5.00 20 7.00 30 9.00 40 11.0050 13.00

Program contoh di atas memperlihatkan dua cara menampilkan output,

yaitu dengan variabel yang akan ditampilkan diberi kurung empat misal

[V R], cara ini akan menampilkan nilai variabel sesuai dengan tipenya,

dan yang kedua adalah dengan statemen fprintf (%4i \t %8.2 \n), %4i

akan menampilkan pada kolom pertama sesuai dengan tipe maksimum

empat angka, \t penulisan selanjutnya dengan jarak sesuai tabulasi, %8.2

menampilkan dengan format desimal delapan angka termasuk titik,

dengan dua angka dibelakang koma.

MATLAB juga menyiapkan format output berupa statemen disp, yang

berfungsi untuk menampilkan numerik dan string dari programnya.

Contoh 13-3:

Ansar Suyuti – ikhlas kitta 24

Page 25: Matlab Hari 1

MATLAB Terapan 1

data1 % nama file data berisi Y dan I% I=Y.V ===>V=inv(Y)*IZ=inv(Y); % membuat invers YV=Z*I ; % perkalian disp ('Hasil program V=inv(Y)*I adalah')disp(V)

Hasil program V=inv(Y)*I adalah

1.0500 1.0400 1.0450 1.0450

Contoh di atas, memperlihatkan bahwa statemen disp dapat digunakan

untuk string atau numerik dan hanya menampilkan nilai variabel.

Contoh 13-4:

program M-file untuk perkalian bilangan kompleks

disp(' ');disp(' PROGRAM PERKALIAN BILANGAN KOMPLEKS'); disp(' ');disp(' Jenis: 1-polar, 2-rectangular'); disp(' ');jumlah=input('Berapa banyak Bilangan Kompleks yang akan dikalikan ?'); disp(' ');for i=1:jumlah; F=input(['Jenis ',num2str(i),' ketik 1 jika polar 2 jika rectanguler = ']); if (F~=1 & F~=2); disp('Anda Salah Input'); end if F==1 M=input(['Nilai ',num2str(i),' = ']); A=input(['Sudut ',num2str(i),' = '])*180/pi; N(i)=M*exp(j*A); disp(' '); else R=input(['Real ',num2str(i),' = ']); I=input(['Imag ',num2str(i),' = ']); N(i)=R+j*I; disp(' '); endendP=N(1); for k=2:jumlah; P=P*N(k); enddisp(' '); disp(['HASIL PERKALIAN = ' num2str(real(P)) ' +j '... num2str(imag(P)) ' = ' num2str(abs(P)) '|_'... num2str(angle(P)*pi/180) ' derajat']);

Ansar Suyuti - ikhlas kitta 25

Page 26: Matlab Hari 1

Hasil program

PROGRAM PERKALIAN BILANGAN KOMPLEKS Jenis: 1-polar, 2-rectangular Berapa banyak Bilangan Kompleks yang akan dikalikan ?2 Jenis 1 ketik 1 jika polar 2 jika rectanguler = 1Nilai 1 = 10Sudut 1 = 90 Jenis 2 ketik 1 jika polar 2 jika rectanguler = 1Nilai 2 = 10Sudut 2 = 90 HASIL PERKALIAN = -100 +j 1.2246e-014 = 100|_180 derajat

14. KONTROL PROGRAM

Kontrol program sangat penting karena memungkinkan komputasi-

komputasi yang lalu mempengaruhi komputasi yang akan datang.

MATLAB menyediakan struktur pengambilan keputusan atau struktur

kontrol program, yaitu : loop for, loop while, if-else-end, dan swicth-case.

Loop forLoop for memungkinkan sekelompok perintah diulang sebanyak suatu

jumlah yang tetap. Bentuk umum dari loop for adalah

Ansar Suyuti – ikhlas kitta 26

Page 27: Matlab Hari 1

MATLAB Terapan 1

For nama variabel loop = awal:step:akhir Perintah-perintahend

Ekspresi awal adalah nilai awal, ekspresi step adalah

langkah/pertambahan dan ekspresi akhir adalah batas nilai akhir variabel

loop. Contoh for x=2:2:10, perintah akan diulang dan dimulai untuk x=2,

melangkah sebanyak 2 dan berakhir pada nilai x=10.

Contoh 14-1

for x=2:2:10 v(x)=cos(x*pi/180); end

loop for dapat ditulis dalam satu baris

for x=2:2:10, v(x)=cos(x*pi/180),end

loop for dapat dibuat didalam loop for yang lain ;

Contoh 14-2:

% Program perkalian Matriks A * BA=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];% Proses perkalianfor k=1:3 for l=1:3 C(k,l)=0; for m=1:3 C(k,l)=C(k,l)+A(k,m)*B(m,l); end endend

Hasil dari program tersebut adalah

Ansar Suyuti - ikhlas kitta 27

Page 28: Matlab Hari 1

C =

30 24 18 84 69 54 138 114 90

bandingkan dengan perintah asterik ( * ) untuk perkalian matriks , maka

hasil yang diperoleh sama

» A=[1 2 3;4 5 6;7 8 9];B=[9 8 7;6 5 4;3 2 1];C=A*BC = 30 24 18 84 69 54 138 114 90

Loop While

Loop while mengerjakan sekelompok perintah yang diulang sampai syarat

yang diberikan terpenuhi.

Bentuk umum loop while adalah ;

while ekspresi Perintah-perintahend

perintah-perintah yang terdapat di antara while dan end dieksekusi

berulang kali selama semua elemen dalam ekspresi adalah benar.

Contoh 14-3

Ansar Suyuti – ikhlas kitta 28

Page 29: Matlab Hari 1

MATLAB Terapan 1

» x=1;» while x<10disp(x)x=x+1; end

1 2 3 4 5 6 7 8 9

» x=9;» while x~=0disp(x)x=x-1;end

If - else -end

Bentuk paling sederhana if-else-end adalah

if ekspresi perintah …end

Untuk kasus dengan dua pilihan if-else-end adalah

if ekspresi perintah…jika memenuhi eksperesielse perintah… jika tidak memenuhi ekspresi (salah)end

Jika terdapat 3 atau lebih pilihan if-else-end :

Ansar Suyuti - ikhlas kitta 29

Page 30: Matlab Hari 1

elseif ekspresi1 Perintah.. jika ekspresi1 benarelseif ekspresi2 Perintah.. jika ekspresi2 benarelseif ekspresi3 Perintah.. jika ekspresi3 benarelseif…

else perintah.. dikerjakan jika tak ada ekspresi benarend

contoh 14-4

for k = 1:5; if k<2 a=cos (k*pi/180); elseif k<3 b=cos((k-1)*pi/180); elseif k<4 c=cos((k-2)*pi/180); elseif k<5 d=cos((k-3)*pi/180); else e=cos((k-4)*pi/180); end; end;

» a,b,c,d,e

a = 0.9998

b = 0.9998

c = 0.9998

d = 0.9998

e = 0.9998

Ansar Suyuti – ikhlas kitta 30

Page 31: Matlab Hari 1

MATLAB Terapan 1

Switch-Case

Bentuk umum dari Switch-Case adalah

switch ekspresi case test_ekspresi deret_perintah1 case {test_ekspresi2, test_ekspresi3, test_ekspresi4} deret_ekspresi2 otherwise deret ekspresi3 end

Contoh 14-5:

Buatlah program untuk mengkonversi satuan meter kesatuan inchi, feet,

millimeter dan centimeter, yang mana nilai satuan meter dan konversi

satuan yang diinginkan diinput dari keyboard.

x=input('masukkan nilai x dalam meter =' );satuan=input('konversi ke satuan "in",ft",mm" dan "cm" = ','s');switch satuan case {'inchi','in'} %konversi ke inchi inchi=x*2.54*100case{'feet','ft'} % konversi ke feet feet=x*2.54*12*100case{'milimeter','mm'} % konversi ke millimeter mm=x*10*100case{'centimeter','cm'} % konversi ke Centimeter cm=x*100otherwise disp(['anda salah input:' units]) y=nan end;

masukkan nilai x dalam meter =3konversi ke satuan "in",ft",mm" dan "cm" = cm

cm =

300

Contoh 14-6:

Ansar Suyuti - ikhlas kitta 31

Page 32: Matlab Hari 1

Mencari nilai x minimum, maksimum dan penjumlahan untuk x= e-t .sin t

untuk t = 0 sampai 100.

% program untuk mencari nilai minimum, % maksimum atau penjumlahan xt = [0:100];x=exp(-t).*sin(t*pi/180);pilih=input('Mencari x "maks,min atau jumlah" =','s');switch pilihcase {'maksimum','maks'} maks=max(x)case {'minimum','min'} minim=min(x)case {'jumlah','jum'} total=sum(x)otherwise disp('anda salah input')end

15. Grafik 2-Dimensi

Statemen plot

MATLAB menyediakan fasilitas dalam pembuatan suatu grafik dengan

sangat sempurna dan mudah untuk digunakan, ini merupakan salah

keistimewaan MATLAB, sehingga sangat cocok digunakan untuk

komputasi teknik.

Statemen yang digunakan dalam pembuatan grafik ini yaitu :

plot : Plot linierloglog : plot dengan skala loglogsemilogx : plot dengan skala semi logsemilogy : plot dengan skala semilog

Untuk judul, label, garis sumbu dan teks digunakan :

title : judul grafikxlabel : label sumbu xylabel : label sumbu ytext : teks keterangan

Ansar Suyuti – ikhlas kitta 32

Page 33: Matlab Hari 1

MATLAB Terapan 1

gtext : tempat teks diletakkangrid : grid lineaxis : batas sumbu y dan x

Statemen yang digunakan untuk membuat grafik linier, plot (x,y ) ini

untuk menggambar bidang vector x dan vector y. Jika x atau y adalah

sebuah matriks maka mereka akan saling menggambarkan sesuai dengan

baris dan kolomnya masing-masing. Tetapi bila x adalah sebuah besaran

skalar sedangkan y adalah besaran vector maka akan terjadi titik yang

tidak terhubung pada plot.

Berbagai macam jenis garis, symbol plot dan warna dapat dibuat dengan

perintah plot(x,y,s) dimana s adalah karakter string yang dibuat dari salah

satu atau lebih dari statemen dibawah ini

SPESIFIKASI WARNA JENIS GARISWARNA Istilah Jenis SimbolHitam k Solid -Biru b Dashed --Cyan c Dotted :Hijau g Dash-dot -.Magenta m Point .Merah r Circle oPutih w X-mark xKuning y Plus +

Star *

Kita bisa membuat tiga pilihan kurva pada grafik yang sama. Sebagai

contoh,

Plot(x1,y1,’r’,x2,y2.’+b’,x3,y3,’-‘)

Plot (x1, y1) dengan garis merah solid ,(x2,y2) dengan warna biru dan

tanda +, ( x3,y3) dengan garis putus-putus. Plot juga dapat ditambahkan

dengan keterangan nama pada grafik, label pada sumbu X dan Y dan grid.

Perintah grid membuat kotak-kotak gairs / kisi-kisi pada grafik. Cara

penulisannya hanya tinggal ditulis sesudah perintah plot. Sedangkan

Ansar Suyuti - ikhlas kitta 33

Page 34: Matlab Hari 1

perintah nama/title (‘Graph title’) memberi nama pada plot dan x label (‘x-

axis label’), y label (‘y-axis label’) yang memberi label pada plot dengan

string yang khusus. Perintah text ( x-coordinate, y-coordinate,’text’) dapat

digunakan untuk meletakkan text pada grafik, dimana nilai koordinat

diambil dari plot tertentu. Sebagai contoh, kalimat perintahnya adalah :

Text(3.5, 1.5,’Voltage’)

Kalimat perintah ini akan menuliskan kata Voltage pada titik grafik (3.5,

1.5). Selain itu juga dapat digunakan perintah gtext (‘text’), dimana

perintah ini menempatkan teks pada grafik dengan menggunakan mouse.

Alternatif perintah lain adalah legend(string1,sring2,string3,…) yang juga

berfungsi untuk menempatkan teks dalam grafik dengan menggunakan

string. MATLAB menyediakan skala otomatis. Perintah axis ([x min. x max.

y min. y max.]). Sebagai contoh :

Axis ([-10 40 -60 60])

Menghasilkan skala sumbu x dari – 10 sampai 40 dan skala sumbu y dari –

60 sampai 60. Mengetik kembali axis (‘auto’) akan menghasilkan skala

sendiri.

Contoh :

Membuat plot X-Y dengan variabel berikut ini :

x 0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 4,5 5,0y 10 10 16 24 30 38 52 68 82 96 123

Programnya dapat dituliskan sebagi berikut :

x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];y = [10 10 16 24 30 38 52 68 82 96 123];plot(x, y), gridxlabel('x'), ylabel('y'), title('Contoh Grafik Sederhana')

Ansar Suyuti – ikhlas kitta 34

Page 35: Matlab Hari 1

MATLAB Terapan 1

Hasilnya dapat dilihat pada grafik ini :

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

20

40

60

80

100

120

140

x

y

Contoh Grafik Sederhana

MATLAB juga menyediakan statement fplot untuk membuat grafik dari

fungsi dalam bentuk string. Dengan sintaks sebagai berikut;

fplot ('string',[xmin,xmax])

atau

fplot ('string',[xmin xmax ymin ymax])

dimana string merupakan sebuah fungsi, [xmin xmax] adalah nilai

minimum dan maksimum dari variabel bebas fungsi.

Contoh

» f='cos(tan(x))-tan(sin(x))';» fplot(f,[0 3]), title (' Grfaik cos(tan(x))-tan(sin(x))')

Ansar Suyuti - ikhlas kitta 35

Page 36: Matlab Hari 1

0 0.5 1 1.5 2 2.5 3-3

-2.5

-2

-1.5

-1

-0.5

0

0.5

1 Grfaik cos(tan(x))-tan(sin(x))

Statemen polyval

Program ini menggunakan perintah polyfit untuk mendapatkan

pencocokan data (koefisien) untuk mendapatkan persamaan polynomial

yang sesuai dengan data yang ada.

Kata perintah yang lain adalah polyval yaitu digunakan untuk,

mengevaluasi polynimial dari data-data yang diberikan :

Contoh :

x = [ 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0];y = [10 10 16 24 30 38 52 68 82 96 123];p = polyfit(x, y, 2) yc = polyval(p, x); plot(x, y,'x', x, yc) xlabel('x'), ylabel('y'), gridtitle('Polynomial curve fitting')legend('Actual data', 'Fitted polynomial')

Hasil penggunaan perintah polyfit dan polyval dapat dilihat berikut ini :

P=

Ansar Suyuti – ikhlas kitta 36

Page 37: Matlab Hari 1

MATLAB Terapan 1

4.02333 2.01107 9.6783

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

20

40

60

80

100

120

140

x

y

Polynomial curve fitting

Actual data Fitted polynomial

Pada program ini akan digunakan,* untuk perkalian elemen dengan

elemen dari dua bentuk persamaan yang telah diberikan, fungsinya y = 1

+ e-2t sin (8t-/2) dari 0 sampai 3 detik). Program ini juga memakai

perintah [cp,k]=max (c ) yang memperlihatkan nilai maksimum dari

grafik.

Contoh Program untuk mencari nilai maksimum c=1+e-2t.sin(8t-pi/2)

t=0:.005:3;c = 1+ exp(-2*t).*sin(8*t - pi/2);[cp, k] = max(c) tp = t(k) plot(t, c), xlabel(' t, sec'), ylabel('c'), gridtitle('Grafik sinus teredam')text(0.55,1.35,['cp = ',num2str(cp)]) text(0.55, 1.2,['tp = ',num2str(tp)])

Hasil dari M-file diatas :

Ansar Suyuti - ikhlas kitta 37

Page 38: Matlab Hari 1

0 0.5 1 1.5 2 2.5 30

0.5

1

1.5

t, sec

c

Grafik sinus teredam

cp = 1.4702

tp = 0.36

Cara interaktif untuk mendapatkan data-data titik-titik pada kurva adalah

dengan menuliskan perintah ginput. Perintah ini akan memudah

mendapatkan titik-titik yang diinginkan dengan cara mengklik mouse.

t=0:.005:3;c = 1+ exp(-2*t).*sin(8*t - pi/2);[cp, k] = max(c) tp = t(k) plot(t, c), xlabel(' t, sec'), ylabel('c'), gridtitle('Grafik sinus teredam')text(0.55,1.35,['cp = ',num2str(cp)]) text(0.55, 1.2,['tp = ',num2str(tp)])%menggunakan statemen ginput[tp, cp] = ginput

Statemen Subplot

Statemen subplot ( m, n, p ), berfungsi untuk membagi tampilan gambar

menjadi sebanyak m baris, n kolom dan p menunjukkan gambar

keberapa. Selain itu memakai perintah subplot (111) yang fungsinya

seperti CLF RESET dimana grafik yang satu dengan yang lain tidak saling

mempengaruhi sehingga mendapatkan tampilan yang maksimal.

Contoh :

Ansar Suyuti – ikhlas kitta 38

Page 39: Matlab Hari 1

MATLAB Terapan 1

wt = 0: 0.05: 3*pi;v=120*sin(wt); % Sinusoidal voltagei=100*sin(wt-pi/4); % Sinusoidal currentp=v.*i; % Instantaneous power

subplot(2, 2, 1),plot(wt,v, wt,i); % Plot of v & i versus wttitle('Voltage & current')xlabel('\omegat, radians ');

subplot(2, 2, 2),plot(wt,p); % Instantaneous power vs. wttitle('Power')xlabel(' \omegat, radians ');Fm=3.0;fa = Fm*sin(wt); % Three-phase mmf's fa, fb, fcfb = Fm*sin(wt-2*pi/3);fc = Fm*sin(wt-4*pi/3);subplot(2, 2, 3),plot(wt,fa, wt,fb, wt,fc )title('3-phase mmf');xlabel(' \omegat, radians ');fR = 3/2*Fm;subplot(2, 2, 4),plot(-fR*cos(wt),fR*sin(wt))title('Rotating mmf')subplot(111)

Ansar Suyuti - ikhlas kitta 39

Page 40: Matlab Hari 1

0 5 10-200

-100

0

100

200Voltage & current

t, radians 0 5 10

-5000

0

5000

10000

15000Power

t, radians

0 5 10-4

-2

0

2

43-phase mmf

t, radians -5 0 5

-5

0

5Rotating mmf

Statemen subplot(2, 2, 1),plot(wt,v, wt,i)bertujuan untuk membagi

tampilan grafik menjadi 2 baris dan 2 kolom, sehingga layar grafik

menjadi empat bagian. Bagian bagian tersebut diberi nomor grafik

berurut-urut, nomor 1 adalah baris pertama kolom pertama, selanjutnya

nomor 2 adalah baris pertama kolom kedua, nomor 3 adalah baris kedua

kolom pertama dan nomor empat adalah baris kedua kolom kedua.

Penempatan grafik disesuaikan dengan nomornya.

Contoh

» x=0:0.001:3;» f=cos(tan(x))-tan(sin(x));» subplot(1,2,1),plot(x,f),xlabel('x'),ylabel('y'),axis([0 1.5 -3 1]);» subplot(1,2,2),plot(x,f),xlabel('x'),ylabel('y'),axis([1.5 3 -3 1]);

Ansar Suyuti – ikhlas kitta 40

Page 41: Matlab Hari 1

MATLAB Terapan 1

0 0.5 1 1.5-3

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

x

y

1.5 2 2.5 3-3

-2.5

-2

-1.5

-1

-0.5

0

0.5

1

x

y

Statemen Figure

Statemen figure digunakan apabila dalam suatu program terdapat

beberapa grafik, tetapi ingin ditampilkan pada halaman grafik yang

berbeda. Misal program contoh 6-4, dimana keempat grafik ditampilkan

dalam satu layar, maka dengan statemen figure grafik tersebut dapat

dibuat pada layar yang berbeda. Statemen figure adalah

Figure ( nomor grafik), plot (…,….)

Contoh :

clfwt = 0: 0.05: 3*pi;v=120*sin(wt); % tegangan sinusoidali=100*sin(wt-pi/4); % Arus sinusoidalp=v.*i; % daya Instantaneous

figure(1),plot(wt,v, wt,i); % Grafik 1title('Voltage & current')xlabel('\omegat, radians ');

figure(2),plot(wt,p); % Grafik 2title('Power')xlabel(' \omegat, radians ');

Fm=3.0;fa = Fm*sin(wt); fb = Fm*sin(wt-2*pi/3);fc = Fm*sin(wt-4*pi/3);figure(3),plot(wt,fa, wt,fb, wt,fc ); % grafik 3

Ansar Suyuti - ikhlas kitta 41

Page 42: Matlab Hari 1

title('3-phase mmf');xlabel(' \omegat, radians ');fR = 3/2*Fm;figure(4),plot(-fR*cos(wt),fR*sin(wt)); % Grafik 4title('mf')

0 1 2 3 4 5 6 7 8 9 10-150

-100

-50

0

50

100

150Voltage & current

t, radians

0 1 2 3 4 5 6 7 8 9 10-2000

0

2000

4000

6000

8000

10000

12000Power

t, radians

0 1 2 3 4 5 6 7 8 9 10-3

-2

-1

0

1

2

33-phase mmf

t, radians

Ansar Suyuti – ikhlas kitta 42

Page 43: Matlab Hari 1

MATLAB Terapan 1

-5 -4 -3 -2 -1 0 1 2 3 4 5-5

-4

-3

-2

-1

0

1

2

3

4

5mf

Grafik 3- Dimensi

Statemen Plot

Statemen plot3(x,y,z), berguna untuk menghasilkan sebuah garis 3

dimensi dari 3 buah vektor x,y,z yang menyatakan besar masing-masing

sumbu

Contoh :

» t=0:pi/50:10*pi;» plot3(sin(t),cos(t),t)

Hasilnya :

-1-0.5

00.5

1

-1

-0.5

0

0.5

10

10

20

30

40

Ansar Suyuti - ikhlas kitta 43

Page 44: Matlab Hari 1

atau perintah

plot (x1,y1,z1,s1,x2,y2,z2,s2,….)

mengkombinasikan beberapa plot (x,y,z,s), dimana x,y,z vektor atau

matriks dan s string.

Statemen Meshgrid

Untuk menggambar permukaan koordinat z berdasarkan nilai matriks m x

n. Antar elemen matriks dihubungkan garis dalam penyajiannya.

Misal z = f(x,y)

ingin ditampilkan pada rentang -8 dan -8

» x=-8:0.5:8;» y=x;» [X,Y]=meshgrid(x,y);» R=sqrt(X.^2+Y.^2)+eps;» Z=sin(R)./R;» mesh(Z)

Ansar Suyuti – ikhlas kitta 44

Page 45: Matlab Hari 1

MATLAB Terapan 1

Stateman Contour

Statemen countour digunakan untuk memvisualisasi kontur atau garis-

garis yang menunjukkan ketinggian tetap. Satatemen contour adalah :

CONTOUR(Z), menggambar contour berdasarkan nilai ZCONTOUR (X,Y,Z), dimana X dan Y vektor, untuk membatasi area contour dari ZCONTOUR(Z,N) dan CONTOUR(X,Y,Z,N), menggambar N buah garisCONTOUR(Z,V) dan CONTOUR(X,Y,Z,V), menggambar sebanyak LENGTH(V) garis contour pada nilai vektor VCONTOUR(…..,'linetype') menggambar dengan tipe garis tertentu.

Contoh :

» contour(peaks,50)

Ansar Suyuti - ikhlas kitta 45

Page 46: Matlab Hari 1

5 10 15 20 25 30 35 40 45

5

10

15

20

25

30

35

40

45

Statemen Mesh dan Surface

Fungsi mesh dan surf menampilkan permukaan secara 3 dimensi. Jika Z

matriks dengan elemen Z(i,j) mendefinisikan ketinggian pada grid (i,j),

maka

mesh(Z)

membangkitkan rangka berwarna permukaan matriks Z

surf(Z)

membangkitkan rangka dan pewarnaan permukaan dari Z

Ansar Suyuti – ikhlas kitta 46

Page 47: Matlab Hari 1

MATLAB Terapan 1

contoh :

» mesh(peaks)

dengan perintah tambahan

colormap(hot)ataucolormap(pink)

maka warna akan beruba sesuai perintah

Memotong sebagian gambar dengan NaN

NaN(Not a Number) bisa untuk menghilangkan sebagian visualisasi

Ansar Suyuti - ikhlas kitta 47

Page 48: Matlab Hari 1

Misal :

» p=peaks;» p(25:35,2030)=nan*p(25:35,20:30);» p(25:35,20:30)=nan*p(25:35,20:30);» mesh(peaks,p)

Arah Pandang Grafik

Dalam MATLAB anda dapat menentukan sudut untuk melihat garafik tiga

dimensi. Statemen view(asimuth,elevation) mengeset sudut pandang

dengan menentukan sudut proyeksi pandang mata dan ketinggian anda.

Statemen adalah

view(a,b)

dimana :

Ansar Suyuti – ikhlas kitta 48

Page 49: Matlab Hari 1

MATLAB Terapan 1

a : sudut antara arah pandang terhadap titil (0,0) dengan bidang (x,y)

b : sudut antara proyeksi arah pandang mata ke bidang (x,y) dengan

bidang (z,y)

contoh :

» view(20,0)

Ansar Suyuti - ikhlas kitta 49

Page 50: Matlab Hari 1

16. Dasar Operasi Array

Untuk membuat array dalam MATLAB, yang perlu dilakukan hanyalah

mengetikkan kurung kotak kiri, memasukkan elemen - elemen dengan

dipisahkan oleh spasi atau koma, kemudian menutup array dengan

kurung kotak kanan.

Contoh :

» A=[1 2 3 4 5]

A =

1 2 3 4 5» B=[5,4,3,2,1]

B =

5 4 3 2 1

» C=A+B

C =

6 6 6 6 6

Jadi sangat mudah untuk mengoperasikan array dalam MATLAB, begitu

pula mengoperasikan. seperti menjumlahkan, dan operasi lainnya.

Pembentukan Array

MATLAB menyediakan fasilitas lain untuk pembentukan array, yang mana memasukkan nilai array,

tidak perlu mengetikkan elemen demi elemen. Beberapa cara untuk pembentukan array dapat dilihat

pada tabel.

x = [2 2*pi sqrt(2) 2-3j] membentuk array x dengan elemen-elemen khusus

Ansar Suyuti – ikhlas kitta 50

Page 51: Matlab Hari 1

MATLAB Terapan 1

x = first:last

x = first : increment:last

x = linspace (first,last,n)

x = logspace (first,last,n)

membentuk array x dimulai dengan nilai awal first, meningkat setiap 1 dan berakhir pada nilai akhir lastPembentukan array x dimulai dengan nilai awal first, meningkat sebesar nilai incerement dan berakhir pada nilai lastMembuat array x dimulai dengan nilai first, berakhir dengan nilai last, dengan jumlah elemen nMembuat array x dimulai dengan nilai awal 10first, berakhir dengan nilai 10last, dengan jumlah elemen n

Contoh :

» x=[2 2*pi sqrt(2) 2-3j]

x = 2.0000 6.2832 1.4142 2.0000 - 3.0000i

» x=1:5

x = 1 2 3 4 5

» x=1:2:10

x = 1 3 5 7 9

» x=linspace(1,5,5)

x = 1 2 3 4 5

» x=logspace(1,5,5)

x = 10 100 1000 10000 100000

Ansar Suyuti - ikhlas kitta 51

Page 52: Matlab Hari 1

» a=1:5,b=1:2:9a = 1 2 3 4 5b = 1 3 5 7 9» a=1:5,b=1:2:9a = 1 2 3 4 5

b = 1 3 5 7 9

» c=[b a]c = 1 3 5 7 9 1 2 3 4 5

» d=[a(1:2:5) 1 0 1]d = 1 3 5 1 0 1

Pengalamatan Array

Array x yang terakhir mempunyai 5 elemen yang dipisahkan dalam

kolom-kolom, dengan demikian dapat dikatakan bahwa array tersebut

array satu lima atau suatu array dengan panjang 5.

Dalam MATLAB, elemen-elemen array diakses menggunakan subscript;

misalnya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dst.

Contoh :

Ansar Suyuti – ikhlas kitta 52

Page 53: Matlab Hari 1

MATLAB Terapan 1

» x(2)

ans =

100

» x(1:3)

ans =

10 100 1000

» x(1:2:5)

ans =

10 1000 100000

» x(4:end)

ans =

10000 100000

» x([5 2 5])

ans =

100000 100 100000

Untuk membentuk vektor kolom, maka MATLAB menyediakan operator

titik koma ( ; ) untuk membuat baris, apostrop ( ' ) untuk transpose, titik

apostrop ( .' ) untuk transpose tetapi tidak melakukan konjugasi.

Operator titik-transfose ini diinterpretasi sebagai transpose konjugasi non

kompleks. Jika suatu array merupakan array kompleks, transpose ( ' )

memberikan transpose konjugasi kompleks, yaitu tanda dari bagian

imajiner yang berubah sebagai akibat operasi transpose. Tetapi titik

transpose melakukan transpose pada array namun tidak melakukan

konjugat padanya.

Contoh :

Ansar Suyuti - ikhlas kitta 53

Page 54: Matlab Hari 1

» A=[1;2;3;4;5]

A =

1 2 3 4 5

» B=[1 2 3 4 5]'

B =

1 2 3 4 5

» AA=[1+2j 1+0.5j 2+1j]'

AA =

1.0000 - 2.0000i 1.0000 - 0.5000i 2.0000 - 1.0000i

» BB=[1+2j 1+0.5j 2+1j].'

BB =

1.0000 + 2.0000i 1.0000 + 0.5000i 2.0000 + 1.0000i

Dari contoh terlihat bahwa bila bilangan kompleks ditranspose dengan

statemen apostrop ( ' ) maka terjadi konjugasi atau dengan kata lain

tanda imajiner akan berubah. Sedangkan bila bilangan kompleks di

transpose dengan statemen titik apostrop ( .' ) maka tidak terjadi

konjugasi.

Jika suatu array dapat berupa vektor baris atau vektor kolom, maka array

dapat dibentuk berupa matriks.

Contoh

Ansar Suyuti – ikhlas kitta 54

Page 55: Matlab Hari 1

MATLAB Terapan 1

» K=[1 2 3;4 5 6;7 8 9]

K = 1 2 3 4 5 6 7 8 9

» K=[1 2 34 5 67 8 9]

K =

1 2 3 4 5 6 7 8 9

selain titik koma, menekan tombol Return atau Enter saat memasukkan

nilai matriks juga dapat membuat baris baru.

Operasi Operasi Array

Operasi Array dengan Skalar

Penambahan, pengurangan , perkalian dan pembagian dengan skalar

dapat dikenakan pada semua elemen array.

Contoh

Ansar Suyuti - ikhlas kitta 55

Page 56: Matlab Hari 1

» A=[1 2 3;4 5 6]

A =

1 2 3 4 5 6

» b=A*4

b =

4 8 12 16 20 24

» c=b/4

c =

1 2 3 4 5 6

» d=A+4

d =

5 6 7 8 9 10

Operasi Array dengan Array

Jika dua array mempunyai dimensi yang sama, penambahan,

pengurangan, perkalian dan pembagian berlaku pada elemen ke elemen .

Tapi jika dimensi tidak sama maka tentu operasi tersebut tidak dapat

dilaksanakan. Operator -operator dasar dari operasi array adalah sebagai

berikut

+-

.*

./

.\

.^

penambahan array (a+b)pengurangan array (a- b)perkalian array (a .* b)pembagian kanan array (a ./b )pembagian kiri array ( a ./b)pemangkatan array (a.^ b)

Ansar Suyuti – ikhlas kitta 56

Page 57: Matlab Hari 1

MATLAB Terapan 1

Titik yang mendahului simbol perkalian, pembagian dan pemangkatan

memberitahu MATLAB untuk melakukan operasi elemen ke elemem.

Perkalian tanpa titik berarti perkalian matriks.

Contoh :

» a=[ 1 1 1;2 2 2]

a = 1 1 1 2 2 2

» b=[3 3 3;4 4 4]

b = 3 3 3 4 4 4

» c=a+b

c = 4 4 4 6 6 6

» d=a-b

d = -2 -2 -2 -2 -2 -2

Ansar Suyuti - ikhlas kitta 57

Page 58: Matlab Hari 1

e =

3 3 3 8 8 8

» f=a./b

f =

0.3333 0.3333 0.3333 0.5000 0.5000 0.5000

» g=a.\b

g =

3 3 3 2 2 2

» h=a.^b

h =

1 1 1 16 16 16

Dari contoh terlihat bahwa semua operasi array dilakukan merupakan

operasi antar elemen-elemen array.

memanipulasi Array

Karena array dan matriks merupakan hal mendasar dalam MATLAB, maka

terdapat banyak cara untuk memanipulasinya.

Cntoh :

» A=[1 2 3;4 5 6;7 8 9]A = 1 2 3 4 5 6 7 8 9

» A(3,3)=0A = 1 2 3 4 5 6 7 8 0

Ansar Suyuti – ikhlas kitta 58

Page 59: Matlab Hari 1

MATLAB Terapan 1

mengubah A(3,3) menjadi nol

contoh

» A(2,6)=1A = 1 2 3 0 0 0 4 5 6 0 0 1 7 8 0 0 0 0

mengubah elemen pada baris 2 kolom 6 menjadi satu, karena A tidak

mempunyai enam kolom, ukuran A diperbesar seperlunya dan diisi

dengan nol sehingga matriks tetap segi empat.

Contoh

» A(:,4)=4A = 1 2 3 4 0 0 4 5 6 4 0 1 7 8 0 4 0 0

membuat semua elemen di kolom empat menjadi 4.

A = 1 2 3 4 5 6 7 8 9

» B=A(3:-1:1,1:3)B = 7 8 9 4 5 6 1 2 3

menciptakan matriks B dengan urutan baris A yang dibalik

» B=A(3:-1:1,:)B = 7 8 9 4 5 6 1 2 3

Ansar Suyuti - ikhlas kitta 59

Page 60: Matlab Hari 1

menciptakan matriks B dengan urtan baris A yang dibalik, disini titik dua berarti semua kolom (titik

dua terakhir dari contoh di atas). Jadi : adalah singkatan 1:end atau 1:3 sebab A memiliki 3 kolom.

» C=[A B(:,[1 3])]C = 1 2 3 7 9 4 5 6 4 6 7 8 9 1 3

membuat matriks C dengan menambhkan semua baris pada kolom

pertama dan ketiga B ke sisi kanan A.

» B=A(1:2,2:3)B = 2 3 5 6

membuat B dengan mengambil dua baris pertama dan dua kolom terakhir A.

» B=A(:)B = 1 4 7 2 5 8 3 6 9

membuat matriks B dengan mengurutkan kolom-kolom A

» B=B.'B = 1 4 7 2 5 8 3 6 9

mentranspose matriks A

Ansar Suyuti – ikhlas kitta 60

Page 61: Matlab Hari 1

MATLAB Terapan 1

» B=AB = 1 2 3 4 5 6 7 8 9

» B(:,2)=[]B = 1 3 4 6 7 9

mendefinisikan kembali B dengan membuang semua baris pada kolom

kedua matriks B semula. Saat anda mengeset sesuatu menjadi matriks

kosong [ ], sesuatu itu akan terhapus, mengakibatkan matriks berkurang

menjadi apa yang tertinggal.

Array dengan Elemen Satu dan Nol

Karena banyak dipergunakan, MATLAB menyediakan fungsi untuk

membuat array yang semua elemennya satu atau nol.

Contoh:

» ones(4)

ans = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

» zeros(2,5)

ans =

0 0 0 0 0 0 0 0 0 0

» ones(3,4)

ans =

1 1 1 1 1 1 1 1 1 1 1 1

Ansar Suyuti - ikhlas kitta 61

Page 62: Matlab Hari 1

Statemen ones (4) membentuk array bujur sangkar (4 x 4 ) dengan

seluruh elemennya bernilai satu. Statemen ones (3,4) untuk membentuk

array berdimensi 3 baris dan 4 kolom dengan seluruh elemen bernilai

satu. Statemen zero (2,5) untuk membentuk array berdimensi 2 baris dan

4 kolom dengan seluruh elemen bernilai nol.

Operasi Matriks

Semula MATLAB diciptakan untuk menyederhanakan komputasi matriks

dan aljabar linier yang terdapat di berbagai aplikasi adalah sebagai

berikut:

+-*/ dan \

det (A)d=eig(A)[V,D] = eig(A)expm(A)inv(A)lu(A)orth(A)pinv(A)poly(A)polyeig(A1,A2,..)sqrtm(A)svd(A)trace(A)

PenjumlahanPenguranganPerkalianPembagian kiri dan kanan X=A\B adalah solusi untuk A*X=BX=B/A adalah solusi untuk X*A=Bdimensi harus sesuai dengan aturan perkalian matriksDeterminanNilai eigen Nilai eigen dan eigen vektorPemangkatan matriksInvers matriksFaktor dari eliminasi gausOrtognalisasiPseudoinversKarakteristik polynomialMenyelesaikan masalah nilai eigen polinomialAkar kuadrat matriksDekomposisi nilai singularJumlah elemen-elemen diagonal

Jika sebuah persamaan simultan sebagai berikut :

a11 X1 + a12 X2 + … + a1n Xn = B1a21 X1 + a22 X2 + … + a1n Xn = B2 . . . .

Ansar Suyuti – ikhlas kitta 62

Page 63: Matlab Hari 1

MATLAB Terapan 1

. . . .an1 X1 + an2 X2 + … + ann Xn = Bn

persamaan di atas dapat dituliskan dalam bentuk matriks

atau

A.x = B

Sehingga vektor X dapat dihitung :

[x] = [A]-1 B

contoh :

persamaan dalam bentuk , A X = B hitunglah vektor X

» A=[1 2 3;4 5 6;7 8 0]

A = 1 2 3 4 5 6 7 8 0

» b=[366;804;351]

b = 366 804 351

Ansar Suyuti - ikhlas kitta 63

Page 64: Matlab Hari 1

Jika anda mempunyai dasar aljabar linier maka sangat mudah untuk menentukan bahwa masalah

mempunyai satu jawaban tunggal jika determinan matriks A tidak sama dengan nol.

» det(A)ans = 27

» inv(A)

ans =

-1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111

Penyelesaian persamaan simultan tersebut diselesaikan dalam program

MATLAB dengan tiga cara :

Cara I

Penyelesaian menggunakan statemen inv

» x=inv(A)*bx = 25.0000 22.0000 99.0000

Cara II

Penyelesaian menggunakan statemen / (statemen pembagian kanan matriks).

» x=A\bx = 25.0000 22.0000 99.0000

Cara III

Ansar Suyuti – ikhlas kitta 64

Page 65: Matlab Hari 1

MATLAB Terapan 1

Penyelesaian dengan menggunakan factorisasi lu (statemen lu) dari hasil dari upper af lower matrik

triangular , A=LU, dimana X diperoleh dari X = U-1 L-1 B.

» A=[1 2 3;4 5 6;7 8 0];» B=[366;804;351];» [L,U]=lu(A)

L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0

U =

7.0000 8.0000 0 0 0.8571 3.0000 0 0 4.5000

» X=inv(U)*inv(L)*B

X =

25.0000 22.0000 99.0000

Untuk mencari nilai eigen values dan eigen vektor

» [x,D]=eig(A)

x =

0.7471 -0.2998 -0.2763 -0.6582 -0.7075 -0.3884 0.0931 -0.6400 0.8791

D =

-0.3884 0 0 0 12.1229 0 0 0 -5.7345

atau

» eig(A)

ans =

Ansar Suyuti - ikhlas kitta 65

Page 66: Matlab Hari 1

-0.3884 12.1229 -5.7345

Contoh :

Carilah nilai x, y dan z dari persamaan dibawah ini

6x - 3y + 4z = 4112x + 5y - 7z = -26-6x + 2y + 6z = 14

sebelum kita membuat program MATLAB, maka persamaan dapat dibuat

dalam bentuk matrik

atau

[ABC][xyz]=[K]

sehingga

[xyz]=[ABC]-1 [K]

» ABC=[6 -3 4;12 5 -7;-6 2 6];» K=[41;-26;14];» xyz=inv(ABC)*K

xyz =

2.0035 -2.6842 5.2316

Contoh

Ansar Suyuti – ikhlas kitta 66

Page 67: Matlab Hari 1

MATLAB Terapan 1

Sebuah rangkaian listrik seperti gambar dibawah, hitunglah V1 dan V2

dan daya pada setiap sumber arus.

y12 = 0,35 - j 1,2 i1 = 30 + j 40 Ay10 = 1,15 - j 0,8 i2 = 20 + j 15 Ay20 = 0,55 - j 0,4

dengan menggunakan hukum kirchhoff, diperoleh persamaan simpul

atau

[y].[V] = [I]

sehingga

[V]= [y]-1 [I]

sedangkan rumus untuk daya sumber ( S ) = V I*.

Ansar Suyuti - ikhlas kitta 67

Page 68: Matlab Hari 1

I=[30+40j;20+15j]; % Arus sumberY=[1.5-2j -0.35+1.2j; -0.35+1.2j 0.9-1.6j];disp(' tegangan V1 dan V2')V=inv(Y)*Idisp(' daya sumber S1 dan S2')S = V.*conj(I)

Hasil program

tegangan V1 dan V2

V =

3.5902 +35.0928i 6.0155 +36.2212i

daya sumber S1 dan S2

S =

1.0e+003 *

1.5114 + 0.9092i 0.6636 + 0.6342i

Matriks Khusus

Matriks dengan kegunaan umum meliputi

» zeros(3)

ans =

0 0 0 0 0 0 0 0 0

» ones(2,4) % 2x4 matriks berelemen satu

ans =

1 1 1 1 1 1 1 1

» zeros(3)+pi

ans = 3.1416 3.1416 3.1416 3.1416 3.1416 3.1416

Ansar Suyuti – ikhlas kitta 68

Page 69: Matlab Hari 1

MATLAB Terapan 1

3.1416 3.1416 3.1416

» eye(3) % matriks identitasans = 1 0 0 0 1 0 0 0 1

Statemen zeros(3) digunakan untuk membentuk matriks 3x3 dengan

seluruh elemen bernilai nol, statemen zeros(3)+pi digunakan untuk

membentuk matriks nol 3x3 dengan menambahkan nilai pi pada setiap

elemen. Statemen eye(3), untuk membentuk matrik identitas berdimensi

3x3.

17. Akar-akar Polinomial

Mencari akar suatu polinomial merupakan suatu masalah tersendiri

muncul dalam berbagai bidang ilmu. MATLAB menyediakan fungsi roots

untuk mencari akar polinomial, sedangkan akar-akar polinimial yang

diperoleh dapat dikonversi kedalam persamaan awal dengan fungsi poly.

Contoh :

akar-akar dapat diperoleh dengan menggunakan fungsi roots:

Contoh

» p=[1 9 31.25 61.25 67.75 14.75 15]

p =

1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000

» r=roots(p)

r = -4.0000 -3.0000

Ansar Suyuti - ikhlas kitta 69

Page 70: Matlab Hari 1

-1.0000 + 2.0000i -1.0000 - 2.0000i 0.0000 + 0.5000i

0.0 - 0.5000i

akar-akar polinomial tersebut dapat dikonversi ke koefisien polinomial dengan fungsi poly(r):

» poly(r)

ans =

1.0000 9.0000 31.2500 61.2500 67.7500 14.7500 15.0000

Contoh

» r=[-1 -2 -3+4i -3-4i]

r =

-1.0000 -2.0000 -3.0000 + 4.0000i -3.0000 - 4.0000i

» poly(r)

ans =

1 9 45 87 50

berarti persamaan polinomialnya adalah :

MATLAB juga juga dapat mencari akar karakteristik persamaan polinomial

dalam bentuk matriks :

A=

Karakteristik persamaan dari matriks tersebut dapat diperoleh fungsi poly

dan akar-akar persamaan diperoleh dengan fungsi roots.

Ansar Suyuti – ikhlas kitta 70

Page 71: Matlab Hari 1

MATLAB Terapan 1

Contoh

» A=[0 1 -1;-6 -11 6;-6 -11 5];» p=poly(A)

p =

1.0000 6.0000 11.0000 6.0000

» r=roots(p)

r =

-3.0000 -2.0000 -1.0000

akar-akar dari karakteristik persamaan tersebut sama dengan eigenvalues dari matriks A atau r=eig(A)

» eig(A)

ans =

-1.0000 -2.0000 -3.0000

Perkalian, Pembagian dan Penjumlahan Polinomial

Perkalian polinomial dilakukan dengan fungsi conv (melakukan

convulotion dari array), pembagian dilakukan dengan fungsi deconv dan

penjumlahan dilakukan dengan seperti penjumlahan array biasa tetapi

derajat polinomial harus sama, jika polinomial mempunyai derajat yang

berbeda maka derajat yang lebih rendah ditambahkan dengan koefisien-

koefisien nol atau menggunakan fungsi yang disediakan oleh MATLAB

yaitu polyadd.

Contoh .

dan carilah C=A.B , D=C+B dan E=C-B

Ansar Suyuti - ikhlas kitta 71

Page 72: Matlab Hari 1

dan carilah

contoh dapat diselesaikan dengan MATLAB

A=[1 7 12];B=[1 0 9];Z=[1 9 37 81 52]; Y=[1 4 13];C=conv(A,B)D=A+BE=A-BX=deconv(Z,Y)

Hasil dari program adalah :

C = 1 7 21 63 108D = 2 7 21E = 0 7 3X = 1 5 4

Turunan

Turunan polinomial dapat dilakukan dengan menggunakan fungsi polyder.

turunan dari polinomial A adalah:

» A=[1 9 37 81 52];» polyder(A)ans = 4 27 74 81

Polynomial Curve Fitting

Ansar Suyuti – ikhlas kitta 72

Page 73: Matlab Hari 1

MATLAB Terapan 1

persamaan tersebut mempunyai koefisien n=d+1, dengan derajat d.

Maka fungsi pengurangan orde polynomial adalah polyfit(x,y,d).

Contoh .

X= 0 1 2 4 6 10Y= 1 7 23 109 307 1231

Carilah sebuah polinomial derajat ke 3 dari data tersebut di atas;

» x=[0 1 2 4 6 10];» y=[1 7 23 109 307 1231];» c = polyfit(x,y,3)

c = 1.0000 2.0000 3.0000 1.0000

Evaluasi Polinomial

Evaluasi polinomial dapat dilakukan dengan fungsi polyval(c,x).

Contoh, kita ingin mengevaluasi polynomial c terhadap titik x= 0,1,2,3 dan 4 .

» plot(t,x)» c=[1 2 3 1];» x=0:1:4;» y=polyval(c,x)

y = 1 7 23 55 109

» plot(x,y),title('x^3+2x^2+3x+1')

Ansar Suyuti - ikhlas kitta 73

Page 74: Matlab Hari 1

0 0.5 1 1.5 2 2.5 3 3.5 40

20

40

60

80

100

120x3+2x2+3x+1

Partial-fraction Expansion

Untuk memperoleh residu atau partial-fraction expantion ( r ) , kutup yang

bersesuaian (p) dan dirct terms (K), digunakan fungsi : [r,p,K]=residu(b,a].

Vector b dan a merupakan koefisien dari polinomial.

Contoh

Hitunglah partial fraction expantion dari :

Penyelesaian dengan MATLAB adalah

» b=[2 0 9 1];» a=[1 1 4 4];» [r,p,K]=residue(b,a)

r =

Ansar Suyuti – ikhlas kitta 74

Page 75: Matlab Hari 1

MATLAB Terapan 1

0.0000 - 0.2500i 0.0000 + 0.2500i -2.0000

p =

-0.0000 + 2.0000i -0.0000 - 2.0000i -1.0000

K = 2

Berarti partial fraction expantion-nya adalah

untuk mengembalikan persamaan polinomial P(s)/Q(s) dapat dilakukan dengan fungsi

[b,a]=residue(r,p,K).

» [b,a]=residue(r,p,K)

b = 2.0000 0.0000 9.0000 1.0000

a = 1.0000 1.0000 4.0000 4.0000

Ansar Suyuti - ikhlas kitta 75

Page 76: Matlab Hari 1

18. Integral Numerik

Trapezoidal Integration (integrasi trapesium)

Cara paling sederhana untuk menentukan luas daerah dibawah sebuah

kurva adalah dengan membagi-bagi luas daerah itu dengan bentuk

persegi . Semakin kecil lebar persegi yang dibentuk semakin mendekati

nilai integral. Atau dengan menggunakan bagian-bagian secara

trapesium. MATLAB melaksanakan integrasi secara trapesium dengan

fungsi "trapz". Syntaksnya adalah trapz (x,y), dimana y merupakan fungsi.

Contoh :

Hitunglah integral

Ansar Suyuti – ikhlas kitta 76

Page 77: Matlab Hari 1

MATLAB Terapan 1

jawabannya adalah

= =cos 0 - cos =2

Untuk menyelediki pengaruh lebar bagian trapesium, pertama kita

gunakan 10 bagian dengan lebar yang sama , maka programnya :

» x=linspace(0,pi,10);» y=sin(x);» trapz(x,y)

ans =

1.9797

jika lebar bagian trapesium diperkecil, misalnya dengan membagi menjadi

100 bagian, maka

» x=linspace(0,pi,100);» y=sin(x);» trapz(x,y)

ans =

1.9998

contoh :

Sebuah accelerometer mengukur percepatan dan digunakan pada

pesawat terbang, roket, dan kendaraan untuk memperkirakan kecepatan

dan perpindahannya. Accelerometer mengintegrasi sinyal percepatan

untuk menghasilkan sebuah perakiraan nilai kecepatan, dan

mengintegrasi perkiraan nilai kecepatan untuk menghasilkan perkiraan

Ansar Suyuti - ikhlas kitta 77

Page 78: Matlab Hari 1

nilai pemindahan. Misalnya kendaraan mulai bergerak pada t=0 dan

percepatan yang terukur seperti pada tabel.

Waktu (t) 0 1 2 3 4 5 6 7 8 9 10Percepatan (m/dtk2) 0 2 4 7 11 17 24 32 41 48 51

Carilah :

kecepatan setelah 10 detik

kecepatan pada waktu t= 1,2,..,10 detik

Jawab :

hubungan antara kecepatan dan percepatan adalah

» t=[0:10];» a=[0,2,4,7,11,17,24,32,41,48,51];» vak=trapz(t,a)

vak =

211.5000

kecepatan pada t=10 adalah 211,5 meter/detik

untuk menentukan kecepatan pada waktu t=1,2,…,10, untuk

v(t1)=0 maka persmaan dapat dituliskan menjadi

dimana k=2,3,4….,11

» t=[0:10];» a=[0,2,4,7,11,17,24,32,41,48,51];» v(1)=0;

Ansar Suyuti – ikhlas kitta 78

Page 79: Matlab Hari 1

MATLAB Terapan 1

» for k=2:11;v(k)=trapz(t(1:k),a(1:k));end» disp([t',v']) 0 0 1.0000 1.0000 2.0000 4.0000 3.0000 9.5000 4.0000 18.5000 5.0000 32.5000 6.0000 53.0000 7.0000 81.0000 8.0000 117.5000 9.0000 162.0000

10.0 211.5000

atau dalam bentuk tabel :

Waktu (t) 0 1 2 3 4 5 6 7 8 9 10Kecepatan (m/dtk) 0 1 4 9,5 18,5 32,5 53 81 117 162 211,5

Integrasi Fungsi Kuadrat

Jika integral merupakan fungsi linier, maka integrasi secara trapesium

merupakan solusi yang paling tepat, tetapi jika integral bukan fungsi

linier, maka integrasi fungsi kuadrat akan menghasilkan tingkat akurasi

yang lebih tinggi dibandingkan integrasi trapesium. Cara pendekatan

yang digunakan pada fungsi kuadrat menggunakan persamaan simpson,

yang membagi batas integrasi b - a menjadi bagian-bagian dengan jumlah

yang sama dan menggunakan perbedaan kuadrat pada tiap-tiap bagian

yang bersebelahan. MATLAB menyediakan dua fungsi untuk

menyelesaikan integrasi fungsi kuadrat yaitu : quad yang didasarkan

pada penyelesaian integrasi persamaan Simpson dan quadl yang

didasarkan penyelesaian integrasi algoritma Labatto. Syntaksnya adalah

quad ('function',a,b) dan quadl ('function',a,b)

Ansar Suyuti - ikhlas kitta 79

Page 80: Matlab Hari 1

dimana function adalah nama fungsi , a adalah batas bawah dan b adalah

batas atas integrasi

untuk lebih jelasnya dapat dilihat pada contoh .

Contoh :

=2

» A=quad('sin',0,pi)

A =

2.0000

dari hasil yang diperoleh terlihat bahwa hasil yang diperoleh dari fungsi

quad dan quadl lebih akurat dibandingkan dengan fungsi trapz, namun

fungsi quad hanya dapat digunakan untuk perhitungan integral fungsi dan

tidak dapat digunakan untuk perhitungan integral yang ditentukan

dengan nilai set point.

Differenial Numerik

Seperti yang telah ketahui bahwa, turunan dari fungsi dapat diartikan

secara grafis sebagai kemiringan dari fungsi. Algoritma sederhana untuk

perhitungan turunan numerik dapat dilihat pada gambar dibawah ini.

Ansar Suyuti – ikhlas kitta 80

Page 81: Matlab Hari 1

MATLAB Terapan 1

Dari gambar tersebut terlihat ada tiga titik data yang mewakili fungsi y(x),

maka :

diasumsikan bahwa jarak antara pengukuran teratur, yaitu

. Jika diinginkan untuk memperkirakan turunan

pada titik , maka jawaban yang benar adalah kemiringan garis lurus

yang dilewati melalui titik , tetapi ada dua titik pada garis itu

sehingga tidak dapat dicari kemiringannya. Oleh karena itu harus

diperkirakan kemiringan dengan menggunakan pendekatan pada titik-titik

data. Diperkirakan kemiringannya adalah :

perkiraan lain dapat dihasilkan dari garis lurus B. kemiringannya adalah

Nilai rata-rata dan adalah

kemiringan garis ini dinamakan C, yang menghubungkan titik pertama

dan ketiga.

MATLAB menyiapkan fungsi d = diff(x) untuk menyelesaikan persamaan

differensial, dimana x adalah nilai vektor dan hasilnya berupa vektor d

berisi diffrensial antara pendekatan elemen-elemen dalam sumbu x. Bila x

memiliki n elemen, d akan memiliki n-1 elemen, dimana d=[x(2)-x(1),

x(3)-x(2), …. , x(n)-x(n-1)]. Sebagai contoh, bila x = [ 5, 7, 12, 20], lalu

diff(x) menjadi vektor [ 2, 5, -32].

Ansar Suyuti - ikhlas kitta 81

Page 82: Matlab Hari 1

Solver ODE 23 dan ODE45

Ordenary Differential Equation (ODE), atau persamaan differensial biasa

adalah persamaan yang memiliki turunan orde dari variabel bebas.

Contoh sederhana adalah

variabel y merupakan variabel bebas, dan t merupakan tidak bebas.

Persamaan tersebut dapat diselesaikan dengan mengintegralkan

persamaan tersebut dengan variabel independent t.

hasilnya adalah

untuk selanjutnya kita gunakan notasi turunan diberi simbol "dot" /"titik",

misalnya

Penyelesaian dengan dengan fungsi ode 23 menggunakan solusi

penyelesaian persamaan differensial dengan menggunakan kombinasi

metode Runge-Kutta orde dua dan tiga dengan step-size, sedangkan ODE

45 menggunakan kombinasi metode Runge-Kutta orde empat dan orde

Ansar Suyuti – ikhlas kitta 82

Page 83: Matlab Hari 1

MATLAB Terapan 1

lima. Pada umumnya ODE 45 lebih cepat dan akurat, tetapi menggunakan

step-size yang lebih besar sehingga dapat menghasilkan plot yang tidak

sehalus dengan plot yang dihasilkan ODE 23.

Syntax dari ODE adalah

[t,y]=ode23( 'ydot', tspan, y0 )

ydot adalah nama file fungsi yang memiliki input t dan y dan mempunyai

output yang berupa vektor kolom yang memperesentasikan dy/dt, yaitu

f(t,y). baris dari vektor kolom harus sama dengan orde dari persamaan.

Syntax ODE 23 dan ODE 45 adalah solver yang identik. Vektor tspan berisi

nilai awal dan akhir dari variabel bebas t dan dapat dipilih dari nilai t

yang diinginkan, misalnya nilai t0<t<tf maka tspan adalah [t0 tf],

dimana t0 adalah nilai awal dan tf adalah nilai akhir dari variabel bebas t.

Anda juga memecahkan persamaan secara mundur dengan membuat t0

menjadi lebih besar dari tf.

Contoh Aplikasi ODE untuk penyelesaian persamaan differensial, pada

sebuah rangkaian listrik yang terdiri dari elemen R, L dan C

Elemen dari rangkaian ini adalah R=1.4 , L= 2 H, dan C =0.32 F.

Keadaan awal dari arus ini adalah 0, dan tegangan awal kapasitor 0.5

Ansar Suyuti - ikhlas kitta 83

Page 84: Matlab Hari 1

Volt. Kemudian tegangan Vs =1 Volt digunakan pada saat t =0. Carilah

niali i(t) dan v(t) untuk waktu 0<t<15 detik dan gambarlah garfik arus

dengan tegangan kapasitor.

Persamaan rangkaian Gambar 2.10 adalah

====== L di/dt =vs-Vc-Ri

di/dt= (1/L)(Vs-X1-Ri)

=(1/L) (Vs-X1-Ri)

dimana :

Xdot=[X(2)/C; 1/L*(Vs-x(1)-RX(2)]

Program File-M untuk penyelesaian persamaan differensial tersebut

adalah

Program Utama

t0= 0; tfinal =15; x0 = [0.5, 0]; tspan = [t0, tfinal]; [t,x] = ode45('electsys',tspan, x0); subplot(2,1,1),plot(t,x)title('Time response of an RLC series circuit')xlabel('t, sec')text(8,1.15,'Capacitor voltage')text(8, 0.1,'Current')

Ansar Suyuti – ikhlas kitta 84

Page 85: Matlab Hari 1

MATLAB Terapan 1

vc= x(:,1); i = x(:,2);

sub program

function xdot = electsys(t,x); V = 1; R =1.4; L = 2; C = 0.32;xdot = [x(2)/C ; 1/L*( V - x(1) - R*x(2) ) ]

Hasil programnya adalah

0 5 10 15-0.2

0

0.2

0.4

0.6

0.8

1

1.2Time response of an RLC series circuit

t, sec

Capacitor voltage

Current

Aplikasi pada pengaturan motor DC terkenali jangkar

Pengaturan kecepatan motor dc pengaturan tegangan terminal jangkar,

biasa digunakan pada sistem kontrol simpal tertutup. Diagram motor dc

pengaturan tegangan jangkar diberikan pada gambar 1. Pada gambar ini

v(t) adalah tegangan jangkar yang dianggap sebagai masukan sistem.

Resistansi dan induktansi rangkaian jangkar adalah R dan L. Tegangan

e(t) adalah tegangan yang timbul pada kumparan jangkar karana adanya

Ansar Suyuti - ikhlas kitta 85

Page 86: Matlab Hari 1

pergerakan pada kumparan di dalam magnetik motor dan biasanya

disebut emf-balik (back emf ).

Sehingga dapat dituliskan

Gambar 1. Motor DC pengaturan jangkar

dengan K adalah konstanta motor, adalah fluks medan, dan adalah

sudut poros motor, jadi adalah kecepatan sudut poros ( ), jika fluks

konstant maka .

Untuk rangkaian jangkar dapat dituliskan

Persamaan torka adalah

T (t) = K i a ( t)

Ansar Suyuti – ikhlas kitta 86

R L

V(t) eb(t)

T(t)

J

B

Page 87: Matlab Hari 1

MATLAB Terapan 1

Karena fluks diasumsikan konstan, maka dapat dituliskan

T (t) = KT i a ( t)

Persamaan tegangan motor menjadi

e(t) = Ke.(t)

Momen inersia J meliputi semua inersia yang dihubungkan ke poros motor

dan konstanta B meliputi gesekan udara dan gesekan bantalan poros,

maka persamaan toki menjadi :

atau

Subtitusi pers.(5) dan (6 ) kedalam pers. ( 3) diperoleh

diperoleh

diperoleh matriks persamaan differensial atau yang biasa disebut model

dinamik motor DC

Ansar Suyuti - ikhlas kitta 87

Page 88: Matlab Hari 1

Dengan mengganti simbol ia(t) menjadi dan menjadi , maka

dapat ditulis sebagai berikut

atau

Persamaan differensial tersebut di atas dapat diselesaikan dengan

menggunakan program file-M ode23 atau ode45 dari MATLAB.

Tabel . Parameter-parameter motor DC pengaturan jangkar, 5 HP, 230 Volt.

Parameter-parameter motor DC Parameter-parameter motor DCTahanan Jangkar (R) 0,200 Konstanta mekanik (Km) 0,7789 N.m/AInduktansi (L) 0,067 H Konstanta motor (Ke) 0,9032 V.dt/radArus jangkar nominal (Ia ) 18,3 Amp Putaran nominal ( ) 2500 rpm

Momen inersia ( J ) 0,6700 LB.FT2

0,0282 N.m.dt2/radKonstanta gesekan (B) 0,0545 N.m dt/rad

Program MATLAB-nyat0= 0; tfinal = 7; % time intervalx0 = [0, 0]; % initial conditionstspan = [t0, tfinal]; % use with MATLAB 5[t,x] = ode45('adcmotor', tspan, x0); % use with MATLAB 5i= x(:,1); w = x(:,2);subplot(2,1,1), plot(t,i),grid ontitle('Karakteristik arus jangkar Vs waktu ')xlabel('Waktu (dtk)'),ylabel('Arus jangkar (Amp.)')subplot(2,1,2),plot(t,w),grid ontitle('Karakteristik kecepatan Vs waktu ')xlabel('Waktu (dtk)'),ylabel('kecepatan (rad/det)')

subplot(111)

function xdot = adcmotor(t,x) % returns the state derivativesR=0.20; % (ohm)L = 0.67; % (Henry)Ke=0.9032; % (Volt.det/radKm=0.7789; % (N.m/Amp)B=0.0545; % (N.m.det/rad)J = 0.0282; % (N.m.det2/rad)

Ansar Suyuti – ikhlas kitta 88

Page 89: Matlab Hari 1

MATLAB Terapan 1

A=[-R/L,-Ke/L;Km/J,-B/J];B=[1/L;0];v=240;xdot = A*x+B*v;

0 1 2 3 4 5 6 7-20

0

20

40

60

80Karakteristik arus jangkar Vs waktu

Waktu (dtk)

Aru

s ja

ngka

r (A

mp.

)

0 1 2 3 4 5 6 70

100

200

300

400

500Karakteristik kecepatan Vs waktu

Waktu (dtk)

kece

pata

n (r

ad/d

et)

Ansar Suyuti - ikhlas kitta 89