Anda di halaman 1dari 37

LAPORAN PRAKTIKUM KOMPUTASI BIOMEDIS

CHAPTER 2
FINDING-ROOT METHOD: BISECTION & REGULA-FALSI
Hari, Tanggal : Selasa, 14 September 2021 Jam Ke : 3-4

Oleh :
Reza Ummam Nor (081911733012)
KELAS T1
Dosen Pembimbing :
ALFIAN PRAMUDITA PUTRA, S.T., M.Sc.

LAPORAN KOMPUTASI BIOMEDIS


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS AIRLANGGA
2021
A. TUJUAN
Menentukan akar-akar fungsi dengan menggunakan metode Bisection dan
Regula-Falsi.

B. DASAR TEORI
Python adalah bahasa pemrograman interpretatif multiguna. Tidak
seperti bahasa lain yang susah untuk dibaca dan dipahami, python lebih
menekankan pada keterbacaan kode agar lebih mudah untuk memahami
sintaks. Hal ini membuat Python sangat mudah dipelajari baik untuk pemula
maupun untuk yang sudah menguasai bahasa pemrograman lain (Henri, 2003).
Salah satu penerapan phyton adalah untuk komputasi. Contoh bentuk
komputasi adalah pencarian akar dari sebuah fungsi. Dengan demikian, adanya
komputasi memanfaatkan phyton dapat mempermudah pekerjaan manusia
dalam mencari akar suatu fungsi yang rumit.
Masalah pencarian akar adalah salah satu masalah paling mendasar
dalam analisis numerik. Jika ada fungsi f(x), proses untuk menemukan akar
dari fungsi ini melibatkan pencarian nilai x dengan f(x) = 0. Ketika fungsi sama
dengan nol, nilai x untuk fungsi tersebut adalah akarnya. Salah satu metode
untuk mencari akar ini adalah metode bisection atau metode interval halving
atau metode pencarian biner atau metode dikotomi. Metode ini didasarkan pada
teorema Bolzano untuk fungsi kontinu. Teorema (Bolzano): Jika suatu fungsi
f(x) kontinu pada interval [a, b] dan f(a)·f(b) < 0, maka ada nilai c ∈(a, b)
dimana f( c) = 0 (Capra and Canale, 2010).
Metode ini dimulai dengan memilih dua angka, membuat interval di
antara mereka dengan mengambil setengahnya, dan membuatnya semakin
kecil. Kedua bilangan tersebut harus memiliki hasil fungsi yang berlawanan
tanda. Sebagai contoh, ada dua angka, a dan b. f(a) dan f(b) harus berlawanan
tanda sehingga f(a).f(b)<0. Kemudian, bilangan median r diambil dari (a+b)/2.
Hasil f(r) harus diuji dengan menggunakan salah satu dari f(a) atau f(b). Jika
hasil dari f(r).f(a)<0 maka akan digunakan sebagai interval baru. Proses ini
diulang sampai interval mencapai 0 atau mendekati 0 sesuai dengan error yang
disyaratkan (Kiusalaas, 2013). Metode ini diilustrasikan pada Gambar 1.

Gambar 1. Metode Biseksi untuk Mencari Akar Suatu Fungsi


Sumber : Modul Praktikum Komputasi Biomedis 2021
Metode lainnya adalah Regula-Falsi. Metode ini dimulai dengan
mendefinisikan interval awal [a, b] sehingga f(a) . f(b) < 0. Dalam metode ini,
titik r tidak tepat di tengah. Titik r sedikit dekat dengan a atau b. Titik r dihitung
dengan menggunakan persamaan di bawah ini:
𝑓(𝑎)(𝑎 − 𝑏)
𝑟=𝑎−
𝑓(𝑎) − 𝑓(𝑏)
Setelah itu, interval baru ditentukan dengan menggunakan metode yang
sama dengan metode biseksi yaitu dengan memeriksa apakah f(a) . f(r) < 0 atau
f(b) . f(r) < 0. Jika f(a) . f(r) < 0 maka interval baru adalah a dan r, jika tidak,
maka interval baru adalah r dan b. Proses ini diulangi sampai ditemukan nilai
terdekat dengan kesalahan terkecil (Capra and Canale, 2010).

Sumber : Modul Praktikum Komputasi Biomedis 2021

Gambar 2. Metode Regula-Falsi untuk Mencari Akar Suatu Fungsi


Berikut merupakan algoritma dalam komputasi mencari akar suatu
fungsi menggunakan metode biseksi dan regula-falsi :
1. Metode Biseksi
a) Menentukan fungsi f(x), interval [a, b], iterasi maks (maxit), dan error
maks (maxer).
b) Menentukan n=1, n mewakili nilai iterasi.
c) Mengulangi langkah d-h sampai n maxit
d) r = (a+b)/2
e) Mencetak n, r, dan f(r)
f) Jika |f(r) ≤ maxer| atau |a-b| ≤ maxer, maka iterasi berhenti dan keluar.
g) Jika f(r)*f(a) < 0 , maka b = r, jika tidak a = r.
h) n = n+1
i) Mencetak "algoritma gagal: tidak ada konvergensi" dan keluar.

2. Metode Regulasi-Falsi
a) Menentukan fungsi f(x), interval [a, b], iterasi maks (maxit), dan error
maks (maxer).
b) Menentukan n = 1, n mewakili nilai iterasi.
c) Mengulangi langkah d-h sampai n maxit
d) r = a - (f(a)(a - b))/(f(a) - f(b))
e) Mencetak n, r, dan f(r)
j) Jika |f(r) ≤ maxer| atau |a-b| ≤ maxer, maka iterasi berhenti dan keluar.
f) Jika f(r)*f(a) < 0, maka b = r, jika tidak a = r.
g) n = n+1
h) Mencetak "algoritma gagal: tidak ada konvergensi" dan keluar.

C. CODING, HASIL, DAN ANALISIS

Link Google Collab :


https://colab.research.google.com/drive/1DCa6zTfa-fIBNIYdxc-
PSFcrwnPnO4AH?usp=sharing

1. FUNGSI DERAJAT 1 : f(x) = x – 8

#REZA UMMAM NOR


#081911733012
#f(x)=x-8

import numpy as np
import math
import pylab

def fungsi (x):


return x-8

a = 0
b = 10
max = 20
fa = fungsi(a)
fb = fungsi(b)

