Anda di halaman 1dari 12

KATA PENGANTAR

Dengan menucapkan puji syukur kehadirat Tuhan Yang Maha Esa, atas berkat rahmat serta
hidayah-Nya sehingga penyusun dapat menyelesaikan tugas makalah ini dengan baik.
Adapun judul dari makalah ini adalah “Cara Menyelesaikan Metode Biseksi dan metode newton
dengan menggunakan Program C++”. Disusun sebagai salah satu tugas yang harus di selesaikan.
Penyusun menyadari bahwa dalam penyusunan makalah ini masih jauh dari kesempurnaan, oleh
karena itu penyusun mengharapkan kritik dan saran yang sifatnya membangun demi kesempurnaan
makalah ini. Dengan demikian penyusun mengucapkan terima kasih.

                                                                                              Jakarta, 20 Mei 2018

                                                                                                         Penyusun
BAB I
PENDAHULUAN
1.1. Latar Belakang
Lahirnya bahasa C. Bahasa ini memungkinkan orang bekerja dengan sejumlah kata dan kalimat
tertentu. Kompiler bekerja dengan menerjemahkan program menjadi suatu bentuk intermediasi dan
disebut compiling serta menghasilkan file object.  Kemudian kompiler akan membangkitkan linker
yang mana akan mengubah file object menjadi suatu program yang executable (dapat dijalankan
langsung).
C merupakan bahasa pemograman tingkat menengah dan merupakan bahasa pemograman
terstruktur yang membagi program kedalam sejumlah blok. Tujuannya adalah untuk memudahkan
dalam pembuatan dalam pengembangan program. Program yang ditulis dengan C mudah sekali
dipindahkan dari satu jenis mesin ke mesin yang lain. Hal ini karena adanya standarisasi C yang
menjadi acuan pada pembuat campiler C.
Seiring berkembangnya teknologi, menuntut penggunaan metode numerik dan menjadikan
metode numerik salah satu instrument yang harus dipelajari. Pembelajaran metode numerik tentu
saja tidak terlepas dari Bahasa C. Penggunaan Bahasa C dalam pembelajaran metode numerik
mempermudah mahasiswa dan umum dalam menghitung program linear misalnya.

1.2. Tujuan

1. Untuk mengetahui bagaimana pengaplikasian Program C++ atau Bahasa C pada metode
numerik
2.  Sebagai salah satu tugas yang harus diselesaikan
BAB II
PEMBAHASAN

2.1. Sejarah
Bahasa komputer telah melali evolosi yang dramatis sejak komputer yang pertama kali
di buat untuk bantuan dalam kalkulasi sejak perang dunia ke-2. Awalnya programer bekerja
dengan intruksi komputer yang sangat primitif yaitu machine language (bahasa mesin). Pada
bahasa mesin intruksi-intruksi terdiri dari suatu kalimat panjang yang berupa tulisan 1 (satu)
dan 0 (nol). Selanjutnya Assembler digunakan untuk memetakan intruksi mesin ke momenises
yang dapat dibaca oleh manusia seperti ADD dan MOV.
Bahasa C++ dan C merupakan bahasa pendahuluan. C++ disiptakan oleh Bjarne dari
laboraturium Bell, AT dan T  pada tahun 1985. Adapun tanda ++ berasal dari operator increment
pada bahasa C. Tujuan utama C++ adalah untuk meningkatkan produktivitas pemograman dalam
membuat aplikasi.

2.2. Pengertian
2.2.a. Pengertian Bahasa C
Bahasa C adalah bahasa pemrograman terstruktur. Karenanya mahasiswa yang
mengikuti kuliah akan diajak untuk menggunakan jenis pemrograman yang terstruktur dan
sederhana. Tujuannya adalah agar mahasiswa dapat dengan mudah mengikuti dan mencoba
sendiri program-program yang digunakan dan dengan mudah mengerti makna dari setiap
kode program. Jika diperlukan atau dikehendaki maka mahasiswa dapat ”naik tingkat”
kedalam bahasa pemrograman yang bersifat objek oriented C++ yang merupakan ”varian”
dari C. Keuntungannya sintak yang digunakan dalam C++ sangatlah mirip dengan C.
Menguasai sintak C berarti menguasai sintak C++. Dengan landasan penguasaan sintaksis
maka mahasiswa tinggal menambah wawasan dan konsep bahasa pemrograman
polymorphism, classes, inheritance jika ingin beralih ke C++.
2.2.b. Pengertian Metode Numerik
Metode numerik adalah teknik-teknik yang digunakan untuk mempormulasikan
masalah matematis agar dapat dipecahkan dengan operasi perhitungan. Metode numerik
secara umum merupakan salah satu mata kuliah yang diajarkan di jurusan pendidikan
matematika. Dan dianggap penting karena mengajarkan mahasiswa memecahkan suatu
kasus dengan berbagai cara dan permodelan. Dalam mata kuliah ini juga mengharuskan
mahasiswanya untuk cekatan dan aktif dalam memaksimalkan teknologi.
Dalam pembahasan program tentang masalah pada mata kuliah numerik dan masalah
itu harus diselesaikan dengan menggunakan program C++.
Masalah yang harus diselesaikan adalah memecahkan persamaan linear untuk
menemukan temperatur Fluida minimum yang diperlukan untuk mendinginkan turnion dan
mendapatkan kontradiksi yang diinginkan.

