Anda di halaman 1dari 30

Bab 1

Pendahuluan

1. Pengenalan MATLAB
MATLAB® adalah sebuah bahasa dengan performansi yang tinggi is a high-
performance untuk komputasi teknik. Matlab merupakan integrasi dari komputasi,
visualisasi dan pemrograman dalam perangkat yang mudah digunakan dimana
permasalahan dan penyelesaian dinyatakan dalam notasi matematik yang sudah dikenal.
Beberapa bagian yang penting di dalam Matlab:
 Matematika dan komputasi
 Pengembangan algoritma
 Modeling, simulasi dan pembuatan prototipe
 Analisa data, eksplorasi dan visualisasi
 Pengetahuan dan grafik teknik
 Pengembangan aplikasi, termasuk pembangunan GUI
MATLAB adalah sebuah sistem yang interaktif yang mempunyai elemen data dasar
dalam array.. Hal ini memungkinkan untuk menyelesaikan banyak persoalan komputasi
teknik, khususnya dimana formulasi matrik dan vektor. Terdapat juga sebuah bagian
memungkinkan untuk menuliskan program dalam bahasa yang tidak interaktif seperti C
atau Fortran.
Nama MATLAB berarti MATRIK LABORATORY. MATLAB sebenarnya ditulis
untuk dapat secara mudah mengelola program-program berbasis matrik seperti pada
proyek
LINPACK dan EISPACK. Saat ini MATLAB digunakan oleh pengembangan perangkat
lunak LAPACK and ARPACK, dimana bersama-sama menyatakan state-of-the-art
didalam perangkat lunak untuk komputasi matrik.
MATLAB telah digunakan selama beberapa tahun oleh banyak pemakai, dalam
pengembangan universitas, ini adalah perangkat instruksional standard untuk mengenal
dan mendalami lebih lanjut materi-materi matematika, teknologi dan ilmu pengetahuan.
Dalam industri, MATLAB adalah perangkat yang dipilih untuk riset pengembangan dan
analisis dalam model produktivitas yang tinggi.
Fitur-fitur MATLAB adalah keluarga dari solusi aplikasi khusus yang disebut toolboxes.
Sangat penting bagi user, toolboxes digunakan untuk mempelajari dan menerapkan
teknologi secara khusus. Toolboxes adalah koleksi komprehensif dari fungsi-fungsi
MATLAB (M-files) yang menambah fasilitas MATLAB untuk menyelesaikan beberapa
bagian permasalahan secara khusus. Bagian-bagian di dalam toolboxes terdiri dari signal
processing, control systems, neural networks, fuzzy logic, wavelets, simulation, dan
banyak lagi yang lainnya.

Belajar MATLAB
By, Agus Junaidi 1
2. Sistem MATLAB
Sistem MATLAB terdiri dari lima bagian utama yaitu:
(1) Fasilitas Pengembangan. Ini adalah sekumpulan perangkat dan fasilitas yang
membantu pemakai untuk menggunakan fungsi-fungsi dan file dalam MATLAB.
Terdiri dari banyak dari perangkat GUI, termasuk MATLAB desktop dan Command
Window, sejarah perintah, dan browsers untuk menampilkan help, the workspace,
files, and the search path.
(2) Library MATLAB untuk Fungsi-fungsi Matematika. Ini adalah koleksi yang sangat
besar dari algoritma komputasi yang diatur dalam fungsi-fungsi dasar seperti sum,
sine, cosine, and complex arithmetic, dan yang lebih kompleks seperti invers matrik,
eigen values, fungsi Bessel dan FFT (Fast Fourier transforms).
(3) Bahasa MATLAB. Ini adalah bahasa tingkat tinggi berbasis matriks dan array
dengan pernyataan kendali aliran, fungsi, struktur data, input/output dan fitur OOP
(object-oriented programming). Hal ini membuat program kelihatan kecil untuk
secara cepat mengelola keseluruhan proses dan membuat program kelihatan besar
untuk persoalan yang benar-benar kompleks dan besar.
(4) Penanganan Gafik®. MATLAB adalah sistem grafis. Di dalamnya terdapat perintah-
perintah tingkat tinggi untuk mengelola grafik 2D dan 3D baik untuk visualisasi,
image processing, animasi, and presentasi grafis. Juga terdiri dari perintah-perintah
tingkat rendah yang memungkinkan pemakai secara full membuat sendiri grafik-
grafik yang menarik dan membangun GUI yang kompleks untuk program
aplikasinya sendiri.
(5) The MATLAB Application Program Interface (API). Ini adalah library yang
mengijinkan pemakai menulis program dalam bahasa C dan Fortran yang
berinteraksi dengan MATLAB. Ini juga termasuk fasilitas untuk memanggil
prosedur/fungsi dari MATLAB seperti engine komputasi, dan untuk membaca dan
menulis MAT-files.

3. Memulai MATLAB
Pada platform Microsoft Windows, untuk memulai MATLAB dapat dilakukan dengan
double-click pada shortcut icon MATLAB pada desktop Windows. Pada platform
UNIX, untuk memulai MATLAB, tuliskan matlab pada prompt.
Setelah memulai MATLAB, akan terbuka desktop dari MATLAB. Kemudian pemakai
mengubah direktory (folder) aktif dimana file-file kerja yang akan/sudah dilakukan
ditempatkan.
Untuk menuliskan program atau perintah interaktif dilakukan pada jendela perintah
(Command Windows).
Untuk mengganti direktory dapat dilakukan pada text-box Current Direktory
Untuk melihat perintah-perintah apa yang sudah dilakukan dapat digunakan History
Windows.
Untuk mengetahui toolboxes apa saja yang ada di MATLAB dan menggunakannya,
dapat dilakukan pada jendela Launch Pad.