c = 0
d = 10
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []
Tanda # pada awal code merupakan komentar yang tidak diproses
program. Bagian tersebut menampilkan identitas programmer
Syntax import berfungsi untuk mengimpor modul pada phyton. Numpy
dan math berisi fungsi matematika, sedangkan pylab untuk menampilkat plot
grafik.
Syntax def berfungsi untuk mendeklarasikan fungsi (x)= x-8.
Variabel a dan b menunjukkan interval yang memuat nilai akar pada
metode biseksi, nilai awal a adalah 0 dan b adalah 10. Variabel max
menunjukkan jumlah maksimal iterasi yaitu 20. Variabel fa menunjukkan hasil
nilai a yang disubtitusikan ke dalam fungsi (x), begitu juga untuk fb.
Variabel c dan d menunjukkan interval yang memuat nilai akar pada
metode regula-falsi, nilai awal c adalah 0 dan d adalah 10. Variabel fc
menunjukkan hasil dari nilai c yang disubtitusikan ke dalam fungsi (x), begitu
juga untuk fd.
Variabel i merupakan nilai awal iterasi yaitu 1 untuk metode biseksi.
Begitu pula variabel j untuk metode regula-falsi.
Variabel x1 adalah list yang memuat nilai iterasi pada metode biseksi,
sedangkan x2 untuk metode regula-falsi. Variabel y1 adalah list yang memuat
nilai akar fungsi pada metode biseksi, sedangkan y2 untuk metode regula-falsi.

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fa*fb<0): #BLOK CONDITIONAL 1


while (i<=max): #BLOK PERULANGAN
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)), '
\t||\t', (round(fr0,5)), ' \t||')

if(fa*fr0<0): #BLOK CONDITIONAL 2


b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
i+=1

else:
print('\nInterval a dan b tidak mengandung nilai akar')
Syntax print berfungsi untuk mencetak kalimat didalam petik tunggal
dan judul tabel meliputi iterasi, tebakan akar, dan hasil fungsi
Syntax if memuat syarat jika fa x fb kurang dari nol maka proses akan
dilanjutkan ke pencarian nilai x karena memuat akar fungsi atau konvergen. Jika
tidak maka interval a dan b tidak mengandung akar fungsi dan masuk ke else.
Blok conditional 1 :
Perulangan menggunakan syntax while dengan batasan
perulangan/iterasi kurang dari sama dengan nilai max yaitu 20
Blok perulangan :
Variabel r0 memuat nilai dari rumus nilai tengah interval a dan b yang
identic dengan metode biseksi. fr0 memuat nilai fungsi (r0). Penghitungan nilai
r0 akan terus diulang sampai iterasi maksimal yaitu 20 dengan konsekuensi
interval a dan b akan terus mengecil. Sesuai teori nilai r0 dengan fr0 paling
mendekati 0.0 merupakan nilai x atau akar fungsi (x). Syntax print berfungsi
mencetak nilai i, r0 dan fr0.
Blok conditional 2 :
Syntax if memuat syarat jika fa x fr0 kurang dari 0 maka nilai b untuk
interval yang baru adalah r0. Jika tidak maka program dilanjutkan ke syntax
else yang berfungsi mengubah nilai a untuk interval yang baru dengan r0.
Syntax append berfungsi untuk menambah elemen pada list di bagian
belakang. Untuk list x1 elemen yang ditambakan adalah i, sedangkan list y1
elemen yang ditambahkan adalah r0.
Code i+=1 berfungsi agar perulangan/iterasi bertambah satu setiap
perulangan.
Syntax else berjalan jika nilai a dan b tidak memenuhi syarat untuk if
statement blok conditional 1 dikarenakan interval tidak konvergen. Program
akan mencetak kalimat di dalam petik tunggal dengan print.

Hasil Tabel :
Analisis :
Pada tabel tampak nilai akar fungsi f(x)=x-8 ditemukan pada iterasi ke
20 yaitu x=8 dengan f(x)=0.0. Hal ini sesuai dengan hitungan manual bahwa
nilai akar f(x) adalah x=8. Pada tabel tidak menunjukkan pola bahwa semakin
besar iterasi maka nilai f(x) semakin mendekati nol, contohnya pada iterasi ke-
6 dan ke-7. Hasil f(x) pada iterasi ke-6 lebih mendekati 0 daripada iterasi ke-7.
Hal ini berakibat pada plot yang dihasilkan akan fluktuatif. Dengan demikian
pada metode biseksi selain batasannya berupa maksimal iterasi juga dapat
ditambahkan dengan maksimum error.

Hasil Tabel :

Analisis :
Hasil tersebut muncul jika nilai a dan b tidak memenuhi syarat fa x fb
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode biseksi tidak
mengandung akar atau konvergen.

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t hasi
l fungsi \t||')

if (fc*fd<0):
while (j<=max):
r1 = c-((fc*(c-d))/(fc-fd))#RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0):
d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')
#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

Syntax print berfungsi untuk mencetak kalimat didalam petik tunggal


dan judul tabel meliputi iterasi, tebakan akar, dan hasil fungsi
Syntax if memuat syarat jika fc x fd kurang dari nol maka proses akan
dilanjutkan ke pencarian nilai x karena memuat akar fungsi atau konvergen. Jika
tidak maka interval c dan d tidak mengandung akar fungsi dan masuk ke else.
Blok conditional 1 :
Perulangan menggunakan syntax while dengan batasan
perulangan/iterasi kurang dari sama dengan nilai max yaitu 20
Blok perulangan :
Variabel r1 memuat nilai dari rumus titik antara interval c dan d
menggunakan konsep gradien garis yang identic dengan metode regula-falsi.
fr1 memuat nilai fungsi (r1). Penghitungan nilai r1 akan terus diulang sampai
iterasi maksimal yaitu 20 dengan konsekuensi interval c dan d akan terus
mengecil. Sesuai teori nilai r1 dengan fr1 paling mendekati 0.0 merupakan nilai
x atau akar fungsi (x). Syntax print berfungsi mencetak nilai j, r1 dan fr1.
Blok conditional 2 :
Syntax if memuat syarat jika fc x fr1 kurang dari 0 maka nilai d untuk
interval yang baru adalah r1. Jika tidak maka program dilanjutkan ke syntax
else yang berfungsi mengubah nilai c untuk interval yang baru dengan r1.
Syntax append berfungsi untuk menambah elemen pada list di bagian
belakang. Untuk list x2 elemen yang ditambakan adalah j, sedangkan list y2
elemen yang ditambahkan adalah r1.
Code j+=1 berfungsi agar perulangan/iterasi bertambah satu setiap
perulangan.
Syntax else berjalan jika nilai c dan d tidak memenuhi syarat untuk if
statement blok conditional 1 dikarenakan interval tidak konvergen. Program
akan mencetak kalimat di dalam petik tunggal dengan print.
Pada code terakhir memuat syntax plot dari modul pylab yang berfungsi
menampilkan grafik pencarian akar fungsi. Sumbu-x memuat nilai iterasi dan
sumbu-y memuat nilai akar untuk kedua metode, yaitu biseksi dan regula-falsi
yang kemudian bisa dibandingkan.
Hasil Tabel :

Analisis :
Pada tabel tampak nilai akar fungsi f(x)=x-8 ditemukan pada iterasi ke-
1 yaitu x=8 dengan f(x)=0.0. Nilai akar langsung didapat sangat cepat pada
iterasi pertama. Iterasi ke-2 sampai ke-20 menjadi tidak berguna karena
menghasilkan nilai yang sama. Dengan demikian pada metode regula-falsi
selain batasannya berupa maksimal iterasi juga dapat ditambahkan dengan
maksimum error agar iterasi dapat berhenti ketika maksimum error yang
ditentukan sudah terpenuhi.
Pada tabel menunjukkan pola bahwa semakin besar iterasi maka nilai
f(x) semakin mendekati nol. Maka dari itu plot untuk metode ini akan lebih
halus, tidak fluktuatif, dan konstan mendekati nilai akar yang sebenarnya.

Hasil Tabel :

Analisis :
Hasil tersebut muncul jika nilai c dan d tidak memenuhi syarat fc x fd
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode regula-falsi
tidak mengandung akar atau tidak konvergen.
Perbandingan Grafik Plot Fungsi Dua Metode :

Kedua grafik tersebut menunjukkan plot dalam mencari nilai akar untuk
fungsi derajat 1 yaitu f(x)=x-8 dengan menggunakan komputasi. Grafik warna
biru menunjukkan plot untuk metode biseksi sedangkan grafik oranye
menunjukkan plot untuk metode regula-falsi. Tampak untuk metode biseksi
grafik berfluktuatif dalam mendekati nilai akar yiatu x=8. Nilai akar baru
ditemukan saat iterasi ke-20, yaitu x=8 dengan f(x)=0.0. Disisi lain metode
regula-falsi dapat langsung menemukan nilai akar x=8 pada iterasi pertama dan
tetap konstan sampai iterasi ke-20.
Dengan demikian untuk fungsi derajat 1 metode regula-falsi lebih
direkomendasikan karena lebih cepat menemukan nilai akar dibandingkan
metode biseksi.

2. FUNGSI DERAJAT 2 : f(x) = x2 – 16


#REZA UMMAM NOR
#081911733012
#f(x)=x^2-16

import numpy as np
import math
import pylab

def fungsi (x):


return x**2-16

a = 0
b = 10
max = 20
fa = fungsi(a)
fb = fungsi(b)

c = 0
d = 10
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fa*fb<0):
while (i<=max):
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)),
' \t||\t',(round(fr0,5)), '
\t||')

if(fa*fr0<0):
b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
i+=1
else:
print('\nInterval a dan b tidak mengandung nilai akar')

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fc*fd<0):
while (j<=max):
r1 = c-((fc*(c-d))/(fc-fd)) #RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0):
d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')

#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

Listing code untuk pencarian akar fungsi derajat 2 yaitu f(x) = x^2-16
sama persis dengan code untuk fungsi derajat 1. Perbedaannya hanya terdapat
pada pendeklarasian fungsi dengan syntax def. Fungsi derajat 1 diganti dengan
fungsi derajat 2 yaitu f(x) = x^2-16. Dengan demikian penjelasan semua proses
dan syntax yang digunakan pada program sama antara fungsi derajat 1 dan 2.
Maka dari itu analisis dapat langsung dilanjutkan untuk hasil program dan
perbandingan hasil plot kedua metode (biseksi dan regula-falsi).

Hasil Tabel Metode Biseksi :


Analisis :
Pada tabel tampak nilai akar fungsi f(x)=x^2-16 yaitu x=4 dan x= -4
dengan f(x)=0.0 masih didekati dengan metode biseksi. Hal ini dikarenakan
nilai f(x) yang ditemukan sampai iterasi ke-20 belum tepat 0.0. Meskipun pada
iterasi ke-19 muncul angka 4.0, itu terjadi karena pembulatan 5 angka di
belakang koma dan dikuatkan f(x) belum tepat 0.0. Meskipun demikian
merujuk pada syarat maksimum iterasi, maka nilai x yang digunakan adalah
pada itersi ke-20, yaitu x=4.00001 dengan f(x)=5x10^-5.
Pada tabel tidak menunjukkan pola bahwa semakin besar iterasi maka
nilai f(x) semakin mendekati nol, contohnya pada iterasi ke-3 dan ke-4. Hasil
f(x) pada iterasi ke-3 lebih mendekati 0 daripada iterasi ke-4. Hal ini
berdampak pada plot yang dihasilkan akan fluktuatif. Dengan demikian pada
metode biseksi selain batasannya berupa maksimal iterasi juga dapat
ditambahkan dengan maksimum error.

Hasil Tabel Metode Biseksi:

Analisis :
Hasil tersebut muncul jika nilai a dan b tidak memenuhi syarat fa x fb
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode biseksi tidak
mengandung akar atau tidak koncergen.

Hasil Tabel Metode Regula-Falsi :

Analisis :
Pada tabel tampak nilai akar fungsi f(x)=x^2-16 ditemukan pada iterasi
ke-20 yaitu x=4 dengan f(x)=0.0. Hal ini sesuai dengan hitungan manual
dimana akar dari fungsi f(x) adalah 4 dan -4. Meskipun pada iterasi ke-17
sampai ke-19 muncul angka x = 4.0, hal itu terjadi karena pembulatan 5 angka
di belakang koma dan dikuatkan f(x) belum tepat 0.0
Pada tabel menunjukkan pola bahwa semakin besar iterasi maka nilai
f(x) semakin mendekati nol. Maka dari itu plot untuk metode ini akan lebih
halus, tidak fluktuatif, dan konstan mendekati nilai akar yang sebenarnya.

Hasil Tabel Metode Regula-Falsi:

Analisis :
Hasil tersebut muncul jika nilai c dan d tidak memenuhi syarat fc x fd
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode regula-falsi
tidak mengandung akar atau tidak konvergen.

Perbandingan Grafik Plot Fungsi Dua Metode :

Kedua grafik tersebut menunjukkan plot dalam mencari nilai akar untuk
fungsi derajat 2 yaitu f(x)=x^2-16. Grafik warna biru menunjukkan plot untuk
metode biseksi sedangkan grafik oranye menunjukkan plot untuk metode
regula-falsi. Tampak untuk metode biseksi grafik berfluktuatif dalam
mendekati nilai akar yaitu x=4. Nilai akar pada iterasi ke-20 yaitu x=4.00001
dengan f(x)=0.00005. Artinya akar yang ditemukan masih mendekati akar asli
karena belum menghasilkan f(x) tepat 0.0.
Disisi lain grafik metode regula-falsi lebih halus dan konstan semakin
mendekati nilai akar. Hingga akhirnya dapat menemukan nilai akar x=4 pada
iterasi ke-20.
Dengan demikian untuk fungsi derajat 2 metode regula-falsi lebih
direkomendasikan karena lebih cepat menemukan nilai akar dibandingkan
metode biseksi.
3. FUNGSI DERAJAT 3 : f(x) = x3 + 2x2 + 10x -20
#REZA UMMAM NOR
#081911733012
#f(x)=x^3+2x^2+10x-20

