SlideShare a Scribd company logo
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 x2 - 4x = 0 …………………………………….. 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 KKKeeeddduuuaaa ooorrraaannnggg tttuuuaaakkkuuu ttteeerrrccciiinnntttaaa,,, yyyaaannnggg sssseeeellllaaaalllluuuu mmmmeeeemmmmbbbbeeeerrrriiiikkkkuuuu 
mmmmoooottttiiiivvvvaaaassssiiii ddddaaaannnn dddduuuukkkkuuuunnnnggggaaaannnn uuuunnnnttttuuuukkkk bbbbeeeellllaaaajjjjaaaarrrr ddddaaaannnn bbbbeeeerrrrkkkkaaaarrrryyyyaaaa 
 AAAAddddiiiikkkk-aaaaddddiiiikkkkkkkkuuuu yyyyaaaannnngggg bbbbaaaaiiiikkkk,,,, 
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: 
- = - + 
(120x 2x ) 
17x 65 
cos 
1 
x 
27,8e 
2 
5x 1 
- 
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 : 
b b 4ac 
2a 
x 
2 
1,2 
- ± - 
= 
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 
x2 + 4x + 4 = 0 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 
x5 - 2x4 - 9x3 + 22x2 + 4x = 24 , 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 : x2 - 4x = 0 dengan daerah asal 
{x | -2 £ x £ 6, x Î R}. Persamaan tersebut jika digambarkan pada sumbu 
kartesius : 
12 
10 
8 
6 
4 
2 
0 
-2 
-2 -1 0 1 2 3 4 5 6 
Gambar 1. Gambar grafik x2 - 4x = 0 
-4
Mulyono (NIM : 0301060025) 
5 
Dari gambar di atas terlihat jelas bahwa persamaan x2 - 4x = 0 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 
a + b 
c = sedangkan untuk metode Regula Falsi menggunakan rumus 
c b - 
= - (b a) 
. Langkah selanjutnya adalah mencari nilai c yang 
f (b) 
- 
f (b) f (a) 
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. 
12 
10 
8 
6 
4 
2 
0 
-2 
-2 -1 0 1 2 3 4 5 6 
Gambar 2. Penyelesaian Persamaan Non-Linear 
(Amang, 2006 : 10) 
-4 
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. 
3 y=2x+1 
1 
Gambar 3. Bentuk-bentuk Grafik Persamaan Linear 
1 
p 
3p 
p 2p 
Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear 
4 
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. 
x 
y 
0 
1 y=x 
1 
x 
y 
0 
1 y=-½x+1 
2 
x 
y 
0 
y=x2 
1 
x 
y 
0 2 
y=e-x 
x 
y 
0 2 
2 
2 
2 
x 
y y = sin x
Mulyono (NIM : 0301060025) 
12 
x1 
x2 
x3 
x4 
Gambar 5. Metode Biseksi 
12 
10 
8 
6 
4 
2 
0 
-2 
-4 
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 : 
= x + x 
kemudian mencari nilai f(x3) nya. 
x 1 2 
3 
2 
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
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 : 
3 2 - 
= - kemudian dicari nilai f(x3) nya. 
x x 2 1 
(x x ) 
f (x ) 
2 
- 
f (x ) f (x ) 
2 1 
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 
IF kondisi THEN 
pernyataan 
Pada bentuk ini pernyataan hanya akan dijalankan kalau 
kondisi bernilai True.
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 : 
FOR variabel := nilai_awal TO nilai_akhir DO 
pernyataan 
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. 
FOR variabel := nilai_awal DOWNTO nilai_akhir DO 
pernyataan 
b). Pernyataan FOR Bersarang 
Pernyataan FOR yang berada di dalam FOR disebut FOR 
Bersarang (nested FOR).
Mulyono (NIM : 0301060025) 
20 
c). WHILE 
Pernyataan WHILE biasa digunakan untuk pengulangan yang 
belum diketahui secara pasti berapa banyak akan mengulang 
pernyataan-pernyataan. 
WHILE kondisi DO 
BEGIN 
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. 
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
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier
Penyelesaian persamaan non linier

More Related Content

What's hot

Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5. Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5.
ahmad haidaroh
 