Belajar MATLAB
By, Agus Junaidi 2
Gambar 1. Desktop MATLAB (commond Windows)

4. Mengakhiri MATLAB
Untuk mengakhiri sesi MATLAB, pilih Exit MATLAB pada menu File dalam desktop,
atau dengan menuliskan quit pada Command Window.

Belajar MATLAB
By, Agus Junaidi 3
Bab 2
Memanipulasi Matrik

1. Matrik dan Bujursangkar Ajaib


Dalam MATLAB, matrik adalah sekumpulan bilangan yang berbentuk array empat
persegi-panjang. Pada nilai khusus terdapat skalar yang didefinisikan sebagai matrik 1×1
atau matrik yang hanya terdiri dari 1 baris yang disebut dengan matrik baris dan matrik
yang terdiri dari 1 kolom yang dinamakan dengan matrik kolom (atau disebut dengan
vektor). MATLAB mempunyai cara lain untuk menyimpan nilai-nilai numerik dan non
numerik, tetapi secara dasar bentuk matrik adalah bentuk yang direkomendasikan.
Pengolahan dalam MATLAB didesain untuk mirip dengan aslinya, dimana pada bahas
pemrograman yang lain berkerja dengan satu nilai setiap waktunya, MATLAB dapat
bekerja pada semua matrik secara cepat dan mudah. Contoh matrik yang baik, yang
digunakan dalam buku ini, seperti dalam the Renaissance Engraving Melancholia I oleh
German artist dan amateur mathematician Albrecht Dürer.

Gambar 2. Renaissance Engraving Melancholia I oleh German artist

Belajar MATLAB
By, Agus Junaidi 4
Gambar 3. Bujursangkar ajaib
Gambar ini penuh dengan simbol-simbol matematik, dan jika dilihat secara cermat akan
terlihat matrik dalam sudut kanan atas. Matrik yang dikenal sebagai Bujursangkar
Ajaib dan dipercaya oleh banyak orang mempunyai nilai-nilai yang ajaib.

2. Membuat Matrik
Untuk membuat matrik dapat dilakukan dengan menuliskan nilai-nilai dari setiap elemen
matrik pada M.File seperti contoh berikut.
Untuk membuat matrik :
16 3 2 13
 5 10 11 8 
A 
10 6 7 12
 
 4 15 14 1 
Dapat dituliskan pada matlab sebagai berikut:
File newM.file
Lalu ketik di Mfile:
A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1];
Kemudian klik debugsave and run (data disimpan
dahulu)menyimpan data jangan pakai spasi atau singkatan
Pada commond windows ketik Aenter
Dan MATLAB akan menampilkan:
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

3. Jumlahan Pada Matrik


Untuk menjumlahkan nilai-nilai pada matrik dapat dilakukan dengan menggunakan
perintah sum yang dituliskan pada command windows.

Belajar MATLAB
By, Agus Junaidi 5
Misalkan:
sum(A)
Akan ditampilkan hasilnya:
ans=
34 34 34 34
Ini adalah jumlah pada setiap kolom dari matrik A. Untuk menghitung jumlahan pada
setiap baris dari matrik A dapat dilakukan dengan perintah:
sum(A,2)
Akan ditampilkan hasilnya:
ans =
34
34
34
34

4. Transpose Matrik
Transpose matrik A dapat dituliskan dengan menambahkan apostrof (tanda petik
tunggal) pada A, seperti berikut:
A’
Hasilnya akan ditampilkan:
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 8 12 1
Untuk menghitung transpose dari matrik B yang berupa matrik kolom:
B=[3 4 12 1 5]
Hasilnya adalah:
B =
3 4 12 1 5
Dan transposenya dapat dituliskan dengan
B’
Hasilnya adalah:
ans =
3
4
12
1
5

5. Diagonal Matrik
Untuk menentukan nilai elemen-elemen pada diagonal utama dari matrik A dapat
dilakukan dengan menuliskan perintah diag(A), seperti berikut:
diag(A)
Hasilnya adalah:
ans =
16

Belajar MATLAB
By, Agus Junaidi 6
10
7
1

6. Menentukan Nilai Elemen Matrik


Untuk menentukan nilai elemen dari matrik A, dapat dituliskan dengan A(baris,kolom)
karena A adalah array 2D. Misalkan mengambil nilai A pada baris ke 3 dan kolom ke 2
maka ditulis dengan
A(3,2)
Hasilnya adalah:
ans =
6
Untuk mengambil beberapa nilai dari matrik A, maka digunakan operator colon (:),
misalkan untuk mengambil nilai A baris ke 1, kolom 2 sampai dengan 4 dapat dituliskan
dengan:
A(1,2:4)
Hasilnya adalah:
ans =
3 2 13
Untuk mengambil nilai pada baris kedua saja, dapat dilakukan dengan
A(2,:)
Hasilnya adalah:
ans =
5 10 11 8
Dan untuk mengambil nilai pada kolom ke tiga saja dapat dilakukan dengan:
A(:,3)
Hasilnya adalah:
ans =
2
11
7
14
Operator colon ini juga dapat digunakan untuk membuat deret, misalkan untuk membuat
deret 1 s/d 10 yang dimasukkan sebagai variabel D adalah:
D=1:6
Hasilnya adalah
D =
1 2 3 4 5 6
Pembuatan deret dengan langkah tertentu dilakukan dengan memasang satu tanda colon
lagi, misalkan membuat deret bilangan ganjil yang lebih kecil dari 10, dapat dituliskan
dengan:
Dganjil=1:2:10
Hasilnya adalah:
Dganjil =
1 3 5 7 9

Belajar MATLAB
By, Agus Junaidi 7
7. Bujursangkar Ajaib
Untuk mendapatkan bujursangkar ajaib dapat dilakukan dengan menuliskan magic(n),
dimana n adalah ukuran bujursangkar yang akan dibuat.
M=magic(4)
Hasilnya adalah:
M=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
Perhatikan jumlah kolom dan jumlah baris pada matrik M di atas adalah sama. Jumlahan
kolom adalah:
sum(M)
Hasilnya adalah
ans =
34 34 34 34
Jumlahan barisnya adalah:
sum(M,2)
Hasilnya adalah:
ans =
34
34
34
34

8. Membuat Matrik Nol


Untuk membuat matrik nol (matrik yang semua elemennya bernilai nol) menggunakan
perintah zeros(n) dimana n adalah ukuran matrik. Untuk membuat matrik nol berukuran
4×4 dapat ditulis:
Z=zeros(4)
Hasilnya adalah
Z =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Dan untuk membuat matrik nol berukuran 3×5 dapat ditulis:
Z=zeros(3,5)
Hasilnya adalah
Z =
0 0 0 0 0
0 0 0 0 0

Belajar MATLAB
By, Agus Junaidi 8
0 0 0 0 0

9. Membuat Matrik Uniform


Untuk membuat matrik uniform (dimana setiap elemennya bernilai sama) dapat
menggunakan perintah ones(n) atau ones(m,n) dimana m dan n adalah ukuran matrik.
Untuk membuat matrik uniform bernilai satu berukuran 4×4 dapat ditulis:
S=ones(4)
Hasilnya adalah
S =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
Untuk membuat matrik uniform bernilai 6 berukuran 3×5 dapat ditulis:
S=6*ones(3,5)
Hasilnya adalah
S =
6 6 6 6 6
6 6 6 6 6
6 6 6 6 6

10. Membuat Matrik Identitas


Untuk membuat matrik identitas dapat digunakan perintah eye(n) dimana n adalah
ukuran matrik. Untuk membuat matrik identitas berukuran 4×4 dapat ditulis:
I=eye(4)
Hasilnya adalah:
I =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

11. Penjumlahan Matrik


Untuk menjumlahkan dua matrik A dan B, dimana A dan B berukuran sama dapat
dilakukan dengan operator plus (+), Misalkan:
>> A=[2 4 3;5 2 1; 0 2 3]
A =
2 4 3
5 2 1
0 2 3

>> B=[2 6 5;1 1 1; 2 0 1]


B =
2 6 5
1 1 1

Belajar MATLAB
By, Agus Junaidi 9
2 0 1

>> C=A+B
C =
4 10 8
6 3 2
2 2 4

Operator (+) bisa juga dilakukan pada lebih dari dua matrik, misalkan :
D=A+B+C
Hasilnya:
D =
8 20 16
12 6 4
4 4 8

12. Perkalian Titik Pada Matrik


Perkalian titik dua matrik A dan B dituliskan dengan A.*B yang berarti perkalian
dlikaukan pada setiap elemen, dan ukuran A harus sama dengan ukuran B.
Didefinisikan:
 
A. * B  aij  bij im , jn
Contoh :
C=A.*B
Hasilnya adalah
C =
4 24 15
5 2 1
0 0 3

13. Perkalian Matrik


Perkalian dua matrik A dan B dituliskan dengan A*B dimana jumlah kolom A sama
dengan jumlah baris B, didefinisikan perkalian matrik sebagai berikut:
n 
A * B   aik bkj 
 k 1  im1, jm 2
dimana : m1 adalah jumlah baris pada matrik A,
m2 adalah jumlah kolom pada matrik B,
n adalah jumlah baris pada matrik B atau jumlah kolom pada matrik A
Contoh:
C=A*B
Hasilnya adalah
C =
14 16 17
14 32 28
8 2 5

Belajar MATLAB
By, Agus Junaidi 10
14. Menghitung Determinan Dari Matrik
Untuk menghitung determinan dari matrik A, dapat dilakukan dengan menuliskan
perintah:
det(A)
Hasilnya adalah
ans =
-22

15. Menghitung Nilai Eigen Matrik


Untuk menghitung nilai eigen matrik A dapat dilakukan dengan menuliskan perintah:
eig(A)
Hasilnya adalah
ans =
7.4090
-1.9398
1.5307

16. Menentukan Ukuran Matrik


Untuk menentukan ukuran matrik A dapat digunakan perintah size(A). Sebagai contoh
buatlah matrik A sebagai berikut:
A=[1 3 4 3;1 2 1 0;-2 1 1 1]
Hasilnya adalah
A =
1 3 4 3
1 2 1 0
-2 1 1 1
Untuk menentukan ukuran matrik A dapat dituliskan:
size(A)
Hasilnya adalah:
ans =
3 4
Untuk menentukan jumlah baris dari matrik A dapat dituliskan:
size(A,1)
Hasilnya adalah:
ans =
3
Untuk menentukan jumlah kolom dari matrik A dapat dituliskan:
size(A,2)
Hasilnya adalah:
ans =
4