import numpy as np
import math
import pylab

def fungsi (x):


return x**3+2*x**2+10*x-20

a = 0
b = 10
max = 20
fa = fungsi(a)
fb = fungsi(b)

c = 0
d = 10
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fa*fb<0):
while (i<=max):
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)),
' \t||\t',(round(fr0,5)), '
\t||')

if(fa*fr0<0):
b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
i+=1
else:
print('\nInterval a dan b tidak mengandung nilai akar')

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fc*fd<0):
while (j<=max):
r1 = c-((fc*(c-d))/(fc-fd)) #RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0):
d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')

#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

Listing code untuk pencarian akar fungsi derajat 3 yaitu f(x) =


x^3+2x^2+10x-20 sama persis dengan code untuk fungsi derajat 1.
Perbedaannya hanya terdapat pada pendeklarasian fungsi dengan syntax def.
Fungsi derajat 1 diganti dengan fungsi derajat 3 yaitu f(x) = x^3+2x^2+10x-20.
Dengan demikian penjelasan semua proses dan syntax yang digunakan pada
program sama antara fungsi derajat 1 dan 3. Maka dari itu analisis dapat
langsung dilanjutkan untuk hasil program dan perbandingan hasil plot kedua
metode (biseksi dan regula-falsi).

Hasil Tabel Metode Biseksi :

Analisis :
Pada tabel tampak nilai akar fungsi f(x)= x^3+2x^2+10x-20 dengan
hasil f(x)=0.0 masih didekati dengan metode biseksi. Hal ini dikarenakan nilai
f(x) yang ditemukan sampai iterasi ke-20 belum tepat 0.0. Meskipun demikian
merujuk pada syarat maksimum iterasi, maka nilai x yang digunakan adalah
pada itersi ke-20, yaitu x=1.3688 dengan f(x)= -0.00019.
Pada tabel tidak menunjukkan pola bahwa semakin besar iterasi maka
nilai f(x) semakin mendekati nol, contohnya pada iterasi ke-3 dan ke-4. Hasil
f(x) pada iterasi ke-3 lebih mendekati 0 daripada iterasi ke-4. Hal tersebut
berakibat pada plot yang berfluktuatif. Dengan demikian pada metode biseksi
selain batasannya berupa maksimal iterasi juga dapat ditambahkan dengan
maksimum error.

Hasil Tabel Metode Biseksi:

Analisis :
Hasil tersebut muncul jika nilai a dan b tidak memenuhi syarat fa x fb
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode biseksi tidak
mengandung akar atau tidak konvergensi.
Hasil Tabel Metode Regula-Falsi :

Analisis :
Pada tabel tampak nilai akar fungsi f(x)= x^3+2x^2+10x-20 dengan
hasil f(x)=0.0 masih didekati dengan metode regula-falsi. Hal ini dikarenakan
nilai f(x) yang ditemukan sampai iterasi ke-20 belum tepat 0.0 bahkan masih
memiliki error lebih dari 1. Meskipun demikian merujuk pada syarat
maksimum iterasi, maka nilai x yang digunakan adalah pada itersi ke-20, yaitu
x=1.28383 dengan f(x)= -1.74913. Hal ini mengindikasikan metode regula-
falsi lambat untuk mencari akar fungsi derajat 3.
Pada tabel menunjukkan pola bahwa semakin besar iterasi maka nilai
f(x) semakin mendekati nol. Maka dari itu plot untuk metode ini akan lebih
halus dan tidak fluktuatif.

Hasil Tabel Metode Regula-Falsi :

Analisis :
Hasil tersebut muncul jika nilai c dan d tidak memenuhi syarat fc x fd
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode regula-falsi
tidak mengandung akar atau tidak konvergen.
Perbandingan Grafik Plot Fungsi Dua Metode :

Kedua grafik tersebut menunjukkan plot dalam mencari nilai akar untuk
fungsi derajat 3 yaitu f(x)= x^3+2x^2+10x-20. Grafik warna biru menunjukkan
plot untuk metode biseksi sedangkan grafik oranye menunjukkan plot untuk
metode regula-falsi. Tampak untuk metode biseksi grafik berfluktuatif dalam
mendekati nilai akar. Nilai akar pada iterasi ke-20 yaitu x=1.3688 dengan f(x)=
-0.00019. Artinya akar yang ditemukan masih mendekati akar asli karena
belum menghasilkan f(x) tepat 0.0.
Disisi lain grafik metode regula-falsi lebih halus dan konstan semakin
mendekati nilai akar. Akan tetapi pada iterasi ke-20 nilai akar yang ditemukan
adalah x=1.28383 dengan f(x)= -1.74913. Nilai error pada metode regula-falsi
lebih besar daripada metode biseksi.
Dengan demikian untuk fungsi derajat 3 metode biseksi lebih
direkomendasikan karena lebih cepat menemukan nilai akar dibandingkan
metode regula-falsi.

4. FUNGSI TRIGONOMETRI : f(x) = x – 2cos(x)


#REZA UMMAM NOR
#081911733012
#f(x)=x-2cos(x)

import numpy as np
import math
import pylab

def fungsi (x):


return x-2*math.cos(x)

a = 0
b = math.pi/2
max = 20
fa = fungsi(a)
fb = fungsi(b)

c = 0
d = 10
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []
i+=1

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fa*fb<0):
while (i<=max):
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)),
' \t||\t',(round(fr0,5)), '
\t||')

if(fa*fr0<0):
b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
i+=1
else:
print('\nInterval a dan b tidak mengandung nilai akar')

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')
if (fc*fd<0):
while (j<=max):
r1 = c-((fc*(c-d))/(fc-fd)) #RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0):
d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')

#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

Listing code untuk pencarian akar fungsi trigonometri yaitu f(x) = x-


2cos(x) sama persis dengan code untuk fungsi derajat 1. Perbedaannya hanya
terdapat pada pendeklarasian fungsi dengan syntax def. Fungsi derajat 1 diganti
dengan fungsi trigonometri yaitu f(x) = x-2cos(x). Dengan demikian penjelasan
semua proses dan syntax yang digunakan pada program sama antara fungsi
derajat 1 dan trigonometri. Maka dari itu analisis dapat langsung dilanjutkan
untuk hasil program dan perbandingan hasil plot kedua metode (biseksi dan
regula-falsi).
Hasil Tabel Metode Biseksi:

