• Tidak ada hasil yang ditemukan

PENERAPAN MASALAH KONTEKSTUAL DENGAN METODE NUMERIK TERTUTUP DAN TERBUKA PADA PEMROGRAMAN SCILAB

N/A
N/A
Wika Azilia

Academic year: 2024

Membagikan "PENERAPAN MASALAH KONTEKSTUAL DENGAN METODE NUMERIK TERTUTUP DAN TERBUKA PADA PEMROGRAMAN SCILAB"

Copied!
12
0
0

Teks penuh

(1)

MAKALAH METODE NUMERIK

“PENERAPAN MASALAH KONTEKSTUAL DENGAN METODE NUMERIK TERTUTUP DAN TERBUKA

PADA PEMROGRAMAN SCILAB”

Disusun oleh:

1. Tsania Shofiyati Rakhma K1320077

2. Wika Azilia K1320079

3. Yasifi’atun Nasrifah K1320082 4. Yuvita Andriani Kusumadewi K1320085

PENDIDIKAN MATEMATIKA

FAKULTAS KEGURUAN DAN ILMU PENDIDIKAN UNIVERSITAS SEBELAS MARET

SURAKARTA 2023

(2)

KATA PENGANTAR

Puji syukur kehadirat Allah SWT karena berkat rahmat, karunia, dan hidayah-Nya, penulisan makalah Metode Numerik ini dapat terselesaikan.

Makalah ini disusun dan ditulis untuk memenuhi tugas mata kuliah Metode Numerik program studi Pendidikan Matematika FKIP Universitas Sebelas Maret.

Makalah ini berjudul “Penerapan Masalah Kontekstual Dengan Metode Numerik Tertutup dan Terbuka pada Pemrograman Scilab”.

Makalah ini membahas mengenai penerapan masalah kontekstual dengan metode numerik tertutup dan terbuka pada pemrograman bahasa scilab. Metode numerik tertutup yang dipilih dalam makalah ini adalah metode bagi dua, sedangkan metode tertutup yang dipilih adalah metode secant. Dalam makalah ini akan dibahas lebih lanjut mengenai kedua metode tersebut serta penerapannya pada pemrograman Scilab.

Dengan penulisan makalah ini, penulis berharap dapat menyebarkan ilmu terkait mata kuliah Metode Numerik kepada pembaca. Makalah yang ditulis dengan bahasa yang sederhana ini juga diharapkan dapat membantu pembaca dalam belajar, khususnya materi metode bagi dua dan secant.

Semoga makalah ini dapat bermanfaat untuk pembaca. Adapun kritik dan saran baik dalam penulisan maupun penyajian sangat diharapkan guna perbaikan dan peningkatan kualitas makalah ini.

Surakarta, 4 April 2023

Penyusun

(3)

DAFTAR ISI

KATA PENGANTAR ... ii

DAFTAR ISI ...iii

DAFTAR GAMBAR ... iv

DAFTAR TABEL ... iv

METODE BAGI DUA ... 1

1.1 Permasalahan Kontekstual ... 1

1.2 Perhitungan Manual ... 1

1.3 Flowchart ... 2

1.4 Pseudocode Input ... 3

1.5 Output ... 4

METODE SECANT ... 5

2.1 Permasalahan Kontekstual ... 5

2.2 Perhitungan Manual ... 5

2.3 Flowchart ... 6

2.4 Pseudocode Input ... 7

2.5 Output ... 8

(4)

DAFTAR GAMBAR

Gambar 1.1. Flowchart Metode Bagi Dua ... 2

Gambar 1.2. Pseudocode Input Metode Bagi Dua ... 4

Gambar 1.3. Output Metode Bagi Dua ... 4

Gambar 2.1. Flowchart Metode Secant ... 6

Gambar 2.2. Pseudocode Input Metode Secant ... 8

Gambar 2.3. Output Metode Secant ... 8

DAFTAR TABEL Tabel 1.1. Tabel Perhitungan Manual Metode Bagi Dua ... 1

Tabel 2.1. Perhitungan Manual Metode Secant ... 5

(5)

METODE BAGI DUA

1.1 Permasalahan Kontekstual

Berikut ini adalah contoh permasalahan kontekstual yang akan diterapkan menggunakan metode bagi dua.

Perusahaan minyak goreng mempunyai fungsi penjualan 𝑓(𝑥) = 𝑥2 − 50𝑥 + 90 dan 𝑔(𝑥) = 2𝑥 − 10 dengan 𝑓(𝑥) menyatakan total pemasukan dan 𝑔(𝑥)total biaya produksi. Berapa jumlah liter minyak yang harus terjual sedemikian sehingga perusahaan tersebut bisa balik modal?

1.2 Perhitungan Manual

