PENDAHULUAN
1
permasalahan yang terbentuk pada persamaan tak linier dapat diselesaikan dengan
menggunakan aplikasi Matlab.
Matlab merupakan aplikasi yang memudahkan pada penggunanya untuk
memecahkan permaslahan yang berkaitan dengan matematika serta analisisnya.
Dalam menyelesaikan persamaan tak linier ini, dapat dilakukan dengan mudah
dengan menggunakan aplikasi matlab ini. Secara teori, penyelesaian persamaan
ini dapat dilakukan dengan menggunakan beberapa metode yaitu :
1. Metode Belah Dua (Bisection)
2. Metode Newton-Raphson
3. Metode Tali Busur (Secant).
Namun, dalam hal ini yang menjadi fokus adalah mencari solusi
persamaan tak linier dengan metode belah dua. metode bagi-dua adalah algoritma
pencarian akar yang membagi dua selang, lalu memilih bagian selang yang berisi
akar seharusnya berada untuk diproses lebih lanjut. Metode ini berlaku ketika kita
ingin memecahkan persamaan f(x) = 0 untuk variable scalar x, di mana f
merupakan fungsi kontinu (Pratiwi : 2014).
Dalam menggunakan metode belah dua ini pada matlab tentu perlu adanya
pemahaman yang mendasar dalam membuat program matlab yang berbasis
menyelesaikan permasalahan persamaan tak linier. Oleh karena itu, makalah ini
mengangkat judul Solusi Persamaan Tak Linier dengan Metode Belah Dua.
2
4) Bagimana cara menjalankan aplikasi pemograman matlab dengan
menggunakan metode belah dua dalam menyelesaikan persamaan tak
linier ?
1.3. Tujuan
Berdasarkan rumusan masalah yang diberikan sebelumnya, maka tujuan
dari pembuatan makalah ini adalah :
1) Untuk mengetahui apakah dengan metode belah dua dalam sistem
pemograman matlab mampu menyelesaikan persamaan tak linier.
2) Untuk mengetahui cara metode belah dua dalam menyelesaikan persamaan
tak linier pada pemograman matlab ?
3) Untuk mengetahui proses pembuatan aplikasi pemograman matlab dengan
menggunakan metode belah dua dalam menyelesaikan persamaan tak
linier ?
4) Untuk mengetahui cara menjalankan aplikasi pemograman matlab dengan
menggunakan metode belah dua dalam menyelesaikan persamaan tak
linier ?
1.4. Manfaat
Berdasarkan latar belakang, rumusan dan tujuan pembuatan makalah,
maka manfaat yang bisa diperoleh dari makalah ini adalah sebagai berikut :
1) Menambah referensi bacaan dalam mempelajari pemograman matlab
dengan metode belah dua dalam meyelesaikan masalah persamaan tak
linier yang efektif dan afisien.
2) Menambah referensi bagi para pembaca dalam membuat serta
menjalankan aplikasi pemograman matlab dengan dengan metode belah
dua dalam meyelesaikan masalah persamaan tak linier.
3) Sebagai bahan referensi bagi mahasiswa yang sedang memperlajari
pemograman matlab khususnya dengan metode belah dua.
3
BAB II
TINJAUAN TEORITIS
4
hanya bekerja pada satu jenis mesin tertentu karenanya disebut machine
dependent.
5
digunakan. Sedangkan dengan Compiler, pengerjaan instruksi bisa berjalan
dengan cepat karena setiap kali hanya diperlukan satu program executable yang
telah dihasilkan. Program executable ini juga bisa diduplikasi dan dijalankan pada
komputer yang lain dengan platform yang sama. Namun secara kebahasaan
program yang diproses dengan compiler harus betul secara keseluruhan sebelum
benar-benar bisa dikompilasi dan distribusikan (Nugroho : 2013).
2.3. Matlab
2.3.1. Pengenalan Matlab
MATLAB (matrix laboratory) adalah sebuah lingkungan komputasi
numerikal dan bahasa pemrograman komputer generasi keempat. Dikembangkan
oleh The MathWorks, MATLAB memungkinkan manipulasi matriks, pem-plot-an
fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan
pengantarmukaan dengan program dalam bahasa lainnya. (Pratiwi : 2014)
MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan
komputasi numerik dan merupakan suatu bahasa pemrograman matematika
lanjutan yang dibentuk dengan dasar pemikiran menggunkan sifat dan bentuk
matriks. Pada awalnya, program ini merupakan interface untuk koleksi rutin-rutin
numerik dari proyek LINPACK dan EISPACK, dan dikembangkan menggunkan
bahasa FORTRAN namun sekarang merupakan produk komersial dari perusahaan
Mathworks, Inc.yang dalam perkembangan selanjutnya dikembangkan
menggunakan bahasa C++ dan assembler (utamanya untuk fungsi-fungsi dasar
MATLAB) (Arhami dan Desiani : 2015).
MATLAB telah berkembang menjadi sebuah environment pemrograman
yang canggih yang berisi fungsifungsi built-in untuk melakukan tugas pengolahan
sinyal, aljabar linier, dan kalkulasi matematis lainnya. MATLAB juga berisi
toolbox yang berisi fungsi-fungsi tambahan untuk aplikasi khusus MATLAB
bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru
untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak
dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan
6
tidak terlalu sulit bila Anda telah memiliki pengalaman dalam pemrograman
bahasa lain seperti C, PASCAL, atau FORTRAN (Arhami dan Desiani : 2015).
MATLAB (MATrix LABoratory) yang merupakan bahasa pemrograman
tingkat tinggi berbasis pada matriks sering digunakan untuk teknik komputasi
numerik, yang digunakan untuk menyelesaikan masalah-masalah yang melibatkan
operasi matematika elemen, matrik, optimasi, aproksimasi dll. Sehingga Matlab
banyak digunakan pada :
Matematika dan Komputasi
Pengembangan dan Algoritma
Pemograman modeling, simulasi, dan pembuatan prototipe
Analisa data, eksplorasi dan visualisasi
Analisis numerik dan statistik
Pengembangan dan aplikasi teknik
7
yang lebih besar" untuk memperoleh hasil-hasil dan aplikasi yang
komplek.
4) Graphics. MATLAB memiliki fasilitas untuk menampilkan vector dan
matrices sebagai suatu grafik. Didalamnya melibatkan high-level functions
(fungsi-fungsi level tinggi) untuk visualisasi data dua dikensi dan data tiga
dimensi, image processing, animation, dan presentation graphics. Ini juga
melibatkan fungsi level rendah yang memungkinkan bagi anda untuk
membiasakan diri untuk memunculkan grafik mulai dari benutk yang
sederhana sampai dengan tingkatan graphical user interfaces pada aplikasi
MATLAB anda.
5) MATLAB Application Program Interface (API). Merupakan suatu library
yang memungkinkan program yang telah anda tulis dalam bahasa C dan
Fortran mampu berinterakasi dengan MATLAB. Ini melibatkan fasilitas
untuk pemanggilan routines dari MATLAB (dynamic linking),
pemanggilan MATLAB sebagai sebuah computational engine, dan untuk
membaca dan menuliskan MAT-files.
8
sebarang ukuran. Matlab mempunyai beberapa tipe data dasar (atau class), yaitu:
logical, char, numeric, cell, structure, java classes, function handles.
B. Operator
Di dalam matlab, operator diklasifikasikan menjadi tiga bagian, yaitu:
a) Operator Aritmatika
Operator aritmatika digunakan untuk mengerjakan komputasi numeric.
Operator tersebut dapat disaikan pada tabel 1 berikut :
Tabel 1 Operator Aritmatika
Operato
Arti
r
+ Penjumlahan
- Pengurangan
* Perkalian (aturan matrik)
.* Perkalian masing-masing ellemen
yang bersesauian (aturan array)
/ Pembagian kanan (matrik)
./ Pembagian kana (array)
\ Pembagian kiri (matrik)
.^ Perpangkatan (array)
: Langkah
b) Operator Relational
Operator relasional digunakan untuk membandingkan operand-operand
secara kuantitatif. Operator tersebut dapat disaikan pada tabel 2 berikut :
Tabel 2 Operator Relasional
Operato
Arti
r
== Sama dengan
~= Tidak sama dengan
< Kurang dari
> Lebih dari
<= Kurang dari sama dengan
>= Lebih dari sama dengan
c) Operator Logika
9
Operator logika yang dapat digunakan dalam matla antara lain :
Tabel 3 Operator Logika
Operator Arti
% Akan menghasilkan nilai 1 jika kedua
elemen yang bersesuaian memilki nilai
true dan 0 untuk lain nya
| Akan bernilai 1 jika salh satu elemen
nya true
~ Komplen dari elemen yang di inputkan
xor Akan bernilai 1 jika salah satu dari
kedua elemen memilki nilai berbeda
dan bernilai nol jika sama
10
Metode biseksi
Metode regulasi falsi
2) Metode Terbuka
Ciri-ciri metode terbuka, yaitu :
Diperlukan tebakan awal
xn dipakai untuk menghitung xn+1
Hasil dapat konvergen atau divergen
Dalam hal ini yang termasuk metode terbuka antara lain :
Metode Iterasi Sederhana
Metode Newton-Raphson
Metode Secant
11
Metode bagi dua mensyaratkan dua titik awal a dan b sedemikian sehingga
f(a) dan f(b) memiliki tanda berlainan. Ini dinamakan kurung dari sebuah akar.
Menurut teorema nilai antara, fungsi f mestilah memiliki paling tidak satu akar
dalam selang (a, b). Metode ini kemudian membagi selang menjadi dua dengan
menghitung titik tengah c = (a + b) / 2 dari selang tersebut. Kecuali c merupakan
akar persamaan, yang mungkin saja terjadi, tapi cukup jarang, sekarang ada dua
kemungkinan: f(a) dan f(c) memiliki tanda berlawanan dan mengapit akar, atau
f(c) dan f(b) memiliki tanda berlawanan dan mengapit akar. Kita memilih bagian
selang yang mengapit, dan menerapkan langkah bagi-dua serupa terhadapnya.
Dengan cara ini selang yang mungkin mengandung nilai nol dari f dikurangi
lebarnya sebesar 50% pada setiap langkah. Kita meneruskan langkah ini sampai
kita memiliki selang yang dianggap cukup kecil.
Secara eksplisit: jika f(a) f(c) < 0, maka metode ini menetapkan b baru
sama dengan c, dan bila f(b) f(c) < 0, maka metode ini menetapkan a baru sama
dengan c. Dalam kedua kasus, f(a) dan f(b) baru memiliki tanda berlawanan,
sehingga metode ini dapat diterapkan pada selang baru yang lebih kecil ini.
Implementasi metode ini harus berjaga-jaga terhadap kemungkinan bahwa titik
tengah ternyata merupakan pemecahan (Pratiwi : 2014).
Metode bisection merupakan metode paling sederhana bagi penyelesaian
akar fungsi tak linear pada suatu interval yang diketahui. Kelebihan dari metode
12
ini adalah bisa digunakan bagi sembarang fungsi termasuk pada suatu fungsi-
fungsi yang tidak bisa diselesaikan secara analitik. Berdasarkan namanya
seseungguhnya kita bisa menebak secara intuitif maksud dari metode ini, yaitu
jika pada suatu interval tertentu terdapat suatu akar dari fungs maka interval
tersebut dibagi menjadi dua interval baru. Lalu dapat dipastikan diantara kedua
interval yang terbentuk tersebut terdapat satu interval yang memuat akar (titik nol)
fungsi (Nugroho : 2013).
13
3) Interval [a; b] dibagi menjadi dua lagi "di-Bisect" dan prosedur pencarian
interval yang mengandung akar fungsi dilakukan secara berulang.
4) Pada setiap langkah titik tengah interval akan digunakan sebagai nilai
pendekatan bagi akar fungsi yang dimaksud/dicari.
Setelah n langkah perulangan maka akan diperoleh
ca
2n
Nilai ini dapat digunakan untuk menentukan batas toleransi bagi program untuk
melakukan iterasi sampai mencapai interval terkecil. Jika diberikan toleransi
maka berlaku
ca
n
2
Berikut akan disajikan contoh menentukan akar-akar pada persamaan non linier :
contoh 1 :
Input coding berikut :
%contoh program mencari akar persamaan dengan metode bisection
%dari fungsi f = log (2-exp(x)-x+alpa
function bisection;
disp('METODE BISECTION')
14
disp('================')
a = input ('masukkan batas kiri interval :');
b = input ('masukkan batas kanan interval :');
esp = input ('masukkan epsilon / batas ketelitian : ');
itemax = input (' masukkan jumlah iterasi maksimum : ');
alfa = a;
disp(' ');
disp('memulai proses interasi');
disp('=======================');
tic
for i = 1:1:itemax
t =(a+b)/2;
if (fn(a,alfa)*fn(t,alfa)<=0)
b = t;
else
a = t;
end
disp (['interasi ke',num2str(i),',',' akarnya :',num2str(t)])
if (abs(a-b))<=eps;
break
end
end
waktu =toc;
disp(' ');
disp(['akarnya adalah :',num2str(t)]);
disp(['jumlah interasi :',num2str(i)]);
disp(['selang waktu konvergensi :',num2str(waktu)]);
function f = fn(x,alfa)
f = log (2-exp(-x))-x +alfa;
15
Kemudian pilih menu file -> New -> M-file
Selanjutnya masukkan coding yang telah disediakan di atas, maka
tampilan akan seperti berikut
16
Langkah selanjutnya adalah menyimpan file yang telah dibuat melaui
menu file - > save / save as.
Selanjutnya menjalankan aplikasi melalui menu debug -> run, seperti pada
gambar :
17
Langkah yang terakhir adalah dengan menekan tombol enter pada keyboar
maka akan muncul tampilan sebagai berikut :
Untuk selanjutnya kita bisa memvariasikan nilai kiri dan kanan interval,
batas ketelitian dan iterasi maksimumnya.
Contoh 2 :
Input coding berikut :
tic;
clear;close all;clc;
a=-1%input('tebakan kiri =');
b=5%input('tebakan kanan =');
eps=10^(-9);
eps2=10^(-7);
n=4
fT=1;
while abs((fT)>eps2);%abs(a-b)>eps
fa=3-4*cos(a*pi/180)+a^3;
fb=3-4*cos(b*pi/180)+b^3;
T=a-fa*(a-b)/(fa-fb);
fT=3-4*cos(T*pi/180)+T^3;
if fa*fT>0
a=T
18
else if fa*fT<0
b=T
else akar=T;
end
end
n=n+1;
end
toc
19
Selanjutnya masukkan coding yang telah disediakan di atas, maka
tampilan akan seperti berikut
20
Langkah yang terakhir adalah dengan menekan tombol enter pada keyboar
maka akan muncul tampilan sebagai berikut :
Untuk selanjutnya kita bisa memvariasikan nilai a, b, dan n.
Tabel 4 Source Code Program
21
fT=3-4*cos(T*pi/180)+T^3; Perkiraan posisi akar di titik tengah antara dua
batas
if (fa*fT<0) Logika untuk hasil perkalian fad an ft adalah
kurang dari 0
b=T Hasil yang berlaku untuk logika nomor 14, yaitu
nilai b=T
else Logika lain jika nomor 14 tidak terpenuhi
a=T Hasil yang berlaku untuk logika nomor 16
end Akhir dari pernyataan no 15
n=n+1; Nilai n berjalan menuju n+1 n+2, dst
End Akhir dari pernyataan no 8
toc Deklarasi akhri program
Testing I
22
Testing II
Kesimpulan : Dengan menggunakan persamaan yang sama dan batas atas dan
bawah yang berbeda, hasil yang diperoleh tidak sama. Hal ini berarti, proses
memasukkan batas atas dan bawah tidak boleh sembarangan, namun ketentuan
khususnya belum diperoleh.
23
BAB III
KESIMPULAN DAN SARAN
3.1. Kesimpulan
Berdasarkan penjelasan yang diberikan di atas dapat disimpulkan bahwa :
1) Dengan metode belah dua dalam sistem pemograman matlab mampu
menyelesaikan persamaan tak linier secara cepat.
2) Cara metode belah dua dalam meyelesaikan persamaan tak linier pada
pemograman matlab antara lain :
Definisikan fungsi f(x) yang akan dicari akarnya
Tentukan nilai a dan b
Tentukan toleransi e (error) dan iterasi maksimum N
Hitung f(a) dan f(b)
Jika f(a).f(b)>0 maka proses dihentikan karna tidak ada akar, bila tidak
dilanjutkan
Hitung x=a+b/2
Hitung f(x)
Jika f(x).f(a)<0 maka b=x dan f(b)=f(x) Jika tidak a=x dan f(a)=f(x)
Jika |b-a|<e atau iterasi > iterasi maksimum maka proses dihentikan dan
didapatkan akar = x, dan bila tidak ulangi langkah 6.
3) Proses pembuatan aplikasi pemograman matlab dengan menggunakan
metode belah dua dalam menyelesaikan persamaan tak linier sebagai
berikut :
Buka aplikasi matlab dengan menekan double click pada dekstop
matlab
Setelah terbuka akan muncul tampilan layar seperti berikut
Kemudian pilih menu file -> New -> M-file
Selanjutnya masukkan coding sesuai dengan persamaan yang akan di
cari permasalahannya
Langkah selanjutnya adalah menyimpan file yang telah dibuat melaui
menu file - > save / save as.
4) Cara menjalankan aplikasi pemograman matlab dengan menggunakan
metode belah dua dalam menyelesaikan persamaan tak linier adalah
sebagai berikut :
Menjalankan aplikasi melalui menu debug -> run
24
Untuk langkah selanjutnya adalah mengisi kolom yang akan diisi sesuai
dengan petunjuk
Langkah yang terakhir adalah dengan menekan tombol enter pada
keyboard maka hasil yang akan dicari akan diperoleh
Untuk selanjutnya bisa memvariasikan nilai nilai variabel yang
diinginkan.
5) Kesimpulan pada saat dilakukan testing ;
Dengan menggunakan persamaan yang sama dan batas atas dan
bawah yang berbeda, hasil yang diperoleh tidak sama. Hal ini
berarti, proses memasukkan batas atas dan bawah tidak boleh
sembarangan, namun ketentuan khususnya belum diperoleh.
3.2. Saran
Dalam hal ini, beberapa saran yang perlu dalam pembuatan aplikasi
pemograman matlab dengan metode belah dua anatara lain :
1) Dibutuhkan ketelitian dalam memasukkan coding atau bahasa
pemograman pada worksheet agar program yang dijalankan pada comment
windows akan berjalan dengan sempurna.
2) Ketidaktelitian dalam memasukkan coding dalam worksheet akan
menjadikan program tidak berjalan, sehingga dibutuhkan ketelitian lebih
dalam mengevaluasi program yang tidak berjalan.
25
DAFTAR PUSTAKA
Pratiwi, B.W. 2014. Metode Bagi Dua dan Posisi Palsu. FMIPA Brawijaya :
Malang
Sartono, Arif. 2006. Penggunaan Metode Numerik dan Matlab dalam Fisika.
FMIPA UI : Jakarta
Sumber : http://simasdap.blogspot.com/2011/05/
26