Anda di halaman 1dari 65

LABORATORIUM TEKNIK KIMIA Nama : NURUL ISTIQOMAH

FAKULTAS TEKNOLOGI INDUSTRI NPM/Semester : 1431010029 / III


UPN “VETERAN” JATIM Romb/Group : II / H
NPM/Teman Praktek : 1431010010 / ARDY
Praktikum :jiMATEMATIKA TEKNIK
WIJAYA
Percobaan : PERSAMAAN AKAR-AKAR
KUADRAT, METODE BISECTION,
DAN METODE INTERPOLASI LAPORAN RESMI
LINIER
Tanggal :BAB
20 SEPTEMBER
I 2015
Pembimbing : IR. NUR HAPSARI, MT

SOAL

1. Jelaskan sejarah perkembangan MATLAB ! (sumber dicantumkan)


2. Sebutkan 5 Kelebihan Matlab & 5 kekurangan Matlab dibandingkan Turbo
Pascal & Qucik Basic !
3. Sebutkan dan jelaskan macam – macam program simulasi yang dipakai teknik
kimia ! ( minimal 4 )
4. Jelaskan tentang persamaanakar-akar kuadrat, metode biseksi, dan metode
interpolasi linier! (sumber dicantumkan)
5. Jelaskan perbedaan metode biseksi dengan metode interpolasi linier
6. Buatlah perhitungan secara manual dari dengan metode biseksi dan interpolasi
linier! (3 iterasi)
7. Buatlah algoritma untuk membuat sebuah program penyelesaian metode akar
kuadrat, biseksi, dan interpolasi linier.
8. Buatlah program serta Flowchart untuk persamaan akar kuadrat, metode
biseksi dan interpolasi linier dengan persamaan yang sama dan bandingkan
hasilnya dalam pembahasan.
9. Pada program biseksi dan interpolasi linier yang diberikan di laboratorium
kurang efisien dikarenakan progam akan terus looping saat salah memasukan
harga awal, oleh karena itu buatlah program biseksi dan interpolasi linier agar
program dapat berhenti pada iterasi tertentu.
10. Buatlah Program beserta Flowchart biseksi dan interpolasi linier untuk
menyelesaikan persamaan dibawah ini:
a. x3+4x2-5=3x
b. 9x3+2x2-6x+2=0 (NPM= 1 angka terakhir NPM praktikan)
11. Selesaikaan soal ini dengan metode biseksi dan buatlah algoritmanya beserta
flowchartnya :
Carilah harga molar volume (V) dari persamaan Van Der Waals berikut:
𝑛2 𝑎
(𝑃 + ) (𝑉 − 𝑛𝑏) = 𝑅𝑇
𝑉2
Diketahui : R=0,082054
P=1, 10, 100
T=300, 500, 700oK
n= 1 mol
Pendekatan awal =0-3
Toleransi=0,0001
Gas SO2 (Sulphur Dioxide) untuk NPM GENAP
Gas CH4 (Methane) untuk NPM GANJIL
(Untuk harga a dan b dapat dicari di literature di tabel konstanta Van Der
Waals)
 Isilah tabel dibawah ini sesuai hasil yang diperoleh dan buat
pembahasaanya
V interpolasi
P T V biseksi
linier
1 300
10 300
100 300
1 500
10 500
100 500
1 700
10 700
100 700

nb: untuk soal 6-9 setiap praktikan tidak boleh sama untuk persamaannya.
JAWAB :
1. Sejarah dan perkembangan MATLAB
Sejarah MATLAB
MATLAB (yang berarti "matrix laboratory") diciptakan pada akhir
tahun 1970-an oleh Cleve Moler, yang kemudian menjadi Ketua Departemen
Ilmu Komputer di Universitas New Mexico. Ia merancangnya untuk
memberikan akses bagi mahasiswa dalam memakai LINPACK dan
EISPACK tanpa harus mempelajari Fortran.
Karyanya itu segera menyebar ke universitas-universitas lain dan
memperoleh sambutan hangat di kalangan komunitas matematika terapan.
Jack Little, seorang insinyur, dipertemukan dengan karyanya tersebut selama
kunjungan Moler ke Universitas Stanford pada tahun 1983.
Menyadari potensi komersialnya, ia bergabung dengan Moler dan
Steve Bangert. Mereka menulis ulang MATLAB dalam bahasa pemrograman
C, kemudian mendirikan The MathWorks pada tahun 1984 untuk
melanjutkan pengembangannya. Pustaka yang ditulis ulang tadi kini dikenal
dengan nama JACKPAC. Pada tahun 2000, MATLAB ditulis ulang dengan
pemakaian sekumpulan pustaka baru untuk manipulasi matriks, LAPACK.
MATLAB pertama kali diadopsi oleh insinyur rancangan kontrol
(yang juga spesialisasi Little), tapi lalu menyebar secara cepat ke berbagai
bidang lain. Kini juga digunakan di bidang pendidikan, khususnya dalam
pengajaran aljabar linear dan analisis numerik, serta populer di kalangan
ilmuwan yang menekuni bidang pengolahan citra.
MATLAB banyak digunakan pada :
a. Matematika dan Komputansi
b. Pengembangan dan Algoritma
c. Pemrograman modeling, simulasi, dan pembuatan prototipe
d. Analisa Data , eksplorasi dan visualisasi
e. Analisis numerik dan statistik
f. Pengembangan aplikasi teknik
Perkembangan MATLAB
MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis
dan komputasi numerik dan merupakan suatu bahasa pemrograman
matematika lanjutan yang dibentuk dengan dasar pemikiran menggunakan
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).
MATLAB telah berkembang menjadi sebuah environment
pemrograman yang canggih yang berisi fungsi-fungsi 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 tidak terlalu sulit bila Anda telah
memiliki pengalaman dalam pemrograman bahasa lain seperti C,
PASCAL,atau FORTRAN.
MATLAB merupakan merk software yang dikembangkan oleh
Mathworks.Inc. MATLAB merupakan software yang paling efisien untuk
perhitungan numeric berbasis matriks. Dengan demikian jika di dalam
perhitungan kita dapat menformulasikan masalah ke dalam format matriks
maka MATLAB merupakan software terbaik untuk penyelesaian numeriknya.
MATLAB 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.
Di kemudian hari MATLAB membeli lisensi dari MAPLE sehingga
MATLAB juga didukung komputasi simbolik. Saat ini versi terbaru
MATLAB adalah versi R2010b (versi yang digunakan penulis saat ini), dan
aplikasi ini berbayar! Saya mendapatkan MATLAB dan lisensinya dari
jaringan FTP di ITB.
MATLAB dapat digunakan untuk melakukan bermacam-macam
komputasi, mulai dari aritmatika sederhana sampai perhitungan matriks yang
sangat rumit. MATLAB juga bisa membuat grafik 2 dimensi dan 3 dimensi.
Yang unik di dalam bahasa MATLAB adalah MATLAB hanya mengenal
satu struktur data, yaitu matriks. Vektor adalah matriks kolom dan skalar
adalah matriks baris. Karena hanya mengenal satu macam struktur data, maka
variabel di dalam bahasa MATLAB tidak perlu dideklarasikan dulu dan bisa
langsung diberi nilai.
(Luyeps, 2014)
2. Kelebihan dan kekurangan matlab
 Kelebihan
