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.

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful