Anda di halaman 1dari 4

NAMA : SYIFA SASLABILA

NIM : F1D018093
KELAS :A
PRAKTIKUM MANDIRI 4 METODE NUMERIK 2019
1. TUJUAN
a. Dapat memahami konsep turunan selisih maju, mundur, dan pusat serta integral NC 3/8.
b. Dapat mengimplementasikan operasi turunan dan integral menggunakan bahasa
pemrograman java.

2. ALGORITMA PENYELESAIAN
Diberikan data sebagai berikut:
x -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4

y 0 3.375 4 2.625 0 -3.125 -6 -7.875 -8 -5.625 0

Hitunglah:
1. Turunan kedua dengan selisih maju, mundur dan terpusat pada x=2.75, dengan h=0.01.
2. Hitunglah integral dari data yang diberikan dengan NC 3/8 dari -1 s.d 2 dengan h=0.01.

A. Algoritma
1) Turunan Kedua
a. Menentukan nilai x0 dan h.
b. Menghitung nilai xr dengan mengoperasikan nilai xo dengan nilai h.
c. Menghitung fungsi f(x) dengan memasukkan nilai x ke dalam persamaan.
d. Memasukkan nilai fungsi f(x) yang telah didapatkan dalam rumus sebagai berikut:
f1  2 f 0  f 1
selisih _ pusat  f 0''   O(h 2 )
h2
f  2 f 1  f 0
selisih _ mundur  f 0''   2  O ( h)
h2
f  2 f  f
selisih _ maju  f 0''  2 1 0
 O ( h)
h2
 f  4 f  5 f1  2 f 0
selisih _ maju  f 0''  3 2
 O(h 2 )
h2
 f 2  16 f1  30 f 0  16 f 1  f  2
selisih _ pusat  f 0''   O(h 4 )
12h 2

2) Integral 3/8
a. Menentukan batas atas, batas bawah, dan h.
b. Menentukan nilai x berdasarkan nilai batas atas, batas bawah, dan h yang sudah
ditentukan.
c. Menghitung fungsi f(x) dengan memasukkan nilai x ke dalam persamaan.
d. Memisahkan total nilai dari fungsi f(x) yang merupakan bilangan bukan kelipatan 3
dan bilangan kelipatan 3 di antara fungsi f(x) batas atas dan f(x) batas bawah.
e. Memasukkan semua nilai yang dibutuhkan dalam rumus NC 3/8, yaitu:
B. Source Code
public class Praktikum4 {
static double[] X={-1, -0.5, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4};
static double[] Y={0, 3.375, 4, 2.625, 0, -3.125, -6, -7.875, -8,
-5.625, 0};

double fx(double x){


int orde=X.length;
double[][] BTN = new double[orde][orde];
for (int i=0; i<orde; i++)
BTN[0][i]=Y[i];
for (int i=1; i<orde; i++)
for (int j=0;j<orde-i;j++)
BTN[i][j]=(BTN[i-1][j+1]-BTN[i-1][j])/(X[j+i]-
X[j]);
double F=BTN[0][0];
for(int i=1; i<orde; i++){
double temp=BTN[i][0];
for(int j=0; j<=i-1; j++)
temp=temp*(x-X[j]);
F=F+temp;}
return F;
}

void turunan(double x, double h){


double x1 = x+h;
double x2 = x1+h;
double xmin1 = x-h;
double xmin2 = xmin1-h;
double fx2 = fx(x2);
double fx1 = fx(x1);
double fx0 = fx(x);
double fxmin1 = fx(xmin1);
double fxmin2 = fx(xmin2);
double selisih_maju = (fx2-(2*fx1)+fx0)/(h*h);
double selisih_mundur = (fxmin2-(2*fxmin1)+fx0)/(h*h);
double selisih_pusat = (fx1-(2*fx0)+fxmin1)/(2*h);
System.out.println("TURUNAN KEDUA ");
System.out.println("Selisih Maju => f'' = "+selisih_maju);
System.out.println("Selisih mundur => f'' = "+selisih_mundur);
System.out.println("Selisih Pusat => f'' = "+selisih_pusat);
}

int getIndex(double data){


int index=0;
for(int i=0; i<Y.length; i++)
if(data==X[i]){
index=i;
break;
}
return index;
}

void integral(double atas, double bawah){


int indexA, indexB;
double h=0.01, bknkelipatan3=0, kelipatan3=0;
indexA=getIndex(atas);
indexB=getIndex(bawah);
for(int i=indexB+1; i<indexA; i++)
if(i%3 == 0)
kelipatan3+=Y[i];
else
bknkelipatan3+=Y[i];
System.out.println("INTEGRAL : ");
double total = ( Y[indexA] + (3*bknkelipatan3) +
(2*kelipatan3) + Y[indexB] ) * (3*h/8);
System.out.println("NC 3/8 = "+total);
}

public static void main(String[] args) {


praktik4 syif=new praktik4();
double x=2.75, h=0.01;
syif.turunan(x, h);
double atas=2, bawah=-1;
syif.integral(atas, bawah);
}
}

