SlideShare a Scribd company logo
1 of 96
Download to read offline
Mulyono (NIM : 0301060025)
ABSTRAK
Penelitian ini bertujuan menyusun program komputer untuk mengetahui
perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam
menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan
menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan
metode studi literatur, kemudian diimplementasikan ke dalam program komputer.
Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah,
2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji
program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program
komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan
persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi
serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula
Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
ix
Mulyono (NIM : 0301060025)
DAFTAR GAMBAR
Gambar 1. Gambar grafik 0x4x2
=− …………………………………….. 4
Gambar 2. Penyelesaian Persamaan Non-Linear ……………………………. 10
Gambar 3. Bentuk-bentuk Grafik Persamaan Linear …………………………11
Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear ………………….. 11
Gambar 5. Metode Biseksi …………………………………………………. 12
Gambar 6. Metode Regula Falsi …………………………………………… 13
Gambar 7. Tampilan Menu Utama …………………………………………. 27
Gambar 8. Tampilan Pilihan Jenis Penyelesaian ............................................. 28
Gambar 9. Tampilan Memasukkan Koefisien x dan Nilai Awal x1, x2 ......... 28
Gambar 10. Tampilan Hasil Perhitungan Menggunakan Metode Biseksi ...... 29
Gambar 11. Tampilan Hasil Perhitungan Menggunakan
Metode Regula Falsi .................................................................... 29
Gambar 12. Tampilan Perintah Memasukkan Jumlah Persamaan dan
Derajat Tertinggi serta Batas Jumlah Iterasi ................................ 30
Gambar 13. Tampilan Pilihan Memasukkan Data ........................................... 30
Gambar 14. Tampilan Program Menentukan Koefisien serta
Nilai x1 dan x2 Awal dengan Angka Random …………………. 31
Gambar 15. Tampilan Proses Iterasi Metode Biseksi dan
Metode Regula Falsi ……………………………………………. 33
Gambar 16. Tampilan Pertanyaan Tampilkan Hasil Perhitungan ……………. 33
xiii
Mulyono (NIM : 0301060025)
Gambar 17. Tampilan Koefisien serta Nilai x1 Awal dan
x2 Awal Persamaan ke 10 ............................................................ 34
Gambar 18. Hasil Perhitungan berupa Salah-satu akar Penyelesaian ............ 34
Gambar 19. Hasil Perhitungan berupa Salah-satu akar pada Iterasi ke 10 ..... 35
Gambar 20. Tampilan Kesimpulan ................................................................. 35
Gambar 21. Tampilan Pertanyaan Simpan Hasil Perhitungan ………………. 36
Gambar 22. Tampilan Perintah Ketikkan Nama File ………………………… 36
Gambar 23. Tampilan Keterangan Hasil Perhitungan Telah Disimpan …….. 36
Gambar 24. Hasil Perhitungan Program NUMERIK pada File Hasil.txt ……. 37
Gambar 25. Tampilan Pertanyaan Apakah Akan Mengulang ......................... 38
Gambar 26. Tampilan Penjelasan Program Numerik ……………………….. 38
Gambar 27. Tampilan Terakhir Program Numerik ………………………….. 39
xiv
Mulyono (NIM : 0301060025) 50
Lampiran 2. Kode Program NUMERIK
Program metode_biseksi_dan_metode_regula_falsi;
uses crt;
procedure tunggu;
var i:byte;
begin
for i:=1 to 80 do
begin
delay(3000);gotoxy(30,17);textcolor(white+blink);
write('Silahkan tunggu ... !!!');
gotoxy(38,20);textcolor(yellow);
write('[ ',(i/80)*100:0:0,' % ]');
textcolor(lightblue);
gotoxy(i,22);write('Û');sound(i*2);
end;
nosound;
end;
procedure judul;
begin
clrscr;textcolor(yellow);
writeln;writeln;
writeln(' *********************************************
******');
writeln(' **** Program penyelesaian Persamaan Non-Linier
****');
writeln(' *** Menggunakan Metode Biseksi dan Regula Falsi
***');
writeln(' *********************************************
******');
writeln;
end;
procedure bantuan;
var a,b:byte;
label terakhir;
begin
clrscr;textcolor(10);
writeln; writeln;
writeln(' < < B A N T U A N > > ');
writeln;
writeln(' Program ini berfungsi untuk menentukan salah
satu akar penyelesaian ');
writeln(' persamaan Non-Linier dengan menggunakan
metode Numerik yaitu ');
writeln(' metode Biseksi dan metode Regula Falsi serta
mengetahui ketelitian ');
writeln(' ke dua metode dengan membandingkan selisih
antara rata-rata akar ');
writeln(' pendekatan dengan rata-rata akar pada saat
iterasi ke 10');
writeln;
writeln(' Untuk dapat mengoperasikannya silahkan pada
Mulyono (NIM : 0301060025) 51
MENU UTAMA ');
writeln(' - ketik 1 untuk Masuk Program ');
writeln(' - ketik 2 untuk Bantuan Program ');
writeln(' - ketik 3 untuk Keluar Program ');
writeln;
writeln(' Jika menginginkan hasil perhitungan disimpan
di file maka ');
writeln(' pilih "Y" pada pertanyaan Simpan hasil
perhitungan (Y/T) ? ');
writeln(' dan ketikan NAMA FILE nya. ');
writeln;
writeln(' Jika ingin melakukan perhitungan lagi
ketikkan "Y" pada pernyataan ');
writeln(' Apakah akan mengulang (Y/T) ? ');
repeat
for a:=9 to 15 do
begin
textcolor(a);delay(5000);gotoxy(65,25);
write('<< E N T E R >>');
end;
until keypressed;
readln;
end;
procedure bye_bye;
var a,b,c,x,y:byte;
begin
clrscr;
gotoxy(28,12);writeln(' T E R I M A K A S I H ');
gotoxy(28,14);writeln(' Bye ... !!! ');
for a:=28 to 56 do
begin
delay(5000);
gotoxy(a,10);textcolor(9+random(6));
delay(500);writeln('#');
gotoxy(56+(28-a),16);textcolor(9+random(6));write('#');
gotoxy(56+(28-a),10);
textcolor(9+random(6));delay(500);writeln('#');
gotoxy(a,16);textcolor(9+random(6));write('#');
end;
repeat
clrscr;
x:=random(55);
y:=random(25);
sound(1000);
delay(5000);
nosound;
textcolor(9+random(6));
gotoxy(x,y);write('Tekan sebarang tombol ... !!!');
gotoxy(1,25);
write(' B y : M U L Y O N O ');
delay(50000);
gotoxy(x,y);write(' ');
until keypressed;
end;
Mulyono (NIM : 0301060025) 52
procedure penyelesaian_metode_biseksi;
var a, b, c, n, derajat_tertinggi, tertinggi_bis, huruf,
iterasi_bis : byte;
x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3,
fx3 : real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;
label mengulang_bis;
begin
mengulang_bis:
judul;
writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode
Biseksi');writeln;
write(' Masukkan pangkat tertinggi = ');
readln(tertinggi_bis);
derajat_tertinggi:=tertinggi_bis;
writeln;
huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_bis+1 do
begin
write(' Nilai ',chr(huruf),' ==>> ');
readln(koef[a]);
huruf := huruf + 1;
if koef[1]=0 then
begin
sound(1000);delay(10000);nosound;
gotoxy(25,25);
textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow);
readln;
goto mengulang_bis;
end;
end;
{menentukan nilai awal x1}
writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
write(' Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_bis do
begin
xpangkat[b]:=xpangkat[b-1]*x1;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
Mulyono (NIM : 0301060025) 53
fx1:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin
fx1:=fx1+koef_x_xpangkat[b];
end;
{menentukan nilai awal x2}
n:=0;
repeat
begin
n:=n+1;
if n=5 then
begin
gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow);
readln;
goto mengulang_bis;
end
else begin
write(' Masukkan nilai x2 awal ==>> '); readln(x2);
end; nilai_awal_x2:=x2;
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x2;
for b:=2 to tertinggi_bis do
begin xpangkat[b]:=xpangkat[b-1]*x2; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1;
end;
{NILAI FX}
fx2:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin fx2:=fx2+koef_x_xpangkat[b]; end;
end;
until (fx1*fx2)<0;
readln;
judul;
{METODE BISEKSI}
iterasi_bis:=0; fx3:=0;
repeat
begin
x3:=(x1+x2)/2;
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x3;
for b:=2 to tertinggi_bis do
begin xpangkat[b]:=xpangkat[b-1]*x3; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
Mulyono (NIM : 0301060025) 54
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
{NILAI FX}
fx3:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin fx3:=fx3+koef_x_xpangkat[b]; end;
end;
if (fx3*fx1)<0 then
begin x2:=x3; end
else
begin x1:=x3; end;
iterasi_bis:=iterasi_bis+1;
gotoxy(1,8);write(' Hasil Perhitungan Menggunakan Metode
Biseksi');
gotoxy(1,10);write(' Salah satu akar pendekatannya adalah
',x3:1:15);
gotoxy(1,12);write(' diperoleh pada iterasi ke
',iterasi_bis);
gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î
= 1E-7)');
gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15);
until abs(fx3)<1e-7;
readln;
end;
procedure penyelesaian_metode_regula_falsi;
var a, b, c, n, derajat_tertinggi, tertinggi_reg, huruf,
iterasi_reg : byte;
x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3,
fx3 : real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;
label mengulang_reg;
begin mengulang_reg:
judul;
writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode
Regula Falsi');writeln;
write(' Masukkan pangkat tertinggi = ');
readln(tertinggi_reg);
derajat_tertinggi:=tertinggi_reg;
writeln; huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_reg+1 do
begin
write(' Nilai ',chr(huruf),' ==>> '); eadln(koef[a]);
huruf := huruf + 1;
if koef[1]=0 then
begin sound(1000); delay(10000); nosound; gotoxy(25,25);
textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow); readln;
goto mengulang_reg;end;
end;
{menentukan nilai awal x1}
Mulyono (NIM : 0301060025) 55
writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
write(' Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_reg do
begin xpangkat[b]:=xpangkat[b-1]*x1; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
{NILAI FX}
fx1:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin fx1:=fx1+koef_x_xpangkat[b]; end;
{menentukan nilai awal x2}
n:=0;
repeat
begin n:=n+1;
if n=5 then
begin gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow); readln; goto mengulang_reg; end
else
begin
write(' Masukkan nilai x2 awal ==>> '); readln(x2);
end;
nilai_awal_x2:=x2;
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x2;
for b:=2 to tertinggi_reg do
begin xpangkat[b]:=xpangkat[b-1]*x2; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
{NILAI FX}
fx2:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin fx2:=fx2+koef_x_xpangkat[b]; end;
end;
until (fx1*fx2)<0;
readln;
judul;
{METODE REGULA FALSI}
iterasi_reg:=0; fx3:=0;
repeat
begin x3:=(x2-(fx2/(fx2-fx1))*(x2-x1));
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x3;
for b:=2 to tertinggi_reg do
Mulyono (NIM : 0301060025) 56
begin xpangkat[b]:=xpangkat[b-1]*x3; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end;
{NILAI FX}
fx3:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin fx3:=fx3+koef_x_xpangkat[b]; end;
end;
if (fx3*fx1)<0 then
begin x2:=x3; end
else
begin x1:=x3; end;
iterasi_reg:=iterasi_reg+1;
gotoxy(1,8);write(' Hasil Perhitungan Menggunakan Metode Regula
Falsi');
gotoxy(1,10);write(' Salah satu akar pendekatannya adalah
',x3:1:15);
gotoxy(1,12);write(' diperoleh pada iterasi ke
',iterasi_reg);
gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î
= 1E-7)');
gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15);
until abs(fx3)<1e-7;
readln; end;
procedure memasukan_jumlah_persamaan_dan_derajat_tertinggi (var
jum,pangkat,batas : longint);
begin
clrscr; judul;
write(' Masukkan jumlah persamaan ==>> ');
readln(jum);
write(' Masukkan derajat tertinggi ==>> ');
readln(pangkat);
write(' Masukkan batas jumlah Iterasi ==>> ');
readln(batas);
end;
procedure tampil_derajat (var jum,pangkat:longint);
begin
gotoxy(1,7);
writeln(' ',jum,' Persamaan || Derajat ',
pangkat); gotoxy(1,7); writeln;
end;
procedure pilihan_input(var pil_input:char);
begin
repeat
judul; writeln;
writeln(' P i l i h a n M a s u k k a n ');
writeln;
writeln(' 1. Masukkan dari Keyboard');
writeln(' 2. Masukkan berupa angka Random'); writeln;
write(' Pilihan ==>> '); readln(pil_input);
if (pil_input='1') or (pil_input='2') then
begin end
else
begin gotoxy(18,24);
Mulyono (NIM : 0301060025) 57
write(' Pilihan hanya 1 dan 2, Silahkan ulangi !!! ');
delay(20000);
end;
until (pil_input='1') or (pil_input='2')end;
procedure perbandingan_utama (var jum,pangkat,batas : longint);
var a, b, c {Variabel untuk mengulang},
n {Stop jika tidak menemukan nilai awal x2 },
derajat {Derajat dari persamaan Non-Linier},
huruf {Menampilkan nilai a, b, c, ... } : integer;
fx1 {Nilai fungsi untuk awal x1},
fx2 {Nilai fungsi untuk awal x2},
x1, x2 { Nilai awal x1 dan x2},
nilai_awal_x1, nilai_awal_x2 {Nilai awal x1 dan x2 untuk
ke 2 metode }, errorbis {Error dari metode Biseksi},
iterasibis {Jumlah iterasi metode Biseksi},
x1bis, x2bis, x3bis {Nilai x1, x2, x3 metode Biseksi},
fx1bis, fx2bis, fx3bis {Nilai fungsi x1, x2, x3 metode
Biseksi}, errorreg {Error dari metode Regula Falsi},
iterasireg {Jumlah iterasi metode Regula Falsi},
x1reg, x2reg, x3reg {Nilai x1, x2, x3 metode Regula
Falsi}, fx1reg, fx2reg, fx3reg {Nilai fungsi x1, x2, x3
metode Regula Falsi},
akar_iterasi_ke10_yg_dibandingkan_bis,
akar_iterasi_ke10_yg_dibandingkan_reg {akar untuk
perbandingan}, fx3bissebelum, fx3bisterakhir,
fx3regsebelum, fx3regterakhir: array [1..100] of double;
koef {Nilai a, b, c, ..., n},
xpangkat {Nilai x^n untuk x1, x2, x3},
koef_x_xpangkat {Nilai x^n dikalikan dengan
koefisiennya} : array [1..100, 1..10] of double;
fileku {Variabel file text} : text;
nama_file {Nama file penyimpanan hasil perhitungan},
besar_kecil{kondisi rata2 error iterasi ke 10} : string;
drive {Drive letak file text} : integer;
directory {Direktori letak file text} : string[20];
jum_akar_ke10_bis,jum_akar_ke10_reg,
jum_akar_bis,jum_akar_reg,
rata2_akar_bis_iterasi_ke10,rata2_akar_reg_iterasi_ke10,
rata2_akar_bis,rata2_akar_reg,
selisih_rata2_bis,selisih_rata2_reg : double;
random1,random2,random3 {angka random dari 0 sampai
dengan 100} : integer;
angka_random_real : real;
pil_tampil {pilihan untuk menampilan hasil perhitungan},
pil_simpan {pilihan untuk menyimpan hasil perhitungan},
pil_input {pilihan untuk input data} : char;
label 1,2,mengulang;
begin
derajat := pangkat; pilihan_input(pil_input);
for a:=1 to jum do
begin
mengulang:
clrscr;judul;tampil_derajat(jum,pangkat);writeln;
Mulyono (NIM : 0301060025) 58
writeln(' Persamaan ke ',a,' dari ',jum,'
persamaan'); writeln; huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2,
x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for b:=1 to derajat+1 do
begin
random1:=random(100); random2:=random(100);
random3:=random(100);
angka_random_real:=(random1-random2)/(random3+1);
if pil_input = '2' then
begin
koef[a,b]:=angka_random_real;
gotoxy(10,13); writeln(' Nilai ',
chr(huruf),' ==>> ');
gotoxy(10,13); writeln(' Nilai ',
chr(huruf),' ==>> ',koef[a,b]:6:2);
end
else
begin gotoxy(10,13);
write(' Nilai ',chr(huruf),' ==>> ');
gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> ');
readln(koef[a,b]);
end;
huruf := huruf + 1;
if koef[a,1]=0 then
begin
if pil_input = '2' then
begin goto mengulang; end
else
begin sound(1000);delay(10000);nosound;
gotoxy(25,25); textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow); readln; goto mengulang; end;
end;
end;
{menentukan nilai awal x1 dan x2}
begin writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
random1:=random(100); random2:=random(100);
random3:=random(100); angka_random_real:=(random1-
random2)/(random3+1);
if pil_input = '2' then
begin
x1[a]:=angka_random_real; gotoxy(10,17);
writeln(' Menentukan nilai x1 awal ==>> ');
gotoxy(10,17);
writeln(' Menentukan nilai x1 awal ==>> ',x1[a]:6:2);
end
else
begin
gotoxy(10,17);
write(' Menentukan nilai x1 awal ==>> ');
gotoxy(10,17);
write(' Menentukan nilai x1 awal ==>> ');
readln(x1[a]);
Mulyono (NIM : 0301060025) 59
end;
nilai_awal_x1[a] := x1[a];
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x1[a];
for c:=2 to derajat do
begin xpangkat[a,c]:=xpangkat[a,c-1]*x1[a]; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=pangkat;
for b:=1 to derajat do
begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1; end;
{NILAI FX}
fx1[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin fx1[a]:=fx1[a]+koef_x_xpangkat[a,b]; end;
end;
n:=0;
repeat
begin
n:=n+1;
if n=5 then
begin
if pil_input='2' then begin end
else
begin
gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow); readln;
end; goto mengulang;
end
else random1:=random(100);
random2:=random(100); random3:=random(100);
angka_random_real:=(random1-random2)/(random3+1);
if pil_input = '2' then
begin x2[a]:=angka_random_real;
gotoxy(10,19);
writeln(' Menentukan nilai x2 awal ==>> ');
gotoxy(10,19);
writeln(' Menentukan nilai x2 awal ==>> ',
x2[a]:6:2); end
else begin
gotoxy(10,19);
write(' Menentukan nilai x2 awal ==>> ');
gotoxy(10,19);
write(' Menentukan nilai x2 awal ==>> ');
readln(x2[a]);
end;
nilai_awal_x2[a]:=x2[a];
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x2[a];
for c:=2 to derajat do
begin xpangkat[a,c]:=xpangkat[a,c-1]*x2[a]; end;
Mulyono (NIM : 0301060025) 60
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat; koef_x_xpangkat[a,1]:=1;
for b:=1 to derajat do
begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1; end;
{NILAI FX} fx2[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin fx2[a]:=fx2[a]+koef_x_xpangkat[a,b];end;
end;
until (fx1[a]*fx2[a])<0;
end;
readln;
clrscr;judul;tampil_derajat(jum,pangkat);
{perhitungan metode biseksi dan metode regula falsi}
for a:=1 to jum do
begin
{METODE BISEKSI}
iterasibis[a]:=0; x1bis[a]:=x1[a]; x2bis[a]:=x2[a];
fx1bis[a]:=fx1[a]; fx2bis[a]:=fx2[a]; fx3bis[a-1]:=0;
repeat
begin x3bis[a]:=(x1bis[a]+x2bis[a])/2;
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x3bis[a];
for c:=2 to derajat do
begin xpangkat[a,c]:=xpangkat[a,c-1]*x3bis[a]; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat;
for b:=1 to derajat do
begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1; end;
{NILAI FX}
fx3bis[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin fx3bis[a]:=fx3bis[a]+koef_x_xpangkat[a,b]; end;
if (fx3bis[a]*fx1bis[a])<0 then
begin x2bis[a]:=x3bis[a]; end
else
begin x1bis[a]:=x3bis[a]; end;
fx3bissebelum[a]:=fx3bis[a-1];
fx3bisterakhir[a]:=fx3bis[a];
gotoxy(30,16);textcolor(5);write(' 0.0000001');
gotoxy(30,17);textcolor(lightred);
write(abs(fx3bisterakhir[a]-fx3bissebelum[a]):25:22);
end;
if iterasibis[a] = batas then
begin
akar_iterasi_ke10_yg_dibandingkan_bis[a] := x3bis[a];
end;
errorbis[a]:=(fx3bisterakhir[a]-fx3bissebelum[a]);
gotoxy(30,10);textcolor(9+random(6));
write('Silahkan tunggu ... !!!');
gotoxy(30,12);textcolor(9+random(6));
write(' Persamaan Ke ',a);
gotoxy(21,14);textcolor(white);
write('Iterasi metode Biseksi ke =',
Mulyono (NIM : 0301060025) 61
iterasibis[a]:10:0);
iterasibis[a]:=iterasibis[a]+1;
until abs(fx3bis[a])<1e-7;
{METODE REGULA FALSI}
iterasireg[a]:=0; x1reg[a]:=x1[a]; x2reg[a]:=x2[a];
fx1reg[a]:=fx1[a]; fx2reg[a]:=fx2[a];
fx3reg[a-1]:=0;
repeat
begin x3reg[a]:=((x1reg[a]*fx2reg[a])-
(x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]);
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x3reg[a];
for c:=2 to derajat do
begin xpangkat[a,c]:=xpangkat[a,c-1]*x3reg[a]; end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat;
for b:=1 to derajat do
begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1; end;
{NILAI FX}
fx3reg[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin fx3reg[a]:=fx3reg[a]+koef_x_xpangkat[a,b];end;
if (fx3reg[a]*fx1reg[a])<0 then
begin x2reg[a]:=x3reg[a]; end
else
begin x1reg[a]:=x3reg[a]; end;
fx3regsebelum[a]:=fx3reg[a-1];
fx3regterakhir[a]:=fx3reg[a];
gotoxy(30,21);textcolor(5);write(' 0.0000001');
gotoxy(30,22);textcolor(lightred);
write(abs(fx3regterakhir[a]-fx3regsebelum[a]):25:22);
end;
{jumlah akar sampai iterasi ke 10}
if iterasireg[a] = batas then
begin
akar_iterasi_ke10_yg_dibandingkan_reg[a] := x3reg[a];
end;
gotoxy(30,10);textcolor(9+random(6));
write('Silahkan tunggu ... !!!');
gotoxy(30,12);textcolor(9+random(6));
write(' Persamaan Ke ',a);
gotoxy(21,19);textcolor(white);
write('Iterasi metode Regula Falsi ke =',
iterasireg[a]:10:0);
errorreg[a]:=(fx3regterakhir[a]-fx3regsebelum[a]);
iterasireg[a]:=iterasireg[a]+1;
until abs(fx3reg[a])<1e-7;
end;
readln;
begin clrscr; derajat:=pangkat;
repeat
judul;tampil_derajat(jum,pangkat);writeln;
write(' Tampilkan Hasil perhitungan (Y/T) ? ');
Mulyono (NIM : 0301060025) 62
readln(pil_tampil);
until (pil_tampil='y') or (pil_tampil='Y') or
(pil_tampil='t') or (pil_tampil='T');
if (pil_tampil='y') or (pil_tampil='Y') then
begin
writeln(' Jumlah Persamaan = ',jum);
writeln(' Derajat Tertinggi = ',pangkat);
writeln;
{tampilkan koefisien setiap persamaan}
for a:=1 to jum do
begin
clrscr;judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Persamaan Ke = ',a,' (x1 awal = ',
nilai_awal_x1[a]:0:2,' dan x2 awal = ',
nilai_awal_x2[a]:0:2,')');
huruf:=97;
for b:=1 to derajat+1 do
begin
writeln(' Nilai ',chr(huruf),' = ',
koef[a,b]:6:2); huruf:=huruf+1; end;
gotoxy(55,25);write('Tekan tombol ENTER ...!!!');
readln; end; clrscr;
{tampilkan akar persamaan dengan î = 1E-7}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Salah satu akar penyelesaiannya');
writeln(' ======================================
=================');
writeln(' | Pers. | Metode Biseksi
| Metode Regula Falsi |');
writeln(' ======================================
=================');
jum_akar_bis:=0; jum_akar_reg:=0;
for a:=1 to jum do
begin if (a mod 10)=0 then begin
writeln(' | ',a:4,' | ',x3bis[a]:19:15,
' |',x3reg[a]:20:15,' |'); readln; end
else begin
writeln(' | ',a:4,' | ',x3bis[a]:19:15,
' |',x3reg[a]:20:15,' |'); end;
jum_akar_bis:= jum_akar_bis+x3bis[a];
jum_akar_reg:= jum_akar_reg+x3reg[a];
end;
rata2_akar_bis:=jum_akar_bis/jum;
rata2_akar_reg:=jum_akar_reg/jum;
writeln(' ======================================
=================');
writeln(' | Rata2 | ', rata2_akar_bis:19:15,
' |',rata2_akar_reg:20:15,' |');
writeln(' ======================================
================='); readln;
{tampilkan akar persamaan pada saat iterasi ke 10}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Akar penyelesaian pada saat iterasi ke ',
batas:0);
writeln(' ======================================
=================');
Mulyono (NIM : 0301060025) 63
writeln(' | Pers. | Metode Biseksi | Metode
Regula Falsi |');
writeln(' ======================================
=================');
jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0;
for a:=1 to jum do
begin if (a mod 10)=0 then begin
writeln(' | ',a:4,' | ',
akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,
' |',akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,
' |'); readln; end
else begin
writeln(' | ',a:4,' | ',
akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |',
akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,
' |'); end;
jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_
ke10_yg_dibandingkan_bis[a];
jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_
ke10_yg_dibandingkan_reg[a]; end;
rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
writeln(' =====================================
==================');
writeln(' | Rata2 | ', rata2_akar_bis_iterasi
_ke10:19:15,' |',rata2_akar_reg_iterasi_ke10:20:15,
' |');
writeln(' ===================================
===================='); readln;
selisih_rata2_bis:=rata2_akar_bis-
rata2_akar_bis_iterasi_ke10;
selisih_rata2_reg:=rata2_akar_bis-
rata2_akar_reg_iterasi_ke10;
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
begin besar_kecil:='BESAR' end
else
begin besar_kecil:='KECIL' end;
{menampilkan kesimpulan}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' K E S I M P U L A N ');writeln;
writeln(' Selisih metode Biseksi = ',
abs(selisih_rata2_bis):15:15);
writeln(' Selisih metode Regula Falsi = ',
abs(selisih_rata2_reg):15:15);writeln;
writeln(' Karena selisih rata-rata akar pendekatan
dengan rata-rata');
writeln(' akar pada iterasi ke ',batas:0,' metode
Biseksi lebih ',besar_kecil);
writeln(' dari selisih rata-rata akar pendekatan
dengan rata-rata ');
writeln(' akar pada iterasi ke ',batas:0,' metode
Regula falsi, maka dapat ');
writeln(' disimpulkan bahwa : ');
writeln(' Metode Biseksi lebih teliti dari metode
Regula Falsi karena');
writeln(' hanya dengan 10 iterasi, akar metode
Mulyono (NIM : 0301060025) 64
Biseksi sudah mendekati');
writeln(' akar pendekatannya. Ini ditunjukan dengan
selisih untuk metode');
writeln(' Biseksi yang lebih ',besar_kecil,' dari
selisih metode '); writeln(' Regula Falsi'); readln;
end
else clrscr;
repeat judul;tampil_derajat(jum,pangkat);writeln;
write(' Simpan hasil perhitungan (Y/T) ? ');
readln(pil_simpan);
until (pil_simpan='y') or (pil_simpan='Y') or
(pil_simpan='t') or (pil_simpan='T');
if (pil_simpan='y') or (pil_simpan='Y') then
begin
{$i-}
ChDir('c:numerik');{ Cek Keberadaan Folder c:numerik }
if IOResult <> 0 then { Jika tidak ada }
begin mkdir('c:numerik'); { Buat Folder c:numerik }
end;
clrscr; judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Hasil perhitungan akan disimpan dalam file
text');
write(' Ketikan nama filenya ===>>> ');
readln(nama_file); assign(fileku,nama_file + '.txt');
rewrite(fileku); writeln(fileku,
'*****************************************************');
writeln(fileku, '** Hasil Program Penyelesaian Persamaan
Non-Linier **');
writeln(fileku,
'*****************************************************');
writeln(fileku);
writeln(fileku, 'Jumlah Persamaan = ', jum);
writeln(fileku, 'Pangkat Tertinggi = ', pangkat);
writeln(fileku); derajat:=pangkat;
write(fileku,
'=========================================================
==================================================');
writeln(fileku,'=========================================
==========================================================
=======');
for a:=1 to jum do
begin
huruf:=97;
write(fileku, 'Persamaan ke ',a:4,' ==>> dengan x1
awal = ',x1[a]:6:2,', x2 awal = ',x2[a]:6:2, ' dan
nilai ');
for b:=1 to derajat+1 do
begin write(fileku,chr(huruf),' = ',koef[a,b]:6:2,', ');
huruf:=huruf+1; end; writeln(fileku); end;
write(fileku,'====================================================
=======================================================');
writeln(fileku,'==================================================
========================================================');
writeln(fileku);
Mulyono (NIM : 0301060025) 65
writeln(fileku,' S A L A H S A T U A K A R P E N Y E L E S
A I A N');
writeln(fileku,'==================================================
=================================================');
writeln(fileku,'| Pers. | Metode Biseksi |
Metode Regula Falsi |');
writeln(fileku,'==================================================
=================================================');
jum_akar_bis:=0; jum_akar_reg:=0;
for a:=1 to jum do
begin
writeln(fileku, '| ',a:4,' | ',x3bis[a]:19:15,'
(Iterasi ',iterasibis[a]:7:0,') |',x3reg[a]:25:15,'
(Iterasi ',iterasireg[a]:10:0,') |');
jum_akar_bis:= jum_akar_bis+x3bis[a];
jum_akar_reg:= jum_akar_reg+x3reg[a];
end;
rata2_akar_bis:=jum_akar_bis/jum;
rata2_akar_reg:=jum_akar_reg/jum;
writeln(fileku,'==================================================
=================================================');
writeln(fileku,'| Rata2 | ', rata2_akar_bis:19:15,' | ',
rata2_akar_reg:24:15,' |');
writeln(fileku,'==================================================
====================================');
writeln(fileku);
writeln(fileku,' A K A R P E N Y E L E S A I A N (Pada saat
iterasi ke ',batas:0,')');
writeln(fileku,'==================================================
====================================');
writeln(fileku,'| Pers. | Metode Biseksi |
Metode Regula Falsi |');
writeln(fileku,'==================================================
====================================');
jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0;
for a:=1 to jum do
begin
writeln(fileku, '| ',a:4,' | ',
akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,'
(Iterasi ',batas:0,') |',
akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,'
(Iterasi ',batas:0,') |');
jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi
_ke10_yg_dibandingkan_bis[a];
jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi
_ke10_yg_dibandingkan_reg[a];
end;
rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
writeln(fileku,'==================================================
====================================');
writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,'
| ',
rata2_akar_reg_iterasi_ke10:24:15,' |');
writeln(fileku,'==================================================
====================================');
Mulyono (NIM : 0301060025) 66
writeln(fileku);
selisih_rata2_bis:=rata2_akar_bis-
rata2_akar_bis_iterasi_ke10;
selisih_rata2_reg:=rata2_akar_bis-
rata2_akar_reg_iterasi_ke10;
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata
akar pada iterasi ke 10 metode Biseksi = ',
abs(selisih_rata2_bis):1:10);
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata
akar pada iterasi ke 10 metode Regula Falsi = ',
abs(selisih_rata2_reg):1:10);writeln(fileku);
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
begin besar_kecil:='BESAR' end
else begin besar_kecil:='KECIL' end;
writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan
rata-rata akar pada ');
writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih
',besar_kecil,' dari selisih rata-rata');
writeln(fileku,' akar pendekatan dengan rata-rata akar pada
iterasi ke ',batas:0,' metode Regula falsi');
writeln(fileku,' maka dapat disimpulkan bahwa : ');
writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula
Falsi karena');
writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode
Biseksi sudah mendekati akar pendekatannya');
writeln(fileku,' ini ditunjukan dengan selisih untuk metode
Biseksi yang lebih ',besar_kecil,' dari ');
writeln(fileku,' selisih metode Regula Falsi');
writeln(fileku);writeln(fileku,' Selesai ...... !!!!');
append(fileku); close(fileku);
judul; drive:=0; getdir(drive,directory); writeln;
writeln(' Hasil perhitungan sedang disimpan pada file ');
writeln;
writeln(' ===>>> ',directory,'',nama_file,'.txt');
tunggu; judul; textcolor(lightred);
writeln(' Hasil perhitungan sudah disimpan pada file ');
writeln;
writeln(' ===>>> ',directory,'',nama_file,'.txt');
gotoxy(55,25);textcolor(yellow);
write('Tekan tombol ENTER ...!!!');
readln; end
else end
end;
{ P R O G R A M U T A M A }
var
n,jum, pangkat,batas : longint;
pil,pil_ulang,pil_penyelesaian :char;
label ulang,ulangi,keluar;
begin
ulangi: n:=0;
repeat
begin
judul;
{menu utama}
Mulyono (NIM : 0301060025) 67
writeln(' < < < M E N U U T A M A > > >'); writeln;
writeln(' 1. Masuk ');
writeln(' 2. Bantuan ');
writeln(' 3. Keluar ');
writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil);
end;
if (pil='1') or (pil='2') or (pil='3') then
begin end
else
begin
gotoxy(15,24);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Pilihan hanya 1, 2 dan 3, Silahkan ulangi !! ');
textcolor(yellow); readln; end;
until (pil='1') or (pil='2') or (pil='3');
if (pil = '2') then
begin
judul; bantuan; goto ulangi; end
else if (pil = '3') then begin goto keluar; end
else
ulang: judul;writeln(' Silahkan pilih !!!'); writeln;
writeln(' 1. Penyelesaian Persamaan Non-Linier
Menggunakan Metode Biseksi');writeln;
writeln(' 2. Penyelesaian Persamaan Non-Linier
Menggunakan Metode Regula Falsi');writeln;
writeln(' 3. Penyelesaian Metode Biseksi dan Metode
Regula Falsi ');
writeln(' untuk mengetahui ketelitiannya');writeln;
write(' Pilihan (1/2/3) ==>> ');
readln(pil_penyelesaian);
if pil_penyelesaian = '1' then
penyelesaian_metode_biseksi
else if pil_penyelesaian = '2' then
penyelesaian_metode_regula_falsi
else
begin
memasukan_jumlah_persamaan_dan_derajat_tertinggi
(jum,pangkat,batas);
perbandingan_utama(jum,pangkat,batas);
writeln; writeln; end;
repeat
judul; write(' Apakah akan mengulang (Y/T) ? ');
readln(pil_ulang);
until (pil_ulang='y') or (pil_ulang='Y') or
(pil_ulang='t') or (pil_ulang='T');
if (pil_ulang='y') or (pil_ulang='Y') then
begin goto ulangi; end
else
keluar: bye_bye;
end. {akhir program utama}
Mulyono (NIM : 0301060025)
DAFTAR ISI
HALAMAN JUDUL ………………………………………………………… i
HALAMAN PENGESAHAN ………….……………………………………. ii
HALAMAN PERSETUJUAN ………………………………………………. iii
SURAT PERNYATAAN …………………………………………………… iv
MOTTO ……………………………………………………………………… v
PERSEMBAHAN …………………….….………………………………….. vi
KATA PENGANTAR ……………………..………………………………… vii
ABSTRAK ………………………………..………………………………….. ix
DAFTAR ISI ………………………………..………………………………... x
DAFTAR GAMBAR ……………………….………………………………...xiii
BAB I PENDAHULUAN
A. Latar Belakang ………..…………………………………… 1
B. Perumusan Masalah …..…………………………………… 7
C. Pembatasan Masalah ……………………………………….. 7
D. Tujuan Penelitian ………..………………………………… 7
E. Manfaat Penelitian …………………………………………. 8
BAB II LANDASAN TEORI
A. Persamaan Non-Linear …………….……………………….. 9
B. Metode Numerik ………………………….………………... 9
x
Mulyono (NIM : 0301060025)
C. Penyelesaian Persamaan Non-Linear ..................................... 11
1. Metode Biseksi ..………………………………………. 11
2. Metode Regula Falsi …………………………………… 12
D. Bahasa Pemrograman Pascal ………………………………. 14
1. Sejarah Pascal ….…………………………………….. 14
2. Langkah-langkah dalam Pemrograman Komputer …..... 14
3. Struktur Program Pascal ….............................................. 16
4. Pengambilan Keputusan ….………………………….. 17
5. Pengulangan (loop) …………………………………….. 19
6. Keunggulan Bahasa Pascal ….......................................... 20
BAB III METODOLOGI PENELITIAN
A. Tempat Penelitian …..……………………………………… 21
B. Alat Penelitian ….………………………………………….. 21
C. Langkah-langkah Penelitian ….……………………………. 21
D. Membandingkan Metode Biseksi dan Metode Regula
Falsi …..……………………………………………………. 23
BAB IV HASIL PENELITIAN DAN PEMBAHASAN
A. Diagram Alir ………………………………………………. 24
B. Kode Program ..….………………………………………... 25
C. Hasil Keluaran …………………………………………….. 27
D. Perbandingan Metode Biseksi dan Metode Regula Falsi ….. 39
xi
Mulyono (NIM : 0301060025)
BAB V KESIMPULAN DAN SARAN
A. Kesimpulan ………………………………………………… 41
B. Saran ……………………………………………………….. 42
DAFTAR PUSTAKA ……………………………………………………….. 43
LAMPIRAN
A. Diagram Alir ………………..……………………………………………. 44
B. Kode Program …………………………………………………..………... 50
xii
Mulyono (NIM : 0301060025)
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Allah SWT atas rahmat dan
nikmat-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini yang
berjudul “Penyelesaian Persamaan Non-Linear metode Biseksi dan metode
Regula Falsi Menggunakan Cara Komputasi”.
Dalam penyusunan skripsi ini, penulis banyak mendapatkan bimbingan
dan bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini tidak lupa
peneliti menyampaikan terimakasih yang sebesar-besarnya kepada :
1. Dr. H. Djoko Wahyono, S.U. Apt, Rektor Universitas Muhammadiyah
Purwokerto.
2. Drs. H. Sutomo, M.Si, Dekan Fakultas Keguruan dan Ilmu Pendidikan
Universitas Muhammadiyah Purwokerto
3. Drs. Ahmad, M.Pd, Kaprodi Pendidikan Matematika.
4. Hindayati Mustafidah, S.Si., M.Kom, Dosen Pembimbing I yang telah
memberikan motivasi, pengarahan, saran dan koreksi dalam penyusunan
skripsi ini.
5. Nila Kurniasih, S.Si, M.Si, Dosen Pembimbing II yang telah memberikan
motivasi, pengarahan, saran dan koreksi dalam penyusunan skripsi ini.
6. Semua pihak yang tidak dapat penulis sebutkan satu persatu di sini, yang telah
membantu dalam penyelesaian skripsi ini.
vii
Mulyono (NIM : 0301060025)
Semoga semua bantuan yang telah diberikan menjadi amal di sisi Allah
SWT. Akhirnya penulis berharap semoga skripsi ini bermanfaat dalam menunjang
perkembangan ilmu pengetahuan dan bermanfaat bagi yang membacanya.
Purwokerto, Maret 2007
Penulis
viii
Mulyono (NIM : 0301060025)
LEMBAR PENGESAHAN
PENYELESAIAN PERSAMAAN NON-LINEAR
METODE BISEKSI DAN METODE REGULA FALSI
MENGGUNAKAN CARA KOMPUTASI
Disusun Oleh :
MULYONO
0301060025
Telah disetujui oleh Dosen Pembimbing
untuk diajukan dan dipertahankan didepan
Panitia Ujian Skripsi Fakultas Keguruan dan Ilmu Pendidikan
Universitas Muhammadiyah Purwokerto
Pembimbing I Pembimbing II
Hindayati Mustafidah, S.Si., M.Kom Nila Kurniasih, S.Si., M.Si
NIK. 2160332 NIK. 2160228
ii
Mulyono (NIM : 0301060025)
MOTTO
Sesungguhnya sesudah kesulitan ada kemudahan
(QS Al-Insyirah : 6).
Ilmu menunjukan kebenaran akal, maka barang siapa
yang berakal, niscaya dia berilmu
(Sayyidina Ali bin Abi Tholib).
Jadilah dirimu sendiri dan banggalah dengan apa yang
kamu miliki.
v
Program metode_biseksi_dan_metode_regula_falsi;
uses crt;
procedure tunggu;
var i:byte;
begin
for i:=1 to 80 do
begin
delay(3000);gotoxy(30,17);textcolor(white+blink);
write('Silahkan tunggu ... !!!');
gotoxy(38,20);textcolor(yellow);
write('[ ',(i/80)*100:0:0,' % ]');
textcolor(lightblue);
gotoxy(i,22);write('Û');sound(i*2);
end;
nosound;
end;
procedure judul;
begin
clrscr;textcolor(yellow);
writeln;writeln;
writeln(' ***************************************************');
writeln(' **** Program penyelesaian Persamaan Non-Linier ****');
writeln(' *** Menggunakan Metode Biseksi dan Regula Falsi ***');
writeln(' ***************************************************');
writeln;
end;
procedure bantuan;
var a,b:byte;
label terakhir;
begin
clrscr;textcolor(10);
writeln; writeln;
writeln(' < < B A N T U A N > >
');
writeln;
writeln(' Program ini berfungsi untuk menentukan salah satu akar penyelesaian
');
writeln(' persamaan Non-Linier dengan menggunakan metode Numerik yaitu
');
writeln(' metode Biseksi dan metode Regula Falsi serta mengetahui ketelitian
');
writeln(' ke dua metode dengan membandingkan selisih antara rata-rata akar
');
writeln(' pendekatan dengan rata-rata akar pada saat iterasi ke 10');
writeln;
writeln(' Untuk dapat mengoperasikannya silahkan pada MENU UTAMA
');
writeln(' - ketik 1 untuk Masuk Program
');
writeln(' - ketik 2 untuk Bantuan Program
');
writeln(' - ketik 3 untuk Keluar Program
');
writeln;
writeln(' Jika menginginkan hasil perhitungan disimpan di file maka
');
writeln(' pilih "Y" pada pertanyaan Simpan hasil perhitungan (Y/T) ?
');
writeln(' dan ketikan NAMA FILE nya.
');
writeln;
writeln(' Jika ingin melakukan perhitungan lagi ketikkan "Y" pada pernyataan
');
writeln(' Apakah akan mengulang (Y/T) ?
');
repeat
for a:=9 to 15 do
begin
Page 1
textcolor(a);delay(5000);gotoxy(65,25);write('<< E N T E R >>');
end;
until keypressed;
readln;
end;
procedure bye_bye;
var a,b,c,x,y:byte;
begin
clrscr;
gotoxy(28,12);writeln(' T E R I M A K A S I H ');
gotoxy(28,14);writeln(' Bye ... !!! ');
for a:=28 to 56 do
begin
delay(5000);
gotoxy(a,10);textcolor(9+random(6));delay(500);writeln('#');
gotoxy(56+(28-a),16);textcolor(9+random(6));write('#');
gotoxy(56+(28-a),10);textcolor(9+random(6));delay(500);writeln('#');
gotoxy(a,16);textcolor(9+random(6));write('#');
end;
repeat
clrscr;
x:=random(55);
y:=random(25);
sound(1000);
delay(5000);
nosound;
textcolor(9+random(6));
gotoxy(x,y);write('Tekan sebarang tombol ... !!!');
gotoxy(1,25);
write(' B y : M U L Y O N O ');
delay(50000);
gotoxy(x,y);write(' ');
until keypressed;
end;
procedure penyelesaian_metode_biseksi;
var a,b,c,n,derajat_tertinggi,tertinggi_bis,huruf,iterasi_bis:byte;
x1,nilai_awal_x1,fx1,x2,nilai_awal_x2,fx2,x3,nilai_awal_x3,fx3 :real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;
label mengulang_bis;
begin
mengulang_bis:
judul;
writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi');writeln;
write(' Masukkan pangkat tertinggi = '); readln(tertinggi_bis);
derajat_tertinggi:=tertinggi_bis;
writeln;
huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_bis+1 do
begin
write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a]);
huruf := huruf + 1;
if koef[1]=0 then
begin
sound(1000);delay(10000);nosound;
gotoxy(25,25);
textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow);
readln;
goto mengulang_bis;
end;
end;
{menentukan nilai awal x1}
Page 2
writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
write(' Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_bis do
begin
xpangkat[b]:=xpangkat[b-1]*x1;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
fx1:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin
fx1:=fx1+koef_x_xpangkat[b];
end;
{menentukan nilai awal x2}
n:=0;
repeat
begin
n:=n+1;
if n=5 then
begin
gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow);
readln;
goto mengulang_bis;
end
else
begin
write(' Masukkan nilai x2 awal ==>> '); readln(x2);
end;
nilai_awal_x2:=x2;
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x2;
for b:=2 to tertinggi_bis do
begin
xpangkat[b]:=xpangkat[b-1]*x2;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
fx2:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin
fx2:=fx2+koef_x_xpangkat[b];
end;
end;
until (fx1*fx2)<0;
readln;
judul;
Page 3
{METODE BISEKSI}
iterasi_bis:=0;
fx3:=0;
repeat
begin
x3:=(x1+x2)/2;
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x3;
for b:=2 to tertinggi_bis do
begin
xpangkat[b]:=xpangkat[b-1]*x3;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_bis do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
fx3:=koef[tertinggi_bis+1];
for b:=tertinggi_bis downto 1 do
begin
fx3:=fx3+koef_x_xpangkat[b];
end;
end;
if (fx3*fx1)<0 then
begin
x2:=x3;
end
else
begin
x1:=x3;
end;
iterasi_bis:=iterasi_bis+1;
gotoxy(1,8); write(' Hasil Perhitungan Menggunakan Metode Biseksi');
gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15);
gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_bis);
gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)');
gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15);
until abs(fx3)<1e-7;
readln;
end;
procedure penyelesaian_metode_regula_falsi;
var a,b,c,n,derajat_tertinggi,tertinggi_reg,huruf,iterasi_reg:byte;
x1,nilai_awal_x1,fx1,x2,nilai_awal_x2,fx2,x3,nilai_awal_x3,fx3 :real;
koef,xpangkat,koef_x_xpangkat: array [1..100] of real;
label mengulang_reg;
begin
mengulang_reg:
judul;
writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Regula Falsi');writeln;
write(' Masukkan pangkat tertinggi = '); readln(tertinggi_reg);
derajat_tertinggi:=tertinggi_reg;
writeln;
huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for a:=1 to tertinggi_reg+1 do
begin
write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a]);
huruf := huruf + 1;
if koef[1]=0 then
Page 4
begin
sound(1000);delay(10000);nosound;
gotoxy(25,25);
textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow);
readln;
goto mengulang_reg;
end;
end;
{menentukan nilai awal x1}
writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
write(' Masukkan nilai x1 awal ==>> ');readln(x1);
nilai_awal_x1 := x1;
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x1;
for b:=2 to tertinggi_reg do
begin
xpangkat[b]:=xpangkat[b-1]*x1;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
fx1:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin
fx1:=fx1+koef_x_xpangkat[b];
end;
{menentukan nilai awal x2}
n:=0;
repeat
begin
n:=n+1;
if n=5 then
begin
gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow);
readln;
goto mengulang_reg;
end
else
begin
write(' Masukkan nilai x2 awal ==>> '); readln(x2);
end;
nilai_awal_x2:=x2;
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x2;
for b:=2 to tertinggi_reg do
begin
xpangkat[b]:=xpangkat[b-1]*x2;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
Page 5
end;
{NILAI FX}
fx2:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin
fx2:=fx2+koef_x_xpangkat[b];
end;
end;
until (fx1*fx2)<0;
readln;
judul;
{METODE REGULA FALSI}
iterasi_reg:=0;
fx3:=0;
repeat
begin
x3:=(x2-(fx2/(fx2-fx1))*(x2-x1));
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[1] := x3;
for b:=2 to tertinggi_reg do
begin
xpangkat[b]:=xpangkat[b-1]*x3;
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat_tertinggi;
for b:=1 to tertinggi_reg do
begin
koef_x_xpangkat[b]:=koef[b]*xpangkat[c];
c:=c-1;
end;
{NILAI FX}
fx3:=koef[tertinggi_reg+1];
for b:=tertinggi_reg downto 1 do
begin
fx3:=fx3+koef_x_xpangkat[b];
end;
end;
if (fx3*fx1)<0 then
begin
x2:=x3;
end
else
begin
x1:=x3;
end;
iterasi_reg:=iterasi_reg+1;
gotoxy(1,8); write(' Hasil Perhitungan Menggunakan Metode Regula Falsi');
gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15);
gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_reg);
gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)');
gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15);
until abs(fx3)<1e-7;
readln;
end;
procedure memasukan_jumlah_persamaan_dan_derajat_tertinggi(var jum,pangkat,batas :
longint);
begin
clrscr;
judul;
write(' Masukkan jumlah persamaan ==>> ');readln(jum);
write(' Masukkan derajat tertinggi ==>> ');readln(pangkat);
write(' Masukkan batas jumlah Iterasi ==>> ');readln(batas);
end;
Page 6
procedure tampil_derajat (var jum,pangkat:longint);
begin
gotoxy(1,7);
writeln(' ',jum,' Persamaan || Derajat ',pangkat);
gotoxy(1,7);
writeln;
end;
procedure pilihan_input(var pil_input:char);
begin
repeat
judul;
writeln;
writeln(' P i l i h a n M a s u k k a n ');
writeln;
writeln(' 1. Masukkan dari Keyboard');
writeln(' 2. Masukkan berupa angka Random');
writeln;
write(' Pilihan ==>> ');
readln(pil_input);
if (pil_input='1') or (pil_input='2') then
begin
end
else
begin
gotoxy(18,24);
write(' Pilihan hanya 1 dan 2, Silahkan ulangi !!! ');
delay(20000);
end;
until (pil_input='1') or (pil_input='2')
end;
procedure perbandingan_utama(var jum,pangkat,batas : longint);
var a, b, c {Variabel untuk mengulang},
n {Stop jika tidak menemukan nilai awal x2 },
derajat {Derajat dari persamaan Non-Linier},
huruf {Menampilkan nilai a, b, c, ... } : integer;
fx1 {Nilai fungsi untuk awal x1},
fx2 {Nilai fungsi untuk awal x2},
x1, x2 { Nilai awal x1 dan x2},
nilai_awal_x1, nilai_awal_x2 {Nilai awal x1 dan x2 untuk ke 2 metode },
errorbis {Error dari metode Biseksi},
iterasibis {Jumlah iterasi metode Biseksi},
x1bis, x2bis, x3bis {Nilai x1, x2, x3 metode Biseksi},
fx1bis, fx2bis, fx3bis {Nilai fungsi x1, x2, x3 metode Biseksi},
errorreg {Error dari metode Regula Falsi},
iterasireg {Jumlah iterasi metode Regula Falsi},
x1reg, x2reg, x3reg {Nilai x1, x2, x3 metode Regula Falsi},
fx1reg, fx2reg, fx3reg {Nilai fungsi x1, x2, x3 metode Regula Falsi},
akar_iterasi_ke10_yg_dibandingkan_bis,
akar_iterasi_ke10_yg_dibandingkan_reg{akar untuk perbandingan},
fx3bissebelum, fx3bisterakhir, fx3regsebelum, fx3regterakhir : array [1..100]
of double;
koef {Nilai a, b, c, ..., n},
xpangkat {Nilai x^n untuk x1, x2, x3},
koef_x_xpangkat {Nilai x^n dikalikan dengan koefisiennya} : array [1..100,
1..10] of double;
fileku {Variabel file text} : text;
nama_file {Nama file penyimpanan hasil perhitungan},
besar_kecil{kondisi rata2 error iterasi ke 10} : string;
drive {Drive letak file text} : integer;
directory {Direktori letak file text} : string[20];
jum_akar_ke10_bis,jum_akar_ke10_reg,
jum_akar_bis,jum_akar_reg,
rata2_akar_bis_iterasi_ke10,rata2_akar_reg_iterasi_ke10,
rata2_akar_bis,rata2_akar_reg,
selisih_rata2_bis,selisih_rata2_reg : double;
random1,random2,random3 {angka random dari 0 sampai dengan 100} : integer;
angka_random_real : real;
pil_tampil {pilihan untuk menampilan hasil perhitungan},
Page 7
pil_simpan {pilihan untuk menyimpan hasil perhitungan},
pil_input {pilihan untuk input data} : char;
label 1,2,mengulang;
begin
derajat := pangkat;
pilihan_input(pil_input);
for a:=1 to jum do
begin
mengulang:
clrscr;judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Persamaan ke ',a,' dari ',jum,' persamaan');
writeln;
huruf := 97;
writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n');
{menentukan nilai a, b, c, ..., n}
for b:=1 to derajat+1 do
begin
random1:=random(100);
random2:=random(100);
random3:=random(100);
angka_random_real:=(random1-random2)/(random3+1);
if pil_input = '2' then
begin
koef[a,b]:=angka_random_real;
gotoxy(10,13); writeln(' Nilai ',chr(huruf),' ==>>
');
gotoxy(10,13); writeln(' Nilai ',chr(huruf),' ==>> ',koef[a,b]:6:2);
end
else
begin
gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>>
');
gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> ');
readln(koef[a,b]);
end;
huruf := huruf + 1;
if koef[a,1]=0 then
begin
if pil_input = '2' then
begin
goto mengulang;
end
else
begin
sound(1000);delay(10000);nosound;
gotoxy(25,25);
textcolor(lightred);
write(' a tidak boleh sama dengan nol');
textcolor(yellow);
readln;
goto mengulang;
end;
end;
end;
{menentukan nilai awal x1 dan x2}
begin
writeln;
writeln(' Menentukan 2 Nilai Awal x1 dan x2');
random1:=random(100);
random2:=random(100);
random3:=random(100);
angka_random_real:=(random1-random2)/(random3+1);
if pil_input = '2' then
begin
x1[a]:=angka_random_real;
gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>>
');
gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>> ',x1[a]:6:2);
Page 8
end
else
begin
gotoxy(10,17); write(' Menentukan nilai x1 awal ==>>
');
gotoxy(10,17); write(' Menentukan nilai x1 awal ==>> ');
readln(x1[a]);
end;
nilai_awal_x1[a] := x1[a];
{nilai fungsi untuk x1 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x1[a];
for c:=2 to derajat do
begin
xpangkat[a,c]:=xpangkat[a,c-1]*x1[a];
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=pangkat;
for b:=1 to derajat do
begin
koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1;
end;
{NILAI FX}
fx1[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin
fx1[a]:=fx1[a]+koef_x_xpangkat[a,b];
end;
end;
n:=0;
repeat
begin
n:=n+1;
if n=5 then
begin
if pil_input='2' then
begin
end
else
begin
gotoxy(25,25);sound(1000);delay(10000);nosound;
textcolor(lightred);
write('Syarat ==>> f(x1).f(x2) < 0');
textcolor(yellow);
readln;
end;
goto mengulang;
end
else
random1:=random(100);
random2:=random(100);
random3:=random(100);
angka_random_real:=(random1-random2)/(random3+1);
if pil_input = '2' then
begin
x2[a]:=angka_random_real;
gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>>
');
gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>> ',x2[a]:6:2);
end
else
begin
gotoxy(10,19); write(' Menentukan nilai x2 awal ==>>
');
gotoxy(10,19); write(' Menentukan nilai x2 awal ==>> ');
readln(x2[a]);
Page 9
end;
nilai_awal_x2[a]:=x2[a];
{nilai fungsi untuk x2 awal}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x2[a];
for c:=2 to derajat do
begin
xpangkat[a,c]:=xpangkat[a,c-1]*x2[a];
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat;
koef_x_xpangkat[a,1]:=1;
for b:=1 to derajat do
begin
koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1;
end;
{NILAI FX}
fx2[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin
fx2[a]:=fx2[a]+koef_x_xpangkat[a,b];
end;
end;
until (fx1[a]*fx2[a])<0;
end;
readln;
clrscr;judul;tampil_derajat(jum,pangkat);
{perhitungan metode biseksi dan metode regula falsi}
for a:=1 to jum do
begin
{METODE BISEKSI}
iterasibis[a]:=0;
x1bis[a]:=x1[a];
x2bis[a]:=x2[a];
fx1bis[a]:=fx1[a];
fx2bis[a]:=fx2[a];
fx3bis[a-1]:=0;
repeat
begin
x3bis[a]:=(x1bis[a]+x2bis[a])/2;
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x3bis[a];
for c:=2 to derajat do
begin
xpangkat[a,c]:=xpangkat[a,c-1]*x3bis[a];
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat;
for b:=1 to derajat do
begin
koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1;
end;
{NILAI FX}
fx3bis[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin
fx3bis[a]:=fx3bis[a]+koef_x_xpangkat[a,b];
end;
if (fx3bis[a]*fx1bis[a])<0 then
Page 10
begin
x2bis[a]:=x3bis[a];
end
else
begin
x1bis[a]:=x3bis[a];
end;
fx3bissebelum[a]:=fx3bis[a-1];
fx3bisterakhir[a]:=fx3bis[a];
gotoxy(21,16);textcolor(5);write(' 0.0000001');
gotoxy(21,17);textcolor(lightred);write(abs(fx3bisterakhir[a]-fx3bissebelum[a]):25:22);
end;
if iterasibis[a] = batas then
begin
akar_iterasi_ke10_yg_dibandingkan_bis[a] := x3bis[a];
end;
errorbis[a]:=(fx3bisterakhir[a]-fx3bissebelum[a]);
gotoxy(21,10);textcolor(9+random(6));write('Silahkan tunggu ... !!!');
gotoxy(21,12);textcolor(9+random(6));write(' Persamaan Ke ',a);
gotoxy(12,14);textcolor(white);write('Iterasi metode Biseksi ke
=',iterasibis[a]:10:0);
iterasibis[a]:=iterasibis[a]+1;
until abs(fx3bis[a])<1e-7;
{METODE REGULA FALSI}
iterasireg[a]:=0;
x1reg[a]:=x1[a];
x2reg[a]:=x2[a];
fx1reg[a]:=fx1[a];
fx2reg[a]:=fx2[a];
fx3reg[a-1]:=0;
repeat
begin
x3reg[a]:=((x1reg[a]*fx2reg[a])-(x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]);
{nilai fungsi untuk x3}
{X PANGKAT 1, 2, 3, 4, .... n}
xpangkat[a,1] := x3reg[a];
for c:=2 to derajat do
begin
xpangkat[a,c]:=xpangkat[a,c-1]*x3reg[a];
end;
{X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
c:=derajat;
for b:=1 to derajat do
begin
koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c];
c:=c-1;
end;
{NILAI FX}
fx3reg[a]:=koef[a,derajat+1];
for b:=derajat downto 1 do
begin
fx3reg[a]:=fx3reg[a]+koef_x_xpangkat[a,b];
end;
if (fx3reg[a]*fx1reg[a])<0 then
begin
x2reg[a]:=x3reg[a];
end
else
begin
x1reg[a]:=x3reg[a];
end;
fx3regsebelum[a]:=fx3reg[a-1];
fx3regterakhir[a]:=fx3reg[a];
gotoxy(21,21);textcolor(5);write(' 0.0000001');
Page 11
gotoxy(21,22);textcolor(lightred);write(abs(fx3regterakhir[a]-fx3regsebelum[a]):25:22);
end;
{jumlah akar sampai iterasi ke 10}
if iterasireg[a] = batas then
begin
akar_iterasi_ke10_yg_dibandingkan_reg[a] := x3reg[a];
end;
gotoxy(21,10);textcolor(9+random(6));write('Silahkan tunggu ... !!!');
gotoxy(21,12);textcolor(9+random(6));write(' Persamaan Ke ',a);
gotoxy(12,19);textcolor(white);write('Iterasi metode Regula Falsi ke
=',iterasireg[a]:10:0);
errorreg[a]:=(fx3regterakhir[a]-fx3regsebelum[a]);
iterasireg[a]:=iterasireg[a]+1;
until abs(fx3reg[a])<1e-7;
end;
readln;
begin
clrscr;
derajat:=pangkat;
repeat
judul;tampil_derajat(jum,pangkat);writeln;
write(' Tampilkan Hasil perhitungan (Y/T) ? ');
readln(pil_tampil);
until (pil_tampil='y') or (pil_tampil='Y') or (pil_tampil='t') or (pil_tampil='T');
if (pil_tampil='y') or (pil_tampil='Y') then
begin
writeln(' Jumlah Persamaan = ',jum);
writeln(' Derajat Tertinggi = ',pangkat);
writeln;
{tampilkan koefisien setiap persamaan}
for a:=1 to jum do
begin
clrscr;judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Persamaan Ke = ',a,' (x1 awal = ',nilai_awal_x1[a]:0:2,' dan x2
awal = ',nilai_awal_x2[a]:0:2,')');
huruf:=97;
for b:=1 to derajat+1 do
begin
writeln(' Nilai ',chr(huruf),' = ',koef[a,b]:6:2);
huruf:=huruf+1;
end;
gotoxy(55,25);write('Tekan tombol ENTER ...!!!');
readln;
end;
clrscr;
{tampilkan akar persamaan dengan î = 1E-7}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Salah satu akar penyelesaiannya');
writeln(' =======================================================');
writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |');
writeln(' =======================================================');
jum_akar_bis:=0;
jum_akar_reg:=0;
for a:=1 to jum do
begin
if (a mod 10)=0 then
begin
writeln(' | ',a:4,' | ',x3bis[a]:19:15,' |',x3reg[a]:20:15,' |');
readln;
end
else
begin
writeln(' | ',a:4,' | ',x3bis[a]:19:15,' |',x3reg[a]:20:15,' |');
end;
jum_akar_bis:= jum_akar_bis+x3bis[a];
jum_akar_reg:= jum_akar_reg+x3reg[a];
Page 12
end;
rata2_akar_bis:=jum_akar_bis/jum;
rata2_akar_reg:=jum_akar_reg/jum;
writeln(' =======================================================');
writeln(' | Rata2 | ', rata2_akar_bis:19:15,' |',
rata2_akar_reg:20:15,' |');
writeln(' =======================================================');
readln;
{tampilkan akar persamaan pada saat iterasi ke 10}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Akar penyelesaian pada saat iterasi ke ',batas:0);
writeln(' =======================================================');
writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |');
writeln(' =======================================================');
jum_akar_ke10_bis:=0;
jum_akar_ke10_reg:=0;
for a:=1 to jum do
begin
if (a mod 10)=0 then
begin
writeln(' | ',a:4,' |
',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |',
akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,' |');
readln;
end
else
begin
writeln(' | ',a:4,' |
',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |',
akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,' |');
end;
jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ke10_yg_dibandingkan_bis[a];
jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ke10_yg_dibandingkan_reg[a];
end;
rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
writeln(' =======================================================');
writeln(' | Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' |',
rata2_akar_reg_iterasi_ke10:20:15,' |');
writeln(' =======================================================');
readln;
selisih_rata2_bis:=rata2_akar_bis-rata2_akar_bis_iterasi_ke10;
selisih_rata2_reg:=rata2_akar_bis-rata2_akar_reg_iterasi_ke10;
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
begin besar_kecil:='BESAR' end
else
begin besar_kecil:='KECIL' end;
{menampilkan kesimpulan}
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' K E S I M P U L A N ');writeln;
writeln(' Selisih metode Biseksi = ',abs(selisih_rata2_bis):15:15);
writeln(' Selisih metode Regula Falsi = ',abs(selisih_rata2_reg):15:15);writeln;
writeln(' Karena selisih rata-rata akar pendekatan dengan rata-rata');
writeln(' akar pada iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil);
writeln(' dari selisih rata-rata akar pendekatan dengan rata-rata ');
writeln(' akar pada iterasi ke ',batas:0,' metode Regula falsi, maka dapat ');
writeln(' disimpulkan bahwa : ');
writeln(' Metode Biseksi lebih teliti dari metode Regula Falsi karena');
writeln(' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati');
writeln(' akar pendekatannya. Ini ditunjukan dengan selisih untuk metode');
writeln(' Biseksi yang lebih ',besar_kecil,' dari selisih metode ');
Page 13
writeln(' Regula Falsi');
readln;
end
else
clrscr;
repeat
judul;tampil_derajat(jum,pangkat);writeln;
write(' Simpan hasil perhitungan (Y/T) ? ');
readln(pil_simpan);
until (pil_simpan='y') or (pil_simpan='Y') or (pil_simpan='t') or (pil_simpan='T');
if (pil_simpan='y') or (pil_simpan='Y') then
begin
{$i-}
ChDir('c:numerik'); { Cek Keberadaan Folder c:numerik }
if IOResult <> 0 then { Jika tidak ada }
begin
mkdir('c:numerik'); { Buat Folder c:numerik }
end;
clrscr;
judul;tampil_derajat(jum,pangkat);writeln;
writeln(' Hasil perhitungan akan disimpan dalam file text');
write(' Ketikan nama filenya ===>>> ');
readln(nama_file);
assign(fileku,nama_file + '.txt');
rewrite(fileku);
writeln(fileku, '*****************************************************');
writeln(fileku, '** Hasil Program Penyelesaian Persamaan Non-Linier **');
writeln(fileku, '*****************************************************');
writeln(fileku);
writeln(fileku, 'Jumlah Persamaan = ', jum);
writeln(fileku, 'Pangkat Tertinggi = ', pangkat);
writeln(fileku);
derajat:=pangkat;
write(fileku,
'=========================================================================================
==================');
writeln(fileku,'==========================================================================
================================');
for a:=1 to jum do
begin
huruf:=97;
write(fileku, 'Persamaan ke ',a:4,' ==>> dengan x1 awal = ',x1[a]:6:2,', x2 awal =
',x2[a]:6:2, ' dan nilai ');
for b:=1 to derajat+1 do
begin
write(fileku,chr(huruf),' = ',koef[a,b]:6:2,', ');
huruf:=huruf+1;
end;
writeln(fileku);
end;
write(fileku,'============================================================================
===============================');
writeln(fileku,'==========================================================================
================================');
writeln(fileku);
writeln(fileku,' S A L A H S A T U A K A R P E N Y E L E S A I A N');
writeln(fileku,'==========================================================================
=========================');
writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula
Falsi |');
writeln(fileku,'==========================================================================
=========================');
jum_akar_bis:=0;
jum_akar_reg:=0;
Page 14
for a:=1 to jum do
begin
writeln(fileku,
'| ',a:4,' | ',x3bis[a]:19:15,' (Iterasi ',iterasibis[a]:7:0,') |',x3reg[a]:25:15,'
(Iterasi ',iterasireg[a]:10:0,') |');
jum_akar_bis:= jum_akar_bis+x3bis[a];
jum_akar_reg:= jum_akar_reg+x3reg[a];
end;
rata2_akar_bis:=jum_akar_bis/jum;
rata2_akar_reg:=jum_akar_reg/jum;
writeln(fileku,'==========================================================================
=========================');
writeln(fileku,'| Rata2 | ', rata2_akar_bis:19:15,' | ',
rata2_akar_reg:24:15,' |');
writeln(fileku,'==========================================================================
============');
writeln(fileku);
writeln(fileku,' A K A R P E N Y E L E S A I A N (Pada saat iterasi ke
',batas:0,')');
writeln(fileku,'==========================================================================
============');
writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi
|');
writeln(fileku,'==========================================================================
============');
jum_akar_ke10_bis:=0;
jum_akar_ke10_reg:=0;
for a:=1 to jum do
begin
writeln(fileku,
'| ',a:4,' | ',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' (Iterasi ',batas:0,')
|',
akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,' (Iterasi ',batas:0,') |');
jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ke10_yg_dibandingkan_bis[a];
jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ke10_yg_dibandingkan_reg[a];
end;
rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum;
rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum;
writeln(fileku,'==========================================================================
============');
writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' | ',
rata2_akar_reg_iterasi_ke10:24:15,' |');
writeln(fileku,'==========================================================================
============');
writeln(fileku);
selisih_rata2_bis:=rata2_akar_bis-rata2_akar_bis_iterasi_ke10;
selisih_rata2_reg:=rata2_akar_bis-rata2_akar_reg_iterasi_ke10;
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke
10 metode Biseksi = ',
abs(selisih_rata2_bis):1:10);
writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke
10 metode Regula Falsi = ',
abs(selisih_rata2_reg):1:10);
writeln(fileku);
Page 15
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then
begin besar_kecil:='BESAR' end
else
begin besar_kecil:='KECIL' end;
writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada ');
writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil,' dari
selisih rata-rata');
writeln(fileku,' akar pendekatan dengan rata-rata akar pada iterasi ke ',batas:0,'
metode Regula falsi');
writeln(fileku,' maka dapat disimpulkan bahwa : ');
writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula Falsi karena');
writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati
akar pendekatannya');
writeln(fileku,' ini ditunjukan dengan selisih untuk metode Biseksi yang lebih
',besar_kecil,' dari ');
writeln(fileku,' selisih metode Regula Falsi');
writeln(fileku);
writeln(fileku,' Selesai ...... !!!!');
append(fileku);
close(fileku);
judul;
drive:=0;
getdir(drive,directory);
writeln;
writeln(' Hasil perhitungan sedang disimpan pada file '); writeln;
writeln(' ===>>> ',directory,'',nama_file,'.txt');
tunggu;
judul;
textcolor(lightred);
writeln(' Hasil perhitungan sudah disimpan pada file '); writeln;
writeln(' ===>>> ',directory,'',nama_file,'.txt');
gotoxy(55,25);textcolor(yellow);write('Tekan tombol ENTER ...!!!');
readln;
end
else
end
end;
{ P R O G R A M U T A M A }
var
n,jum, pangkat,batas : longint;
pil,pil_ulang,pil_penyelesaian :char;
label ulang,ulangi,keluar;
begin
ulangi:
n:=0;
repeat
begin
judul;
{menu utama}
writeln(' < < < M E N U U T A M A > > >');
writeln;
writeln(' 1. Masuk ');
writeln(' 2. Bantuan ');
writeln(' 3. Keluar ');
writeln;
write(' Pilihan (1/2/3) ==>> ');
readln(pil);
end;
if (pil='1') or (pil='2') or (pil='3') then
begin
end
else
begin
gotoxy(15,24);sound(1000);delay(10000);nosound;
textcolor(lightred);
Page 16
write(' Pilihan hanya 1, 2 dan 3, Silahkan ulangi !!! ');
textcolor(yellow);
readln;
end;
until (pil='1') or (pil='2') or (pil='3');
if (pil = '2') then
begin
judul;
bantuan;
goto ulangi;
end
else if (pil = '3') then begin goto keluar; end
else
ulang:
judul;
writeln(' Silahkan pilih !!!'); writeln;
writeln(' 1. Penyelesaian Persamaan Non-Linier Menggunakan Metode Biseksi');writeln;
writeln(' 2. Penyelesaian Persamaan Non-Linier Menggunakan Metode Regula
Falsi');writeln;
writeln(' 3. Penyelesaian Metode Biseksi dan Metode Regula Falsi ');
writeln(' untuk mengetahui perbedaan kecepatannya');writeln;
write(' Pilihan (1/2/3) ==>> '); readln(pil_penyelesaian);
if pil_penyelesaian = '1' then
penyelesaian_metode_biseksi
else if pil_penyelesaian = '2' then
penyelesaian_metode_regula_falsi
else
begin
memasukan_jumlah_persamaan_dan_derajat_tertinggi(jum,pangkat,batas);
perbandingan_utama(jum,pangkat,batas);
writeln; writeln;
end;
repeat
judul;
write(' Apakah akan mengulang (Y/T) ? ');
readln(pil_ulang);
until (pil_ulang='y') or (pil_ulang='Y') or (pil_ulang='t') or (pil_ulang='T');
if (pil_ulang='y') or (pil_ulang='Y') then
begin
goto ulangi;
end
else
keluar:
bye_bye;
end. {akhir program utama}
Page 17
Mulyono (NIM : 0301060025)
PERSEMBAHAN
Kupersembahkan karya ini untuk :
Kedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberiku
motivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkarya
AdikAdikAdikAdik----adikku yang baik,adikku yang baik,adikku yang baik,adikku yang baik,
vi
Mulyono (NIM : 0301060025)
PENYELESAIAN PERSAMAAN NON-LINEAR
METODE BISEKSI DAN METODE REGULA FALSI
MENGGUNAKAN CARA KOMPUTASI
Oleh :
MULYONO
0301060025
ABSTRAK
Penelitian ini bertujuan menyusun program komputer untuk mengetahui
perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam
menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan
menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan
metode studi literatur, kemudian diimplementasikan ke dalam program komputer.
Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah,
2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji
program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program
komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan
persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi
serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula
Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
Pembimbing I Pembimbing II
Hindayati Mustafidah, S.Si., M.Kom Nila Kurniasih, S.Si., M.Si
NIK. 2160332 NIK. 2160228
Mengetahui,
Dekan FKIP
Drs. H. Sutomo, M. Si
NIP. 131602699
Mulyono (NIM : 0301060025)
BAB I
PENDAHULUAN
A. Latar Belakang
Persoalan yang melibatkan model matematika banyak muncul dalam
berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia,
ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil,
Teknik Mesin, Elektro dan sebagainya. Seringkali model matematika tersebut
muncul dalam bentuk yang tidak ideal atau sulit untuk dikerjakan secara
analitik untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud
dengan metode analitik adalah metode penyelesaian model matematika
dengan rumus-rumus aljabar yang sudah baku atau lazim digunakan.
Sebagai ilustrasi, diberikan beberapa contoh berikut ini :
1. Penyelesaian akar-akar persamaan polinom :
23,4x7
– 1,25x6
+ 120x4
+ 15x3
- 120x2
- x + 100 = 0
2. Pencarian harga x yang memenuhi persamaan:
65x17
)x2x120(
cos
x
1
e8,27
2
1x5
−
+
=− −
3. Penyelesaian sistem persamaaan linear :
1,2a - 3b - 12c + 12d + 4,8e – 5,5f + 100g = 18
0,9a + 3b - c + 16d + 8e - 5f - 10g = 17
4,6a + 3b - 6c - 2d + 4e + 6,5f - 13g = 19
3,7a - 3b + 8c - 7d + 14e + 8,4f + 16g = 6
1
Mulyono (NIM : 0301060025) 2
2,2a + 3b + 17c + 6d + 12e – 7,5f + 18g = 9
5,9a + 3b + 11c + 9d - 5e - 25f - 10g = 0
1,6a + 3b + 1,8c + 12d -7e +2,5f + g =-5
(Susy, 2006 : 1-2)
Setelah melihat beberapa contoh ilustrasi di atas, kemungkinan besar
cara analitik tidak dapat digunakan. Untuk polinom berderajat 2, masih bisa
dicari akarnya menggunakan rumus abc yang sudah terkenal, yaitu :
a2
ac4bb
x
2
2,1
−±−
=
Namun, untuk polinom yang berderajat lebih besar dari 2, tidak ada rumus
aljabar untuk menghitung akar polinom tersebut. Alternatifnya adalah dengan
memanipulasi polinom, misalnya dengan pemfaktoran atau menguraikan
polinom tersebut menjadi perkalian beberapa suku. Semakin tinggi derajat
polinom, jelas semakin sukar memfaktorkannya. Begitu juga untuk
menyelesaian sistem persamaan linear. Apabila sistem persamaannya hanya
berupa dua atau tiga garis lurus dengan dua atau tiga peubah, masih dapat
ditemukan solusinya (dalam hal ini titik potong kedua garis) dengan
menggunakan rumus titik potong dua buah garis. Titik potong tersebut juga
dapat ditemukan dengan menggambar kedua garis pada kertas grafik. Tetapi
untuk sistem dengan jumlah persamaan dan jumlah peubah lebih besar dari
tiga, tidak ada rumus yang dapat dipakai untuk memecahkannya.
Contoh-contoh ilustrasi di atas memperlihatkan bahwa ada beberapa
persoalan matematika yang tidak dapat diselesaikan dengan metode analitik.
Mulyono (NIM : 0301060025) 3
Akan tetapi metode analitik unggul untuk sejumlah persoalan yang memiliki
tafsiran geometri sederhana. Misalnya menentukan akar penyelesaian dari
04x4x2
=++ menggunakan rumus abc. Padahal persoalan yang muncul
dalam kehidupan sehari-hari tidak selalu dalam bentuk sederhana tetapi sangat
kompleks serta melibatkan bentuk dan proses yang rumit. Akibatnya nilai
praktis penyelesaian metode analitik menjadi terbatas. Bila metode analitik
tidak dapat lagi digunakan, maka salah satu solusi yang dapat digunakan
adalah dengan metode Numerik. Metode Numerik adalah teknik yang
digunakan untuk memformulasikan persoalan matematika sehingga dapat
dipecahkan dengan operasi perhitungan atau aritmatika biasa (tambah, kurang,
kali, dan bagi) (Susy, 2006 : 3-5).
Penyelesaian secara numerik umumnya melibatkan proses iterasi,
perhitungan berulang dari data numerik yang ada. Jika proses iterasi tersebut
dilakukan secara manual, akan membutuhkan waktu yang relatif lama dan
kemungkinan timbulnya nilai kesalahan (error) akibat manusia itu sendiri juga
relatif besar. Misalnya untuk menyelesaikan persoalan persamaan non-linear
24x4x22x9x2x 2345
=++−− , jika diselesaikan menggunakan cara manual
menggunakan Metode Biseksi diperlukan beberapa iterasi. Untuk
penyelesaian sampai tujuh angka di belakang koma dapat terjadi iterasi sampai
puluhan kali. Ini tentu membutuhkan waktu yang relatif lama. Pada
kenyataannya sering terjadi proses iterasi sampai ratusan kali, pada keadaan
demikian ini komputer sangat dibutuhkan untuk mengurangi waktu
penyelesaian (Munif, 1995 : 3). Selain mempercepat perhitungan numerik,
Mulyono (NIM : 0301060025) 4
dengan komputer dapat dicoba berbagai kemungkinan solusi yang terjadi
akibat perubahan beberapa parameter tanpa menyita waktu dan pikiran. Solusi
yang diperoleh juga dapat ditingkatkan ketelitiannya dengan mengubah-ubah
nilai parameter (Susy, 2006 : 9).
Persamaan linear jika digambarkan pada sumbu kartesius berupa
garis lurus. Sedangkan untuk persamaan non-linear jika digambarkan pada
sumbu kartesius berupa kurva (garis lengkung). Persamaan yang termasuk
persamaan non-linear adalah persamaan polinomial, persamaan eksponensial,
persamaan logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7).
Sebagai contoh misalnya terdapat persamaan : 0x4x2
=− dengan daerah asal
{x | -2 ≤ x ≤ 6, x ∈ R}. Persamaan tersebut jika digambarkan pada sumbu
kartesius :
Gambar 1. Gambar grafik 0x4x2
=−
-2 -1 0 1 2 3 4 5 6
-4
-2
0
2
4
6
8
10
12
Mulyono (NIM : 0301060025) 5
Dari gambar di atas terlihat jelas bahwa persamaan 0x4x2
=− jika
digambarkan pada sumbu kartesius berupa kurva. Jika dicari nilai x yang
memenuhi persamaan biasanya digunakan rumus abc, maka diperoleh x1 = 0
dan x2 = 4. Nilai-nilai x yang memenuhi persamaan ini pada gambar terlihat
jelas yaitu titik potong garis dengan sumbu x.
Akan tetapi jika diilustrasikan untuk persamaan non-linear :
23,4x7
– 1,25x6
+ 120x4
+ 15x3
- 120x2
- x + 100 = 0 maka rumus abc sudah
tidak berlaku lagi, karena persamaan tersebut mempunyai pangkat yang lebih
besar dari 2. Metode analitik tidak berlaku lagi karena terlalu memakan
banyak waktu, tenaga dan pikiran. Jalan yang paling efektif dan efisien adalah
dengan mengggunakan metode Numerik, karena hanya dengan beberapa
langkah saja sudah bisa didapatkan apa yang diinginkan.
Penyelesaian yang digunakan dalam metode Numerik adalah
penyelesaian pendekatan, oleh karena itu biasanya timbul kesalahan (error).
Pada penyelesaiannya diusahakan untuk mendapatkan error yang sekecil
mungkin. Langkah pertama yang dilakukan dalam penyelesaian persamaan
non-linear dengan menggunakan metode Biseksi dan metode Regula Falsi
adalah menetapkan nilai sebarang a sebagai batas atas dan nilai sebarang b
sebagai batas bawah kemudian ditentukan nilai fungsi f(x) untuk x = a dan
x = b. Selanjutnya adalah memeriksa apakah f(a).f(b) < 0, apabila terpenuhi
syarat tersebut berarti akar fungsi terdapat di antara a dan b. Jika tidak
terpenuhi maka kembali harus menetapkan nilai sebarang a dan b sedemikian
rupa sehingga ketentuan perkalian terpenuhi (Wibowo, 2007 : 1). Jika
Mulyono (NIM : 0301060025) 6
ketentuan perkalian terpenuhi maka selanjutnya adalah menentukan titik c
(titik di antara a dan b). Untuk metode Biseksi menggunakan rumus
( )
2
ba
c
+
= sedangkan untuk metode Regula Falsi menggunakan rumus
)ab(
)a(f)b(f
)b(f
bc −
−
−= . Langkah selanjutnya adalah mencari nilai c yang
lain sehingga didapat error yang kecil atau sama dengan nol.
Selain sederhana, metode Biseksi dan metode Regula Falsi
mempunyai beberapa kelebihan yaitu proses iterasi lebih cepat, mudah untuk
dibuat program dan tingkat kesalahan kecil. Untuk metode yang menghasilkan
error kecil maka metode tersebut lebih teliti dibanding dengan metode lain.
Dalam metode Numerik ada beberapa metode yang dapat digunakan untuk
menyelesaikan persamaan non-linear, diantaranya metode Tabulasi, metode
Biseksi, metode Regula Falsi, metode Iterasi bentuk x = g(x), metode Newton
Rapson, metode Faktorisasi (P3, P4, P5), metode Bairstow dan metode
Quotient-Difference (Q-D) (Munif, 1995 : 8).
Berdasarkan uraian di atas, tujuan utama penelitian ini adalah
mempelajari penyelesaian persamaan non-linear menggunakan metode Biseksi
dan metode Regula Falsi Menggunakan Cara Komputasi serta mengetahui
perbedaan kecepatannya dalam menyelesaikan persamaan non-linear ditinjau
dari banyaknya iterasi.
Mulyono (NIM : 0301060025) 7
B. Perumusan Masalah
Berdasarkan latar belakang tersebut di atas, maka permasalahan
dalam penelitian ini adalah :
1. Bagaimana penyelesaian persamaan non-linear menggunakan metode
Biseksi dengan program komputer.
2. Bagaimana penyelesaian persamaan non-linear menggunakan metode
Regula Falsi dengan program komputer
3. Bagaimana perbedaan kecepatan antara metode Biseksi dan metode
Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari
banyaknya iterasi.
C. Pembatasan Masalah
Batasan masalah dalam penelitian ini adalah persamaan non-linear
dalam bentuk polinomial satu variabel.
D. Tujuan Penelitian
Dengan adanya permasalahan yang muncul, maka tujuan dari
penelitian ini adalah :
1. Membuat program komputer untuk menyelesaikan persamaan non-linear
menggunakan metode Biseksi.
2. Membuat program komputer untuk menyelesaikan persamaan non-linear
menggunakan metode Regula Falsi.
Mulyono (NIM : 0301060025) 8
3. Mengetahui perbedaan kecepatan antara metode Biseksi dan metode
Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari
banyaknya iterasi.
E. Manfaat Penelitian
Ada beberapa manfaat yang diharapkan dari penelitian ini,
diantaranya adalah :
1. Mengetahui perbedaan kecepatan antara metode Biseksi dan metode
Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari
banyaknya iterasi.
2. Memberi masukkan bagi peneliti yang ingin mempelajari lebih jauh
tentang metode Numerik.
Mulyono (NIM : 0301060025)
BAB II
LANDASAN TEORI
A. Persamaan Non-Linear
Persamaan merupakan kalimat terbuka yang menyatakan hubungan
“sama dengan” (ditulis “=”) (Alamsyah, 1994 : 61). Persamaan Non-Linear
adalah persamaan yang jika digambarkan dalam bidang kartesius berbentuk
garis tidak lurus (berbentuk kurva). Persamaan yang termasuk persamaan
non-linear adalah persamaan polinomial, persamaan eksponensial, persamaan
logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7).
B. Metode Numerik
Tidak semua permasalahan matematis atau perhitungan dapat
diselesaikan dengan mudah. Bahkan dalam prinsip matematik, dalam
memandang permasalahan yang terlebih dahulu diperhatikan apakah
permasalahan tersebut mempunyai penyelesaian atau tidak. Hal ini
menjelaskan bahwa tidak semua permasalahan dapat diselesaikan dengan
menggunakan perhitungan biasa.
Sebagai ilustrasi untuk persamaan non-linear berderajat lebih dari dua
dapat dikatakan mempunyai penyelesaian yang tidak mudah bahkan dan tidak
mungkin diselesaikan secara analitik. Tetapi bukan berarti persamaan tersebut
tidak mempunyai penyelesaian, hanya saja menyelesaikan persamaan
semacam itu sangat sulit dan kalaupun bisa memerlukan pengetahuan
9
Mulyono (NIM : 0301060025) 10
matematis yang tinggi dan waktu yang cukup lama. Dengan dasar inilah dapat
dikatakan bahwa diperlukan suatu metode tertentu yang dapat digunakan
untuk menghitung persamaan tersebut. Meskipun metode tersebut tidak dapat
menghasilkan nilai yang exact (tepat), setidak-tidaknya sudah mendekati nilai
yang diharapkan. (Amang, 2006 : 1)
Penyelesaian persamaan non-linear adalah penentuan akar-akar
persamaan non-linear. Dimana akar sebuah persamaan f(x) = 0 adalah nilai-
nilai x yang menyebabkan nilai f(x) sama dengan nol. Dengan kata lain akar
persamaan f(x) adalah titik potong antara kurva f(x) dengan garis y = 0.
Gambar 2. Penyelesaian Persamaan Non-Linear
(Amang, 2006 : 10)
-2 -1 0 1 2 3 4 5 6
-4
-2
0
2
4
6
8
10
12
y = f(x)
Akar persamaan sebagai
penyelesaian
Mulyono (NIM : 0301060025) 11
C. Penyelesaian Persamaan Non-Linear
Menurut Munif, A (1995 : 7) Persamaan y=f(x) dikatakan linear jika
hubungan antara variabel x dan nilai fungsi y jika digambarkan pada sumbu
kartesian menunjukkan garis lurus. Sedangkan yang tidak berbentuk garis
lurus disebut persamaan non-linear. Misalnya persamaan polinomial,
persamaan sinusoida, persamaan eksponensial, persamaan logaritmik dan
sebagainya.
Gambar 3. Bentuk-bentuk Grafik Persamaan Linear
Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear
1. Metode Biseksi
Metode ini mempunyai ciri dimana area dibagi menjadi 2 bagian,
dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian
yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang
hingga diperoleh akar persamaan.
y=2x+13
1
x
y
0
y=x1
1
x
y
0
y=-½x+11
2
x
y
0
y=x2
1
x
y
0 2
4
y=e-x
x
y
0 2
1
2
2
π
2
3π
π π2
x
y xsiny =
Mulyono (NIM : 0301060025) 12
Gambar 5. Metode Biseksi
Cara Penyelesaian dari Metode Biseksi
Langkah Pertama menyelesaikan persamaan non-linear f(x)
dengan metode Biseksi adalah menentukan dua titik f(x) awal yaitu f(x1)
dan f(x2) dan harus memenuhi hubungan f(x1).f(x2) < 0.
Langkah Kedua adalah mencari nilai x3 dengan persamaan :
2
xx
x 21
3
+
= kemudian mencari nilai f(x3) nya.
Langkah Ketiga, melakukan iterasi untuk mendapatkan akar
persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak
diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar
terletak diantara x2 dan x3.
2. Metode Regula Falsi
Metode Regula Falsi adalah metode pencarian akar persamaan
dengan memanfaatkan kemiringan dan selisih tinggi dari dua titik batas
range.
-2 -1 0 1 2 3 4 5 6
-4
-2
0
2
4
6
8
10
12
x1
x2
x3
x4
Mulyono (NIM : 0301060025) 13
Gambar 6. Metode Regula Falsi
(Amang, 2006 : 16)
Cara Penyelesaian Metode Regula Falsi :
Langkah Pertama, menentukan dua titik f(x) awal, yaitu x1 dan
x2 yang memenuhi persamaan f(x1).f(x2) < 0.
Langkah Kedua, mencari nilai x3 dengan persamaan :
)xx(
)x(f)x(f
)x(f
xx 12
12
2
23 −
−
−= kemudian dicari nilai f(x3) nya.
Langkah Ketiga, melakukan iterasi untuk mendapatkan akar
persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak
diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar
terletak diantara x2 dan x3.
(Munif, 1995 : 12)
x1
x2
x3
f(x)
f(x2)
f(x1)
Mulyono (NIM : 0301060025) 14
D. Bahasa Pemrograman Pascal
1. Sejarah Pascal
Pascal adalah bahasa tingkat tinggi (high level language) yang
bersifat umum dan dirancang oleh Profesor Niklaus Wirth dari Technical
University di Zurich, Switzerland. Nama Pascal diambil sebagai
penghargaan terhadap Blaise Pascal, ahli matematik dan philosphi terkenal
abad ke-17, dari Perancis. Profesor Niklaus Wirth memperkenalkan
kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control
Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan
untuk membantu mengajar program komputer secara sistematis,
khususnya untuk memperkenalkan pemrograman yang terstruktur
(structured programming) (Jogianto, 1988a : 1).
2. Langkah-langkah dalam Pemrograman Komputer
Menurut Pranata (2000 : 4-7) Langkah-langkah yang harus
dilakukan dalam pemrograman komputer adalah sebagai berikut :
a). Mendefinisikan Masalah
Sebelum menginjak ke langkah yang kedua, mendefinisikan
masalah merupakan langkah yang sangat penting yang berisi
menentukan masalahnya seperti apa, apa saja yang harus dipecahkan
dengan komputer, yang terakhir adalah apa masukkannya dan
bagaimana keluarannya.
b). Menentukan Solusi
Setelah masalah didefinisikan dengan jelas, masukkan apa
yang diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas
Mulyono (NIM : 0301060025) 15
langkah selanjutnya adalah menentukan bagaimana masalah tersebut
diselesaikan. Apabila masalah yang dihadapi terlalu kompleks, kita
bisa membaginya ke dalam beberapa bagian kecil agar lebih mudah
dalam penyelasaiannya.
c). Memilih Algoritma
Dalam memilih algoritma untuk sebuah program kita harus
menentukannya dengan tepat. Karena pemilihan program yang salah
akan menyebabkan program memiliki unjuk kerja yang kurang baik.
d). Menulis Program
Dalam langkah ini kita sudah mulai menuliskan program
komputer untuk memecahkan masalah yang ada. Dalam menulis
program kita juga akan melakukan pemilihan terhadap bahasa
pemrograman yang akan digunakan. Ada beberapa hal yang harus
dipertimbangkan saat memilih bahasa pemrograman, antara lain
masalah yang dihadapi, bahasa pemrograman yang dikuasai, dan
sebagainya.
e). Menguji Program
Setelah program selesai ditulis, langkah selanjutnya adalah
mengujinya. Pengujian pertama adalah apakah program berhasil
dikompilasi dengan baik, Pengujian berikutnya apakah program dapat
menampilkan keluaran yang diinginkan.
Mulyono (NIM : 0301060025) 16
Program juga harus diuji untuk kasus yang berbeda, sering
terjadi suatu program berjalan baik untuk kasus A, B, C tetapi
menghasilkan sesuatu yang tidak diinginkan untuk kasus X, Y, dan Z.
f). Menulis Dokumentasi
Langkah ini biasanya dilakukan bersamaan dengan langkah
menulis program tetapi tidak menutup kemungkinan ditulis pada
setelah langkah terakhir. Menulis dokumentasi artinya pada setiap
beberapa baris program ditambahkan komentar yang menjelaskan
kegunaan dari suatu pernyataan.
g). Merawat Program
Langkah ini dilakukan setelah program selesai dibuat dan
sudah digunakan oleh pengguna. Hal yang sering terjadi adalah
munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga
pengguna menginginkan tambahan suatu fasilitas baru. Apabila hal-hal
ini terjadi, maka harus dilakukan revisi terhadap program.
3. Struktur Program Pascal
Struktur dari suatu program Pascal terdiri dari sebuah judul
program (program heading) dan suatu blok program (program block).
Blok program di bagi lagi manjadi dua bagian, yaitu bagian deklarasi
(declaration part) dan bagian badan program yang berisi pernyataan-
pernyataan (statements). Bagian deklarasi dapat tersusun atas deklarasi
label (labels), konstanta (constants), tipe (type), variabel (variables),
prosedur (procedures) dan fungsi (functions) (Jogianto, 1988a : 2).
Mulyono (NIM : 0301060025) 17
Untuk mempermudah pembuatan program pascal, format
program pascal disajikan sebagai berikut :
program <nama program>
label <deklarasi>
const <deklarasi>
type <deklarasi>
var <deklarasi>
procedure dan function <deklarasi>
begin
<pernyataan >;
<pernyataan >;
<pernyataan >;
.
.
.
<pernyataan >;
end.
(Zaks, 1988 : 17)
4. Pengambilan Keputusan
Sering kali pemakai dihadapkan pada permasalahan untuk
pengambilan keputusan terhadap dua alternatif atau bahkan lebih. Pemakai
dapat mengambil keputusan didasarkan oleh suatu kondisi yang telah
dievaluasi terlebih dahulu. Hal serupa juga dilakukan oleh komputer.
Untuk keperluan inilah Turbo Pascal menyediakan dua macam pernyataan:
a). IF
Pernyataan IF ada beberapa bentuk, yaitu :
(1). Pernyataan IF Sederhana
Pada bentuk ini pernyataan hanya akan dijalankan kalau
kondisi bernilai True.
IF kondisi THEN
pernyataan
Mulyono (NIM : 0301060025) 18
(2). Pernyataan IF – ELSE
Pada bentuk ini pernyataan_1 hanya akan dijalankan
kalau kondisi bernilai True (benar), pernyataan_2 hanya akan
dijalankan kalau kondisi bernilai False (salah).
(3). Pernyataan IF Bersarang
Suatu pernyataan IF dapat mengandung pernyataan IF
yang lain. Bentuk seperti ini disebut IF Bersarang (nested IF).
(Kadir , 2001 : 86-92)
b). CASE
Pernyataan CASE biasanya dipakai pada pilihan berganda.
Bentuk pernyataan ini :
(Kadir, 2001 : 96)
IF kondisi THEN
pernyataan_1
ELSE
pernyataan_2
IF kondisi_1 THEN
IF kondisi_2 THEN
pernyataan_1
ELSE
pernyataan_2
CASE nilai OF
daftar_nilai_1 : pernyataan_1;
daftar_nilai_2 : pernyataan_2;
…
daftar_nilai_m : pernyataan_m
ELSE
pernyataan_n
END
Mulyono (NIM : 0301060025) 19
5. Pengulangan (loop)
Pengulangan digunakan untuk menjalankan satu atau beberapa
pernyataan sebanyak beberapa kali. Pengulangan memungkinkan
menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan
tersebut satu kali saja.
a). Pernyataan FOR
Pernyataan FOR biasanya digunakan untuk melakukan
pengulangan yang jumlahnya diketahui sebelumnya. Bentuk umum
pernyataan FOR adalah sebagai berikut :
Pernyataan FOR bisa juga digunakan untuk melakukan
pengulangan dari bilangan yang lebih besar ke bilangan yang lebih
kecil. Caranya adalah dengan mengganti kata kunci TO dengan
DOWNTO.
b). Pernyataan FOR Bersarang
Pernyataan FOR yang berada di dalam FOR disebut FOR
Bersarang (nested FOR).
FOR variabel := nilai_awal TO nilai_akhir DO
pernyataan
FOR variabel := nilai_awal DOWNTO nilai_akhir DO
pernyataan
Mulyono (NIM : 0301060025) 20
c). WHILE
Pernyataan WHILE biasa digunakan untuk pengulangan yang
belum diketahui secara pasti berapa banyak akan mengulang
pernyataan-pernyataan.
d). Pernyataan REPEAT - UNTIL
Pernyataan REPEAT –UNTIL digunakan bila jumlah
pengulangan belum dapat ditentukan pada saat program ditulis.
Kondisi REPEAT – UNTIL dicek pada akhir kalang. Bentuk
pernyataaan REPEAT :
(Pranata, 2002 : 85-87)
6. Keunggulan Bahasa Pascal
Menurut Zaks, R (1998 : 2-3) Bahasa Pascal telah dirancang
untuk mempermudah pengubahan algoritma menjadi program, demikian
pula halnya dengan susunan dan penyajian struktur datanya. Pascal
berkembang dari pencarian suatu bahasa pemrograman bersifat lengkap,
namun sederhana untuk dipelajari dan mudah diimplementasikan ke
program komputer dengan memori yang cukup kecil dan dapat dijalankan
lewat mode DOS.
WHILE kondisi DO
BEGIN
pernyataan
END
REPEAT
{pernyataan-pernyataan yang akan diulang}
UNTIL kondisi
Mulyono (NIM : 0301060025)
BAB III
METODOLOGI PENELITIAN
A. Tempat Penelitian
Penelitian ini dilakukan di Laboratorium Pengembangan Pendidikan
Matematika Fakultas Keguruan dan Ilmu Pendidikan Universitas
Muhammadiyah Purwokerto.
B. Alat Penelitian
Alat yang digunakan dalam penelitian ini adalah satu unit komputer
dengan spesifikasi :
Processor : Intel(R) Pentium(R) 4 CPU 1.80GHz
RAM : 256 MB RAM
Hardisk : 40 GB Maxtor
C. Langkah-langkah Penelitian
Penelitian ini menggunakan metode studi literatur yang kemudian
diimplementasikan ke dalam program komputer menggunakan bahasa
pemrograman Turbo Pascal 7.1. Langkah-langkah yang dilakukan dalam
pembuatan program pada penelitian ini adalah sebagai berikut :
1. Mengidentifikasikan Masalah
Masalah pada penelitian ini adalah mengetahui perbedaan
kecepatan antara metode Biseksi dan metode Regula Falsi dalam
21
Mulyono (NIM : 0301060025) 22
menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi
dengan cara membandingkan selisih rata-rata akar pendekatan dengan
rata-rata akar pada iterasi ke n pada ke dua metode.
2. Menentukan Solusi
Untuk mengetahui perbedaan kecepatan antara metode Biseksi
dan metode Regula Falsi dalam menyelesaikan persamaan non-linear yaitu
dengan membandingkan selisih rata-rata akar pendekatan dengan rata-rata
akar pada iterasi ke n pada ke dua metode.
3. Membuat Diagram Alir
Sebelum peneliti membuat program maka terlebih dahulu dibuat
diagram alir. Diagram alir dibuat untuk mempermudah urutan langkah-
langkah pembuatan program.
4. Menulis Program
Berdasarkan diagram alir yang telah dibuat sebelumnya, maka
permasalahan yang ada diimplementasikan ke dalam program komputer
dengan menggunakan bahasa pemrograman Turbo Pascal 7.1.
5. Menguji Program
Setelah program ditulis, program diuji dengan cara menjalankan
(running) program untuk mengetahui kesalahan yang ada.
6. Menulis Dokumentasi
Menambahkan dokumentasi berupa komentar-komentar pada
program. Manfaatnya adalah agar pembaca program (user) dapat
Mulyono (NIM : 0301060025) 23
mengetahui lebih jelas kegunaan dari setiap pernyataan yang ditulis dalam
program.
D. Membandingkan Metode Biseksi dan Metode Regula Falsi
Pada tahap ini dilakukan pembandingan selisih rata-rata akar
pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi
dengan metode Regula Falsi dalam menyelesaikan persamaan non-linear
khususnya persamaan polinomial satu variabel.
Jika selisih rata-rata akar pendekatan dengan rata-rata akar pada
iterasi ke n untuk metode Biseksi lebih KECIL dari selisih metode Regula
Falsi maka disimpulkan metode Biseksi lebih cepat dalam menyelesaikan
persamaan non-linear ditinjau dari banyaknya iterasi. Sebaliknya, jika selisih
rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode
Biseksi lebih BESAR dari selisih metode Regula Falsi maka disimpulkan
metode Regula Falsi lebih cepat dalam menyelesaikan persamaan non-linear
ditinjau dari banyaknya iterasi.
Mulyono (NIM : 0301060025)
BAB IV
HASIL PENELITIAN DAN PEMBAHASAN
Penelitian ini menghasilkan diagram alir, kode program serta keluaran
berupa tingkat ketelitian metode Biseksi dan metode Regula Falsi dalam
menyelesaikan persamaan non-linear satu variabel.
A. Diagram Alir
Diagram alir dibuat untuk mempermudah urutan langkah-langkah
penyelesaian masalah. Adapun diagram alir yang dihasilkan secara garis besar
terdiri dari :
1. Program Utama
Dalam diagram alir untuk program utama berisi perintah untuk
menentukan pilihan pada menu utama (masuk, bantuan dan keluar) serta
pilihan untuk memanggil prosedur penyelesaian metode biseksi,
penyelesaian metode regula falsi, memasukan jumlah persamaan dan
derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan
utama.
2. Prosedur Penyelesaian Metode Biseksi
Dalam diagram alir ini berisi perhitungan penyelesaian persamaan
non-linear dengan menggunakan metode Biseksi.
3. Prosedur Penyelesaian Metode Regula Falsi
Dalam diagram alir ini berisi perhitungan penyelesaian persamaan
non-linear dengan menggunakan metode Regula Falsi.
24
Mulyono (NIM : 0301060025) 25
4. Prosedur Perbandingan Utama
Dalam diagram alir untuk prosedur perbandingan utama berisi
perhitungan untuk metode Biseksi dan metode Regula Falsi serta
perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi
dan metode Regula Falsi dalam menyelesaikan persamaan non-linear
ditinjau dari banyaknya iterasi.
Diagram alir secara keseluruhan dapat dilihat pada lampiran 1.
B. Kode Program
Kode program yang dihasilkan diberi nama “NUMERIK” yaitu
program yang digunakan untuk mengetahui perbedaan kecepatan antara
metode Biseksi dan metode Regula Falsi dalam menentukan akar penyelesaian
persamaan non-linear ditinjau dari banyaknya iterasi. Secara garis besar kode
program ini terdiri dari :
1. Program Utama
Dalam kode program untuk program utama berisi pernyataan
untuk menampilkan menu utama, pernyataan untuk memanggil prosedur
penyelesaian metode biseksi, penyelesaian metode regula falsi,
memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk
memanggil prosedur perbandingan utama.
Mulyono (NIM : 0301060025) 26
2. Prosedur-prosedur
a). Prosedur Tunggu
Prosedur tunggu menampilkan kondisi pada saat program
Numerik sedang menyimpan file hasil perhitungan.
b). Prosedur Judul
Prosedur judul menampilkan judul program pada setiap
langkah-langkah program Numerik.
c). Prosedur Bantuan
Prosedur bantuan menampilkan bantuan dari program.
d). Prosedur Bye_bye
Prosedur bye_bye menampilkan kondisi pada saat keluar
program.
e). Prosedur Penyelesaian Metode Biseksi
Prosedur ini berisi perhitungan untuk menghitung persamaan
non-linear menggunakan metode Biseksi.
f). Prosedur Penyelesaian Metode Regula Falsi
Prosedur ini berisi perhitungan untuk menghitung persamaan
non-linear menggunakan metode Regula Falsi.
g). Prosedur Memasukkan Jumlah Persamaan dan Derajat Tertinggi
Prosedur ini berisi perintah untuk memasukkan jumlah
persamaan dan derajat tertinggi dari persamaan non-linear.
Mulyono (NIM : 0301060025) 27
h). Prosedur Tampil Derajat
Prosedur tampil derajat menampilkan jumlah persamaan dan
derajat tertinggi pada setiap langkah-langkah program Numerik.
i). Prosedur Pilihan Input
Prosedur ini berisi pilihan cara memasukkan data.
j). Prosedur Perbandingan Utama
Dalam prosedur perhitungan utama berisi perhitungan untuk
metode Biseksi dan metode Regula Falsi serta perhitungan untuk
mengetahui perbedaan kecepatan antara metode Biseksi dan metode
Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari
banyaknya iterasi.
Kode program secara keseluruhan dapat dilihat pada lampiran 2.
C. Hasil Keluaran
Pada saat pemanggilan pertama program, tampak MENU UTAMA :
Gambar 7. Tampilan Menu Utama
*************************************************
****Program penyelesaian Persamaan Non-Linear****
***Menggunakan Metode Biseksi dan Regula Falsi***
*************************************************
< < < M E N U U T A M A > > >
1. Masuk
2. Bantuan
3. Keluar/Exit
Pilihan anda (1/2/3) = 1
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear

More Related Content

What's hot

Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Fazar Ikhwan Guntara
 
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Saprudin Eskom
 
Soal UKK Pemrograman Desktop SMK kelas 11 semester genap
Soal UKK Pemrograman Desktop SMK kelas 11 semester genapSoal UKK Pemrograman Desktop SMK kelas 11 semester genap
Soal UKK Pemrograman Desktop SMK kelas 11 semester genapSaprudin Eskom
 
Analisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan LabirinAnalisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan LabirinDaniel Sitanggang
 
Latihan soal-visual-basic
Latihan soal-visual-basicLatihan soal-visual-basic
Latihan soal-visual-basiccoepoemanik
 
Pertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur PerulanganPertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur PerulanganAchmad Solichin
 
Soal latihan junior level - soal python
Soal latihan   junior level - soal pythonSoal latihan   junior level - soal python
Soal latihan junior level - soal pythonMuhammad sobri maulana
 
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)candrafery
 
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015Saprudin Eskom
 

What's hot (16)

Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma
 
Rangkuman soal TI SMK
Rangkuman soal TI SMKRangkuman soal TI SMK
Rangkuman soal TI SMK
 
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop Kelas 11 SMK semester ganjil tahun ajaran 2014-2015
 
Soal UKK Pemrograman Desktop SMK kelas 11 semester genap
Soal UKK Pemrograman Desktop SMK kelas 11 semester genapSoal UKK Pemrograman Desktop SMK kelas 11 semester genap
Soal UKK Pemrograman Desktop SMK kelas 11 semester genap
 
06 vb looping
06 vb looping06 vb looping
06 vb looping
 
04 vb intro
04 vb intro04 vb intro
04 vb intro
 
Analisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan LabirinAnalisis Algoritma Terhadap Permainan Labirin
Analisis Algoritma Terhadap Permainan Labirin
 
Latihan soal-visual-basic
Latihan soal-visual-basicLatihan soal-visual-basic
Latihan soal-visual-basic
 
Pertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur PerulanganPertemuan 6 - Struktur Perulangan
Pertemuan 6 - Struktur Perulangan
 
Algoritma matematika
Algoritma matematika Algoritma matematika
Algoritma matematika
 
Soal latihan junior level - soal python
Soal latihan   junior level - soal pythonSoal latihan   junior level - soal python
Soal latihan junior level - soal python
 
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)
1. produktif 4 kelas x tkj&amp;mm (senin, 15 des 2014)
 
Bab ii
Bab iiBab ii
Bab ii
 
207 p05
207 p05207 p05
207 p05
 
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015
Soal UAS Pemrograman Desktop kelas 11 semester genap tahun ajaran 2014-2015
 
Bab 8 rekursif
Bab 8 rekursifBab 8 rekursif
Bab 8 rekursif
 

Similar to Penyelesaian persamaan-non-linear

Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahBraga Rezpect
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual BasicEman Mendrofa
 
MATLAB Dalam Tuntunan Praktis
MATLAB Dalam Tuntunan PraktisMATLAB Dalam Tuntunan Praktis
MATLAB Dalam Tuntunan Praktisstaffpengajar
 
Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Farichah Riha
 
Number Systems in Computer Systems
Number Systems in Computer SystemsNumber Systems in Computer Systems
Number Systems in Computer SystemsS N M P Simamora
 
Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007staffpengajar
 
James philip montolalu 13021106048
James philip montolalu   13021106048James philip montolalu   13021106048
James philip montolalu 13021106048James Montolalu
 
Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1Damun Setiaji
 
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Azka Mutia
 
Modul pascal lengkap
Modul pascal lengkapModul pascal lengkap
Modul pascal lengkapsmk2kuripan
 
Bab 8 struktur rekursif
Bab 8 struktur rekursifBab 8 struktur rekursif
Bab 8 struktur rekursifrisal07
 

Similar to Penyelesaian persamaan-non-linear (20)

Matlab 3
Matlab 3Matlab 3
Matlab 3
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
 
MATLAB Dalam Tuntunan Praktis
MATLAB Dalam Tuntunan PraktisMATLAB Dalam Tuntunan Praktis
MATLAB Dalam Tuntunan Praktis
 
modul algoritma Bab 7 record
modul algoritma Bab 7 recordmodul algoritma Bab 7 record
modul algoritma Bab 7 record
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
Tutorial Java netbeans
Tutorial Java netbeansTutorial Java netbeans
Tutorial Java netbeans
 
Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9 Berpikir Komputasional Kelas 9
Berpikir Komputasional Kelas 9
 
Number Systems in Computer Systems
Number Systems in Computer SystemsNumber Systems in Computer Systems
Number Systems in Computer Systems
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007
 
James philip montolalu 13021106048
James philip montolalu   13021106048James philip montolalu   13021106048
James philip montolalu 13021106048
 
Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1
 
207 p06
207 p06207 p06
207 p06
 
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
 
Program Pascal
Program PascalProgram Pascal
Program Pascal
 
Modul pascal lengkap
Modul pascal lengkapModul pascal lengkap
Modul pascal lengkap
 
Bab 8 struktur rekursif
Bab 8 struktur rekursifBab 8 struktur rekursif
Bab 8 struktur rekursif
 
Soalprogdasx
SoalprogdasxSoalprogdasx
Soalprogdasx
 
Soal audio video
Soal audio videoSoal audio video
Soal audio video
 

More from yeyen

Soal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyakSoal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyakyeyen
 
Assesmen Pembelajaran Matematika
Assesmen Pembelajaran MatematikaAssesmen Pembelajaran Matematika
Assesmen Pembelajaran Matematikayeyen
 
Matematika SD & Pembelajaran I
Matematika SD & Pembelajaran IMatematika SD & Pembelajaran I
Matematika SD & Pembelajaran Iyeyen
 
sambungan Tugas bagian 1
sambungan Tugas bagian 1sambungan Tugas bagian 1
sambungan Tugas bagian 1yeyen
 
Tugas Fuskom
Tugas FuskomTugas Fuskom
Tugas Fuskomyeyen
 
Tugas 3 (yeyen aca 111 0107)
Tugas 3 (yeyen aca 111 0107)Tugas 3 (yeyen aca 111 0107)
Tugas 3 (yeyen aca 111 0107)yeyen
 
Presentasi Integral
Presentasi IntegralPresentasi Integral
Presentasi Integralyeyen
 

More from yeyen (7)

Soal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyakSoal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyak
 
Assesmen Pembelajaran Matematika
Assesmen Pembelajaran MatematikaAssesmen Pembelajaran Matematika
Assesmen Pembelajaran Matematika
 
Matematika SD & Pembelajaran I
Matematika SD & Pembelajaran IMatematika SD & Pembelajaran I
Matematika SD & Pembelajaran I
 
sambungan Tugas bagian 1
sambungan Tugas bagian 1sambungan Tugas bagian 1
sambungan Tugas bagian 1
 
Tugas Fuskom
Tugas FuskomTugas Fuskom
Tugas Fuskom
 
Tugas 3 (yeyen aca 111 0107)
Tugas 3 (yeyen aca 111 0107)Tugas 3 (yeyen aca 111 0107)
Tugas 3 (yeyen aca 111 0107)
 
Presentasi Integral
Presentasi IntegralPresentasi Integral
Presentasi Integral
 

Recently uploaded

Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptx
Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptxSlide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptx
Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptxtressa8
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananriniaandayani
 
Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)BashoriAlwi4
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfssuser29a952
 
Informatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxInformatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxMateriSMPTDarulFalah
 
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
konsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatankonsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatanSuzanDwiPutra
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuKhiyaroh1
 
Materi Kimfar Asam,Basa,Buffer dan Garam
Materi Kimfar Asam,Basa,Buffer dan GaramMateri Kimfar Asam,Basa,Buffer dan Garam
Materi Kimfar Asam,Basa,Buffer dan GaramTitaniaUtami
 
E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)Ammar Ahmad
 
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkung
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkungPenyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkung
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkungSemediGiri2
 
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]Fathan Emran
 
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxMETODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxFidiaHananasyst
 
Obat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikObat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikNegustinNegustin
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfAndiCoc
 
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxPPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxiwidyastama85
 
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...walidumar
 

Recently uploaded (20)

Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptx
Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptxSlide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptx
Slide Kick Off for Public - Google Cloud Arcade Facilitator 2024.pptx
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
 
Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdf
 
Informatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxInformatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptx
 
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 4 KURIKULUM MERDEKA.pdf
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
 
konsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatankonsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatan
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwu
 
Materi Kimfar Asam,Basa,Buffer dan Garam
Materi Kimfar Asam,Basa,Buffer dan GaramMateri Kimfar Asam,Basa,Buffer dan Garam
Materi Kimfar Asam,Basa,Buffer dan Garam
 
E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)
 
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkung
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkungPenyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkung
Penyuluhan_pHIV_AIDS (1).ppt pada tahun 2024 di klungkung
 
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
 
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]
Modul Ajar Matematika Kelas 5 Fase C Kurikulum Merdeka [abdiera.com]
 
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptxMETODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
METODE PENGEMBANGAN MORAL DAN NILAI-NILAI AGAMA.pptx
 
Obat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikObat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitik
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
 
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxPPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
 
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...
Aksi Nyata PMM - Merancang Pembelajaran berdasarkan Perkembangan Peserta Didi...
 

Penyelesaian persamaan-non-linear

  • 1. Mulyono (NIM : 0301060025) ABSTRAK Penelitian ini bertujuan menyusun program komputer untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan metode studi literatur, kemudian diimplementasikan ke dalam program komputer. Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah, 2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. ix
  • 2. Mulyono (NIM : 0301060025) DAFTAR GAMBAR Gambar 1. Gambar grafik 0x4x2 =− …………………………………….. 4 Gambar 2. Penyelesaian Persamaan Non-Linear ……………………………. 10 Gambar 3. Bentuk-bentuk Grafik Persamaan Linear …………………………11 Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear ………………….. 11 Gambar 5. Metode Biseksi …………………………………………………. 12 Gambar 6. Metode Regula Falsi …………………………………………… 13 Gambar 7. Tampilan Menu Utama …………………………………………. 27 Gambar 8. Tampilan Pilihan Jenis Penyelesaian ............................................. 28 Gambar 9. Tampilan Memasukkan Koefisien x dan Nilai Awal x1, x2 ......... 28 Gambar 10. Tampilan Hasil Perhitungan Menggunakan Metode Biseksi ...... 29 Gambar 11. Tampilan Hasil Perhitungan Menggunakan Metode Regula Falsi .................................................................... 29 Gambar 12. Tampilan Perintah Memasukkan Jumlah Persamaan dan Derajat Tertinggi serta Batas Jumlah Iterasi ................................ 30 Gambar 13. Tampilan Pilihan Memasukkan Data ........................................... 30 Gambar 14. Tampilan Program Menentukan Koefisien serta Nilai x1 dan x2 Awal dengan Angka Random …………………. 31 Gambar 15. Tampilan Proses Iterasi Metode Biseksi dan Metode Regula Falsi ……………………………………………. 33 Gambar 16. Tampilan Pertanyaan Tampilkan Hasil Perhitungan ……………. 33 xiii
  • 3. Mulyono (NIM : 0301060025) Gambar 17. Tampilan Koefisien serta Nilai x1 Awal dan x2 Awal Persamaan ke 10 ............................................................ 34 Gambar 18. Hasil Perhitungan berupa Salah-satu akar Penyelesaian ............ 34 Gambar 19. Hasil Perhitungan berupa Salah-satu akar pada Iterasi ke 10 ..... 35 Gambar 20. Tampilan Kesimpulan ................................................................. 35 Gambar 21. Tampilan Pertanyaan Simpan Hasil Perhitungan ………………. 36 Gambar 22. Tampilan Perintah Ketikkan Nama File ………………………… 36 Gambar 23. Tampilan Keterangan Hasil Perhitungan Telah Disimpan …….. 36 Gambar 24. Hasil Perhitungan Program NUMERIK pada File Hasil.txt ……. 37 Gambar 25. Tampilan Pertanyaan Apakah Akan Mengulang ......................... 38 Gambar 26. Tampilan Penjelasan Program Numerik ……………………….. 38 Gambar 27. Tampilan Terakhir Program Numerik ………………………….. 39 xiv
  • 4. Mulyono (NIM : 0301060025) 50 Lampiran 2. Kode Program NUMERIK Program metode_biseksi_dan_metode_regula_falsi; uses crt; procedure tunggu; var i:byte; begin for i:=1 to 80 do begin delay(3000);gotoxy(30,17);textcolor(white+blink); write('Silahkan tunggu ... !!!'); gotoxy(38,20);textcolor(yellow); write('[ ',(i/80)*100:0:0,' % ]'); textcolor(lightblue); gotoxy(i,22);write('Û');sound(i*2); end; nosound; end; procedure judul; begin clrscr;textcolor(yellow); writeln;writeln; writeln(' ********************************************* ******'); writeln(' **** Program penyelesaian Persamaan Non-Linier ****'); writeln(' *** Menggunakan Metode Biseksi dan Regula Falsi ***'); writeln(' ********************************************* ******'); writeln; end; procedure bantuan; var a,b:byte; label terakhir; begin clrscr;textcolor(10); writeln; writeln; writeln(' < < B A N T U A N > > '); writeln; writeln(' Program ini berfungsi untuk menentukan salah satu akar penyelesaian '); writeln(' persamaan Non-Linier dengan menggunakan metode Numerik yaitu '); writeln(' metode Biseksi dan metode Regula Falsi serta mengetahui ketelitian '); writeln(' ke dua metode dengan membandingkan selisih antara rata-rata akar '); writeln(' pendekatan dengan rata-rata akar pada saat iterasi ke 10'); writeln; writeln(' Untuk dapat mengoperasikannya silahkan pada
  • 5. Mulyono (NIM : 0301060025) 51 MENU UTAMA '); writeln(' - ketik 1 untuk Masuk Program '); writeln(' - ketik 2 untuk Bantuan Program '); writeln(' - ketik 3 untuk Keluar Program '); writeln; writeln(' Jika menginginkan hasil perhitungan disimpan di file maka '); writeln(' pilih "Y" pada pertanyaan Simpan hasil perhitungan (Y/T) ? '); writeln(' dan ketikan NAMA FILE nya. '); writeln; writeln(' Jika ingin melakukan perhitungan lagi ketikkan "Y" pada pernyataan '); writeln(' Apakah akan mengulang (Y/T) ? '); repeat for a:=9 to 15 do begin textcolor(a);delay(5000);gotoxy(65,25); write('<< E N T E R >>'); end; until keypressed; readln; end; procedure bye_bye; var a,b,c,x,y:byte; begin clrscr; gotoxy(28,12);writeln(' T E R I M A K A S I H '); gotoxy(28,14);writeln(' Bye ... !!! '); for a:=28 to 56 do begin delay(5000); gotoxy(a,10);textcolor(9+random(6)); delay(500);writeln('#'); gotoxy(56+(28-a),16);textcolor(9+random(6));write('#'); gotoxy(56+(28-a),10); textcolor(9+random(6));delay(500);writeln('#'); gotoxy(a,16);textcolor(9+random(6));write('#'); end; repeat clrscr; x:=random(55); y:=random(25); sound(1000); delay(5000); nosound; textcolor(9+random(6)); gotoxy(x,y);write('Tekan sebarang tombol ... !!!'); gotoxy(1,25); write(' B y : M U L Y O N O '); delay(50000); gotoxy(x,y);write(' '); until keypressed; end;
  • 6. Mulyono (NIM : 0301060025) 52 procedure penyelesaian_metode_biseksi; var a, b, c, n, derajat_tertinggi, tertinggi_bis, huruf, iterasi_bis : byte; x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3, fx3 : real; koef,xpangkat,koef_x_xpangkat: array [1..100] of real; label mengulang_bis; begin mengulang_bis: judul; writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi');writeln; write(' Masukkan pangkat tertinggi = '); readln(tertinggi_bis); derajat_tertinggi:=tertinggi_bis; writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for a:=1 to tertinggi_bis+1 do begin write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a]); huruf := huruf + 1; if koef[1]=0 then begin sound(1000);delay(10000);nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang_bis; end; end; {menentukan nilai awal x1} writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); write(' Masukkan nilai x1 awal ==>> ');readln(x1); nilai_awal_x1 := x1; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x1; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x1; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX}
  • 7. Mulyono (NIM : 0301060025) 53 fx1:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx1:=fx1+koef_x_xpangkat[b]; end; {menentukan nilai awal x2} n:=0; repeat begin n:=n+1; if n=5 then begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; goto mengulang_bis; end else begin write(' Masukkan nilai x2 awal ==>> '); readln(x2); end; nilai_awal_x2:=x2; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x2; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x2; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx2:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx2:=fx2+koef_x_xpangkat[b]; end; end; until (fx1*fx2)<0; readln; judul; {METODE BISEKSI} iterasi_bis:=0; fx3:=0; repeat begin x3:=(x1+x2)/2; {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x3; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x3; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA}
  • 8. Mulyono (NIM : 0301060025) 54 c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx3:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx3:=fx3+koef_x_xpangkat[b]; end; end; if (fx3*fx1)<0 then begin x2:=x3; end else begin x1:=x3; end; iterasi_bis:=iterasi_bis+1; gotoxy(1,8);write(' Hasil Perhitungan Menggunakan Metode Biseksi'); gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15); gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_bis); gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)'); gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15); until abs(fx3)<1e-7; readln; end; procedure penyelesaian_metode_regula_falsi; var a, b, c, n, derajat_tertinggi, tertinggi_reg, huruf, iterasi_reg : byte; x1, nilai_awal_x1, fx1, x2, nilai_awal_x2, fx2, x3, nilai_awal_x3, fx3 : real; koef,xpangkat,koef_x_xpangkat: array [1..100] of real; label mengulang_reg; begin mengulang_reg: judul; writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Regula Falsi');writeln; write(' Masukkan pangkat tertinggi = '); readln(tertinggi_reg); derajat_tertinggi:=tertinggi_reg; writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for a:=1 to tertinggi_reg+1 do begin write(' Nilai ',chr(huruf),' ==>> '); eadln(koef[a]); huruf := huruf + 1; if koef[1]=0 then begin sound(1000); delay(10000); nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang_reg;end; end; {menentukan nilai awal x1}
  • 9. Mulyono (NIM : 0301060025) 55 writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); write(' Masukkan nilai x1 awal ==>> ');readln(x1); nilai_awal_x1 := x1; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x1; for b:=2 to tertinggi_reg do begin xpangkat[b]:=xpangkat[b-1]*x1; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx1:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx1:=fx1+koef_x_xpangkat[b]; end; {menentukan nilai awal x2} n:=0; repeat begin n:=n+1; if n=5 then begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; goto mengulang_reg; end else begin write(' Masukkan nilai x2 awal ==>> '); readln(x2); end; nilai_awal_x2:=x2; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x2; for b:=2 to tertinggi_reg do begin xpangkat[b]:=xpangkat[b-1]*x2; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx2:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx2:=fx2+koef_x_xpangkat[b]; end; end; until (fx1*fx2)<0; readln; judul; {METODE REGULA FALSI} iterasi_reg:=0; fx3:=0; repeat begin x3:=(x2-(fx2/(fx2-fx1))*(x2-x1)); {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x3; for b:=2 to tertinggi_reg do
  • 10. Mulyono (NIM : 0301060025) 56 begin xpangkat[b]:=xpangkat[b-1]*x3; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx3:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx3:=fx3+koef_x_xpangkat[b]; end; end; if (fx3*fx1)<0 then begin x2:=x3; end else begin x1:=x3; end; iterasi_reg:=iterasi_reg+1; gotoxy(1,8);write(' Hasil Perhitungan Menggunakan Metode Regula Falsi'); gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15); gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_reg); gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)'); gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15); until abs(fx3)<1e-7; readln; end; procedure memasukan_jumlah_persamaan_dan_derajat_tertinggi (var jum,pangkat,batas : longint); begin clrscr; judul; write(' Masukkan jumlah persamaan ==>> '); readln(jum); write(' Masukkan derajat tertinggi ==>> '); readln(pangkat); write(' Masukkan batas jumlah Iterasi ==>> '); readln(batas); end; procedure tampil_derajat (var jum,pangkat:longint); begin gotoxy(1,7); writeln(' ',jum,' Persamaan || Derajat ', pangkat); gotoxy(1,7); writeln; end; procedure pilihan_input(var pil_input:char); begin repeat judul; writeln; writeln(' P i l i h a n M a s u k k a n '); writeln; writeln(' 1. Masukkan dari Keyboard'); writeln(' 2. Masukkan berupa angka Random'); writeln; write(' Pilihan ==>> '); readln(pil_input); if (pil_input='1') or (pil_input='2') then begin end else begin gotoxy(18,24);
  • 11. Mulyono (NIM : 0301060025) 57 write(' Pilihan hanya 1 dan 2, Silahkan ulangi !!! '); delay(20000); end; until (pil_input='1') or (pil_input='2')end; procedure perbandingan_utama (var jum,pangkat,batas : longint); var a, b, c {Variabel untuk mengulang}, n {Stop jika tidak menemukan nilai awal x2 }, derajat {Derajat dari persamaan Non-Linier}, huruf {Menampilkan nilai a, b, c, ... } : integer; fx1 {Nilai fungsi untuk awal x1}, fx2 {Nilai fungsi untuk awal x2}, x1, x2 { Nilai awal x1 dan x2}, nilai_awal_x1, nilai_awal_x2 {Nilai awal x1 dan x2 untuk ke 2 metode }, errorbis {Error dari metode Biseksi}, iterasibis {Jumlah iterasi metode Biseksi}, x1bis, x2bis, x3bis {Nilai x1, x2, x3 metode Biseksi}, fx1bis, fx2bis, fx3bis {Nilai fungsi x1, x2, x3 metode Biseksi}, errorreg {Error dari metode Regula Falsi}, iterasireg {Jumlah iterasi metode Regula Falsi}, x1reg, x2reg, x3reg {Nilai x1, x2, x3 metode Regula Falsi}, fx1reg, fx2reg, fx3reg {Nilai fungsi x1, x2, x3 metode Regula Falsi}, akar_iterasi_ke10_yg_dibandingkan_bis, akar_iterasi_ke10_yg_dibandingkan_reg {akar untuk perbandingan}, fx3bissebelum, fx3bisterakhir, fx3regsebelum, fx3regterakhir: array [1..100] of double; koef {Nilai a, b, c, ..., n}, xpangkat {Nilai x^n untuk x1, x2, x3}, koef_x_xpangkat {Nilai x^n dikalikan dengan koefisiennya} : array [1..100, 1..10] of double; fileku {Variabel file text} : text; nama_file {Nama file penyimpanan hasil perhitungan}, besar_kecil{kondisi rata2 error iterasi ke 10} : string; drive {Drive letak file text} : integer; directory {Direktori letak file text} : string[20]; jum_akar_ke10_bis,jum_akar_ke10_reg, jum_akar_bis,jum_akar_reg, rata2_akar_bis_iterasi_ke10,rata2_akar_reg_iterasi_ke10, rata2_akar_bis,rata2_akar_reg, selisih_rata2_bis,selisih_rata2_reg : double; random1,random2,random3 {angka random dari 0 sampai dengan 100} : integer; angka_random_real : real; pil_tampil {pilihan untuk menampilan hasil perhitungan}, pil_simpan {pilihan untuk menyimpan hasil perhitungan}, pil_input {pilihan untuk input data} : char; label 1,2,mengulang; begin derajat := pangkat; pilihan_input(pil_input); for a:=1 to jum do begin mengulang: clrscr;judul;tampil_derajat(jum,pangkat);writeln;
  • 12. Mulyono (NIM : 0301060025) 58 writeln(' Persamaan ke ',a,' dari ',jum,' persamaan'); writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for b:=1 to derajat+1 do begin random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1-random2)/(random3+1); if pil_input = '2' then begin koef[a,b]:=angka_random_real; gotoxy(10,13); writeln(' Nilai ', chr(huruf),' ==>> '); gotoxy(10,13); writeln(' Nilai ', chr(huruf),' ==>> ',koef[a,b]:6:2); end else begin gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> '); gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a,b]); end; huruf := huruf + 1; if koef[a,1]=0 then begin if pil_input = '2' then begin goto mengulang; end else begin sound(1000);delay(10000);nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang; end; end; end; {menentukan nilai awal x1 dan x2} begin writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1- random2)/(random3+1); if pil_input = '2' then begin x1[a]:=angka_random_real; gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>> '); gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>> ',x1[a]:6:2); end else begin gotoxy(10,17); write(' Menentukan nilai x1 awal ==>> '); gotoxy(10,17); write(' Menentukan nilai x1 awal ==>> '); readln(x1[a]);
  • 13. Mulyono (NIM : 0301060025) 59 end; nilai_awal_x1[a] := x1[a]; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x1[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x1[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=pangkat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx1[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx1[a]:=fx1[a]+koef_x_xpangkat[a,b]; end; end; n:=0; repeat begin n:=n+1; if n=5 then begin if pil_input='2' then begin end else begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; end; goto mengulang; end else random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1-random2)/(random3+1); if pil_input = '2' then begin x2[a]:=angka_random_real; gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>> '); gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>> ', x2[a]:6:2); end else begin gotoxy(10,19); write(' Menentukan nilai x2 awal ==>> '); gotoxy(10,19); write(' Menentukan nilai x2 awal ==>> '); readln(x2[a]); end; nilai_awal_x2[a]:=x2[a]; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x2[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x2[a]; end;
  • 14. Mulyono (NIM : 0301060025) 60 {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; koef_x_xpangkat[a,1]:=1; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx2[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx2[a]:=fx2[a]+koef_x_xpangkat[a,b];end; end; until (fx1[a]*fx2[a])<0; end; readln; clrscr;judul;tampil_derajat(jum,pangkat); {perhitungan metode biseksi dan metode regula falsi} for a:=1 to jum do begin {METODE BISEKSI} iterasibis[a]:=0; x1bis[a]:=x1[a]; x2bis[a]:=x2[a]; fx1bis[a]:=fx1[a]; fx2bis[a]:=fx2[a]; fx3bis[a-1]:=0; repeat begin x3bis[a]:=(x1bis[a]+x2bis[a])/2; {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x3bis[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x3bis[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx3bis[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx3bis[a]:=fx3bis[a]+koef_x_xpangkat[a,b]; end; if (fx3bis[a]*fx1bis[a])<0 then begin x2bis[a]:=x3bis[a]; end else begin x1bis[a]:=x3bis[a]; end; fx3bissebelum[a]:=fx3bis[a-1]; fx3bisterakhir[a]:=fx3bis[a]; gotoxy(30,16);textcolor(5);write(' 0.0000001'); gotoxy(30,17);textcolor(lightred); write(abs(fx3bisterakhir[a]-fx3bissebelum[a]):25:22); end; if iterasibis[a] = batas then begin akar_iterasi_ke10_yg_dibandingkan_bis[a] := x3bis[a]; end; errorbis[a]:=(fx3bisterakhir[a]-fx3bissebelum[a]); gotoxy(30,10);textcolor(9+random(6)); write('Silahkan tunggu ... !!!'); gotoxy(30,12);textcolor(9+random(6)); write(' Persamaan Ke ',a); gotoxy(21,14);textcolor(white); write('Iterasi metode Biseksi ke =',
  • 15. Mulyono (NIM : 0301060025) 61 iterasibis[a]:10:0); iterasibis[a]:=iterasibis[a]+1; until abs(fx3bis[a])<1e-7; {METODE REGULA FALSI} iterasireg[a]:=0; x1reg[a]:=x1[a]; x2reg[a]:=x2[a]; fx1reg[a]:=fx1[a]; fx2reg[a]:=fx2[a]; fx3reg[a-1]:=0; repeat begin x3reg[a]:=((x1reg[a]*fx2reg[a])- (x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]); {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x3reg[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x3reg[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx3reg[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx3reg[a]:=fx3reg[a]+koef_x_xpangkat[a,b];end; if (fx3reg[a]*fx1reg[a])<0 then begin x2reg[a]:=x3reg[a]; end else begin x1reg[a]:=x3reg[a]; end; fx3regsebelum[a]:=fx3reg[a-1]; fx3regterakhir[a]:=fx3reg[a]; gotoxy(30,21);textcolor(5);write(' 0.0000001'); gotoxy(30,22);textcolor(lightred); write(abs(fx3regterakhir[a]-fx3regsebelum[a]):25:22); end; {jumlah akar sampai iterasi ke 10} if iterasireg[a] = batas then begin akar_iterasi_ke10_yg_dibandingkan_reg[a] := x3reg[a]; end; gotoxy(30,10);textcolor(9+random(6)); write('Silahkan tunggu ... !!!'); gotoxy(30,12);textcolor(9+random(6)); write(' Persamaan Ke ',a); gotoxy(21,19);textcolor(white); write('Iterasi metode Regula Falsi ke =', iterasireg[a]:10:0); errorreg[a]:=(fx3regterakhir[a]-fx3regsebelum[a]); iterasireg[a]:=iterasireg[a]+1; until abs(fx3reg[a])<1e-7; end; readln; begin clrscr; derajat:=pangkat; repeat judul;tampil_derajat(jum,pangkat);writeln; write(' Tampilkan Hasil perhitungan (Y/T) ? ');
  • 16. Mulyono (NIM : 0301060025) 62 readln(pil_tampil); until (pil_tampil='y') or (pil_tampil='Y') or (pil_tampil='t') or (pil_tampil='T'); if (pil_tampil='y') or (pil_tampil='Y') then begin writeln(' Jumlah Persamaan = ',jum); writeln(' Derajat Tertinggi = ',pangkat); writeln; {tampilkan koefisien setiap persamaan} for a:=1 to jum do begin clrscr;judul;tampil_derajat(jum,pangkat);writeln; writeln(' Persamaan Ke = ',a,' (x1 awal = ', nilai_awal_x1[a]:0:2,' dan x2 awal = ', nilai_awal_x2[a]:0:2,')'); huruf:=97; for b:=1 to derajat+1 do begin writeln(' Nilai ',chr(huruf),' = ', koef[a,b]:6:2); huruf:=huruf+1; end; gotoxy(55,25);write('Tekan tombol ENTER ...!!!'); readln; end; clrscr; {tampilkan akar persamaan dengan î = 1E-7} judul;tampil_derajat(jum,pangkat);writeln; writeln(' Salah satu akar penyelesaiannya'); writeln(' ====================================== ================='); writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(' ====================================== ================='); jum_akar_bis:=0; jum_akar_reg:=0; for a:=1 to jum do begin if (a mod 10)=0 then begin writeln(' | ',a:4,' | ',x3bis[a]:19:15, ' |',x3reg[a]:20:15,' |'); readln; end else begin writeln(' | ',a:4,' | ',x3bis[a]:19:15, ' |',x3reg[a]:20:15,' |'); end; jum_akar_bis:= jum_akar_bis+x3bis[a]; jum_akar_reg:= jum_akar_reg+x3reg[a]; end; rata2_akar_bis:=jum_akar_bis/jum; rata2_akar_reg:=jum_akar_reg/jum; writeln(' ====================================== ================='); writeln(' | Rata2 | ', rata2_akar_bis:19:15, ' |',rata2_akar_reg:20:15,' |'); writeln(' ====================================== ================='); readln; {tampilkan akar persamaan pada saat iterasi ke 10} judul;tampil_derajat(jum,pangkat);writeln; writeln(' Akar penyelesaian pada saat iterasi ke ', batas:0); writeln(' ====================================== =================');
  • 17. Mulyono (NIM : 0301060025) 63 writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(' ====================================== ================='); jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0; for a:=1 to jum do begin if (a mod 10)=0 then begin writeln(' | ',a:4,' | ', akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15, ' |',akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15, ' |'); readln; end else begin writeln(' | ',a:4,' | ', akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15, ' |'); end; jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ ke10_yg_dibandingkan_bis[a]; jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ ke10_yg_dibandingkan_reg[a]; end; rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum; rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum; writeln(' ===================================== =================='); writeln(' | Rata2 | ', rata2_akar_bis_iterasi _ke10:19:15,' |',rata2_akar_reg_iterasi_ke10:20:15, ' |'); writeln(' =================================== ===================='); readln; selisih_rata2_bis:=rata2_akar_bis- rata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bis- rata2_akar_reg_iterasi_ke10; if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then begin besar_kecil:='BESAR' end else begin besar_kecil:='KECIL' end; {menampilkan kesimpulan} judul;tampil_derajat(jum,pangkat);writeln; writeln(' K E S I M P U L A N ');writeln; writeln(' Selisih metode Biseksi = ', abs(selisih_rata2_bis):15:15); writeln(' Selisih metode Regula Falsi = ', abs(selisih_rata2_reg):15:15);writeln; writeln(' Karena selisih rata-rata akar pendekatan dengan rata-rata'); writeln(' akar pada iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil); writeln(' dari selisih rata-rata akar pendekatan dengan rata-rata '); writeln(' akar pada iterasi ke ',batas:0,' metode Regula falsi, maka dapat '); writeln(' disimpulkan bahwa : '); writeln(' Metode Biseksi lebih teliti dari metode Regula Falsi karena'); writeln(' hanya dengan 10 iterasi, akar metode
  • 18. Mulyono (NIM : 0301060025) 64 Biseksi sudah mendekati'); writeln(' akar pendekatannya. Ini ditunjukan dengan selisih untuk metode'); writeln(' Biseksi yang lebih ',besar_kecil,' dari selisih metode '); writeln(' Regula Falsi'); readln; end else clrscr; repeat judul;tampil_derajat(jum,pangkat);writeln; write(' Simpan hasil perhitungan (Y/T) ? '); readln(pil_simpan); until (pil_simpan='y') or (pil_simpan='Y') or (pil_simpan='t') or (pil_simpan='T'); if (pil_simpan='y') or (pil_simpan='Y') then begin {$i-} ChDir('c:numerik');{ Cek Keberadaan Folder c:numerik } if IOResult <> 0 then { Jika tidak ada } begin mkdir('c:numerik'); { Buat Folder c:numerik } end; clrscr; judul;tampil_derajat(jum,pangkat);writeln; writeln(' Hasil perhitungan akan disimpan dalam file text'); write(' Ketikan nama filenya ===>>> '); readln(nama_file); assign(fileku,nama_file + '.txt'); rewrite(fileku); writeln(fileku, '*****************************************************'); writeln(fileku, '** Hasil Program Penyelesaian Persamaan Non-Linier **'); writeln(fileku, '*****************************************************'); writeln(fileku); writeln(fileku, 'Jumlah Persamaan = ', jum); writeln(fileku, 'Pangkat Tertinggi = ', pangkat); writeln(fileku); derajat:=pangkat; write(fileku, '========================================================= =================================================='); writeln(fileku,'========================================= ========================================================== ======='); for a:=1 to jum do begin huruf:=97; write(fileku, 'Persamaan ke ',a:4,' ==>> dengan x1 awal = ',x1[a]:6:2,', x2 awal = ',x2[a]:6:2, ' dan nilai '); for b:=1 to derajat+1 do begin write(fileku,chr(huruf),' = ',koef[a,b]:6:2,', '); huruf:=huruf+1; end; writeln(fileku); end; write(fileku,'==================================================== ======================================================='); writeln(fileku,'================================================== ========================================================'); writeln(fileku);
  • 19. Mulyono (NIM : 0301060025) 65 writeln(fileku,' S A L A H S A T U A K A R P E N Y E L E S A I A N'); writeln(fileku,'================================================== ================================================='); writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(fileku,'================================================== ================================================='); jum_akar_bis:=0; jum_akar_reg:=0; for a:=1 to jum do begin writeln(fileku, '| ',a:4,' | ',x3bis[a]:19:15,' (Iterasi ',iterasibis[a]:7:0,') |',x3reg[a]:25:15,' (Iterasi ',iterasireg[a]:10:0,') |'); jum_akar_bis:= jum_akar_bis+x3bis[a]; jum_akar_reg:= jum_akar_reg+x3reg[a]; end; rata2_akar_bis:=jum_akar_bis/jum; rata2_akar_reg:=jum_akar_reg/jum; writeln(fileku,'================================================== ================================================='); writeln(fileku,'| Rata2 | ', rata2_akar_bis:19:15,' | ', rata2_akar_reg:24:15,' |'); writeln(fileku,'================================================== ===================================='); writeln(fileku); writeln(fileku,' A K A R P E N Y E L E S A I A N (Pada saat iterasi ke ',batas:0,')'); writeln(fileku,'================================================== ===================================='); writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(fileku,'================================================== ===================================='); jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0; for a:=1 to jum do begin writeln(fileku, '| ',a:4,' | ', akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' (Iterasi ',batas:0,') |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,' (Iterasi ',batas:0,') |'); jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi _ke10_yg_dibandingkan_bis[a]; jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi _ke10_yg_dibandingkan_reg[a]; end; rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum; rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum; writeln(fileku,'================================================== ===================================='); writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' | ', rata2_akar_reg_iterasi_ke10:24:15,' |'); writeln(fileku,'================================================== ====================================');
  • 20. Mulyono (NIM : 0301060025) 66 writeln(fileku); selisih_rata2_bis:=rata2_akar_bis- rata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bis- rata2_akar_reg_iterasi_ke10; writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi = ', abs(selisih_rata2_bis):1:10); writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula Falsi = ', abs(selisih_rata2_reg):1:10);writeln(fileku); if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then begin besar_kecil:='BESAR' end else begin besar_kecil:='KECIL' end; writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada '); writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil,' dari selisih rata-rata'); writeln(fileku,' akar pendekatan dengan rata-rata akar pada iterasi ke ',batas:0,' metode Regula falsi'); writeln(fileku,' maka dapat disimpulkan bahwa : '); writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula Falsi karena'); writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati akar pendekatannya'); writeln(fileku,' ini ditunjukan dengan selisih untuk metode Biseksi yang lebih ',besar_kecil,' dari '); writeln(fileku,' selisih metode Regula Falsi'); writeln(fileku);writeln(fileku,' Selesai ...... !!!!'); append(fileku); close(fileku); judul; drive:=0; getdir(drive,directory); writeln; writeln(' Hasil perhitungan sedang disimpan pada file '); writeln; writeln(' ===>>> ',directory,'',nama_file,'.txt'); tunggu; judul; textcolor(lightred); writeln(' Hasil perhitungan sudah disimpan pada file '); writeln; writeln(' ===>>> ',directory,'',nama_file,'.txt'); gotoxy(55,25);textcolor(yellow); write('Tekan tombol ENTER ...!!!'); readln; end else end end; { P R O G R A M U T A M A } var n,jum, pangkat,batas : longint; pil,pil_ulang,pil_penyelesaian :char; label ulang,ulangi,keluar; begin ulangi: n:=0; repeat begin judul; {menu utama}
  • 21. Mulyono (NIM : 0301060025) 67 writeln(' < < < M E N U U T A M A > > >'); writeln; writeln(' 1. Masuk '); writeln(' 2. Bantuan '); writeln(' 3. Keluar '); writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil); end; if (pil='1') or (pil='2') or (pil='3') then begin end else begin gotoxy(15,24);sound(1000);delay(10000);nosound; textcolor(lightred); write('Pilihan hanya 1, 2 dan 3, Silahkan ulangi !! '); textcolor(yellow); readln; end; until (pil='1') or (pil='2') or (pil='3'); if (pil = '2') then begin judul; bantuan; goto ulangi; end else if (pil = '3') then begin goto keluar; end else ulang: judul;writeln(' Silahkan pilih !!!'); writeln; writeln(' 1. Penyelesaian Persamaan Non-Linier Menggunakan Metode Biseksi');writeln; writeln(' 2. Penyelesaian Persamaan Non-Linier Menggunakan Metode Regula Falsi');writeln; writeln(' 3. Penyelesaian Metode Biseksi dan Metode Regula Falsi '); writeln(' untuk mengetahui ketelitiannya');writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil_penyelesaian); if pil_penyelesaian = '1' then penyelesaian_metode_biseksi else if pil_penyelesaian = '2' then penyelesaian_metode_regula_falsi else begin memasukan_jumlah_persamaan_dan_derajat_tertinggi (jum,pangkat,batas); perbandingan_utama(jum,pangkat,batas); writeln; writeln; end; repeat judul; write(' Apakah akan mengulang (Y/T) ? '); readln(pil_ulang); until (pil_ulang='y') or (pil_ulang='Y') or (pil_ulang='t') or (pil_ulang='T'); if (pil_ulang='y') or (pil_ulang='Y') then begin goto ulangi; end else keluar: bye_bye; end. {akhir program utama}
  • 22. Mulyono (NIM : 0301060025) DAFTAR ISI HALAMAN JUDUL ………………………………………………………… i HALAMAN PENGESAHAN ………….……………………………………. ii HALAMAN PERSETUJUAN ………………………………………………. iii SURAT PERNYATAAN …………………………………………………… iv MOTTO ……………………………………………………………………… v PERSEMBAHAN …………………….….………………………………….. vi KATA PENGANTAR ……………………..………………………………… vii ABSTRAK ………………………………..………………………………….. ix DAFTAR ISI ………………………………..………………………………... x DAFTAR GAMBAR ……………………….………………………………...xiii BAB I PENDAHULUAN A. Latar Belakang ………..…………………………………… 1 B. Perumusan Masalah …..…………………………………… 7 C. Pembatasan Masalah ……………………………………….. 7 D. Tujuan Penelitian ………..………………………………… 7 E. Manfaat Penelitian …………………………………………. 8 BAB II LANDASAN TEORI A. Persamaan Non-Linear …………….……………………….. 9 B. Metode Numerik ………………………….………………... 9 x
  • 23. Mulyono (NIM : 0301060025) C. Penyelesaian Persamaan Non-Linear ..................................... 11 1. Metode Biseksi ..………………………………………. 11 2. Metode Regula Falsi …………………………………… 12 D. Bahasa Pemrograman Pascal ………………………………. 14 1. Sejarah Pascal ….…………………………………….. 14 2. Langkah-langkah dalam Pemrograman Komputer …..... 14 3. Struktur Program Pascal ….............................................. 16 4. Pengambilan Keputusan ….………………………….. 17 5. Pengulangan (loop) …………………………………….. 19 6. Keunggulan Bahasa Pascal ….......................................... 20 BAB III METODOLOGI PENELITIAN A. Tempat Penelitian …..……………………………………… 21 B. Alat Penelitian ….………………………………………….. 21 C. Langkah-langkah Penelitian ….……………………………. 21 D. Membandingkan Metode Biseksi dan Metode Regula Falsi …..……………………………………………………. 23 BAB IV HASIL PENELITIAN DAN PEMBAHASAN A. Diagram Alir ………………………………………………. 24 B. Kode Program ..….………………………………………... 25 C. Hasil Keluaran …………………………………………….. 27 D. Perbandingan Metode Biseksi dan Metode Regula Falsi ….. 39 xi
  • 24. Mulyono (NIM : 0301060025) BAB V KESIMPULAN DAN SARAN A. Kesimpulan ………………………………………………… 41 B. Saran ……………………………………………………….. 42 DAFTAR PUSTAKA ……………………………………………………….. 43 LAMPIRAN A. Diagram Alir ………………..……………………………………………. 44 B. Kode Program …………………………………………………..………... 50 xii
  • 25. Mulyono (NIM : 0301060025) KATA PENGANTAR Puji syukur penulis panjatkan kehadirat Allah SWT atas rahmat dan nikmat-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi ini yang berjudul “Penyelesaian Persamaan Non-Linear metode Biseksi dan metode Regula Falsi Menggunakan Cara Komputasi”. Dalam penyusunan skripsi ini, penulis banyak mendapatkan bimbingan dan bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini tidak lupa peneliti menyampaikan terimakasih yang sebesar-besarnya kepada : 1. Dr. H. Djoko Wahyono, S.U. Apt, Rektor Universitas Muhammadiyah Purwokerto. 2. Drs. H. Sutomo, M.Si, Dekan Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Purwokerto 3. Drs. Ahmad, M.Pd, Kaprodi Pendidikan Matematika. 4. Hindayati Mustafidah, S.Si., M.Kom, Dosen Pembimbing I yang telah memberikan motivasi, pengarahan, saran dan koreksi dalam penyusunan skripsi ini. 5. Nila Kurniasih, S.Si, M.Si, Dosen Pembimbing II yang telah memberikan motivasi, pengarahan, saran dan koreksi dalam penyusunan skripsi ini. 6. Semua pihak yang tidak dapat penulis sebutkan satu persatu di sini, yang telah membantu dalam penyelesaian skripsi ini. vii
  • 26. Mulyono (NIM : 0301060025) Semoga semua bantuan yang telah diberikan menjadi amal di sisi Allah SWT. Akhirnya penulis berharap semoga skripsi ini bermanfaat dalam menunjang perkembangan ilmu pengetahuan dan bermanfaat bagi yang membacanya. Purwokerto, Maret 2007 Penulis viii
  • 27. Mulyono (NIM : 0301060025) LEMBAR PENGESAHAN PENYELESAIAN PERSAMAAN NON-LINEAR METODE BISEKSI DAN METODE REGULA FALSI MENGGUNAKAN CARA KOMPUTASI Disusun Oleh : MULYONO 0301060025 Telah disetujui oleh Dosen Pembimbing untuk diajukan dan dipertahankan didepan Panitia Ujian Skripsi Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Purwokerto Pembimbing I Pembimbing II Hindayati Mustafidah, S.Si., M.Kom Nila Kurniasih, S.Si., M.Si NIK. 2160332 NIK. 2160228 ii
  • 28. Mulyono (NIM : 0301060025) MOTTO Sesungguhnya sesudah kesulitan ada kemudahan (QS Al-Insyirah : 6). Ilmu menunjukan kebenaran akal, maka barang siapa yang berakal, niscaya dia berilmu (Sayyidina Ali bin Abi Tholib). Jadilah dirimu sendiri dan banggalah dengan apa yang kamu miliki. v
  • 29. Program metode_biseksi_dan_metode_regula_falsi; uses crt; procedure tunggu; var i:byte; begin for i:=1 to 80 do begin delay(3000);gotoxy(30,17);textcolor(white+blink); write('Silahkan tunggu ... !!!'); gotoxy(38,20);textcolor(yellow); write('[ ',(i/80)*100:0:0,' % ]'); textcolor(lightblue); gotoxy(i,22);write('Û');sound(i*2); end; nosound; end; procedure judul; begin clrscr;textcolor(yellow); writeln;writeln; writeln(' ***************************************************'); writeln(' **** Program penyelesaian Persamaan Non-Linier ****'); writeln(' *** Menggunakan Metode Biseksi dan Regula Falsi ***'); writeln(' ***************************************************'); writeln; end; procedure bantuan; var a,b:byte; label terakhir; begin clrscr;textcolor(10); writeln; writeln; writeln(' < < B A N T U A N > > '); writeln; writeln(' Program ini berfungsi untuk menentukan salah satu akar penyelesaian '); writeln(' persamaan Non-Linier dengan menggunakan metode Numerik yaitu '); writeln(' metode Biseksi dan metode Regula Falsi serta mengetahui ketelitian '); writeln(' ke dua metode dengan membandingkan selisih antara rata-rata akar '); writeln(' pendekatan dengan rata-rata akar pada saat iterasi ke 10'); writeln; writeln(' Untuk dapat mengoperasikannya silahkan pada MENU UTAMA '); writeln(' - ketik 1 untuk Masuk Program '); writeln(' - ketik 2 untuk Bantuan Program '); writeln(' - ketik 3 untuk Keluar Program '); writeln; writeln(' Jika menginginkan hasil perhitungan disimpan di file maka '); writeln(' pilih "Y" pada pertanyaan Simpan hasil perhitungan (Y/T) ? '); writeln(' dan ketikan NAMA FILE nya. '); writeln; writeln(' Jika ingin melakukan perhitungan lagi ketikkan "Y" pada pernyataan '); writeln(' Apakah akan mengulang (Y/T) ? '); repeat for a:=9 to 15 do begin Page 1
  • 30. textcolor(a);delay(5000);gotoxy(65,25);write('<< E N T E R >>'); end; until keypressed; readln; end; procedure bye_bye; var a,b,c,x,y:byte; begin clrscr; gotoxy(28,12);writeln(' T E R I M A K A S I H '); gotoxy(28,14);writeln(' Bye ... !!! '); for a:=28 to 56 do begin delay(5000); gotoxy(a,10);textcolor(9+random(6));delay(500);writeln('#'); gotoxy(56+(28-a),16);textcolor(9+random(6));write('#'); gotoxy(56+(28-a),10);textcolor(9+random(6));delay(500);writeln('#'); gotoxy(a,16);textcolor(9+random(6));write('#'); end; repeat clrscr; x:=random(55); y:=random(25); sound(1000); delay(5000); nosound; textcolor(9+random(6)); gotoxy(x,y);write('Tekan sebarang tombol ... !!!'); gotoxy(1,25); write(' B y : M U L Y O N O '); delay(50000); gotoxy(x,y);write(' '); until keypressed; end; procedure penyelesaian_metode_biseksi; var a,b,c,n,derajat_tertinggi,tertinggi_bis,huruf,iterasi_bis:byte; x1,nilai_awal_x1,fx1,x2,nilai_awal_x2,fx2,x3,nilai_awal_x3,fx3 :real; koef,xpangkat,koef_x_xpangkat: array [1..100] of real; label mengulang_bis; begin mengulang_bis: judul; writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi');writeln; write(' Masukkan pangkat tertinggi = '); readln(tertinggi_bis); derajat_tertinggi:=tertinggi_bis; writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for a:=1 to tertinggi_bis+1 do begin write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a]); huruf := huruf + 1; if koef[1]=0 then begin sound(1000);delay(10000);nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang_bis; end; end; {menentukan nilai awal x1} Page 2
  • 31. writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); write(' Masukkan nilai x1 awal ==>> ');readln(x1); nilai_awal_x1 := x1; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x1; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x1; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx1:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx1:=fx1+koef_x_xpangkat[b]; end; {menentukan nilai awal x2} n:=0; repeat begin n:=n+1; if n=5 then begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; goto mengulang_bis; end else begin write(' Masukkan nilai x2 awal ==>> '); readln(x2); end; nilai_awal_x2:=x2; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x2; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x2; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx2:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx2:=fx2+koef_x_xpangkat[b]; end; end; until (fx1*fx2)<0; readln; judul; Page 3
  • 32. {METODE BISEKSI} iterasi_bis:=0; fx3:=0; repeat begin x3:=(x1+x2)/2; {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x3; for b:=2 to tertinggi_bis do begin xpangkat[b]:=xpangkat[b-1]*x3; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_bis do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx3:=koef[tertinggi_bis+1]; for b:=tertinggi_bis downto 1 do begin fx3:=fx3+koef_x_xpangkat[b]; end; end; if (fx3*fx1)<0 then begin x2:=x3; end else begin x1:=x3; end; iterasi_bis:=iterasi_bis+1; gotoxy(1,8); write(' Hasil Perhitungan Menggunakan Metode Biseksi'); gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15); gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_bis); gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)'); gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15); until abs(fx3)<1e-7; readln; end; procedure penyelesaian_metode_regula_falsi; var a,b,c,n,derajat_tertinggi,tertinggi_reg,huruf,iterasi_reg:byte; x1,nilai_awal_x1,fx1,x2,nilai_awal_x2,fx2,x3,nilai_awal_x3,fx3 :real; koef,xpangkat,koef_x_xpangkat: array [1..100] of real; label mengulang_reg; begin mengulang_reg: judul; writeln(' Penyelesaian Persamaan Non-Linear Menggunakan Metode Regula Falsi');writeln; write(' Masukkan pangkat tertinggi = '); readln(tertinggi_reg); derajat_tertinggi:=tertinggi_reg; writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for a:=1 to tertinggi_reg+1 do begin write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a]); huruf := huruf + 1; if koef[1]=0 then Page 4
  • 33. begin sound(1000);delay(10000);nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang_reg; end; end; {menentukan nilai awal x1} writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); write(' Masukkan nilai x1 awal ==>> ');readln(x1); nilai_awal_x1 := x1; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x1; for b:=2 to tertinggi_reg do begin xpangkat[b]:=xpangkat[b-1]*x1; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx1:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx1:=fx1+koef_x_xpangkat[b]; end; {menentukan nilai awal x2} n:=0; repeat begin n:=n+1; if n=5 then begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; goto mengulang_reg; end else begin write(' Masukkan nilai x2 awal ==>> '); readln(x2); end; nilai_awal_x2:=x2; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x2; for b:=2 to tertinggi_reg do begin xpangkat[b]:=xpangkat[b-1]*x2; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; Page 5
  • 34. end; {NILAI FX} fx2:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx2:=fx2+koef_x_xpangkat[b]; end; end; until (fx1*fx2)<0; readln; judul; {METODE REGULA FALSI} iterasi_reg:=0; fx3:=0; repeat begin x3:=(x2-(fx2/(fx2-fx1))*(x2-x1)); {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[1] := x3; for b:=2 to tertinggi_reg do begin xpangkat[b]:=xpangkat[b-1]*x3; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat_tertinggi; for b:=1 to tertinggi_reg do begin koef_x_xpangkat[b]:=koef[b]*xpangkat[c]; c:=c-1; end; {NILAI FX} fx3:=koef[tertinggi_reg+1]; for b:=tertinggi_reg downto 1 do begin fx3:=fx3+koef_x_xpangkat[b]; end; end; if (fx3*fx1)<0 then begin x2:=x3; end else begin x1:=x3; end; iterasi_reg:=iterasi_reg+1; gotoxy(1,8); write(' Hasil Perhitungan Menggunakan Metode Regula Falsi'); gotoxy(1,10);write(' Salah satu akar pendekatannya adalah ',x3:1:15); gotoxy(1,12);write(' diperoleh pada iterasi ke ',iterasi_reg); gotoxy(1,14);write(' dengan error = ',abs(fx3):25:15,' (î = 1E-7)'); gotoxy(1,16);write(' nilai fungsinya = ',fx3:25:15); until abs(fx3)<1e-7; readln; end; procedure memasukan_jumlah_persamaan_dan_derajat_tertinggi(var jum,pangkat,batas : longint); begin clrscr; judul; write(' Masukkan jumlah persamaan ==>> ');readln(jum); write(' Masukkan derajat tertinggi ==>> ');readln(pangkat); write(' Masukkan batas jumlah Iterasi ==>> ');readln(batas); end; Page 6
  • 35. procedure tampil_derajat (var jum,pangkat:longint); begin gotoxy(1,7); writeln(' ',jum,' Persamaan || Derajat ',pangkat); gotoxy(1,7); writeln; end; procedure pilihan_input(var pil_input:char); begin repeat judul; writeln; writeln(' P i l i h a n M a s u k k a n '); writeln; writeln(' 1. Masukkan dari Keyboard'); writeln(' 2. Masukkan berupa angka Random'); writeln; write(' Pilihan ==>> '); readln(pil_input); if (pil_input='1') or (pil_input='2') then begin end else begin gotoxy(18,24); write(' Pilihan hanya 1 dan 2, Silahkan ulangi !!! '); delay(20000); end; until (pil_input='1') or (pil_input='2') end; procedure perbandingan_utama(var jum,pangkat,batas : longint); var a, b, c {Variabel untuk mengulang}, n {Stop jika tidak menemukan nilai awal x2 }, derajat {Derajat dari persamaan Non-Linier}, huruf {Menampilkan nilai a, b, c, ... } : integer; fx1 {Nilai fungsi untuk awal x1}, fx2 {Nilai fungsi untuk awal x2}, x1, x2 { Nilai awal x1 dan x2}, nilai_awal_x1, nilai_awal_x2 {Nilai awal x1 dan x2 untuk ke 2 metode }, errorbis {Error dari metode Biseksi}, iterasibis {Jumlah iterasi metode Biseksi}, x1bis, x2bis, x3bis {Nilai x1, x2, x3 metode Biseksi}, fx1bis, fx2bis, fx3bis {Nilai fungsi x1, x2, x3 metode Biseksi}, errorreg {Error dari metode Regula Falsi}, iterasireg {Jumlah iterasi metode Regula Falsi}, x1reg, x2reg, x3reg {Nilai x1, x2, x3 metode Regula Falsi}, fx1reg, fx2reg, fx3reg {Nilai fungsi x1, x2, x3 metode Regula Falsi}, akar_iterasi_ke10_yg_dibandingkan_bis, akar_iterasi_ke10_yg_dibandingkan_reg{akar untuk perbandingan}, fx3bissebelum, fx3bisterakhir, fx3regsebelum, fx3regterakhir : array [1..100] of double; koef {Nilai a, b, c, ..., n}, xpangkat {Nilai x^n untuk x1, x2, x3}, koef_x_xpangkat {Nilai x^n dikalikan dengan koefisiennya} : array [1..100, 1..10] of double; fileku {Variabel file text} : text; nama_file {Nama file penyimpanan hasil perhitungan}, besar_kecil{kondisi rata2 error iterasi ke 10} : string; drive {Drive letak file text} : integer; directory {Direktori letak file text} : string[20]; jum_akar_ke10_bis,jum_akar_ke10_reg, jum_akar_bis,jum_akar_reg, rata2_akar_bis_iterasi_ke10,rata2_akar_reg_iterasi_ke10, rata2_akar_bis,rata2_akar_reg, selisih_rata2_bis,selisih_rata2_reg : double; random1,random2,random3 {angka random dari 0 sampai dengan 100} : integer; angka_random_real : real; pil_tampil {pilihan untuk menampilan hasil perhitungan}, Page 7
  • 36. pil_simpan {pilihan untuk menyimpan hasil perhitungan}, pil_input {pilihan untuk input data} : char; label 1,2,mengulang; begin derajat := pangkat; pilihan_input(pil_input); for a:=1 to jum do begin mengulang: clrscr;judul;tampil_derajat(jum,pangkat);writeln; writeln(' Persamaan ke ',a,' dari ',jum,' persamaan'); writeln; huruf := 97; writeln(' Menentukan Koefisien x^1, x^2, x^3, ..., x^n'); {menentukan nilai a, b, c, ..., n} for b:=1 to derajat+1 do begin random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1-random2)/(random3+1); if pil_input = '2' then begin koef[a,b]:=angka_random_real; gotoxy(10,13); writeln(' Nilai ',chr(huruf),' ==>> '); gotoxy(10,13); writeln(' Nilai ',chr(huruf),' ==>> ',koef[a,b]:6:2); end else begin gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> '); gotoxy(10,13); write(' Nilai ',chr(huruf),' ==>> '); readln(koef[a,b]); end; huruf := huruf + 1; if koef[a,1]=0 then begin if pil_input = '2' then begin goto mengulang; end else begin sound(1000);delay(10000);nosound; gotoxy(25,25); textcolor(lightred); write(' a tidak boleh sama dengan nol'); textcolor(yellow); readln; goto mengulang; end; end; end; {menentukan nilai awal x1 dan x2} begin writeln; writeln(' Menentukan 2 Nilai Awal x1 dan x2'); random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1-random2)/(random3+1); if pil_input = '2' then begin x1[a]:=angka_random_real; gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>> '); gotoxy(10,17); writeln(' Menentukan nilai x1 awal ==>> ',x1[a]:6:2); Page 8
  • 37. end else begin gotoxy(10,17); write(' Menentukan nilai x1 awal ==>> '); gotoxy(10,17); write(' Menentukan nilai x1 awal ==>> '); readln(x1[a]); end; nilai_awal_x1[a] := x1[a]; {nilai fungsi untuk x1 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x1[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x1[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=pangkat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx1[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx1[a]:=fx1[a]+koef_x_xpangkat[a,b]; end; end; n:=0; repeat begin n:=n+1; if n=5 then begin if pil_input='2' then begin end else begin gotoxy(25,25);sound(1000);delay(10000);nosound; textcolor(lightred); write('Syarat ==>> f(x1).f(x2) < 0'); textcolor(yellow); readln; end; goto mengulang; end else random1:=random(100); random2:=random(100); random3:=random(100); angka_random_real:=(random1-random2)/(random3+1); if pil_input = '2' then begin x2[a]:=angka_random_real; gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>> '); gotoxy(10,19); writeln(' Menentukan nilai x2 awal ==>> ',x2[a]:6:2); end else begin gotoxy(10,19); write(' Menentukan nilai x2 awal ==>> '); gotoxy(10,19); write(' Menentukan nilai x2 awal ==>> '); readln(x2[a]); Page 9
  • 38. end; nilai_awal_x2[a]:=x2[a]; {nilai fungsi untuk x2 awal} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x2[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x2[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; koef_x_xpangkat[a,1]:=1; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx2[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx2[a]:=fx2[a]+koef_x_xpangkat[a,b]; end; end; until (fx1[a]*fx2[a])<0; end; readln; clrscr;judul;tampil_derajat(jum,pangkat); {perhitungan metode biseksi dan metode regula falsi} for a:=1 to jum do begin {METODE BISEKSI} iterasibis[a]:=0; x1bis[a]:=x1[a]; x2bis[a]:=x2[a]; fx1bis[a]:=fx1[a]; fx2bis[a]:=fx2[a]; fx3bis[a-1]:=0; repeat begin x3bis[a]:=(x1bis[a]+x2bis[a])/2; {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x3bis[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x3bis[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx3bis[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx3bis[a]:=fx3bis[a]+koef_x_xpangkat[a,b]; end; if (fx3bis[a]*fx1bis[a])<0 then Page 10
  • 39. begin x2bis[a]:=x3bis[a]; end else begin x1bis[a]:=x3bis[a]; end; fx3bissebelum[a]:=fx3bis[a-1]; fx3bisterakhir[a]:=fx3bis[a]; gotoxy(21,16);textcolor(5);write(' 0.0000001'); gotoxy(21,17);textcolor(lightred);write(abs(fx3bisterakhir[a]-fx3bissebelum[a]):25:22); end; if iterasibis[a] = batas then begin akar_iterasi_ke10_yg_dibandingkan_bis[a] := x3bis[a]; end; errorbis[a]:=(fx3bisterakhir[a]-fx3bissebelum[a]); gotoxy(21,10);textcolor(9+random(6));write('Silahkan tunggu ... !!!'); gotoxy(21,12);textcolor(9+random(6));write(' Persamaan Ke ',a); gotoxy(12,14);textcolor(white);write('Iterasi metode Biseksi ke =',iterasibis[a]:10:0); iterasibis[a]:=iterasibis[a]+1; until abs(fx3bis[a])<1e-7; {METODE REGULA FALSI} iterasireg[a]:=0; x1reg[a]:=x1[a]; x2reg[a]:=x2[a]; fx1reg[a]:=fx1[a]; fx2reg[a]:=fx2[a]; fx3reg[a-1]:=0; repeat begin x3reg[a]:=((x1reg[a]*fx2reg[a])-(x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]); {nilai fungsi untuk x3} {X PANGKAT 1, 2, 3, 4, .... n} xpangkat[a,1] := x3reg[a]; for c:=2 to derajat do begin xpangkat[a,c]:=xpangkat[a,c-1]*x3reg[a]; end; {X PANGKAT 1, 2, 3, 4, .... n dikalikan KOEFISIENNYA} c:=derajat; for b:=1 to derajat do begin koef_x_xpangkat[a,b]:=koef[a,b]*xpangkat[a,c]; c:=c-1; end; {NILAI FX} fx3reg[a]:=koef[a,derajat+1]; for b:=derajat downto 1 do begin fx3reg[a]:=fx3reg[a]+koef_x_xpangkat[a,b]; end; if (fx3reg[a]*fx1reg[a])<0 then begin x2reg[a]:=x3reg[a]; end else begin x1reg[a]:=x3reg[a]; end; fx3regsebelum[a]:=fx3reg[a-1]; fx3regterakhir[a]:=fx3reg[a]; gotoxy(21,21);textcolor(5);write(' 0.0000001'); Page 11
  • 40. gotoxy(21,22);textcolor(lightred);write(abs(fx3regterakhir[a]-fx3regsebelum[a]):25:22); end; {jumlah akar sampai iterasi ke 10} if iterasireg[a] = batas then begin akar_iterasi_ke10_yg_dibandingkan_reg[a] := x3reg[a]; end; gotoxy(21,10);textcolor(9+random(6));write('Silahkan tunggu ... !!!'); gotoxy(21,12);textcolor(9+random(6));write(' Persamaan Ke ',a); gotoxy(12,19);textcolor(white);write('Iterasi metode Regula Falsi ke =',iterasireg[a]:10:0); errorreg[a]:=(fx3regterakhir[a]-fx3regsebelum[a]); iterasireg[a]:=iterasireg[a]+1; until abs(fx3reg[a])<1e-7; end; readln; begin clrscr; derajat:=pangkat; repeat judul;tampil_derajat(jum,pangkat);writeln; write(' Tampilkan Hasil perhitungan (Y/T) ? '); readln(pil_tampil); until (pil_tampil='y') or (pil_tampil='Y') or (pil_tampil='t') or (pil_tampil='T'); if (pil_tampil='y') or (pil_tampil='Y') then begin writeln(' Jumlah Persamaan = ',jum); writeln(' Derajat Tertinggi = ',pangkat); writeln; {tampilkan koefisien setiap persamaan} for a:=1 to jum do begin clrscr;judul;tampil_derajat(jum,pangkat);writeln; writeln(' Persamaan Ke = ',a,' (x1 awal = ',nilai_awal_x1[a]:0:2,' dan x2 awal = ',nilai_awal_x2[a]:0:2,')'); huruf:=97; for b:=1 to derajat+1 do begin writeln(' Nilai ',chr(huruf),' = ',koef[a,b]:6:2); huruf:=huruf+1; end; gotoxy(55,25);write('Tekan tombol ENTER ...!!!'); readln; end; clrscr; {tampilkan akar persamaan dengan î = 1E-7} judul;tampil_derajat(jum,pangkat);writeln; writeln(' Salah satu akar penyelesaiannya'); writeln(' ======================================================='); writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(' ======================================================='); jum_akar_bis:=0; jum_akar_reg:=0; for a:=1 to jum do begin if (a mod 10)=0 then begin writeln(' | ',a:4,' | ',x3bis[a]:19:15,' |',x3reg[a]:20:15,' |'); readln; end else begin writeln(' | ',a:4,' | ',x3bis[a]:19:15,' |',x3reg[a]:20:15,' |'); end; jum_akar_bis:= jum_akar_bis+x3bis[a]; jum_akar_reg:= jum_akar_reg+x3reg[a]; Page 12
  • 41. end; rata2_akar_bis:=jum_akar_bis/jum; rata2_akar_reg:=jum_akar_reg/jum; writeln(' ======================================================='); writeln(' | Rata2 | ', rata2_akar_bis:19:15,' |', rata2_akar_reg:20:15,' |'); writeln(' ======================================================='); readln; {tampilkan akar persamaan pada saat iterasi ke 10} judul;tampil_derajat(jum,pangkat);writeln; writeln(' Akar penyelesaian pada saat iterasi ke ',batas:0); writeln(' ======================================================='); writeln(' | Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(' ======================================================='); jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0; for a:=1 to jum do begin if (a mod 10)=0 then begin writeln(' | ',a:4,' | ',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,' |'); readln; end else begin writeln(' | ',a:4,' | ',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:20:15,' |'); end; jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ke10_yg_dibandingkan_bis[a]; jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ke10_yg_dibandingkan_reg[a]; end; rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum; rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum; writeln(' ======================================================='); writeln(' | Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' |', rata2_akar_reg_iterasi_ke10:20:15,' |'); writeln(' ======================================================='); readln; selisih_rata2_bis:=rata2_akar_bis-rata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bis-rata2_akar_reg_iterasi_ke10; if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then begin besar_kecil:='BESAR' end else begin besar_kecil:='KECIL' end; {menampilkan kesimpulan} judul;tampil_derajat(jum,pangkat);writeln; writeln(' K E S I M P U L A N ');writeln; writeln(' Selisih metode Biseksi = ',abs(selisih_rata2_bis):15:15); writeln(' Selisih metode Regula Falsi = ',abs(selisih_rata2_reg):15:15);writeln; writeln(' Karena selisih rata-rata akar pendekatan dengan rata-rata'); writeln(' akar pada iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil); writeln(' dari selisih rata-rata akar pendekatan dengan rata-rata '); writeln(' akar pada iterasi ke ',batas:0,' metode Regula falsi, maka dapat '); writeln(' disimpulkan bahwa : '); writeln(' Metode Biseksi lebih teliti dari metode Regula Falsi karena'); writeln(' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati'); writeln(' akar pendekatannya. Ini ditunjukan dengan selisih untuk metode'); writeln(' Biseksi yang lebih ',besar_kecil,' dari selisih metode '); Page 13
  • 42. writeln(' Regula Falsi'); readln; end else clrscr; repeat judul;tampil_derajat(jum,pangkat);writeln; write(' Simpan hasil perhitungan (Y/T) ? '); readln(pil_simpan); until (pil_simpan='y') or (pil_simpan='Y') or (pil_simpan='t') or (pil_simpan='T'); if (pil_simpan='y') or (pil_simpan='Y') then begin {$i-} ChDir('c:numerik'); { Cek Keberadaan Folder c:numerik } if IOResult <> 0 then { Jika tidak ada } begin mkdir('c:numerik'); { Buat Folder c:numerik } end; clrscr; judul;tampil_derajat(jum,pangkat);writeln; writeln(' Hasil perhitungan akan disimpan dalam file text'); write(' Ketikan nama filenya ===>>> '); readln(nama_file); assign(fileku,nama_file + '.txt'); rewrite(fileku); writeln(fileku, '*****************************************************'); writeln(fileku, '** Hasil Program Penyelesaian Persamaan Non-Linier **'); writeln(fileku, '*****************************************************'); writeln(fileku); writeln(fileku, 'Jumlah Persamaan = ', jum); writeln(fileku, 'Pangkat Tertinggi = ', pangkat); writeln(fileku); derajat:=pangkat; write(fileku, '========================================================================================= =================='); writeln(fileku,'========================================================================== ================================'); for a:=1 to jum do begin huruf:=97; write(fileku, 'Persamaan ke ',a:4,' ==>> dengan x1 awal = ',x1[a]:6:2,', x2 awal = ',x2[a]:6:2, ' dan nilai '); for b:=1 to derajat+1 do begin write(fileku,chr(huruf),' = ',koef[a,b]:6:2,', '); huruf:=huruf+1; end; writeln(fileku); end; write(fileku,'============================================================================ ==============================='); writeln(fileku,'========================================================================== ================================'); writeln(fileku); writeln(fileku,' S A L A H S A T U A K A R P E N Y E L E S A I A N'); writeln(fileku,'========================================================================== ========================='); writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(fileku,'========================================================================== ========================='); jum_akar_bis:=0; jum_akar_reg:=0; Page 14
  • 43. for a:=1 to jum do begin writeln(fileku, '| ',a:4,' | ',x3bis[a]:19:15,' (Iterasi ',iterasibis[a]:7:0,') |',x3reg[a]:25:15,' (Iterasi ',iterasireg[a]:10:0,') |'); jum_akar_bis:= jum_akar_bis+x3bis[a]; jum_akar_reg:= jum_akar_reg+x3reg[a]; end; rata2_akar_bis:=jum_akar_bis/jum; rata2_akar_reg:=jum_akar_reg/jum; writeln(fileku,'========================================================================== ========================='); writeln(fileku,'| Rata2 | ', rata2_akar_bis:19:15,' | ', rata2_akar_reg:24:15,' |'); writeln(fileku,'========================================================================== ============'); writeln(fileku); writeln(fileku,' A K A R P E N Y E L E S A I A N (Pada saat iterasi ke ',batas:0,')'); writeln(fileku,'========================================================================== ============'); writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(fileku,'========================================================================== ============'); jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0; for a:=1 to jum do begin writeln(fileku, '| ',a:4,' | ',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' (Iterasi ',batas:0,') |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,' (Iterasi ',batas:0,') |'); jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ke10_yg_dibandingkan_bis[a]; jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ke10_yg_dibandingkan_reg[a]; end; rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum; rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum; writeln(fileku,'========================================================================== ============'); writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' | ', rata2_akar_reg_iterasi_ke10:24:15,' |'); writeln(fileku,'========================================================================== ============'); writeln(fileku); selisih_rata2_bis:=rata2_akar_bis-rata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bis-rata2_akar_reg_iterasi_ke10; writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi = ', abs(selisih_rata2_bis):1:10); writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula Falsi = ', abs(selisih_rata2_reg):1:10); writeln(fileku); Page 15
  • 44. if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then begin besar_kecil:='BESAR' end else begin besar_kecil:='KECIL' end; writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada '); writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil,' dari selisih rata-rata'); writeln(fileku,' akar pendekatan dengan rata-rata akar pada iterasi ke ',batas:0,' metode Regula falsi'); writeln(fileku,' maka dapat disimpulkan bahwa : '); writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula Falsi karena'); writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati akar pendekatannya'); writeln(fileku,' ini ditunjukan dengan selisih untuk metode Biseksi yang lebih ',besar_kecil,' dari '); writeln(fileku,' selisih metode Regula Falsi'); writeln(fileku); writeln(fileku,' Selesai ...... !!!!'); append(fileku); close(fileku); judul; drive:=0; getdir(drive,directory); writeln; writeln(' Hasil perhitungan sedang disimpan pada file '); writeln; writeln(' ===>>> ',directory,'',nama_file,'.txt'); tunggu; judul; textcolor(lightred); writeln(' Hasil perhitungan sudah disimpan pada file '); writeln; writeln(' ===>>> ',directory,'',nama_file,'.txt'); gotoxy(55,25);textcolor(yellow);write('Tekan tombol ENTER ...!!!'); readln; end else end end; { P R O G R A M U T A M A } var n,jum, pangkat,batas : longint; pil,pil_ulang,pil_penyelesaian :char; label ulang,ulangi,keluar; begin ulangi: n:=0; repeat begin judul; {menu utama} writeln(' < < < M E N U U T A M A > > >'); writeln; writeln(' 1. Masuk '); writeln(' 2. Bantuan '); writeln(' 3. Keluar '); writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil); end; if (pil='1') or (pil='2') or (pil='3') then begin end else begin gotoxy(15,24);sound(1000);delay(10000);nosound; textcolor(lightred); Page 16
  • 45. write(' Pilihan hanya 1, 2 dan 3, Silahkan ulangi !!! '); textcolor(yellow); readln; end; until (pil='1') or (pil='2') or (pil='3'); if (pil = '2') then begin judul; bantuan; goto ulangi; end else if (pil = '3') then begin goto keluar; end else ulang: judul; writeln(' Silahkan pilih !!!'); writeln; writeln(' 1. Penyelesaian Persamaan Non-Linier Menggunakan Metode Biseksi');writeln; writeln(' 2. Penyelesaian Persamaan Non-Linier Menggunakan Metode Regula Falsi');writeln; writeln(' 3. Penyelesaian Metode Biseksi dan Metode Regula Falsi '); writeln(' untuk mengetahui perbedaan kecepatannya');writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil_penyelesaian); if pil_penyelesaian = '1' then penyelesaian_metode_biseksi else if pil_penyelesaian = '2' then penyelesaian_metode_regula_falsi else begin memasukan_jumlah_persamaan_dan_derajat_tertinggi(jum,pangkat,batas); perbandingan_utama(jum,pangkat,batas); writeln; writeln; end; repeat judul; write(' Apakah akan mengulang (Y/T) ? '); readln(pil_ulang); until (pil_ulang='y') or (pil_ulang='Y') or (pil_ulang='t') or (pil_ulang='T'); if (pil_ulang='y') or (pil_ulang='Y') then begin goto ulangi; end else keluar: bye_bye; end. {akhir program utama} Page 17
  • 46. Mulyono (NIM : 0301060025) PERSEMBAHAN Kupersembahkan karya ini untuk : Kedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberikuKedua orang tuaku tercinta, yang selalu memberiku motivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkaryamotivasi dan dukungan untuk belajar dan berkarya AdikAdikAdikAdik----adikku yang baik,adikku yang baik,adikku yang baik,adikku yang baik, vi
  • 47. Mulyono (NIM : 0301060025) PENYELESAIAN PERSAMAAN NON-LINEAR METODE BISEKSI DAN METODE REGULA FALSI MENGGUNAKAN CARA KOMPUTASI Oleh : MULYONO 0301060025 ABSTRAK Penelitian ini bertujuan menyusun program komputer untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan metode studi literatur, kemudian diimplementasikan ke dalam program komputer. Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah, 2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Pembimbing I Pembimbing II Hindayati Mustafidah, S.Si., M.Kom Nila Kurniasih, S.Si., M.Si NIK. 2160332 NIK. 2160228 Mengetahui, Dekan FKIP Drs. H. Sutomo, M. Si NIP. 131602699
  • 48. Mulyono (NIM : 0301060025) BAB I PENDAHULUAN A. Latar Belakang Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil, Teknik Mesin, Elektro dan sebagainya. Seringkali model matematika tersebut muncul dalam bentuk yang tidak ideal atau sulit untuk dikerjakan secara analitik untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku atau lazim digunakan. Sebagai ilustrasi, diberikan beberapa contoh berikut ini : 1. Penyelesaian akar-akar persamaan polinom : 23,4x7 – 1,25x6 + 120x4 + 15x3 - 120x2 - x + 100 = 0 2. Pencarian harga x yang memenuhi persamaan: 65x17 )x2x120( cos x 1 e8,27 2 1x5 − + =− − 3. Penyelesaian sistem persamaaan linear : 1,2a - 3b - 12c + 12d + 4,8e – 5,5f + 100g = 18 0,9a + 3b - c + 16d + 8e - 5f - 10g = 17 4,6a + 3b - 6c - 2d + 4e + 6,5f - 13g = 19 3,7a - 3b + 8c - 7d + 14e + 8,4f + 16g = 6 1
  • 49. Mulyono (NIM : 0301060025) 2 2,2a + 3b + 17c + 6d + 12e – 7,5f + 18g = 9 5,9a + 3b + 11c + 9d - 5e - 25f - 10g = 0 1,6a + 3b + 1,8c + 12d -7e +2,5f + g =-5 (Susy, 2006 : 1-2) Setelah melihat beberapa contoh ilustrasi di atas, kemungkinan besar cara analitik tidak dapat digunakan. Untuk polinom berderajat 2, masih bisa dicari akarnya menggunakan rumus abc yang sudah terkenal, yaitu : a2 ac4bb x 2 2,1 −±− = Namun, untuk polinom yang berderajat lebih besar dari 2, tidak ada rumus aljabar untuk menghitung akar polinom tersebut. Alternatifnya adalah dengan memanipulasi polinom, misalnya dengan pemfaktoran atau menguraikan polinom tersebut menjadi perkalian beberapa suku. Semakin tinggi derajat polinom, jelas semakin sukar memfaktorkannya. Begitu juga untuk menyelesaian sistem persamaan linear. Apabila sistem persamaannya hanya berupa dua atau tiga garis lurus dengan dua atau tiga peubah, masih dapat ditemukan solusinya (dalam hal ini titik potong kedua garis) dengan menggunakan rumus titik potong dua buah garis. Titik potong tersebut juga dapat ditemukan dengan menggambar kedua garis pada kertas grafik. Tetapi untuk sistem dengan jumlah persamaan dan jumlah peubah lebih besar dari tiga, tidak ada rumus yang dapat dipakai untuk memecahkannya. Contoh-contoh ilustrasi di atas memperlihatkan bahwa ada beberapa persoalan matematika yang tidak dapat diselesaikan dengan metode analitik.
  • 50. Mulyono (NIM : 0301060025) 3 Akan tetapi metode analitik unggul untuk sejumlah persoalan yang memiliki tafsiran geometri sederhana. Misalnya menentukan akar penyelesaian dari 04x4x2 =++ menggunakan rumus abc. Padahal persoalan yang muncul dalam kehidupan sehari-hari tidak selalu dalam bentuk sederhana tetapi sangat kompleks serta melibatkan bentuk dan proses yang rumit. Akibatnya nilai praktis penyelesaian metode analitik menjadi terbatas. Bila metode analitik tidak dapat lagi digunakan, maka salah satu solusi yang dapat digunakan adalah dengan metode Numerik. Metode Numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematika sehingga dapat dipecahkan dengan operasi perhitungan atau aritmatika biasa (tambah, kurang, kali, dan bagi) (Susy, 2006 : 3-5). Penyelesaian secara numerik umumnya melibatkan proses iterasi, perhitungan berulang dari data numerik yang ada. Jika proses iterasi tersebut dilakukan secara manual, akan membutuhkan waktu yang relatif lama dan kemungkinan timbulnya nilai kesalahan (error) akibat manusia itu sendiri juga relatif besar. Misalnya untuk menyelesaikan persoalan persamaan non-linear 24x4x22x9x2x 2345 =++−− , jika diselesaikan menggunakan cara manual menggunakan Metode Biseksi diperlukan beberapa iterasi. Untuk penyelesaian sampai tujuh angka di belakang koma dapat terjadi iterasi sampai puluhan kali. Ini tentu membutuhkan waktu yang relatif lama. Pada kenyataannya sering terjadi proses iterasi sampai ratusan kali, pada keadaan demikian ini komputer sangat dibutuhkan untuk mengurangi waktu penyelesaian (Munif, 1995 : 3). Selain mempercepat perhitungan numerik,
  • 51. Mulyono (NIM : 0301060025) 4 dengan komputer dapat dicoba berbagai kemungkinan solusi yang terjadi akibat perubahan beberapa parameter tanpa menyita waktu dan pikiran. Solusi yang diperoleh juga dapat ditingkatkan ketelitiannya dengan mengubah-ubah nilai parameter (Susy, 2006 : 9). Persamaan linear jika digambarkan pada sumbu kartesius berupa garis lurus. Sedangkan untuk persamaan non-linear jika digambarkan pada sumbu kartesius berupa kurva (garis lengkung). Persamaan yang termasuk persamaan non-linear adalah persamaan polinomial, persamaan eksponensial, persamaan logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7). Sebagai contoh misalnya terdapat persamaan : 0x4x2 =− dengan daerah asal {x | -2 ≤ x ≤ 6, x ∈ R}. Persamaan tersebut jika digambarkan pada sumbu kartesius : Gambar 1. Gambar grafik 0x4x2 =− -2 -1 0 1 2 3 4 5 6 -4 -2 0 2 4 6 8 10 12
  • 52. Mulyono (NIM : 0301060025) 5 Dari gambar di atas terlihat jelas bahwa persamaan 0x4x2 =− jika digambarkan pada sumbu kartesius berupa kurva. Jika dicari nilai x yang memenuhi persamaan biasanya digunakan rumus abc, maka diperoleh x1 = 0 dan x2 = 4. Nilai-nilai x yang memenuhi persamaan ini pada gambar terlihat jelas yaitu titik potong garis dengan sumbu x. Akan tetapi jika diilustrasikan untuk persamaan non-linear : 23,4x7 – 1,25x6 + 120x4 + 15x3 - 120x2 - x + 100 = 0 maka rumus abc sudah tidak berlaku lagi, karena persamaan tersebut mempunyai pangkat yang lebih besar dari 2. Metode analitik tidak berlaku lagi karena terlalu memakan banyak waktu, tenaga dan pikiran. Jalan yang paling efektif dan efisien adalah dengan mengggunakan metode Numerik, karena hanya dengan beberapa langkah saja sudah bisa didapatkan apa yang diinginkan. Penyelesaian yang digunakan dalam metode Numerik adalah penyelesaian pendekatan, oleh karena itu biasanya timbul kesalahan (error). Pada penyelesaiannya diusahakan untuk mendapatkan error yang sekecil mungkin. Langkah pertama yang dilakukan dalam penyelesaian persamaan non-linear dengan menggunakan metode Biseksi dan metode Regula Falsi adalah menetapkan nilai sebarang a sebagai batas atas dan nilai sebarang b sebagai batas bawah kemudian ditentukan nilai fungsi f(x) untuk x = a dan x = b. Selanjutnya adalah memeriksa apakah f(a).f(b) < 0, apabila terpenuhi syarat tersebut berarti akar fungsi terdapat di antara a dan b. Jika tidak terpenuhi maka kembali harus menetapkan nilai sebarang a dan b sedemikian rupa sehingga ketentuan perkalian terpenuhi (Wibowo, 2007 : 1). Jika
  • 53. Mulyono (NIM : 0301060025) 6 ketentuan perkalian terpenuhi maka selanjutnya adalah menentukan titik c (titik di antara a dan b). Untuk metode Biseksi menggunakan rumus ( ) 2 ba c + = sedangkan untuk metode Regula Falsi menggunakan rumus )ab( )a(f)b(f )b(f bc − − −= . Langkah selanjutnya adalah mencari nilai c yang lain sehingga didapat error yang kecil atau sama dengan nol. Selain sederhana, metode Biseksi dan metode Regula Falsi mempunyai beberapa kelebihan yaitu proses iterasi lebih cepat, mudah untuk dibuat program dan tingkat kesalahan kecil. Untuk metode yang menghasilkan error kecil maka metode tersebut lebih teliti dibanding dengan metode lain. Dalam metode Numerik ada beberapa metode yang dapat digunakan untuk menyelesaikan persamaan non-linear, diantaranya metode Tabulasi, metode Biseksi, metode Regula Falsi, metode Iterasi bentuk x = g(x), metode Newton Rapson, metode Faktorisasi (P3, P4, P5), metode Bairstow dan metode Quotient-Difference (Q-D) (Munif, 1995 : 8). Berdasarkan uraian di atas, tujuan utama penelitian ini adalah mempelajari penyelesaian persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi Menggunakan Cara Komputasi serta mengetahui perbedaan kecepatannya dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
  • 54. Mulyono (NIM : 0301060025) 7 B. Perumusan Masalah Berdasarkan latar belakang tersebut di atas, maka permasalahan dalam penelitian ini adalah : 1. Bagaimana penyelesaian persamaan non-linear menggunakan metode Biseksi dengan program komputer. 2. Bagaimana penyelesaian persamaan non-linear menggunakan metode Regula Falsi dengan program komputer 3. Bagaimana perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. C. Pembatasan Masalah Batasan masalah dalam penelitian ini adalah persamaan non-linear dalam bentuk polinomial satu variabel. D. Tujuan Penelitian Dengan adanya permasalahan yang muncul, maka tujuan dari penelitian ini adalah : 1. Membuat program komputer untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi. 2. Membuat program komputer untuk menyelesaikan persamaan non-linear menggunakan metode Regula Falsi.
  • 55. Mulyono (NIM : 0301060025) 8 3. Mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. E. Manfaat Penelitian Ada beberapa manfaat yang diharapkan dari penelitian ini, diantaranya adalah : 1. Mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. 2. Memberi masukkan bagi peneliti yang ingin mempelajari lebih jauh tentang metode Numerik.
  • 56. Mulyono (NIM : 0301060025) BAB II LANDASAN TEORI A. Persamaan Non-Linear Persamaan merupakan kalimat terbuka yang menyatakan hubungan “sama dengan” (ditulis “=”) (Alamsyah, 1994 : 61). Persamaan Non-Linear adalah persamaan yang jika digambarkan dalam bidang kartesius berbentuk garis tidak lurus (berbentuk kurva). Persamaan yang termasuk persamaan non-linear adalah persamaan polinomial, persamaan eksponensial, persamaan logaritmik, persamaan sinusoida, dan sebagainya (Munif, 1995 : 7). B. Metode Numerik Tidak semua permasalahan matematis atau perhitungan dapat diselesaikan dengan mudah. Bahkan dalam prinsip matematik, dalam memandang permasalahan yang terlebih dahulu diperhatikan apakah permasalahan tersebut mempunyai penyelesaian atau tidak. Hal ini menjelaskan bahwa tidak semua permasalahan dapat diselesaikan dengan menggunakan perhitungan biasa. Sebagai ilustrasi untuk persamaan non-linear berderajat lebih dari dua dapat dikatakan mempunyai penyelesaian yang tidak mudah bahkan dan tidak mungkin diselesaikan secara analitik. Tetapi bukan berarti persamaan tersebut tidak mempunyai penyelesaian, hanya saja menyelesaikan persamaan semacam itu sangat sulit dan kalaupun bisa memerlukan pengetahuan 9
  • 57. Mulyono (NIM : 0301060025) 10 matematis yang tinggi dan waktu yang cukup lama. Dengan dasar inilah dapat dikatakan bahwa diperlukan suatu metode tertentu yang dapat digunakan untuk menghitung persamaan tersebut. Meskipun metode tersebut tidak dapat menghasilkan nilai yang exact (tepat), setidak-tidaknya sudah mendekati nilai yang diharapkan. (Amang, 2006 : 1) Penyelesaian persamaan non-linear adalah penentuan akar-akar persamaan non-linear. Dimana akar sebuah persamaan f(x) = 0 adalah nilai- nilai x yang menyebabkan nilai f(x) sama dengan nol. Dengan kata lain akar persamaan f(x) adalah titik potong antara kurva f(x) dengan garis y = 0. Gambar 2. Penyelesaian Persamaan Non-Linear (Amang, 2006 : 10) -2 -1 0 1 2 3 4 5 6 -4 -2 0 2 4 6 8 10 12 y = f(x) Akar persamaan sebagai penyelesaian
  • 58. Mulyono (NIM : 0301060025) 11 C. Penyelesaian Persamaan Non-Linear Menurut Munif, A (1995 : 7) Persamaan y=f(x) dikatakan linear jika hubungan antara variabel x dan nilai fungsi y jika digambarkan pada sumbu kartesian menunjukkan garis lurus. Sedangkan yang tidak berbentuk garis lurus disebut persamaan non-linear. Misalnya persamaan polinomial, persamaan sinusoida, persamaan eksponensial, persamaan logaritmik dan sebagainya. Gambar 3. Bentuk-bentuk Grafik Persamaan Linear Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear 1. Metode Biseksi Metode ini mempunyai ciri dimana area dibagi menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan. y=2x+13 1 x y 0 y=x1 1 x y 0 y=-½x+11 2 x y 0 y=x2 1 x y 0 2 4 y=e-x x y 0 2 1 2 2 π 2 3π π π2 x y xsiny =
  • 59. Mulyono (NIM : 0301060025) 12 Gambar 5. Metode Biseksi Cara Penyelesaian dari Metode Biseksi Langkah Pertama menyelesaikan persamaan non-linear f(x) dengan metode Biseksi adalah menentukan dua titik f(x) awal yaitu f(x1) dan f(x2) dan harus memenuhi hubungan f(x1).f(x2) < 0. Langkah Kedua adalah mencari nilai x3 dengan persamaan : 2 xx x 21 3 + = kemudian mencari nilai f(x3) nya. Langkah Ketiga, melakukan iterasi untuk mendapatkan akar persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar terletak diantara x2 dan x3. 2. Metode Regula Falsi Metode Regula Falsi adalah metode pencarian akar persamaan dengan memanfaatkan kemiringan dan selisih tinggi dari dua titik batas range. -2 -1 0 1 2 3 4 5 6 -4 -2 0 2 4 6 8 10 12 x1 x2 x3 x4
  • 60. Mulyono (NIM : 0301060025) 13 Gambar 6. Metode Regula Falsi (Amang, 2006 : 16) Cara Penyelesaian Metode Regula Falsi : Langkah Pertama, menentukan dua titik f(x) awal, yaitu x1 dan x2 yang memenuhi persamaan f(x1).f(x2) < 0. Langkah Kedua, mencari nilai x3 dengan persamaan : )xx( )x(f)x(f )x(f xx 12 12 2 23 − − −= kemudian dicari nilai f(x3) nya. Langkah Ketiga, melakukan iterasi untuk mendapatkan akar persamaan. Jika f(x1).f(x3) < 0 maka x2 diganti x3 dan akar terletak diantara x1 dan x3, tetapi jika f(x1).f(x3) > 0 maka x1 diganti x3 dan akar terletak diantara x2 dan x3. (Munif, 1995 : 12) x1 x2 x3 f(x) f(x2) f(x1)
  • 61. Mulyono (NIM : 0301060025) 14 D. Bahasa Pemrograman Pascal 1. Sejarah Pascal Pascal adalah bahasa tingkat tinggi (high level language) yang bersifat umum dan dirancang oleh Profesor Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosphi terkenal abad ke-17, dari Perancis. Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur (structured programming) (Jogianto, 1988a : 1). 2. Langkah-langkah dalam Pemrograman Komputer Menurut Pranata (2000 : 4-7) Langkah-langkah yang harus dilakukan dalam pemrograman komputer adalah sebagai berikut : a). Mendefinisikan Masalah Sebelum menginjak ke langkah yang kedua, mendefinisikan masalah merupakan langkah yang sangat penting yang berisi menentukan masalahnya seperti apa, apa saja yang harus dipecahkan dengan komputer, yang terakhir adalah apa masukkannya dan bagaimana keluarannya. b). Menentukan Solusi Setelah masalah didefinisikan dengan jelas, masukkan apa yang diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas
  • 62. Mulyono (NIM : 0301060025) 15 langkah selanjutnya adalah menentukan bagaimana masalah tersebut diselesaikan. Apabila masalah yang dihadapi terlalu kompleks, kita bisa membaginya ke dalam beberapa bagian kecil agar lebih mudah dalam penyelasaiannya. c). Memilih Algoritma Dalam memilih algoritma untuk sebuah program kita harus menentukannya dengan tepat. Karena pemilihan program yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik. d). Menulis Program Dalam langkah ini kita sudah mulai menuliskan program komputer untuk memecahkan masalah yang ada. Dalam menulis program kita juga akan melakukan pemilihan terhadap bahasa pemrograman yang akan digunakan. Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman, antara lain masalah yang dihadapi, bahasa pemrograman yang dikuasai, dan sebagainya. e). Menguji Program Setelah program selesai ditulis, langkah selanjutnya adalah mengujinya. Pengujian pertama adalah apakah program berhasil dikompilasi dengan baik, Pengujian berikutnya apakah program dapat menampilkan keluaran yang diinginkan.
  • 63. Mulyono (NIM : 0301060025) 16 Program juga harus diuji untuk kasus yang berbeda, sering terjadi suatu program berjalan baik untuk kasus A, B, C tetapi menghasilkan sesuatu yang tidak diinginkan untuk kasus X, Y, dan Z. f). Menulis Dokumentasi Langkah ini biasanya dilakukan bersamaan dengan langkah menulis program tetapi tidak menutup kemungkinan ditulis pada setelah langkah terakhir. Menulis dokumentasi artinya pada setiap beberapa baris program ditambahkan komentar yang menjelaskan kegunaan dari suatu pernyataan. g). Merawat Program Langkah ini dilakukan setelah program selesai dibuat dan sudah digunakan oleh pengguna. Hal yang sering terjadi adalah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna menginginkan tambahan suatu fasilitas baru. Apabila hal-hal ini terjadi, maka harus dilakukan revisi terhadap program. 3. Struktur Program Pascal Struktur dari suatu program Pascal terdiri dari sebuah judul program (program heading) dan suatu blok program (program block). Blok program di bagi lagi manjadi dua bagian, yaitu bagian deklarasi (declaration part) dan bagian badan program yang berisi pernyataan- pernyataan (statements). Bagian deklarasi dapat tersusun atas deklarasi label (labels), konstanta (constants), tipe (type), variabel (variables), prosedur (procedures) dan fungsi (functions) (Jogianto, 1988a : 2).
  • 64. Mulyono (NIM : 0301060025) 17 Untuk mempermudah pembuatan program pascal, format program pascal disajikan sebagai berikut : program <nama program> label <deklarasi> const <deklarasi> type <deklarasi> var <deklarasi> procedure dan function <deklarasi> begin <pernyataan >; <pernyataan >; <pernyataan >; . . . <pernyataan >; end. (Zaks, 1988 : 17) 4. Pengambilan Keputusan Sering kali pemakai dihadapkan pada permasalahan untuk pengambilan keputusan terhadap dua alternatif atau bahkan lebih. Pemakai dapat mengambil keputusan didasarkan oleh suatu kondisi yang telah dievaluasi terlebih dahulu. Hal serupa juga dilakukan oleh komputer. Untuk keperluan inilah Turbo Pascal menyediakan dua macam pernyataan: a). IF Pernyataan IF ada beberapa bentuk, yaitu : (1). Pernyataan IF Sederhana Pada bentuk ini pernyataan hanya akan dijalankan kalau kondisi bernilai True. IF kondisi THEN pernyataan
  • 65. Mulyono (NIM : 0301060025) 18 (2). Pernyataan IF – ELSE Pada bentuk ini pernyataan_1 hanya akan dijalankan kalau kondisi bernilai True (benar), pernyataan_2 hanya akan dijalankan kalau kondisi bernilai False (salah). (3). Pernyataan IF Bersarang Suatu pernyataan IF dapat mengandung pernyataan IF yang lain. Bentuk seperti ini disebut IF Bersarang (nested IF). (Kadir , 2001 : 86-92) b). CASE Pernyataan CASE biasanya dipakai pada pilihan berganda. Bentuk pernyataan ini : (Kadir, 2001 : 96) IF kondisi THEN pernyataan_1 ELSE pernyataan_2 IF kondisi_1 THEN IF kondisi_2 THEN pernyataan_1 ELSE pernyataan_2 CASE nilai OF daftar_nilai_1 : pernyataan_1; daftar_nilai_2 : pernyataan_2; … daftar_nilai_m : pernyataan_m ELSE pernyataan_n END
  • 66. Mulyono (NIM : 0301060025) 19 5. Pengulangan (loop) Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Pengulangan memungkinkan menjalankan beberapa pernyataan hanya dengan menuliskan pernyataan tersebut satu kali saja. a). Pernyataan FOR Pernyataan FOR biasanya digunakan untuk melakukan pengulangan yang jumlahnya diketahui sebelumnya. Bentuk umum pernyataan FOR adalah sebagai berikut : Pernyataan FOR bisa juga digunakan untuk melakukan pengulangan dari bilangan yang lebih besar ke bilangan yang lebih kecil. Caranya adalah dengan mengganti kata kunci TO dengan DOWNTO. b). Pernyataan FOR Bersarang Pernyataan FOR yang berada di dalam FOR disebut FOR Bersarang (nested FOR). FOR variabel := nilai_awal TO nilai_akhir DO pernyataan FOR variabel := nilai_awal DOWNTO nilai_akhir DO pernyataan
  • 67. Mulyono (NIM : 0301060025) 20 c). WHILE Pernyataan WHILE biasa digunakan untuk pengulangan yang belum diketahui secara pasti berapa banyak akan mengulang pernyataan-pernyataan. d). Pernyataan REPEAT - UNTIL Pernyataan REPEAT –UNTIL digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Kondisi REPEAT – UNTIL dicek pada akhir kalang. Bentuk pernyataaan REPEAT : (Pranata, 2002 : 85-87) 6. Keunggulan Bahasa Pascal Menurut Zaks, R (1998 : 2-3) Bahasa Pascal telah dirancang untuk mempermudah pengubahan algoritma menjadi program, demikian pula halnya dengan susunan dan penyajian struktur datanya. Pascal berkembang dari pencarian suatu bahasa pemrograman bersifat lengkap, namun sederhana untuk dipelajari dan mudah diimplementasikan ke program komputer dengan memori yang cukup kecil dan dapat dijalankan lewat mode DOS. WHILE kondisi DO BEGIN pernyataan END REPEAT {pernyataan-pernyataan yang akan diulang} UNTIL kondisi
  • 68. Mulyono (NIM : 0301060025) BAB III METODOLOGI PENELITIAN A. Tempat Penelitian Penelitian ini dilakukan di Laboratorium Pengembangan Pendidikan Matematika Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Purwokerto. B. Alat Penelitian Alat yang digunakan dalam penelitian ini adalah satu unit komputer dengan spesifikasi : Processor : Intel(R) Pentium(R) 4 CPU 1.80GHz RAM : 256 MB RAM Hardisk : 40 GB Maxtor C. Langkah-langkah Penelitian Penelitian ini menggunakan metode studi literatur yang kemudian diimplementasikan ke dalam program komputer menggunakan bahasa pemrograman Turbo Pascal 7.1. Langkah-langkah yang dilakukan dalam pembuatan program pada penelitian ini adalah sebagai berikut : 1. Mengidentifikasikan Masalah Masalah pada penelitian ini adalah mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam 21
  • 69. Mulyono (NIM : 0301060025) 22 menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan cara membandingkan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n pada ke dua metode. 2. Menentukan Solusi Untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear yaitu dengan membandingkan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n pada ke dua metode. 3. Membuat Diagram Alir Sebelum peneliti membuat program maka terlebih dahulu dibuat diagram alir. Diagram alir dibuat untuk mempermudah urutan langkah- langkah pembuatan program. 4. Menulis Program Berdasarkan diagram alir yang telah dibuat sebelumnya, maka permasalahan yang ada diimplementasikan ke dalam program komputer dengan menggunakan bahasa pemrograman Turbo Pascal 7.1. 5. Menguji Program Setelah program ditulis, program diuji dengan cara menjalankan (running) program untuk mengetahui kesalahan yang ada. 6. Menulis Dokumentasi Menambahkan dokumentasi berupa komentar-komentar pada program. Manfaatnya adalah agar pembaca program (user) dapat
  • 70. Mulyono (NIM : 0301060025) 23 mengetahui lebih jelas kegunaan dari setiap pernyataan yang ditulis dalam program. D. Membandingkan Metode Biseksi dan Metode Regula Falsi Pada tahap ini dilakukan pembandingan selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi dengan metode Regula Falsi dalam menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel. Jika selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi lebih KECIL dari selisih metode Regula Falsi maka disimpulkan metode Biseksi lebih cepat dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Sebaliknya, jika selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n untuk metode Biseksi lebih BESAR dari selisih metode Regula Falsi maka disimpulkan metode Regula Falsi lebih cepat dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
  • 71. Mulyono (NIM : 0301060025) BAB IV HASIL PENELITIAN DAN PEMBAHASAN Penelitian ini menghasilkan diagram alir, kode program serta keluaran berupa tingkat ketelitian metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear satu variabel. A. Diagram Alir Diagram alir dibuat untuk mempermudah urutan langkah-langkah penyelesaian masalah. Adapun diagram alir yang dihasilkan secara garis besar terdiri dari : 1. Program Utama Dalam diagram alir untuk program utama berisi perintah untuk menentukan pilihan pada menu utama (masuk, bantuan dan keluar) serta pilihan untuk memanggil prosedur penyelesaian metode biseksi, penyelesaian metode regula falsi, memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan utama. 2. Prosedur Penyelesaian Metode Biseksi Dalam diagram alir ini berisi perhitungan penyelesaian persamaan non-linear dengan menggunakan metode Biseksi. 3. Prosedur Penyelesaian Metode Regula Falsi Dalam diagram alir ini berisi perhitungan penyelesaian persamaan non-linear dengan menggunakan metode Regula Falsi. 24
  • 72. Mulyono (NIM : 0301060025) 25 4. Prosedur Perbandingan Utama Dalam diagram alir untuk prosedur perbandingan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Diagram alir secara keseluruhan dapat dilihat pada lampiran 1. B. Kode Program Kode program yang dihasilkan diberi nama “NUMERIK” yaitu program yang digunakan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menentukan akar penyelesaian persamaan non-linear ditinjau dari banyaknya iterasi. Secara garis besar kode program ini terdiri dari : 1. Program Utama Dalam kode program untuk program utama berisi pernyataan untuk menampilkan menu utama, pernyataan untuk memanggil prosedur penyelesaian metode biseksi, penyelesaian metode regula falsi, memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan utama.
  • 73. Mulyono (NIM : 0301060025) 26 2. Prosedur-prosedur a). Prosedur Tunggu Prosedur tunggu menampilkan kondisi pada saat program Numerik sedang menyimpan file hasil perhitungan. b). Prosedur Judul Prosedur judul menampilkan judul program pada setiap langkah-langkah program Numerik. c). Prosedur Bantuan Prosedur bantuan menampilkan bantuan dari program. d). Prosedur Bye_bye Prosedur bye_bye menampilkan kondisi pada saat keluar program. e). Prosedur Penyelesaian Metode Biseksi Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Biseksi. f). Prosedur Penyelesaian Metode Regula Falsi Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Regula Falsi. g). Prosedur Memasukkan Jumlah Persamaan dan Derajat Tertinggi Prosedur ini berisi perintah untuk memasukkan jumlah persamaan dan derajat tertinggi dari persamaan non-linear.
  • 74. Mulyono (NIM : 0301060025) 27 h). Prosedur Tampil Derajat Prosedur tampil derajat menampilkan jumlah persamaan dan derajat tertinggi pada setiap langkah-langkah program Numerik. i). Prosedur Pilihan Input Prosedur ini berisi pilihan cara memasukkan data. j). Prosedur Perbandingan Utama Dalam prosedur perhitungan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Kode program secara keseluruhan dapat dilihat pada lampiran 2. C. Hasil Keluaran Pada saat pemanggilan pertama program, tampak MENU UTAMA : Gambar 7. Tampilan Menu Utama ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* < < < M E N U U T A M A > > > 1. Masuk 2. Bantuan 3. Keluar/Exit Pilihan anda (1/2/3) = 1