Anda di halaman 1dari 10

METODE NUMERIK

“PENGAPLIKASIAN METODE BISECTION DALAM BAHASA


PEMOGRAMAN”

ASRIF FAJAR HIDAYAT


E1E1 16 066

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS HALU OLEO
KENDARI
2018
BAB I
PENDAHULUAN

1.1. Latar Belakang


Untuk mendapatkan penyelesaian matematika yang menjabarkan model suatu
persoalan nyata bidang rekayasa, sering solusi yang dicari berupa suatu nilai variabel x
sedemikian rupa sehingga terpenuhi persamaan f(x) = 0 yang digunakan dalam model.
Dalam menyelesaikan permasalahan fungsi f(x) dapat menggunakan beberapa metode
untuk mencari nilai x dalam fungsi f(x) = 0, salah satunya ialah dengan menggunakan
metode bisection.
Metode bisection adalah algoritma pencarian akar pada sebuah interval. Interval
tersebut membagi dua bagian, lalu memilih dari dua bagian ini dipilih bagian mana yang
mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan
berulang-ulang hingga diperoleh akar persamaan atau mendekati akar persamaan. Metode
ini berlaku ketika ingin memecahkan persamaan f(x) = 0 dengan f merupakan fungsi
kontinyu.
Prosedur dalam metode bisection, missal dijamin bahwa f(x) adalah fungsi kontinyu
pada interval [a, b] dan f(a)f(b) < 0. Ini artinya bahwa f(x) paling tidak harus memiliki akar

pada interval [a, b]. Kemudian definisikan titik tengah pada interval [a, b] yaitu c := .
Dari sini kita memperoleh dua subinterval yaitu [a, c] dan [c, b]. Setelah itu, cek apakah
f(c) > 0 atau f(c) < 0, Jika f(c) > 0 maka b = c (artinya titik b digantikan oleh titik c yang
berfungsi sebagai titik b pada iterasi berikutnya), jika tidak maka a = c. Dari iterasi pertama
kita memperoleh interval [a, b] yang baru dan titik tengah c yang baru. Kemudian lakukan
pengecekan lagi seperti sebelumnya sampai memperoleh error yang cukup kecil atau nilai
f(c) mendekati nilai toleransi mendekati nol.

1.2. Tujuan
Melakukan penerapan metode bisection dalam bahasa pemograman C++.
BAB II
PEMBAHASAN

2.1. Source Code


#include <iostream>
#include <conio.h>
#include <math.h>
#define toleransi 0.002
using namespace std;
float fungsi(float x,int a)
{
float sum;
switch(a){
case 1:
sum=pow(x,2)-x-6;
break;
case 2:
sum=pow(x,3)-x-6;
break;
case 3:
sum=pow(x,2.5)-x-6;
break;
case 4:
sum=pow(x,5)+(2*pow(x,3))-(7*pow(x,2))+(9*x)-8;
break;
}
return sum;
}
int main ()
{
float a,b,c,d=1,k;
cout<<"=============================================================="<<
endl;
cout<<"Mencari Nilai x Pada Fungsi : "<<endl;
cout<<"1. X^2-X-6"<<endl;
cout<<"2. X^3-X-6"<<endl;
cout<<"3. X^2,5-X-6"<<endl;
cout<<"4. X^5+2X^3-7X^2+9X-8"<<endl;
cout<<"Masukkan Kasus yang Dipilih : ";cin>>k;
cout<<"=============================================================="<<
endl;
cout<<"Masukkan Nilai Sembarang a : ";cin>>a;
cout<<"Masukkan Nilai Sembarang b : ";cin>>b;
cout<<"=============================================================="<<
endl;
if(fungsi(a,k)<0&&fungsi(b,k)>0)
{
do{
c=(a+b)/2;
cout<<"===Iterasi ke-"<<d<<"==="<<endl;
cout<<"a : "<<a<<" "<<"f(a) : "<<fungsi(a,k)<<endl;
cout<<"b : "<<b<<" "<<"f(b) : "<<fungsi(b,k)<<endl;
cout<<"c : "<<c<<" "<<"f(c) : "<<fungsi(c,k)<<endl;

if(fungsi(c,k)==0)
break;
else if (fungsi(c,k)<0)
a=c;
else
b=c;
d++;
}while(fabs(fungsi(c,k))>toleransi);
cout<<"\nNilai x : "<<c<<endl;
}
else
{
cout<<"f(a) : "<<fungsi(a,k)<<" "<<"f(b) : "<<fungsi(b,k)<<endl;
cout<<"Nilai sembarang yang dimasukkan tidak sesuai"<<endl;
cout<<"f(a)<0 "<<" "<<"f(b)>0 "<<endl;
}
return 0;
}
2.2. Penjelasan Program
Dalam program tersebut terdapat 4 fungsi (f(x)) yang akan dicari nilai x dari fungsi
tersebut. Kasus tersebut antara lain :
a. 2x2-x-6
b. 2x3-x-6
c. 2x2,5-x-6
d. x5+2x3-7x2+9x-8
Berikut ini penjelasan mengenai pengunaan program ini :

