LAPORAN Praktikum Fisika komputasi Percobaan : Metode Komputasi Integral Pelaksanaan Praktikum Hari : Senin
Tanggal : 11 Mei 2015
Jam : 5-6
Oleh : Nama : Sarasati Istiqomah Nim : 081211332011
Dosen Pembimbing
: Ibu Endah Purwanti
LABORATORIUM Komputer
UNIVERSITAS AIRLANGGA SURABAYA
A. DASAR TEORI Pendekatan metode integral dalam arti fisisnya adalah mencari luasan di bawah kurva yang dibentuk. Dalam metode komputasi integral, dikenal 3 macam metode untuk mencari luasan tersebut, yaitu : 1. Metode Trapezoida
2. Metode Simpson 1/3
3. Metode Simpson 3/8
B. TUGAS Persamaan yang akan kita selesaikan menggunakan tiga persamaan di atas adalah persamaan berikut : 2
𝑒 𝑥 𝑑𝑥
𝐼= 1
Dengan mengintegralkan persamaan di atas secara manual di dapatkan : 2
𝑒 𝑥 𝑑𝑥 = 𝑒 2 − 𝑒 1 = 4,67
𝐼= 1
Sedangkan jika menggunakan ketiga metode komputasi yang teah disebutkan, secara manual didapatkan hasil : 1. Metode Trapezoida
2. Metode Simpson 1/3
Syarat yang harus terpenuhi dalam metode simpson adalah nilai n harus genap, dengan n=4 sehingga h = 0,25, maka di dapatkan hasil :
3. Metode Simpson 3/8
Syarat pada metode simpson 3/8 adalah nilai n haruslah kelipatan 3. Sehingga dari ketiga metode di atas dapat dibuat program komputasi integral dengan Delphi. Sebelum membuat program dan kodingannya, terlebih dahulu kita harus membuat flowchartnya. 1. Flowchart Metode Trapezoida
2. Flowchart Metode Simpson 1/3
3. Flowchart Metode Simpson 3/8
kemudian pada form delphi kita membuat komponen – komponen yang dibutuhkan dalam program ini, komponen tersebut kurang lebih seperti ini :
Dan berikut ini merupakan kodingan lengkap dari Metode komutasi integral persoalan di atas var c,n,i:integer; x,a,b,h,fo,ft,fn,f,hasil1,hasil2,fgnp,fgjl:real; e:Extended; Form1: TForm1; implementation {$R *.dfm} function y(x:real):real; begin y:=exp(x); end;
procedure TForm1.Button1Click(Sender: TObject); begin listbox1.Clear ; a:=strtofloat(edit1.Text); b:=strtofloat(edit2.text); n:=strtoint(edit3.text); h:=(b-a)/n; listbox1.Items.add('iterasi ke-' + ' ' + ' x '+ ' '+ 'f(x)'); if RadioButton1.Checked then begin //trapezoida listbox1.Items.add(' '+'0'+' '+floattostr(a)+' '+floattostr(fo)); fo:=y(a); ft:=0; for i:=1 to n-1 do begin x:=a+h; f:=y(x); ft:=ft+2*y(x); a:=x; ListBox1.Items.Add(' '+inttostr(i)+' '+floattostr(x)+' '+floattostr(f)); end; fn:=y(b); listbox1.Items.add(' '+inttostr(n)+' '+floattostr(b)+' '+floattostr(fn)); hasil1:=(h/2)*(fo+ft+fn); edit4.Text:=floattostr(hasil1); end else if radiobutton2.Checked then begin //Simpson 1/3 if (n mod 2) = 0 then begin // simpson 1/3 fo:=y(a); fn:=y(b); listbox1.Items.add(' '+'0'+' '+floattostr(a)+' '+floattostr(fo)); for i:=1 to n-1 do begin f := y(x); x:=a+h; //i ganjil if ( i mod 3) <> 0 then fgjl:=fgjl+4*y(x) else //i genap fgnp:=fgnp+2*y(x); ListBox1.Items.Add(' '+inttostr(i)+' '+floattostr(x)+' '+floattostr(f)); a:=x; end; listbox1.Items.add(' '+inttostr(n)+' '+floattostr(b)+' '+floattostr(fn)); hasil2:=(h/3)*(fo+fgjl+fgnp+fn); edit4.Text:=floattostr(hasil2); end else showmessage('nilai n harus genap') ; end else if radiobutton3.Checked then
begin if (n mod 3) = 0 then begin // simpson 3/8 fo:=y(a); fn:=y(b); listbox1.Items.add(' '+'0'+' '+floattostr(a)+' '+floattostr(fo)); for i:=1 to n-1 do begin x:=a+h; f := y(x); //i <> 3,6,9 ... if ( i mod 3) <> 0 then fgjl:=fgjl+3*y(x) else fgnp:=fgnp+2*y(x); ListBox1.Items.Add(' '+inttostr(i)+' a:=x; end;
'+floattostr(x)+'
'+floattostr(f));
hasil2:=(3*h/8)*(fo+fgjl+fgnp+fn); edit4.Text:=floattostr(hasil2); end else showmessage('nilai n harus kelipatan 3') ; end else showmessage ('pilih dahulu metode perhitungan') end; procedure TForm1.Button2Click(Sender: TObject); begin listbox1.Clear; edit1.Clear; edit2.Clear; edit3.Clear; edit4.Clear; end; end.
Pembahasan Koding : Pada koding di atas function Delphi, dapat digunakan untuk menentukan nilai f(a), f(b) dan fi tanpa harus mengulang penulisan rumus. Untuk trapezoida, nilai fi dapat dihitung dengan menggunakan looping (for to do) biasa dari i=1 hingga n-1. Untuk simpson 1/3 , karena nilai fi terbagi menjadi igenap dan iganjil, maka digunakan e=(-1)^I, dimana jika e <0 (negative) maka i bernilai ganjil dan lainnya adalah I bernilai positif. Sehingga terdapat beberapa tambahan pada script loopingnya jika dibandingkan dengan looping pada trapezoid. Untuk simpson 3/8 hampir sama dengan simpson 1/3, dimana I dibagi menjadi 2 yaitu I kelipatan 3 dan I bukan kelipatan 3, maka digunakan jika I tidak habis dibagi 3 (I mod 3) <> 0 maka I bukan kelipatan 3 ( i=1,2,4,…) dan yang lainnya adalah I kelipatan 3. Sehingga dengan mengubah syarat pada if then dapat menghitung nilai fi pada simpson 3/8. Pada metode Simpson 1/3 dan 3/8 ada syarat kusus yang harus terpenuhi, makka
dalam kodingan telah dibuat script show massage jika inputan data tidak sesuai dengan kodingan maka akan muncul massage warning. Selanjutnya, program dapat di run dan kita harus menginputkan data dan mengklik salah satu metode yang diinginkan. Berikut ini gambar program dengan ketiga metode di atas:
(1) Hasil Program dengan metode Trapezoida, error 0.246 % dibanding nilai eksak
(2) Hasil Program dengan metode Simpson 1/3, error 10.92 % dibanding nilai eksak
(3) Hasil Program dengan metode Simpson 3/8, error 0.017 % dibanding nilai eksak
C. PEMBAHASAN Dapat dilihat dari hasil integral ketiga metode dengan persamaan yang sama dan batas atas batas bawah serta nilai n yang sama, ternyata dihasilakan hasil integral yang berbeda beda. Pada metode Trapezoida didapatkan hasil 4.6815 dengan error sebesar 0.246 %, untuk metode Simpson 1/3 didapatkan hasil 5.1826 dengan error sebesar 10.29 %, dan untuk metode simpson 3/8 didapatkan hasil 4,6708 dengan error sebesar 0.017 %. Dapat dilihat bahwa error terkecil adalah pada metode Simpson 3/8. Tapi tetap harus diingat bahwa semua metode punya kelemahan dan kekurangan sendiri – sendiri. Pada persamaan ini mungkin yang terbaik adalah hasil dari metode Simpson 3/8, tapi untuk persamaan yang lain belum tentu metode Simpson 3/8 memberikan hasil yang akurat. Tapi ketiga metode ini adalah metode yang baik dan dapat digunakan untuk menghitung persoalan integral dan dapat menyelesaikannya dengan cepat dan mudah.