ukuran statistik
 ukuran statistik ukuran statistik
ukuran statistik
BKPP kabupaten Bandung
 
Fungsi Rasional Pecah.pptx
Fungsi Rasional Pecah.pptxFungsi Rasional Pecah.pptx
Fungsi Rasional Pecah.pptx
zainnadaan
 
Metamtika teknik 03-bernouli dan pdl-tk1
Metamtika teknik 03-bernouli dan pdl-tk1Metamtika teknik 03-bernouli dan pdl-tk1
Metamtika teknik 03-bernouli dan pdl-tk1
el sucahyo
 
Pressentasi control unit
Pressentasi control unitPressentasi control unit
Pressentasi control unitgea prima
 
Pengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi DigitalPengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi Digital
Nur Fadli Utomo
 
2. galat
2. galat2. galat
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
KuliahKita
 
Sistem Kriptografi Klasik Berbasis Substitusi
Sistem Kriptografi Klasik Berbasis SubstitusiSistem Kriptografi Klasik Berbasis Substitusi
Sistem Kriptografi Klasik Berbasis SubstitusiFanny Oktaviarti
 
Kriptografi - Hash
Kriptografi - HashKriptografi - Hash
Kriptografi - Hash
KuliahKita
 
PPT Himpunan Matematika Diskrit
PPT Himpunan Matematika DiskritPPT Himpunan Matematika Diskrit
PPT Himpunan Matematika Diskrit
Sigitpga
 
PPT Sistem Persamaan Linear Tiga Variabel
PPT Sistem Persamaan Linear Tiga VariabelPPT Sistem Persamaan Linear Tiga Variabel
PPT Sistem Persamaan Linear Tiga Variabel
fransiscaputriwulandari
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
okti agung
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
Kelinci Coklat
 
4.matriks dan relasi
4.matriks dan relasi4.matriks dan relasi
4.matriks dan relasi
Nada Try Pasha Julian
 
Kriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBCKriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBC
KuliahKita
 
Limit fungsi trigonometri dengan menyederhanakan
Limit fungsi trigonometri dengan menyederhanakanLimit fungsi trigonometri dengan menyederhanakan
Limit fungsi trigonometri dengan menyederhanakan
Muhammad Arif
 
Bilangan prima dan tfm ( teori & aplikasi )
Bilangan prima dan tfm ( teori & aplikasi )Bilangan prima dan tfm ( teori & aplikasi )
Bilangan prima dan tfm ( teori & aplikasi )Indra Gunawan
 

What's hot (20)

Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5. Sistem Homogen dan Invers-Matrik - Pertemuan 5.
Sistem Homogen dan Invers-Matrik - Pertemuan 5.
 
ukuran statistik
 ukuran statistik ukuran statistik
ukuran statistik
 
Fungsi Rasional Pecah.pptx
Fungsi Rasional Pecah.pptxFungsi Rasional Pecah.pptx
Fungsi Rasional Pecah.pptx
 
Metamtika teknik 03-bernouli dan pdl-tk1
Metamtika teknik 03-bernouli dan pdl-tk1Metamtika teknik 03-bernouli dan pdl-tk1
Metamtika teknik 03-bernouli dan pdl-tk1
 
Pressentasi control unit
Pressentasi control unitPressentasi control unit
Pressentasi control unit
 
Tutorial Matlab
Tutorial MatlabTutorial Matlab
Tutorial Matlab
 
Pengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi DigitalPengolahan Citra 3 - Operasi-operasi Digital
Pengolahan Citra 3 - Operasi-operasi Digital
 
2. galat
2. galat2. galat
2. galat
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
Sistem Kriptografi Klasik Berbasis Substitusi
Sistem Kriptografi Klasik Berbasis SubstitusiSistem Kriptografi Klasik Berbasis Substitusi
Sistem Kriptografi Klasik Berbasis Substitusi
 
Kriptografi - Hash
Kriptografi - HashKriptografi - Hash
Kriptografi - Hash
 
PPT Himpunan Matematika Diskrit
PPT Himpunan Matematika DiskritPPT Himpunan Matematika Diskrit
PPT Himpunan Matematika Diskrit
 