3. HASIL DAN ANALISA


Setelah program tersebut dijalankan maka akan didapatkan hasil sebagai berikut:

Pada permasalahan pertama, yaitu mencari turunan kedua menggunakan penurunan selisih
maju, selisih mundur, dan selisih terpusat dibutuhkan nilai x dan h yang dalam hal ini sudah
ditentukan, yaitu x=2.75 dan h=0.01. Pertama dilakukan pencarian atau penghitungan nilai x r.
Setelah mendapatkan semua nilai x yang dibutuhkan, maka selanjutnya menghitung nilai f(x)
dengan memasukkan nilai x yang sudah didapatkan sebelumnya. Terakhir menghitung turunan
kedua menggunakan rumus yang tersedia dan memasukkan nilai f(x) yang didapatkan
sebelumnya.
Sedangkan pada permasalahan yang kedua, yaitu menghitung integral menggunakan
metode N-C: Simpson 3/8 dibutuhkan batas atas, batas bawah dan nilai h. Setelah masing-
masing nilai ditentukan, yaitu batas atas=2, batas bawah=-1 dan h=0.01 maka selanjutnya
memasukkan nilai-nilai tersebut ke dalam persamaan untuk mendapatkan nilai f(x). Pada
metode N-C: Simpson 3/8 dibedakan antara index yang merupakan kelipatan 3 dan bukan
kelipatan 3. Sehingga dalam rumus Simpson 3/8 total index kelipatan 3 dijumlahkan dengan
total index bukan kelipatan 3.
4. KESIMPULAN
Berdasarkan praktikum yang telah dilakukan, maka dapat disimpulkan bahwa:
a. Pada turunan kedua akan didapatkan nilai turunan yang terkecil menggunakan selisih pusat,
sedangkan yang terbesar adalah menggunakan selisih-maju. Untuk pencarian integral N-C:
Simpson 3/8 perlu dikelompokkan antara f(x) batas atas, batas bawah, kelipatan 3, dan bukan
kelipatan 3.
b. Dalam pengimplementasian turunan dan integral menggunakan bahasa java banyak
menggunakan tipe data double karena nilai yang dihasilkan sangat banyak dan tidak cukup
jika menggunakan tipe data lain.

5. REFERENSI
[1] I.G.P. Suta Wijaya, Turunan Numerik, Universitas Mataram, 2017.
[2] I.G.P. Suta Wijaya, Integrasi Numerik, Universitas Mataram, 2017.
[1] Chapra, Steven C, Canale, Raymon. P. 1991. Metode Numerik untuk Teknik
[3] Munir, Rinaldi. 2006. Metode Numerik. Bandung: Informatika.
[4] Ripai. 2012. Pengantar Analisis dan Komputasi Metode Numerik. Mataram: IAIN
Mataram.
[5] Munif, Abdul dan Hidayatullah, Prastyoko Aries. 2003. Cara Praktis Penguasaan dan
Penggunaan Metode Numerik. Surabaya: Prima Printing.

Anda mungkin juga menyukai