a. Mudah dalam memanipulasi struktur matriks dan perhitungan berbagai
operasi matriks yang meliputi penjumlahan, pengurangan, perkalian,
invers dan fungsi matriks lainnya.
b. Menyediakan fasilitas untuk memplot struktur gambar (kekuatan
fasilitas grafik tiga dimensi yang sangat memadai).
c. Script program yang dapat diubah sesuai dengan keinginan user.
d. Jumlah routine-routine powerful yang berlimpah yang terus
berkembang.
e. Kemampuan interface (misal dengan bahasa C, word dan mathematica).
 Kekurangan
a. MatLab memiliki sensitivitas yang tinggi dalam mengeksekusi input
yang dimasukan.
b. Lebih lambat dalam mengeksekusi
(Michael, 2012)
3. Macam – macam program simulasi yang dipakai teknik kimia
a. QUICK BASIC
Program Quick Basic merupakan program awal yang berasal dari turunan
Bahasa C. Program ini sangat dikenal di lingkungan teknik kimia UPN
JATIM. Program ini sangat dasar baik dari Interface ( Tampilan ), Tingkat
Kerumitan, Bahasa Program ( Program Language ) sangat sederhana
sekali. Dengan menguasai program ini, user dapat menciptakan suatu skrip
program yang dapat menyelesaikan permasalahan sendiri.
b. Turbo Pascal
Pengembangan dari Quick Basic yang memudahkan user lebih
mendapatkan hasil yang baik dan akurat serta bahasa program yang tidak
terlalu panjang. Turbo Pascal memiliki sedikit kerumitan dan skrip khusus,
tapi dengan buku panduan yang telah disediakan tidaklah terlalu sulit
untuk di pahami dan di mengerti.
c. Matlab
Sudah banyak sampai saat ini yang menggunakan matlab, dikarenakan
tampilan, bahasa program, serta hasil yang di dapat lebih akurat daripada
menggunakan program Quick Basic dan Turbo Pascal. Matlab sendiri
merupakan software yang paling umum digunakan di kalangan akademisi,
banyak yang mengatakan apabila dapat menguasai Matlab, banyak
perusahaan mencari user.
d. Hysys
Merupakan software simulasi teknik kimia, untuk menghitung proses
industri kimia organik tidak mungkin menggunakan perhitungan manual
karena yang dihitung banyak sekali mulai dari bahan baku sampai hasil /
produk. Dengan Hysys dalam 1 minggu, user dapat menyelesaikan
proyeknya daripada memakan waktu 1 bulan untuk menghitung secara
manual. Hysys dapat di setting menjadi Steady State & Dynamic.
Perusahaan OMG ( Oil, Minning, Gas ) menggunakan software ini untuk
me-optimalkan proses dan hasil. Apabila user dapat menguasai program
hysys ini, banyak perusahaan OMG yang menawarkan gaji diatas 10 Juta
Rupiah.
(Christian, 2013)
4. Persamaan akar-akar kuadrat, metode biseksi, dan metode interpolasi linier.
 Persamaan kuadrat adalah persamaan dengan pangkat peubah tertingginya
dua. Bentuk umum persamaan kuadrat : ax2 + bx + c = 0, a tidak sama
dengan 0. Akar persamaan kuadrat ax2 + bx + c = 0 adalah nilai x yang
memenuhi persamaan kuadrat tersebut.
(Anonim, 2012)
 Metode biseksi