Analisis :
Pada tabel tampak nilai akar fungsi f(x)= x – 2cos(x) yaitu x=1.02987
dengan f(x)=0.0 ditemukan pada iterasi ke-19.
Pada tabel tidak menunjukkan pola bahwa semakin besar iterasi maka
nilai f(x) semakin mendekati nol, contohnya pada iterasi ke-3 dan ke-4. Hasil
f(x) pada iterasi ke-3 lebih mendekati 0 daripada iterasi ke-4. Hal ini
mengakibatkan plot yang dihasilkan berfluktuatif.
Disisi lain nilai x sudah ditemukan sebelum maksimal iterasi terjadi,
yaitu pada iterasi ke-19. Hal ini menyebabkan nilai akar iterasi setelahnya
menjadi tidak berguna karena memiliki hasil yang sama. Dengan demikian
pada metode biseksi selain batasannya berupa maksimal iterasi juga dapat
ditambahkan dengan maksimum error agar nilai x yang ditampilkan lebih
akurat serta iterasi dapat berhenti jika nilai akar sudah ditemukan.

Hasil Tabel Metode Biseksi:

Analisis :
Hasil tersebut muncul jika nilai a dan b tidak memenuhi syarat fa x fb
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode biseksi tidak
mengandung akar atau tidak konvergen.
Hasil Tabel Metode Regula-Falsi :

Analisis :
Pada tabel tampak nilai akar fungsi f(x)= x – 2cos(x) ditemukan pada
iterasi ke-7 yaitu x=1.02987 dengan f(x)= -0.0. Meskipun pada iterasi ke-6 juga
menunjukkan f(x)= -0.0, akan tetapi bilangan tersebut merupakan hasil
pembulatan 5 angka di belakang koma. Hal ini diperkuat dengan nilai x dan
f(x) pada iterasi ke-8 sampai dengan ke-20 menunjukkan hasil yang sama
dengan iterasi ke-7.
Berdasarkan tabel iterasi ke-8 sampai ke-20 menjadi tidak berguna
karena menunjukkan hasil yang sama. Dengan demikian pada metode regula-
falsi selain batasannya berupa maksimal iterasi juga dapat ditambahkan dengan
maksimum error agar iterasi dapat berhenti ketika maksimum error yang
ditentukan sudah terpenuhi.
Pada tabel menunjukkan pola bahwa semakin besar iterasi maka nilai
f(x) semakin mendekati nol. Maka dari itu plot untuk metode ini akan lebih
halus, tidak fluktuatif, dan konstan mendekati nilai akar yang sebenarnya.

Hasil Tabel Metode Regula-Falsi :

Analisis :
Hasil tersebut muncul jika nilai c dan d tidak memenuhi syarat fc x fd
< 0. Lebih tepatnya nilai yang diinputkan untuk interval metode regula-falsi
tidak mengandung akar atau tidak konvergen.
Perbandingan Grafik Plot Fungsi Dua Metode :

Kedua grafik tersebut menunjukkan plot dalam mencari nilai akar untuk
fungsi trigonometri yaitu f(x)=x-2cos(x). Grafik warna biru menunjukkan plot
untuk metode biseksi sedangkan grafik oranye menunjukkan plot untuk metode
regula-falsi. Tampak untuk metode biseksi grafik berfluktuatif dalam
mendekati nilai akar yaitu x=1.02987 dengan f(x)= -0.00 pada iterasi ke-20.
Disisi lain grafik metode regula-falsi lebih halus dan konstan semakin
mendekati nilai akar. Hingga akhirnya dapat menemukan nilai akar x=1.02987
dengan f(x)= -0.00 pada iterasi ke-7.
Dengan demikian untuk fungsi trigonometri metode regula-falsi lebih
direkomendasikan karena lebih cepat menemukan nilai akar dibandingkan
metode biseksi.

5. FUNGSI EKSPONENSIAL : f(x) = 2(4x-1)


#REZA UMMAM NOR
#081911733012
#f(x)=2^(4x-1)

import numpy as np
import math
import pylab

def fungsi (x):


return 2**(4*x-1)

a = 0
b = 10
max = 20
fa = fungsi(a)
fb = fungsi(b)

c = 0
d = 10
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fa*fb<0):
while (i<=max):
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)),
' \t||\t',(round(fr0,5)), '
\t||')

if(fa*fr0<0):
b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
i+=1
else:
print('\nInterval a dan b tidak mengandung nilai akar')

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t
hasil fungsi \t||')

if (fc*fd<0):
while (j<=max):
r1 = c-((fc*(c-d))/(fc-fd)) #RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0):
d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')

#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

Listing code untuk pencarian akar fungsi eksponensial yaitu f(x)


=2^(4x-1) sama persis dengan code untuk fungsi derajat 1. Perbedaannya hanya
terdapat pada pendeklarasian fungsi dengan syntax def. Fungsi derajat 1 diganti
dengan fungsi eksponensial yaitu f(x) =2^(4x-1). Dengan demikian penjelasan
semua proses dan syntax yang digunakan pada program sama antara fungsi
derajat 1 dan eksponensial. Maka dari itu analisis dapat langsung dilanjutkan
untuk hasil program dan perbandingan hasil plot kedua metode (biseksi dan
regula-falsi).

Hasil Tabel Metode Biseksi :

Analisis :
Pada hasil di atas tampak tabel kosong yang memiliki arti bahwa
diantara interval a dan b yaitu 1 sampai 10 tidak mengandung nilai akar. Akan
tetapi hasil tersebut juga terjadi untuk interval berapa pun. Hal ini terjadi karena
menurut teori grafik fungsi eksponensial tidak pernah menyentuh sumbu x atau
tidak pernah menghasilkan f(x)=0. Dengan demikian fungsi eksponensial tidak
memiliki akar.
Hasil Tabel Metode Regula-Falsi :

Analisis :
Pada hasil di atas tampak tabel kosong yang memiliki arti bahwa
diantara interval c dan d yaitu 1 sampai 10 tidak mengandung nilai akar. Akan
tetapi hasil tersebut juga terjadi untuk interval berapa pun. Hal ini terjadi karena
menurut teori grafik fungsi eksponensial tidak pernah menyentuh sumbu x atau
tidak pernah menghasilkan f(x)=0. Dengan demikian fungsi eksponensial tidak
memiliki akar.

Perbandingan Grafik Plot Fungsi Dua Metode :

Pada plot tampak baik metode biseksi maupun metode regula-falsi tidak
memunculkan grafik pencarian nilai akar fungsi atau x. Hal ini terjadi karena
menurut teori grafik fungsi eksponensial tidak pernah menyentuh sumbu x atau
tidak pernah menghasilkan f(x)=0. Dengan demikian fungsi eksponensial tidak
memiliki akar.

Gambar C.5.1 Grafik Fungsi Eksponensial