Belajar MATLAB
By, Agus Junaidi 11
17. Reshaping
Reshaping digunakan untuk mengubah ukuran matrik, misalkan matrik A berukuran
m1×n1 akan diubah menjadi matrik B yang berukuran m2×n2, dapat dilakukan dengan
menuliskan perintah:
B=reshape(A,m2,n2)
Sebagai contoh:
A=[1 3 4 3;1 2 1 0;-2 1 1 1]
Hasilnya adalah
A =
1 3 4 3
1 2 1 0
-2 1 1 1
Ukuran matrik A dapat dituliskan:
size(A)
Hasilnya adalah:
ans =
3 4
Matrik A akan diubah menjadi matrik B yang berukuran 6×2, dapat dituliskan:
B=reshape(A,6,2)
Hasilnya adalah:
B=
1 4
1 1
-2 1
3 3
2 0
1 1
Ukuran matrik B adalah
size(B)
Hasilnya adalah:
ans =
6 2

LATIHAN 1
(1) Diketahui 3 matrik A, B dan C berikut ini:
 2 1 0 1 1 1 1 0 1 
A  3 0 3 B  1 2 1 C   2 4  2
   
0  2 1 1 1 1  0 1  1 
Tuliskan perintah untuk:
a) Menuliskan ketiga matrik di atas

Belajar MATLAB
By, Agus Junaidi 12
b) Menghitung determinan dari matrik A, B dan C
c) Menghitung diagonal dari matrik A,B dan C
d) Menghitung det(A-I) dimana I adalah matrik identitas
e) Menghitung perkalian titik A.*B dan A.*C
f) Menghitung perkalian matrik A*B dan A*C
g) Menghitung perkalian matrik C*B*A
h) Apakah A.*B = B.*A ?
i) Apakah A*B = B*A ?
j) Untuk perkalian titik, perhatikan sifat mana saja yang dapat dipenuhi, tertutup,
komutatif dan assosiatif ?
k) Untuk perkalian titik, perhatikan sifat mana saja yang dapat dipenuhi, tertutup,
komutatif dan assosiatif ?

(2) Selesaikan persamaan linier simultan berikut ini:


x + y + 2z + 3w + u =10
2x + 2y - 2z + w - u = 5
x - y + z - 3w + u = 0
2x + y + z + 2w + u = 8
x + y + z + w + u = 6
Perhatikan nilai determinan dan nilai eigen dari matrik dari persamaan linier simultan di
atas.
Carilah nilai x y z w u....?
(3) Ubahlah matrik A dibawah ini menjadi vektor V dan perhatikan apakah perbedaan
sum pada A dan sum pada V?
A =
4 8 8 8
9 5 0 5
4 2 6 7
4 6 3 4

Belajar MATLAB
By, Agus Junaidi 13
Bab 3
Structures & Cell Array

1. Structure
Structure ada array multi-dimensi dalam MATLAB dimana elemen-elemennya diaccess
dengan bentuk field.
Contoh:
S.name = 'Ed Plum';
S.score = 83;
S.grade = 'B+'
Membuat structure skalar dengan tiga field, hasilnya adalah:
S =
name: 'Ed Plum'
score: 83
grade: 'B+'
Meskipun kelihatan berbeda dalam MTALAB, structure adalah array, jadi dapat juga
ditambahkan elemen-elemen tambahan.
Like everything else in MATLAB, structures are arrays, so you can insert additional
Contoh:
S(2).name = 'Toni Miller';
S(2).score = 91;
S(2).grade = 'A-';
Ini dapat dituliskan dengan satu perintah saja:
S(3) = struct('name','Jerry Garcia',...
'score',70,'grade','C')
Sekarang structure berukuran besar dan tidak dapat lagi ditampilkan. Model tampilannya
akan menjadi:
S =
1x3 struct array with fields:
name
score
grade
Ini adalah suatu langkah untuk membangun kembaliberbagai macam field di dalam
model array yang lain. Untuk menampilkan salah satu field dalam structure S misalkan
score, dapat dituliskan dengan:
S.score
Ini akan sama hasilnya dengan menuliskan:
S(1).score, S(2).score, S(3).score
Sedangkan untuk menampilkan nilainya, dapat ditambahkan kurung kotak seperti
berikut ini:
[S.score]

Belajar MATLAB
By, Agus Junaidi 14
Ini akan sama hasilnya dengan menuliskan:
[S(1).score, S(2).score, S(3).score]

Hasilnya adalah:
ans =
83 91 70

Cara yang sama juga dapat dilakukan untuk menampilkan nilai pada field name dapat
dituliskan :
{S.name}
Hasilnya adalah:
ans =
'Ed Plum' 'Toni Miller' 'Jerry Garcia'

Untuk menampilkan nama-nama secara terpisah dapat dituliskan perintah:


char(S.name)
Hasilnya adalah:
ans =
Ed Plum
Toni Miller
Jerry Garcia

2. Multidimensional Structure Arrays


Multidimensional structure arrays adalah pengembangan dari struktur array. Model ini
dapat dibentuk secara langsung dengan menggunakan teknik yang sama dengan
structure.
Contoh
patient(1,1,1).name = 'John Doe';patient(1,1,1).billing = 127.00;
patient(1,1,1).test = [79 75 73; 180 178 177.5; 220 210 205];
patient(1,2,1).name = 'Ann Lane';patient(1,2,1).billing = 28.50;
patient(1,2,1).test = [68 70 68; 118 118 119; 172 170 169];
patient(1,1,2).name = 'Al Smith';patient(1,1,2).billing = 504.70;
patient(1,1,2).test = [80 80 80; 153 153 154; 181 190 182];
patient(1,2,2).name = 'Dora Jones';patient(1,2,2).billing = 1173.90;
patient(1,2,2).test = [73 73 75; 103 103 102; 201 198 200];