Berikut ini adalah perhitungan secara manual untuk metode bagi dua pada permasalahan kontekstual yang telah dipaparkan sebelumnya.

Jawab: Agar perusahaan tersebut bisa balik modal, maka total pemasukan haruslah sama dengan total biaya produksi. Sehingga,

𝑓(𝑥) = 𝑔(𝑥)

𝑥2 − 50𝑥 + 90 = 2𝑥 − 10 𝑥2 − 52𝑥 + 100 = 0

diperoleh fungsi baru yaitu 𝑕(𝑥) = 𝑥2 − 52𝑥 + 100 = 0.

Tabel 1.1. Tabel Perhitungan Manual Metode Bagi Dua

n a b f(a) f(b) xt f(xt) Eror

1 48 51 -92 49 49,5 -23,75 1,5

2 51 49,5 49 -23,75 50,25 12,0625 0,75

3 49,5 50,25 -23,75 12,0625 49,875 -5,98437 0,375 4 50,25000 49,87500 12,06250 -5,98437 50,06250 3,00390 0,1875 5 49,87500 50,0625 -5,98437 3,00390 49,96875 -1,49902 0,09375 6 50,06250 49,96875 3,00390 -1,49902 50,01562 0,75024 0,04687 7 49,96875 50,01562 -1,49902 0,75024 49,99218 -0,37505 0,02344 8 50,01562 49,99218 0,75024 -0,37505 50,00390 0,18721 0,01172 9 49,99218 50,00390 -0,37505 0,18721 49,99628 -0,17830 0,00762 10 50,00390 49,99628 0,18721 -0,17830 50,00009 0,00432 0,00381 11 49,99628 50,00009 -0,17830 0,00432 49,99818 -0,08735 0,00191 12 50,00009 49,99818 0,00432 -0,08735 49,99913 -0,04175 0,00095 13 50,00009 49,99913 0,00432 -0,04175 49,99961 -0,01871 0,00048 14 50,00009 49,99961 0,00432 -0,01871 49,99985 -0,00719 0,00024 15 50,00009 49,99985 0,00432 -0,00719 49,99997 -0,00143 0,00012 16 50,00009 49,99997 0,00432 -0,00143 50,00003 0,00144 0,00006

(6)

1.3 Flowchart

Berikut ini disajikan flowchart untuk metode bagi dua pada pemrograman Scilab.

Gambar 1.1. Flowchart Metode Bagi Dua

(7)

1.4 Pseudocode Input

Berikut ini adalah pseudocode input untuk metode bagi dua pada pemrograman Scilab.

𝑓𝑢𝑛𝑐𝑝𝑟𝑜𝑡(0);

𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑦 = 𝑓(𝑥);

y = 𝑥2 − 52𝑥 + 100;

𝑒𝑛𝑑𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛;

𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛 𝑏𝑎𝑔𝑖𝑑𝑢𝑎;

𝑝𝑟𝑖𝑛𝑡𝑓 (′𝑃𝑒𝑟𝑕𝑖𝑡𝑢𝑛𝑔𝑎𝑛 𝑃𝑒𝑛𝑑𝑒𝑘𝑎𝑡𝑎𝑛 𝐽𝑢𝑚𝑙𝑎𝑕 𝐿𝑖𝑡𝑒𝑟 𝑀𝑖𝑛𝑦𝑎𝑘 𝑦𝑎𝑛𝑔 𝑇𝑒𝑟𝑗𝑢𝑎𝑙 𝑀𝑒𝑛𝑔𝑔𝑢𝑛𝑎𝑘𝑎𝑛 𝑀𝑒𝑡𝑜𝑑𝑒 𝐵𝑎𝑔𝑖 𝐷𝑢𝑎 \𝑛′);

𝑎 = 𝑖𝑛𝑝𝑢𝑡 (′𝑀𝑎𝑠𝑢𝑘𝑘𝑎𝑛 𝑏𝑎𝑡𝑎𝑠 𝑏𝑎𝑤𝑎𝑕 : );

𝑏 = 𝑖𝑛𝑝𝑢𝑡 (′𝑀𝑎𝑠𝑢𝑘𝑘𝑎𝑛 𝑏𝑎𝑡𝑎𝑠 𝑎𝑡𝑎𝑠 : );

𝑡 = 𝑖𝑛𝑝𝑢𝑡 (′𝑀𝑎𝑠𝑢𝑘𝑘𝑎𝑛 𝑏𝑎𝑡𝑎𝑠 𝑡𝑜𝑙𝑒𝑟𝑎𝑛𝑠𝑖 : );

𝑖 = 1;

𝑖𝑓 𝑓(𝑎) =

