P. 1
Program Mencari Akar

Program Mencari Akar

|Views: 139|Likes:
Published by meivya

More info:

Published by: meivya on Oct 04, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

06/26/2011

pdf

text

original

Meylanie Olivya

P2700209002

1

PROGRAM MENCARI AKAR-AKAR DARI SUATU FUNGSI DENGAN METODE BISECTION
Algoritma program: Untuk sembarang f(x) = 0 (1) Tentukan sembarang nilai a dan b, dimana |a|<|b| (2) Jika f(a) = 0, maka akar fungsi f(x) adalah a (3) Jika f(b) = 0, maka akar fungsi f(x) adalah b (4) JIka f(a) < 0 dan f(b) > 0, hitung c = (a+b) / 2 dan f(c). (5) JIka f(c) < 0, maka c mengganti a (6) Jika f(c) > 0, maka c mengganti b (7) Jika (|0 f(c)|*10000) > 0.01, maka kembali ke (4). Jika tidak, STOP, maka solusi

akar fungsi f(x) adalah c

Diagram alir dari program ini ditunjukkan pada gambar 1. Sedangkan programnya untuk f(x) = x2 x 6 dalam bahasa pascal sebagai berikut:
function f(x:real):real; begin f := (x*x) - (x) - 6; end; procedure bisection(a,b : real); var c : real; begin c := (a+b)/2; if (abs(0-f(c)*10000) > 0.01) then begin if f(c) < 0 then bisection(c,b) else bisection(a,c); end else writeln('Akar fungsi f(x) adalah ',c:2:7); end; var a, b: real; begin clrscr; write('Masukkan nilai a : '); readln(a); write('Masukkan nilai b : '); readln(b); if f(a)=0 then writeln('Akar fungsi f(x)adalah ',a:2:7) else if f(b)=0 then writeln('Akar fungsi f(x)adalah ',b:2:7) else if (f(a) < 0) and (f(b) > 0) then bisection(a,b) else writeln('Nilai f(a) = ¶,f(a),¶ dan f(b)= µ,f(b),¶ tidak memenuhi kondisi '); readln; end.

1 begin 1. {Fungsi f(x)=x2 x 6.(x) .6. Diagram alir program mencari akar-akar dari sebuah fungsi Penjelasan program : 1. function f(x:real):real. Function selalu dimulai dengan begin dan diakhiri dengan end.b f(x) f(x) a b ya f(a)=0 tidak f(b)=0 tidak tidak f(a)<0 f(b)>0 ya c (a+b)/2 f(x) c output : a ya output : b a b c b ya f(c)<0 ya (|0-f(c)|*10000) > 0.Meylanie Olivya P2700209002 2 Start input : a.01 a b a c tidak tidak output : c Gambar 1. persamaan dapat diubah sesuai keinginan} . dengan perintah f(x). {Function ini berfungsi menghasilkan nilai f(x).} 1. Function dapat dipanggil kapan saja dan dimana saja.1 f := (x*x) . baik dalam program utama maupun dalam suatu procedure.1. dimana x dan nilai f(x) bertipe real.