Belajar MATLAB
By, Agus Junaidi 15
Gambar 4. Contoh Multidemensi Structure Array
Untuk menggunakan fungsi dalam multidimensional structure arrays, operasional di
lakukan pada nilai-nilai field sesuai dengan nomer indeks. Sebagai contoh untuk
mendapatkan total dari field test pada paisen(1,1,2) :
sum((patient(1,1,2).test));

Hal ini dapat juga dilakukan untuk menghitung total billing dari patiens.
total = sum([patient.billing]);

3. Cell Arrays
Cell arrays dalam MATLAB adalah multidimensional arrays dimana semua elemennya
adalah salinan dari array-array yang lain. Sebuah cell array dari matrik-matrik kosong
dapat dibuat dengan fungsi cell. Sebagai contoh untuk menghasilkan sebuah cell-array C
yang dikembangkan dari matrik A dengan ukuran 4×4, maka terlebih dahulu buatlah
matrik A, contohnya
A=[9 0 1 2;9 3 2 1; 4 8 1 0;8 0 6 7]
Hasilnya:
A =
9 0 1 2
9 3 2 1
4 8 1 0
8 0 6 7
Dan kemudian dibuat cell array C seperti berikut:
C = {A sum(A) prod(prod(A))}
Menghasilkan 1×3 cell array.
Hasilnya adalah:
C =
[4x4 double] [1x4 double] [20922789888000]

Untuk menampilkan matrik A yang ada dalam cell-array C dapat dituliskan:

Belajar MATLAB
By, Agus Junaidi 16
C{1,1}
Hasilnya adalah:
ans =
9 0 1 2
9 3 2 1
4 8 1 0
8 0 6 7

Untuk menghapus nilai pada cell-array misalkan C(1,1) dapat dilakukan dengan
menuliskan:
C{1,1}= []
Hasilnya adalah:
C =
[] [1x4 double] [0]

Cell-array dapat juga diubah ukurannya (reshape) dengan cara yang sama dengan cara
reshape pada matrik dan vektor. Contoh:

A = cell(3,4);
size(A)
Hasilnya adalah
ans =
3 4
Reshaping dapat dilakukan dengan:
B = reshape(A,6,2);
size(B)
ans =
6 2

4. Mengubah Bentuk Structure Dan Cell-Array


Untuk mengubah bentuk structure menjadi cell-array dapat digunakan perintah
c=struct2cell(s) dimana s adata bentuk struktur dan c adalah bentuk cell-array.
Contoh:
Membersihkan nilai s:
clear s
Membuat struktur s:
s.category = 'tree';
s.height = 37.4; s.name = 'birch';
Hasilnya adalah:
s =
category: 'tree'
height: 37.4000
name: 'birch'
Mengubah bentuk structure s menjadi bentul cell-array c:
s=struct2cell(c)
Hasilnya adalah

Belajar MATLAB
By, Agus Junaidi 17
c =
'tree'
[37.4000]
'birch'

Untuk mengubah bentuk cell-array menjadi structure dapat dilakukan dengan perintah
cell2struct. Misalkan bentuk c tadi akan diubah menjadi structure s1, maka dituliskan:
fields={‘category’,’height’,’name’};
s1=cell2struct(c,fields,1)
Hasilnya adalah:
S1 =
category: 'tree'
height: 37.4000
name: 'birch'

LATIHAN 2
(1) Buatlah struktur untuk menyimpan nrp, nama, nilai mata kuliah semester itu. Beri
contoh 5 data, misalkan:
nrp nama nilai semester ini
740001 Bagong 75 60 80 80 65
740002 Arjuna 80 75 80 76 70
740003 Bimasena 60 90 60 60 90
740004 Semar 80 60 70 75 80
740005 Petruk 65 65 65 70 70

(2) Buatlah cell array yang menyimpan matrik A berukuran 3×4, jumlah baris A dan
jumlah baris B, misalkan:
4 1 2 0
A  3 1  1 1
2 1 3 4

(3) Buatlah structure cell array dengan nama net yang berisi field-field berikut ini:
functions:
adaptFcn: 'trains'
initFcn: 'initlay'
performFcn: 'mse'
trainFcn: 'trainlm'

parameters:
adaptParam: .passes
initParam: (none)
performParam: (none)
trainParam: .epochs, .goal, .max_fail, .mem_reduc,
.min_grad, .mu, .mu_dec, .mu_inc,
.mu_max, .show, .time

weight and bias values:

Belajar MATLAB
By, Agus Junaidi 18
IW: {2x1 cell} containing 1 input weight matrix
LW: {2x2 cell} containing 1 layer weight matrix
b: {2x1 cell} containing 2 bias vectors
Isilah field epochs, goal, mu dari structure cell-array di atas dengan nilai 10000, 1, 0.1.

Bab 4
Fungsi-Fungsi Dalam Matlab
MATLAB tidak hanya menyediakan fungsi-fungsi untuk matrik saja, tetapi juga
menyediakan fungsi-fungsi matematika, grafik, statistik dan lain-lain. Untuk fungsi
matematik, logika dan statistik, hampir semua fungsi sudah disediakan oleh MATLAB,
hanya tinggal menggunakan saja.

1. Fungsi-Fungsi Matematika
Fungsi matematika secara umum, dibagi menjadi beberapa bagian yaitu:
(1) Trigonometric
(2) Exponensial
(3) Complex
(4) Rounding and Remainder
(5) Discrete Math (e.g., Prime Factors)

