PRAKTIKUM ISYARAT DAN SISTEM TOPIK 0 TUTORIAL PENGENALAN MATLAB
A. Tujuan 1.
Mahasiswa mengenal lingkungan MATLAB dan mampu menggunakannya.
2.
Mahasiswa mampu menggunakan fungsi-fungsi dasar MATLAB yang berkaitan dengan analisa isyarat dan sistem.
3.
Mahasiswa mengenal dan dapat menggunakan M-file dan GUI dari MATLAB.
B. Dasar Teori . : Command Window, Workspace, Direktori dan Perintah Dasar : . MATLAB atau Matrix Laboratory adalah perangkat lunak yang sangat berguna dalam perhitungan serta analisa isyarat dan sistem. Sesuai namanya, semua data yang digunakan dalam perhitungan pada MATLAB disimpan dalam bentuk matriks. MATLAB dibuat dengan dasar bahasa pemrograman C. Berikut adalah tampilan layar utama dari MATLAB:
1
Layar bagian kanan adalah command window, pada layar ini kita dapat menjalankan semua fungsi pada MATLAB, termasuk help dan fungsi-fungsi umum pada command prompt. Sebagai contoh pertama, kita akan membuat “variabel a” yang merupakan matriks dengan elemen baris pertama 1, 2, 3 serta elemen baris kedua 4, 5, 6. Pada command window ketik: >> a=[1 2 3 ; 4 5 6]
kemudian tekan enter
a = 1 4
2 5
3 6
Perhatikan bahwa :: - “Variabel atau matriks a” yang baru terbentuk akan langsung ditampilkan oleh MATLAB. - MATLAB selalu menampilkan hasil dari statement yang dijalankan setelah menekan enter, untuk mencegah hal ini tambahkan titik koma (;) pada akhir statement. - Direktori aktif tempat kita melakukan pekerjaan maupun perhitungan tampak pada current directory di bagian atas command window.
Layar bagian kiri dapat menunjukkan workspace atau current directory (atau tab lainnya, tergantung pengaturan pada menu view). Current Directory menunjukkan file-file yang ada pada direktori aktif. Sedangkan Workspace menunjukkan variabel-variabel yang digunakan untuk menyimpan data pada perhitungan. Berikut adalah tampilan Workspace:
Pada Workspace terdapat informasi nama variabel penyimpan data, ukuran matriks data (baris x kolom), ukuran dari data dalam byte, dan class dari data tersebut.
Untuk menghapus variabel yang sudah tidak digunakan ketik pada command window: >> clear[spasi][nama variabel]
Atau ketik clear tanpa argumen untuk menghapus semua variabel pada workspace.
2
Cobalah ketikkan beberapa statement di bawah ini pada command window dan pahami kegunaannya: 1.
>> help sin
2.
>> help plot
3.
>> t=0:1:10 >> plot(t,sin(t))
4.
>> >> >> >> >> >> >>
a=[1 2 3];b=[4 5 6]; a+b c=a+b a’ 2*a a.*b a*b
Keterangan: - Nomor 1 dan 2 Help selalu berguna untuk mengetahui sintaks dan kegunaan setiap fungsi pada MATLAB.
- Nomor 3: Statement pertama membentuk matriks baris dengan nilai awal 0, nilai akhir 10 dan step (besarnya penambahan/pengurangan) sebesar 1. Statement kedua menggambarkan grafik dengan axis t dan ordinat sin(t).
- Nomor 4: Statement kedua menjumlahan matriks a dan matriks b dan hasilnya disimpan pada variabel ans (default dari MATLAB dan bersifat temporary, dapat tertimpa dengan operasi selanjutnya). Statement ketiga disimpan
di
sama dengan sebelumnya, hanya saja hasilnya
matriks
c.
Statement
keempat
dan
kelima
adalah
transpose dan perkalian dengan bilangan bulat. Statement keenam mengalikan masing-masing elemen dari matriks a dan b (element wise).
Statement
terakhir
akan
menghasilkan
error
karena
perkalian yang dilakukan adalah perkalian matriks (baris kali kolom) dengan orde yang sesuai. Coba kalian ubah orde matriks a dan b agar perkalian matriks berhasil dilakukan!!!
Karena MATLAB dibangun dengan bahasa pemrograman C, untuk itu terdapat operasi percabangan (if..else.., switch..case) dan perulangan (for.., while..). Kalian
coba sendiri ya, lihat sintaksnya pada help.
3
. : M-file : . Proses perhitungan di command window akan merepotkan pada skala besar karena setiap statement akan langsung dieksekusi ketika kita menekan tombol enter. Untuk mengatasinya kita dapat mengetikkan perhitungan yang banyak tersebut pada M-file. Proses pada M-File mirip dengan bahasa pemrograman, ketik semua listing kemudian jalankan secara sekuensial listing tersebut ketika perintah run dijalankan. Untuk membuat M-File pada menu layar utama MATLAB pilih File New M-File. Akan tertampil layar baru tempat kita mengetikkan semua listing kita. Cobalah listing berikut dan analisa sendiri kegunaannya (dasarnya sama dengan penjelasan halaman sebelumnya, atau cari di help): t=-pi:0.1:pi; y=sin(t); z=cos(t); subplot(2,1,1);plot(t,y);title('grafik sin(t)'); subplot(2,1,2);plot(t,z);title('grafik cos(t)');
Untuk menjalankan listing yang telah diketik, klik tombol run (
), tekan F5, atau pilih
menu Debug Run. Anda akan diminta untuk menyimpan M-file tersebut sebelum dijalankan (contoh: coba.m). NB :: Sering
terjadi
dikarenakan
kegagalan
pemberian
saat
nama
menjalankan
M-file
dengan
listing cara
M-file,
yang
salah,
hal
ini
seperti
berikut ini: 1.
Nama fungsi yang sudah ada di MATLAB. Contoh: sin.m, plot.m, mod.m
2.
Diawali dengan angka. Contoh: 1.m, 5coba.m
Sebagai tambahan, error pengetikkan juga akan ditampilkan pada command window. Statement yang tidak diakhiri dengan titik koma (;) juga akan menampilkan hasilnya pada command window.
M-file juga dapat kita gunakan untuk membuat fungsi baru. Misalkan kita ingin membuat fungsi yang akan menampilkan grafik sinus dari -2π s.d. 2π dan mengembalikan nilai amplitudonya dalam matriks. Parameter yang diberikan oleh user (passing parameter) adalah “amplitude” dan “frekuensi sudut”. Berikut Listing program-nya: function ret_amp=gambar_sin(amp, omega) %kalimat ini akan muncul saat diketik help gambar_sin t=-2*pi:0.1:2*pi; y=amp*sin(omega*t);
4
plot(t,y); grid on; %menampilkan garis bantu %membuat string judul=sprintf('grafik %i*sin(%i*t)',amp,omega); title(judul); ret_amp=y; %mengembalikan nilai amplitudo
Simpan M-file tersebut dengan nama yang sama dengan nama fungsinya, yakni gambar_sin.m
Cobalah gunakan fungsi ini dengan mengetikkannya pada command window. Contoh: >> amplitudo_sin=gambar_sin(4,2);
Akan tertampil grafik sinus, nilai amplitudonya akan tersimpan pada variable amplitudo_sin, cobalah lihat isi dari variabel amplitudo_sin. Plot disini adalah untuk menggambarkan sinyal dalam ranah waktu kontinu. Untuk ranah waktu diskrit, akan digunakan stem.
NB: (%) menunjukkan komentar, semua kalimat setelah tanda ini tidak akan dijalankan oleh MATLAB saat run. Komentar tepat di bawah function akan muncul saat diketik: help [spasi] [nama fungsi]
Fungsi
dapat
digunakan
jika
fungsi
terdapat
pada
direktori
aktif
MATLAB.
. : GUI (Graphical User Interface) : .
MATLAB juga memiliki GUI seperti Visual Basic atau bahasa pemrograman visual lainnya. Prinsipnya pun sama. Untuk memudahkan pemahaman GUI berikut adalah langkah-langkah pembuatan GUI dari penampil grafik sinus dengan input berupa amplitudo dan offset:
1. Pada layar utama MATLAB, pilih File New GUI. Pilih ”Blank Gui” dan tekan OK. 2. Terdapat banyak pilihan obyek yang dapat kita gunakan pada toolbox sebelah kiri (pushbutton, edit text, axes, radiobutton, dll). Drag and drop axes, dua buah pushbutton, dua buah edit text dan dua buah static text. Sesuaikan ukurannya
hingga nampak seperti tampilan layar berikut ini:
5
3. Jika kita mengklik ganda salah satu dari obyek-obyek tersebut, akan tertampil property inspector yang berisi macam-macam properti dari obyek tersebut yang dapat kita ubah. Untuk saat ini ubah: - string static text atas menjadi amplitudo, static text bawah menjadi offset - kosongkan string kedua edit text - tag edit text atas menjadi amplitudo, dan offset untuk edit text bawah - string pushbutton kiri menjadi GO, string pushbutton kanan menjadi Exit - tag pushbutton kiri menjadi tblGO, tag pushbutton kanan menjadi tblExit - tag axes menjadi layar Tampilan akan berubah menjadi seperti berikut ini:
4. Save file GUI dengan sembarang nama, kemudian klik kanan pushbutton GO, pilih view callbacks callback
Di sini akan terlihat callback dari obyek-obyek yang telah kita buat tadi.
6
5. Ketikkan listing di bawah ini pada callback dari tblGO. Listing ini akan dijalankan saat tombol GO ditekan. %mendapatkan nilai dari edit text str_amp=get(handles.amplitudo,'string'); str_off=get(handles.offset,'string'); %ubah dari string ke num amp=str2num(str_amp); offset=str2num(str_off); t=-2*pi:0.1:2*pi; y=offset+(amp*sin(pi*t)); %menentukan axes yang akan digunakan axes(handles.layar); plot(t,y); grid on; judul=sprintf('grafik %i + %i sin (pi*t)',offset,amp); title(judul);
6. Ulangi langkah 4 pada tombol exit, ketikkan close pada callback-nya, program selesai. Kemudian coba jalankan program!!! *) Kendala pada GUI MATLAB ialah setiap variabel yang berada pada sebuah callback tak dapat diakses oleh callback lain. Dengan kata lain semua variabel adalah local variable. Untuk itu, pada beberapa kasus kita perlu mengubah local variable ini menjadi global variable. Contohnya jika kita memodifikasi listing callback tombol GO sebelumnya: str_amp=get(handles.amplitudo,'string'); str_off=get(handles.offset,'string'); amp=str2num(str_amp); offset=str2num(str_off); handles.global_amp=amp; guidata(h,handles); Pada contoh di atas tercipta global variable global_amp yang memiliki nilai sama dengan nilai local variable amp. Statement guidata(h,handles) berguna untuk mengupdate jumlah handles yang ada (akibat tercipta handles baru pada GUI, yakni global_amp).
*) Bentuk umum dari statement get yang digunakan di atas adalah: get(handles.[nama/tag
obyek],[jenis
properti
yg
ingin
diperoleh
nilainya]); Selain get, terdapat juga statement set yang memiliki bentuk umum: set(handles.[nama/tag
obyek],[jenis
properti
yg
ingin
diubah
nilainya],[nilai baru]); Contoh: set(handles.amplitudo,'visible',’on’);
C. Petunjuk Praktikum Untuk praktikum topik pengenalan MATLAB ini pelajarilah cara membuat fungsi dan perulangan (statement for) di MATLAB. 7