Procedure hanya bisa dipanggil dari program utama dan dari dalam procedure itu sendiri dengan perintah bisection(a.4 write('Masukkan nilai b : ').c) dengan nilai a=a dan nilai b=c} end 2.2 else bisection(a. {Dekalarasi untuk program utama dimana terdapat variabel a dan b bertipe real} 4.3 end. {e=|0-f(c)|*10000.2 if (abs(0-f(c)*10000) > 0. 2. procedure bisection(a. yaitu c bertipe real} 2. 3. Sedangkan jika tidak (f(c) > 0).01) then begin 2. {Merupakan deklarasi lokal dari procedure bisection.b) dengan nilai a=c dan nilai b=b. dan terdapat 7 angka di belakang koma. {procedure bisection berguna untuk menjalankan algoritma utama yaitu sesuai dengan metode bisection.Meylanie Olivya P2700209002 3 1.1 var c : real. b: real.b : real).01.b) 2. {Menghasilkan nilai c yang merupakan nilai rata-rata dari a dan b} 2.2.1 if f(c) < 0 then bisection(c. maka iterasi dihentikan dan dihasilkan output adalah nilai c. . c:2:7 berarti koma berada pada posisi ke 2.c:2:7).3 else writeln('Akar persamaan f(x) adalah '. {Di layar simulasi akan muncul p Masukkan nilai a : .3. Jika e e 0.2 end.2.c). Procedure selalu dimulai dengan begin dan diakhiri dengan end} 2.3 write('Masukkan nilai a : ').2. var a.1 c := (a+b)/2.3. readln(b). maka procedure masuk lagi dengan bisection(c. program utama 4. maka masuk lagi ke procedure bisection(a.01 maka iterasi dilanjutkan.2 begin 2. {Merupakan inti dari procedure bisection. Jika diketik suatu nilai dan ditekan enter.2. maka nilai tersebut akan dimasukkan sebagai nilai a} 4. Jika e > 0.2.0000001} 2. Jika f(c) < 0.1 begin 4. misalnya 2. readln(a).b).

Ujicoba dengan nilai a = 0 dan nilai b = -5 Dari simulasi.8 else writeln('Nilai f(a) = .6 else if f(b) = 0 then writeln('Akar persamaan dari f(x) adalah '. Ujicoba program pada f(x)=x2-x-6 1. maka masuk ke procedure bisection(a.0000001-6=0. Jika dimasukkan ke dalam f(x)=x2-x-6. Jika f(b) = 0.b) dengan nilai a=a dan nilai b=b} 4. f(x) x:a.7) { Panggil function f(x).5 if f(a) = 0 then writeln('Akar persamaan dari f(x) adalah '.9999999.0000001.9999999)2-(-1. maka nilai tersebut akan dimasukkan sebagai nilai b} 4. f(b)=0. dan f(b)= . serta f(a)<0 dan f(b)>0. maka program akan berhenti tanpa memberikan output} 4. Ujicoba dengan nilai a = 0 dan nilai b = 5 Dari simulasi. diperoleh : f(x)=x2-x-6=(3. f(x) x:b.0000005 . tidak memenuhi kondisi '). Jika dimasukkan ke dalam f(x)=x2-x-6.f(a). diperoleh akar fungsi f(x). x = -1. A. diperoleh : f(x)=x2-x-6=(-1. Jika diketik suatu nilai dan ditekan enter.Meylanie Olivya P2700209002 4 {Di layar simulasi akan muncul p Masukkan nilai b : .f(b). maka hentikan program dan output yang diperoleh adalah nilai a} 4. Jika f(a) = 0.9999999)-6= -0. maka hentikan program dan output yang diperoleh adalah nilai b} 4. diperoleh akar fungsi f(x).7 else if (f(a) < 0) and (f(b) > 0) then bisection(a.9 end. x = 3. {Jika tidak memenuhi kondisi f(a)=0.a:2:7) {Panggil function f(x).0000005 2.b) {JIka f(a) < 0 dan f(b) > 0.0000001)2-3.

diperoleh dua e akar dari persamaan f(x)=x2-x-6=0 yaitu x1=3.( -( 2. diperoleh akar fungsi f(x). Sehingga dengan metod numerik. akan bernilai imajiner (tidak real).0000003 . diperoleh : f(2. Sehingga untuk fungsi f(x)=x3-x-6=0 diperoleh sebuah akar yaitu x=2.Meylanie Olivya P2700209002 5 Dari nilai f(x) yang diperoleh.9999999.3354563.3354563)-6= -0. diperoleh akar fungsi f(x).0000001 dan x2=-1.0000000)3-(2.0000000. Jika dimasukkan ke dalam f(x)=x2. 1. tampak bahwa untuk interval -10 s/d 0 tidak diperoleh akar fungsi f(x)= x3x-6. Ujicoba dengan nilai a = 0 dan b = 5 Dari simulasi. diperoleh : f(x)=x3-x-6=(2. B. Sehingga akar f(x) Karena jika x negative maka hanya akan dicari pada bilangan bulat positif. Ujicoba dengan nilai a = 0 dan b = 5 Dari gambar. program ini dapat mencari akar suatu fungsi dengan tingkat keakuratan yang sangat baik.5-x-6=(x2)( Oleh karena terdapat )-x-6 pada fungsi di atas. x = 2.5-x-6. C. Ujicoba dengan nilai a = 0 dan b = -10 Dari simulasi.0000000)-6= 0 2.3354563)=(2.0000000. Ujicoba program pada f(x)=x3-x-6 1. Ujicoba program untuk f(x)=x2. Jika dimasukkan ke dalam f(x)=x3-x-6. maka nilai x hanya terdapat pada x positif. x = 2.3354563)2.

3x4 + 5x3-9x2 + 8x-2.99 .0000000)3 -9(1. Jika dimasukkan ke dalam f(x)= x5 .3x4 + 5x3-9x2 + 8x-2.3(1.8273467)=(1.0000000. diperoleh akar fungsi f(x).5-x-6=0 hanya diperoleh sebuah akar yaitu x=2. x = 1.8273467)4 + 5(1.5 dan b= 10 Pada interval 2. diperoleh : f(1. diperoleh : f(1. sehingga tidak lagi memenuhi kondisi metode bisection.5 s/d 10 tampak bahwa nilai f(x) naik. Jika dimasukkan ke dalam f(x)= x5 . Ujicoba dengan nilai a = 0 dan b = 5 Dari simulasi. diperoleh akar fungsi f(x). sehingga untuk fungsi f(x)= x2.0000002 2.3354563.8273467)3 -9(1.8273467) . Ujicoba dengan nilai a = 0 dan b = 0.0000000)5 . D.3(1.2 = 0 3. Ujicoba untuk f(x)=x5-3x4+5x3-9x2+8x-2 1. Ujicoba dengan nilai a = 0 dan b = 2 Dari gambar.0000000) . x = 1.0000000)2 + 8(1.Meylanie Olivya P2700209002 6 2.0000000)=(1.8273467)5 .8273467)2 + 8(1.8273467. Ujicoba dengan a=2.2 = -0.0000000)4 + 5(1.

x2=1. Jika dimasukkan ke dalam f(x)= x5 .3x4 + 5x3-9x2 + 8x-2=0 adalah x1 = 1. sehingga tidak akan diperoleh solusi.3948053)4 + 5(0. nilai f(x) akan turun pada x < 0.Meylanie Olivya P2700209002 7 Dari gambar. Hanya nilai riil yang bisa diproses dan diperoleh.3948053)2 + 8(0.3948053)3 -9(0. x = 0. diperoleh akar fungsi f(x). Meskipun diuji untuk sembarang nilai. dan x3=0.3948053. Sehingga akar persamaan dari f(x)= x5 . diperoleh : f(0. maka akar tersebut tidak akan dapat diperoleh dengan metode numerik 3.3948053.3x4 + 5x3-9x2 + 8x-2. E. Ujicoba dengan nilai a = 0 dan b = -5 Untuk fungsi persamaan f(x)= x5 .0000001 4. harus tetap memenuhi kondisi yang sudah dipersyaratkan . Ciri-Ciri Penyelesaian Numerik 1. sehingga jika fungsi tersebut ternyata memiliki akar imajiner.0000000. nilai yang dihasilkan tidak exact 2. Pada umumnya.3x4 + 5x3-9x2 + 8x-2.3948053)=(0.3(0.8273467. Tidak ada indikasi apakah akar persamaan yang diperoleh adalah akar kembar ataupun bukan 4.3948053)5 .2 = -0.3948053) .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->