• Tidak ada hasil yang ditemukan

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI)

N/A
N/A
Protected

Academic year: 2021

Membagikan "FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (TEKNIK KOMPUTASI)"

Copied!
6
0
0

Teks penuh

(1)

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

Diperiksa oleh : Deny Budi H

1. Kompetensi

Setelah melakukan praktik, mahasiswa diharapkan memiliki kompetensi: dapat memahami fungsi terdefinisi bagi pemakai.

2. Sub Kompetensi

Setelah melakukan praktik, mahasiswa diharapkan memiliki sub kompetensi : a. Memahami tentang fungsi feval.

b. Memahami tentang parameter fungsi. c. Memahami tentang fungsi dalam script file.

d. Memahami tentang penerapan feval dalam metode bisection. 3. Dasar Teori

a. Fungsi Terdefinisi Bagi Pemakai

inv, det, log, abs, sqrt, dan apapun keseluruhan fungsi MATLAB, fungsi – fungsi tersebut mempunyai parameter sebagai inv(x), det(x), log(x), abs(x), sqrt(x). Pada pemanggilan fungsi – fungsi ini, nilai variabel dilewatkan melalui parameter, dan kemudian perhitungannya dibentuk pada fungsi dan nilai akhir. Penggunaan fungsi yang sangat mudah membuat fungsi tersebut sangat berguna. Untuk alasan inilah MATLAB menyajikan kepada pemakai untuk mendefinisikan fungsi –fungsi tersebut. Fungsi garis pertama berbentuk

function [output-parameters]=function-name(input-parameters)

paramater input dan output merupakan daftar nama variabel yang bila jumlahnya lebih dari satu dapat dipisahkan dengan koma. Jika parameter keluaran adalah variabel tunggal, kemudian mengabaikan tanda kurung kotak. Fungsi tubuh program terdiri dari instruksi – instruksi yang dieksekusi. Instruksi – instruksi ini seharusnya termasuk sebuah penandaan parameter output. Pada akhirnya, fungsi tersebut harus disimpan sebagai m-file dengan nama yang sama dengan nama fungsi.

Kemudian setelah disimpan, fungsi dapat dipanggil dengan format [output-parameters]=function-name(input-parameters);

Tanda kurung siku tidak perlu ditulis bila parameter output hanya satu variabel saja. Parameter input dan output pada fungsi pemanggilan harus sesuai dengan parameter – parameter fungsi pemanggilan.

Kita akan mengubah contoh yang diberikan pada modul 5 menjadi suatu fungsi yang menentukan persamaan akar kuadrat. Contoh ini akan

(2)

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

Diperiksa oleh : Deny Budi H

memberikan pemecahan dengan menggunakan sebuah fungsi dimana parameter – parameternya adalah a, b, c dan parameter – parameter output adalah x1, x2.

function [x1,x2]=quadratic(a,b,c)

%Finds the roots of the quadratic equation %ax^2+bx+c=0 disc=b*b-4*a*c;

x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a);

Pada command window MATLAB, fungsi kuadratis ini dapat dikatakan sebagai perintah (command)

» [r1,r2]=quadratic(3,2,2);

dimana r1 dan r2 mempunyai nilai persamaan 3x2+2x+2=0. Akar – akar persamaan ini ditampilkan dengan kode

» disp(['Roots are ',num2str(r1),' and ', num2str(r2)]) Roots are -0.33333+0.74536i and -0.33333-0.74536i

Dengan mengikuti contoh lainnya untuk penggunaan sebuah fungsi dimana fungsi tersebut mempunyai satu input dan parameter output,

function p=myfun(x); p=2*x+1;

Fungsi ini harus disimpan dengan nama myfun. » for i=1:5

y=myfun(i);

disp([num2str(i),' ',num2str(y)]) end

Fungsi myfun dipanggil pada loop 5 kali perulangan dan mengikuti keluaran yang menghasilkan, 1 3 2 5 3 7 4 9 5 11

(3)

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

Diperiksa oleh : Deny Budi H

Cara lain pemanggilan fungsi dengan memanggil sebuah parameter input ke fungsi lainnya. Pada contoh berikutnya, tentukanlah fungsi MATLAB feval. Fungsi feval digunakan pada fungsi evaluasi. Dengan bentuk umumnya adalah,

[output-parameter]=feval(‘function-name’, input-parameters)

Fungsi pemanggilan ini melewati parameter input untuk sebuah nama fungsi. Tentukan dengan contoh yang telah diberikan,

function gabungfungsi(suatufungsi,k); for i=1:k

y=feval(suatufungsi,i);

disp([num2str(i),' ', num2str(y)]) end

dimana fun adalah nama fungsi sebagai pemanggilan fungsi sebuah argument string dan feval. Pada akhirnya, pemanggilan myfuncall dengan tepat adalah,

» gabungfungsi('myfun', 5)

