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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful