Anda di halaman 1dari 46

i

KATA PENGANTAR

Assalamualaikum warrahmatullahi wabarakatuh…

Puji syukur penulis panjatkan atas kehadirat Allah SWT. yang telah memberikan
rahmat dan petunjuk-Nya, sehingga penulis dapat menyelesaikan modul ini dengan baik.
Modul ini disusun sebagai bahan pendamping perkuliahan Paket Komputasi semester 3,
Unmuh Ponorogo jurusan matematika.

Matematika selalu dihubungkan dengan alur pemikiran yang sistematis dan juga
logis. Kelebihan tersebut menjadikan mahasiswa matematika mempunyai keunggulan dalam
menyelesaikan masalah. Langkah-langkah yang diambil dalam menyelesaikan suatu
permasalahan setiap orang pasti berbeda. Hal ini tidak berpengaruh jika masalahnya
sederhana, akan tetapi jika kompleks tentunya akan menjadi masalah baru. Inilah pentingnya
menyusun langkah-langkah yang efisien.

Modul ini merupakan lanjutan dari modul C++ pada semester 2. Pada matkul
sebelumnya kita menggunakan C++ untuk menguji kebenaran dari algoritma yang telah
dibuat. Pada modul kali ini kita menggunakan Matlab untuk menguji algoritma. Selain itu
juga diberikan dasar-dasar penggunaan matlab smpai pada menggambar grafik serta
pemrograman M-File.

Penulis berharap dengan adanya modul ini dapat bermanfaat bagi mahasiswa
semuanya. Penulis menyadari bahwa modul ini masih banyak mengalami kekurangan. Untuk
itu penulis mengharapkan saran dan kritik yang membangun.

Penulis

ii
DAFTAR ISI

HALAMAN JUDUL .................................................................................................................. i


KATA PENGANTAR ...............................................................................................................ii
DAFTAR ISI ............................................................................................................................ iii
BAB I
PENDAHULUAN ..................................................................................................................... 1
1.1. Apakah MATLAB? ..................................................................................................... 1
1.2. Memulai dan Mengakhiri MATLAB .......................................................................... 2
1.3. Tampilan MATLAB .................................................................................................... 2
BAB 2
EKSPRESI MATEMATIKA PADA MATLAB ....................................................................... 4
2.1. Variabel ........................................................................................................................... 4
2.2. Bilangan .......................................................................................................................... 6
2.3. Operator........................................................................................................................... 6
2.4. Fungsi dan kontanta pada matlab .................................................................................... 7
2.5. Kesalahan input ............................................................................................................. 10
2.6. Format Tampilan ........................................................................................................... 10
BAB 3
VEKTOR DAN MATRIKS ..................................................................................................... 12
3.1. Vektor ............................................................................................................................ 12
3.2. Operator kolon dan array............................................................................................... 14
3.3. Matriks .......................................................................................................................... 15
3.4. Elemen Baris-Kolom Matriks ....................................................................................... 16
3.5. Fungsi sum, diag, inv, det dan transpose matriks.......................................................... 17
3.6. Matriks-matriks Penting pada MATLAB ..................................................................... 18
3.7. Memperbesar Matriks ................................................................................................... 20
3.8. Operasi pada Matriks dan Array ................................................................................... 21
BAB 4
GRAFIK FUNGSI ................................................................................................................... 24
4.1. Grafik dua dimensi ........................................................................................................ 24
4.2. Grafik tiga dimensi ........................................................................................................ 28
BAB 5
PEMROGRAMAN DENGAN MATLAB .............................................................................. 34
5.1. m-file ............................................................................................................................. 34
5.2. Pengendali alur ( flow control)...................................................................................... 36
5.2.1. if - elseif - else - end ................................................................................................... 37
5.2.2. switch - case - otherwise - end ................................................................................... 38
5.2.3. for - end ...................................................................................................................... 39
5.2.4. while - end .................................................................................................................. 41

iii
BAB I
PENDAHULUAN

1.1. Apakah MATLAB?


MATLAB adalah bahasa pemrograman dengan performa tinggi untuk komputasi teknis.
MATLAB menggabungkan tiga unsur : komputasi, visualiasasi dan pemrograman ke dalam
satu wadah. Masalah dan penyelesaian pada MATLAB diekspresikan dalam simbol
matematika yang familiar. Penggunaan MATLAB mencakup :

 Matematika dan komputasi


 Pengembangan algoritma
 Pemodelan, simulasi dan prototype
 Analsis data, eksplorasi dan visualisasi
 Grak saintik dan keteknikan
 Pengembangan penggunaan, termasuk pembuatan Graphical User Interface (GUI)
yang memudahkan pemakai dalam memasukkan data dan melihat hasil keluaran suatu
program.

MATLAB merupakan singkatan dari matrix laboratory. MATLAB merupakan sistem


interakif dengan elemen basis data berupa array yang tidak membutuhkan dimensi. Oleh
karena itu, MATLAB mampu menyelesaikan banyak masalah komputasi teknis, khususnya
masalah yang dapat diformulasikan dalam bentuk matriks dan vektor.

Penggunaan MATLAB dewasa ini sangat luas, tidak hanya di bidang pendidikan tinggi
tetapi sudah banyak digunakan pada bidang industri. Pada beberapa topik tertentu yang
banyak digunakan pada bidang sains dan teknologi telah diciptakan sejumlah toolbox pada
MATLAB, seperti signal processing, control systems, neural networks, fuzzy logic,
wavelets, simulation, finance dan banyak lagi yang lainnya.

Sistem pada MATLAB terdiri dari lima bagian utama, yaitu:

 Development Environment, yaitu kumpulan alat dan fasilitas yang diperlukan


untuk menggunakan file dan fungsi MATLAB. Bagian ini terdiri dari desktop dan
command window, command history, editor dan debugger, dan browser untuk
bantuan, workspace, files, dan search path.
 Mathematical Function Library, yaitu kumpulan algoritma komputasi mulai dari
fungsi sederhana seperti sum, sin, cosin, dan aritmatika bilangan kompleks sampai
fungsi lebih rumit seperti invers matriks, nilai eigen matriks, fungsi bessel,
transformasi Fourier cepat, dll.
 MATLAB Language, yaitu bahasa matriks/array yang terdiri dari control flow
statements, functions, data structures, input/output, and object oriented
programming features. Oleh karena itu MATLAB dapat digunakan dalam
pemrograman dari masalah sederhana sampai masalah yang sangat kompleks.
 Handle Graphics, yaitu berupa fasilitas untuk penyajian vektor dan matriks
sebagai grafik, termasuk anotasi dan pencetakan grafik tersebut. Ia juga memuat

1
fungsi untuk visualisasi data baik dua dimensi maupun tiga dimensi, pemrosesan
citra/gambar, animasi dan grafik presentasi. Pengaturan tampilan grafik dan juga
pembuatan GUI telah tersedia pada bagian ini.
 Application Program Interface(API), yaitu fasilitas yang dapat digunakan untuk
menginteraksikan program yang ditulis dalam bahasa C, Fortran dan MATLAB. Ia
juga memuat fasilitas untuk pemanggilan routines dari MATLAB (dynamical
linking), pemanggilan MATLAB sebagai mesin hitung, dan untuk pembacaan dan
penulisan MAT-files.
1.2. Memulai dan Mengakhiri MATLAB
Untuk mengaktifkan MATLAB, cukup diklik dua kali icon shortcut MATLAB pada
desktop window atau melalui kelompok program pada MENU START. Sedangkan untuk
keluar dari MATLAB, pilih Exit MATLAB dari menu File pada desktop, atau ketik quit
pada CommandWindow.

1.3. Tampilan MATLAB


Ketika pertama kali kita memulai MATLAB akan muncul desktop MATLAB yang
memuat alat-alat untuk pengolahan file, variabel dan aplikasi apapun yang berakitan
dengan MATLAB. Desktop yang muncul sebagai berikut.

Tampilan ini dapat diubah sesuai selera yaitu dengan cara membuka, menutup atau
memperbesar/memperkecil ukuran window yang tersedia.

• Command Window, Fungsi dari Command Window adalah untuk memasukkan


variabel dan menjalankan fungsi MATLAB dan M-files.
• Command History, Baris-baris yang telah kita buat pada Command Window selalu
tercantum pada Command History sehingga kita dapat melihat, dan mengambil
kembali baris yang telah digunakan sebelumnya.
• Launch Pad, Berfungsi untuk memudahkan dalam mengakses fasilitas, demonstrasi
dan dokumentasi pada MATLAB.

