PETUNJUK PRAKTIKUM DASAR PEMOGRAMAN TEKNOLOGI INDUSTRI PERTANIAN FAKULTAS PERTANIAN UNIVERSITAS TRUNOJOYO MADURA 2014
Pertemuan 1 Pengenalan MATLAB Tujuan Instruksional Umum Mahasiswa dapat memahami karakteristik MATLAB Tujuan Instruksional Khusus Mahasiswa mampu menjelaskan karakteristik MATLAB Mahasiswa mampu menggunakan command windows MATLAB dengan format, karakter spesial, angka dan operasi matematika serta operasi simbol pada MATLAB. MATLAB singkatan dari MATrix LABoratory, merupakan bahasa pemrograman yang dikembangkan oleh The Mathwork.inc (http://www.mathwork.com). Bahasa pemrograman ini banyak digunakan untuk perhitungan numerik keteknikan, komputasi, simbolik, visualisasi, grafis, analisis data matematis, statistika, simulasi, pemodelan, dan design GUI (Graphical User Interface). Karateristik MATLAB: Bahasa pemrogramannya didasarkan pada matriks (baris dan kolom) Lambat (dibanding dengan Fortran atau C) karena bahasanya langsung diartikan. Sebagai contoh, tidak diperlukan pre-compiled. Automatic memory management, misalnya kita tidak harus mendeklarasikan arrays terlebih dahulu Tersusun rapi Memiliki waktu pengembangan program yang lebih cepat dibandingkan dengan bahasa pemrograman tradisional seperti Fortran atau C Dapat diubah ke bahasa C lewat MATLAB Compiler untuk efisiensi yang lebih baik. Tersedia banyak toolbox untuk aplikasi-aplikasi khusus Command Windows 1. Klik dua kali ikon MATLAB 7.0.1 di desktop, maka akan muncul jendela perintah (command windows) MATLAB seperti dibawah ini: Gambar 1.1. Command windows MATLAB 2
2. Untuk membersihkan command windows, ketik clc dan tekan <enter > pada keyboard. command windows berfungsi untuk memperoleh informasi tentang berbagai perhitungan matematis maupun untuk mengeksekusi suatu program MATLAB. Sebagai contoh, ketik perintah di bawah ini pada command windows. Untuk melihat hasilnya tekan <enter > >> a=1+6 a = 7 >> g1=cos(3*pi/4) g1 = -0.7071 3. Untuk mengubah format angka yang tampil dapat dilakukan dengan mudah, yaitu dengan mengetikan: >> format long >> g1 g1 = -0.70710678118655 >> format bank >> g1 g1 = -0.71 Berbagai Karakter Spesial 1. Tanda % merupakan penanda komentar. Keterangan setelah tanda tersebut akan diabaikan atau tidak akan dieksekusi dalam proses perhitungan. Misalnya: >> y=2:1:5 % akan menghasilkan y= 2 3 4 dan 5 y = 2.00 3.00 4.00 5.00 2. Tanda ; merupakan perintah pembatas yang tidak ditampilkan di jendela perintah. Merupakan pemisah antara kolom dan baris dalam matriks. Misalnya: >> A=[1 2 4;4 6 3;2 6 5] A = 1.00 2.00 4.00 4.00 6.00 3.00 2.00 6.00 5.00 3. Tanda : merupakan pembatas jangkauan. Contoh: >> C=[3:2:9] C = 3.00 5.00 7.00 9.00 angka akan bertambah terus mulai dari 3 dengan selisih 2 sampai nilai 9 4. Tanda merupakan transpose matriks. Contoh: >> A=[1 2 4;4 6 3;2 6 5] A = 1.00 2.00 4.00 4.00 6.00 3.00 2.00 6.00 5.00 3
>> B=A' B = 1.00 4.00 2.00 2.00 6.00 6.00 4.00 3.00 5.00 5. Tanda... digunakan saat menulis baris perintah yang terlalu panjang, untuk menghubungkan antara perintah baris pertama dengan beris berikutnya. Contoh: >> X=1+2+3+4+5+6+... 7+8+9+10 X = 55.00 Angka dan Operasi Aritmatika Ada tiga jenis angka di MATLAB: Bulat (integer) Nyata (Real Number) Kompleks (Complex Number) Bilangan bulat adalah bilangan yang tidak mengandung bilangan desimal. Contoh : >> format >> d=10 d = 10 Bilangan real. Contoh: >> xr=12.6054 xr = 12.6054 batas atas dan bawah bilangan real >> realmax %batas atas bilangan real di MATLAB ans = 1.7977e+308 >> realmin %batas bawah bilangan real di MATLAB ans = 2.2251e-308 Bilangan kompleks. Contoh: >> i ans = 0 + 1.0000i >> x=1+sqrt(3)*i x = 1.0000 + 1.7321i >> A=[1 j;-j*5 2] A = 1.0000 0 + 1.0000i 0-5.0000i 2.0000 Operasi dasar aritmatika yang dikenali di MATLAB adalah sebagai berikut: Operasi Simbol Penambahan + Pengurangan - Perkalian * Pembagian / atau \ Perpangkatan ^ 4
>> a=10 a = 10 >> a^2 ans = 100 >> a^3 ans = 1000 >> 1+2*4/3 ans = 3.6667 >> 1+2/4*3 ans = 2.5000 Tetapi, coba kita lihat contoh ke-4 dan ke-5, yaitu bagaimana urutan operasi pada angka-angka tersebut. Untuk bentuk yang lebih jelas operasi 1+2*4/3 dapat dituliskan sebagai 1+((2*4)/3) = 1+8/3 = 1+ 2.667 = 3.667 Sedangkan operasi 1+2/4*3 dapat dituliskan sebagai 1+2/4*3 = 1+(2/4)*3 = 1 + 0.5 *3 = 2.5000 Jadi, dalam mengeksekusi sebuah operasi matematika, Matlab mengikuti aturan-aturan sebagai berikut: Matlab memprioritaskan operasi yang berada di dalam kurung Operasi yang melibatkan operator * dan / (dapat * / atau / *) bekerja dari kiri ke kanan. Operasi matematika yang melibatkan operator + dan (dapat + - atau - +) juga bekerja dari kiri ke kanan. Tugas 1 Lakukan evaluasi terhadap pernyataan Matlab berikut ini dengan perhitungan manual terlebih dahulu dan setelah itu dicek dengan Matlab. 5
Pertemuan 2 Pengenalan MATLAB (2) Tujuan Instruksional Umum Mahasiswa dapat memahami dan menjelaskan operator assignment, cara membuat variable, format penulisan angka, perintah pembulatan angka serta perintah tambahan pada MATLAB Tujuan Instruksional Khusus Mahasiswa mampu menggunakan operator assignment, membuat variable, format penulisan angka, perintah pembulatan angka serta perintah tambahan pada command windows MATLAB Operator Assignment Tanda = disebut sebagai operator assignment. Ada dua bentuk persamaan matematika seperti di bawah ini x+4=7 dan x=7 4 Apabila matlab diberikan persamaan seperti pada poin 1) maka akan muncul komentar kesalahan >> x+4=7;??? x+4=7; Error: Missing operator, comma, or semicolon. Sedangkan, x dapat menyatakan suatu nilai apabila diberikan perintah menghitung hasil suatu operasi tertentu. >> x=7-4 x = 3 Cara membuat variable Matlab tidak memerlukan deklarasi variabel atau pernyataan dimensi pada setiap variabel yang akan digunakan dalam sebuah program komputer. Variabel dalam Matlab secara otomatis akan dibuat dan disimpan setiap kali Matlab menemukan nama variabel baru. Disamping itu, hal yang sangat penting untuk diingat bahwa variabel Matlab bersifat case sensitif, artinya antara huruf besar dengan huruf kecil dibedakan. Dibawah ini diberikan beberapa aturan penulisan variabel dalam Matlab : 1. Variable tidak boleh diawali dengan angka, misalnya 2abc, 45y, 3ok43 2. Variabel dapat merupakan kombinasi antara huruf dan angka, misalnya ok45, ok45ok, abc432 dsb 3. Variabel tidak boleh menggunakan karakter khusus Matlab, misalnya %, #, -, +, =, dsb. Misalnya %ok, net-cost, %x, @sign dsb. 4. Hindari memberikan nama variabel dengan nama-nama khusus yang ada di Matlab, misalnya hindari memberikan nama variabel dengan nama pi, eps, i, j. Karena pi=22/7, eps= 2-54, i dan j memiliki harga -1. 5. Disarankan pembuatan variabel singkat tetapi penuh makna (informatif). Hal ini untuk menghindari kesalahan penulisan variabel yang berulang-ulang. Format Penulisan angka Dibawah ini diberikan format penulisan angka untuk berbagai keperluan. Format penulisan angka tersebut dapat diaktifkan melalui setting preference atau dituliskan langsung. 6
Tabel 2.1. Format penulisan angka. Perintah Pembulatan Angka Beberapa perintah Matlab untuk membulatkan angka antara lain ceil(x) : perintah untuk membulatkan angka ke bil integer di atasnya floor(x): perintah untuk membulatkan angka ke bil integer di bawahnya fix(x) : perintah untuk membulatkan angka ke bil integer ke atas atau ke bawah menuju arah nol round(x): perintah untuk membulatkan angka ke bil integer terdekat mod(x,y): sisa yang ditinggalkan setelah operasi pembagian dengan definisi x-n*y dimana n=floor(x./y). abs(x): harga mutlak dari x. sign(x): tanda dari x. factor(x): faktor utama dari x. Perintah Tambahan Matlab Perintah tambahan yang berguna untuk pemrograman 1. clc : menghapus layar di command window 2. close all : menghapus semua gambar yang tampil sebelumnya. 3. clear : perintah untuk menghapus data di memori Matlab 4. cd : perintah untuk mengubah direktori 5. pwd : perintah untuk mengetahui kita berada di direktori mana pada saat ini. 6. dir : perintah untuk mengetahui file apa saja yang ada di current directory 7. mkdir : perintah untuk membuat direktori dibawah current direktori 8. delete : perintah untuk menghapus file 9. who : menampilkan semua variabel saat ini. 10. whos : menampilkan semua variabel saat ini bersama dengan informasi tentang ukuran, bytes, class dll 11. what : menampilkan semua file dengan ekstensi.m (M-File) 12. lookfor : perintah untuk mencari file dengan katakunci. Tugas 2 1. Jelaskan dengan alasan yang masuk akal manakah penulisan variabel yang tidak benar berikut ini a) b32 b) 2d c) s34d d) laju_sepeda e) _laju f) %kecepatan g) kecepatan& 7
h) laju sepeda i) 'a'nu j) pi k) realmax l) a^3 2. Tentukan manakah bilangan-bilangan berikut ini yang tidak diterima oleh Matlab a) 2,34 b) 2.32 c) 0.32 d) -3214 e) 2.3e-4 f) 5.2e+2 g) 5e^3 h) 3.43e5.3 i) 34.2*e^2 3. Terjemahkan pernyataan-pernyataan berikut ini dalam Matlab 8
Pertemuan 3 Fungsi-fungsi dalam MATLAB (1) Tujuan Instruksional Umum Mahasiswa dapat memahami dan menjelaskan fungsi bawaan, konstanta khusus, fungsi meshgrid, fungsi feval, fungsi polyval, dan fungsi polyfit pada MATLAB Tujuan Instruksional Khusus Mahasiswa mampu menggunakan fungsi bawaan, konstanta khusus, fungsi meshgrid, fungsi feval, fungsi polyval, dan fungsi polyfit pada command windows MATLAB Fungsi Bawaan Matlab (Built-In Functions) Fungsi Trigonometri Ada beberapa fungsi trigonometri yang kita kenal dalam matematika. Fungsi-fungsi tersebut masuk ke dalam fungsi bawaan Matlab. Fungsi-fungsi trigonometri tersebut antara lain: sin(), cos(), tan(), sinh(), cosh(), tanh(), asin(), acos(), atan(), asinh(), acosh()dan atanh(). Fungsi Dasar Matlab Disamping fungsi trigonometri, fungsi-fungsi dasar juga penting. Beberapa fungsi dasar tersebut antara abs(), sqrt(), exp(), log(), log10(), log2(). Untuk lebih jelasnya, lihat tabel dibawah ini Tabel 3.1 Fungsi dasar Matlab Konstanta Khusus Matlab Di pasal terdahulu kita sudah menyinggung beberapa konstanta khusus yang mana sebaiknya dihindari untuk didefinisikan kembali sebagai konstanta. Beberapa konstanta khusus tersebut antara lain: Tabel 3.2 Konstanta khusus 9
Menggunakan Fungsi Meshgrid Fungsi meshgrid digunakan untuk membuat jaring-jaring (grid) pada bidang x-y yang diatasnya terdapat permukaan fungsi. Perintah ini akan mentransformasi vektor x dan y pada domain tertentu menjadi bentuk array X dan Y yang dapat digunakan untuk mengevaluasi fungsi dengan dua variabel dan plot permukaan 3-D. Contoh: Tentukan grafik fungsi z=x 2 y 2 pada domain 0 x 5 dan 0 y 5 Penyelesaian Langkah pertama adalah menentukan jaring-jaring pada bidang x-y dengan menggunakan meshgrid. >> x=0:5; >> y=0:5; >> [X Y]=meshgrid(x,y); Efek dari penggunaan meshgrid ini adalah kolom dari matriks X memiliki elemen yang bergerak sesuai sumbu x. Sedangkan, matriks Y memiliki elemen yang bergerak sesuai sumbu y. Selanjutnya harga z nya adalah >> z=x.^2-y.^2; Sebagai contoh pada titik jaring (3,4) harga z=3 2 2 2 =5. Dengan demikian kita tidak usah khawatir dengan penggunaan meshgrid. Untuk menampilkan grafiknya >> mesh(x,y,z) Gambar 3.1 mesh (X,Y,z) Fungsi Khusus Matlab 10
Matlab memiliki fungsi khusus yang sangat berguna untuk perhitungan numerik. Dalam bab ini kita akan membahas beberapa fungsi khusus yang biasa digunakan dalam bidang sains maupun teknik. Fungsi feval() Fungsi feval() dapat digunakan untuk mengevaluasi sebuah fungsi. Untuk itu, pertama kali yang harus dipersiapkan adalah membuat fungsi yang akan dievaluasi. Kali ini, kita menggunakan fungsi yang sudah disediakan oleh Matlab bernama humps. Untuk mengevaluasi fungsi humps tersebut, kita harus membuat fungsi handle dengan menggunakan tanda @ (baca et). >> fhandle=@humps; >> feval(fhandle,1) ans = 16 Fungsi Polyval Fungsi polyval digunakan untuk menentukan nilai sebuah polynomial dalam bentuk p(x)=a 0 +a 1 x 1 +a 2 x 2 +a 3 x 3 +a 4 x 4 +...+a n 1 x n 1 +a n x n Matlab memiliki cara sederhana untuk menyatakan polinomial seperti di atas dengan cara p=[ a n a n 1... a 3 a 2 a 1 a 0 ] Contoh: Diketahui sebuah polinomial berbentuk p(x)=x 4 +3x 2 +4x+5 akan dievaluasi pada x=2, 3 dan 4. Jawab: p=[1 0 3 4 5] Pertama, kita nyatakan polinomial yang akan dievaluasi berbentuk p=[1 0 3 4 5]. Kedua, kita nyatakan titik evaluasi yaitu x=[2,-3,4] Ketiga, mengevaluai polinomial pada x, yaitu polyval(p,x) Jika ditulis dalam command window >> p=[1 0 3 4 5]; >> x=[2,-3,4]; >> polyval(p,x) ans = 41 101 325 Fungsi Polyfit Jika kita telah memperoleh hasil dari sebuah eksperimen, maka kadang kita perlu mencocokan dengan bentuk fungsi apa data yang telah diperoleh. Mungkin saja cocok dengan fungsi yang berbentuk linier, kuadratis, polinomial tiga atau polinomial lainnya. Dengan menggunakan fungsi ini, kita dapat mencocokkan data kita. Bentuk umum fungsi ini adalah: p = polyfit(x,y,n) dengan n adalah polinomial orde n, yaitu polinomial yang digunakan untuk mencocokkan data. Contoh Dari hasil eksperimen diperoleh data sebagai berikut 11
Dari data eksperimen yang diperoleh, kita akan melakukan pencocokan ke bentuk polinomial tertentu. Tetapi, kalau kita lihat dari trend data y, kita bisa menduga bahwa data kita mendekati polinomial orde 2 (kuadratis). x=[1:10]; y=[1.3,3.2,11.3,15.1,25.5,38.2,47.1,68.2,81.3,98.2]; p=polyfit(x,y,2) Akhirnya diperoleh p berbentuk: p = 0.9284 0.7693-1.0350 yang merupakan koefisien polinomial p. Sekarang kita memiliki polinomial hasil pencocokan berbentuk p=0.9284 x 2 +0.7693 x 1.0350 Untuk melihat seberapa bagus hasil pencocokan yang kita lakukan, marilah kita lakukan evaluasi pada titik-titik data yang kita miliki. f=polyval(p,x); tabel=[x' y' f' (y-f)'] tabel = 1.0000 1.3000 0.6627 0.6373 2.0000 3.2000 4.2173-1.0173 3.0000 11.3000 9.6286 1.6714 4.0000 15.1000 16.8968-1.7968 5.0000 25.5000 26.0218-0.5218 6.0000 38.2000 37.0036 1.1964 7.0000 47.1000 49.8423-2.7423 8.0000 68.2000 64.5377 3.6623 9.0000 81.3000 81.0900 0.2100 10.0000 98.2000 99.4991-1.2991 Sekarang, marilah kita tampilkan selengkapnya dalam bentuk grafik dengan menuliskan code melalui jendela editor. Gambar 3.2 Grafik hasil evaluasi di tiap titik Salah satu keunggulan Matlab adalah kemudahannya untuk membuat grafik dan suara. Misalkan membuat grafik 2-dimensi, 12
>> x=linspace(-5,5,200); >> y=x.^2+cos(10*x); >> plot(x,y) Gambar 3.2. Grafik dengan perintah Plot deret x dan y Atau bahkan grafik 3-dimensi: >> u=linspace(-4,4,50); >> [U,V]=meshgrid(u,u); >> W=cos(U).*cos(V/3); >> surf(u,v,w) Gambar 3.3. Grafik dengan perintah Surf deret x dan y Tugas 3 1. Misalkan: x=π/6, y=0,001; Hitunglah : a). y b). x e c). Sin x d). Cos 2x e). tan3x f). log 10 y g). log 2 y h). ln y 2. Misalkan: p=9+16i dan q=-9+16i ; Hitunglah : a). r = pq b). S= q p c). p r d). r + s e). p 2 f). q g). p h). q i). r j). s 3. Pecahkanlah persamaan linier tiga variabel berikut ini : x + 2y -3z = -7 4x + 5y + 6z = 11 7x + 8y + 9z = 17 13
1. Anda ubah ke dalam btk polinomial >> p=[1 2-3;4 5 6;7 8 9] 2. Anda masukkan nilai y y=[-7 11 17] 3. Jawaban=inv(p)*y... x... y... z 14
Pertemuan 4 Fungsi-fungsi dalam Matlab (2) Tujuan Instruksional Umum Mahasiswa dapat memahami dan menjelaskan fungsi polyder, fungsi roots, fungsi poly, fungsi conv, dan fungsi deconv pada MATLAB Tujuan Instruksional Khusus Mahasiswa mampu menggunakan fungsi polyder, fungsi roots, fungsi poly, fungsi conv, dan fungsi deconv pada command windows MATLAB Fungsi polyder Fungsi polyder digunakan untuk menurunkan polinomial yang kita miliki. Bentuk umum penggunaan fungsi polyder adalah k = polyder(p) atau k = polyder(a,b) Contoh Turunkan polinomial di bawah ini P(x) =4x 4 +3x 2 +4x+5 Jawab p=[4 0 3 4 5]; polyder(p) ans = 16 0 6 4 Hasilnya jika dituliskan dalam bentuk ungkapan matematis 16 x 3 +6 x+4 Contoh Turunkan polinomial di bawah ini P(x)= (4x 4 +3 x 2 +4x+5)(2x 3 +x 2 +3 x+1) Jawab a=[4 0 3 4 5]; b=[2 1 3 1]; p=polyder(a,b) p = 56 24 90 60 69 40 19 atau p(x)=56 x 6 +24 x 5 +90 x 4 +60x 3 +69x 2 +40 x+19 Fungsi roots Fungsi roots digunakan untuk memperoleh akar dari sebuah polynomial orde n. Bentuk umum dari fungsi ini adalah r = roots(c) 15
Contoh Diketahui sebuah polinomial p(x)=4x 4 +3x 2 +4x+5. Dapatkan akar-akar polinomial tersebut dengan menggunakan fungsi roots. Jawab Polinomial p(x)=4x 4 +3x 2 +4x+5 dapat dituliskan dalam Matlab berbentuk p=[ 4 0 3 4 5] Akar polinomial tersebut adalah roots(p) ans = 0.6364 + 1.0830i 0.6364-1.0830i -0.6364 + 0.6222i -0.6364-0.6222i Fungsi poly Fungsi poly digunakan untuk menentukan bentuk polinomial setelah akar-akar polinomial tersebut diketahui. Bentuk umum fungsi poly adalah p = poly(r) Contoh Diketahui akar polinomial p adalah 1,2,3,4 dan 5. Tentukan bentuk polinomialnya. Jawab >> r=[1 2 3 4 5]; >> poly(r) ans = 1-15 85-225 274-120 atau p(x )=x 5 15 x 4 +85 x 3 225 x 2 +274 x 120 Fungsi conv Fungsi conv digunakan untuk mengalikan polinomial. Bentuk umumnya adalah w = conv(u,v) Contoh Diketahui dua buah polinomial u( x )=x 2 +3x+2 dan v (x )=x 3 +2x 2 +3x+1. Tentukan hasil perkalian dua polinomial tersebut. Jawab >> u=[1 3 2]; >> v=[1 2 3 1]; >> conv(u,v) ans = 1 5 11 14 9 2 atau x 5 +5 x 4 +11 x 3 +14 x 2 +9x+2 Fungsi deconv 16
Fungsi deconv berkebalikan dengan conv. Fungsi ini akan melakukan pembagian dua buah polinomial. Bentuk umumnya adalah [q r] = deconv(v,u) dengan q dan r masing-masing adalah hasil bagi dan residu. Contoh Diketahui dua buah polinomial yaitu p1 (x )=2x 4 +3x 3 +x 2 +4x+5 dan p2 (x )=x 2 +3x+4, maka carilah hasil bagi antara p1 dengan p2 beserta residunya. Jawab Dengan menggunakan fungsi deconv, maka kita dapat memperoleh hasil bagi dan residunya. >> p1=[2 3 1 4 5]; >> p2=[1 3 4]; >> [q r]=deconv(p1,p2) q = 2-3 2 r = 0 0 0 10-3 atau jika dinyatakan dalam bentuk matematis q=2x 2 3x+2 dan r=10 x 3 Tugas 4 1. Carilah akar persamaan dari y=x 4-10x 2 +9 dan p=4x 4 +x 2 +6x+8 2. Diketahui dua buah polinomial u( x )=3x 2 +2x+3 dan v (x )= 4x 2 +5x+6. Tentukan hasil perkalian dua polinomial tersebut. 3. Turunkan polinomial di bawah ini P(x)= (3 x 2 +6x+9)( x 2 +2 x) 4. Polinomial p(x) = 3x 2 + 2x + 1. Tentukan hasilnya jika dinilai pada x = 5, 7 dan 9 17
Pertemuan 5 Menggambar Grafik 2-Dimensi dan 3-Dimensi Tujuan Instruksional Umum Mahasiswa dapat memahami dan menjelaskan cara menggambar 2 dimensi dan 3 dimensi (plot garis, plot permukaan, plot kontur) menggunakan MATLAB Tujuan Instruksional Khusus Mahasiswa mampu menggunakan fungsi plot untuk menggambar 2 dimensi (2D) dan 3 dimensi (3D) pada command windows MATLAB Mahasiswa mampu menggunakan beberapa command dalam MATLAB yang berkaitan dalam pembuatan plot 2D dan 3D. Plot 2-Dimensi Untuk memvisualisasi data secara 2-dimensi ataupun 3-dimensi, kita menggunakan berbagai command plotting; di mana command yang paling dasar ialah plot. Anda bisa praktekkan contoh berikut ini. >> x = 1:8; y=[20 22 25 30 28 25 24 22]; >> plot(x,y) Akan muncul window baru berisi figure hasil plotting. Perhatikan kegunaan dari ikon yang ada. Gambar 5.1 Jendela Figure Seperti yang Anda lihat, titik (1,20), (2,22), (3,25), (4,30), dst...terhubung dengan garis lurus. Sekarang Anda bisa coba untuk membalik urutan sintaks dan mengamati grafik yang dihasilkan! >> plot(y,x) Setiap gambar di figure window, bisa Anda print melalui menu File Print (Ctrl+P), atau Anda simpan sebagai file FIG dengan File Save (Ctrl+S), ataupun Anda ekspor sebagai file JPG, EMF, BMP, dsb dengan File Export. 18
Untuk menambahkan judul, label, dan grid ke dalam hasil plot Anda, digunakan command berikut ini. Sekarang mari kita lihat contoh plot yang lain. Kita akan memplot kurva y = x 3 pada rentang x = -3 hingga x = +3. >> clear >> x=-3:0.1:3; %inkremen=0.1 agar kurva terlihat mulus >> y=x.^3; >> plot(x,y) >> xlabel('sumbu X'), ylabel('sumbu Y') >> title('kurva Y=X^3') >> grid on Gambar 5.2. Contoh plot : kurva Y = X 3 Ketika Anda menggunakan command plot, gambar sebelumnya di figure window akan terhapus. Lalu bagaimana jika kita ingin memplot beberapa fungsi dalam satu figure sekaligus? Dalam hal ini kita bisa gunakan command hold. Berikut ini contoh memplot beberapa kurva eksponensial negative sekaligus. >> clear >> x=linspace(0,5,500); >> y1=exp(-x); plot(x,y1); >> grid on >> hold on >> y2=exp(-0.5*x); plot(x,y2); >> y3=exp(-0.25*x); plot(x,y3); >> y4=exp(-0.1*x); plot(x,y4); >> xlabel('sumbu-x'), ylabel('sumbu-y') >> title('perbandingan fungsi eksponensial negatif') 19
Gambar 5.3. Hasil plot dengan hold on Plot 3-Dimensi Dalam subbab ini akan dibahas tiga macam plot 3-dimensi: plot garis, plot permukaan (surface), dan plot kontur. Plot Garis Mari kita mulai dengan plot garis di dalam ruang 3-dimensi. Ini mirip dengan plot 2-dimensi, tetapi kali ini kita gunakan command plot3(... ), dan dibutuhkan vektor z, untuk dimensi ketiga. >> X = [10 20 20 10 10]; >> Y = [5 5 15 15 5]; >> Z = [0 0 70 70 0]; >> plot3(x,y,z); grid on; >> xlabel( sumbu X ); ylabel( sumbu Y ); >> zlabel( sumbu Z ); >> title ( Contoh plot 3-D ); >> axis([0 25 0 20 0 80]) Gambar 5.4. Contoh plot 3-dimensi dengan command plot3 Perhatikan bahwa command label, title, grid, axis, hold, dan subplot juga berlaku di sini. Anda juga bisa merotasi gambar 3-dimensi tersebut dengan cara men-klik ikon rotate dan dragging mouse di atas gambar. Sekarang kita coba contoh yang lain untuk menggambarkan helix. >> t=0:0.1:25; >> X=sin(t); Y=cos(t); Z=0.5*t; >> plot3(x,y,z) >> xlabel( sumbu X ); ylabel( sumbu Y ); 20
>> zlabel( sumbu Z ); >> title ( Helix ); Gambar 5.5. Contoh penggunaan plot3 Plot Permukaan Sementara itu, untuk plot permukaan (surface) dalam ruang 3-dimensi digunakan command mesh atau surf. Contoh berikut ini menggambarkan fungsi dua variabel z = x2 + y2. Caranya ialah: 1) Definisikan batas-batas nilai x dan y yang akan diplot 2) Gunakan command meshgrid untuk mengisi bidang-xy dengan jalinan titik 3) Hitunglah fungsi 3-dimensi untuk jalinan titik tersebut 4) Buatlah plot dengan command mesh atau surf. Sebagai contoh: >> batas_x = -10:1:10; batas_y = -10:4:10; >> [X,Y] = meshgrid(batas_x,batas_y); >> Z = X.^2 + Y.^2; >> mesh(x,y,z); Gambar 5.6. Hasil plot dengan mesh Kini Anda mendapatkan plot 3-dimensi. Kini cobalah >> surf(x,y,z); 21
Gambar 5.6. Hasil plot dengan surf menambahkan label dan title seperti plot pada umumnya. Sekarang kita coba contoh yang lain untuk memplot fungsi 3-Dimensi sin( r) 2 2 z =, dimana r = x + y. r >> x = linspace(-10,10,40); y = x; >> [X,Y] = meshgrid(x,y); >> R = sqrt(x.^2+y.^2); >> Z = sin(r)./(r+eps); >> surf(x,y,z); Gambar 5.7. Plot 3-dimensi dari fungsi sin (r)/r di sini kita menggunakan variabel eps, untuk mencegah perhitungan 0/0 ketika R = 0. Plot Kontur Fungsi dua variabel, misalkan z = f(x,y) bisa kita gambarkan konturnya dalam dua dimensi dengan command berikut ini: 22
Mari kita gambarkan kontur dari fungsi sin(r)/r di atas, lalu bandingkan dengan plot permukaannya: >> figure; contour(x,y,z); >> figure; mesh(x,y,z); Tugas 5 Gambar 5.8. Contoh plot kontur 1. Gambarkan kurva y=x 4-9x 2 pada rentang -6 x 6. Buatlah inkremen x cukup kecil sehingga kurva terlihat mulus. 2. Gambarkan kurva-kurva berikut pada rentang -10 x 10 dalam satu figure sekaligus 2 2 y = 100 + x y = 100 +2x y = 100 + 4x y = 100 +16x 3. Gambarkan kurva berikut ini di dalam ruang 3-D : x = 1+cos t y = 2+sin t 0 t 2π z = 1-cos 2t 4. Plot fungsi dua variabel berikut ini: z = x 2 y 2, untuk rentang -5 x 5, -5 y 5. 5. Plot kontur dari fungsi dua variable berikut ini : F(x,y) = cos x sin 2y, untuk 0 x 4π, 0 y 4π 2 2 23
Pertemuan 6 M-file editor dan Pemrograman Matlab Tujuan Instruksional Umum Mahasiswa dapat memahami dan menjelaskan tentang M-file editor dan pemrograman dengan MATLAB Tujuan Instruksional Khusus Mahasiswa mampu membuat M-file sebagai script program dan menjalankannya pada command Windows MATLAB Mahasiswa mampu membuat M-file sebagai fungsi dan mampu mejalankannya pada MATLAB Pada bab-bab yang lalu, Anda telah belajar berinteraksi dengan MATLAB menggunakan command window. Sekarang, katakanlah Anda harus mempergunakan sederetan command secara berulang-ulang di dalam sesi MATLAB yang berbeda. Akan sangat repot jika Anda harus mengetikkan command tersebut secara manual di command window setiap kali Anda butuhkan. Namun dengan M-file, deretan command tersebut bisa Anda simpan dalam bentuk skrip teks. Kapan saja Anda butuhkan, skrip tersebut bisa dijalankan/dieksekusi secara otomatis dengan cara mengetikkan nama M-file yang bersangkutan di command window. Kali ini kita akan belajar mengenal M-file dengan contoh sederhana. Namun demikian perlu diketahui bahwa MATLAB sebenarnya merupakan bahasa pemrograman umum, seperti halnya Basic, C, Java, Pascal, Fortran, dll. Sehingga dalam bab ini kita akan menitikberatkan pada pelajaran pemrograman komputer. Membuat M-File Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru. Caranya ialah melalui menu di main window: File Open atau File New M-file; atau dengan mengklik ikon yang ada di jendela utama. Sebuah jendela editor akan terbuka seperti gambar berikut ini. Gambar 6.1. Jendela editor M-file Dengan editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun mencoba menjalankannya dan melakukan debuging (mencari kesalahan di dalam skrip). Sementara itu, untuk menyimpan M-file, Anda bisa lakukan dengan menu: File Save atau File Save As; ataupun dengan mengklik ikon yang ada. Namun demikian, sebenarnya Anda juga bisa menuliskan M-file dengan 24
sebarang editor teks, seperti MS Word, Notepad, dll.; yang penting Anda menyimpan file tersebut dengan ekstensi *.m. M-File Sebagai Skrip Program Pada bagian ini, kita akan menggunakan M-file untuk menjalankan sederetan command yang kita tuliskan sebagai skrip. Mari kita mulai dengan skrip sederhana untuk menghitung rata-rata dari lima bilangan. File ini kita namakan rata_rata.m. Bukalah M-file baru lalu ketikkan skrip berikut ini. % Program sederhana untuk menghitung % rata-rata 5 bilangan: % rata_rata.m a = 50; b = 100; c = 150; d = 200; e = 250; % Menghitung dan menampilkan rata-rata hasil = (a + b + c + d + e)/5; hasil Teks yang diawali tanda % menunjukkan komentar, dan tidak akan dieksekusi oleh MATLAB. Simpanlah file ini di dalam direktori Matlab\work dengan nama rata_rata.m. Sekarang cobalah jalankan dari command window. Sebelumnya pastikan bahwa direktori menunjuk ke Matlab\work. Perhatikan Current Directory yang ada di jendela utama MATLAB. Kita bisa mengubah direktori yang sedang aktif melalui drop-down menu ataupun melalui browse. >> clear >> rata_rata hasil = 150 >> whos Gambar 6.2. Memilih direktori untuk menjalankan M-file 25
Perhatikan bahwa: Di dalam M-file, setiap command diakhiri dengan titik-koma supaya hasil perhitungan di tiap baris tidak ditampilkan di command window. Kecuali pada hasil perhitungan yang ingin kita tampilkan, tidak diakhiri titik-koma. Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika M-file telah dieksekusi. Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu: hijau untuk komentar hitam untuk variabel dan command biru untuk statement pemrograman. Sekarang, marilah kita mencoba M-file lain untuk menghitung sisi miring suatu segi tiga siku-siku dengan formula phytagoras, menghitung luasnya, dan kelilingnya. % Program menghitung segi-3 siku-siku: segi3.m % Untuk menghitung sisi miring, luas, dan keliling % Mendefinisikan sisi siku-siku segitiga Sisi_A = 3; Sisi_B = 4; % Menghitung sisi miring Sisi_C = sqrt(sisi_a^2 + Sisi_B^2) % Menghitung luas segitiga Luas = 1/2* Sisi_A * Sisi_B % Menghitung keliling Keliling = Sisi_A + Sisi_B + Sisi_C Lalu simpan dengan nama segi3.m. Sekarang kita panggil M-file tersebut >> segi3 Sisi_C = 5 Luas = 6 Keliling = 12 Sekarang Anda bisa mencoba sendiri membuat program yang lebih menantang, seperti menghitung dan memplot fungsi 2 ataupun 3-dimensi dengan M-file. M-File Sebagai Fungsi Sebagai skrip program, jika kita ingin mengubah/mengatur parameter masukan program, maka harus kita lakukan di dalam editor. Padahal seringkali kita harus menjalankan satu program/algoritma berulang kali dengan nilai masukan yang berbeda-beda, misalkan dalam proses 26
iterasi atau optimasi. Untuk keperluan ini, kita bisa menuliskan M-file sebagai suatu fungsi spesifik sesuai kebutuhan kita. Dalam setiap fungsi terdapat tiga unsur: 1. Parameter masukan; dalam hal ini kita sebut sebagai argumen input. Jumlah parameter (argumen) tersebut bisa sebarang (satu, dua, sepuluh, atau tidak ada argumen input sama sekali). Jenis argumen pun sebarang (variabel, bilangan ataupun teks). 2. Proses di dalam program; berupa sederetan command untuk menjalankan suatu algoritma tertentu. 3. Parameter keluaran; atau argumen output yang jumlah dan jenisnya sebarang. Deklarasi fungsi di M-file harus dilakukan pada baris awal dengan sintaks: Sebagai contoh awal, kita akan membuat fungsi untuk menghitung sisi miring, luas, dan keliling segitiga; seperti program yang ada pada contoh sebelumnya. %Fungsi untuk menghitung segi-3 siku-siku: segitiga.m %Untuk menghitung sisi miring, luas, dan keliling function [Sisi_C,Luas,Kll] = segitiga(sisi_a,sisi_b) % Menghitung sisi miring Sisi_C = sqrt(sisi_a^2 + Sisi_B^2); % Menghitung luas segitiga Luas = 1/2* Sisi_A * Sisi_B; % Menghitung keliling Kll = Sisi_A + Sisi_B + Sisi_C; Lalu simpan dengan nama segitiga.m. Sekarang Anda panggil fungsi tersebut. >> clear >> [Hyp,Area,Circum]=segitiga(12,16) Hyp = 20 Area = 96 Circum = 48 Dari contoh sederhana tersebut, ada beberapa hal yang perlu kita perhatikan: Dalam fungsi segitiga, terdapat dua argumen input (Sisi_A, Sisi_B), dan tiga argumen output (Sisi_C, Luas, Kll). Ketika dipanggil di command window, kita bisa menggunakan nama argumen input/output yang berbeda dengan di M-file, namun urutannya tidak berubah. Di dalam contoh, argumen Sisi_A dan Sisi_B kita isi dengan bilangan, sementara argumen Sisi_C, Luas, dan Keliling kita panggil dengan Hyp, Area, dan Circum. Sekarang kita lihat dengan command whos: >> whos 27
Terlihat bahwa variabel yang dideklarasikan di dalam fungsi tidak disimpan, melainkan dimusnahkan ketika suatu fungsi selesai dijalankan. Yang ada di sana hanyalah variabel yang telah dideklarasikan di command window untuk menyimpan nilai output. Hal ini merupakan salah satu perbedaan utama antara skrip program dengan fungsi. Penting! Ketika membuat fungsi dengan M-file, nama file harus sama dengan nama fungsi yang dideklarasikan dalam sintaks function...aturan penamaan M-file sama dengan penamaan variabel! Perlu diperhatikan bahwa fungsi yang telah kita buat pada dasarnya sama dengan fungsi yang telah ada di MATLAB, semisal fungsi sin(x) ataupun sqrt(x). Misalkan kita memanggil fungsi tanpa menyebutkan argumen output, maka keluaran akan disimpan di ans. Tugas 6 1. Buatlah program dengan M-file untuk menghitung volume dan luas permukaan balok bila diketahui: Panjang = 5, lebar = 3, tinggi = 6,5. Beri nama program ini dengan prog_balok.m 2. Buatlah suatu fuingsi dengan M-file untuk menghitung volume dan luas permukaan balok dengan spresifikasi : Masukan fungsi : panjang, lebar, dan tinggi balok Keluaran fungsi : volume, dan luas permukaan balok Beri nama fungsi ini dengan hitung_balok.m 3. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan dari suatu prisma segiempat dengan spesifikasi: Masukan fungsi : panjang dan lebar alas prisma, serta tinggi prisma Keluaran fungsi : volume dan luas permukaan prisma Beri nama fungsi ini dengan hitung_prisma.m 28