PPT Sistem Persamaan Linear Tiga Variabel
PPT Sistem Persamaan Linear Tiga VariabelPPT Sistem Persamaan Linear Tiga Variabel
PPT Sistem Persamaan Linear Tiga Variabel
 
6. angka indeks
6. angka indeks6. angka indeks
6. angka indeks
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
4.matriks dan relasi
4.matriks dan relasi4.matriks dan relasi
4.matriks dan relasi
 
Kriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBCKriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBC
 
Limit fungsi trigonometri dengan menyederhanakan
Limit fungsi trigonometri dengan menyederhanakanLimit fungsi trigonometri dengan menyederhanakan
Limit fungsi trigonometri dengan menyederhanakan
 
Bilangan prima dan tfm ( teori & aplikasi )
Bilangan prima dan tfm ( teori & aplikasi )Bilangan prima dan tfm ( teori & aplikasi )
Bilangan prima dan tfm ( teori & aplikasi )
 

Viewers also liked

Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
Izhan Nassuha
 
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistemMonoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
sigitpurnama12
 
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linearPenyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linearAlvin Setiawan
 
Sistem non linier inheren
Sistem non linier inherenSistem non linier inheren
Sistem non linier inheren
wk3czl230419995
 
Tabel.biseksi.regula falsi
Tabel.biseksi.regula falsiTabel.biseksi.regula falsi
Tabel.biseksi.regula falsi
Ayunda Eka Sagita
 
Monoharmonis osilasi nonlinier dan metode linierisasi harmonis sistem
Monoharmonis osilasi nonlinier dan  metode linierisasi harmonis sistemMonoharmonis osilasi nonlinier dan  metode linierisasi harmonis sistem
Monoharmonis osilasi nonlinier dan metode linierisasi harmonis sistem
soeryaa
 
Metode numerik-stmik-aub
Metode numerik-stmik-aubMetode numerik-stmik-aub
Metode numerik-stmik-aub
Muhammad Martayuda
 
Persamaan non linear dalam ekonomi
Persamaan non linear dalam ekonomiPersamaan non linear dalam ekonomi
Persamaan non linear dalam ekonomi
Nurmalianis Anis
 
Akar akar persamaan non linier
Akar akar persamaan non linierAkar akar persamaan non linier
Akar akar persamaan non linier
Alen Pepa
 

Viewers also liked (10)

Metode numerik persamaan non linier
Metode numerik persamaan non linierMetode numerik persamaan non linier
Metode numerik persamaan non linier
 
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistemMonoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
Monoharmonis osilasi nonlinier &amp; metode linieritas harmonis sistem
 
Persamaan non linier
Persamaan non linierPersamaan non linier
Persamaan non linier
 
Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linearPenyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
 
Sistem non linier inheren
Sistem non linier inherenSistem non linier inheren
Sistem non linier inheren
 
Tabel.biseksi.regula falsi
Tabel.biseksi.regula falsiTabel.biseksi.regula falsi
Tabel.biseksi.regula falsi
 
Monoharmonis osilasi nonlinier dan metode linierisasi harmonis sistem
Monoharmonis osilasi nonlinier dan  metode linierisasi harmonis sistemMonoharmonis osilasi nonlinier dan  metode linierisasi harmonis sistem
Monoharmonis osilasi nonlinier dan metode linierisasi harmonis sistem
 
Metode numerik-stmik-aub
Metode numerik-stmik-aubMetode numerik-stmik-aub
Metode numerik-stmik-aub
 
Persamaan non linear dalam ekonomi
Persamaan non linear dalam ekonomiPersamaan non linear dalam ekonomi
Persamaan non linear dalam ekonomi
 
Akar akar persamaan non linier
Akar akar persamaan non linierAkar akar persamaan non linier
Akar akar persamaan non linier
 

Similar to Penyelesaian persamaan non linier

Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linearPenyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
yeyen
 
modul algoritma Bab 7 record
modul algoritma Bab 7 recordmodul algoritma Bab 7 record
modul algoritma Bab 7 record
Eko Widyanto Napitupulu
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
Eman Mendrofa
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
Eko Widyanto Napitupulu
 
3 pemrograman matlab
3 pemrograman matlab3 pemrograman matlab
3 pemrograman matlab
Simon Patabang
 