2
• Help browser, Fungsi dari browser adalah untuk mencari dan melihat dokumen pada
MATLAB yang diperlukan untuk minta bantuan. Untuk mengaktifkan sarana ini klik
tombol tandatanya pada toolbar, atau ketik helpbrowser pada Command WIndow.
• Current Directory, Apapun file yang akan dijalankan haruslah terletak pada
direktori yang sedang aktif atau berada pada search path titik acuan. Untuk melihat,
membuka atau mengedit file-file MATLAB kita dapat menggunakan Current
Directory browser, atau dengan menggunakan perintah dir, cd, dan delete.
• Workspace Browser, Workspace Browser pada MATLAB terdiri dari kumpulan
variabel (nama array) yang didefinisikan ketika sedang menggunakan MATLAB dan
tersimpan di dalam memory. Untuk mengetahui variabel yang sedang aktif beserta
karakterisasinya kita dapat menggunakan Workspace Browser atau dengan mengetik
who atau whos pada Command Window. Ingat, variabel ini hanya aktif sementara
yaitu sepanjang belum keluar MATLAB. Bila kita sudah keluar MATLAB maka
semua variabel yang telah didefinisikan akan hilang. Bila variabel tersebut masih
akan digunakan lagi maka variabel tersebut dapat disimpan dengan memilih Save
Workspace As dari Menu File.
• Array Editor, Bila kita mengklik double variabel padaWorkspace Browser maka
akan muncul Array Editor. Editor ini dapat digunakan untuk mengedit data yang ada
pada array tersebut.
• Editor/Debugger, Editor/Debugger digunakan untuk membuat M-files dan
menjalankan proses debugging. Sesungguhnya M-file dapat dibuat pada text editor
apapun tetapi untuk proses debugging tetap harus menggunakan MATLAB
Editor/Debugger.

3
BAB 2
EKSPRESI MATEMATIKA PADA MATLAB

Pada dasarnya data numerik pada MATLAB berbentuk matriks. Pendefinisian matriks
akan diberikan pada bab selanjutnya. Untuk sementara pada bab ini kita hanya berurusan
dengan bilangan atau skalar.Secara garis besar, ekspresi matematika pada MATLAB terdiri
dari empat macam, yaitu :

1. Variabel
2. Bilangan
3. Operator
4. Fungsi

2.1. Variabel
Variabel MATLAB tidak membutuhkan deklarasi ataupun statemen dimensi. Penulisan
variabel dimulai dengan hurup, dapat diikuti dengan hurup atau angka atau underscore.
MATLAB hanya dapat mengenal 31 karakter pertama dari nama variabel. Contoh : bila
pada command windows diketik
>> Jumlah_nilai=270
Tekan enter, maka akan diperoleh :
Jumlah_nilai=
270
Di sini Jumlah_nilai adalah nama variabel yang disimpan pada workspace dengan nilai
270. Bila terdapat variabel baru dengan nama sama maka secara otomatis nilai variabel
lama akan terhapus dan berlaku nilai variabel baru. MATLAB sangat sensitif dalam
membaca variabel, ia membedakan antara hurup besar dan hurup kecil. Contoh : x dan X
adalah dua variabel yang berbeda. Pada satu baris kita dapat mendefinsikan lebih dari satu
variabel dengan cara memberikan tanda koma (,) diantara dua variabel. Sebagai contoh:
>>x =23, X=73
maka akan muncul
x=
23
X =
73
Semua variabel yang telah didefinisikan tersimpan di dalam workspace. Bila kita ingin
melihat kembali variabel apa saja yang telah tersimpan dapat dilihat pada workspace, atau
pada command window ketik who atau whos. Sebagai contoh bila diketik perintah whos
dan tekan enter maka diperoleh :

4
>> whos
Name Size Bytes Class
X 1x1 8 double array
Jumlah_nilai 1x1 8 double array
x 1x1 8 double
array Grand total is 3 elements using 24 bytes
Jadi kita telah mempunyai tiga variabel dengan nama X, Jumlah_nilai, dan x. Ketiga
varibel adalah skalar yaitu matriks dengan ukuran 1x1. Masing- masing variabel
membutuhkan 8 byte untuk ukuran file, jadi total space yang dibutuhkan adalah 24 byte.
Untuk mengetahui kembali nilai variabel tersebut cukup diketik nama variabelnya. Sebagai
contoh :
>> Jumlah_nilai
Jumlah_nilai =
270
Sebagaimana telah dijelaskan bahwa variabel-variabel yang telah didefinisikan tidaklah
permanen tersimpan pada workspace. Untuk menyimpan variabel digunakan perintah
>>save {nama file}
untuk menyimpan semua variabel dan
>>save {nama file} {nama variabel} {nama variabel}
untuk menyimpan variabel tertentu saja. Sebagai contoh
>> save fileku Jumlah_nilai
Jumlah_nilai =
25
akan menyimpan variabel Jumlah_nilai dalam fileku.mat. Untuk membersihkan command
window gunakan perintah
>>clc
sedangkan untuk menghilang semua variabel yang ada pada command window gunakan
perintah
>>clear
Jadi perintah
>>clear
>>clc
akan membersihkan command window dan menghapus semua variabel yang telah
tersimpan pada workspace. Dalam kasus ini semua variabel tidak bisa di panggil lagi,
kecuali variabel yang telah disimpan. Untuk memanggil kembali variabel yang tersimpan
dalam mat.file, gunakan perintah
>>load {nama file}
Contoh
>> load fileku

5
akan mengaktifkan kembali variabel Jumlah_nilai yang tersimpan di dalam file fileku.

Table 2.1: Operator pada Matlab

Lambang Arti
Penjumlahan
Pengurangan
Perkalian
Pembagian Biasa
Pembagian Kiri
Pangkat
Kompleks Konjugat Atau Transpose Matriks

2.2. Bilangan
Bilangan pada MATLAB menggunakan notasi desimal biasa, menggunakan titik desimal,
tanda plus atau tanda minus. Notasi saintifik menggunakan hurup e untuk menyatakan
pangkat 10. Bilangan imaginer dinyatakan dengan hurup atau . contoh : Beberapa contoh
bilangan yang berlaku pada MATLAB:

Semua bilangan tersimpan secara internal dengan meng-gunakan format long yang
dispesifikasi oleh standar titik mengambang (floating-point) IEEE. Bilangan titik
mengambang mempunyai presisi kira-kira 16 digit desimal signifikan dan jangkauan antara
10−323 sampai dengan 10308.

2.3. Operator
Operator pada MATLAB dan artinya dapat dilihat sebagai berikut :

Beberapa contoh :
>>4+12
ans =
16
Angka 16 adalah hasil penjumlahan antara 4 dan 12. Di sini ans adalah variabel yang
diberikan oleh MATLAB karena tidak ada definisi variabel untuk 4+12 sebelumnya.
Terkadang kita hanya ingin melihat hasil akhir perhitungan tetapi tidak perlu menampilkan
nilai dari setiap variabel dengan alasan terlalu ramai. Untuk itu gunakan saja semicolon (;)
setelah nilai variabel yang tidak perlu ditampilkan.
>>x = 3 ; y = 6 ; z=2+5 i ;
>>x+y
ans =
9
>>x−y
ans =
−3

6
>>x y
ans =
18
>> x/y
ans =
0.5000
>> x\y
ans =
2
>> z’
ans =
2.000−5.000i
Satu catatan yang perlu diperhatikan berarti membagi atau dibagi oleh

2.4. Fungsi dan kontanta pada matlab


MATLAB menyediakan banyak fungsi matematika mulai dari fungsi elementer seperti
sqrt, exp, sin, dan lain-lain sampai dengan fungsi matematika lanjutan seperti gamma,
beseel, dan lain-lain. Sebagian fungsi pada MATLAB merupakan built-in yaitu bagian
yang tidak dapat dipisahkan dari MATLAB sehingga fungsi-fungsi built-in tidak bisa
diedit atau dimodifikasi sama sekali. Selain fungsi-fungsi built-in, terdapat pula fungsi
MATLAB yang didefinisikan dalam m-file sehingga masih dapat diedit, misalnya fungsi
bessel, sinh, dan lain-lain.

sin Sinus. sec secan.


sinh Sinus hiperbolik. sech secan hiperbolik.
asin Invers Sinus. asec Invers secan.
asinh Invers Sinus hiperbolik. aceh Invers secan hiperbolik.
cos Cosinus. csc Cosecan.
cosh Cosinus hiperbolik. csch Cosecan hiperbolik.
acos Invers cosinus. acsc Invers cosecan.
acosh Invers cosinus hiperbolik acsch Invers cosecan hiperbolik.
tan Tangen. cot Cotangen.
tanh Tangen hiperbolik. coth Cotangen hiperbolik.
atan Invers tangen. acot Invers cotangen
atanh Invers tangen hiperbolik. acoth Invers cotangen hiperbolik
Tabel 2.2: Fungsi Trigonometri

exp Eksponensial. abs Nilai mutlak.


log Logaritma natural (bilangan pokok ). angle Sudut phase.
log10 Logaritma bilangan pokok 10. conj Kompleks konjugate.
log2 Logaritma bilangan pokok 2. imag Bagian imajiner bilangan kompleks.
sqrt Akar kuadrat. real Bagian real bilangan kompleks.
Tabel 2.3: Fungsi Pangkat/Eksponensial Tabel 2.4: Fungsi Bilangan Kompleks

7
fix Pembulatan menuju nol.
floor Pembulatan menuju
ceil Pembulatan menuju
round Pembulatan menuju bilangan bulat terdekat
mod modulo
rem sisa setelah pembagian
Table 2.5: Fungsi Pembulatan dan sisa

pi 3.14159265…
i satuan imajiner, yaitu √
j sama dengan i.
eps Presisi relatif, atau epsilon mesin , yaitu
realmin Bilangan titik mengambang terkecil, yaitu
realmax Bilangan titik mengambang terbesar, yaitu
Inf Takberhingga
NaN Not-a-Number
Table 2.6: Konstanta pada MATLAB

pi standar (default) sama seperti short.


format format titik tetap 5 digit.
format short format titik tetap 15 digit.
format long format titik mengambang 5 digit.
format short e format titik mengambang 15 digit.
format long e format titik tetap atau mengambang 5 digit.
format short g format titik tetap atau mengambang 15 digit.
format long g format basis 16 (hexadesimal).
format hex mencetak simbol +,-,’blank’.
format + format tetap untuk dollars dan cents.
format bank Aproksimasi rasional.
format rat membuat baris lebih padat.
Table 2.7: Beberapa fungsi format

Beberapa cara menggunakan fungsi-fungsi diatas pada command window matlab:


>> exp(1)
ans =
2.7183
>>log(exp(1))
ans =
1
>> sqrt(2),abs(−3)
ans =
1.4142
ans =
3
>> x1 = −1.4; x2 = 3.6 ;

8
>> fix(x1),fix(x2)
ans =
−1
ans =
3
>> floor(x1), floor(x2)
ans =
−2
ans =
3
>> ceil(x1),ceil(x2)
ans =
−1
ans =
4
>> round(x1), round(x2)
ans =
−1
ans =
4
Selain fungsi-fungsi elementer di atas masih terdapat ratusan bahkan ribuan fungsi yang
sudah disediakan oleh MATLAB, baik dalam bentuk built-in maupun dalam bentuk m-file.
Secara khusus, MATLAB menyediakan fungsi khusus untuk membangkitkan konstanta
yang sering digunakan.
>>sin(pi/2)
ans =
1
>>atan (1)
ans =
0.7854
Diperhatikan output MATLAB tidak pernah menghasilkan lambang konstanta. Dalam
contoh terakhir, kita tahu bahwa ( ) tetapi MATLAB menulis dalam bentuk
desimal 0.7854 yang merupakan aproksimasi dari

Bilangan eps digunakan sebagai toleransi untuk beberapa fungsi MATLAB, seperti rank,
det,eig, dan lain-lain. Lambang Inf akan muncul bila kita membagi dengan nol
bilangan yang tak nol, atau hasil suatu kalkulasi melebihi realmax . Sedangkan NaN
menunjukan ekspresi yang tidak terdefinisi, seperti 0/0 atau Inf-Inf. Secara matematis,
ekspresi dengan juga tidak terdefinisi.
>> factorial(170)
ans =
7.2574e+306
>> factorial(171)
ans =
Inf

9
Di sini fungsi factorial berarti ( ) ( )( ) ( )( ). Dalam
contoh ini, MATLAB masih dapat menghitung 170! tetapi tidak mampu lagi menghitung
faktorial yang lebih besar, karena sudah melebihi bilangan realmax yaitu sekitar

2.5. Kesalahan input


Jika melakukan kesalahan dalam menuliskan ekspresi ke dalam command windows,
MATLAB akan berbunyi dan memberikan pesan kesalahan dalam penulisan. Sebagai
contoh akan dilakukan operasi perhitungan sebagai berikut.
3u^2 ??? 3u^2
Error: Unexpected MATLAB expression.
Kesalahan dalan hal ini adalah hilangnya operator pekalian *. Yang benar masukannya
adalah 3*u^2. Perhatikan bahwa MATLAB menempatkan penanda (segmen garis vertikal)
di tempat dimana mungkin terjadi kesalahan. Namun, kesalahan bisa saja terjadi di awal
atau di akhir ekpresi. Keselahan seperti ini sering terjadi. Kita dapat mengedit masukan
menggunakan tombol LEFT- and RIGHT-ARROW kemudian tekan RETURN atau
ENTER. Tombol UP- and DOWN-ARROW dapat digunakan untuk memanggil kembali
perintah yang telah diketikan dalam MATLAB dan sangat berguna ketika ingin
memperbaiki, memodifikasi, atau memasukan kembali perintah sebelumnya.

2.6. Format Tampilan


Tampilan standar (default) MATLAB adalah menggunakan sistem desimal dengan empat
digit signifikan. Tetapi tampilan ini dapat diubah dalam bentuk lain dengan menggunakan
funsgi format.

a x = [4/7 1.2345e-5]
x=
0.5714 0.0000
>> format short
>> x
x =
0.5714 0.0000
>> format long
>> x
x =
0.571428571428571 0.000012345000000
>> format short e
>> x
5.7143e-001 1.2345e-005
>> format long e
>> x
0.5714285714285714e-001 0.0000123450000000e-005
>> format bank

10
>> x
x =
0.57 0.00
>> format hex
>> x
x =
3fe2492492492492 3ee9e3abe16fc70d
format r a t
>> x
x =
4/7 2/162009

Memasukan perintah panjang yang memerlukan lebih dari satu baris cukup
menggunakan titik tiga ( ). Ekspresi berikut :
>>ell=1−1/2+1/3−1/4+1/5−1/6+1/7 ...
−1/8+1/9−1/10+1/11−1/12;
berarti perintah pada baris pertama belum selesai masih dilanjutkan pada
baris kedua. Sekali lagi notasi (;) pada akhir suatu variabel
dimaksudkan agar hasil perhitungan tidak ditampilkan namun tetap
tersimpan pada workspace.

Latihan

1. Hitunglah
a.

b. . /
√ √
c. √ (√ √ )

d.

e.
f.

2. Carilah masing-masing nilai berikut:


a. 0.0
b.
c.
d.
e.
f.

3. Hitung ( ) jika ( ) ( )

11
BAB 3
VEKTOR DAN MATRIKS

3.1. Vektor
Vektor merupakan array tunggal, baik berbentuk baris (horizontal) maupun kolom
(vertikal). Suatu vektor pada MATLAB didefinisikan dengan menempatkan barisan
bilangan di dalam kurung siku [].
>> v=[1 2]
ans =
1 2
>> v=[1 ; 2]
ans =
1
2
Contoh ini memberikan cara mendefinisikan vektor baris dan vektor kolom. Beberapa
operasi yang biasa dilakukan pada vektor, antara lain besar atau panjang vektor, hasil kali
silang antara dua vektor, hasil kali titik antara dua vektor, operasi aritmatika elemen per
elemen, elemen maksimum, elemen minimum. Misalkan ( ) dan
( ) maka beberapa fungsi yang sering digunakan diberikan pada tabel
berikut.

Sintaksis Formula Makna


a(k) Komponen ke k vektor a
a(end) Komponen terakhir vektor a

norm(a) (∑ ) Norma atau besar vektor a

α*a Perkalian skalar vektor a


max⁡(a) Komponen terbesar vektor a
min⁡(a) Komponen terkecil vektor a
length(a) ( ) Panjang atau ukuran vektor a
sum(a) ∑ Jumlah semua bil pada vektor a
Hasil perkalian semua bil pada
prod(a) ∏
vektor a
dot(a) ∑ Hasil kali titik vektor a dan b
a.*b ( ) Perkalian antar komponen
Tabel 3.1: Fungsi dan operator vektor pada MATLAB

Contoh penggunaan sintaksis vector dan array:


>> a=[1 2 -3];b=[2 2 1];
>> length(a)
ans =
3

12
>> norm(a)
ans =
3.7417
>> dot(a,b)
ans =
3
>> 3 a
ans =
3 6 −9
>> a+b
ans =
3 4 −2

>> a. b
ans =
2 4 −3
>> a b
? ? ? Error using ==> mtime Inner matrix dimension must agree .
Perhatikan pada baris terakhir muncul pesan error karena MATLAB menganggap kedua
vektor a dan b adalah matriks. karena ukuran dimensi keduanya tidak mungkin dapat
dikalikan. Operasi antar komponen bersesuaian vektor a dan b diberikan lagi pada contoh
berikut.
>> a.^b
ans =
1 4 −3
>> a./b
ans =
0.5000 1.0000 -3.0000
>> q=[0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 ...
0.4565 0.0185 0.8214 0.4447]
>> max(q)
ans =
0.9501
>> min(q)
ans =
0.0185
>> sum(q)
ans =
5.6686
>> prod(q)
ans =
1.3573e-004
>> prod(q)
ans =
0.00013573

13
>> sort(q)
ans =
Columns 1 through 5
0.018504 0.23114 0.4447 0.45647 0.48598
Columns 6 through 10
0.60684 0.7621 0.82141 0.8913 0.95013

Pada baris terakhir adalah perintah untuk mengurutkan secara menaik elemen-elemen
dalam vektor q.

3.2. Operator kolon dan array


Notasi titik dua (kolon), : ,adalah salah satu operator paling penting pada MATLAB. Ia
banyak digunakan untuk mendenisikan array dengan cepat.

• a1:a2 mendenisikan array mulai dari a1, a1+1, a1+2, ..., sampai dengan
bilangan terbesar sebelum a2.
• a1:s:a2 mendenisikan array mulai dari a1, a1+s, a1+2s, ... dan
seterusnya sampai dengan bilangan yang "paling dekat" dengan a2. Bila a1<a2 dan
s>0 diperoleh array naik. Sebaliknya, bila a1>a2 dan s<0 diperoleh array turun.
• linspace(a1,a2,n) mendenisikan array dengan cara membagi interval
[a1,a2] menjadi bagian yang sama panjang.

>> x=1:10
x =
1 2 3 4 5 6 7 8 9 10
>> yy=1:5:50
yy =
1 6 11 16 21 26 31 36 41 46
>> y=50:−5:1
y =
50 45 40 35 30 25 20 15 10 5
>> ab=1:0.5:4
ab =
Columns 1 through 7
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
>> dd=linspace(1,10,12)
ddd =
Columns 1 through 7
1.0000 1.8182 2.6364 3.4545 4.2727 5.0909 5.9091
Columns 8 through 10
6.7273 7.5455 8.3636 9.1818 10.0000

Coba dicermati perbedaan array yang didenisikan menggunakan operator kolon dan
menggunakan perintah linspace. Bila array yang dihasilkan ternyata tidak mencukupi bila
ditulis satu baris pada command window maka penulisan lebih dari satu baris akan muncul
seperti ab dan ddd di atas. Bila pendenisian array tidak sesuai dengan alur logika maka
akan dihasilkan array kosong.

14
Contoh :
>> ko=−5:−2:10
ko =
Empty matrix : 1 −by−0
Ini berarti tidak ada bilangan yang dapat dihasilkan oleh perintah ini. Logikanya, untuk
membuat array dari -5 menuju 10 (array naik) tidaklah mungkin dilakukan dengan
memasukan step -2 (untuk array turun).

3.3. Matriks
Matriks pada MATLAB berupa array bilangan yang berbentuk persegi panjang. Seperti
biasa ukuran matriks ditentukan oleh banyaknya baris dan kolom. Secara khusus, bilangan
atau skalar adalah matriks berukuran 1 ⇥ 1. Sedangkan vektor dipandang sebagai matriks
yang hanya mempunyai satu kolom atau satu baris. Jadi semua data numerik di dalam
MATLAB dipandang sebagai matriks. Sejumlah ekspresi matematika seperti variabel,
bilangan, operator dan fungsi digunakan dalam dalam bekerja dengan matriks atau array.

Terdapat beberapa cara mendefinisikan matrik dalam MATLAB, yaitu : kita dapat mema-
sukan matriks dalam MATLAB dalam beberapa cara :

• Memasukan elemen matriks secara eksplisit.


• Membangun matriks dengan menggunakan fungsi built-in,
• Mendefinisikan matriks dengan M-file.
• Mengambil matriks dari file eksternal.

Contoh cara pertama. Misalkan akan didefinisikan matriks

[ ]

Caranya :

• Pada setiap baris, untuk memisahkan tiap-tiap elemen, gunakan spasi atau koma.
• Gunakan semicolon ; untuk mengakhiri tiap-tiap baris.
• Lingkupi semua elemen dengan kurung siku, [].
>> A=[16 3 2 13; 5 10 11 9; 9 6 7 12; 4 15 14 1]
A =
16 3 2 13
5 10 11 9
9 6 7 12
4 15 14 1

Diperhatikan dua ekspresi untuk mendenisikan vektor baris dan vektor kolom berikut :

15
>> b=[16 3 2 13]
b =
16 3 2 13
>> c=[16;3;2;13]
c =
16
3
2
13
>> c'
ans =
16 3 2 13

3.4. Elemen Baris-Kolom Matriks


Elemen matriks pada MATLAB ditunjukkan oleh indeks baris-kolom, yaitu :

• A(i,j) : Elemen A yang berada pada baris ke i dan kolom ke j.


• A(i1:i2,j1:j2) : Sub matriks yang terdiri dari elemen A yang berada pada baris i1
s.d. baris i2, dari kolom j1 s.d. kolom j2.
• A(i,j1:j2) : Vektor baris yang memuat semua elemen A yang berada pada baris i
dari kolom j1 s.d. kolom j2.
• A(i1:i2,j): Vektor kolom yang memuat semua elemen A yang berada pada kolom
j dari baris i1 s.d. baris i2.
• A(i,:): Vektor baris terdiri dari baris ke i matriks A. Notasi ini dapatpula ditulis
A(i,1:end). Kata end menunjukkan nilai terakhir indeks kolom j.
• A(:,j): Vektor kolom terdiri dari kolom ke j matriks A. Seperti sebelumnya, notasi
ini dapat ditulis dengan A(1:end,j)

Contoh penggunaan sintaksis elemen baris-kolom:


>> A(3,2),A(4,3)
ans =
6
ans =
14
Tetapi,
>> A(5,1)
? ? ? Index exceeds matrix dimensions.
Artinya tidak ada elemen matriks A yang berada pada baris ke 5 dan kolom ke 1 sebab
matriks hanya berukuran 4x4.
>> A(1:3,2:4)
ans =
3 2 13
10 11 8
6 7 12

16
>> A(3,:)
ans =
9 6 7 12
>> A(1:3,2)
ans =
3
10
6
>> A(3,2:end)
ans =
6 7 12
Bila a suatu vektor tidak masalah baris ataupun kolom, maka ekspresi a(j), j = 1, 2, ..., end
menyatakan komponen ke j vektor a. Ekspresi a(k:l) adalah elemen vektor a dari
komponen k s.d. komponen l.
>> a =[2 34 −46 67 −5]
a =
2 34 −46 67 −5
>> a(3)
ans =
−46
>> a(2:4)
ans =
34 −46 67

3.5. Fungsi sum, diag, inv, det dan transpose matriks


Diperhatikan matriks A yang telah kita definisikan di atas berupa bujur sangkar ajaib, yaitu
jumlah semua bilangan pada setiap baris, setiap kolom, dan diagonalnya adalah sama.
Dalam hal ini jumlahnya 34.
>> sum (A)
ans =
34 34 34 34
Dalam hal ini sum(A) menghasilkan vektor baris yang terdiri dari jumlah semua bilangan
pada masing-masing kolom. Untuk melihat jumlah semua bilangan pada kolom tertentu,
katakanlah kolom 3, tulis :
>>sum (A(:,3))
Hasilnya juga 34. Bagaimana jumlah baris-barisnya?. Transpose A diperoleh sebagai
berikut :
>> A'
ans =
16 5 9 4
3 10 6 15
2 11 7 14
13 9 12 1

