• Tidak ada hasil yang ditemukan

LAPORAN Pemrograman Komputer

N/A
N/A
Protected

Academic year: 2021

Membagikan "LAPORAN Pemrograman Komputer"

Copied!
13
0
0

Teks penuh

(1)

LAPORAN Pemrograman

Komputer

Percobaan : Akar Persamaan Non Linier

Pelaksanaan Praktikum

Hari : Senin Tanggal : 2 Maret 2015 Jam : 5-6

Oleh :

Nama : Mei Budi Utami

Nim : 081211332009

Dosen Pembimbing

: Endah Purwanti, S.Si., M.T.

LABORATORIUM Komputer

UNIVERSITAS AIRLANGGA

SURABAYA

(2)

A. TUJUAN

1. Agar Mahasiswa bisa menyelesaian persamaan non linier menggunakan metode bisection, Newton, dan Secant

B. DASAR TEORI

Bisection merupakan dasar dari teori persamaan non linear. Persamaan ini dapat diselesaikan dengan 3 cara, yaitu metode Bisection, Newton Raphson, dan Secant. Berikut adalah penjelasannya :

METODE BISECTION ( metode membagi dua)

Metode bisection ini didasarkan pada teorema nilai antara fungsi kontinyu, yaitu bahwa suatu selang [a,b] harus mengandung f(x) = 0, bila f(a) dan f(b) berlawanan tanda. Proses dilakukan dengan pengulangan membagi selang [a,b] menjadi dua dan dalam setiap langkah diambil setengah selang yang memenuhi persyaratan tersebut. Proses ini diulang sampai didapatkan ketelitian yang sama dengan interval [a,b] terakhir. Metode ini memiliki kelemahan yaitu: kecepatannya dalam mencapai divergensi. Dan juga memiliki kelebihan yaitu: kepastian atau jaminannya dalam menuju konvergensi.

Gambar 1. Grafik Bisection

METODE NEWTON RAPHSON

Metode newton - raphson merupakan salah satu metode terbuka untuk menentukan solusi akar dari persamaan nonlinear

(3)

Metode NR mudah untuk mendapatkan nilai yang konvergen, terutama bila literasi dimulai jauh dari akar yang dicari. contoh : diketahui sebuah fungsi f(x) dan turunannya f'(x) kita memulai dengan tebakan pertama x0. dan nilai x1 yang lebih baik adalah dengan

Gambar2. Grafik metode newton rapshon.

Fungsi f ditunjukkan pada garis biru dan garis singgung dalam warna merah. kita dapat lihat nilai xn-1 adalah nilai pendekatan yang lebih baik daripada xn untuk akar x dari fungsi f.

METODE SECANT

Metode secant merupakan perbaikan dari metode regula-falsi dan newton-raphson dimana kemiringan dua titik dinyatakan sacara diskrit, dengan mengambil bentuk garis lurus yang melalui satu titik. Berbeda dengan metode Newton Raphson, pada metode secant tidak diperlukan turunan pertama dari fungsi non liniernya, tetapi diperlukan dua buah nilai awal.

(4)

Proses Iterasi akan berhenti apabila memenuhi kondisi berikut .

Metode ini memiliki kelebihan yaitu merupakan fungsi berkelanjuhan (continue). Namun, juga memiliki kekurangan yaitu analisis turunan.

C. ANALISIS DAN PEMBAHASAN

1. Tentukan penyelesaian dari f(x) = x2 – x – 6 dengan menggunakan metode bisection

Berikut ini flowchart dari penyelesaian diatas.

Setelah membuat flowchart, dilanjutkan pembuatan Kedua yaitu membuat coding/ script programnya. Berikut ini hasilnya :

(5)

Inti kodingan dari program di atas adalah :

procedure TForm1.Button1Click(Sender: TObject); var a,b,c,fb,fc,clama,ralat:real; n,i:integer; begin a:=StrToFloat(Edit1.Text); b:=StrToFloat(Edit2.Text); clama:=a; i := 1; repeat begin StringGrid1.Cells[1,i]:=FloatToStr(a); StringGrid1.Cells[2,i]:=FloatToStr(b); c:=(a+b)/2; StringGrid1.Cells[3,i]:=FloatToStr(c); ralat:=abs((clama-c)/c); StringGrid1.Cells[6,i]:=FloatToStr(ralat); fb:=b*b-b-6; StringGrid1.Cells[4,i]:=FloatToStr(fb); fc:=c*c-c-6; StringGrid1.Cells[5,i]:=FloatToStr(fc); if ((fb*fc)<=0) then begin a:=c; end else begin b:=c; end;

(6)