dimana fungsi myfun dipanggil dengan fungsi myfuncall. Hal ini menghasilkan keluaran yang sama seperti contoh diatas :

1 3 2 5 3 7 4 9 5 11

b. Contoh Fungsi Pada Metode Bisection

Penulisan MATLAB untuk metode bisection diberikan pada bagian 5.7. Pada penulisan tersebut dimplementasikan untuk fungsi khusus f(x)=x2-64. Jika anda ingin menggunakan solusi fungsi yang lain, anda harus mengedit beberapa jalur perintah program. Hali ini tidak layak, kita dapat menggunakan fungsi untuk menghindari cara pengeditan ini. Tentukanlah metode bisection yang telah diberikan dibawah:

function root=bisect(fun,a,b,tole); %

% approximates the positive root of the equation % f(x)=0 by using bisection method.

(4)

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

Diperiksa oleh : Deny Budi H

% a and b are left and right end points % tole is the error estimate for the root % output: root of the function f(x)

%

ya=feval(fun,a); yb=feval(fun,b);

% terminate the function

% if there are no real roots in the interval [a,b] if ya*yb>0

break end

% Evaluate the root while abs(b-a)>=tole c=(a+b)/2; yc=feval(fun,c); if yc==0 a=c; b=c; elseif yb*yc>0 b=c; yb=yc; else a=c; ya=yc; end end root=c;

Fungsi yang akan kita tentukan akarnya, seperti contoh dibawah ini: function f=fun1(x);

f=x*x-64;

Fungsi bisection dapat dipanggil pada command window sebagai : » funname='fun1';

» akar=bisect(funname,0,10,0.01);

Pengembalian akar fungsi f(x)=x2-64 dengan cara bisection dan penandaan variabel approot. Akar fungsi tersebut adalah,

» disp(['Approximate root is ', num2str(akar)]) Approximate root is 7.998

(5)

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

Diperiksa oleh : Deny Budi H

Kita dapat menggunakan fungsi bisection ini untuk fungsi yang berbeda. Hanya modifikasi yang harus dilakukan pada fungsi fun1.

Untuk melihat seluruh iterasi, tidak hanya pendekatan akhir akar, fungsi bisection seharusnya juga dimodifikasi seperti:

function root=bisect(fun,a,b,tole); %

% approximates the positive root of the equation % f(x)=0 by using bisection method.

% inputs: fun is the function input as a string % a and b are left and right end points % tole is the error estimate for the root % output: root of the function f(x)

%

ya=feval(fun,a); yb=feval(fun,b); %

% terminate the function

% if there are no real roots in the interval [a,b] %

if ya*yb>0 break end

% Evaluate the root k=1; while abs(b-a)>=tole c(k)=(a+b)/2; yc=feval(fun,c(k)); if yc==0 a=c(k); b=c(k); elseif yb*yc>0 b=c(k); yb=yc; else a=c(k); ya=yc; end k=k+1; end root=c;

(6)

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

Diperiksa oleh : Deny Budi H

» funname='fun1';

» akar=bisect(funname,0,10,0.01); » fprintf('%8.5f\n', akar)

kita akan mendapatkan hasil keluaran 5.00000 7.50000 8.75000 8.12500 7.81250 7.96875 8.04688 8.00781 7.98828 7.99805 4. Tugas

Carilah akar-akar persamaan di bawah ini menggunakan fungsi bisect! a. -3x4+2x2+200=0

b. x5-3x2+3=0 c. x5-4x3-x2+8=0 d. x*exp(-x)+5=0

Referensi

Dokumen terkait

Perbedaan penting lainnya antara JIT dengan TOC adalah kerusakan suku cadang atau komponen pada suatu titik proses produksi dapat menghentikan sebuah sistem JIT, tetapi karena

Peraturan Menteri Dalam Negeri Nomor 16 Tahun 2007 tentang Tata Cara Evaluasi Rancangan Peraturan Daerah tentang Anggaran Pendapatan dan Belanja Daerah dan

Tidak hanya dua budaya yang muncul pada peninggalan Sunan Sendang, akan tetapi masih ada satu budaya baru yaitu budaya modern. Budaya modern ini bisa dilihat dengan

Pengaruh nilai kontras pada hasil pengujian dapat dilihat pada selisih dari nilai rata-rata ciri GLCM pada data latih dan data uji kelas 1 (.. parvispinus) dapat dilihat pada Tabel

[r]

Peneliti berasumsi bahwa sampel penelitian harus merupakan pasien atau seseorang yang akan/baru memulai perawatan ortodonti cekat (behel), karena peneliti ingin melihat

Interaksi sosial merupakan bagian dari perkembangan sosial, dimana anak usia 3 sampai 6 tahun memiliki ciri-ciri di antaranya,mampu untuk bereaksi terhadap orang lain, menikmati

Penurunan penyerapan tenaga kerja pada sektor-sektor dengan jumlah jam kerja cukup besar seperti sektor pertanian dan sektor perdagangan seperti dibahas