a. Pertama-tama program akan meminta kita untuk meng-input-kan kasus yang akan kita
pilih. Pada kali ini kita memilih kasus 4.

b. Setelah selesai meng-input-kan kasus, kita akan diminta untuk meng-input-kan nilai
sembarang a dan nilai sembarang b.
c. Jika nilai sembarang a dan nilai sembarang b yang kita input-kan tidak sesuai dengan
syarat/kondisi dari metode bisection, dimana f(a)<0 dan f(b)>0. Program akan
memberitahukan bahwa nilai yang dimasukkan tidak sesuai, maka kita harus
mengulang dalam memasukkan nilai sembrang a dan nilai sembarang b.

d. Jika nilai sembarang a dan nilai sembarang b yang kita input-kan sudah memenuhi
syarat maka program akan menampilkan hasil dari iterasi yang berupa nilai x dari
fungsi tersebut. Kita akan meng-input-kan nilai a=1 dan nilai b=4.
e. Dengan melakukan 13 kali iterasi kita telah menemukan nilai dari f(c) telah mendekati
nilai toleransi(nilai yang mendekati 0). Dengan nilai f(c) yang telah mendekati nilai
toleransi, maka program akan berhenti untuk melakukan iterasi. Program akan
menampilkan nilai x dari fungsi tersebut. Maka didapatlah nilai x=1.30319.
f. Untuk selanjutnya, kita akan melakukan pengujian yang sama pada sebelumnya
terhadap ketiga kasus lainnya.
g. Pada kasus 1, kita akan meng-input-kan nilai sembarang a=1 dan sembarang b=5.

h. Dengan 1 kali iterasi, kita telah dapat menemukan nilai x yang memenuhi fungsi
tersebut. Maka didapat nilai x=3.
i. Pada kasus 2, kita akan meng-input-kan nilai sembarang a=1 dan sembarang b=3.

j. Dengan 1 kali iterasi, kita telah dapat menemukan nilai x yang memenuhi fungsi
tersebut. Maka didapat nilai x=2.
k. Pada kasus 3, kita akan meng-input-kan nilai sembarang a=2 dan sembarang b=3.

l. Dengan 11 kali iterasi, kita telah dapat menemukan nilai x yang memenuhi fungsi
tersebut. Maka didapat nilai x=2,33545.
BAB III
KESIMPULAN

3.1. Kesimpulan
Metode bisection dapat diterapkan pada bahasa pemograman manapun, contohnya
pada bahasa pemograman C++. Program yang telah dibuat telah berhasil untuk
menemukan nilai x yang memenuhi f(x)=0 pada ke-empat kasus yang telah diberikan.

3.2. Saran
Semoga program metode bisection ini dapat bermanfaat membuat kita semua lebih
mudah dalam mempelajari metode bisection tersebut.
DAFTAR PUSTAKA

https://aimprof08.wordpress.com/2012/08/30/metode-bagi-dua-bisection-method/
http://usmhann.blogspot.co.id/2014/09/v-behaviorurldefaultvmlo.html
wikipedia.org