Dasar-Dasar MATLAB Materi untuk Pelatihan Dasar MATLAB pada Sabtu, 14 April 2012
2012
Agam Maulana Program Studi Teknik Elektro, Universitas Jenderal Soedirman
4/14/2012
Dasar-Dasar MATLAB 2012
Agam Maulana
1
Dasar-Dasar MATLAB
Materi untuk Pelatihan Dasar MATLAB pada Sabtu, 14 April 2012
Pendahuluan
Sekilas MATLAB
MATLAB merupakan sebuah bahasa komputasi teknis dan lingkungan yang interaktif untuk
pengembangan algoritma, visualisasi data, analisis data, dan komputasi numerik. Dengan
menggunakan produk MATLAB, kita bisa mengatasi masalah komputasi teknis dengan lebih
cepat apabila dibandingkan dengan menggunakan bahasa pemrograman tradisional seperti C,
C++, dan Fortran.
Kita dapat menggunakan MATLAB untuk aplikasi yang luas, seperti pengolahan sinyal dan
citra, komunikasi, perancangan sistem kendali, pengujian dan pengukuran, pemodelan dan
analisis finansial, dan biologi komputasional. Toolbox-toolbox tambahan (kumpulan fungsi
MATLAB dengan tujuan khusus, tersedia secara terpisah) memperluas kegunaan MATLAB
untuk mengatasi masalah yang terkait dengan bidang tertentu.
MATLAB menyediakan sejumlah fitur untuk mendokumentasikan serta berbagi hasil
pekerjaan kita. Kita dapat mengintegrasikan kode MATLAB dengan bahasa dan aplikasi lain,
serta mendistribusikan algoritma dan aplikasi MATLAB. Fitur-fitur tersebut diantaranya
adalah:
Bahasa tingkat tinggi untuk komputasi teknis
Lingkungan pengembangan untuk manajemen kode, berkas, dan data
Tool-tool yang interaktif untuk eksplorasi, perancangan, dan penyelesaian masalah
secara iteratif
Fungsi-fungsi matematis untuk aljabar linear, statistik, analisis fourier, penapisan,
optimisasi, dan integrasi numeris
Fungsi grafik 2-D dan 3-D untuk menampilkan data
Tool-tool untuk membangun antarmuka grafis secara custom
Fungsi-fungsi untuk mengintegrasikan algoritma berbasis MATLAB dengan aplikasi
maupun bahasa lain, seperti C, C++, Fortran, Java™, COM, dan Microsoft® Excel
“Saya kadang-kadang berpikir, bahwa sebagai mahasiswa Teknik Elektro, kita bukan hanya
mempelajari keilmuan Teknik Elektro namun secara perlahan-lahan, kita juga menjadi ahli
bahasa.”
Dasar-Dasar MATLAB 2012
Agam Maulana
2
Variabel dan Tipe Data
Double dan Single
Sebagai bahasa tingkat tinggi, dalam MATLAB kita dapat menggunakan sebuah variabel
secara langsung tanpa perlu mendeklarasikannya terlebih dahulu. Sebagai contoh, apabila
pada command window diketikkan perintah sebagai berikut:
>> a = 3;
Maka variabel a akan menyimpan nilai 3 tanpa memprotes bahwa a belum dideklarasikan
seperti yang biasa kita temui dalam bahasa C/C++ misalnya. Lalu jika demikian,
bagaimanakah variabel a menyimpan nilai 3? Apakah sebagai integer, floating point, atau
bahkan character? Untuk mengetahuinya, kita bisa mengetikkan perintah berikut:
>> whos a
Seharusnya, anda akan menemukan jawaban sebagai berikut pada command window:
Name Size Bytes Class Attributes
a 1x1 8 double
Nah, sekarang mari kita bahas satu per satu apa maksud dari pesan tersebut. Di bawah Name
kita dapat melihat a: bagian ini menyatakan variabel yang dimaksud dari perintah whos yang
dipanggil. Karena pada perintah whos menyertakan variabel a, maka hanya ditunjukkan
informasi mengenai variabel a saja. Apabila perintah whos tidak menyertakan variabel
apapun, maka semua variabel yang telah diinisialisasi akan ditampilkan informasinya.
Selanjutnya, di bagian Size kita menemukan keterangan 1x1. Bagian ini menyatakan ukuran
dimensi dari variabel a. Seperti yang telah kita ketahui MATLAB adalah akronim dari Matrix
Laboratory dan MATLAB digunakan untuk memudahkan operasi-operasi matriks. Dengan
alasan itu, semua variabel MATLAB dianggap sebagai matriks. Apabila sebuah variabel diisi
dengan nilai skalar, maka variabel tersebut dianggap sebagai matriks 1x1.
Sekarang mari kita beralih ke bagian Bytes. Bytes menyatakan panjang memori yang
digunakan untuk menyimpan sebuah variabel. Di sini terlihat bahwa variabel a mengambil
ruang pada memori sebesar 8 byte, atau 64 bit apabila kita ingin menyatakannya dalam bit (1
byte = 8 bit).
Beralih ke Class, kita dapat melihat double di bawah bagian ini. Nah, bagian inilah yang
menyatakan tipe data yang disimpan. Variabel a disimpan sebagai double, dan variabel
apapun yang kita gunakan untuk menyimpan angka nantinya secara default akan disimpan
sebagai double. Yang dimaksud dengan double adalah double precision floating point.
Untuk lebih jauh mengenal tipe data floating point, perhatikan Tabel 1.
Dasar-Dasar MATLAB 2012
Agam Maulana
3
Tabel 1. Tipe Data floating point
Class Lebar Keterangan
double 8 byte Double precision floating point
single 4 byte Single precision floating point
Untuk mengubah a menjadi single, kita dapat menggunakan fungsi single() untuk
melakukan konversi. Ketikkan perintah sebagai berikut:
>> a = single(a);
Lalu lanjutkan dengan melakukan perintah whos terhadap a, perhatikan perbedaan yang
terjadi.
Integer
Apabila variabel yang ingin kita gunakan hanya akan menyimpan nilai-nilai integer, maka
sebaiknya kita mengubah variabel yang kita gunakan ke dalam tipe integer. Untuk
melakukannya kita dapat menggunakan salah satu dari fungsi-fungsi yang tercantum pada
Tabel 2.
Tabel 2. Fungsi untuk mengubah variabel menjadi integer
Fungsi Lebar Rentang Nilai Keterangan
int8 1 byte -(27) hingga (2
7-1) Bilangan bulat bertanda dengan lebar 8 bit
int16 2 byte -(215
) hingga (215
-1) Bilangan bulat bertanda dengan lebar 16 bit
int32 4 byte -(231
) hingga (231
-1) Bilangan bulat bertanda dengan lebar 32 bit
int64 8 byte -(263
) hingga (263
-1) Bilangan bulat bertanda dengan lebar 64 bit
uint8 1 byte 0 hingga (28-1) Bilangan bulat tak bertanda dengan lebar 8 bit
uint16 2 byte 0 hingga (216
-1) Bilangan bulat tak bertanda dengan lebar 16 bit
uint32 4 byte 0 hingga (232
-1) Bilangan bulat tak bertanda dengan lebar 32 bit
Dasar-Dasar MATLAB 2012
Agam Maulana
4
uint64 8 byte 0 hingga (264
-1) Bilangan bulat tak bertanda dengan lebar 64 bit
Dengan demikian, apabila kita menginginkan sebuah variabel menyimpan suatu nilai sebagai
integer, kita dapat menggunakan perintah sebagai berikut:
>> an_integer = int16(20)
Perintah tersebut akan membuat variabel an_integer menyimpan nilai 20 sebagai integer
menggunakan lebar 16 bit. Cobalah perintah-perintah yang lain dan pahami masing-masing
perintah tersebut!
Character dan String
Untuk menginisialisasi sebuah variabel dengan character maupun string, kita cukup
meletakkan character atau string tersebut di dalam tanda petik satu (single quote). Berikut ini
adalah perintah untuk menginisialisasi variabel dengan character:
>> a_character = 'x';
Dan berikut ini adalah contoh untuk menginisialisasi variabel dengan string:
>> a_string = 'this is a string example'
Skalar, Vektor, dan Matriks
Skalar dan Vektor
Sejauh ini, kita baru bermain-main dengan data skalar. Dalam konteks MATLAB, yang
dimaksud skalar adalah matriks dengan dimensi 1x1. Selanjutnya, kita akan mencoba
menginisialisasi sebuah vektor. Pengertian vektor secara sempit di sini adalah sebuah matriks
yang hanya terdiri dari satu baris atau satu kolom. Vektor kolom adalah vektor yang hanya
terdiri dari satu kolom. Berikut ini adalah perintah untuk menginisialisasi sebuah variabel
dengan vektor kolom:
>> col_vect = [1; 2; 3; 4; 5; 6; 7; 8]
Perhatikan penggunaan tanda “titik koma” (semicolon), tanda ini digunakan untuk
memasukkan nilai pada baris berikutnya. Untuk melihat dimensi dari vektor ini, kita dapat
menggunakan perintah sebagai berikut:
Apabila kita perhatikan, perintah-perintah yang telah kita gunakan ada yang diakhiri
dengan “titik koma” (semicolon) dan ada yang tidak. Apa perbedaan dari keduanya?
Dasar-Dasar MATLAB 2012
Agam Maulana
5
>> size(col_vect)
Berbeda dengan vektor kolom, vektor baris adalah vektor yang hanya terdiri dari satu baris.
Untuk membuat vektor baris, perintah yang bisa digunakan adalah:
>> row_vect = [1 2 3 4 5 6 7 8]
Untuk memisahkan elemen satu dengan elemen lainnya, cukup digunakan spasi. Cobalah
perintah size pada row_vect dan perhatikan apa perbedaan antara col_vect dengan
row_vect apabila dikenakan perintah size.
Untuk mengakses tiap elemen dari vektor, kita cukup memanggil nama variabel vektor
dengan menyertakan indeks dari elemen yang ingin dipanggil. Sebagai contoh, apabila kita
ingin mengambil elemen kelima dari row_vect dan col_vect, kita dapat menggunakan
perintah row_vect(5) dan col_vect(5).
Matriks
Ya, sebuah matriks pada dasarnya adalah susunan sejumlah angka-angka yang membentuk
bidang segiempat. Susunan angka-angka tersebut akan terdiri dari m baris dan n kolom
sehingga akan membentuk matriks 2 dimensi dengan ukuran m × n. Salah satu matriks yang
telah lama dikenal antara lain susunan bilangan yang dikenal sebagai magic number, dimana
jumlah angka-angka pada arah vertikal, horisontal maupun diagonal selalu sama. Untuk
membuat sebuah matriks magic number ini, kita dapat mengetikkan perintah sebagai berikut:
>> magical = magic(3)
Perintah di atas akan menghasilkan sebuah matriks magic number dengan ukuran 3x3.
Cobalah untuk menjalankan perintah whos pada variabel magical dan amati keterangan yang
muncul.
Matriks lain yang biasa digunakan untuk berbagai keperluan adalah matriks identitas, matriks
satuan, maupun matriks nol. Perintah-perintah yang digunakan untuk menghasilkan matriks-
matriks tersebut dapat dilihat pada Tabel 3.
Tabel 3. Perintah untuk menghasilkan matriks tertentu
Perintah Keterangan
magic(n) Perintah untuk menghasilkan matriks magic number dengan ukuran n × n.
“A matriks is a rectangular array of number.”
Dasar-Dasar MATLAB 2012
Agam Maulana
6
eyes(n) Perintah untuk menghasilkan matriks identitas dengan ukuran n × n.
ones(n) Perintah untuk menghasilkan matriks satuan dengan ukuran n × n.
zeros(n) Perintah untuk menghasilkan matriks nol dengan ukuran n × n.
Apabila kita ingin membuat matriks sendiri, maka kita pun dapat dengan mudah
melakukannya. Berikut ini sebuah contoh perintah untuk menghasilkan matriks 2x2:
>> a_matrix = [1 2; 3 4]
Perhatikan bahwa untuk berpindah ke elemen pada kolom selanjutnya kita cukup
mengetikkan spasi, sedangkan untuk berpindah ke elemen pada baris berikutnya kita perlu
mengetikkan tanda “titik koma” (semicolon).
Operasi Aritmatik
Penjumlahan dan Pengurangan
Seperti yang terlihat pada Error! Reference source not found., operasi penjumlahan dapat
dengan mudah dilakukan dengan operator +. Yang perlu diingat adalah, bahwa semua
variabel dalam MATLAB dianggap sebagai matriks. Dengan demikian, ketika kita akan
melakukan operasi aritmatik, syarat-syarat operasi aritmatik dalam matriks harus dipenuhi.
Untuk operasi penjumlahan, ukuran matriks kedua variabel harus sama. Sebagai contoh,
perhatikan perintah-perintah berikut:
>> 3 + 3
>> [3 4] + [4 7]
>> [1 2; 3 4] + [5 6; 7 8]
Perintah seperti di atas tidak akan bermasalah pada MATLAB. Perhatikan bahwa
penjumlahan dilakukan terhadap elemen-elemen matriks yang memiliki indeks yang sama.
Selanjutnya, perhatikan perintah-perintah berikut:
>> [1 2] + [3; 4]
>> [2; 3] + [4 5; 5 6]
Perintah di atas tidak akan dapat dieksekusi oleh MATLAB karena tidak memenuhi aturan
operasi penjumlahan matriks: dimensi kedua operand harus sama. Aturan ini berlaku juga
untuk operasi pengurangan. Cobalah beberapa perintah pengurangan dan amati hasilnya.
Perkalian
Seperti yang telah kita ketahui, aturan perkalian matriks adalah apabila terdapat matriks A
Dasar-Dasar MATLAB 2012
Agam Maulana
7
dan matriks B, maka perkalian matriks A × B dapat dilakukan apabila ukuran A adalah m × n
dan ukuran B adalah n × o. Atau dengan kata lain, jumlah kolom pada matriks A harus sama
dengan jumlah kolom pada matriks B. Operator yang digunakan untuk perkalian adalah
operator *.
Selain untuk melakukan operasi perkalian pada matriks dengan syarat tersebut, operator *
juga digunakan untuk perkalian skalar dan perkalian skalar dengan matriks. Untuk lebih
memahami penggunaan operasi perkalian dalam MATLAB, cobalah untuk menjalankan
perintah-perintah berikut dan amati hasilnya:
>> [5 8] * [2; 2]
>> 2*[3 9; 7 2]
Selain itu, MATLAB juga memiliki operator perkalian lain, yaitu operator .*. Operator ini
digunakan untuk melakukan perkalian per elemen matriks. Dengan demikian, operator ini
mensyaratkan agar kedua operand untuk memiliki ukuran yang identik. Untuk mengetahui
perbedaannya dengan perintah perkalian matriks, coba jalankan perintah-perintah di bawah
ini dan amati perbedaannya:
>> [4 3] .* [2 2]
>> [9 2; 1 3] .* [1 2; 1 2]
Pembagian
Untuk operasi pembagian matriks, perlu memahami terlebih dahulu mengenai operasi
perkalian dan inverse matriks. Kita tentunya telah memahami operasi-operasi matriks berikut:
Ax = B
x = A-1.B
yA = B
y = B.A-1
Nah, untuk menghitung x kita menggunakan perintah A\B dengan syarat A dan B memiliki
jumlah baris yang sama. Sedangkan, untuk menghitung y kita menggunakan perintah B/A
dengan syarat A dan B memiliki jumlah kolom yang sama.
Selain kedua operasi pembagian tersebut, MATLAB juga dapat melakukan pembagian
matriks per elemen. Operator yang digunakan adalah ./ atau .\. Kedua operator tersebut
akan menghasilkan hasil yang sama. Syarat yang diperlukan adalah ukuran kedua matriks
harus identik.
Perpangkatan
Untuk operasi perpangkatan, operator yang digunakan adalah operator ^. Operator tersebut
merupakan operator untuk perpangkatan matriks. Apabila kita bermaksud untuk
memangkatkan masing-masing elemen matriks, maka operator yang digunakan adalah
Dasar-Dasar MATLAB 2012
Agam Maulana
8
operator .^.
Tabel 4. Macam-macam operator aritmatik
+ Operasi penjumlahan
- Operasi pengurangan
* Operasi perkalian
.* Operasi perkalian per element
\ Operasi matrix left division
/ Operasi matrix right division
./ Operasi pembagian per element
^ Operasi perpangkatan
.^ Operasi perpangkatan per element
Operasi-Operasi Dasar Matriks
Pada bagian ini, kita akan membahas beberapa operasi dasar matriks: transpose, inverse, dan
konvolusi.
Untuk melakukan transpose, dapat kita lakukan dengan operator '. Sebagai contoh, apabila
kita memiliki matriks A dan kita ingin men-transpose-nya, dapat kita lakukan dengan
perintah A'. Untuk meng-inverse matriks A tersebut, digunakan perintah inv(A). Perintah
inverse hanya dapat dilakukan apabila matriks A adalah matriks persegi.
Operasi konvolusi sangat banyak digunakan pada aplikasi pengolahan sinyal, pengolahan
citra, dan juga banyak aplikasi lainnya. Pada bahasa komputasi yang lain (misalnya C atau
Java) memerlukan penggunaan perulangan untuk dapat melakukan konvolusi. Sementara
dengan menggunakan MATLAB, operasi konvolusi dapat dilakukan dengan lebih mudah.
Untuk melakukan konvolusi antara matriks A dengan matriks B, maka dapat dilakukan
dengan perintah conv(A,B).
Dasar-Dasar MATLAB 2012
Agam Maulana
9
Menampilkan Grafik
Dalam banyak aplikasi, kita seringkali perlu untuk membuat grafik yang menampilkan data
atau menunjukkan hubungan antar variabel. Dengan menggunakan MATLAB, hal ini dapat
kita lakukan dengan mudah. Sebagai contoh, misalnya kita ingin membuat grafik dari fungsi
y = e-x sin(x). Pertama, kita siapkan rentang x yang diinginkan dengan perintah sebagai
berikut:
>> x = 0:0.01:30;
Dengan perintah tersebut, kita telah mempersiapkan x untuk rentang 0 hingga 10 dengan
ketelitian 0.01. Kemudian, kita buat fungsi y yang diinginkan dengan perintah berikut:
>> y = exp(-x) .* sin(x);
Perintah di atas akan mengkalkulasi nilai y sesuai dengan nilai x yang telah didefinisikan.
Perhatikan bahwa operator perkalian yang digunakan di sini adalah .* dan bukan *
(kenapa?).
Kemudian, untuk menampilkan grafik dari fungsi tersebut digunakan perintah sebagai
berikut:
>> plot(x,y)
Selain plot, ada banyak cara lain untuk menampilkan grafik. Berikut ini adalah fungsi-fungsi
yang dapat digunakan untuk menampilkan grafik dengan masing-masing tujuan yang
berbeda-beda:
area
bar
contour
errorbar
plot, plot3, loglog, semilogx, semilogy
quiver, quiver3
scatter, scatter3
stairs
stem, stem3
surf, mesh
M-files
Kita telah mempelajari beberapa perintah-perintah MATLAB sebagai perintah yang terpisah
dan berdiri sendiri. Apabila untuk menyelesaikan masalah kita memerlukan beberapa langkah
yang memerlukan banyak perintah berbeda dan berurutan, tentunya akan merepotkan apabila
kita harus mengetikkannya berkali-kali pada command window. Apalagi jika solusi tersebut
perlu kita uji dengan banyak masukkan berbeda secara berulang-ulang. Dalam kasus ini, kita
bisa menerapkan algoritma yang kita rancang dan mengimplementasikannya ke dalam sebuah
m-file.
Dengan m-file, kita dapat membuat sebuah program dari MATLAB. Sebagai latihan, buatlah
sebuah m-file melalui MATLAB (File New m-file) lalu kemudian ketikkan perintah
Dasar-Dasar MATLAB 2012
Agam Maulana
10
berikut:
im = imread('football.jpg'); imshow(im) title('gambar asli') imgray = rgb2gray(im); figure,imshow(imgray) title('gambar grayscale') im_plus = imgray + 20; figure,imshow(im_plus) im_filt = conv2(imgray,[-1 0 1;-1 0 1;-1 0 1],'same'); figure,imshow(im_filt)
Kemudian simpan dan jalankan perintah tersebut (F5). Amati hasilnya dan coba pahami
perintah-perintah di atas.
Control Structure
Control structure merupakan sebuah cara untuk mengendalikan alur program. Yang pertama
akan kita pelajari adalah struktur if-else. Berikut ini sebuah contoh struktur if-else:
if a == b message = 'a sama dengan b' elseif a > b message = 'a lebih dari b' else message = 'a kurang dari b' end
Selain menggunakan pola if-else, kita juga dapat menggunakan pola switch-case untuk
melakukan conditional selection. Berikut ini contohnya:
switch x case 0 message = 'bagian ini dieksekusi apabila x = 0' case 1 message = 'bagian ini dieksekusi apabila x = 1' case 2 message = 'bagian ini dieksekusi apabila x = 2' otherwise message = 'bagian ini untuk x selain 0, 1, dan 2' end
Selanjutnya, kita juga dapat melakukan instruksi perulangan menggunakan while dan for.
Contoh penggunaan perulangan while adalah sebagai berikut:
while x > 0 message = 'bagian ini dieksekusi selama x > 0' x = x - 1; end
Sementara untuk for, dapat dilakukan seperti contoh di bawah ini:
for i=1:10
Dasar-Dasar MATLAB 2012
Agam Maulana
11
a_vector(i) = i; end
Dalam struktur perulangan, dikenal perintah break dan continue. Perintah break akan
membuat eksekusi perulangan berhenti seketika. Perintah ini seringkali digunakan dalam
algoritma pencarian dimana ketika nilai yang dicari telah ditemukan, maka perintah break
dieksekusi untuk menghentikan perulangan perintah yang tidak perlu. Sementara itu, perintah
continue akan menyebabkan eksekusi mengabaikan perintah-perintah setelah continue
dan kemudian melanjutkan perulangan dari bagian awal perintah perulangan.
Fungsi
Fungsi merupakan sebuah struktur program yang tidak dapat berdiri sendiri. Fungsi
sebenarnya disimpan sebagai m-file. Namun berbeda dengan m-file biasa, sebuah fungsi yang
telah dibuat dapat dipanggil berkali-kali melalui command window ataupun m-file lain yang
kita buat. Dengan demikian, melalui fungsi kita dapat menerapkan prinsip code reuse. Kita
tidak perlu mengetikkan berkali-kali perintah yang sama apabila perintah-perintah tersebut
telah kita jadikan sebagai sebuah fungsi.
Sekarang kita akan mencoba membuat sebuah fungsi sederhana. Pertama, buatlah sebuah m-
file baru lalu ketikkan perintah berikut:
function luas = segitiga(alas,tinggi) luas = a*t/2; end
Simpanlah fungsi tersebut. Secara default, nama berkas fungsi akan menyesuaikan dengan
definisi yang kita buat. Pada fungsi di atas, kita mendeklarasikan nama fungsi segitiga
dengan parameter alas dan tinggi. Fungsi ini akan mengembalikan nilai luas kepada
pemanggil fungsi.
Untuk memanggil fungsi, ketikkan perintah berikut pada command window:
>> segitiga(5,2)
Amatilah hasilnya, apakah sesuai dengan luas segitiga yang seharusnya? Selanjutnya, cobalah
berbagai nilai yang lain untuk menguji fungsi tersebut.
Penutup
Alhamdulillah, modul ini ditulis sebagai pendamping pelatihan MATLAB pada Sabtu, 14
April 2012. Modul ini diharapkan dapat membantu peserta pelatihan untuk mempelajari
berbagai dasar-dasar dalam perintah MATLAB dan OCTAVE yang telah menjadi alat bantu
pembelajaran penting di dalam lingkungan Program Studi Teknik Elektro. Modul ini tentu
jauh dari sempurna apabila ditujukan bagi mahasiswa yang ingin menguasai berbagai fitur
dan perintah dalam MATLAB yang begitu banyak. Dalam hal ini, kemandirian belajar untuk
peserta sangat dianjurkan untuk dapat memanfaatkan MATLAB dalam berbagai kebutuhan
pembelajaran dan penelitian.