Program Pascal
Program PascalProgram Pascal
Program Pascal
Simon Patabang
 
Number Systems in Computer Systems
Number Systems in Computer SystemsNumber Systems in Computer Systems
Number Systems in Computer Systems
S N M P Simamora
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
Braga Rezpect
 
Algoritma dan pemograman
Algoritma dan pemogramanAlgoritma dan pemograman
Algoritma dan pemograman
Syahran Mohamed
 
Makalah analisa numerik dan komputasi tugas kelompok
Makalah analisa numerik dan komputasi tugas kelompokMakalah analisa numerik dan komputasi tugas kelompok
Makalah analisa numerik dan komputasi tugas kelompok
Rahmank Sana-sini
 
modul algoritma Bab 2
modul algoritma Bab 2modul algoritma Bab 2
modul algoritma Bab 2
Eko Widyanto Napitupulu
 
Uts alpro ii
Uts alpro iiUts alpro ii
Uts alpro ii
Nassroom Minallah
 
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
Damun Setiaji
 
ALOGARITMA 4
ALOGARITMA 4ALOGARITMA 4
ALOGARITMA 4
arstwn
 
mencari nilai minimum menggunakan fungsi rekursif di C
mencari nilai minimum menggunakan fungsi rekursif di Cmencari nilai minimum menggunakan fungsi rekursif di C
mencari nilai minimum menggunakan fungsi rekursif di C
kir yy
 
Modul statistik 114
Modul statistik 114Modul statistik 114
Modul statistik 114
Hendriana Ana
 
Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007
staffpengajar
 
MAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docxMAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docx
Dikicandra6
 
Struktur data chapter_04
Struktur data chapter_04Struktur data chapter_04
Struktur data chapter_04
Sejahtera Affif
 

Similar to Penyelesaian persamaan non linier (20)

Penyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linearPenyelesaian persamaan-non-linear
Penyelesaian persamaan-non-linear
 
modul algoritma Bab 7 record
modul algoritma Bab 7 recordmodul algoritma Bab 7 record
modul algoritma Bab 7 record
 
Pengulangan Visual Basic
Pengulangan Visual BasicPengulangan Visual Basic
Pengulangan Visual Basic
 
Tugas alogaritma
Tugas alogaritmaTugas alogaritma
Tugas alogaritma
 
modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
3 pemrograman matlab
3 pemrograman matlab3 pemrograman matlab
3 pemrograman matlab
 
Program Pascal
Program PascalProgram Pascal
Program Pascal
 
Number Systems in Computer Systems
Number Systems in Computer SystemsNumber Systems in Computer Systems
Number Systems in Computer Systems
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Algoritma dan pemograman
Algoritma dan pemogramanAlgoritma dan pemograman
Algoritma dan pemograman
 
Makalah analisa numerik dan komputasi tugas kelompok
Makalah analisa numerik dan komputasi tugas kelompokMakalah analisa numerik dan komputasi tugas kelompok
Makalah analisa numerik dan komputasi tugas kelompok
 
modul algoritma Bab 2
modul algoritma Bab 2modul algoritma Bab 2
modul algoritma Bab 2
 
Uts alpro ii
Uts alpro iiUts alpro ii
Uts alpro ii
 
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
 
ALOGARITMA 4
ALOGARITMA 4ALOGARITMA 4
ALOGARITMA 4
 
mencari nilai minimum menggunakan fungsi rekursif di C
mencari nilai minimum menggunakan fungsi rekursif di Cmencari nilai minimum menggunakan fungsi rekursif di C
mencari nilai minimum menggunakan fungsi rekursif di C
 
Modul statistik 114
Modul statistik 114Modul statistik 114
Modul statistik 114
 
Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007Latihan01 d76 politel_r01122007
Latihan01 d76 politel_r01122007
 
MAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docxMAKALAH REKRUSIF (DIKI CANDRA).docx
MAKALAH REKRUSIF (DIKI CANDRA).docx
 
Struktur data chapter_04
Struktur data chapter_04Struktur data chapter_04
Struktur data chapter_04
 

More from yeyen

Soal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyakSoal soal-latihan-suku-banyak
Soal soal-latihan-suku-banyak
yeyen
 
