Laporan Praktikum Fisika Komputasi 1
(Solusi Penyelesaian Akar Persamaan Menggunakan Program C++)
Diajukan untuk memenuhi tugas mata kuliah Praktikum Fisika Komputasi 1
Disusun Oleh : Lida Maulida (1211703021)
Jurusan Fisika
Fakultas Sains dan Teknologi
Universitas Islam Negri Sunan Gunung Djati Bandung
2014
Daftar Isi
1 PENDAHULUAN 1
1.1 Latar Belakang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Tujuan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Rumusan Masalah . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Tinjauan Pustaka 3
2.1 Metode Numerik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Metode Bisection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Metode Newton-Rhapson . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Program C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Metode Eksperimen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5.1 Prosedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5.2 Diagram Alir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Hasil dan Pembahasan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6.1 Solusi untuk menentukan akar persamaan dengan Metode Bisection 9
2.6.2 Solusi untuk menentukan akar persamaan dengan Metode Newton
- Rhapson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.6.3 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6.4 Lampiran Program modifikasi . . . . . . . . . . . . . . . . . . . . 13
DAFTAR PUSTAKA 14
ii
Bab 1
PENDAHULUAN
1.1 Latar Belakang
Secara garis besar, ilmu fisika dapat dipelajari lewat 3 jalan, yaitu pertama, dengan meng-
gunakan konsep atau teori fisika yang akhirnya melahirkan fisika teori. Kedua, dengan cara
eksperimen yang menghasilkan aliran fisika eksperimental, dan ketiga, fisika bisa dipela-
jari lewat simulasi fenomena alam yang sangat mengandalkan komputer serta algoritma
numerik[1].
Dalam bidang rekayasa, kebutuhan untuk menemukan solusi persoalan secara praktis ada-
lah jelas. Dari kacamata rekayasawan, masih tampak banyak cara penyelesaian persoalan
matematik yang dirasa terlalu sulit atau dalam bentuk yang kurang kongkrit. Penyelesaian
analitik yang sering diberikan oleh kaum matematika kurang berguna bagi rekayasawan,
karena ia harus dapat mentransformasikan solusi matematika yang sejati ke dalam bentuk
berwudud yang biasanya meninggalkan kaidah kesejatiannya [BES97]. Solusi hampiran bi-
asanya sudah memenuhi persyaratan rekayasa dan dapat diterima sebagai solusi. Lagipula,
banyak persoalan matematika dalam bidang rekayasa yang hanya dapat dipecahkan secara
hampiran. Kadang-kadang dapat pula terjadi bahwa metode analitik hanya menjamin ke-
beradaan (atau hanya mengkarakteristikkan beberapa properti umum) solusi, tetapi tidak
memberikan cara menemukan solusi tersebut[KRE88].
Metode numeric digunakan untuk menyelesaikan persoalan dimana perhitungan secara ana-
litik tidak dapat digunakan. Metode numeric ini berangkat dari pemikiran bahwa per-
masalahan dapat diselesaikan dengan menggunakan pendekatan-pendekatan yang dapat
1
1.2. Tujuan 2
dipertanggung-jawabkan secara analitik. Metode numerik ini disajikan dalam bentuk algoritma-
algoritma yang dapat dihitung secara cepat dan mudah.Pendekatan yang digunakan dalam
metode numerik merupakan pendekatan analisis matematis. Sehingga dasar pemikirannya
tidak keluar jauh dari dasar pemikiran analitis, hanya saja pemakaian grafis dan teknik per-
hitungan yang mudah merupakan pertimbangan dalam pemakaian metode numerik. Meng-
ingat bahwa algoritma yangdikembangkan dalam metode numerik adalah algoritma pende-
katan maka dalam algoritma tersebut akan muncul istilah iterasi yaitu pengulangan proses
perhitungan.Dengan kata lain perhitungan dalam metode numerik adalah perhitungan yang
dilakukan secara berulang-ulang untuk terus-menerus diperoleh hasil yang main mendekati
nilai penyelesaian exact.
1.2 Tujuan
Tujuan dari praktikum fisika komputasi I ini adalah memahami algoritma metode bisection
dan Newton-Rhapson dalam mencari akar sebuah persamaan.
1.3 Rumusan Masalah
1 . Bagaimana mencari solusi akar persamaan untuk Metode Bisection dengan meng-
gunakan program C++.
2 . Bagaimana mencari solusi akar persamaan untuk Metode Newton-Rhapson dengan
menggunakan program C++
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
Bab 2
Tinjauan Pustaka
2.1 Metode Numerik
Fisika komputasi adalah studi implementasi numerik algoritma untuk memecahkan masa-
lah di bidang fisika di mana teori kuantitatif sudah ada [2].Dalam sejarah, fisika komputasi
adalah aplikasi ilmu komputer modern pertama di bidang sains, dan sekarang menjadi su-
bbagian dari sains komputasi.Dalam fisika, berbagai teori yang berdasarkan permodelan
matematika menyediakan prediksi yang akurat mengenai bagaimana sebuah sistem berge-
rak. Namun seringkali penggunaan permodelam matematika untuk sebuah sistem khusus
yang bertujuan untuk menghasilkan prediksi yang bermanfaat tidak bisa dilakukan keti-
ka itu. Hal ini terjadi karena solusi permasalahan tidak memiliki ekspresi bentuk tertutup
(closed-form expression) atau terlalu rumit. Dalam banyak kasus, perkiraan numerik di-
butuhkan. Fisika komputasi adalah subjek yang berhubungan dengan berbagai perkiraan
numerik; perkiraan solusi yang ditulis sebagai sejumlah besar bilangan terbatas (finite) dari
operasi matematika sederhana (algoritma), dan komputer digunakan untuk melakukan ope-
rasi tersebut dan menghitung solusi dan errornya.[2].
Seperti telah dibahas di atas, metode numeric digunakan untuk menyelesaikan persoalan
dimana perhitungan secara analitik tidak dapat digunakan. Metode numeric ini berangkat
dari pemikiran bahwa permasalahan dapat diselesaikan dengan menggunakan pendekatan-
pendekatan yang dapat dipertanggung-jawabkan secara analitik. Metodenumerik ini disa-
jikan dalam bentuk algoritma-algoritma yang dapat dihitung secara cepat dan mudah.
Pendekatan yang digunakan dalam metode numerik merupakan pendekatan analisis mate-
3
2.1. Metode Numerik 4
matis. Sehingga dasar pemikirannya tidak keluar jauh dari dasar pemikiran analitis, hanya
saja pemakaian grafis dan teknik perhitungan yang mudah merupakan pertimbangan dalam
pemakaian metode numerik. Mengingat bahwa algoritma yangdikembangkan dalam meto-
de numerik adalah algoritma pendekatan maka dalamalgoritma tersebut akan muncul istilah
iterasi yaitu pengulangan proses perhitungan. Dengan kata lain perhitungan dalam meto-
de numerik adalah perhitungan yang dilakukansecara berulang-ulang untuk terus-menerus
diperoleh hasil yang main mendekati nilai penyelesaian exact[3].
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.2. Metode Bisection 5
Gambar 2.1: Kurva fungsi untuk Metode Bisection
2.2 Metode Bisection
Metode bagi dua atau bisection adalah algoritma pencarian akar pada sebuah interval. in-
terval tersebut membagi dua bagian, lalu memilih dari dua bagian ini dipilih mana yang
mengandung akar dan bagian yang tidak mengandung akar dibuang. hal ini dilakukan
berulang-ulang hingga diperoleh akar persamaan yang mendekati akar persamaan. Metode
ini akan berlaku ketika ingin memecahkan persamaan f(x) = 0 dengan f merupakan fungsi
kontinue[7].
Metode Bisection merupakan salah satu metode tertutup untuk menentukan solusi akar dari
persamaan non linier dengan prinsip utama sebagai berikut:
1. Menggunakan dua buah nilai awal untuk mengurung salah satu atau lebih akar persa-
maan non linear.
2. Nilai akarnya diduga melalui nilai tengah antara dua nilai awal yang ada.
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.3. Metode Newton-Rhapson 6
Gambar 2.2: Kurva fungsi untuk Newton-Rhapson
2.3 Metode Newton-Rhapson
Metode Newton-Rhapson adalah metode pencarian akar suatu fungsi f(x) dengan pendeka-
tak satu titik, dimana fungsi f (x) mempunyai turunan. metode ini dianggap lebih mudah
dari metode bisection karena metode ini menggunakan pendekatan satu titik sebagai titik
awal. semakin dekat titik awal yang kita pilih dengan akar sebenarnya, maka semakin ce-
pat konvergen ke nilai akarnya[8]. Metode Newton-Rhapson merupakan salah satu metode
terbuka untuk menentukan soluai akar dari persamaan non linear, dengan prinsip utama se-
bagai berikut:
1. Metode ini melakukan pendekatan terhadap kurva f(x) dengan garis singgung (gradi-
en) pada suatu titik niali awal.
2. Nilai taksiran selanjutnya adalah titik potong antara garis singgung (gradien) kurva
dengan sumbu x.
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.4. Program C++ 7
2.4 Program C++
C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup) meru-
pakan perkembangan dari bahasa C dikembangkan di Bell Labs (Dennis Ritchie) pada awal
tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B, Pada awalnya, ba-
hasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix,
Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemro-
graman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam
pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pa-
da Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung
fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat ren-
dah (low level coding).[4] Pada C++ ditambahkan konsep-konsep baru seperti class dengan
sifat-sifatnya seperti inheritance dan overloading.[butuh rujukan] Salah satu perbedaan yang
paling mendasar dengan bahasa C adalah dukungan terhadap konsep pemrograman berori-
entasi objek (Object Oriented Programming).[5]
Perbedaan Antara Bahasa pemrograman C dan C++ meskipun bahasa-bahasa tersebut
menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, C merupakan bahasa
pemrograman prosedural, dimana penyelesaian suatu masalah dilakukan dengan membagi-
bagi masalah tersebut kedalam su-submasalah yang lebih kecil, Selain itu, C++ merupakan
bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menye-
lesaikan masalah, C++ melakukan langkah pertama dengan menjelaskan class-class yang
merupakan anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik,
Class tersebut berisi keadaan object, anggota-anggotanya dan kemampuan dari objectnya,
Setelah beberapa Class dibuat kemudian masalah dipecahkan dengan Class.[6]
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.5. Metode Eksperimen 8
2.5 Metode Eksperimen
2.5.1 Prosedur
Pada praktikum fisika komputasi I , akan mencari solusi penyelesaianakar persamaan de-
ngan menggunakan Metode Bisection dan metode Newton-rhapson dengen mengunakan
program C++:
1. Membuat Fungsi pada keadaan awal dengan menggunakan program C++.
2. Membuat Program utama untuk pengeksekusian fungsi yang telah di buat dengan
memvariasikan nilai iterasi dengan menggunakan program C++.
3. Mencari solusi persamaan akar dengan menggunakan program C++.
2.5.2 Diagram Alir
Mulai
solusi numerik fungsi dengan c++
solusi numerik akar persamaan dengan C++
Pengolahan Data
Selesai
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.6. Hasil dan Pembahasan 9
Gambar 2.3: Program C++ untuk Metode Bisection
2.6 Hasil dan Pembahasan
2.6.1 Solusi untuk menentukan akar persamaan dengan Metode Bisection
Ada beberapa langkah yang harus kita perhatikan dalam pencarian solusi akar persamaan
dengan menggunakan metode Bisection yaitu:
Menentukan nilai awal keadaan xa dan xb. Lalu memeriksa konvergensi dari fungsi f(a) dan
f(b), jika tanda f(a) tidak sama dengan f(b) nilai awal dapat digunakan untuk iterasi selan-
jutnya tapi jika tanda f(a) sama dengan tanda f(b), pilihlah nilai awal yang baru. jika sudah
mendapatkan nilai tebakan yang pas lakukan proses iterasi. Lakukan perhitungan terhadap
nilai xc dengan menggunakan persamaan:
xc =(xa+ xb)
2(2.1)
Periksa kembali konvergensi dari niali xc. Dengan menggunakan program C++ maka kita
dapat membuat program seperti ini:
Dengan mendefinisikan fungsi keadaan awal dan turunan pertamanya sebagai permula-
an, kemudian kita masuk untuk program utamanya yaitu mendefinisikan nilai tebakan awal
untuk nilai xa dan xb (a dan b) sebagai acuan yang akan terus digunakan utuk mencari akar
persamaan di iterasi selanjutnya, jika nilai xa dan xb sudah memenuhi syarat bahwa f(a)
tidak sama dengan f(b).
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.6. Hasil dan Pembahasan 10
Gambar 2.4: Hasil untuk Metode Bisection
f(a) 6= f(b) (2.2)
Pada program yang di buat banyak iterasi yaitu 25, maka program akan terus bekerja mela-
kukan perulangan sampai 25 kali. Pada saat di compile hasil yang di dapatkan untuk nilai
xc adalah:
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.6. Hasil dan Pembahasan 11
Gambar 2.5: Program untuk Metode Newton-Rhapson
2.6.2 Solusi untuk menentukan akar persamaan dengan Metode Newton -
Rhapson
Dalam pencarian akar persamaan menggunakan Metode Newton-Rhapson kita perlu men-
definisikan nilai awal dati x = x0 berapa, kemudian mensubsitusikannya kesalam persamaan
fungsi yang sudah dibuat sebelumnya dan periksa kesesuaian dengan konvigurasi dari f(x0)
itu sendiri. kemudian lakukan penurunan terhadap fungsi awal f(x0) agar mendapatkan f′(x)
lalu hitung nilai dari f′(x) dengan memasukkan nilai x0. lakukan beberapa proses iterasi
sampai mendapatkan taksiran nilai akar yang selanjutnya dengan menggunakan persamaan:
Xk+1 = Xk −f(Xk)
f ′(Xk)(2.3)
Berikut merupakan program C++ untuk menemukan solusi akar persamaan dengan
menggunakan Metode Newton-Rhapson:
Dalam program ini banyaknya iterasi adalah 25, dimana kita akan mengulang trus proses
perhitungan sampai dengan 25 kali, dengan menentukan keadaan awal untuk x0 nantinya
kita akan mendapatkan akar pesamaan dari funfsi tersebut. setelah di compaile program
tersebut menunjukan hasil seperti berikut:
Iterasi dapat di hentikan pada iterasi ke-20
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.6. Hasil dan Pembahasan 12
Gambar 2.6: Hasil untuk metode newton-rhapson
2.6.3 Kesimpulan
Untuk mencari akar persamaan suatu fungsi kita dapat menggunakan Metode Bisection
dan Metode Newton-Rhapson. Kedua metode tersebut memiliki kelebihan dan kekurangan
masing-masing, untuk itu perlu mengkaji ulang persoalan agar dapat denga tepat menggu-
nakan ke dua metode tersebut.
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
2.6. Hasil dan Pembahasan 13
2.6.4 Lampiran Program modifikasi
Methode Bisection
#include<iostream>
#include<math.h>
using namespace std;
//fungsi
float fungsi (float x)
{
float fx;
fx=x*(x*x)+3*(x*x)+8*(x)+10;
return fx;
}
float fd (float x)
{
float fdx;
fdx=3*(x*x)+6*x+8;
return fdx;
}
//program utama
double x,fx,dx,xa,xb,xc,n, fxa, fxb;
int main()
{
cout << "Masukkan Nilai xa = ";cin >> xa;
cout << "Masukkan Nilai xb = ";cin >> xb;
for (n=1; n<=25; n++)
{
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
Pustaka 14
xc=(xa+xb)/2;
if((xb)*(xc)<0){xa=xc;
}
else((xb)*(xc)>0);
{xb=xc
;}
cout <<xc<< endl;
}
}
Pustaka
[1] Suparno, Supriyanto. 2007. Komputasi Untuk Sains dan Teknik. FMIPA. Universitas
Indonesia.
[2] Thijssen, Joseph. 2007. Computational Physics; Cambridge University Press.
[3] https://www.academia.edu/4532357/Metode Numerik Sebagai Algoritma Komputasi.
(Diakses pada 30September 2014).
[4] Hanif al fatta .2006. Dasar Pemrograman C++ disertai dengan Pengenalan Pemro-
graman Berorientasi Objek. ISBN 979-763-582-1.
[5] Bruce Eckel (2000). Thinking in C++. Jilid 1 dari Thinking in C++ Introduction to
Standard C+, Bruce Eckel. ISBN 0139798099, 9780139798092.
[6] Bjarne Stroustrup .2000. The C++ programming language, Prentice Hall, 2000. ISBN
0201889544, 9780201889543.
[7] http: //aimprof08.wordpress.com/2012/08/31/metode-newton-raphson-newton-
raphson-method/
[8] http: //aimprof08.wordpress.com/2012/08/31/metode-bagi-dua-bisection-method/
Lida Maulida (1211703021) Solusi Akar Persamaan Menggunakan Program C++
Top Related