2.3. Penerapan Bahasa C pada Metode Numerik


2.3.a. Permasalahan Akar Fungsi
Pada point ini akan mulai dibahas mengenai suatu metode numerik yang didasarkan
pada matematika diskret dan algoritma dan pemrograman yang telah dibahas pada bab yang
telah lalu. Lebih lanjut akan disajikan pula suatu permasalahan fisis yang dapat diselesaikan
melalui metode numerik yang dimaksud. Topik yang akan disajikan pada bab ini adalah
permasalahan akar fungsi yang merupakan permasalahan yang cukup fundamental dalam
matematika. Suatu nilai disebut sebagai akar dari sebuah fungsi jika nilai tersebut
menghasilkan luaran 0 (nol) saat dimasukan ke dalam fungsi yang dimaksud. Oleh
karenanya permasalahan akar ini seringkali disebut sebagai pencarian titik nol. Untuk suatu
fungsi linear maka nilai akar (titik nol) baginya dapat diperoleh dengan mudah, oleh
karenanya dalam bab ini akan dibahas mengenai pencarian akar pada fungsi-fungsi yang
tak linear. Banyak contoh fungsi yang tak linear dalam metematik diantaranya adalah
fungsi polinom dan fungsi-fungsi trigonometrik. Untuk jenis fungsi-fungsi nonlinear
tersebut terdapat beberapa metode numerik dapat digunakan untuk memperoleh nilai
akarnya, berikut adalah beberapa metode yang dimaksud.
2.3.a.1.Metode Bisection
Metode bisection merupakan metode paling sederhana bagi penyelesaian akar fungsi
tak linear pada suatu interval yang diketahui. Kelebihan dari metode ini adalah bisa
digunakan bagi sembarang fungsi termasuk pada suatu fungsi-fungsi yang tidak bisa
diselesaikan secara analitik. Berdasarkan namanya seseungguhnya kita bisa menebak secara
intuitif maksud dari metode ini, yaitu jika pada suatu interval tertentu terdapat suatu akar
dari fungsi maka interval tersebut dibagi menjadi dua interval baru. Lalu dapat dipastikan
diantara kedua interval yang terbentuk tersebut terdapat satu interval yang memuat akar
(titik nol) fungsi.

Pertama asumsikan bahwa pada interval x = a dan x = c atau dapat


dituliskan [a, c], terdapat satu buah akar bagi sebuah fungsi seperti
ditunjukan gambar di atas (perhatikan panah biru pada gambar). Kemudian
metode Bisection bekerja berdasarkan fakta bahwa tanda pada dua sisi
yaitu kiri dan kanan titik nol adalah berlawanan, yaitu f(a) positif dan f(c)
negatif. Maka langkah dalam metode Bisection untuk memdekati nilai akar
adalah sebagai berikut:

1. Pertama membagi interval menjadi dua (Bisect) yaitu [a, b] dan [b, c] dimana b = (a +
c)/2.
2. Mencari interval yang masih mengandung akar fungsi dengan cara melakukan perkalian
antara f(a)f(b) dan f(b)f(c). Jika f(a)f(b) ≤ 0 maka interval [a, b] mengandung akar
fungsi. (lihat gambar)
3. Interval [a, b] dibagi menjadi dua lagi ”di-Bisect” dan prosedur pencarian interval yang
mengandung akar fungsi dilakukan secara berulang.
4. Pada setiap langkah titik tengah interval akan digunakan sebagai nilai pendekatan bagi
akar fungsi yang dimaksud/dicari. Setelah n langkah perulangan maka akan diperoleh

c–a
—— (6.1)
2n

Nilai ini dapat digunakan untuk menentukan batas toleransi bagi program
untuk melakukan iterasi sampai mencapai interval terkecil. Jika diberikan
toleransi ∈maka berlaku

c–a
—— (6.2)
2n
atau dapat dituliskan sebagai

n ≥ ln c – a
—— (6.3)

Sebagai contoh jika interval awal adalah [0, 1] dan ∈ = 0.0001 maka n = 14.

Contoh : Hitunglah akar fungsi berikut dengan menggunakan metode bisect


pada interval [0, 2] dan toleransi ∈= 0, 01

ex − 2 = 0 (6.4)

Berikut ini adalah kode program yang berdasarkan pada metode Bisection untuk
menyelesaikan permasalahan persamaan di atas.

#include <stdio.h>
#include <math.h>

double func(double x){


return exp(x) -2.0;
}