Metode biseksi merupakan salah satu metode tertutup untuk mentukan
solusi akar dari persamaan non linear atau disebut juga metode pembagian
Interval atau metode yang digunakan untuk mencari akar-akar persamaan
nonlinear melalui proses iterasi, dengan prinsip utama sebagai berikut:
 Menggunakan dua buah nilai awal untuk mengurung salah satu
atau lebih akar persamaan non linear.
 Nilai akarnya diduga melalui nilai tengah antara dua nilai awal
yang ada.
x1 + x2
𝑋𝑡 =
2
(Prihono, 2012)
 Metode Interpolasi Linier merupakam metode untuk menyempurnakan
metode setengah interval. Metode interpolasi Linier disebut juga dengan
metode false position, dengan ini nilai akar dari fungsi dapat lebih cepat
diperoleh. Metode interpolasi didasarkan pada interpolasi antara dua nilai
dari fungsi yang mempunyai tanda berlawanan.
f(xi + 1)
𝑥 ∗ = 𝑥𝑖 + 1 − (xi + 1 − xi)
f(xi + 1) − f(xi)
(Jumliana, 2010)
5. Perbedaan metode biseksi dengan metode interpolasi linier
Perbedaan antara Metode Bisection dan Metode Interpolasi Linier adalah
terletak pada rumus yang digunakan untuk mencari dan memperoleh
perkiraan. Rumus yang digunakan pada metode Bisection lebih sederhana
dibandingkan dengan rumus yang digunakan pada metode Interpolasi Linier
Metode Bisection diperlukan iterasi yang cukup panjang untuk mendapatkan
hasil perkiraan yang eksak, sehingga meskipun mudah untuk digunakan
namun tidak efisien. Sedangkan dengan metode Interpolasi Linier, nilai akar
dari suatu fungsi akan lebih cepat diperoleh, sehingga lebih efisien
dibandingkan dengan metode Bisection.
Rumus Metode Biseksi :
x1 + x2
𝑥𝑡 =
2
Rumus Metode interpolasi Linier :
f(xi + 1)
𝑥 ∗ = 𝑥𝑖 + 1 − (xi + 1 − xi)
f(xi + 1) − f(xi)
(Triatmodjo, 2002)
6. Perhitungan manual akar persamaan dengan menggunakan Metode biseksi
dan Interpolasi Linier
 Metode Bisection
Carilah akar dari 3x4-6x2-7x+5=0pada interval [1, 2].
Misalnya x1 = 1
x2 = 2
x1  f(x1) = 3(1)4 – 6(1)2 – 7(1) + 5 = -5
x2 f(x2) = 3(2)4 – 6(2)2 – 7(2) + 5 = 15
 xt1 = (x1 + x2)/2= 1+2 / 2 = 1,5
f(xt1) = 3(1,5)4 – 6(1,5)2 – 7(1,5) + 5 = -3,8125
 xt2 = (1,5+2) / 2 = 1,75
f(xt2) = 3(1,75)4 – 6(1,75)2 – 7(1,75) + 5 = 2,5117
 xt3= (1,5+1,75)/2= 1,625
f(xt3) =3(1,625)4-6(1,625)2-7(1,625)+5 =-1,3001
Untuk iterasi selanjutnya perhatikan tabel berikut:
Iterasi x1 x2 x3=xt f(x1) f(x2) f(xt)
ke
1 1 2 1,5 -5 15 -3,8
2 1,5 1,75 1,75 15,0 -3,81 2,51
3 1,5 1,75 1,625 -3,812 2,511 -1,300
4 1,75 1,625 1,687 2,511 -1,300 0,429
5 1,625 1,6875 1,6562 -1,3000 0,4290 -0,4764

 Interpolasi Linier
Carilah akar dari x3+x2-3x-3=0 pada interval [1, 2].
Misalnya x1 = 1 ; f(x1) = (1)3 + (1)2 – 3(1) – 3 = -4
x2 = 2 ; f(x2) = (2)3 + (2)2 – 3(2) – 3 = 3
Maka, xt = x2 - (f(x2)(x2 - x1) / (f(x2) – f(x1)))
= 2 – ((3)(1) / 7) = 1,5714
f(xt) = x*3+x*2-3(x*)-3
= (1,5714)3 + (1,5714)2 – 3(1,5714) – 3
= -1,3644
Selanjutnya dihitung x* dengan akar terletak antara
x = 1,5714 dan x = 2
x* = 2-{3}/{3-(-1,3645)}.(2-1,5714)
= 1,7054
f(x*) = (1,7054)3+(1,7054)2-3(1,7054)-3
= -0,2478
Hitungan dilanjutkan sampai akhirnya didapat nilai f(x*)~0,dapat dilihat
pada tabel berikut:
Iterasi x1 x2 x* f(x1) f(x2) f(x*)
ke
1 1 2 1,5714 -4 3 -1,3645
2 1,5714 2 1,7054 -1,3645 3 -0,2478
3 1,7054 2 1,7279 -0,2478 3 -0,0394
4 1,7279 2 1,7314 -0,0394 3 -0.,0062
(Triatmodjo, 2002)
7. a. Algoritma Metode akar-akar kuadrat
 Masukkan inputan a, b, c, d.
 Deklarasikan sebagai integer.
 Masukkan inputan x1, x2.
 Deklarasikan sebagai double.
 Hitung nilai determinan dengan menggunakan rumus : d = b*b –