Sumber : https://www.m4th-lab.net/2018/08/fungsi-eksponensial-
matematika.html
D. TUGAS
1. Carilah akar dari sistem persamaan pada soal berikut!
Kolom tempat tidur yang dikemas. Kolom yang dikemas dengan
partikel bola memberikan geometri luas permukaan yang tinggi yang berguna
dalam mengisolasi protein(s) spesifik atau molekul biologis lainnya dari
campuran lisat sel. Persamaan Ergun menghubungkan penurunan tekanan
melalui unggun berisi bola dengan berbagai parameter fluida dan geometri
unggun:
∆𝑝 (1 − 𝜀)2 𝜇𝑢 (1 − 𝜀)𝜌𝑢2
= 150 + 1.75
𝑙 𝑑𝑝2 𝑑𝑝
Dimana ∆𝑝 adalah penurunan tekanan, 𝑙 adalah panjang kolom, 𝜀
adalah porositas, 𝜇 adalah viskositas fluida, 𝑢 adalah kecepatan fluida, 𝑑𝑝
adalah diameter partikel bola, dan 𝜌 adalah densitas fluida. Untuk kolom 20
cm, dikemas dengan bola 1 mm dan diresapi dengan buffer dengan viskositas
dan densitas yang sama dengan air (μ = 0,01 P, 𝜌 = 1 g/cm3). Dengan
menggunakan metode bagi dua dan Regula-Falsi, tentukan porositas kolom
jika penurunan tekanan untuk fluida yang mengalir adalah 810,5 dyn/cm2
dengan kecepatan u = 0,75 cm/s. Pastikan bahwa Anda menggunakan unit
yang konsisten selama perhitungan Anda.
Dengan menggunakan interval awal 0,1 < 𝜀 < 0,9, laporkan jumlah
iterasi yang diperlukan untuk menentukan porositas hingga 0,01 (toleransi).

Penyelesaian :
a. Mencari fungsi porositas f(𝜀) berdasarkan data yang disediakan
• Persamaan Ergun :
∆𝑝 (1 − 𝜀)2 𝜇𝑢 (1 − 𝜀)𝜌𝑢2
= 150 + 1.75
𝑙 𝑑𝑝2 𝑑𝑝
• Diketahui :
∆𝑝 = 810.5 𝑑𝑦𝑛/𝑐𝑚2
𝑙 = 20 𝑐𝑚
𝜇 = 0.01 𝑃
𝑢 = 0.75 𝑐𝑚/𝑠
𝑑𝑝 = 1 𝑚𝑚 = 0.1 𝑐𝑚
𝜌 = 1 𝑔/𝑐𝑚3

• Subtitusi variabel yang diketahui ke dalam persamaan Ergun :


∆𝑝 (1 − 𝜀)2 𝜇𝑢 (1 − 𝜀)𝜌𝑢2
= 150 + 1.75
𝑙 𝑑𝑝2 𝑑𝑝
2
810.5 (1 − 𝜀) × 0.01 × 0.75 (1 − 𝜀) × 1 × 0.752
= 150 + 1.75
20 0.12 0.1
(1 − 𝜀)2 × 0.0075 (1 − 𝜀) × 0.5625
40.525 = 150 + 1.75
0.01 0.1
40.525 = 150((1 − 𝜀)2 × 0.75) + 1.75((1 − 𝜀) × 5.625)
40.525 = 112.5(1 − 𝜀)2 + 9.84375(1 − 𝜀)
40.525 = 112.5(𝜀 2 − 2𝜀 + 1) + 9.84375(1 − 𝜀)
40.525 = 112.5𝜀 2 − 225𝜀 + 112.5 + 9.84375 − 9.84375𝜀
0 = 112.5𝜀 2 − 225𝜀 − 9.84375𝜀 + 112.5 + 9.84375 − 40.525
0 = 112.5𝜀 2 − 234.84375𝜀 + 81.81875
f(𝜀) = 112.5𝜀 2 − 234.84375𝜀 + 81.81875

Misalkan x = 𝜀, maka :
f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 + 81.8175

• Dengan demikian, fungsi porositas adalah :


f(𝜀) = f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 + 81.81875

b. Membuat algoritma pada phyton untuk mencari nilai akar fungsi porositas
baik metode biseksi maupun metode regula-falsi.
• Syarat :
Interval : 0.1 ≤ 𝑥 ≤ 0.9
Maksimum error : 0.01
• Code :
#TUGAS
#REZA UMMAM NOR
#081911733012
#f(x)=112.5x^2-234.84375x+81.81875

import numpy as np
import math
import pylab
from numpy import *

def fungsi (x):


return 112.5*x**2-234.84375*x+81.81875

a = 0.1
b = 0.9
maxe = 0.01
maxi = 100
fa = fungsi(a)
fb = fungsi(b)

c = 0.1
d = 0.9
fc = fungsi(c)
fd = fungsi(d)

i = 1
j = 1

x1 = []
x2 = []
y1 = []
y2 = []