= 0 𝑡𝑕𝑒𝑛 𝑝𝑟𝑖𝑛𝑡𝑓 (′%𝑓 𝑎𝑑𝑎𝑙𝑎𝑕 𝑗𝑢𝑚𝑙𝑎𝑕 𝑙𝑖𝑡𝑒𝑟 𝑚𝑖𝑛𝑦𝑎𝑘 𝑦𝑎𝑛𝑔 𝑕𝑎𝑟𝑢𝑠 𝑡𝑒𝑟𝑗𝑢𝑎𝑙 𝑦 = 𝑓(𝑥) \𝑛, 𝑎);

𝑒𝑙𝑠𝑒𝑖𝑓 𝑓(𝑏) =

= 0 𝑡𝑕𝑒𝑛 𝑝𝑟𝑖𝑛𝑡𝑓 (′%𝑓 𝑎𝑑𝑎𝑙𝑎𝑕 𝑗𝑢𝑚𝑙𝑎𝑕 𝑙𝑖𝑡𝑒𝑟 𝑚𝑖𝑛𝑦𝑎𝑘 𝑦𝑎𝑛𝑔 𝑕𝑎𝑟𝑢𝑠 𝑡𝑒𝑟𝑗𝑢𝑎𝑙

\𝑛, 𝑏);

𝑒𝑙𝑠𝑒𝑖𝑓 𝑓(𝑎) ∗ 𝑓(𝑏)

> 0 𝑡𝑕𝑒𝑛 𝑝𝑟𝑖𝑛𝑡𝑓 (′𝑀𝑒𝑡𝑜𝑑𝑒 𝑡𝑖𝑑𝑎𝑘 𝑑𝑎𝑝𝑎𝑡 𝑑𝑖𝑗𝑎𝑙𝑎𝑛𝑘𝑎𝑛 \𝑛); 𝑏𝑟𝑒𝑎𝑘;

𝑒𝑙𝑠𝑒

𝑤𝑕𝑖𝑙𝑒 (𝑏 − 𝑎) > 𝑡;

𝑐 = (𝑎 + 𝑏)/2;

𝑝𝑟𝑖𝑛𝑡𝑓 (′𝐽𝑢𝑚𝑙𝑎𝑕 𝑙𝑖𝑡𝑒𝑟 𝑚𝑖𝑛𝑦𝑎𝑘 𝑦𝑎𝑛𝑔 𝑕𝑎𝑟𝑢𝑠 𝑡𝑒𝑟𝑗𝑢𝑎𝑙 𝑝𝑎𝑑𝑎 𝑖𝑡𝑒𝑟𝑎𝑠𝑖 𝑘𝑒

− %𝑑 𝑎𝑑𝑎𝑙𝑎𝑕 ∶

%𝑓 𝑑𝑒𝑛𝑔𝑎𝑛 𝑓(𝑐) = %𝑓 𝑑𝑎𝑛 𝑒𝑟𝑜𝑟 = %𝑓\𝑛, 𝑖, 𝑐, 𝑓(𝑐), 𝑎𝑏𝑠(𝑐 − 𝑎));

𝑖 = 𝑖 + 1;

𝑖𝑓 𝑓(𝑎) ∗ 𝑓(𝑐) > 0 𝑡𝑕𝑒𝑛 𝑎 = 𝑐;

𝑒𝑙𝑠𝑒𝑖𝑓 𝑓(𝑏) ∗ 𝑓(𝑐) > 0 𝑡𝑕𝑒𝑛 𝑏 = 𝑐;

𝑒𝑙𝑠𝑒 𝑏𝑟𝑒𝑎𝑘;

𝑒𝑛𝑑;

(8)

𝑒𝑛𝑑;

𝑝𝑟𝑖𝑛𝑡𝑓 (′𝐽𝑎𝑑𝑖, 𝑗𝑢𝑚𝑙𝑎𝑕 𝑙𝑖𝑡𝑒𝑟 𝑚𝑖𝑛𝑦𝑎𝑘 𝑦𝑎𝑛𝑔 𝑕𝑎𝑟𝑢𝑠 𝑡𝑒𝑟𝑗𝑢𝑎𝑙 𝑎𝑑𝑎𝑙𝑎𝑕 ∶ %𝑓 𝑑𝑒𝑛𝑔𝑎𝑛 𝑓(𝑐) = %𝑓 𝑑𝑎𝑛 𝑒𝑟𝑜𝑟 = %𝑓\𝑛, 𝑐, 𝑓(𝑐), 𝑎𝑏𝑠(𝑐 − 𝑎));

𝑒𝑛𝑑;

𝑒𝑛𝑑𝑓𝑢𝑛𝑐𝑡𝑖𝑜𝑛;

Gambar 1.2. Pseudocode Input Metode Bagi Dua 1.5 Output