4*a*c.
 Jika d = 0, maka x1 = x2 = -b/2*a.
 Cetak x1 = x2.
 Jika d lebih dari 0, maka hitung x1 = (-b+sqrt(d))/2*a. Cetak x1.
 Hitung x2 = (-b-sqrt(d))/2*a. Cetak x2.
 Jika d kurang dari 0, maka hitung x1 = -b/2*a+sqrt(-d)/2*a. Cetak
(x1)i.
 Hitung x2 = -b/2*a – sqrt(-d)/2*a. Cetak (x2)i.
 Proses selesai.
(Junantra, 2012)
b. Algoritma Metode Biseksi
 Definisikan fungsi f(x) yang akan dicari akarnya.
 Tentukan nilai a dan b
 Tentukan torelansi e dan iterasi maksimum N
 Hitung f(a) dan f(b)
 Jika f(a).f(b)>0 maka proses dihentikan karena tidak ada akar, bila
tidak dilanjutkan.
 Hitung f(x)
 Bila f(x).f(a)<0 maka b=x dan f(b)=f(x), bila 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.
(Kusniya, 2012)
c. Algoritma Metode Interpolasi Linier
 Tentukan dua titik P1 dan P2 dengan koordinatnya masing-masing
(x0,y0) dan (x1,y1)
 Tentukan nilai x dari titik yang akan dicari

 Hitung nilai y dengan


 Tampilkan nilai titik yang baru Q(x,y)