#METODE BISEKSI
print('METODE BISEKSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t hasil f
ungsi \t||')

if (fa*fb<0): #BLOK CONDITIONAL 1


while (i<=maxi): #BLOK PERULANGAN
r0 = (a+b)/2 #RUMUS METODE BISEKSI
fr0 = fungsi(r0)
print ('\t || \t ', i, ' \t\t ||\t', (round(r0,5)), '
\t||\t',
(round(fr0,5)), ' \t||')

if(fa*fr0<0): #BLOK CONDITIONAL 2


b = r0
fb = fr0
else:
a = r0
fa = fr0

x1.append(i)
y1.append(r0)
fr01=sqrt(fr0**2) #nilai mutlak fr0
if fr01<=maxe : #BLOK CONDITIONAL 3
break
i+=1
else:
print('\nInterval a dan b tidak mengandung nilai akar')

#METODE REGULA-FALSI
print('\n\nMETODE REGULA-FALSI :\n')
print('\t || \t iterasi \t || \t tebakan akar \t\t||\t hasil f
ungsi \t||')

if (fc*fd<0): #BLOK CONDITIONAL 1


while (j<=maxi): #BLOK PERULANGAN
r1 = c-((fc*(c-d))/(fc-fd)) #RUMUS METODE REGULA-FALSI
fr1 = fungsi(r1)
print('\t || \t ', j, ' \t\t ||\t', (round(r1,5)), '
\t||\t',
(round(fr1,5)), ' \t||')

if(fc*fr1<0): #BLOK CONDITIONAL 2


d = r1
fd = fr1
else:
c = r1
fc = fr1

x2.append(j)
y2.append(r1)
fr11=sqrt(fr1**2) #nilai mutlak fr1
if fr11<=maxe : #BLOK CONDITIONAL 3
break
j+=1
else:
print('\nInterval c dan d tidak mengandung nilai akar')

#PLOT
pylab.plot(x1,y1, 'o-')
pylab.plot(x2,y2, '*-')

• Penjelasan Code :
Tanda # pada awal code merupakan komentar yang tidak diproses
program. Bagian tersebut menampilkan identitas programmer
Syntax import berfungsi untuk mengimpor modul pada phyton.
Numpy dan math berisi fungsi matematika, sedangkan pylab untuk
menampilkat plot grafik
Syntax def berfungsi untuk mendeklarasikan fungsi porositas atau
fungsi (x), yaitu : f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 + 81.81875
Variabel a dan b menunjukkan interval yang memuat nilai akar
pada metode biseksi, nilai awal a adalah 0.1 dan b adalah 0.9. Variabel
maxi menunjukkan jumlah maksimal iterasi yaitu 100. Sedangkan
variabel maxe menunjukkan maksimal error yaitu 0.01. Variabel fa
menunjukkan hasil nilai a yang disubtitusikan ke dalam fungsi (x),
begitu juga untuk fb.
Variabel c dan d menunjukkan interval yang memuat nilai akar
pada metode regula-falsi, nilai awal c adalah 0.1 dan d adalah 0.9.
Variabel fc menunjukkan hasil dari nilai c yang disubtitusikan ke dalam
fungsi (x), begitu juga untuk fd.
Variabel i merupakan nilai awal iterasi yaitu 1 untuk metode
biseksi. Begitu pula variabel j untuk metode regula-falsi.
Variabel x1 adalah list yang memuat nilai iterasi pada metode
biseksi, sedangkan x2 untuk metode regula-falsi. Variabel y1 adalah list
yang memuat nilai x atau akar fungsi pada metode biseksi, sedangkan
y2 untuk metode regula-falsi.
Code Metode Biseksi :
Syntax print berfungsi untuk mencetak kalimat didalam petik
tunggal dan judul tabel meliputi iterasi, tebakan akar, dan hasil fungsi
Syntax if memuat syarat jika fa x fb kurang dari nol maka proses
akan dilanjutkan ke pencarian nilai x karena memuat akar fungsi
(konvergen). Jika tidak maka interval a dan b tidak mengandung akar
fungsi dan masuk ke else.
Blok conditional 1 :
Perulangan menggunakan syntax while dengan batasan
perulangan/iterasi kurang dari sama dengan nilai maxi yaitu 100.
Blok perulangan :
Variabel r0 memuat nilai dari rumus nilai tengah interval a dan b
yang identic dengan metode biseksi. fr0 memuat nilai fungsi (r0).
Penghitungan nilai r0 akan terus diulang sampai maksimal iterasi yaitu
100 dengan konsekuensi interval yang terjadi akan semakin mengecil.
Nilai r0 dengan fr0 yang paling mendekati 0.0 selanjutnya merupakan
nilai x atau akar fungsi (x). Syntax print berfungsi mencetak nilai i, r0
dan fr0.
Blok conditional 2 :
Syntax if memuat syarat jika fa*fr0 kurang dari 0 maka nilai b
untuk interval yang baru adalah r0. Jika tidak maka program dilanjutkan
ke syntax else yang berfungsi mengubah nilai a untuk interval yang baru
dengan r0.
Syntax append berfungsi untuk menambah elemen pada list di
bagian belakang. Untuk list x1 elemen yang ditambakan adalah i,
sedangkan list y1 elemen yang ditambahkan adalah r0.
Variabel fr01 merupakan nilai mutlak untuk fr0 yang selanjutnya
digunakan untuk menentukan maximum error nilai akar yang
dihasilkan.
Blok conditional 3 :
Syntax if memuat syarat jika fr01 kurang dari sama dengan 0.01
maka iterasi akan dihentikan oleh syntax break. Hal ini menunjukkan
bahwa syarat nilai r0 atau nilai x (akar fungsi) telah terpenuhi untuk
maksimal error = 0.01.
Code i+=1 berfungsi agar perulangan/iterasi bertambah satu
setiap perulangan.
Syntax else berjalan jika nilai a dan b tidak memenuhi syarat
untuk if statement blok conditional 1 karena di dalam interval tidak
memuat akar fungsi atau tidak konvergen. Program akan mencetak
kalimat di dalam petik tunggal dengan print.

Code Metode Regula-Falsi :


Syntax print berfungsi untuk mencetak kalimat didalam petik
tunggal dan judul tabel meliputi iterasi, tebakan akar, dan hasil fungsi
Syntax if memuat syarat jika fc x fd kurang dari nol maka proses
akan dilanjutkan ke pencarian nilai x karena memuat akar fungsi atau
konvergen. Jika tidak maka interval c dan d tidak mengandung akar
fungsi dan masuk ke else.
Blok conditional 1 :
Perulangan menggunakan syntax while dengan batasan
perulangan/iterasi kurang dari sama dengan nilai maxi yaitu 100.
Blok perulangan :
Variabel r1 memuat nilai dari rumus titik antara interval c dan d
menggunakan konsep gradien garis yang identic dengan metode regula-
falsi. fr1 memuat nilai fungsi (r1). Penghitungan nilai r0 akan terus
diulang sampai maksimal iterasi yaitu 100 dengan konsekuensi interval
yang terjadi akan semakin mengecil. Nilai r1 dengan fr1 yang paling
mendekati 0.0 selanjutnya merupakan nilai x atau akar fungsi (x).
Syntax print berfungsi mencetak nilai j, r1 dan fr1.
Blok conditional 2 :
Syntax if memuat syarat jika fc x fr1 kurang dari 0 maka nilai d
untuk interval yang baru adalah r1. Jika tidak maka program dilanjutkan
ke syntax else yang berfungsi mengubah nilai c untuk interval yang baru
dengan r1.
Syntax append berfungsi untuk menambah elemen pada list di
bagian belakang. Untuk list x2 elemen yang ditambakan adalah j,
sedangkan list y2 elemen yang ditambahkan adalah r1.
Variabel fr11 merupakan nilai mutlak untuk fr1 yang selanjutnya
digunakan untuk menentukan maximum error nilai akar yang
dihasilkan.
Blok conditional 3 :
Syntax if memuat syarat jika fr11 kurang dari sama dengan 0.01
maka iterasi akan dihentikan oleh syntax break. Hal ini menunjukkan
bahwa syarat nilai r1 atau nilai x (akar fungsi) telah terpenuhi untuk
maksimal error = 0.01.
Code j+=1 berfungsi agar perulangan/iterasi bertambah satu
setiap perulangan.
Syntax else berjalan jika nilai c dan d tidak memenuhi syarat
untuk if statement blok conditional 1. Program akan mencetak kalimat
di dalam petik tunggal dengan print.
Pada code terakhir memuat syntax plot dari modul pylab yang
berfungsi menampilkan grafik pencarian akar fungsi. Sumbu-x memuat
nilai iterasi dan sumbu-y memuat nilai akar untuk kedua metode, yaitu
biseksi dan regula-falsi yang kemudian bisa dibandingkan.
• Hasil Metode Biseksi

Berdasarkan hitungan manual nilai x atau akar fungsi porositas,


f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 + 81.81875 adalah x = 𝜀 = 0.44197…
. Pada tabel tampak nilai akar yaitu x=0.44199 dengan f(x)= -0.00268
ditemukan pada iterasi ke-12. Meskipun nilai f(x) belum tepat nol, nilai
error untuk akar tersebut (nilai mutlak f(x)) adalah 0.00268 lebih kecil
dari syarat maksimal error pada soal yaitu 0.01.
Pada tabel tidak menunjukkan pola bahwa semakin besar iterasi
maka nilai f(x) semakin mendekati nol, contohnya pada iterasi ke-4 dan
ke-5. Hasil f(x) pada iterasi ke-4 lebih mendekati 0 daripada iterasi ke-
5. Dengan demikian plot yang dihasilkan akan bersifat fluktuatif.

• Hasil metode Regula-Falsi

Berdasarkan hitungan manual nilai x atau akar fungsi porositas,


f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 + 81.81875 adalah x = 𝜀 = 0.44197…
. Pada tabel tampak nilai akar yaitu x=0.44199 dengan f(x)= -0.0026
ditemukan pada iterasi ke-7. Meskipun nilai f(x) belum tepat nol, nilai
error untuk akar tersebut (nilai mutlak f(x)) adalah 0.0026 lebih kecil
dari syarat maksimal error pada soal yaitu 0.01.
Pada tabel menunjukkan pola bahwa semakin besar iterasi maka
nilai f(x) semakin mendekati nol. Dengan demikian plot yang
dihasilkan akan lebih halus dan konsisten mendekati nilai x atau akar
fungsi yang sebenarnya
• Perbandingan Plot

Kedua grafik tersebut menunjukkan plot dalam mencari nilai akar


untuk fungsi porositas yaitu f(𝑥) = 112.5𝑥 2 − 234.84375𝑥 +
81.81875. Grafik warna biru menunjukkan plot untuk metode biseksi
sedangkan grafik oranye menunjukkan plot untuk metode regula-falsi.
Tampak untuk metode biseksi grafik berfluktuatif dalam mendekati
nilai akar yaitu x=0.4419 dengan f(x)= -0.00268 pada iterasi ke-12.
Nilai error untuk akar tersebut yang merupakan nilai mutlak f(x) adalah
0.00268 lebih kecil daripada maksimum error yang berikan yaitu 0.01.
Dengan demikian syarat akar telah terpenuhi.
Disisi lain grafik metode regula-falsi lebih halus dan konstan
semakin mendekati nilai akar. Hingga akhirnya nilai akar yang
dihasilkan adalah x=0.4419 dengan f(x)= -0.0026 pada iterasi ke-7.
Nilai error untuk akar tersebut yang merupakan nilai mutlak f(x) adalah
0.0026 lebih kecil daripada maksimum error yang berikan yaitu 0.01.
Dengan demikian syarat akar telah terpenuhi.
Meskipun pada kedua metode menghasilkan nilai x atau akar
fungsi yang sama, yaitu x=0.4419, kecepatan dalam menemukan akar
tersebut berbeda. Metode biseksi pada iterasi ke-12, sedangkan metode
regula-falsi pada iterasi ke-7.
Dengan demikian nilai porositas yang ditemukan sesuai instruksi
pada soal adalah 𝜀 = x = 0.4419. Selain itu untuk fungsi porositas
dengan derajat 2 metode regula-falsi lebih direkomendasikan karena
lebih cepat menemukan nilai akar dibandingkan metode biseksi.

2. Analisislah kelebihan dan kekurangan dari kedua metode tersebut!


a) Metode Biseksi
• Kelebihan :
− Lebih cepat menemukan nilai akar pada fungsi derajat 3 dibanding
metode regula-falsi
− Rumus yang digunakan lebih sederhana
• Kekurangan :
− Mayoritas atau secara general lebih lambat dalam menemukan akar
suatu fungsi dibandingkan metode regula-falsi
− Plot yang dihasilkan fluktuatif
− Tidak konstan menunjukkan bahwa semakan besar iterasi maka
maka semakin mendekati nol untuk f(x) nya
− Hanya dapat menemukan 1 akar fungsi untuk sekali perhitungan
b) Metode Regula-Falsi
• Kelebihan :
− Mayoritas atau secara general lebih cepat dalam menemukan akar
suatu fungsi dibandingkan metode biseksi
− Plot yang dihasilkan halus
− Konstan menunjukkan bahwa semakan besar iterasi maka maka
semakin mendekati nol untuk f(x) nya
• Kekurangan :
− Lebih lambat menemukan nilai akar pada fungsi derajat 3 dibanding
metode biseksi
− Rumus yang digunakan lebih rumit
− Hanya dapat menemukan 1 akar fungsi untuk sekali perhitungan