Assesmen Pembelajaran Matematika
Assesmen Pembelajaran MatematikaAssesmen Pembelajaran Matematika
Assesmen Pembelajaran Matematika
yeyen
 
Matematika SD & Pembelajaran I
Matematika SD & Pembelajaran IMatematika SD & Pembelajaran I
Matematika SD & Pembelajaran I
yeyen
 
sambungan Tugas bagian 1
sambungan Tugas bagian 1sambungan Tugas bagian 1
sambungan Tugas bagian 1
yeyen
 
Tugas Fuskom
Tugas FuskomTugas Fuskom
Tugas Fuskom
yeyen
 
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 Integral
yeyen
 

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

ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPALANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
Annisa Syahfitri
 
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Kanaidi ken
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Yayasan Pusat Kajian dan Perlindungan Anak
 
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
GusniartiGusniarti5
 
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
Fathan Emran
 
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptxObservasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
akram124738
 
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdekaSOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
NiaTazmia2
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
MildayantiMildayanti
 
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
DrEngMahmudKoriEffen
 
Juknis penggunaan aplikasi ecoklit pilkada 2024
Juknis penggunaan  aplikasi ecoklit pilkada 2024Juknis penggunaan  aplikasi ecoklit pilkada 2024
Juknis penggunaan aplikasi ecoklit pilkada 2024
abdinahyan
 
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdfMODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
sitispd78
 
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
nimah111
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Fathan Emran
 
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptxMateri 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
ahyani72
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Fathan Emran
 
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
Kanaidi ken
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
HendraSagita2
 
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdfPpt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
fadlurrahman260903
 
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKANSAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
NURULNAHARIAHBINTIAH
 
Laporan Pembina Pramuka sd format doc.docx
Laporan Pembina Pramuka sd format doc.docxLaporan Pembina Pramuka sd format doc.docx
Laporan Pembina Pramuka sd format doc.docx
RUBEN Mbiliyora
 

Recently uploaded (20)

ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPALANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
ANALISIS PENCEMARAN UDARA AKIBAT PABRIK ASPAL
 
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28  Juni 2024
Workshop "CSR & Community Development (ISO 26000)"_di BALI, 26-28 Juni 2024
 
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada AnakDefenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
Defenisi Anak serta Usia Anak dan Kekerasan yang mungki terjadi pada Anak
 
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOKPENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
PENDAMPINGAN INDIVIDU 2 CGP ANGKATAN 10 KOTA DEPOK
 
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum MerdekaModul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum Merdeka
 
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptxObservasi-Kelas-oleh-Kepala-Sekolah.pptx
Observasi-Kelas-oleh-Kepala-Sekolah.pptx
 
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdekaSOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
SOAL ASAS SENI MUSIK kelas 2 semester 2 kurikulum merdeka
 
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdfPanduan Penggunaan Rekomendasi Buku Sastra.pdf
Panduan Penggunaan Rekomendasi Buku Sastra.pdf
 
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024Kebijakan PPDB Siswa SMA dan SMK DIY 2024
Kebijakan PPDB Siswa SMA dan SMK DIY 2024
 
Juknis penggunaan aplikasi ecoklit pilkada 2024
Juknis penggunaan  aplikasi ecoklit pilkada 2024Juknis penggunaan  aplikasi ecoklit pilkada 2024
Juknis penggunaan aplikasi ecoklit pilkada 2024
 
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdfMODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
MODUL AJAR MAT LANJUT KELAS XI FASE F.pdf
 
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
705368319-Ppt-Aksi-Nyata-Membuat-Rancangan-Pembelajaran-Dengan-Metode-Fonik.pptx
 
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum MerdekaModul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
Modul Ajar Matematika Kelas 11 Fase F Kurikulum Merdeka
 
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptxMateri 2_Benahi Perencanaan dan Benahi Implementasi.pptx
Materi 2_Benahi Perencanaan dan Benahi Implementasi.pptx
 
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
Modul Ajar Matematika Kelas 8 Fase D Kurikulum Merdeka - [abdiera.com]
 
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
PELAKSANAAN + Link2 Materi Pelatihan_ PENGAWASAN P3DN & TKDN_ pd PENGADAAN Ba...
 
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdfJuknis Materi KSM Kabkota - Pendaftaran[1].pdf
Juknis Materi KSM Kabkota - Pendaftaran[1].pdf
 
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdfPpt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdf
 
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKANSAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
SAINS TINGKATAN 4 BAB 11 DAYA DAN GERAKAN
 