(Said, 2013)
8. a. Program persamaan akar-akar kuadrat
clear all;
clc;
disp('Program persamaan akar-akar kuadrat');
disp('===================================');
a=input('Masukkan konstanta a= ');
b=input('Masukkan konstanta b= ');
c=input('Masukkan konstanta c= ');
r=(b^2)-(4*a*c);
disp(['Nilai determinannya adalah ',num2str(r)]);
if r>0
x1=-b+(((r^0.5)/(2*a)));
x2=-b-(((r^0.5)/(2*a)));
disp(['Nilai x1 adalah ',num2str(x1),' dan nilai x2 adalah
',num2str(x2)]);
disp('Maka, persamaan tersebut memiliki akar real');
y=x1+x2;
disp(['Jumlah nilai akar adalah ',num2str(y)]);
u=x1*x2;
disp(['Hasil kali nilai akar adalah ',num2str(u)]);
elseif r==0
x1=-b/2*a;
x2=x1;
disp(['Nilai x1 adalah ',num2str(x1),' dan nilai x2 adalah
',num2str(x2)]);
disp('Maka, persamaan tersebut memiliki akar kembar');
y=x1+x2;
disp(['Jumlah nilai akar adalah ',num2str(y)]);
u=x1*x2;
disp(['Hasil kali nilai akar adalah ',num2str(u)]);
elseif r<0
x1=(-b/(2*a)+(((r)^0.5)/(2*a)));
x2=(-b/(2*a)-(((r)^0.5)/(2*a)));
disp(['Nilai x1 adalah ',num2str(x1),' dan nilai x2 adalah
',num2str(x2)]);
disp('Maka, persamaan tersebut memiliki akar imajiner');
y=x1+x2;
disp(['Jumlah nilai akar adalah ',num2str(y)]);
u=x1*x2;
disp(['Hasil kali nilai akar adalah ',num2str(u)]);
end;
HASIL PROGRAM :
FLOWCHART :
START

disp('Program persamaan
akar-akar kuadrat');
a=input('Masukkan
konstanta a= ');
b=input('Masukkan
konstanta b= ');
c=input('Masukkan
konstanta c= ');

r=(b^2)-(4*a*c);

disp(['Nilai
determinannya
adalah ',num2str(r)]);

if r>0 No Else if r==0 No Else if r<0

Yes Yes Yes

x1=(-b/(2*a)+(((r)^0.5)/
x1=-b+(((r^0.5)/(2*a))); x1=-b/2*a;
(2*a)));
x2=-b-(((r^0.5)/(2*a))); x2=x1;
x2=(-b/(2*a)-(((r)^0.5)/(2*a)));

disp(['Nilai x1 disp(['Nilai x1 disp(['Nilai x1


adalah ',num2str(x1),' adalah ',num2str(x1),' adalah ',num2str(x1),'
dan nilai x2 adalah dan nilai x2 adalah dan nilai x2 adalah
',num2str(x2)]); ',num2str(x2)]); ',num2str(x2)]);
disp('Maka, disp('Maka, disp('Maka,
persamaan tersebut persamaan tersebut persamaan tersebut
memiliki akar real'); memiliki akar real'); memiliki akar real');

y=x1+x2; y=x1+x2; y=x1+x2;

disp(['Jumlah disp(['Jumlah disp(['Jumlah nilai


nilai akar adalah nilai akar adalah akar adalah
',num2str(y)]); ',num2str(y)]); ',num2str(y)]);

u=x1*x2; u=x1*x2; u=x1*x2;

disp(['Hasil kali disp(['Hasil kali disp(['Hasil kali


nilai akar adalah nilai akar adalah nilai akar adalah
',num2str(u)]); ',num2str(u)]); ',num2str(u)]);

END
b. Program metode Bisection
clear all;
clc;
disp(' PROGRAM METODE BISECTION ');
disp('---------------------------------------------------------------');
syms x;
f= input ('masukkan persamaan=' );
x1= input ('x1=' );
x2= input ('x2=' );
fx1= subs (f,x,x1);
fx2= subs (f,x,x2);
xt= (x1+x2)/2;
fxt= subs (f,x,xt);
tol= 0.001;
disp('----------------------------------------------------------------');
disp([' x1 x2 xt fx1 fx2 fxt ']);
disp('----------------------------------------------------------------');
while abs (fxt)>=tol;
if (fx1*fxt)<0;
x2=xt;
fx2=fxt;
else
x1=xt;
fx1=fxt;
end
xt= (x1+x2)/2;
fxt= subs(f,x,xt);
disp([ x1' x2' xt' fx1' fx2' fxt' ]);
end;
HASIL PROGRAM :
FLOWCHART :
START

syms x;

disp('PROGRA
M METODE
BISECTION')

f= input ('masukkan
persamaan=' );
x1= input ('x1=' );
x2= input ('x2=' );

fx1= subs (f,x,x1);


fx2= subs (f,x,x2);
xt= (x1+x2)/2;
fxt= subs (f,x,xt);
tol= 0.001;

disp([' x1 x2
xt fx1 fx2
fxt ']);

while abs
(fxt)>=tol;

if
No else
(fx1*fxt)<0;

Yes Yes

x2=xt; x1=xt;
fx2=fxt; fx1=fxt;

Yes xt= (x1+x2)/2;


fxt= subs(f,x,xt);

disp([ x1'
x2' xt'
fx1' fx2'
fxt' ]);

No

END
c. Metode Interpolasi Linier
clear all;
syms x;
disp(' PROGRAM METODE INTERPOLASI LINIER ');
disp('==================================================
============');
y = input ('masukkan persamaan=' );
x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-= ');
fx1 = subs (y,x,x1);
fx2 = subs (y,x,x2);
xt = x2-(fx2*(x2-x1)/(fx2-fx1));
fxt = subs (y,x,xt);
disp('---------------------------------------------------------------');
disp([' x1 x2 xt fx1 fx2 fxt ']);
disp('--------------------------------------------------------------');
for h=x1:t
if(fx1*fxt)<0
x1=xt;
fx1=fxt;
else
x1=x2;
fx1=fx2;
x2=xt;
fx2=fxt;
end
xt=x2-(fx2*(x2-x1)/(fx2-fx1));
fxt = subs(y,x,xt);
disp([ x1' x2' xt' fx2' fx2' fxt' ]);
end
HASIL PROGRAM :
FLOWCHART:
START

syms x;

disp('PROGRAM
METODE
INTERPOLASI
LINIER')

y = input ('masukkan persamaan=' );


x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-
= ');

fx1 = subs (y,x,x1);


fx2 = subs (y,x,x2);
xt = x2-(fx2*(x2-x1)/(fx2-
fx1));
fxt = subs (y,x,xt);

disp([' x1
x2 xt
fx1 fx2
fxt ']);

for
h=x1:t

if(fa*fs3)<0 No else

Yes Yes
x1=x2;
x1=xt; fx1=fx2;
fx1=fxt; x2=xt;
fx2=fxt;

Yes
xt=x2-(fx2*(x2-x1)/(fx2-
fx1));
fxt = subs(y,x,xt);

disp([ x1' x2' xt' fx2'


fx2' fxt' ]);

No

END
PEMBAHASAN :
Dengan menggunakan metode Interpolasi Linier, nilai akar dari suatu fungsi akan
lebih cepat diperoleh.
9. Metode Interpolasi Linier
clear all;
syms x;
disp(' PROGRAM METODE INTERPOLASI LINIER ');
disp('===================================================
=========');
y = input ('masukkan persamaan=' );
x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-= ');
fa = subs (y,x,x1);
fb = subs (y,x,x2);
x3 = x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs (y,x,x3);
disp('------------------------------------------------------------');
disp([' x1 x2 x3 fa fb fs3 ']);
disp('------------------------------------------------------------');
for h=x1:t;
if(fa*fs3)<0
x1=x3;
fa=fs3;
else
x1=x2;
fa=fb;
x2=x3;
fb=fs3;
end
x3=x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs(y,x,x3);
disp([ x1' x2' x3' fa' fb' fs3' ]);
end
HASIL PROGRAM :
10. a. Menggunakan persamaan x3+4x2-5=3x
 Metode Biseksi
clear all;
clc;
disp(' PROGRAM METODE BISECTION ');
disp('---------------------------------------------------------------');
syms x;
f= input ('masukkan persamaan=' );
x1= input ('x1=' );
x2= input ('x2=' );
fx1= subs (f,x,x1);
fx2= subs (f,x,x2);
xt= (x1+x2)/2;
fxt= subs (f,x,xt);
tol= 0.001;
disp('----------------------------------------------------------------');
disp([' x1 x2 xt fx1 fx2 fxt ']);
disp('----------------------------------------------------------------');
while abs (fxt)>=tol;
if (fx1*fxt)<0;
x2=xt;
fx2=fxt;
else
x1=xt;
fx1=fxt;
end
xt= (x1+x2)/2;
fxt= subs(f,x,xt);
disp([ x1' x2' xt' fx1' fx2' fxt' ]);
end;
HASIL PROGRAM :
FLOWCHART :
START

syms x;

disp('PROGRA
M METODE
BISECTION')

f= input ('masukkan
persamaan=' );
x1= input ('x1=' );
x2= input ('x2=' );

fx1= subs (f,x,x1);


fx2= subs (f,x,x2);
xt= (x1+x2)/2;
fxt= subs (f,x,xt);
tol= 0.001;

disp([' x1 x2
xt fx1 fx2
fxt ']);

while abs
(fxt)>=tol;

if
No else
(fx1*fxt)<0;

Yes Yes

x2=xt; x1=xt;
fx2=fxt; fx1=fxt;

Yes
xt= (x1+x2)/2;
fxt= subs(f,x,xt);

disp([ x1'
x2' xt'
fx1' fx2'
fxt' ]);

No

END
 Metode Interpolasi Linier
clear all;
syms x;
disp(' PROGRAM METODE INTERPOLASI LINIER ');
disp('==============================================
==============');
y = input ('masukkan persamaan=' );
x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-= ');
fa = subs (y,x,x1);
fb = subs (y,x,x2);
x3 = x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs (y,x,x3);
disp('------------------------------------------------------------');
disp([' x1 x2 x3 fa fb fs3 ']);
disp('------------------------------------------------------------');
for h=x1:t;
if(fa*fs3)<0
x1=x3;
fa=fs3;
else
x1=x2;
fa=fb;
x2=x3;
fb=fs3;
end
x3=x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs(y,x,x3);
disp([ x1' x2' x3' fa' fb' fs3' ]);
end
HASIL PROGRAM :
FLOWCHART :
START

syms x;

disp('PROGRAM
METODE
INTERPOLASI
LINIER')

y = input ('masukkan persamaan=' );


x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-
= ');

fx1 = subs (y,x,x1);


fx2 = subs (y,x,x2);
xt = x2-(fx2*(x2-x1)/(fx2-
fx1));
fxt = subs (y,x,xt);

disp([' x1
x2 xt
fx1 fx2
fxt ']);

for
h=x1:t

if(fa*fs3)<0 No else

Yes Yes
x1=x2;
x1=xt; fx1=fx2;
fx1=fxt; x2=xt;
fx2=fxt;

Yes
xt=x2-(fx2*(x2-x1)/(fx2-
fx1));
fxt = subs(y,x,xt);

disp([ x1' x2' xt' fx2'


fx2' fxt' ]);

No

END
b. Menggunakan persamaan 9x3+2x2-6x+2=0
 Metode Biseksi
clear all;
clc;
disp(' PROGRAM METODE BISECTION ');
disp('-------------------------------------------------------------');
syms x;
f= input ('masukkan persamaan=' );
a= input ('masukkan x1=' );
b= input ('masukkan x2=' );
q=input('masukkan hingga iterasi ke-= ');
fa= subs (f,x,a);
fb= subs (f,x,b);
c= (a+b)/2;
fc= subs (f,x,c);
if(fa*fb)>0
a= input (['masukkan nilai batas bawah lain=' ]);
b= input (['masukkan nilai batas atas lain=' ]);
fa= subs (f, x, a);
fb= subs(f, x, b);
else
c= (a+b)/2;
fc= subs(f, x, c);
end
disp('-------------------------------------------------------------');
disp([' a b c fa fb fc ']);
disp('-------------------------------------------------------------');
for o=a:q;
if (fa*fc)<0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
c= (a+b)/2;
fc= subs(f,x,c);
disp([ a' b' c' fa' fb' fc' ]);
end;
HASIL PROGRAM :
FLOWCHART : START

syms x;

disp('PROGRAMPMETOD
E BISECTION')

f= input ('masukkan persamaan=' );


a= input ('masukkan x1=' );
b= input ('masukkan x2=' );
q=input('masukkan hingga iterasi ke-= ');

fa= subs (f,x,a);


fb= subs (f,x,b);
c= (a+b)/2;
fc= subs (f,x,c);

if(fa*fb)>0 No else

Yes Yes

a= input (['masukkan nilai c= (a+b)/2;


batas bawah lain=' ]); fc= subs(f, x, c);
b= input (['masukkan nilai
batas atas lain=' ]);

fa= subs (f, x, a);


fb= subs(f, x, b);

disp([' a b c
fa fb fc ']);

for
o=a:q;

if (fa*fc)<0 No else

Yes Yes

b=c; a=c;
fb=fc; fa=fc;

Yes
c= (a+b)/2;
fc= subs(f,x,c);

disp([ a' b' c'


fa' fb' fc' ]);

No

END
 Interpolasi Linier
clear all;
syms x;
disp(' PROGRAM METODE INTERPOLASI LINIER ');
disp('==============================================
==============');
y = input ('masukkan persamaan=' );
x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-= ');
fa = subs (y,x,x1);
fb = subs (y,x,x2);
x3 = x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs (y,x,x3);
disp('------------------------------------------------------------');
disp([' x1 x2 x3 fa fb fs3 ']);
disp('------------------------------------------------------------');
for h=x1:t;
if(fa*fs3)<0
x1=x3;
fa=fs3;
else
x1=x2;
fa=fb;
x2=x3;
fb=fs3;
end
x3=x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs(y,x,x3);
disp([ x1' x2' x3' fa' fb' fs3' ]);
end
HASIL PROGRAM :
FLOWCHART : START

syms x;

disp('PROGRAM
METODE INTERPOLASI
LINIER')

y = input ('masukkan persamaan=' );


x1 = input ('x1 = ');
x2 = input ('x2 = ');
t=input('masukkan hingga iterasi ke-= ');

fa = subs (y,x,x1);
fb = subs (y,x,x2);
x3 = x2-(fb*(x2-x1)/(fb-
fa));
fs3 = subs (y,x,x3);

disp([' x1
x2 x3
fa fb
fs3 ']);

for
h=x1:t;

if(fa*fs3)<0 No else

Yes Yes

x1=x2;
x1=x3; fa=fb;
fa=fs3; x2=x3;
fb=fs3;

Yes

x3=x2-(fb*(x2-x1)/(fb-fa));
fs3 = subs(y,x,x3);

disp([ x1' x2' x3' fa'


fb' fs3' ]);

No

END
11. PERSAMAAN VAN DER WAALS
a. Metode Bisection
clear all;
clc;
disp(' PROGRAM METODE BISECTION ');
disp('---------------------------------------------------------------');
syms x;
r=0.082054;
a=2.283;
b=0.04278;
disp('persamaan= (p*x)-((p*b)*(x^2))+(x*a)+(a*b)-((r*t)*(x^2))');
p= input('Masukkan Tekanan(P)=' );
t= input('Masukkan suhu(T(K))=' );
y= (p*x)-((p*b)*(x^2))+(x*a)+(a*b)-((r*t)*(x^2));
x1= input('x1=' );
fx1= subs(y,x,x1);
x2= input('x2=' );
fx2= subs(y,x,x2);
xt= (x1+x2)/2;
fxt= subs(y,x,xt);
tol= 0.001;
disp('----------------------------------------------------------------');
disp([' x1 x2 xt fx1 fx2 fxt ']);
disp('----------------------------------------------------------------');
while abs (fxt)>=tol;
if (fx1*fxt)<0;
x2=xt;
fx2=fxt;
else
x1=xt;
fx1=fxt;
end
xt= (x1+x2)/2;
fxt= subs(y,x,xt);
disp([ x1' x2' xt' fx1' fx2' fxt' ]);
end;
Algoritma Metode Bisecttion :
a. Menentukan dua nilai x (xa dan xb) sebagai nilai awal perkiraan.
Masukan inputan r, a dan b
b. Jika nilai awal telah didapatkan selanjutnya menentukan nilai x (misal
xt) baru menggunakan persamaan xt = (xa+xb)/2
c. Langkah selanjutnya, melakukan langkah 2 dan 3 hingga didapatkan
f(xt) = 0 atau mendekati 0..
HASIL PROGRAM 1 :
HASIL PROGRAM 2 :
HASIL PROGRAM 3 :

 Hasil run tidak bisa berhenti


HASIL PRORAM 4 :
HASIL PROGRAM 5 :
HASIL PROGRAM 6 :
HASIL PROGRAM 7 :
HASIL PROGRAM 8 :
HASIL PROGRAM 9 :
FLOWCHART : START

syms x;

disp(' PROGRAM
METODE
BISECTION ');

r=0.08205;
a=2.283;
b=0.04278;

disp('persamaan= (p*x)-
((p*b)*(x^2))+(x*a)+(a*b)-
((r*t)*(x^2))');

p= input('Masukkan Tekanan(P)=' );
t= input('Masukkan suhu(T(K))=' );
y= (p*x)-((p*b)*(x^2))+(x*a)+(a*b)-
((r*t)*(x^2));

x1= input('x1=' );

fx1= subs(y,x,x1);

x2= input('x2=' );

fx2= subs(y,x,x2);
xt= (x1+x2)/2;
fxt= subs(y,x,xt);
tol= 0.001;

disp([' x1 x2 xt
fx1 fx2 fxt ']);

while abs
(fxt)>=tol;

if (fx1*fxt)<0; No else

Yes Yes

x2=xt; x1=xt;
fx2=fxt; fx1=fxt;

Yes
xt= (x1+x2)/2;
fxt= subs(y,x,xt);

disp([ x1' x2'


xt' fx1' fx2'
fxt' ]);

No

END
b. Metode Interpolasi Linier
clear all;
clc;
disp(' PROGRAM INTERPOLASI LINIER ');
disp('==========================================================')
;
syms x;
r=0.082054;
a=2.283;
b=0.04278;
disp('Persamaan= (p*x)-((p*b)*(x^2))+(x*a)+(a*b)-((r*t)*(x^2))');
p=input('Masukkan tekanan= ');
T=input('Masukkan suhu(K)= ');
y=(p*x)-((p*b)*(x^2))+(x*a)+(a*b)-((r*T)*(x^2));
x1=input('X1= ');
fx1=subs(y,x,x1);
x2=input('X2= ');
fx2=subs(y,x,x2);
tol=0.001;
xt=x2-(fx2*x2-x1)/(fx2-fx1);
fxt=subs(y,x,xt);
disp('************************************************************');
disp(' x1 x2 xt f(x1) f(x2) f(xt) ');
disp('************************************************************');
fprintf('%1.4f %10.4f %10.4f %10.4f %10.4f %10.4f\n',x1,x2,xt,fx1,fx2,fxt);
while abs(fxt)>tol
if (fx1*fxt)<tol
x1=xt;
fx1=fxt;
else
x1=x2;
fx1=fx2;
x2=xt;
fx2=fxt;
end;
xt=x2-(fx2*(x2-x1))/(fx2-fx1);
fxt=subs(y,x,xt);
fprintf('%1.4f %10.4f %10.4f %10.4f %10.4f %10.4f\n',x1,x2,xt,fx1,fx2,fxt);
end
Algoritma Metode interpolasi Linier :
 Tentukan dua titik P1 dan P2 dengan koordinatnya masing-masing
(x0,y0) dan (x1,y1)
 Tentukan nilai x dari titik yang akan dicari

 Hitung nilai y dengan


 Tampilkan nilai titik yang baru Q(x,y)
HASIL PROGRAM 1:
HASIL PROGRAM 2 :
HASIL PROGRAM 3 :
HASIL PROGRAM 4 :
HASIL PROGRAM 5 :
HASIL PROGRAM 6 :
HASIL PROGRAM 7 :
HASIL PROGRAM 8 :
HASIL PROGRAM 9 :
FLOWCHART :

START

syms x;

disp(' PROGRAM
INTERPOLASI LINIER
');

r=0.082054;
a=2.283;
b=0.04278;

disp('Persamaan= (p*x)-
((p*b)*(x^2))+(x*a)+(a*b)-
((r*t)*(x^2))');
p=input('Masukkan tekanan= ');
T=input('Masukkan suhu(K)= ');

y=(p*x)-
((p*b)*(x^2))+(x*a)+(a*b)-
((r*T)*(x^2));

x1=input('X1
= ');

fx1=subs(y,x,x1
);

x2=input('
X2= ');

fx2=subs(y,x,x2);
tol=0.001;
xt=x2-(fx2*x2-x1)/(fx2-fx1);
fxt=subs(y,x,xt);

disp(' x1 x2 xt
f(x1) f(x2) f(xt) ');
fprintf('%1.4f %10.4f %10.4f
%10.4f %10.4f %10.4f\
n',x1,x2,xt,fx1,fx2,fxt);
while
abs(fxt)>tol

if (fx1*fxt)<tol No else

Yes Yes
x1=x2;
x1=xt; fx1=fx2;
fx1=fxt; x2=xt;
fx2=fxt;

Yes
xt=x2-(fx2*(x2-x1))/(fx2-fx1);
fxt=subs(y,x,xt);

fprintf('%1.4f %10.4f %10.4f


%10.4f %10.4f %10.4f\
n',x1,x2,xt,fx1,fx2,fxt);

No

END
TABEL UNTUK V BISEKSI DAN INTERPOLASI :

P T V biseksi V Interpolasi linier


1 300 -0.0001 -0.0007
10 300 0.0007 0.0001
100 300 46.8989 -0.0003
1 500 0.0006 0.0005
10 500 0.0000 0.0001
100 500 0.0002 0.0000
1 700 -0.0002 -0.0003
10 700 0.0004 0.0000
100 700 0.0005 -0.0006

PEMBAHASAN :
Pada metode bisection bahwa semakin tinggi tekanan maka semakin tinggi nilai V
nya, sedangkan pada metode Interpolasi Linier semakin tinggi tekanan maka
semakin kecil nilai V nya.
DAFTAR PUSTAKA

Anonim. 2012. “Metode bagi dua bisection method”.


https://aimprof08.wordpress.com /2012/08/30/metode-bagi-dua-bisection-
method/ diakses pada 23 September 2015 pukul 19.00 WIB
Anonim. 2012. “Persamaan Fungsi Kuadrat”. http://uyuhan.com/matematika/
persamaan-fungsi-kuadrat/akar-akar-persamaan-kuadrat.php/diakses pada
23 September 2015 pukul 19.00 WIB
Christian, Andi. 2013. "Modul Praktikum". https://www.laboratorium
komputer.tk/2013/09/modul-praktikum.php/diakses pada 26 September
2015 pukul 15.00 WIB
Jumliana, Dewi. 2010. “Program Interpolasi Linear dengan Matlab”.http://
dewisang revolusioner.blogspot.co.id/2010/06/program-interpolasi-linear-
dengan-Matlab.html/diakses pada 15 September 2015 pukul 19.00 WIB
Junantra, Edey. 2012. “algoritma-mencari-akar-persamaan-kuadrat“.https://
edeyjunantra.wordpress.com/2012/01/05/algoritma-mencari-akar-
persamaan-kuadrat/diakses pada 24 September 2015 pukul 19.00 WIB
Kusniya, Niya. 2012. “Metode Bisection”. https://niyakusniya.wordpress.com/
2012/12/07/metode-bisection/diakses pada 24 September 2015
Luyeps, Arief. 2014. “Sejarah dan Perkembangan MATLAB”. http://
technoluyep.blogspot.co.id/2014/07/sejarah-dan-perkembangan-
matlab.html/diakses pada 23 September 2015 pukul 19.00 WIB
Michael, Wong. 2012. “Pengenalan MATLAB Pada Sistem Kontrol“.
https://wongmichael.wordpress.com/2012/10/21/178/diakses pada 23
September 2015 pukul 19.00 WIB
Prihono. 2012. “Metode Biseksi”. http://danprihono.blogspot.co.id/2012/04/
metode-biseksi.html/diakses pada 23 September 2015 pukul 19.00 WIB
Said, Fairuzel. 2013. “Metode Numerik Interpolasi Linier”.
https://fairuzelsaid.wordpress.com/2013/12/16/metode-numerik
interpolasi-linier/diakses pada 24 September 2015 pukul 19.00 WIB
Triatmodjo, Bambang. 2002. “Metode Numerik”. Yogyakarta:Beta Offset.

Anda mungkin juga menyukai