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 x 2 − 4 x = 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)
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
50
Mulyono (NIM : 0301060025)
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;
51
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)
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}
53
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)
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
55
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)
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;
57
Mulyono (NIM : 0301060025)
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:=(random1random2)/(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]);
58
Mulyono (NIM : 0301060025)
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;
59
Mulyono (NIM : 0301060025)
{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 =',
60
Mulyono (NIM : 0301060025)
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) ? ');
61
Mulyono (NIM : 0301060025)
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(' ====================================== =================');
62
Mulyono (NIM : 0301060025)
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_bisrata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bisrata2_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
63
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_bisrata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bisrata2_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)
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}
67
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 NIK. 2160332
Nila Kurniasih, S.Si., M.Si 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(' readln(x1[a]); end; nilai_awal_x1[a] := x1[a];
Menentukan nilai x1 awal ==>> ');
{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(' end else begin gotoxy(10,19); write('
Menentukan nilai x2 awal ==>> ',x2[a]:6:2);
gotoxy(10,19); readln(x2[a]);
Menentukan nilai x2 awal ==>> ');
Menentukan nilai x2 awal ==>>
'); write('
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,' ',batas:0,')');
A K A R
P E N Y E L E S A I A N (Pada saat iterasi ke
writeln(fileku,'========================================================================== ============'); writeln(fileku,'| Pers. | Metode Biseksi | Metode Regula Falsi |'); writeln(fileku,'========================================================================== ============'); jum_akar_ke10_bis:=0; jum_akar_ke10_reg:=0; for a:=1 to jum do begin writeln(fileku, '| ',a:4,' | ',akar_iterasi_ke10_yg_dibandingkan_bis[a]:19:15,' (Iterasi ',batas:0,') |', akar_iterasi_ke10_yg_dibandingkan_reg[a]:25:15,' (Iterasi ',batas:0,') |'); jum_akar_ke10_bis:= jum_akar_ke10_bis+akar_iterasi_ke10_yg_dibandingkan_bis[a]; jum_akar_ke10_reg:= jum_akar_ke10_reg+akar_iterasi_ke10_yg_dibandingkan_reg[a]; end; rata2_akar_bis_iterasi_ke10:=jum_akar_ke10_bis/jum; rata2_akar_reg_iterasi_ke10:=jum_akar_ke10_reg/jum; writeln(fileku,'========================================================================== ============'); writeln(fileku,'| Rata2 | ', rata2_akar_bis_iterasi_ke10:19:15,' | ', rata2_akar_reg_iterasi_ke10:24:15,' |'); writeln(fileku,'========================================================================== ============'); writeln(fileku); selisih_rata2_bis:=rata2_akar_bis-rata2_akar_bis_iterasi_ke10; selisih_rata2_reg:=rata2_akar_bis-rata2_akar_reg_iterasi_ke10; writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi = ', abs(selisih_rata2_bis):1:10); writeln(fileku,'Selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula Falsi = ', abs(selisih_rata2_reg):1:10); writeln(fileku); Page 15
if abs(selisih_rata2_bis) < abs(selisih_rata2_bis) then begin besar_kecil:='BESAR' end else begin besar_kecil:='KECIL' end; writeln(fileku,' Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada '); writeln(fileku,' iterasi ke ',batas:0,' metode Biseksi lebih ',besar_kecil,' dari selisih rata-rata'); writeln(fileku,' akar pendekatan dengan rata-rata akar pada iterasi ke ',batas:0,' metode Regula falsi'); writeln(fileku,' maka dapat disimpulkan bahwa : '); writeln(fileku,' Metode Biseksi lebih teliti dari metode Regula Falsi karena'); writeln(fileku,' hanya dengan ',batas:0,' iterasi, akar metode Biseksi sudah mendekati akar pendekatannya'); writeln(fileku,' ini ditunjukan dengan selisih untuk metode Biseksi yang lebih ',besar_kecil,' dari '); writeln(fileku,' selisih metode Regula Falsi'); writeln(fileku); writeln(fileku,' Selesai ...... !!!!'); append(fileku); close(fileku); judul; drive:=0; getdir(drive,directory); writeln; writeln(' Hasil perhitungan sedang disimpan pada file '); writeln; writeln(' ===>>> ',directory,'\',nama_file,'.txt'); tunggu; judul; textcolor(lightred); writeln(' Hasil perhitungan sudah disimpan pada file '); writeln; writeln(' ===>>> ',directory,'\',nama_file,'.txt'); gotoxy(55,25);textcolor(yellow);write('Tekan tombol ENTER ...!!!'); readln; end else end end;
{ P R O G R A M U T A M A } var n,jum, pangkat,batas : longint; pil,pil_ulang,pil_penyelesaian :char; label ulang,ulangi,keluar; begin ulangi: n:=0; repeat begin judul; {menu utama} writeln(' < < < M E N U U T A M A > > >'); writeln; writeln(' 1. Masuk '); writeln(' 2. Bantuan '); writeln(' 3. Keluar '); writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil); end; if (pil='1') or (pil='2') or (pil='3') then begin end else begin gotoxy(15,24);sound(1000);delay(10000);nosound; textcolor(lightred); Page 16
write(' Pilihan hanya 1, 2 dan 3, Silahkan ulangi !!! '); textcolor(yellow); readln; end; until (pil='1') or (pil='2') or (pil='3'); if (pil = '2') then begin judul; bantuan; goto ulangi; end else if (pil = '3') then begin goto keluar; end else ulang: judul; writeln(' Silahkan pilih !!!'); writeln; writeln(' 1. Penyelesaian Persamaan Non-Linier Menggunakan Metode Biseksi');writeln; writeln(' 2. Penyelesaian Persamaan Non-Linier Menggunakan Metode Regula Falsi');writeln; writeln(' 3. Penyelesaian Metode Biseksi dan Metode Regula Falsi '); writeln(' untuk mengetahui perbedaan kecepatannya');writeln; write(' Pilihan (1/2/3) ==>> '); readln(pil_penyelesaian); if pil_penyelesaian = '1' then penyelesaian_metode_biseksi else if pil_penyelesaian = '2' then penyelesaian_metode_regula_falsi else begin memasukan_jumlah_persamaan_dan_derajat_tertinggi(jum,pangkat,batas); perbandingan_utama(jum,pangkat,batas); writeln; writeln; end; repeat judul; write(' Apakah akan mengulang (Y/T) ? '); readln(pil_ulang); until (pil_ulang='y') or (pil_ulang='Y') or (pil_ulang='t') or (pil_ulang='T'); if (pil_ulang='y') or (pil_ulang='Y') then begin goto ulangi; end else keluar: bye_bye; end. {akhir program utama}
Page 17
Mulyono (NIM : 0301060025)
PERSEMBAHAN
Kupersembahkan karya ini untuk : Kedua orang tuaku tercinta, yang selalu memberiku motivasi dan dukungan untuk belajar dan berkarya AdikAdik-adikku yang baik,
vi
Mulyono (NIM : 0301060025)
PENYELESAIAN PERSAMAAN NON-LINEAR METODE BISEKSI DAN METODE REGULA FALSI MENGGUNAKAN CARA KOMPUTASI Oleh :
MULYONO 0301060025
ABSTRAK Penelitian ini bertujuan menyusun program komputer untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi dengan menggunakan bahasa pemrograman Turbo Pascal. Penelitian ini menggunakan metode studi literatur, kemudian diimplementasikan ke dalam program komputer. Adapun langkah-langkah yang dilakukan adalah : 1) mengidentifikasi masalah, 2) menentukan solusi, 3) membuat diagram alir, 4) menulis program, 5) menguji program dan 6) menulis dokumentasi. Hasil dari penelitian ini adalah program komputer dengan bahasa Turbo Pascal yang digunakan untuk menyelesaikan persamaan non-linear menggunakan metode Biseksi dan metode Regula Falsi serta mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi.
Pembimbing I
Pembimbing II
Hindayati Mustafidah, S.Si., M.Kom NIK. 2160332
Nila Kurniasih, S.Si., M.Si 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:
27,8e 5 x −
1 (120 x 2 + 2 x ) = cos −1 x 17 x − 65
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
2
Mulyono (NIM : 0301060025)
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 2 − 4ac x1, 2 = 2a 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.
3
Mulyono (NIM : 0301060025)
Akan tetapi metode analitik unggul untuk sejumlah persoalan yang memiliki tafsiran geometri sederhana. Misalnya menentukan akar penyelesaian dari x 2 + 4 x + 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 x 5 − 2x 4 − 9 x 3 + 22x 2 + 4 x = 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,
4
Mulyono (NIM : 0301060025)
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 : x 2 − 4 x = 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 -4 -2
-1
0
1
2
3
4
5
Gambar 1. Gambar grafik x 2 − 4 x = 0
6
Mulyono (NIM : 0301060025)
5
Dari gambar di atas terlihat jelas bahwa persamaan x 2 − 4 x = 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 c=
(a + b ) 2
c=b−
sedangkan untuk metode Regula Falsi menggunakan rumus
f ( b) (b − a ) . Langkah selanjutnya adalah mencari nilai c yang 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
10
Mulyono (NIM : 0301060025)
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 nilainilai 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
y = f(x) Akar persamaan sebagai penyelesaian
2 0 -2 -4 -2
-1
0
1
2
3
4
5
6
Gambar 2. Penyelesaian Persamaan Non-Linear (Amang, 2006 : 10)
11
Mulyono (NIM : 0301060025)
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.
y
y
y=x
1
y
y=2x+1
3
1
x 0
x 0
1
y=-½x+1 x
0
1
2
Gambar 3. Bentuk-bentuk Grafik Persamaan Linear
y
y
y y=x2
4
1
π 2
y=e-x 1 2
3π 2
x
π
2π
x
x 0
y = sin x
0
2
2
Gambar 4. Bentuk-bentuk Grafik Persamaan Non-Linear 1. Metode Biseksi Metode ini mempunyai ciri dimana area dibagi menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh akar persamaan.
12
Mulyono (NIM : 0301060025)
12
x1
10
x2
8 6
x3
4
x4
2 0 -2 -4 -2
-1
0
1
2
3
4
5
6
Gambar 5. Metode Biseksi Cara Penyelesaian dari Metode Biseksi Langkah Pertama menyelesaikan persamaan non-linear f(x) dengan metode Biseksi adalah menentukan dua titik f(x) awal yaitu f(x1) dan f(x2) dan harus memenuhi hubungan f(x1).f(x2) < 0. Langkah Kedua adalah mencari nilai x3 dengan persamaan : x3 =
x1 + x 2 kemudian mencari nilai f(x3) nya. 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.
13
Mulyono (NIM : 0301060025)
f(x)
f(x2)
x1
x3 x2
f(x1) 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 : x3 = x 2 −
f (x 2 ) ( x 2 − x1 ) kemudian dicari nilai f(x3) nya. f ( x 2 ) − f ( x1 )
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)
14
Mulyono (NIM : 0301060025)
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 pernyataanpernyataan (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
label <deklarasi> const <deklarasi> type <deklarasi> var <deklarasi> procedure dan function <deklarasi> begin ; ; ; . . . ; 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.
18
Mulyono (NIM : 0301060025)
(2). Pernyataan IF – ELSE IF kondisi THEN pernyataan_1 ELSE pernyataan_2 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 IF kondisi_1 THEN IF kondisi_2 THEN pernyataan_1 ELSE pernyataan_2 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 : CASE nilai OF daftar_nilai_1 : pernyataan_1; daftar_nilai_2 : pernyataan_2; … daftar_nilai_m : pernyataan_m ELSE pernyataan_n END (Kadir, 2001 : 96)
19
Mulyono (NIM : 0301060025)
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).
20
Mulyono (NIM : 0301060025)
c). WHILE Pernyataan WHILE biasa digunakan untuk pengulangan yang belum diketahui secara pasti berapa banyak akan mengulang pernyataan-pernyataan. WHILE kondisi DO BEGIN pernyataan END 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 : REPEAT {pernyataan-pernyataan yang akan diulang} UNTIL kondisi (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.
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 langkahlangkah 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
25
Mulyono (NIM : 0301060025)
4. Prosedur Perbandingan Utama Dalam diagram alir untuk prosedur perbandingan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Diagram alir secara keseluruhan dapat dilihat pada lampiran 1.
B. Kode Program Kode program yang dihasilkan diberi nama “NUMERIK” yaitu program yang digunakan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menentukan akar penyelesaian persamaan non-linear ditinjau dari banyaknya iterasi. Secara garis besar kode program ini terdiri dari : 1. Program Utama Dalam kode program untuk program utama berisi pernyataan untuk menampilkan menu utama, pernyataan untuk memanggil prosedur penyelesaian
metode
biseksi,
penyelesaian
metode
regula
falsi,
memasukan jumlah persamaan dan derajat tertinggi serta pernyataan untuk memanggil prosedur perbandingan utama.
Mulyono (NIM : 0301060025)
26
2. Prosedur-prosedur a). Prosedur Tunggu Prosedur tunggu menampilkan kondisi pada saat program Numerik sedang menyimpan file hasil perhitungan. b). Prosedur Judul Prosedur judul menampilkan judul program pada setiap langkah-langkah program Numerik. c). Prosedur Bantuan Prosedur bantuan menampilkan bantuan dari program. d). Prosedur Bye_bye Prosedur bye_bye menampilkan kondisi pada saat keluar program. e). Prosedur Penyelesaian Metode Biseksi Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Biseksi. f). Prosedur Penyelesaian Metode Regula Falsi Prosedur ini berisi perhitungan untuk menghitung persamaan non-linear menggunakan metode Regula Falsi. g). Prosedur Memasukkan Jumlah Persamaan dan Derajat Tertinggi Prosedur ini berisi perintah untuk memasukkan jumlah persamaan dan derajat tertinggi dari persamaan non-linear.
Mulyono (NIM : 0301060025)
27
h). Prosedur Tampil Derajat Prosedur tampil derajat menampilkan jumlah persamaan dan derajat tertinggi pada setiap langkah-langkah program Numerik. i). Prosedur Pilihan Input Prosedur ini berisi pilihan cara memasukkan data. j). Prosedur Perbandingan Utama Dalam prosedur perhitungan utama berisi perhitungan untuk metode Biseksi dan metode Regula Falsi serta perhitungan untuk mengetahui perbedaan kecepatan antara metode Biseksi dan metode Regula Falsi dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi. Kode program secara keseluruhan dapat dilihat pada lampiran 2.
C. Hasil Keluaran Pada saat pemanggilan pertama program, tampak MENU UTAMA : ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* < < 1. 2. 3.
< M E N U Masuk Bantuan Keluar/Exit
U T A M A
> > >
Pilihan anda (1/2/3) = 1 Gambar 7. Tampilan Menu Utama
Mulyono (NIM : 0301060025)
28
Jika pilihannya adalah 1 maka selanjutnya akan muncul pilihan untuk jenis penyelesaian persamaan non-linear. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Silahkan pilih !!! 1. Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi 2. Penyelesaian Persamaan Non-Linier Menggunakan Metode Regula Falsi 3. Penyelesaian Metode Biseksi dan Metode Regula Falsi untuk mengetahui ketelitiannya Pilihan (1/2/3) ==>> 1 Gambar 8. Tampilan Pilihan Jenis Penyelesaian Setelah dipilih penyelesaian yang pertama yaitu penyelesaian persamaan non-linear menggunakan metode Biseksi, selanjutnya muncul perintah untuk memasukan derajat tertinggi persamaan non-linear, koefisien dari x serta nilai awal x1 dan nilai awal x2. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Penyelesaian Persamaan Non-Linear Menggunakan Metode Biseksi Masukkan pangkat tertinggi = 3 Menentukan Koefisien x^1, x^2, x^3, ..., x^n Nilai a ==>> 1 Nilai b ==>> 0 Nilai c ==>> -7 Nilai d ==>> 1 Menentukan 2 Nilai Awal x1 dan x2 Masukkan nilai x1 awal ==>> 2.5 Masukkan nilai x2 awal ==>> 2.6 Gambar 9. Tampilan Memasukkan Koefisien x dan Nilai Awal x1, x2
Mulyono (NIM : 0301060025)
29
Apabila derajat tertinggi, koefisien dari x serta nilai awal x1 dan nilai awal x2 telah ditentukan, sebagai ilustrasi untuk derajat tertingginya adalah 3 nilai a = 1 (koefisien x3), b = 0 (koefisien x2), c = -7 (koefisien x1), d = 1 (koefisien x0) dengan nilai x1 awal = 2,5 dan nilai x2 awal = 2,6. Selanjutnya akan ditampilkan hasil perhitungan menggunakan metode Biseksi. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Hasil Perhitungan Menggunakan Metode Biseksi Salah satu akar pendekatannya = 2.571201419843419 diperoleh pada iterasi ke 20 dengan error = 0.000000034720870 (ε = 1E-7) nilai fungsinya = -0.000000034720870 Gambar 10. Tampilan Hasil Perhitungan Menggunakan Metode Biseksi Untuk pilihan penyelesaian yang kedua yaitu penyelesaian persamaan non-linear menggunakan metode Regula Falsi, tampilannya hampir sama dengan pilihan penyelesaian yang pertama, perbedaannya hanya pada nilai hasil perhitungan karena menggunakan rumus iterasi yang berbeda. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Hasil Perhitungan Menggunakan Metode Regula Falsi Salah satu akar pendekatannya = 2.571201416725671 diperoleh pada iterasi ke 29 dengan error = 0.000000074738637 (ε = 1E-7) nilai fungsinya = -0.000000074738637 Gambar 11. Tampilan Hasil Perhitungan Menggunakan Metode Regula Falsi
Mulyono (NIM : 0301060025)
30
Jika yang dipilih adalah penyelesaian yang ke tiga yaitu penyelesaian metode Biseksi dan metode Regula Falsi untuk mengetahui perbedaan kecepatan dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi, maka akan muncul perintah untuk memasukkan jumlah persamaan non-linear, pangkat tertinggi dan batas jumlah iterasi. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Masukkan jumlah persamaan ==>> 10 Masukkan derajat tertinggi ==>> 2 Masukkan batas jumlah iterasi ==>> 10 Gambar 12. Tampilan Perintah Memasukkan Jumlah Persamaan dan Derajat Tertinggi serta Batas Jumlah Iterasi Setelah jumlah dan pangkat tertinggi ditentukan sebagai ilustrasi jumlah persamaannya adalah 10 dengan derajat tertinggi 2, selanjutnya muncul pilihan cara memasukkan data yaitu data dimasukkan satu persatu dari keyboard atau data didapat dari angka random untuk menentukan koefisien dari x2 (Nilai a), x1 (Nilai b) dan x0 (Nilai c) serta dua nilai awal x1 dan x2. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* P i l i h a n M a s u k k a n 1. Masukkan dari Keyboard 2. Masukkan berupa angka Random Pilihan ==>> 2 Gambar 13. Tampilan Pilihan Memasukkan Data
Mulyono (NIM : 0301060025)
31
Jika yang dipilih memasukkan data satu persatu, maka muncul perintah untuk memasukkan nilai koefisien dari x serta dua nilai awal x1 dan x2 sejumlah persamaan yang ditentukan sebelumnya. Tetapi jika yang dipilih adalah cara memasukkan berupa angka random maka program secara otomatis menentukan nilai koefisien dari x serta dua nilai awal x1 dan x2 sejumlah persamaan yang ditentukan sebelumnya. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Persamaan ke 10 dari 10 persamaan Menentukan Koefisien x^1, x^2, x^3, ..., x^n Nilai c ==>> 0.32 Menentukan 2 Nilai Awal x1 dan x2 Menentukan nilai x1 awal ==>> -0.14 Menentukan nilai x2 awal ==>> 2.08 Gambar 14. Tampilan Program Menentukan Koefisien serta Nilai x1 dan x2 Awal dengan Angka Random Pada saat program menentukan nilai x1 awal dan x2 awal, syarat yang harus dipenuhi adalah f(x1).f(x2)<0, jika tidak ditemukan nilai yang memenuhi persyaratan maka program akan menentukan nilai a, b, c, …, n yang baru. Setelah semua persamaan non-linear mempunyai nilai koefisien dan nilai awal x1 dan x2 maka selanjutnya program melakukan perhitungan menggunakan rumus iterasi pada masing-masing metode. Pada metode Biseksi, langkah-langkahnya adalah :
Mulyono (NIM : 0301060025)
1. Menentukan nilai x3 dengan rumus x 3 =
32
x1 + x 2 dan nilai f(x3) 2
2. Jika f(x1).f(x3) < 0, maka akar berada pada selang x1 dan x3. Ulangi langkah ke 1 dengan x2 = x3. 3. Jika f(x1).f(x3) > 0, maka akar berada pada selang x1 dan x2. Ulangi langkah ke 1 dengan x1 = x3. 4. Jika f(x1).f(x3) = 0, maka akar persamaan non-linearnya adalah x3 dan perhitungan selesai. Sedangkan pada metode Regula Falsi, langkah-langkahnya adalah : 1. Menentukan nilai x3 dengan rumus x 3 = x 2 −
f ( x 2) ( x 2 − x1) dan f ( x 2) − f ( x1)
nilai f(x3) 2. Jika f(x1).f(x3) < 0, maka akar berada pada selang x1 dan x3. Ulangi langkah ke 1 dengan x2 = x3. 3. Jika f(x1).f(x3) > 0, maka akar berada pada selang x1 dan x2. Ulangi langkah ke 1 dengan x1 = x3. 4. Jika f(x1).f(x3) = 0, maka akar persamaan non-linearnya adalah x3 dan perhitungan selesai. Proses perhitungan pada kedua metode berjalan ketika pada layar monitor tampak :
33
Mulyono (NIM : 0301060025)
************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Silahkan tunggu ... !!! Persamaan Ke 10 Iterasi metode Biseksi ke = 0.0000001 0.000000004350076077 Iterasi metode Regula Falsi ke = 0.0000001 0.000000061622016823
21
35
Gambar 15. Tampilan Proses Iterasi Metode Biseksi dan Metode Regula Falsi Jika proses iterasi untuk metode Biseksi dan metode Regula Falsi sudah selesai, maka selanjutnya muncul pertanyaan apakah hasil perhitungan akan ditampilkan langsung pada layar monitor. Jika menginginkan langsung ditampilkan maka ketikkan ‘y’ atau ‘Y’ dan jika tidak ingin menampilkan hasilnya maka ketikkan ‘t’ atau ‘T’. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Tampilkan Hasil perhitungan (Y/T) ? Y Gambar 16. Tampilan Pertanyaan Tampilkan Hasil Perhitungan Setelah dipilih untuk menampilkan hasil perhitungan oleh metode Biseksi dan metode Regula Falsi dengan mengetikkan ‘y’ atau ‘Y’ maka selanjutnya akan ditampilkan nilai a, b, c, …, n serta nilai x1 awal dan nilai x2 awal untuk setiap persamaan. Selanjutnya akan ditampilkan pula salah satu
Mulyono (NIM : 0301060025)
34
akar pendekatan dan akar pada saat iterasi ke 10 serta kesimpulan yang didapat. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Persamaan Ke=10 (x1awal = -0.14 dan x2awal = 2.08) Nilai a = -0.69 Nilai b = 0.61 Nilai c = 0.32 Tekan tombol ENTER ...!!! Gambar 17. Tampilan Koefisien serta Nilai x1 Awal dan x2 Awal Persamaan ke 10 ************************************************** **** Program penyelesaian Persamaan Non-Linear *** *** Menggunakan Metode Biseksidan Regula Falsi *** ************************************************** 10 Persamaan || Derajat 2 Salah satu akar penyelesaiannya ================================================== |Pers.| Metode Biseksi | Metode Regula Falsi | ================================================== | 1 | -5.190668262539352 | -5.190668287775875 | | 2 | -0.343954970409300 | -0.343955057289213 | | 3 | -0.631551361084128 | -0.631551389332977 | | 4 | -0.830031606470087 | -0.830031684094307 | | 5 | -0.172372954227747 | -0.172372869036705 | | 6 | -0.148858722887580 | -0.148858744394033 | | 7 | 1.728295951387191 | 1.728295973844414 | | 8 | 0.585063956223199 | 0.585063956292722 | | 9 | 0.003716290471007 | 0.003716285895996 | | 10 | 1.253684443395722 | 1.253684502218005 | ================================================== |Rata2| -0.374667723614108 | -0.374667731367197 | ==================================================
Gambar 18. Hasil Perhitungan berupa Salah-satu akar Penyelesaian
Mulyono (NIM : 0301060025)
35
************************************************** **** Program penyelesaian Persamaan Non-Linear *** *** Menggunakan Metode Biseksidan Regula Falsi *** ************************************************** 10 Persamaan || Derajat 2 Akar penyelesaian pada saat iterasi ke 10 ================================================== |Pers.| Metode Biseksi | Metode Regula Falsi | ================================================== | 1 | -5.196309407550139 | -4.882481880756661 | | 2 | -0.344651613554551 | -0.343129733838454 | | 3 | -0.632031250000144 | -0.632281360213726 | | 4 | -0.830285993303823 | -0.843275260142023 | | 5 | -0.173851682428792 | -0.200284018005079 | | 6 | -0.148861533717144 | -0.151899792875074 | | 7 | 1.728896484375898 | 1.719297374422460 | | 8 | 0.585046472253729 | 0.581724805486349 | | 9 | 0.002867542613415 | -0.067674822486298 | | 10 | 1.253246410472204 | 1.227352313314129 | ================================================== |Rata2| -0.375593457083934 | -0.359265237509438 | ==================================================
Gambar 19. Hasil Perhitungan berupa Salah-satu akar pada Iterasi ke 10 ************************************************** **** Program penyelesaian Persamaan Non-Linear *** *** Menggunakan Metode Biseksidan Regula Falsi *** ************************************************** 10 Persamaan || Derajat 2 K E S I M P U L A N Selisih metode Biseksi = 0.000925733469827 Selisih metode Regula Falsi = 0.015402486104670 Karena selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Biseksi lebih KECIL dari selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke 10 metode Regula falsi maka dapat disimpulkan bahwa : Metode Biseksi lebih teliti dari metode Regula Falsi karena hanya dengan 10 iterasi, akar metode Biseksi sudah mendekati akar pendekatannya. Ini ditunjukan dengan selisih untuk metode Biseksi yang lebih KECIL dari selisih metode Regula Falsi. Gambar 20. Tampilan Kesimpulan
Mulyono (NIM : 0301060025)
36
Setelah ditampilkan hasil perhitungan metode Biseksi dan metode Regula Falsi serta kesimpulannya, selanjutnya muncul pertanyaan apakah hasil perhitungan akan disimpan di file. Jika menginginkan hasil perhitungan disimpan maka ketikkan ‘y’ atau ‘Y’ selanjutnya ketikkan nama file untuk menyimpannya (misal nama filenya hasil). ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Simpan hasil perhitungan (Y/T) ? Y Gambar 21. Tampilan Pertanyaan Simpan Hasil Perhitungan ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Hasil perhitungan akan disimpan dalam file text Ketikkan nama filenya ===>>> hasil Gambar 22. Tampilan Perintah Ketikkan Nama File ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* 10 Persamaan || Derajat 2 Hasil perhitungan sudah disimpan pada file ===>>> c:\numerik\hasil.txt Gambar 23. Tampilan Keterangan Hasil Perhitungan Telah Disimpan
Mulyono (NIM : 0301060025)
Gambar 24. Hasil Perhitungan Program NUMERIK pada File Hasil.txt
37
38
Mulyono (NIM : 0301060025)
Pertanyaan terakhir yang muncul adalah apakah akan mengulang menjalankan program. Jika menginginkan mengulangi dan melakukan perhitungan lagi maka ketikkan ‘y’ atau ‘Y’ dan program akan kembali ke MENU UTAMA. ************************************************* ****Program penyelesaian Persamaan Non-Linear**** ***Menggunakan Metode Biseksi dan Regula Falsi*** ************************************************* Apakah akan mengulang (Y/T) ? Y Gambar 25. Tampilan Pertanyaan Apakah Akan Mengulang Selanjutnya jika yang dipilih nomor 2 pada MENU UTAMA, maka akan muncul penjelasan tentang program NUMERIK. Tekan ENTER untuk kembali ke MENU UTAMA. < < B A N T U A N > > Program ini berfungsi untuk menentukan salah satu akar penyelesaian persamaan Non-Linier dengan menggunakan metode Numerik yaitu metode Biseksi dan metode Regula Falsi serta mengetahui ketelitian ke dua metode dengan membandingkan selisih antara rata-rata akar pendekatan dengan rata-rata akar pada saat iterasi ke 10. Untuk dapat mengoperasikannya silahkan pada MENU UTAMA - ketik 1 untuk Masuk Program - ketik 2 untuk Bantuan Program - ketik 3 untuk Keluar Program Jika menginginkan hasil perhitungan disimpan di file maka pilih "Y" pada pertanyaan Simpan hasil perhitungan (Y/T) ? dan ketikan NAMA FILE nya. Jika ingin melakukan perhitungan lagi ketikkan "Y" pada pernyataan Apakah akan mengulang (Y/T) ? << E N T E R >> Gambar 26. Tampilan Penjelasan Program Numerik
Mulyono (NIM : 0301060025)
39
Jika pada MENU UTAMA dipilih 3 maka program akan berhenti.
############################## T E R I M A K A S I H Bye … !!! ############################# Gambar 27. Tampilan Terakhir Program Numerik
D. Perbandingan Metode Biseksi dan Metode Regula Falsi Setelah dilakukan perbandingan 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 maka didapat data seperti pada tabel berikut (ε = 1 x 10-7 dan n = 10). Tabel Hasil Perhitungan Selisih untuk Berbagai Jumlah Persamaan dan Derajat Tertinggi Derajat Selisih rata-rata Selisih rata-rata Jumlah metode Biseksi metode Biseksi Persamaan Tertinggi 100 2 0.0001115879 0.2696024492 75 2 0.0001893593 0.0229433158 50 4 0.0000367736 0.0148569387 50 2 0.0002691039 0.0081416507 25 4 0.0005576837 0.0917223574 25 2 0.0007035599 0.0277696914 10 4 0.0003280580 0.2511075020 10 2 0.0000933324 0.1053634945 Dari contoh-contoh keluaran di atas dengan jumlah persamaan dan derajat tertinggi yang berbeda-beda diperoleh selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n (iterasi ke 10) untuk metode Biseksi yang selalu lebih kecil dari selisih metode Regula Falsi. Karena selisih
Mulyono (NIM : 0301060025)
40
metode Biseksi selalu lebih kecil dari selisih metode Regula falsi maka dapat disimpulkan bahwa metode Biseksi lebih dari metode Regula Falsi karena hanya dengan 10 iterasi, akar metode Biseksi sudah mendekati akar pendekatannya.
Mulyono (NIM : 0301060025)
BAB V KESIMPULAN DAN SARAN
A. Kesimpulan Dari penelitian yang telah dilakukan diperoleh kesimpulan : 1. Telah dibuat program komputer yang digunakan untuk menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel dengan metode Biseksi. Hasil keluaran dari program yang telah dibuat berupa : a. Nilai salah satu akar pendekatan melalui beberapa iterasi sampai lebih kecil dari nilai error yang ditentukan b. Nilai error yang didapat c. Nilai fungsi dari salah satu akar pendekatan yang diperoleh. 2. Telah dibuat program komputer yang digunakan untuk menyelesaikan persamaan non-linear khususnya persamaan polinomial satu variabel dengan metode Regula Falsi. Hasil keluaran dari program yang telah dibuat berupa : a. Nilai salah satu akar pendekatan melalui beberapa iterasi sampai lebih kecil dari nilai error yang ditentukan b. Nilai error yang didapat c. Nilai fungsi dari salah satu akar pendekatan yang diperoleh.
41
Mulyono (NIM : 0301060025)
42
3. Dalam menyelesaikan persamaan non-linear ditinjau dari banyaknya iterasi, metode Biseksi lebih cepat dari metode Regula Falsi. Ini ditunjukan dengan melihat selisih rata-rata akar pendekatan dengan ratarata akar pada iterasi ke n metode Biseksi yang selalu lebih kecil dari selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n metode regula Falsi.
B. Saran Setelah dilakukan penelitian ini, disarankan : 1. Program yang telah dibuat dapat dimodifikasi supaya dapat menyelesaikan persamaan non-linear yang berupa persamaan eksponensial, persamaan logaritmik, persamaan sinusoida atau persamaan non-linear yang lain. 2. Penulisan kode program bisa dilakukan dalam bahasa pemrograman komputer yang lain yang lebih bagus dalam hal grafik dan tingkat kemampuan pengoperasian digit angka.
Mulyono (NIM : 0301060025)
DAFTAR PUSTAKA Alamsyah, MK. 1994. Pelajaran Matematika 1 SMK. Bandung : Armico Amang. 2006. BAB III. PENYELESAIAN PERSAMAAN NON LINIER. http://lecturer.eepis-its.edu/~amang/pdf/. Diakses tanggal 15 November 2006. Chapra, S. 1996. METODE NUMERIK Jilid 1 Edisi Kedua. Jakarta : Erlangga. Jogiyanto, HM. 1988a. TURBO PASCAL Versi 5.0 Jilid 1. Yogyakarta : ANDI Yogyakarta Jogiyanto, HM. 1988b. TURBO PASCAL Versi 5.0 Jilid 2. Yogyakarta : ANDI Yogyakarta Kadir, Abdul. 1997. PEMROGRAMAN PASCAL (Buku 1). Yogyakarta : ANDI Yogyakarta Munif, Abd. 1995. Cara Praktis Penguasaan dan Penggunaan Metode Numerik. Jakarta : PT. Guna Widya. Pranata, Antony. 2002. Algoritma dan Pemrograman. Yogyakarta : J& J Learning Ruseffendi. 1998. Statistika Dasar untuk Penelitian Pendidikan. Bandung : CV Andira. Susy. 2006. BAB 1. Metode Numerik Secara Umum. http://www.malang.ac.id/ e%2Dlearning/FMIPA/Susy%20KA/. Diakses tanggal 15 November 2006. Wibowo,
dkk.
2007.
AKAR
PERSAMAAN
(ROOT
FINDING).
http://ft.uns.ac.id/ts/kul_ol/numerik/numerik02_akar.htm Diakses tanggal 02 Januari 2007. Wirodikromo, Sartono. 2004. MATEMATIKA Untuk SMA Kelas X. Jakarta : Erlangga. Zaks, Rodnay. 1988. Pengantar PASCAL Termasuk Torbo Pascal. Jakarta : Erlangga 43
44
Mulyono (NIM : 0301060025)
Lampiran 1. Diagram Alir
mulai
Masukan Pilihan (1/2/3) ?
N
Pil = 2
Masukan jumlah persamaan derajat tertinggi !!
Y bantuan Y
Pil = 3
N
Masukan Pilihan (1/2/3) ? Program Utama Pil = 1
N
Y penyelesaian_metode_biseksi N
Pil = 2 Y
penyelesaian_metode_biseksi
perbandingan_utama
Ulang? N
Selesai
Y
45
Mulyono (NIM : 0301060025)
Prosedur perhitungan_utama
perhitungan_utama
Pilihan input (1/2) ?
derajat = pangkat a =1 N a<jum Y huruf = 97 b=1
b<derajat+1
N
Y random1=random(100) random2=random(100) random3=random(100) angka_random_real=(random1-random2)/(random3+1)
Pil_input=’2’
N
Masukan koef[a,b]
Y koef[a,b]=angka_random_real
Huruf=huruf+1
b=b+1
N
Koef[a,1]=0 Y
5
2
1
6
46
Mulyono (NIM : 0301060025)
5
2
1
6
random1=random(100) random2=random(100) random3=random(100) angka_random_real=(random1-random2)/(random3+1)
Pil_input=’2’
N
Masukan x1[a]
Y x1[a]=angka_random_real
nilai_awal_x1[a] = x1[a]
fx1[a]=f(x1[a])
n=0
n=n+1 Y
n=20 N
random1=random(100) random2=random(100) random3=random(100) angka_random_real=(random1-random2)/(random3+1)
Pil_input=’2’
N
Masukan x2[a]
Y x2[a]=angka_random_real
nilai_awal_x2[a] = x2[a]
5
3
4
6
47
Mulyono (NIM : 0301060025)
4
3
5
6
fx2[a]=f(x2[a])
N
(fx1[a]*fx2[a])<0 Y a=a+1
a=1
a<jum
N
Y iterasibis[a]=0 x1bis[a]=x1[a] x2bis[a]=x2[a] fx1bis[a]=fx1[a] fx2bis[a]=fx2[a] Itrsbis = iterasibis+1 x3bis[a]=(x1bis[a]+x2bis[a])/2 fx3bis[a]=f(x3bis)
fx3bis[a]*fx1bis[a]<0 x ke 10 bis = x3bis
N
N
x1bis[a]=x3bis[a]
Y x2bis[a]=x3bis[a]
Y Iterasibis=10 Y
fx3bis[a]<1eN
8
7
9
48
Mulyono (NIM : 0301060025)
8
7
9
iterasireg[a]=0 x1reg[a]=x1[a] x2reg[a]=x2[a] fx1reg[a]=fx1[a] fx2reg[a]=fx2[a] Itrsreg = iterasireg+1 x3reg[a]=((x1reg[a]*fx2reg[a])-(x2reg[a]*fx1reg[a]))/(fx2reg[a]-fx1reg[a]) fx3reg[a]=f(x3reg)
fx3reg[a]*fx1reg[a]<0
N
x1reg[a]=x3reg[a]
Y x ke 10 reg = x3reg
x2reg[a]=x3reg[a]
Y N
Itrsreg=10
N
fx3reg[a]<1eY a=a+1
Membandingkan antara selisih rata-rata akar pendekatan dengan rata-rata akar pada iterasi ke n metode Biseksi dan selisih metode Regula Falsi
Tampilkan hasil perhitungan (Y/N) ? (pil_tampil)
pil_tampil=’y’ or pil_tampil=’y’
N
Y
10
11
49
Mulyono (NIM : 0301060025)
10
11
Tapilkan hasil
Simpan hasil perhitungan (Y/N) ? (pil_simpan)
pil_simpan=’y’ or pil_simpan=’y’ Y Simpan hasil
Prosedur perbandingan_utama selesai
N