int main(void){
double leftpt, rightpt, midpt, epsilon = 0.0000001;
double midvalue, rtvalue, root;

printf("\nEnter values for starting left and right points:\n");


scanf("%lf %lf", &leftpt, &rightpt);
printf(" Left and right starting points are: %lf , %lf\n", leftpt,rightpt);
do {
midpt = (leftpt + rightpt)/2;
rtvalue = func(rightpt);
midvalue = func(midpt);
if (rtvalue * midvalue >= 0)
rightpt = midpt; else leftpt = midpt;
} while ((rightpt - leftpt) > epsilon);
root = (rightpt+leftpt)/2;
printf("\nRoot is: %15.10lf\n", root);
return 0;
}

Ubahlah kode sumber di atas untuk mencari akar fungsi polynomial


f(x) = x3 − 3x2 − x + 3.

2.3.a.2. Metode Newton


Pada bagian sebelumnya telah dijelaskan mengenai suatu metode yang sangat
sederhana penyelesaian numerik bagi permasalahan pencarian akar suatu fungsi. Pada
bagian ini akan dijelaskan metode yang lain yaitu metode Newton atau yang dikenal pula
dengan metode Newton-Raphson. Kelebihan dari metode ini adalah dapat digunakan untuk
menyeleaikan permasalahan akar kompleks dan bahkan bisa diterapkan pada persamaan-
persamaan nonlinear secara simultan. Akan tetapi ada satu titik kelemahan dalam metode
ini yaitu diperlukan suatu titik tebakan awal bagi nilai akar dari suatu fungsi.
Metode Newton dapat diperoleh dari deret Taylor sebagai berikut

Dimana h = x−a dan f’, f”, adalah beturut-turut turunan pertama, kedua dan seterusnya dari
fungsi f. Untuk suatu nilai tebakan X0 dan pendekatan dua suku pertama maka berlaku

Dimana h = x − x0. Dengan menyelesaikan persamaan di atas maka dapat diperoleh

Yang kemudian secara suksesif dapat diperoleh kaitan:

Dari uraian di atas maka sesungguhnya proses pencarian akar dengan


metode Newton ini dapat diilustrasikan sebagai berikut
Suatu hal yang perlu diingat pada metode ini adalah diperlukan turunan bagi suatu
fungsi yang ingin diketahui nilai akarnya menggunakan metode ini. Oleh karenanya tidak
sembarang fungsi dapat diselesaikan, melainkan hanya fungsi yang mempunyai turunan
yang kontinyu.
Quiz: Dengan menggunakan metode Newton carilah hasil akar pangkat tiga berikut x =
√3 a untuk nilai a = 155.
Contoh lain program pencarian titik nol dengan metode Newton–Raphson

#include <stdio.h>
#include <math.h>
float fung(float x);
float dfung(float x);

int main(int argc, char * argv[])


{
float x0, x1, delta, tol;
int i, imak;
imak = 20;
tol= 1.0e-4;
printf("Berikan masukan nilai x0 = ");
scanf("%f", &x0);
printf("\n");

i = 0;
do
{
i = i + 1;
x1 = x0 - fung(x0)/dfung(x0);
delta = x1 - x0;

if (delta < 0)
delta = -delta;

printf("Hasil iterasi ke-%d adalah %f\n", i, x1);

x0 = x1;
} while ((delta > tol) && (i < imak));

printf("\nNilai akar = %f\n", x1);


}
float fung(float x)
{
return x*x*x-155;
}
float dfung(float x)
{
return 3*x*x;
}

Berikut hasil luaran setelah program dijalankan


Berikan masukan nilai x0 = 4
Hasil iterasi ke-1 adalah 5.895833
Hasil iterasi ke-2 adalah 5.416902
Hasil iterasi ke-3 adalah 5.372062
Hasil iterasi ke-4 adalah 5.371686
Hasil iterasi ke-5 adalah 5.371686
Nilai akar = 5.371686

Perlu diketahui bahwa nilai tersebut merupakan nilai eksak bagi fungsi tersebut.
BAB III
KESIMPULAN

Dalam menyelesaikan akar-akar persamaan linear dan nonlinear yang menggunakan


metode biseksi (bisection) dan metode newton dalam progam C++ , perlu kita pahami betul
persamaan yang diberikan agar supaya dalam penyelesaian nanti tidak ada kesalahan. Sehingga
tidak dapat dipastikan bahwa dia memiliki akar atau tidak serta dapat kita ketahui nilainya
apakah kurang dari nol atau lebih dari nol.
DAFTAR PUSTAKA
https://www.academia.edu/28837022/Makalah_metode_Numerik_dengan_program_C?
auto=download
https://www.academia.edu/19793280/Metode_Numerik
https://www.academia.edu/8847127/Pemrograman_dan_Metode_Numerik_Untuk_Fisika_Contents
Makalah Metode Numerik
“Cara Menyelesaikan Metode Biseksi dan metode newton
dengan menggunakan Program C++”

Penyusun:

Charis David Sitio (2016 11 164)

Denny Rusmansyah (2016 11 166)

Dio Alief Syuhada (2016 11 168)

Emilius K. P. Sasi (2016 11 171)

Rei Kausar Tanjung (2016 11 204)

Savira Ramadhanti (2016 11 208)

Sirilus Dwirawan (2016 11 210)

SEKOLAH TINGGI TEKNIK – PLN


JAKARTA
2018

Anda mungkin juga menyukai