Fungsi-Fungsi Trigonometrik
acos, acosh : Invers dari cosinus dan invers cosinus hiperbolik
acot, acoth : Invers dari cotangent dan invers cotangent hiperbolik
acsc, acsch : Invers dari cosecant dan invers cosecant hiperbolik
asec, asech : Invers dari secant dan invers secant hiperbolik
asin, asinh : Invers dari sinus dan invers sinus hiperbolik
atan, atanh : Invers dari tangen dan invers tangen hiperbolik
atan2 : Invers tangen pada kuadran 4
cos, cosh : Cosinus dan cosinus hiperbolik
cot, coth : Cotangent dan cotangent hiperbolik
csc, csch : Cosecant dan cosecant hiperbolik
sec, sech : Secant dan secant hiperbolik
sin, sinh : Sinus dan sinus hiperbolik
tan, tanh : Tangent dan tangent hiperbolik

Belajar MATLAB
By, Agus Junaidi 19
Fungsi-Fungsi Exponensial
exp : Exponensial
log : Logaritma alam
log2 : Logaritma dengan bilangan dasar 2
log10 : Logaritma dengan bilangan dasar 10
nextpow2 : Pangkat 2 berikutnya yang lebih tinggi
pow2 : Exponensial dengan bilangan dasar 2
sqrt : Akar

Fungsi-Fungsi Complex
abs : Nilai absolute
angle : sudut phase
complex : membangun bilangan komplek yang terdiri real dan imajiner
conj : Conjugate
imag : Bagian imajiner
isreal : Cek untuk bagian real
real : Bagian real

Fungsi-Fungsi Rounding dan Remainder


fix : Membulatkan ke arah nol
floor : Membulatkan ke bawah
ceil : Membulatkan ke atas
round : Membulatkan ke bilangan bulat terdekat
mod : Sisa pembagian
sign : Tanda negatif/positif

Fungsi-Fungsi Discrete Math (e.g., Prime Factors)


factor : Faktor bilangan prima
factorial : Fungsi faktorial
gcd : Faktor pembagian terbesar
isprime : cek bilangan prima
lcm : Faktor persekutuan terkecil
nchoosek : Kombinasi (n,k)
perms : Permutasi
primes : Menampilkan bilangan prima

Contoh 1 :
Untuk menentukan faktor-faktor prima dari 120 dituliskan:
factor(120)
Hasilnya adalah:
ans =
2 2 2 3 5

Contoh 2:
Untuk menentukan bilangan prima yang lebih kecil dari 50 adalah:
primes(50)

Belajar MATLAB
By, Agus Junaidi 20
Hasilnya adalah:
ans =
Columns 1 through 12
2 3 5 7 11 13 17 19 23 29 31 37
Columns 13 through 15
41 43 47

Contoh 3:
Untuk menampilkan nilai sinus 0, /2, , 3/2, dan 2 adalah:
x=0:pi/2:2*pi;
y=sinus(x)
Hasilnya adalah:
ans =
0 1.0000 0.0000 -1.0000 -0.0000

