No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 1 dari 14 1. Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami script files dan struktur pengaturan aliran. 2. Sub Kompetensi Setelah melakukan praktik, mahasiswa diharapkan memiliki sub kompetensi : a. Memahami tentang script files. b. Memahami tentang struktur pengaturan aliran. c. Memahami tentang operator relasi dan operator logika. d. Memahami tentang if-else-. e. Memahami tentang perintah switch. f. Memahami tentang perintah for. g. Memahami tentang perintah while. h. Memahami tentang perintah break. i. Memahami tentang perintah continue. j. Memahami tentang metode bisection. 3. Dasar Teori a. Script Files Permasalahan singkat adalah memecahkan masalah dengan mudah dan efisien pada command window MATLAB. Ketika kita mempunyai sebuah masalah kompleks, kita harus masuk kedalam beberapa perintah pada command window. Pada kasus ini, hal ini akan sulit untuk merubah satu nilai atau beberapa variabel atau perintah-perintah dan mengevaluasikannya kembali. Sudah tentu dengan masuk kedalam perintah command window, kita dapat masuk kedalam sebuah text file. Text file ini biasa disebut script files atau M-files. Nama-nama script file harus diakhir dengan ekstensi m seperti contoh.m. Untuk membuat sebuah script file, pilih menu FileNewScript (versi 2012) atau FileNewm-file (versi sebelumnya). Sebuah jela text editor akan muncul. Menggunakan editor ini, perintah-perintah MATLAB akan dapat dimasukkan. Seperti sebuah contoh memasukkan kode, % Akar kuadrat persamaan ax^2+bx+c=0 a=input('masukkan koefisien a: '); b=input('masukkan koefisien b: '); c=input('masukkan koefisien c: '); disc=b*b-4*a*c; x1=(-b+sqrt(disc))/(2*a);
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 2 dari 14 x2=(-b-sqrt(disc))/(2*a); % Tampilan akar kuadrat disp(['akar persamaan kuadrat adalah ',num2str(x1),' dan ',num2str(x2)]) Pada kode ini, setiap text diikuti yang diikuti dengan simbol % merupakan komentar yang tidak dianggap sebagai kode program. Setelah memasukkan kode diatas, simpanlah file tersebut sebagai M-file sample.m. M-file ini akan dieksekusi ketika nama file pada command window MATLAB dituliskan. Seperti :» sample Ketika, ketika file tersebut menghasilkan keluaran 3, 2 dan 2 dimasukkan sebagai koefisien a, b dan c. Masukkan koefisien a: 3 Masukkan koefisien b: 2 Masukkan koefisien c: 2 Akar persamaan kuadrat adalah -0.33333+0.74536i dan -0.33333-0.74536i b. Struktur Pengaturan MATLAB adalah sistem interaktif dan sebuah bahasa program. Gambaran dasar seluruh bahasa program adalah kemampuan merubah urutan dimana instruksi-instruksi dapat dieksekusi dengan program. Jika anda menggunakan sedikitnya lebih dari satu bahasa program, anda akan menemukan bagian-bagian yang sama. MATLAB menawarkan beberapa struktur pengaturan aliran (flow-control structures). Seperti pernyataan if-else, switch, for, while, continue dan break. Sebelum pernyataan-pernyataan ini, kita akan menentukan hubungan dan operasi logika. c. Operator Relasi dan Operator Logika MATLAB, seperti bahasa program lainnya, memiliki operator relasi dan operator logika. Operator relasi MATLAB berupa : < lebih kecil dari pada <= lebih kecil dan sama dengan > lebih besar dari pada >= lebih besar dan sama dengan == sama dengan ~= tidak sama dengan
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 3 dari 14 Operator-operator ini dapat digunakan untuk membandingkan isi nilai skalar maupun vektor/matriks yang ukurannya sama. Sebagai contoh buatlah vektor dan matriks berikut ini:» a=[1 2 3 4 5];» b=[2 5 3 9 2];» x=[3 6; 9 4];» y=[1 9; 5 4]; Perintah yang diikuti» hasil=a>=b hasil = 0 0 1 0 1 Adalah membandingkan apakah elemen a lebih besar atau sama dengan elemen pada b. Jika elemen tersebut lebih besar dari atau sama, maka menghasilkan nilai 1, jika salah menghasilkan nilai 0. 1 dan 0 digunakan untuk menyatakan relasinya benar atau salah. Contoh lain:» hasil=x~=y hasil = 1 1 1 0 menyatakan kebenaran relasi elemen x tidak sama dengan elemen pada y.» hasil=x-(x~=y) hasil = 2 5 8 4 Merupakan pengurangan matriks x dengan resultan matriks x~=y (ditentukan diatas).
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 4 dari 14 Ekspresi perintah di Matlab juga dapat disusun dari hubungan ungkapan yang dibentuk dari hubungan operator relasi dikombinasikan dengan operator logika: & and operator or operator ~ not operator Sebagai berikut:» hasil=(x>=4)&(y==x) hasil = 0 0 0 1 Perhatikan urutan operator menyatakan urutan operasi. Urutan yang tertinggi akan dihitung terlebih dahulu. Bila anda menginginkan urutan yang lain, gunakan tanda kurung untuk mengubah urutan perhitungan. ^,.^,,. tertinggi *,.*, /,./, \ +, -, ~ >, <, >=, <=, ==, ~=, & terah d. If-else- Pernyataan if-else- digunakan untuk membuat keputusan dan pemilihan aliran perintah eksekusi pada sebuah program. Struktur sederhana if-else- adalah, if expression commands dimana perintah-perintah akan dieksekusi jika seluruh elemen pada ungkapan adalah benar. Seperti contoh,» A=[1 2; -3 6];» if det(a)>0 Ainv=inv(A); disp(ainv)
menampilkan FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 5 dari 14 0.5000-0.1667 0.2500 0.0833 Dimana determinan A adalah bilangan positif. Bentuk lainnya adalah if else expression commands-1 commands-2 dimana perintah-1 dieksekusi ketika expression bernilai benar, jika salah jalankan perintah-2. Sebagai contoh:» x=[1 2 3 4 5];» y=[6 5 1 8 9];» if y>x disp(x) else disp(y) Keluarannya adalah 6 5 1 8 9 Bagian else perintah if dieksekusi dan array y ditampilkan karena nilai y>x adalah salah (karena elemen ketiga y tidak lebih besar dari pada elemen ketiga x). Dengan mengikuti pernyataan umum if-else-. if elseif. expression-1 commands-1 expression-2 commands-2
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 6 dari 14.. elseif else expression-(n-1) commands-(n-1) commands-n Pernyataan ini dipakai pada saat kita mempunyai tiga atau lebih pilihan, dengan perintah ke-i yang diasosiasikan dengan kebenaran ungkapan ke-i. Jika tidak ada ungkapan true, perintah perintah pada bagian else akan dieksekusi. Seperti contoh, %Menentukan akar persamaan kuadrat %ax^2+bx+c=0 a=input('masukkan koefisien a: '); b=input('masukkan koefisien b: '); c=input('masukkan koefisien c: '); disc=b*b-4*a*c; x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); % Tampilan akar persamaan kuadrat dengan pesan pek if disc==0 disp(['akar kuadrat adalah ', num2str(x1)]) elseif disc<0 disp(['akar kuadrat adalah bilangan kompleks ', num2str(x1),' and ', num2str(x2)]) else disp([akar kuadrat adalah bilangan riil ',num2str(x1),' and ', num2str(x2)]) dengan mengikuti keluaran yang ditampilkan kemudian perintah eksekusi seperti contoh dibawah ini, e. Switch Masukkan koefisien a: 2 Masukkan koefisien b: -3 Masukkan koefisien c: -5 Akar kuadrat adalah bilangan riil 2.5 dan 1 Pernyataan switch statement juga dapat digunakan untuk implementasi struktur pilihan. Walaupun pernyataan switch tidak umum dipakai seperti
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 7 dari 14 pernyataan if, pernyataan swicth digunakan dalam menerangkan implementasi perintah. Bentuk umum seperti : switch (selector) case label-1 commands-1 case label-2 commands-2... case label-n commands-n otherwise commands-m dimana bagian lainnya merupakan pilihan. Ketika pernyataan switch dieksekusi, selector dapat dievaluasi; jika nilai ini pada label adalah i, kemudian perintah-i dieksekusi dan kelanjutan pernyataan eksekusi diikuti pernyataan. Jika nilai selektor tidak ada pada daftar label, kemudian perintah khusus lainnya dapat dieksekusi. Sebagai contoh buatlah script file berikut ini dan simpan sebagai file makan.m: disp( Menu Makanan ) disp( 1. Bakso ) disp( 2. Mie Ayam ) disp( 3. Sate ) menu = input( Pilihlah menu makanan : ) switch (menu) case 1 disp( Harga Bakso Rp 7000 ) case 2 disp( Harga Mie Ayam Rp 5000 ) case 3 disp( Harga Sate Rp 10000 ) otherwise disp( Menu yang anda pilih tidak ada ) contoh lain:»a=[4 5 2 3];
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 8 dari 14»switch (det(a)) case 1 b=a'; disp(b) case 2 b=a*a; disp(b) perintah diatas akan menghitung perkalian matriks a dan menampilkannya sebagai, 26 35 14 19 Karena determinan matriks diatas adalah 2. f. Perintah for Untuk melakukan perulangan dalam jumlah yang tetap, kita dapat menggunakan perintah for, dengan format: for x=array commands Perintah perintah yang dieksekusi pada seluruh nilai x dimana array kolom ke-i menandakan x pada setiap iterasi. Sebagai contoh,» k=1;» for num=[6 37 23-1] disp(['elemen ke-',num2str(k), ' adalah ', num2str(num)]) k=k+1; dimana keluarannya adalah elemen ke-1 adalah 6 elemen ke-2 adalah 37 elemen ke-3 adalah 23 elemen ke-4 adalah -1
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 9 dari 14 Dengan mengikuti contoh berikut:» sum(1)=1;» for n=2:10 sum(n)=sum(n-1)+n;» disp(sum) Maka akan terbentuk sebuah vektor sum yang panjangnya bertambah menjadi 10 kolom yaitu sum = [1 3 6 10 15 21 28 36 45 55] Selanjutnya:» for i=1:5 for j=1:5 if i>j a(i,j)=-1; elseif i<j a(i,j)=1; else a(i,j)=0; Kode kode diatas membentuk matriks a dalam bentuk: 0 1 1 1 1-1 0 1 1 1-1 -1 0 1 1-1 -1-1 0 1-1 -1-1 -1 0 Contoh berikutnya pada bagian ini :» k=1;» for n=0:0.2:1 x(k)=n; f(k)=n*n; k=k+1;
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 10 dari 14 Kode-kode ini mengevaluasikan fungsi f(x)=x 2 untuk nilai x pada interval [0, 1] dengan penambahan nilai adalah 0.2. Contoh ini juga dapat dituliskan sebagai,» x=0:0.2:1;» f=x.*x; Kedua kode membentuk vektor baris x dan f. Tetapi solusi kedua sangat ringkas dan perangkat MATLAB dapat digunakan. Serta kode tersebut dapat bekerja dengan cepat. Alasan ini, apabila terdapat sebuah array yang sama atau pekatan matrik MATLAB, for loop seharusnya dapat dihindari. g. Perintah while Bentuk umum loop while adalah while expression commands dan pada contoh di bawah ini perintah eksekusi dijalankan selama x lebih besar atau sama dengan nol.» y=zeros(1,2);» x=[2 3];» while x>=0 y=y+x; x=x-1; disp(y) dan keluaran vektor y pada setiap eksekusi while loop adalah, h. Break 2 3 3 5 3 6 Pernyataan break dapat dipakai untuk mengakhiri proses eksekusi forloop atau while-loop. Pada contoh di bawah ini pernyataan break dipakai untuk keluar dari while-loop.» y=zeros(1,2);
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 11 dari 14» x=[2 3];» while x>=0 y=y+x; x=x-1; if y>=3 break disp(y) menghasilkan keluaran 2 3 Ungkapan y>=3 bernilai true untuk seluruh elemen y sehingga while-loop berakhir. i. Continue Pernyataan continue dapat dipakai untuk melewatkan pengaturan iterasi berikutnya dari pernyataan for-loop atau while-loop. Kembali menentukan contoh yang telah diberikan pada bagian sebelumnya. Dengan mengikuti contoh continue digunakan untuk melewatkan beberapa iterasi.»y=zeros(1,2);»x=[2 3];»while x>=0 y=y+x; x=x-1; if y<=3 continue disp(y) dan keluarannya adalah 3 5 3 6
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 12 dari 14 Vektor (2, 3) tidak akan menampilkan ungkapan awal y<=3 adalah true untuk seluruh elemen y dan melewatkan iterasi berikutnya. j. Contoh Pada Metode Bisection Pada bagian ini, diimplementasikan metode bisection yang mekati akar persamaan f(x)=0 pada interval [a,b]. kode program yang mengacu pada setiap buku metode numerik adalah sebagai berikut: % approximates the positive root of the equation % x*x-64=0 (exact root is 8) by using bisection % method. % inputs: a and b are left and right points % tole is the error estimate for the root % % a=input('enter the left point a: '); b=input('enter the right point b: '); tole=input('enter the tolerance : '); fprintf('\n'); ya=a*a-64; yb=b*b-64; if ya*yb>0 break else fprintf('left point Midpoint Right point Exact error\n') while abs(b-a)>=tole c=(a+b)/2; yc=c*c-64; fprintf('%8.5f %8.5f %8.5f %8.5f \n',a,c,b,c-8) if yc==0 a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc;
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 13 dari 14 fprintf('\napproximate root is: %8.5f\n', c) Setelah memasukkan kode diatas, dan menyimpan file tersebut sebagai script file bisect.m, maka dapat dilakukan eksekusi file pada waktu kapanpun dengan cara menuliskan nama program tersebut. Dengan mengikuti contoh program yang telah dijalankan.» bisect Enter the left point a: 0 Enter the right point b: 10 Enter the tolerance : 0.01 Left point Midpoint Right point Exact error 0.00000 5.00000 10.00000-3.00000 5.00000 7.50000 10.00000-0.50000 7.50000 8.75000 10.00000 0.75000 7.50000 8.12500 8.75000 0.12500 7.50000 7.81250 8.12500-0.18750 7.81250 7.96875 8.12500-0.03125 7.96875 8.04688 8.12500 0.04688 7.96875 8.00781 8.04688 0.00781 7.96875 7.98828 8.00781-0.01172 7.98828 7.99805 8.00781-0.00195 Approximate root is: 7.99805 4. Tugas 1. Bukalah bagian clear pada Command Window, Command History dan Workspace pada MATLAB. 2. Diberikan deret: e x 2 3 x x x 1... 1! 2! 3! Tuliskan perintah MATLAB untuk menentukan jumlah deret apabila bagian nilai sekarang lebih besar daripada variabel tol. Program anda seharusnya memasukkan nilai x dan tol dan keluarannya diharuskan memberikan pesan. Hasil program seharusnya diuji dengan fungsi MATLAB log. 3. Tuliskan perintah MATLAB untuk membentuk matrik.
No. LSKD/EKO/DEL221/01 Revisi : 02 Tgl : 27/11/2012 Hal 14 dari 14 d t 0 0 0 s d t 0 0 0 s d t 0 Perintah program anda digunakan oleh pemakai untuk memasukkan setiap nilai d, t dan s. 4. Tuliskanlah perintah MATLAB untuk melaksanakan perintah dibawah: Memasukkan nilai integer N (N 30) dan integer N kedalam array. 0 0 s d t 0 0 0 s d Hitunglah nilai keluaran rata-rata aritmatik. Simpanlah elemen matrik yang lebih besar dari rata-rata masukan array kedalam array lainnya. Tampilkanlah array yang baru.