Anda di halaman 1dari 4

TUGAS PRAKTIKUM MANDIRI 1

TITIK POTONG PERSAMAAN FUNGSI DENGAN METODE BISECTION

Oleh

Ni Putu Ayu Gita Saraswati

F1D020071

1. Tujuan
Tujuan dari dilakukan praktikum ini adalah sebagai berikut:
a. Dapat memahami solusi dari persamaan non linear dengan menggunakan metode Bisection.
b. Mampu menentukan titik potong dari kedua persamaan non linear dengan menggunakan
metode Bisection.
c. Mampu mengaplikasikan permasalahan metode Bisection ke dalam Bahasa pemrograman
C++.
2. Percobaan
Percobaan dilakukan untuk menentukan titik potong dari fungsi 𝑓1 = 𝑥 2 − 2𝑥 + 1 dengan 𝑓2 =
𝑥 3 − (𝑥 + 2)𝑒 −2𝑥 + 1 dengan metode Bisection.
Untuk mensimimulasikan dalam mencari titik potong dari kedua persamaan fungsi non linear
dengan menggunakan metode bisection dapat dibuat suatu algoritma untuk menghitung dari persoalan
diatas sebagai berikut:
a. Definisikan kedua fungsi f(x) yang akan dicari akarnya.
b. Tentukan nilai range a dan b.
c. Hitung f(a) dan f(b) dari fungsi f(x) yang telah ditentukan.
d. Jika f(a). f(b) > 0 maka proses akan dihentikan karena tidak memiliki akar, bila sebaliknya
dilanjutkan.
𝑎+𝑏
e. Hitung nilai x = 2

f. Hitung nilai f(x).


g. Jika f(x). f(a) < 0 maka nilai b = x dan f(b) = f(x), jika tidak a = x dan f(a) = f(x).
h. Jika |b – a| < e atau iterasi lebih besar dari iterasi maksimum maka proses dihentikan dan
didapatkan akar = x dan jika tidak, maka ulangi langkah f.

Jika algoritma di atas diaplikasikan ke dalam program C++ menjadi sebagai berikut:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <cmath>
using namespace std;

double fx (double X){


double fungsi;
fungsi=pow(X,3)-pow(X,2)+2*X-((X+2)*exp(-2*X))+1-1;
return fungsi;
}
int main(int argc, char** argv){
double a,b,e;
int n,i=1;
cout<<"========================="<<endl;
cout<<"Mencari titik potong\nmenggunakan metode biseksi"<<endl;
cout<<"========================="<<endl;
menu:
cout<<"Input nilai a = "; cin>>a;
cout<<"Input nilai b = "; cin>>b;
cout<<"Input toleransi = "; cin>>e;
cout<<"Input iterasi maks = "; cin>>n;
cout<<"========================="<<endl;
double x=0.0, f_x=0.0;
double fa=fx(a);
double fb=fx(b);
cout<<"fa = "<<fa<<endl;
cout<<"fb = "<<fb<<endl<<endl;
if (fa*fb>0){
cout<<"Tidak ada solusi silahkan kembali"<<endl<<endl;
goto menu;
}
else {
while (i<=n){
x=(a+b)/2;
f_x=fx(x);
if (f_x*fa<0){
b=x;
fb=f_x;
}
else {
a=x;
fa=f_x;
}
if(abs(f_x)<=e) break;
cout<<"iterasi ke-"<<i<<" = ";
cout<<"x = "<<x<<"\n\t\tf(x) = "<<f_x<<endl;
i++;
}
cout<<"Salah satu akarnya = "<<x<<endl;
cout<<"Errornya = "<<abs(f_x)<<endl;
cout<<"iterasi = "<<i<<endl;
}
return 0;
}
3. Hasil Percobaan dan Pembahasan
Dari hasil percobaan di atas dilakukan untuk menentukan titik potong dari kedua persamaan
yaitu 𝑓1 = 𝑥 2 − 2𝑥 + 1 dengan 𝑓2 = 𝑥 3 − (𝑥 + 2)𝑒 −2𝑥 + 1 dengan mengunakan metode
Bisection. Dari kedua persamaan dengan dilakukan toleransi. Langkah dari program dibuat dengan
metode yang sama dengan algoritma yang telah tertulis di atas. Berikut hasil run dari program
Bisection dalam menentukan titik potong dari persamaan non linear (𝑥 3 − (𝑥 + 2)𝑒 −2𝑥 + 1) −
(𝑥 2 − 2𝑥 + 1):

Hasil run program dengan toleransi 0.0001 (10−4 )

Hasil run program dengan toleransi 0.000001 (10−6 )


Berdasarkan hasil percobaan di atas, dapat dilihat bahwa setiap range yang di-input-kan
menentukan solusi PNL dari permasalahan yang diberikan. Dari permasalahan tersebut untuk
mencari titik potong dari fungsi persamaan dengan metode Bisection dimana persamaan f(x) yang
di-input nilai a dan b adalah 3 dan -1. Dengan memiliki toleransi yang berbeda sehingga
menghasilkan hasil yang berbeda pula tergantung setiap angka yang dimasukkan oleh user. Begitu
pula, hasil error akan berbeda-beda dan bilamana nilai f(a) dikali dengan f(b) lebih besar sama
dengan nol maka hasil tidak akan ditemukan titik potong atau iterasi yang diperoleh tidak ada atau
bernilai nol.
4. Kesimpulan
Berdasarkan percobaan yang dilakukan dapat diambil kesimpulan bahwa:
1. Metode Bisection dapat digunakan untuk menyelesaikan solusi PNL dengan menentukan suatu
range, toleransi serta iterasi maksimumnya. Dengan metode ini juga dapat menyelesaikan suatu
permasalahan untuk mencari titik potong dari kedua persamaan yang telah ditentukan.
2. Metode Bisection untuk dapat mencari titik potong persamaan dengan menentukan fungsi awal,
menentukan nilai a dan nilai b, nilai x serta batas toleransi error-nya. Namun, untuk dapat
menentukan hasil titik potong serta nilai errornya harus menunjukkan bahwa f(a).f(b)<0 jika
sebaliknya hasil yang ditampilkan bernilai nol atau tidak ditemukan.
3. Dalam mengaplikasikan suatu metode Bisection dengan menggunakan Bahasa pemrograman C++
dapat mempermudah user dalam mencari hasil yang diinginkan. Dalam pemrograman C++ ini,
tipe data yang digunakan berupa tipe data double untuk mencari hasil karena dapat menjangkau
bilangan desimal serta menggunakan tipe data integer untuk menentukan berapa iterasi yang
dimasukkan oleh user.

Daftar Pustaka

[1] Cahya, Deasy, Yan. “Metode Numerik”, POLINEMA PRESS, Politeknik Negeri Malang, 2016.
[2] Chapra, Steven C. “Metode Numerik untuk Teknik dengan Penerapan pada Komputer Pribadi”,
Universitas Indonesia, 1991.
[3] Kahir, Abdul, “Logika Pemrograman Menggunakan C++”, PT Elex Media Komputindo, Jakarta,
2019.
[4] Sasongko, Setia Budi. “Metode Numerik dengan Scilab”, ANDI, Yogyakarta, 2010.
[5] Setio, Utomo. “Pengantar Metode Komputasi”, Universitas Gadjah Mada, Yogyakarta, 2018.

Anda mungkin juga menyukai