• Tidak ada hasil yang ditemukan

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

N/A
N/A
Protected

Academic year: 2021

Membagikan "FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA"

Copied!
14
0
0

Teks penuh

(1)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh : 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-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 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 FileNewScript (versi 2012) atau FileNewm-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;

(2)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 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-else-end, 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

(3)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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).

(4)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 *, .*, /, ./, \ | +, -, ~ | >, <, >=, <=, ==, ~= ↓ |, & 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)

(5)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 expression-1

commands-1 elseif expression-2 commands-2 .

(6)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh : . . elseif 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 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 pendek 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)]) 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 adalah bilangan riil 2.5 dan –1

e. Switch

Pernyataan switch statement juga dapat digunakan untuk implementasi struktur pilihan. Walaupun pernyataan switch tidak umum dipakai seperti

(7)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 end

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 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’) end

contoh lain:

»a=[4 5 2 3];

(8)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh : »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 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 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

(9)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 a(i,j)=-1; elseif i<j a(i,j)=1; else a(i,j)=0; end end end

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; end

(10)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 end

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) end

dan keluaran vektor y pada setiap eksekusi while loop adalah, 2 3

3 5 3 6

h. Break

Pernyataan break dapat dipakai untuk mengakhiri proses eksekusi for-loop atau while-for-loop. Pada contoh di bawah ini pernyataan break dipakai untuk keluar dari while-loop.

(11)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh : » 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.

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 5

(12)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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: '); 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;

(13)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :

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 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: ... ! 3 ! 2 ! 1 1 3 2      x x x ex

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.

(14)

Dibuat oleh : Deny Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta

Diperiksa oleh :                 d t s d t s d t s d t s d 0 0 0 0 0 0 0 0 0 0 0 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.  Hitunglah nilai keluaran rata-rata aritmatik.

 Simpanlah elemen matrik yang lebih besar dari rata-rata masukan array kedalam array lainnya.

Referensi

Dokumen terkait

Berdasarkan Surat Keputusan Pejabat Pengadaan Barang/Jasa Dinas Bina Marga Kabupaten Lebak Nomor : 602.1/ 221 -PPBJ/SKPPBJ/DBM/APBD/2014 Tanggal 30 Oktober 2014 Tentang

Kutai Kartanegara , maka kami Pokja 12 Unit Layanan Pengadaan 2 Pemerintah Kabupaten Kutai Kartanegara mengundang perusahaan yang saudara wakili untuk Klarifikasi dan

terakhir diubah dengan Peraturan Presiden Nomor 70 Tahun 2012 beserta petunjuk teknisnya maka dengan ini LELANG dinyatakan GAGAL. Lelang akan diulang dengan

Sehubungan dengan telah dievaluasinya Dokumen Penawaran pada Kegiatan Pembangunan Jalan Dinas Bina Marga Kabupaten Lebak Tahun Anggaran 2016, bersama ini Kami mengundang

Dekarl Fakullas Bahasa dan Scni ULrivcrsitas Negcri Yogyakala lncnugrskan/mcmberikan

Berdasarkan Pengumuman Hasil Prakualifikasi Nomor : 05/07.2/65/XII/2014, tanggal 18 Desember 2014 dengan ini Perusahaan Saudara kami undang untuk mengikuti proses

Di dalam masyarakat Desa Ketapang terutama menantu yang tinggal satu rumah dengan mertuanya, terkadang peran menantu dan mertua tidak berjalan sesuai dengan

Tujuan dari penelitian ini adalah untuk mengetahui hubungan pelaksanaan fungsi afektif keluarga dengan tingkat harga diri klien kusta di Wilayah Kerja Puskesmas Tanggul