E. KESIMPULAN
Praktikum Komputasi Biomedis Chapter 2 yang bertujuan untuk
menentukan akar-akar fungsi dengan menggunakan metode Biseksi dan
Regula-Falsi telah dilaksanakan dengan baik. Kesimpulan praktikum ini adalah
Metode Biseksi merupakan metode pencarian nilai akar yang dimulai dengan
memilih dua angka sebagai interval dan didalamnya harus terkandung nilai akar
(f(a).f(b)<0), lalu mencari nilai tengah (r) interval tersebut, dan membuatnya
semakin kecil hingga nilai f(r) mendekati atau mencapai nol. Sedangkan
Metode Regula-Falsi menggunakan konsep gradien untuk menentukan nilai r
sehingga tidak harus di tengah interval. Secara general metode Regula-Falsi
lebih cepat dalam menemukan akar serta plot yang dihasilkan lebih halus dan
konstan mendekati nilai akar yang sebenarnya. Dengan demikian, metode
Regula-Falsi lebih direkomendasikan dalam mencari akar suatu fungsi
dibandingkan metode biseksi.

F. DAFTAR PUSTAKA

Capra, Steven C and Canale. 2010. Numerical Methods for Engineers with
Personal Computer Applications. MacGraw-Hill Book Company.

Hendri. 2003. Cepat Mahir Phyton. IlmuComputer.com

Kiusalaas J. 2013. Numerical Methods in Engineering with Python 3. Vol. 51.


Cambridge University Press: New York.
M4th-lab. 2020. Fungsi Eksponensial. https://www.m4th-
lab.net/2018/08/fungsi-eksponensial-matematika.html diakses pada
17 September 2021

Modul Praktikum Komputasi Biomedis, Program Studi Teknobiomedik, Dep.


Fisika, Fakultas Sains dan Teknologi UNAIR 2021.

Anda mungkin juga menyukai