17
Jadi jumlah bilangan pada semua baris A adalah
>> sum (A’)
ans =
34 34 34 34
Diagonal A diperoleh seperti berikut :
>> diag(A)
ans =
16
10
7
1
dan
>> sum(diag(A’))
ans =
34
memberikan jumlah bilangan pada diagonal.

MATLAB telah menyediakan fungsi untuk menghitung invers dan determinan suatu ma-
triks.
>> P=[1 2 4;4 6 5;2 2 5]
P =
1 2 4
4 6 5
2 2 5
>> inv(P)
ans =
−1.2500 0.1250 0.8750
0.6250 0.1875 −0.6875
0.2500 −0.1250 0.1250
>> det(P)
ans =
−16

3.6. Matriks-matriks Penting pada MATLAB


Cara lain mendenisikan matriks adalah dengan menjalankan fungsi MATLAB baik built-in
maupun m-file. Beberapa matriks penting yang sudah terdenisi secara built-in adalah :

• zeros(m,n) mendenisikan matriks berukuran mxn dengan semua elemen nol.


• onesm,n) mendenisikan matriks berukuran mxn dengan semua elemen satu.
• diag(a) mendenisikan matriks diagonal dengan diagonal utama adalah vektor a.
• rand(m,n) mendenisikan matriks berukuran mxn yang dibangkitkan secara random
oleh distribusi seragam.
• randn(m,n) mendenisikan matriks berukuran mxn yang dibangkitkan secara random
oleh distribusi normal.

18
• magic(n) mendenisikan matriks bujur sangkar ajaib ordo n.