Laporan Pembina Pramuka sd format doc.docx
Laporan Pembina Pramuka sd format doc.docxLaporan Pembina Pramuka sd format doc.docx
Laporan Pembina Pramuka sd format doc.docx
 

Penyelesaian persamaan non linier

  • 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 x2 - 4x = 0 …………………………………….. 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 KKKeeeddduuuaaa ooorrraaannnggg tttuuuaaakkkuuu ttteeerrrccciiinnntttaaa,,, yyyaaannnggg sssseeeellllaaaalllluuuu mmmmeeeemmmmbbbbeeeerrrriiiikkkkuuuu mmmmoooottttiiiivvvvaaaassssiiii ddddaaaannnn dddduuuukkkkuuuunnnnggggaaaannnn uuuunnnnttttuuuukkkk bbbbeeeellllaaaajjjjaaaarrrr ddddaaaannnn bbbbeeeerrrrkkkkaaaarrrryyyyaaaa AAAAddddiiiikkkk-aaaaddddiiiikkkkkkkkuuuu yyyyaaaannnngggg bbbbaaaaiiiikkkk,,,, 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: - = - + (120x 2x ) 17x 65 cos 1 x 27,8e 2 5x 1 - 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 : b b 4ac 2a x 2 1,2 - ± - = 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 x2 + 4x + 4 = 0 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 x5 - 2x4 - 9x3 + 22x2 + 4x = 24 , 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 : x2 - 4x = 0 dengan daerah asal {x | -2 £ x £ 6, x Î R}. Persamaan tersebut jika digambarkan pada sumbu kartesius : 12 10 8 6 4 2 0 -2 -2 -1 0 1 2 3 4 5 6 Gambar 1. Gambar grafik x2 - 4x = 0 -4
  • 52. Mulyono (NIM : 0301060025) 5 Dari gambar di atas terlihat jelas bahwa persamaan x2 - 4x = 0 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 a + b c = sedangkan untuk metode Regula Falsi menggunakan rumus c b - = - (b a) . Langkah selanjutnya adalah mencari nilai c yang f (b) - f (b) f (a) 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. 12 10 8 6 4 2 0 -2 -2 -1 0 1 2 3 4 5 6 Gambar 2. Penyelesaian Persamaan Non-Linear (Amang, 2006 : 10) -4 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. 3 y=2x+1 1 Gambar 3. Bentuk-bentuk Grafik Persamaan Linear 1 p 3p p 2p Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear 4 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. x y 0 1 y=x 1 x y 0 1 y=-½x+1 2 x y 0 y=x2 1 x y 0 2 y=e-x x y 0 2 2 2 2 x y y = sin x
  • 59. Mulyono (NIM : 0301060025) 12 x1 x2 x3 x4 Gambar 5. Metode Biseksi 12 10 8 6 4 2 0 -2 -4 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 : = x + x kemudian mencari nilai f(x3) nya. x 1 2 3 2 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
  • 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 : 3 2 - = - kemudian dicari nilai f(x3) nya. x x 2 1 (x x ) f (x ) 2 - f (x ) f (x ) 2 1 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 IF kondisi THEN pernyataan Pada bentuk ini pernyataan hanya akan dijalankan kalau kondisi bernilai True.
  • 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 : FOR variabel := nilai_awal TO nilai_akhir DO pernyataan 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. FOR variabel := nilai_awal DOWNTO nilai_akhir DO pernyataan b). Pernyataan FOR Bersarang Pernyataan FOR yang berada di dalam FOR disebut FOR Bersarang (nested FOR).
  • 67. Mulyono (NIM : 0301060025) 20 c). WHILE Pernyataan WHILE biasa digunakan untuk pengulangan yang belum diketahui secara pasti berapa banyak akan mengulang pernyataan-pernyataan. WHILE kondisi DO BEGIN 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. 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