2. Fungsi-Fungsi Statistik
Fungsi-Fungsi Statistik Deskriptif
corrcoef - Correlation coefficient.
cov - Covariance
geomean - Geometric mean.
harmmean - Harmonic mean.
hist - Histogram
kurtosis - Kurtosis.
mad - Median Absolute Deviation.
mean - Sample average (in matlab toolbox).
median - 50th percentile of a sample.
moment - Moments of a sample.
range - Range.
skewness - Skewness.
std - Standard deviation ((in matlab toolbox).
tabulate - Frequency table.
trimmean - Trimmed mean.
var - Variance (in matlab toolbox).

Fungsi-Fungsi Ekspektasi
betastat - Beta mean and variance.
binostat - Binomial mean and variance.
chi2stat - Chi square mean and variance.
expstat - Exponential mean and variance.
fstat - F mean and variance.
gamstat - Gamma mean and variance.
geostat - Geometric mean and variance.
hygestat - Hypergeometric mean and variance.
lognstat - Lognormal mean and variance.
nbinstat - Negative binomial mean and variance.
normstat - Normal (Gaussian) mean and variance.

Belajar MATLAB
By, Agus Junaidi 21
poisstat - Poisson mean and variance.
raylstat - Rayleigh mean and variance.
tstat - T mean and variance.
unidstat - Discrete uniform mean and variance.
unifstat - Uniform mean and variance.
weibstat - Weibull mean and variance.

Fungsi-Fungsi Pembangkitan Bilangan Acak


betarnd - Beta random numbers.
binornd - Binomial random numbers.
chi2rnd - Chi square random numbers.
exprnd - Exponential random numbers.
frnd - F random numbers.
gamrnd - Gamma random numbers.
geornd - Geometric random numbers.
hygernd - Hypergeometric random numbers.
lognrnd - Lognormal random numbers.
mvnrnd - Multivariate normal random numbers.
mvtrnd - Multivariate t random numbers.
nbinrnd - Negative binomial random numbers.
normrnd - Normal (Gaussian) random numbers.
poissrnd - Poisson random numbers.
random - Random numbers from specified distribution.
raylrnd - Rayleigh random numbers.
trnd - T random numbers.
unidrnd - Discrete uniform random numbers.
unifrnd - Uniform random numbers.
weibrnd - Weibull random numbers.

Fungsi-Fungsi Testing Hipotesa


ranksum - Wilcoxon rank sum test (independent samples).
signrank - Wilcoxon sign rank test (paired samples).
signtest - Sign test (paired samples).
ztest - Z test.
ttest - One sample t test.
ttest2 - Two sample t test.

Fungsi-Fungsi Testing Distribusi


jbtest - Jarque-Bera test of normality
kstest - Kolmogorov-Smirnov test for one sample
kstest2 - Kolmogorov-Smirnov test for two samples
lillietest - Lilliefors test of normality

Contoh 3:
Buatlah 10 bilangan acak yang berdistribusi normal, lalu hitung rata-rata dan variansnya.
x=randn(1,10)

Belajar MATLAB
By, Agus Junaidi 22
rata2=mean(x)
varian=var(x)
Hasilnya adalah:
x =
Columns 1 through 7
-0.4326 -1.6656 0.1253 0.2877 -1.1465 1.1909 1.1892
Columns 8 through 10
-0.0376 0.3273 0.1746
rata2 =
0.0013
varian
0.8162

Contoh 4:
Buatlah 10 bilangan acak, uji apakah bilangan acak tersebut berdistribusi normal dengan
rata-rata 0.5 dan tingkat kepercayaan 0.05.
>> x=rand(1,10)
x =
Columns 1 through 7
0.5936 0.4966 0.8998 0.8216 0.6449 0.8180 0.6602
Columns 8 through 10
0.3420 0.2897 0.3412
>> m=mean(x)
m =
0.5908
>> H=ttest(x,0.5,0.05,0)
H =
0
Pengujian yang dilakukan adalah pengujian rata-rata dengan T-test. Karena H=0, maka
hipotesa diterima.

Contoh 5:
Diketahui jumlah kedatangan mobil di bundaran ITS setiap 5 menit dimulai jam 10.00
adalah:
x = [10 5 8 7 9 3 5 4 7 3 4 2 1]
Ekspektasi ada 3 yaitu rata-rata, varians dan skewness
rata2=mean(x)
varian=var(x)
skew=skewness(x)
Hasilnya adalah:
m =
5.2308
varian =
7.6923
s =
2.7735
skew =
0.2396

Belajar MATLAB
By, Agus Junaidi 23
Dari hasil ekspektasi di atas, dapat dikatakan bahwa jumlah mobil yang lewat di
bundaran ITS adalah antara 2 sampai dengan 8 (mean-std s/d mean+std), dengan
kecenderungan turun (skew<1)

3. Fungsi-Fungsi Grafik
box : Axis box for 2-D and 3-D plots
errorbar : Plot graph with error bars
hold : Hold current graph
loglog : Plot using log-log scales
polar : Polar coordinate plot
plot : Plot vectors or matrices.
plot3 : Plot lines and points in 3-D space
plotyy : Plot graphs with Y tick labels on the left and right
semilogx : Semi-log scale plot
semilogy : Semi-log scale plot
subplot : Create axes in tiled positions

Contoh 6:
Gambarkan grafik y=sin(3x) untuk x=0 s/d 2
x=0:0.1:2*pi;
y=sin(3*x);
plot(x,y)
grid
Hasilnya adalah:

Gambar 5. Grafik sin(3x)


Terlihat bahwa hasil gambarnya putus dan tidak dapat memenuhi layar, Untuk
memperbaiki hasil grafik ini dapat diatur batas sumbu koordinatnya dengan
menggunakan perintah axis([x1 x2 y1 y2]) dimana x1 dan x2 adalah batas untuk sumbu
x, y1 dan y2 adalah batas untuk sumbu y.
Tuliskan perintah:
axis([0 2*pi -1 1])
Hasilnya adalah:

Belajar MATLAB
By, Agus Junaidi 24
Gambar 6. Grafik sinus dengan perbaikan sumbu koordinat

Contoh 7:
Gambarlah grafik polar untuk menggambarkan rose 4 daun dengan menggunakan fungsi
polar r=sin(2*)
teta=0:0.01:2*pi;
r=sin(2*teta);
polar(teta,r)
Hasilnya adalah:

Gambar 7. Grafik rose 4 daun

LATIHAN
(1) Buatlah grafik 1-e-at dimana 0<t<10 dengan step 0.1 dan a=0.5

Belajar MATLAB
By, Agus Junaidi 25
(2) Buatlah gambar roda pada logo ITS

Gambar 8. Logo ITS dengan koordinat polar

Bab 5
Membuat Program Sederhana Dan Pengolahan File

1. Menyimpan Data Ke File


Untuk menyimpan data matrik ke file dapat dilakukan dengan menggunakan perintah
save nama_file nama_variabel. Syaratnya adalah ukuran matrik harus sama. Misalkan
menyimpan matrik :
 2 1  1 2
A  3 1 0 3
1 2 1 0
Perintahnya adalah:
A=[2 1 -1 2;3 1 0 3;1 2 1 0];
save data1 A
Perhatikan pada folder aktif, terdapat file data1.

2. Memanggil Data Dari File


Untuk memanggil data dari file dapat dilakukan dengan menggunakan perintah load
nama_file. Variabelnya akan mengikuti variabel yang digunakan pada waktu
penyimpanan.
load data1
Untuk melihat variabel yang aktif gunakan perintah whos:
whos
Hasilnya adalah:

Belajar MATLAB
By, Agus Junaidi 26
Name Size Bytes Class
A 3x4 96 double array
Grand total is 12 elements using 96 bytes
Terdapat 1 variabel A yang berupa matrik berukuran 3×4.
Ketikkan A
Hasilnya adalah:
A =
2 1 -1 2
3 1 0 3
1 2 1 0

3. M-File
Salah satu file penting di dalam MATLAB adalah M-File, file ini adalah file program
yang dapat dijalankan dalam lingkungan MATLAB, dan dinamakan dengan M-File
karena nama ekstensinya adalah .M.
Program adalah sekumpulan perintah yang disusun sedemikian hingga dapat menjalan
suatu tugas tertentu. Karena itulah dalam M-File, terisi perintah-perintah MATLAB
yang secara kesatuan menjalankan suatu tugas tertentu.
Sebagai contoh:
x=0:10
y=x.^2-2.*x+1;
plot(x,y)
Program ini berfungsi untuk menggambar fungsi kuadrat y=x2-2x+1 untuk x=0,1,2,...10,
program ini disimpan dalam M-File misalkan dengan nama kuadrat.m, untuk
menjalankan program M-File cukup dituliskan nama filenya, jadi untuk contoh diatas
tinggal menuliskan kuadrat pada command windows, akan dapat menjalankan program.
Langkah-langkah untuk membuat M-File baru: Pilihlah new file dengan memilih icon
new pada menu yang ada di bagian kiri atas layar.

New File Open File

Gambar 9. Tampilan menu pada desktop MATLAB


Untuk membuka M-file dapat dipilih menu Open File pada menu desktop MATLAB di
sudut kiri atas layar.

3. Membuat Program Sederhana


Contoh program 1:

Belajar MATLAB
By, Agus Junaidi 27
Membuat program di dalam MATLAB untuk menentukan akar persamaan kuadrat
dengan memasukkan nilai konstanta pada persamaan kuadrat. Alur program adalah
sebagai berikut :

Nilai a,b,c Proses Nilai x1 dan x2


Perhitungan Akar

Gambar 10. Diagram alir untuk program persamaan kuadrat


Tuliskan M-File dengan program berikut:
%Input
a=input('a = ');
b=input('b = ');
c=input('c = ');

%Menentukan persamaan kuadrat


p=[a b c];

%Menentukan akar persamaan kuadrat


x=roots(p);

%Menampilkan hasil akar


fprintf('Akar persamaan kuadrat:\n');
fprintf(' x1 = %1.3f\n',x(1));
fprintf(' x2 = %1.3f\n',x(2));

Simpan program ini ke dalam M-File dengan nama file akar2.m. Untuk menjalankan
program ini ketikkan:
akar2
Contoh hasil dengan memasukkan a=1, b=4 dan b=3 adalah:
a = 1
b = 4
c = 3
Akar persamaan kuadrat:
x1 = -3.000
x2 = -1.000

Contoh program 2:
Membuat program untuk mendapatkan suatu kurva polynomial yang melewati semua
titik data, sebagai contoh diketahui titi-titik data sebagai berikut:
x(i) 1 4 7 9
y(i) 8 4 5 1
Hasil program berupa polynomial, dan grafik yang berupa grafik data dengan simbol
lingkaran dan grafik fungsi pendekatan dalam garis.
Tulislah program berikut:
%Input data berupa vektor
x=input('x = ');
y=input('y = ');

Belajar MATLAB
By, Agus Junaidi 28
n=size(x,2);

%Menggambar data
plot(x,y,'o')

%Menghitung polynomial pendekatan


p=polyfit(x,y,n-1)

%Menghitung nilai minimal, minimal dan step pada x


xmin=min(x);
xmaks=max(x);
dx=(xmaks-xmin)/100;

%Menghitung kurva dengan polynomial pendekatan yang dihasilkan


%dari xmin sampai xmaks dengan step dx
u=xmin:dx:xmaks;
z=p(n)*ones(size(u));
for i=n-1:-1:1
z=z+p(i)*u.^(n-i);
end

%Menggambar kurva pendekatan


hold on
plot(u,z,'r')
Simpan program ini dalam file kurvafit.m, untuk menjalankan ketikkan nama filenya.
kurvafit
Contoh hasilnya adalah:
x = [1 4 7 9]
y = [8 4 5 1]
p=
-0.0931 1.3944 -6.3514 13.0500
Dan grafiknya adalah:

Belajar MATLAB
By, Agus Junaidi 29
Gambar 11. Contoh hasil kurva fitting

3. Membuat Fungsi Sendiri


Pada dasarnya hampir semua fungsi matematik standard sudah disediakan oleh
MATLAB, tetapi MATLAB masih mengijinkan pemakai untuk membuat fungsi sendiri,
karena banyak pemakai yang justru membutuhkan fungsi yang tidak disediakan oleh
MATLAB, contohnya fungsi menghitung jarak antara dua matrik A dan B
Berikut ini adalah contoh fungsi untuk menghasilkan jarak antara dua matrik A dan B
dengan rumus jarak euclidian:
d  a  bij 
2
ij
i j

function d=jarak(A,B)
% Fungsi untuk menghitung jarak antara dua matik
%
d=sqrt(sum(sum(A-B).^2));
Simpanlah program di atas dengan nama file yang sama dengan nama fungsinya yaitu
jarak.m
Untuk menjalankan fungsi ini, pertama kali dibuat matrik A dan B yang berukuran sama,
contohnya sebagai berikut:
A=[1 3 2 1;5 6 4 3;0 2 1 0]
B=[1 1 1 1;5 4 3 2;0 1 2 1]
Kemudian ketikkan seperti aturan umum fungsi di dalam MATLAB:
jarak(A,B)
Hasilnya adalah:
ans =
5.0990

Belajar MATLAB
By, Agus Junaidi 30

Anda mungkin juga menyukai