FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 1 dari 13
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 operasi hubungan dan operasi logika. d. Memahami tentang if-else-end. 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 efesien 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 jendela 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); Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 2 dari 13
x2=(-b-sqrt(disc))/(2*a); % Tampilan akar kuadrat disp(['Akar kuadrat persamaan 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 kuadrat persamaan adalah -0.33333+0.74536i dan -0.33333-0.74536i b. Struktur Pengaturan Aliran 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-elseend, 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 : < <= > >= == ~= Dibuat oleh : Deny
lebih kecil dari pada lebih kecil dan sama dengan lebih besar dari pada lebih besar dan sama dengan sama dengan tidak sama dengan Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Script Files dan Struktur Pengaturan Aliran
Semester 4
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 3 dari 13
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 8
5 4
Merupakan pengurangan matriks x dengan resultan matriks x~=y (ditentukan diatas).
Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 4 dari 13
Ekspresi perintah di Matlab juga dapat disusun darin 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 | | ↓ terendah
d. If-else-end Pernyataan if-else-end digunakan untuk membuat keputusan dan pemilihan aliran perintah eksekusi pada sebuah program. Struktur sederhana if-else-end adalah, if
expression commands
end 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) Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 5 dari 13
end menampilkan 0.5000 -0.1667 0.2500 0.0833 Dimana determinan A adalah bilangan positif. Bentuk lainnya adalah if
expression commands-1
else commands-2 end 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) end 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-end. if elseif
expression-1 commands-1 expression-2 commands-2
. Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
. . elseif
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 6 dari 13
expression-(n-1) commands-(n-1)
else commands-n end 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 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); x2=(-b-sqrt(disc))/(2*a); % Tampilan akar kuadrat persamaan dengan pesan pendek if disc==0 disp(['Akar kuadrat adalah ', num2str(x1)]) elseif disc<0 disp(['Akar kuadrat adalah persamaan komplek ', num2str(x1),' and ', num2str(x2)]) else disp([Akar kuadrat adalah bilangan riil ',num2str(x1),' and ', num2str(x2)]) end dengan mengikuti keluaran yang ditampilkan kemudian perintah eksekusi seperti contoh dibawah ini, Masukkan koefisien a: 2 Masukkan koefisien b: -3 Masukkan koefisien c: -5 Akar kuadrat Real adalah 2.5 dan –1 e. Switch Pernyataan switch statement juga dapat digunakan untuk implementasi struktur pilihan. Walaupun pernyataan switch tidak umum dipakai seperti Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
pernyataan if, pernyataan swicth digunakan 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 end
dalam
Jam Pertemuan 4 x 50 menit Hal 7 dari 13
menerangkan
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 end. Jika nilai selektor tidak ada pada daftar label, kemudian perintah khusus lainnya dapat dieksekusi. Sebagai contoh mengikuti kode, »a=[4 5 2 3]; »switch (det(a)) case 1 b=a'; disp(b) case 2 b=a*a; disp(b) end perintah diatas akan menghitung perkalian matriks a dan menampilkannya sebagai, 26 14 Dibuat oleh : Deny
35 19
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 8 dari 13
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 end 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; end dimana keluarannya adalah elemen ke-1 adalah 6 elemen ke-2 adalah 37 elemen ke-3 adalah 23 elemen ke-4 adalah -1 Dengan mengikuti contoh berikut: » sum(1)=1; » for n=2:10 sum(n)=sum(n-1)+n; end » 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 Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 9 dari 13
a(i,j)=-1; elseif i<j a(i,j)=1; else a(i,j)=0; end end end Kode – kode diatas membentuk matrik 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 sebelumnya pada bagian ini : » k=1; » for n=0:0.2:1 x(k)=n; f(k)=n*n; k=k+1; end Kode-kode ini mengevaluasikan fungsi f(x)=x2 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 pendekatan matrik MATLAB, for loop seharusnya dapat dihindari. g. Perintah while Bentuk umum loop while adalah while expression commands Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 10 dari 13
end dan perintah eksekusi dijalankan selama x lebih besar atau sama dengan nol. Sebagai contoh, » y=zeros(1,2); » x=[2 3]; » while x>=0 y=y+x; x=x-1; disp(y) end dan keluaran vektor y pada setiap eksekusi while loop adalah, 2 3 3
3 5 6
h. Break 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); » x=[2 3]; » while x>=0 y=y+x; x=x-1; if y>=3 break end disp(y) end menghasilkan keluaran 2
3
Ungkapan y>=3 bernilai true untuk seluruh elemen y sehingga while-loop berakhir. Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
Jam Pertemuan 4 x 50 menit Hal 11 dari 13
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 end disp(y) end dan keluarannya adalah 3 3
5 6
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 mendekati 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 end points % tole is the error estimate for the root % % a=input('Enter the left point a: '); b=input('Enter the right point b: '); Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
Tgl : 27/11/2012
tole=input('Enter the tolerance : fprintf('\n'); ya=a*a-64; yb=b*b-64;
Jam Pertemuan 4 x 50 menit Hal 12 dari 13
');
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; end end end 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 0.00000 5.00000 10.00000 5.00000 7.50000 10.00000 7.50000 8.75000 10.00000 Dibuat oleh : Deny
Exact error -3.00000 -0.50000 0.75000
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI) Semester 4
Script Files dan Struktur Pengaturan Aliran
No. LSKD/EKO/DEL221/01
Revisi : 02
7.50000 8.12500 7.50000 7.81250 7.81250 7.96875 7.96875 8.04688 7.96875 8.00781 7.96875 7.98828 7.98828 7.99805 Approximate root is:
Tgl : 27/11/2012
8.75000 8.12500 8.12500 8.12500 8.04688 8.00781 8.00781 7.99805
Jam Pertemuan 4 x 50 menit Hal 13 dari 13
0.12500 -0.18750 -0.03125 0.04688 0.00781 -0.01172 -0.00195
4. Tugas 1. Bukalah bagian clear pada Command Window, Command History dan Workspace pada MATLAB. 2. Diberikan deret: ex 1
x x2 x3 ... 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. d s 0 0 0 t d s 0 0 0 t d s 0 0 0 t d s 0 0 0 t d
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.
Hitunglah nilai keluaran rata-rata aritmatik.
Simpanlah elemen matrik yang lebih besar dari rata-rata masukan array kedalam array lainnya.
Tampilkanlah array yang baru.
Dibuat oleh : Deny
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta
Diperiksa oleh :