if (a<>c) then begin clama:=b; end else begin clama:=a; end; end; StringGrid1.Cells[0,i]:=FloatToStr(i); i := i +1 ; until ralat < 0.001 ; StringGrid1.RowCount := i + 1; end;

procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0,0]:='n'; StringGrid1.Cells[1,0]:='a'; StringGrid1.Cells[2,0]:='b'; StringGrid1.Cells[3,0]:='c'; StringGrid1.Cells[4,0]:='f(b)'; StringGrid1.Cells[5,0]:='f(c)'; StringGrid1.Cells[6,0]:='error'; end; end. end; end.

(7)

dari hasil running, diperoleh akar dari persamaan diatas adalah 3 dan 3,003125 dengan error sebesar 0,52%.

Variable-variable yang digunakan dalam script diatas yaitu variable : A : untuk nilai A;

B : untuk nilai B ; C : untuk nilai C ; Fb : untuk fungsi x = b; Fc : untuk fungsi x = c; Clama: nilai c lama; Ralat : untuk nilai error

Pada script diatas , ada variable clama. clama:=a;

Variable Clama adalah nilai awal bernilai sama dengan nilai a(nilai pada edit1.text) yang digunakan untuk perintah looping(repeat until) dibawahnya.

Selanjutnya fungsi Repeat

repeat begin StringGrid1.Cells[1,i]:=FloatToStr(a); StringGrid1.Cells[2,i]:=FloatToStr(b); c:=(a+b)/2; StringGrid1.Cells[3,i]:=FloatToStr(c);

Repeat adalah fungsi looping yang mengulang suatu perintah hingga batas tertentu.

Stringgrid1.cells[1,i] := floattostr(a) yaitu pemdeklarasian nilai pada cell kolom1 baris ke-I di stringgrid1 yaitu bernilai a.

Selanjutnya ada perintah ralat. ‘ralat:=abs((clama-c)/c);’

Perintah ralat adalah perintah agar nilai hasil dalam kurung bernilai absolut (mutlak).

Pembahasan : jika f(b)*f(c) bernilai negative, maka nilai a sama dengan c, jika tidak maka b sama dengan c. jika a tidak sama dengan c maka clama bernilai sama dengan b dan jika a sama dengan c maka clama sama dengan a.

StringGrid1.Cells[0,i]:=FloatToStr(i); // untuk nomer banyaknya looping i := i +1 ;// agar looping I bernilai integer ( i = 1,2,3…dst)

until ralat < 0.001 ; // batas perintah repeat until.

StringGrid1.RowCount := i + 1;// jumlah row nya sesuai dengan jumlah i ditambah1. end;

2. Tentukan penyelesaian persamaan dengan metode Newton Rapshon Berikut flowchart dari penyelesaian persamaan diatas

(8)
(9)

procedure TForm1.Button1Click(Sender: TObject); var x,fx,f1x,xn,xn1,galat : real ; i : integer ; begin xn:=strtofloat (edit1.Text); x := xn ; i := 1; repeat begin fx:=x+ (exp(x)*cos(x))-2 ; stringgrid1.Cells[0,i] := floattostr(x); f1x:= 1-exp (-x)*cos(x)-exp(-x)*sin(x); xn1 :=x+fx/f1x; StringGrid1.Cells[1,i] := floattostr(xn1); galat := abs((x-xn1)/xn1); StringGrid1.Cells[2,i] := floattostr(galat); i := i +1; x := xn1; end; until galat <= 0.001 ; StringGrid1.RowCount := i + 1 ; end;

procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[0,0] := 'Xn' ; StringGrid1.Cells[1,0] := 'Xn+1' ; StringGrid1.Cells[2,0] := 'Error' ; end; end. .

(10)

Dari hasil running diperoleh akar dari persamaan tersebut adalah -17,1425(simetris) dengan error 0%.

3. Untuk menyelesaikan permasalahan tersebut, pertama adalah membuat flowchart. Berikut adalah flowchart dari penyelesaian

(11)

Gambar1. Komponen delphi

Selanjutnya membuat scriptnya, dapat dilihat pada gambar procedure TForm1.Button1Click(Sender: TObject); var fx,fx1,fx2,xn1,xn2,xn,eror,x0,x1:real; i:integer; begin x0:= 0.5; x1 :=1; xn :=x0; xn1 :=x1; i:= 1; repeat begin stringgrid1.cells[0,i]:=floattostr (xn); stringgrid1.cells[1,i]:=floattostr (xn1); fx :=exp(xn)-5*sqr(xn); stringgrid1.Cells[3,i] := floattostr(fx); fx1 :=exp(xn1)-(5*sqr(xn1)); stringgrid1.Cells[4,i] := floattostr(fx1); xn2 := xn1 + fx1*(xn1-xn)/(fx1-fx); StringGrid1.Cells[2,i] := FloatToStr(xn2) ; fx2 :=exp(xn2)-(5*sqr(xn2)); StringGrid1.Cells[5,i] := FloatToStr(fx2) ; eror := abs((xn2-xn1)/xn2); StringGrid1.Cells[6,i] := FloatToStr(eror) ; xn :=xn1; xn1 := xn2 ; i := i +1 ; end; until eror < 0.01 ;