Tiga matriks pertama di atas paling sering digunakan terutama ketika kita menyusun
program untuk numerik matematika.
>> Z=zeros(3,5)
Z =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>> A=ones(1,5)
A =
1 1 1 1 1
>> V=3 ones(4,4)
V =
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
>> BR=rand(1,6)
BR =
0.61543 0.79194 0.92181 0.73821 0.17627 0.40571
>> R=rand(4,4)
R =
0.93547 0.057891 0.13889 0.27219
0.9169 0.35287 0.20277 0.19881
0.41027 0.81317 0.19872 0.015274
0.89365 0.0098613 0.60379 0.74679
>> m=magic(5)
m =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> sum(m)
ans =
65 65 65 65 65
>> sum(m')
ans =
65 65 65 65 65
>> sum(diag(m))
ans =
65

19
3.7. Memperbesar Matriks
Penggunaan kurung siku [ ] tidak hanya untuk mendenisikan matriks secara eksplisit tetapi
dapat pula digunakan untuk menggabungkan beberapa matriks berukuran kecil menjadi
matriks baru yang lebih besar.
>> B=[1;2;3]
B =
1
2
3
>> C=[0 0 0 0;1 1 1 1]
C =
0 0 0 0
1 1 1 1
>> D=[P B ; C]
D =
1 2 4 1
4 6 5 2
2 2 5 3
0 0 0 0
1 1 1 1
Matriks-matriks yang akan digabungkan haruslah kompatibel berdasarkan baris atau
kolom. Diperhatikan contoh berikut
>> E1=[1 2;3 4]
E1 =
1 2
3 4
>> E2=[3 3;4 4;5 5]
E2 =
3 3
4 4
5 5
>> G1=[E1 E2]
??? Error using ==> horzcat All matrices on a row in the bracketed
expression
>> G2=[E1; E2]
G2 =
1 2
3 4
3 3
4 4
5 5
Menghapus Baris dan Kolom Kita dapat menghapus beberapa baris atau beberapa kolom
suatu matriks dengan menggunakan array kosong [ ].

20
>> A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> X=A;
>> X(:,2)=[];
>> X
X =
16 3 13
5 10 8
9 6 12
4 15 1
>> Y=A;
>> Y(1,:)=[];
>> Y
Y =
5 11 10 8
9 7 6 12
4 14 15 1
Ekspresi X(:,2)=[ ] berarti membuang kolom 2 matriks X=A, sedangkan
Y(1,:)=[] berarti membuang baris 1 matriks X=A.

3.8. Operasi pada Matriks dan Array


Pada MATLAB, matriks dipandang sebagai array numerik dua dimensi. Operasi aritmati-
ka pada array dikerjakan secara elemen demi elemen. Beberapa operasi aritmatika pada
array adalah sebagai berikut :

+ Penjumlahan. - Pengurangan.
* Perkalian Matriks. / Pembagian Matriks.
.* Perkalian elemen demi elemen.
./ Pembagian elemen demi elemen.
.^ Pangkat elemen demi elemen.

Sebagai ilustrasi, misalkan kita mempunyai matriks A, B dan vektor a, b yang didenisikan
sebagai berikut :
>> A=magic(3),B=A',a=[8 5 2],b=[4 5 6]
A =
8 1 6
3 5 7
4 9 2
B =
8 3 4
1 5 9
6 7 2

21
a =
8 5 2
b =
4 5 6
>> A+B
ans =
16 4 10
4 10 16
10 16 4
>> A*B
ans =
101 71 53
71 83 71
53 71 101
>> A.*B
ans =
64 3 24
3 25 63
24 63 4
Perintah A*B berarti perkalian antara matriks A dan matriks B. Sedangkan A.*B
menghasilkan perkalian elemen demi elemen matriks A dan matriks B. Dua matriks A dan
B dapat dikalikan bila banyaknya baris pada matriks A sama dengan banyaknya kolom
matriks B. Sedangkan perkalian per elemen A.*B hanya terdenisi bila ukuran kedua
matriks persis sama.
>> a-b
ans =
4 0 -4
>> a*b
??? Error using ==> mtimes
Inner matrix dimensions must agree.

>> a.*b
ans =
32 25 12
>> a./b
ans =
2.0000 1.0000 0.33333
Diperhatikan di sini operasi a*b tidak terdefinisi. Hal ini disebabkan operasi * digunakan
pada perkalian matriks, sedangkan di sini banyak baris vektor a yaitu 1 tidak sama dengan
banyak kolom vektor b yaitu 3.
>> 3+a
ans =
11 8 5
>> 5*b %setiap elemen b dikalikan dengan 5

22
ans =
20 25 30
Baru saja diperkenalkan notasi baru yaitu %. Perintah setelah tanda % tidak diproses oleh
MATLAB, biasanya hanya digunakan untuk memberikan keterangan atau komentar.
>> a*A
ans =
87 51 87
>> A-10 %setiap elemen matriks A dikurangi 10
ans =
-2 -9 -4
-7 -5 -3
-6 -1 -8
>> a(3)+b(2)+A(1,2)+B(3,2)
ans =
15
Ekspresi terakhir ini berarti elemen ketiga vektor a ditambah elemen kedua vektor b
ditambah elemen baris kesatu dan kolom kedua matriks A ditambah elemen baris ketiga
dan elemen kolom kedua matriks B.

Latihan

1. Buatah matriks tridiagonal berukuran 100 x 100 seperti matriks di bawah ini

[ ]

2. Diberikan matriks A:

[ ]

carilah :

a. A−1
b. A−1A
3. Selesaikan sistem persamaan linear berikut:

23
BAB 4
GRAFIK FUNGSI

4.1. Grafik dua dimensi


Fungsi MATLAB yang paling sering digunakan untuk membuat grafik fungsi adalah plot.
Fungsi plot mempunyai arti yang berbeda tergantung dari data masukan. Bila y suatu
vektor maka plot(y) menghasilkan grafik linear sepotong-sepotong yang menghubungkan
setiap elemen y secara berurutan. Misalkan kita akan membuat grafik fungsi

( ) untuk berada pada interval , -


Tulis pada command window perintah sebagai berikut!

>> x=0:0.05:2 pi;


>> y=sin(2 pi x);
>> plot(x,y)
>> xlim([0 2 pi])
>> xlabel(’x’)
>> ylabel(’y’)
>> title(’Grafik 2 dimensi fungsi \{y=sin(2\pix)\}’)
Maka hasilnya adalah Grafik 2 dimensi fungsi {y=sin(2x)}
1

0.8

0.6

0.4

0.2

0
y

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6
x

Gambar 4.1.1: Grafik fungsi sinus

Penjelasan :

• Pada baris pertama, x=0:0.05:2*pi; berarti kita mempersiapkan data berupa


array x. Coba lihat kembali definisi operator kolon (:) sebelumnya. Dapat juga
menggunakan perintah linspace.
• Pada baris kedua, kita mempersiapkan data berupa array y yang berupa nilai fungsi
pada x. Jadi x dan y merupakan pasangan array yang mempunyai panjang sama.
• Perintah plot(x,y) berarti kita meminta MATLAB untuk menggambar pasangan
data x dan y pada bidang koordinat. Perlu diingat bahwa perintah plot(x,y) hanya
berlaku jika panjang kedua array x dan y adalah sama.
• Perintah xlim([0 2*pi]) digunakan untuk membatasi interval grafik pada
sumbu x. Sejalan dengan ini, kita dapat membatasi grafik pada sumbu y dengan
perintah ylim([ymin ymax]).

24
• Perintah xlabel dan ylabel digunakan untuk membuat label pada sumbu
koordinat.
• Perintah title digunakan untuk menuliskan judul grafik.
Secara umum, langkah-langkah dalam membuat grak fungsi dilakukan sebagai berikut :

1. Mempersiapkan data.
2. Memilih letak dan posisi gambar.
3. Memanggil perintah plot.
4. Memilih bentuk garis, warna dan tanda khusus.
5. Menetapkan batas-batas sumbu koordinat termasuk membuat grid bila diperlukan.
6. Melengkapi grafik dengan keterangan seperti judul grafik, label sumbu koordinat dan
legend.
7. Menyimpan atau mengekspor grafik
Ketujuh langkah tersebut tidak semuanya harus dilakukan, tergantung dari bagaimana
tampilan gambar yang diinginkan. Namun langkah 1 dan langkah 3 mutlak diperlukan.
Diperhatikan masukan berikut :
>> x =0:0.2:12;
>> y1=bessel(1,x);
>> y2=bessel(2,x);
>> y3=bessel(3,x);
>> subplot(3,1,1)
>> plot(x,y1,’r.−’)
>> title(’Grafik fungsi Bessel pertama’)
>> subplot(3,1,2)
>> plot(x,y2,’g ’)
>> title(’Grafik fungsi Bessel kedua’)
>> subplot(3,1,3)
>> plot(x,y3,’m’)
>> title(’Grafik fungsi Bessel ketiga’)
Hasilnya adalah sebagai berikut.

Figure 4.1.2: Grafik beberapa fungsi Bessel

25
Perintah subplot(m,n,k) berarti MATLAB menyediakan posisi ke k dari m baris dan
n kolom tempat gambar yang tersedia. Cara penghitungan dimulai dari kiri-ke kanan-ke
bawah kiri - ke kanan - dst. Sebagai contoh, misalkan kita ingin membuat 6 buah grak yang
disusun dalam 3 baris dan 2 kolom. Kita gunakan perintah subplot(3,2,k), dan posisinya
dapat dilihat pada gambar berikut.

Bila ketiga grafik di atas mau diletakkan pada satu sumbu koordinat, perintah subplot tidak
diperlukan. Untuk itu cukup ditulis
>> plot(x,y1,x,y2,x,y3)
>> legend(’Bessel pertama ’,’ Bessel kedua ’,’ Bessel ketiga’ )
>> grid
>> title(’Grafik tiga buah fungsi Bessel’)

Figure 4.1.3: Grafik beberapa fungsi Bessel pada satu koordinat

26
Secara sederhana, perintah plot mempunyai bentuk
>> plot(x,y,’pilihan’)

Pilihan di sini untuk memberikan warna, tanda (mark) dan jenis/ukuran garis. Untuk lebih
jelasnya dapat dilihat pada matlab dengan mengetikkan
>> Help Plot
Warna :
b biru
g hijau
r merah
c cyan
m magenta
y kuning
k hitam
Bentuk tanda (mark) :
. titik o lingkaran
x tanda silang x + tanda plus +
* tanda star * s tanda kotak
d diamond v segitiga (bawah)
^ segitiga (atas) < segitiga (kiri)
> segitiga (kanan) p pentagram
h heksagram
Jenis garis penghubung titik :
- garis padat (solid)
: garis titik-titik (dot)
-. garis putus dan titik
– garis putus-putus
Diperhatikan contoh berikut !
>> x=−6:0.2:6;
>> y=1/sqrt(pi) exp(−x.^2/2);
>> plot(x,y,’dr:’)

Figure 4.1.4: Grafik fungsi kepadatan peluang normal baku

27
Pilihan ’dr:’ di dalam perintah >> plot(x,y,’dr:’) berarti titik-titik (x,y) ditandai
oleh diamond (d), warna merah r dan titik-titik tersebut dihubungkan oleh garis putus-
putus (:). Gambar yang terdapat pada jendela grafik akan hilang bila kita keluar dari
MATLAB. Bila gambar tersebut masih akan digunakan dikemudian hari maka kita perlu
menyimpannnya. Ada dua cara menyimpan grafik, yaitu dalam bentuk gambar MATLAB
yaitu dengan ekstensi g atau dieksport ke dalam bentuk lainnya seperti bmp, eps, jpeg dan
lain-lain. Untuk mudahnya, kita dapat menggunakan jendela grafik secara interaktif.

Untuk menyimpan dan mengeksport grafik kedalam bentuk eps, lakukan langkah-langkah
berikut :

1. Pada window grafik seperti tampak pada Gambar, klik File, kemudian pilih save atau
save as.
2. Pilih save as type yang diinginkan (dalam hal ini JPEG image dengan ekstensi jpg).
3. Berikan nama file yang akan disimpan. letakkan pada direktori yang di inginkan.
4. Bila pada langkah 2 kita memilih save maka grafik akan tersimpan dalam bentuk file
figure dengan ekstensi fig. Gambar ini daoat diperoleh kembali bila kita kembali
membuka MATLAB yaitu dengan mengklik double file yang bersangkutan.
5. Gambar tersebut dapat pula dipindah langsung pada program lainnya, seperti MS
word, corel, dan lain-lain dengan menggunakan teknik Copy-paste.

Figure 4.1.5: Menyimpan file gambar

4.2. Grafik tiga dimensi


Pada bagian ini akan dijelaskan cara menggambar grafik pada ruang berdimensi tiga den-
gan menggunakan fungsi-fungsi built-in pada MATLAB. Ada empat macam fungsi MAT-
LAB yang sering digunakan untuk menggabar grafik tiga dimensi ini, yaitu :

28
1. plot3
2. mesh, meshc
3. surf, surfc
4. contour
Untuk menjelaskan fungsi-fungsi tersebut, diperhatikan beberapa contoh berikut.

>> t=−10 pi:pi/100:10 pi;


>> x=t. cos(t);
>> y=t. sin(t);
>> plot3(x,y,t);
>> title(’Kurva r(t)=(t cos(t),t sin(t),t)’)
>> xlabel(’x’)
>> ylabel(’y’)
>> zlabel(’z’)
>> grid

Figure 4.2.1: Contoh 1

perintah plot3(x,y,z), bila x, y and z are tiga vector dengan panjang sama
menggambar lintasan garis dalam ruang 3-d yang melalui koordinat-koordinat x, y dan z.
Sedangkan plot3(X,Y,Z), bila X, Y dan Z adalah tiga matriks berukuran sama adalah
memplot be-berapa lintasan garis yang masing-masing melalui kolom-kolom matriks X, Y
dan Z.

Sebelum dijelaskan fungsi mesh, diperkenalkan fungsi meshgrid. Diperhatikan ilustrasi


berikut
>> x=[0 1 2];
>> y=[10 12 14];
>> [X,Y]=meshgrid(x,y)
X =
0 1 2
0 1 2
0 1 2

29
Y =
10 10 10
12 12 12
14 14 14
Jadi perintah [X,Y]=meshgrid(x,y) menghasilkan dua matriks X yang baris-
barisnya adalah array x, dan matriks Y yang kolom-kolomnya adalah array y. Jadi
pasangan (X,Y) memuat semua pasangan nilai pada array x dan array y yang mungkin.
Perintah ini biasa digunakan untuk mengevaluasi fungsi multivariabel pada sejumlah titik
yang diambil pada domainnya.

Contoh 2: Misalkan akan digambar grak dari parabola hyperbolic

pada kotak *( ) +

>> x=−1:0.05:1;
>> y=x;
>> [X,Y]=meshgrid(x,y);
>> Z=Y.^2−X.^2;
>> mesh(X,Y,Z)
>> title(’Grafik fungsi z = x^2−y^2’);

Figure 4.2.2: Contoh 2

Perintah surf hampir sama seperti mesh tetapi di sini warna kurva lebih padat, seperti
terlihat pada Gambar berikut.

30
Figure 4.2.3: Contoh 2 menggunakan perintah surf

Contour kurva yang disebut juga level kurva adalah proyeksi kurva ( ) pada
sumbu yang mempunyai nilai fungsi yang sama, yaitu

* ( ) ( ) +

Bila kita ingin menampilkan level kurva secara lengkap, lakukan perintah berikut.
>> [c,h]=contourf(X,Y,Z,’k−’);
>> clabel(c,h)

Figure 4.2.4: Contour kurva pada contoh 2

31
Figure 4.2.5: Contoh 2 menggunakan perintah meshc

Masih banyak sekali fungsi-fungsi menarik yang berkaitan dengan grak dimensi tiga ini,
se-hingga tidak mungkin terangkum semuanya pada tutorial singkat ini. Untuk lebih
lengkap-nya, silahkan lihat pada MATLAB help dengan mengetik
>> help graph3d
Selain dari kemampuan untuk menghasilkan grafik tiga dimensi, MATLAB juga mampu
membaca citra baik gray-scale maupun full-color dengan menggunakan fungsi image dan
sejenisnya.
>> load durer
>> whos
Name Size Bytes Class
X 648x509 2638656 double array
Caption 2x28 112 char array
Map 128x3 3072 double array
Grand total is 330272 elements using 2641840 bytes
>>Image(X); colormap(map)
Keluarannya ditunjukan sebagai berikut :

Figure 4.2.6: Image durer

32
Di sini file durer sudah tersimpan di dalam MATLAB. Variabel X berupa matriks persegi
panjang yang merep resentasikan itensitas keabuan (gray-scale) suatu citra. Masih ada lagi
fasilitas pada MATLAB untuk keperluan visualisasi yaitu untuk animasi. Fungsi yang
sering digunakan untuk animasi ini adalah movie atau menggunakan Erase- Mode. Bila
tertarik, lihat help navigator pada MATLAB.

Latihan

1. Plot dalam satu figure grafik fungsi | ( )| | ( )|


2. Gambar grafik dari parabola hyperbolik
*( ) +
3. Bagaimana contour dari soal no 2.

33
BAB 5
PEMROGRAMAN DENGAN MATLAB

Sebagaimana telah dijelaskan pada awal modul ini, MATLAB adalah program komputer
untuk melakukan komputasi numerik yang basis datanya berupa matriks. Untuk penggunaan
lebih luas, kita harus menulis bahasa dan kode khusus yang dapat dieksekusi oleh MATLAB.
Bahasa dan kode MATLAB ini ditulis pada jendela editor/debugger.

5.1. m-file
Bahasa pemrograman MATLAB yang ditulis pada jendela editor/debugger disebut m-file.
Ada tiga macam m-file yaitu :

1. script file, yaitu m-file yang tidak memerlukan variabel masukan dan variabel
keluaran. Program ini dapat dijalankan dari command window dengan cara mengetik
nama filenya.
2. input file, yaitu m-file yang variabel keluarannya didefinisikan langsung di dalam
file, sedangkan variabel masukkannya dimasukkan secara interaktif pada command
window.
3. function file, yaitu m-file yang terdiri dari variabel masukan dan variabel keluaran.
Bentuk umum function file adalah
function [out1,out2,....]=nama_fungsi(in1,in2,...)

Di sini in1,in2,... adalah variabel masukan dan out1,out2,... adalah


variabel keluaran. Untuk menjalankan program ini, ketik pada command window :

>> [out1,out2, ....]=nama_fungsi(in1,in2,.. .)

Prosedur dalam pemrograman MATLAB dilakukan sebagai berikut :

1. Buka jendela editor/debugger dengan cara, pada desktop MATLAB klik File - pilih
New - klik M-le.
2. Tulis bahasa dan kode MATLAB yang telah dipersiapkan.
3. Simpan le dengan cara, pada jendela editor/debugger : klik File- pilih Save As - (beri
nama file) - klik Save.
4. Kembali ke command window, dan jalankan program dengan cara seperti yang telah
disampaikan di atas.
Contoh script file : Tulis kalimat berikut pada jendela editor/debugger:

x=pi/100:pi/100:10 pi;
y=sin(x)./x;
plot(x,y)
grid
Setelah selesai, simpan file ini dengan nama file1. Kemudian untuk memanggilnya pada
command window, diketik
>> file1
maka akan dihasilkan:

34
Figure 5.1.1: Keluaran script-file

Contoh function file : Misalkan kita ingin membuat suatu program untuk menghitung rata-
rata, standar deviasi, nilai maksimum dan nilai minimum untuk suatu data yang disajikan
dalam array x. Jadi dalam hal ini kita mempunyai :

1. variabel masukan : x (berupa data yang diketahui).


2. variabel keluaran : mean (untuk rata-rata), stdev (untuk standar deviasi), terkecil (untuk
data minimum) dan terbesar (untuk data maksimum).

function[mean,stdev,terkecil,terbesar]=stat(x)
n=length(x);mean=sum(x)/n;
stdev=sqrt(sum((x−mean).^2)/n);
terkecil=min(x);
terbesar=max(x);
Setelah file disimpan, katakan namanya stat.m maka kita dapat menjalankan program ini
untuk data x yang diberikan sebagai variabel masukan. Misalnya,
>> x=rand(1,6)
x =
0.4451 0.93181 0.46599 0.41865 0.84622 0.52515
>> [mean,stdev,terkecil,terbesar]=stat(x)
mean =
0.60549
stdev =
0.20453
terkecil =
0.41865
terbesar =
0.93181
Data x = rand(1,6) adalah bilangan random berukuran 1x6 yang dibangkitkan
dengan menggunakan fungsi MATLAB rand.

Contoh input file : Kita ingin menghitung akar-akar persamaan kuadrat dengan rumus abc.

35
%program untuk menghitung akar−akar persamaan kuadrat
%dengan rumus abc
a=input(‘masukkan nilai a= ’)
b=input(‘masukkan nilai b= ’)
c=input(‘masukkan nilai c= ’)
akar1=(−b+sqrt(b^2−4 a c))/(2 a);
akar2=(−b−sqrt(b^2−4 a c))/(2 a);
akarnya=[akar1;akar2]
Kemudian file disimpan dengan nama abc.m. Misalkan kita akan menghitung akar-akar
persamaan :

Dalam hal ini kita harus memberikan nilai a, b dan c yang bersesuaian setiap kali
MATLAB memintanya. Coba lakukan prosedur berikut.
>> abc
Masukkan nilai a= 1
a=
1
Masukkan nilai b= 7
b=
7
Masukkan nilai c= 4
c=
4
akarnya =
−0.6277
−6.3723

5.2. Pengendali alur ( flow control)


Sebelum kita membahas pengendali alur, kita harus mengetahui terlebih dulu relasi dan
operator logika berikut :

< kurang dari


<= kurang dari atau sama dengan
> lebih dari
>= lebih dari atay ssama dengan
= = sama dengan
~ = tidak sama dengan
| atau (disjungsi)
& dan (konjungsi)
~ tidak (ingkaran)

Beberapa pengendali alur pada MATLAB:


1. if
2. switch and case
3. for

36
4. while
5. continue
6. break

5.2.1. if - elseif - else - end


Pernyataan if akan mengevaluasi suatu ekspresi logika dan selanjutnya serangkaian
statemen dieksekusi bila ekspresi tersebut benar. Pilihan elseif dan else menyediakan
alternatif lainnya bila ekspresi sebelumnya salah. Kata end yang berpasangan dengan if
digunakan untuk mengakhiri statemen terakhir. Jadi bentuk umum konstruksi if-elseif-else-
end adalah sebagai berikut :

if ekspresi logika1
sekelompok statemen dieksekusi
elseif ekspresi logika2
sekelompok statemen lainnya dieksekusi
dan seterusnya
else (ekspresi logika terakhir)
sekelompok statemen terakhir dieksekusi
end

Contoh penggunaan if : Misalkan kita akan membuat suatu klasikasi skor angka pada
range [0; 10] menjadi tiga kategori kurang, cukup dan baik. Bila nilai yang dimasukkan di
luar range tersebut akan diberi peringatan SALAH DATA.

x=input(’masukkan nilai x: ‘)
if x<=5 & x>=0
disp(’KURANG’)
elseif x>=5 & x<6.5
disp(‘CUKUP’)
elseif x>=6.5 & x<=10
disp(’BAIK’)
else
disp(’SALAH DATA, nilai x harus di dalam [0,10]’)
end

Perintah disp(’string’) digunakan untuk menampilkan kata string. Sekarang kita sim-pan
m-file ini dengan nama konversi.m. Selanjutnya, pada command window kita lakukan :
>> konversi
Masukkan nilai x: 2
KURANG
>> konversi
Masukkan nilai x: 5.7
CUKUP
>> konversi
Masukkan nilai x: 8.9
BAIK
>> konversi
Masukkan nilai x: 11

37
SALAH DATA, nilai x harus di dalam [0,10]

5.2.2. switch - case - otherwise - end


Pernyataan switch mengeksekusi serangkaian pernyataan yang kreterianya didasarkan pada
nilai variabel atau ekspresi. Hanya kasus yang cocok pertama saja yang dieksekusi,
sedangkan kasus lainnya tidak dieksekusi. Untuk mudahnya, struktur kontrol alur ini dapat
dilhat pada contoh berikut.

choice=input(’masukkan nilai 1,atau 2 atau 3:’)


x=−pi:0.01:pi;
switch choice
case 1
plot(x,sin(x));
case 2
plot(x,cos(x));
case 3
plot(x,sin(x),x,cos(x));
otherwise
disp(’TIDAK ADA PILIHAN DONG’)
end
Mari simpan file ini dengan nama kasus.m. Pada m-file ini kita menginginkan salah satu
keluaran dari tiga pilihan yang ada, yaitu menggambar grafik fungsi ( ) saja, atau
grafik ( ) saja, atau grafik ( ) dan ( ) digambar secara
bersamaan pada satu bidang koordinat. Angka 1, 2, atau 3 digunakan untuk pilihan. Untuk
memblokir kemungkinan lain digunakan perintah otherwise.
>> kasus
masukkan nilai 1, atau 2 atau 3 : 3
choice =
3
Hasilnya akan muncul grak seperti ditunjukkan pada berikut.

Figure 5.2.1: Keluaran bila dimasukan angka 3

38
Perhatikan :
apa yang terjadi bila dimasukkan angka selain 1, 2, atau 3. Sesungguhnya, kendali alur
switch-case-otherwise-end mempunyai kemiripan dengan if-elseif-
else-end. Tetapi alur switch hanya bisa mengevaluasi kesamaan, sedangkan if bisa
untuk kesamaan maupun ketidaksamaan. Di lain pihak, switch dapat membandingkan
string dengan panjang berbeda, sedangkan if masih membutuhkan perintah strcmp untuk
untuk membandingkan string dengan panjang berbeda. File kasus.m di atas dapat pula
ditulis dengan menggunakan if sebagai berikut.
choice=input(’masukkan nilai 1, atau 2 atau 3: ’)
x=−pi:0.01:pi;
if choice == 1
plot(x,sin(x));
elseif choice == 2
plot(x,cos(x));
elseif choice == 3
plot(x,sin(x),x,cos(x));
else
disp(’SALAH MASUKAN’)
end
Tetapi alur switch tidak bisa digunakan untuk kasus dalam contoh pemakaian if
sebelumnya.

5.2.3. for - end


Kontrol alur for digunakan untuk mengulangi serangkaian statemen yang frekuensinya
berhingga dan ditentukan terlebih dahulu.

Contoh pemakaian for-end : Misalkan kita ingin membangun matriks Hilbert berukuran
dengan elemen ke ( ) nya didenisikan oleh :

function H=hilb(m,n)
for i=1:n
for j=1:m
H(i,j)=1/(i+j);
end
end

Setelah disimpan dengan nama hilb.m maka diperoleh


>> H=hilb(4,5)
H =
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
0.2000 0.1667 0.1429 0.1250
0.1667 0.1429 0.1250 0.1111

39
Contoh pemakaian gabungan for dan if Misalkan kita akan mendenisikan fungsi berikut
dan menggambar grafiknya.

( )
( ) {

kita gambarkan juga grafik fungsi dan pada bidang koordinat yang
sama.

function y=osilasi(x);
for i=1:length(x);
if x(i)~=0
y(i)=x(i) sin(1/x(i));
else
y(i)=0;
end
end
plot(x,y);
hold on
%tambahan
y1=x; y2=−x;
plot(x,y1,’k:’,x,y2,’k:’)
grid
hold off
Di sini variabel masukan berupa array x, sedangkan keluarannya berupa array y yang
didefinisikan secara berurutan (pengulangan) oleh ’for’ dan bersyarat oleh ’if’. Perintah
length(x) suatu bilangan bulat positip yang merupakan panjang vektor x. Perintah hold
on meminta MATLAB untuk tetap mengaktifkan jendela grafik, artinya apapun grafik
yang dibuat tetap digambarkan pada bidang yang sama sampai muncul perintah hold
off. Bila pada command window dilakukan :
>> x=−1/pi:0.0001:1/pi;
>> y=osilasi(x);
maka akan menghasilkan Gambar

Figure 5.2.2: Fungsi bercabang didefinisikan menggunakan for-if

40
5.2.4. while - end
Kontrol alur while melakukan pengulangan serangkaian statemen terus menerus di bawah
kondisi logika tertentu. Bila kondisi ini belum terpenuhi maka proses eksekusi terus
dijalankan. Jadi terdapat kemungkinan pengulangan (iterasi) sampai tak berhingga
(divergen).

Contoh penggunaan while : Misalkan kita akan membagi dengan dua bilangan , hasilnya
kita bagi lagi dengan dua, dan seterusnya sampai diperoleh hasil bagi kurang dari 0.0013.
Kemudian kita juga ingin mengetahui berapa banyak pengulangan yang dilakukan untuk
mencapai bilangan ini. Untuk mengerjakan ini, langsung saja dikerjakan pada command
window sebagai berikut :
>> q=pi;
>> it=0;
>> while q>=0.0013;
q=q/2;it=it+1;end
>> q
q =
7.669903939428206e−004
>> it
it =
12
Jadi adalah bilangan pertama yang lebih kecil dari
0.0013 yang diperoleh dengan proses di atas. Untuk mencapai hasil ini diperlukan 12 kali
iterasi (pengulangan).

Contoh penggunaan while - if : Misalkan kita ingin menghitung secara pendekatan akar
dari persamaan

yang berada pada suatu suatu interval [0, 3]. Metoda yang akan digunakan adalah metoda
biseksi, yaitu dengan cara membagi dua interval terus menerus sampai ditemukan akar.
Program berikut dilengkapi juga informasi jumlah iterasi yang diperlukan untuk mencapai
pendekatan akar tersebut.

function [akar,iterasi]=bisec(tol)
%m-file untuk menghitung akar persamaan x^3−2x−5 pada
%interval [0,3] dengan menggunakan toleransi tol.
a=0;b=3; fa=−5; it=0;
while b−a>tol
x=(a+b)/2;
fx=x^3−2 x−5;
if sign(fx)==sign(fa)% untuk mengetahui posisi akar
a=x; fa=fx;
else
b = x ;
end
it=it+1;
end

41
akar = x ;
iterasi=it;

>> [akar,iterasi]=bisec(3 eps)


akar =
2.09455148154233
Iterasi =
53
Hasil ini berarti dengan toleransi kita
memperoleh akar 2.09455148154233. Untuk mencapai akar ini diperlukan 53 kali
pengulangan (iterasi). Dua kendali alur lainnya, yaitu continue dan break tidak dijelaskan
secara rinci dalam modul ini. Secara singkat, kendali continue digunakan untuk
menghindari sejumlah langkah pada lingkungan for atau while dengan cara meloncat pada
iterasi berikutnya. Sedangkan break digunakan untuk mengakhiri secara prematur iterasi
pada lingkungan for atau while. Kadang-kadang dengan alasan tertentu, kedua kendali ini
dibutuhkan dalam pemrograman.

Latihan

1. Buat function file untuk menghitung kar-akar persamaan kuadrat dengan rumus abc,
yang didefinisikan sebagai berikut :
√ √
dan
kemudian hitung akar-akar persamaan :
.

2. Buat function file untuk menghitung nilai a dan b pada fungsi regresi linear berikut :

dimana:
(∑ )(∑ ) (∑ )(∑ )
∑ (∑ )

∑ (∑ )(∑ )
∑ (∑ )

42

Anda mungkin juga menyukai