Berikut ini adalah output untuk metode bagi dua pada pemrograman Scilab.

Gambar 1.3. Output Metode Bagi Dua

(9)

METODE SECANT

2.1 Permasalahan Kontekstual

Berikut ini adalah contoh permasalahan kontekstual yang akan diterapkan menggunakan metode secant.

Suatu lembaga bimbingan belajar, fungsi tenaga pengajar yang resign adalah 𝑓(𝑥) = 𝑥3 − 10𝑥 dan fungsi tenaga pengajar yang baru masuk adalah 𝑔(𝑥) = 𝑥2 + 4 . Dengan 𝑥 menyatakan tahun, 𝑓(𝑥) menyatakan jumlah tenaga pengajar yang resign, dan 𝑔(𝑥) menyatakan jumlah tenaga pengajar baru. Kapan terjadi keseimbangan antara jumlah tenaga pengajar yang keluar dan masuk?

2.2 Perhitungan Manual

Berikut ini adalah perhitungan secara manual untuk metode secant pada permasalahan kontekstual yang telah dipaparkan sebelumnya.

Tabel 2.1. Perhitungan Manual Metode Secant

𝑛 𝑥 − 1 𝑥 𝑥 1 𝑓(𝑥 − 1) 𝑓(𝑥) 𝑓(𝑥 1)

Eror

1 2 5 2,90909 -20 46 -16,9346 -2,090909

2 5 2,90909 3,47171 46 -16,9346 -8,92599 0,562627 3 2,90909 3,47171 4,09879 -16,9346 -8,92599 7,072050 0,627073 4 3,47171 4,09879 3,82158 -8,92599 7,072050 -1,00787 -0,277202 5 4,09879 3,82158 3,85616 7,072050 -1.00787 -0,09042 0,034577 6 3,82158 3,85616 3,85957 -1,00787 -0,09042 0,001337 0,003407 7 3,85616 3,85957 3,85983 -0,09042 0,001337 0,000178 -0,000043

(10)

Pendekatan akar dari 𝑓(𝑥) dengan Metode Secant sebanyak 7 iterasi adalah 𝑥 . Jadi, keseimbangan antara jumlah tenaga pengajar yang keluar dan masuk terjadi pada tahun ke-3.

2.3 Flowchart

Berikut ini disajikan flowchart untuk metode secant pada pemrograman Scilab.

(11)

2.4 Pseudocode Input

Berikut ini adalah pseudocode input untuk metode secant pada pemrograman Scilab.

funcprot(0);

function y=f(x);

y=(x^3)-(x^2)-(10*x)-4;

endfunction

function;

printf('Pencarian pendekatan akar menggunakan Metode Secant \n');

n=input('Masukkan jumlah iterasi : ');

x0=input('Masukkan tebakan pertama (x(0)) : ');

x1=input('Masukkann tebakan kedua (x(1)) : ');

printf('Nilai f(x0))=%f dan f(x(1))=%f\n', f(x0), f(x1));

i=1;

if f(x0)==0 then printf('%f adalah akar dari y=f(x) \n \n',x0);

elseif f(x1)==0 then printf('%f adalah akar dari y=f(x) \n \n',x1);

elseif f(x0)==f(x1) then printf('Metode tidak dapat dijalankan \n \n');

elseif f(x0)<>f(x1) then

printf('Metode dijalankan n\');

printf('Rumus = x(n+1)=x(n)-(((x(n)-x(n-1))*f(x(n)))/(f(x(n))-f(x(n- 1)))) \n');

x2=x1-(((x1-x0)*f(x1))/(f(x1)-f(x0)));

printf('Pendekatan akar pada iterasi ke-%d adalah x(%d)=%f, dengan eror=%f \n', i,i+1,x1,abs(x2-x1)); i=i+1;

while i<=n;

x0=x1;

x1=x2

x2=x1-(((x1-x0)*f(x1))/(f(x1)-f(x0)));

printf('Pendekatan akar pada iterasi ke-%d adalah x(%d)=%f, dengan eror=%f \n',i, i+1,x2,abs(x2-x1)); i=i+1

end;

(12)

end;

printf('\n');

printf('Pendekatan akar dari f(x) dengan Metode Secant sebanyak %d iterasi adalah x(%d)=%f \n', n, n+1, x2);

printf('Jadi, keseimbangan antara jumlah tenaga pengajar yang keluar dan masuk terjadi pada tahun ke-%d. \n \n', x2);

endfunction

Gambar 2.2. Pseudocode Input Metode Secant 2.5 Output

Berikut ini adalah output untuk metode secant pada pemrograman Scilab.

Gambar 2.3. Output Metode Secant

Referensi

Dokumen terkait