(12)

StringGrid1.RowCount := i +1 ; end; procedure TForm1.FormCreate(Sender: TObject); begin stringgrid1.Cells[0,0]:='xn-1'; stringgrid1.Cells[1,0]:='xn'; stringgrid1.Cells[2,0]:='xn+1'; stringgrid1.Cells[3,0]:='fxn-1'; stringgrid1.Cells[4,0]:='fxn'; stringgrid1.Cells[5,0]:='fxn+1'; stringgrid1.Cells[6,0]:='error'; end; end.

Berikut penjelasan Codingnya :

var

fx,fx1,fx2,xn1,xn2,xn,eror,x0,x1:real; i:integer;

pembahasan :

fx : fungsi untuk variable Xo, fx1 : fungsi untuk variable X1, fx2 : fungsi untuk variable Xn+1 Xn : variable Xn-1 Xn1 : variable Xn Xn2 : variable Xn+1 X0 : nilai Xo X1 : nilai X1 Eror : error repeat begin stringgrid1.cells[0,i]:=floattostr (xn);// menampilkan

nilai Xn-1 di cell stringgrid

stringgrid1.cells[1,i]:=floattostr (xn1); //

menampilkan nilai Xn di cell stringgrid

fx :=exp(xn)-5*sqr(xn); stringgrid1.Cells[3,i] := floattostr(fx); fx1 :=exp(xn1)-(5*sqr(xn1)); stringgrid1.Cells[4,i] := floattostr(fx1); xn2 := xn1 + fx1*(xn1-xn)/(fx1-fx); // fungsi Xn+1 metode Secant StringGrid1.Cells[2,i] := FloatToStr(xn2) ; fx2 :=exp(xn2)-(5*sqr(xn2)); StringGrid1.Cells[5,i] := FloatToStr(fx2) ;

eror := abs((xn2-xn1)/xn2); fungsi error metode

Secant StringGrid1.Cells[6,i] := FloatToStr(eror) ; xn :=xn1; xn1 := xn2 ; i := i +1 ; end; until eror < 0.01 ;

(13)

Dari hasil running diperoleh akar dari persamaan tersebut adalah x1= 642,01 ; x2 = 648,5 ; x3 = 654,997 dengan error 0,99 %.

Permasalahan yang ditemukan ketika menggunakan metode Secant adalah, perhitungan error terjadi floating point overflow, sehingga nilai error dikurangi menjadi 0,01 saja karena 0,001 juga terjadi floating point overflow.

Gambar

Gambar 1. Grafik Bisection
Gambar 3. Grafik metode Secant

Referensi

Dokumen terkait

Pada pembibitan kelapa sawit sumber emisi Gas Rumah Kaca (GRK) terbesar berasal dari penggunaan bahan bakar solar, pupuk NPK, pestisida, dan fungisida. Second

Wan Abdullah Wan Mahmood 1989 sependapat dengan pengkaji sejarah Islam yang lain dengan menyatakan bahawa Rasulullah merupakan orang yang pertama sebagai guru dalam pendidikan

Penggunaan metode semantik yang salah satunya menggunakan teknologi ontology memiliki struktur atau hirarki dari sebuah domain yang dapat digunakan untuk mencari sumber informasi

Untuk tugas pokok, fungsi dan tata kerja Kepaniteraan diatur berdasarkan Keputusan Ketua Mahkamah Agung RI Nomor : KMA/012/SK/III/1993 sedangkan untuk tugas pokok, fungsi

Membaca Relaas Pemberitahuan dan Penyerahan Memori banding yang dibuat oleh Juru Sita Pengganti pada Pengadilan Negeri Bogor perkara Nomor 90/Pdt.G/2015/PN.Bgr., yang

 Pembelian.. ecurangan pembelian umumnya dilakukan dengan cara meninggikan nilai yang terdapat dalam faktur. 4alam setiap kecurangan pembelian, hamper selalu

3 CITRA RAYA TANGERANG Optik Optik Internasional Ruko Melia Residence Blok X02/15-R Jl.. Panglima

Kesimpulan dari penelitian ini adalah pola konsumsi semua responden itu jarang mengkonsumsi sayur maupun buah, serta semua responden tergolong sering melakukan