Solusi Penyelesaian Deret Maclaurin dari Fungsi Sin (x) Menggunakan Program C++ Lida Maulida FISIKA SAINS DAN TEKNOLOGI UIN SUNAN GUNUNG DJATI BANDUNG E-mail:
[email protected] Abstrak: Deret Taylor atau Deret MacLaurin ini sangat bermanfaat dalam metode numerik untuk menghitung atau menghampiri nilai-nilai fungsi yang susah dihitung secara manual seperti nilai sin x, cos x, ex , log x atau ln (x + 1). Praktikum fisika komputasi 1 kali ini adalah mencari bentuk solusi penyelesaian deret Maclaurin dari fungsi sin (x) dengan menggunakan program C++. Untuk dapat menentukan solusinya kita memerlukan beberapa fungsi yaitu fungsi pemfaktoran, Pemangkatan, Penjumlahan, dan fungsi pernyataan for. Hasil yang di dapat untuk nilai fungsu Sin 30 , yaitu 0.4794 dalam metode analitik dan 0.499967 dalam metode numerik menggunakan program C++. Kata kunci: Deret Maclaurin, Deret Taylor, solusi analitik, solusi numerik, program C++
1
2
1 1.1
Pendahuluan Metode Numerik
Fisika komputasi adalah studi implementasi numerik algoritma untuk memecahkan masalah 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 subbagian dari sains komputasi.Dalam fisika, berbagai teori yang berdasarkan permodelan matematika menyediakan prediksi yang akurat mengenai bagaimana sebuah sistem bergerak. Namun seringkali penggunaan permodelam matematika untuk sebuah sistem khusus yang bertujuan untuk menghasilkan prediksi yang bermanfaat tidak bisa dilakukan ketika itu. Hal ini terjadi karena solusi permasalahan tidak memiliki ekspresi bentuk tertutup (closed-form expression) atau terlalu rumit. Dalam banyak kasus, perkiraan numerik dibutuhkan. 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 operasi 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 pendekatanpendekatan yang dapat dipertanggung-jawabkan secara analitik. Metodenumerik 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 perhitungan yang mudah merupakan pertimbangan dalam pemakaian metode numerik. Mengingat bahwa algoritma yangdikembangkan dalam metode numerik adalah algoritma pendekatan maka dalamalgoritma tersebut akan muncul istilah iterasi yaitu pengulangan proses perhitungan. Dengan kata lain perhitungan dalam metode numerik adalah perhitungan yang dilakukansecara berulang-ulang untuk terus-menerus diperoleh hasil yang main mendekati nilai penyelesaian exact[3] .
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
1.2
Deret Maclaurin
3
1.2
Deret Maclaurin
Dalam matematika, deret Taylor adalah representasi fungsi matematika sebagai jumlahan tak hingga dari suku-suku yang nilainya dihitung dari turunan fungsi tersebut di suatu titik. Deret ini dapat dianggap sebagai limit polinomial Taylor. Deret Taylor mendapat nama dari matematikawan Inggris Brook Taylor. Bila deret tersebut terpusat di titik nol, deret tersebut dinamakan sebagai deret Maclaurin, dari nama matematikawan Skotlandia Colin Maclaurin [7] Deret
Maclaurin merupakan deret Taylor pada saat keadaan Z0 = 0. Suatu fungsi f(x) 0
00
000
yang memiliki turunan f (x) , f (x) , f (x) dan seterusnya yang kontinyu dalam interval I dan a, x I maka untuk x disekitar a yaitu |x − a| < R, f(x) dapat di ekspansikan kedalam Deret Taylor, dalam kasus khusus jika a = 0, maka disebut Deret Maclaurin atau sering disebut Deret Taylor Baku, dan didefinisikan sebagai berikut:
Definisi Deret Maclaurin:
f (x) = f (0) +
x 0 xn n f (0) + ... + f (0) + ...Rn (x) 1! n!
(1)
Deret Taylor atau Deret MacLaurin ini sangat bermanfaat dalam metode numerik untuk menghitung atau menghampiri nilai-nilai fungsi yang susah dihitung secara manual seperti nilai sin x, cos x, ex , log x atau ln (x + 1). Tentu kita tidak akan bisa menghitung nilai-nilai fungsi tersebut tanpa menggunakan bantuan kalkulator atau tabel. Dalam tulisan ini saya akan mencoba untuk mendekati fungsi-fungsi tersebut menggunakan Deret MacLaurin.
1.3
Program C++
C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup) merupakan 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, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemro-
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
1.3
Program C++
4
graman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (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 berorientasi 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 membagibagi masalah tersebut kedalam su-submasalah yang lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki sifat Pemrograman berorientasi objek, Untuk menyelesaikan 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) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
5
2
Metode Eksperimen
2.1
Prosedur
Pada praktikum fisika komputasi I , akan mencari solusi penyelesaian mengenai gerak dua dimensi khususnya untuk gerak parabola atau gerak peluru. Prosedur percobaannya adalah:
1. Membuat solusi untuk menentukan nilai faktorial dari sebuah bilangan. 2. Membuat solusi secara analitik aproksimasi fungsi sin (x) dengan menggunakan deret maclaurin. 3. Membuat solusi persamaan deret Maclaurin menggunakan program C++. 4. Menentukan nilai dari sin (300 ) dengan menggunakan program C++ yang sudah dibuat.
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
2.2
Diagram Alir
2.2
Diagram Alir
6
Mulai
solusi numerik faktorial dengan c++
solusi analitik
solusi numerik deret maclaurin dengan c++
pengolahan data
Selesai
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
7
Gambar 1: Program C++ untuk Faktorial
3 3.1
Hasil dan Pembahasan Solusi untuk menentukan nilai faktorial dari sebuah bilangan
Untuk menentukan nilai faktorial sebuah bilangan dalam program C++ kita perlu mendefinisikan variabel-variabel yang akan kita gunakan untuk pengeksekusian program. Berikut merupakan program C++ untuk mencari nilai faktor dari suatu bilangan:
Program diatas menjelaskan bahwa untuk dapat menentukan hasil faktorial dari suatu bilangan kita dapat menggunakan fungsi ”for”, jika kita memisalkan mencari besar faktorial dari 3 maka : ”cin=3” yang kita masukan pada terminal compailer program c++ maka program akan memprosesnya menggunakan gerbang logika for, jika bil=n=3 dan 3 >=1 dan 3 terus berkurang menuju 1 maka hasil yang baru adalah perkalian dari hasil yang lama yang dikalikan dengan bil=n=3. Berikut merupakan hasil dari compiler and run dari program C++:
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
3.2 solusi secara analitik aproksimasi fungsi sin (x) dengan menggunakan deret maclaurin
8
Gambar 2: Hasil Compiler dari Program C++ untuk 3 faktorial
3.2
solusi secara analitik aproksimasi fungsi sin (x) dengan menggunakan deret maclaurin
Jika kita mengembangkan sin x dalam deret pangkat x, maka kita perlu mencari turunanturunan dari fungsi tersebut terlebih dahulu:
fungsi
fungsi hasil
f (x) = sin x
f (0) = 0
0
f (x) = cos x 00
f (x) = -sin x 000
0
f (0) = 1 00
f (0) = 0 000
f (x) = -cos x
f (0) = -1
...
...
...
...
...
...
Maka,
Sinx = 0 + 1(x) +
Sinx = x−
0 2 −1 3 0 x + x + x4 + ... 2! 3! 4!
(2)
x3 x5 x7 x9 x2n−1 lim x2n+! (2n − 1)! + − + −...+)(−1)n−1 +... | | 3! 5! 7! 9! (2n − 1)! n →∼ (2n − 1)! x2n+! (3)
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
3.2 solusi secara analitik aproksimasi fungsi sin (x) dengan menggunakan deret maclaurin
Sinx =
lim 2 1 x =0 n →∼ 2n(2n + 1)
9
(4)
Jika Sin 30 = 0.5 kita tinggal mensubsitusikan nilai tersebut kedalam persamaan di atas.
Sinx = x −
x3 x5 x7 x9 + − + − ... 3! 5! 7! 9! 0.53 0.55 0.57 + − + ... 3! 5! 7!
(6)
0.125 0.03125 0.0078125 + − + ... 6 120 5040
(7)
Sin30 = 0.5 − Sin30 = 0.5 −
(5)
Sin30 = 0.4794
(8)
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
3.3
Solusi persamaan deret Maclaurin menggunakan program C++.
3.3
Solusi persamaan deret Maclaurin menggunakan program C++.
10
Untuk menentukan nilai deret dari sebuah fungsi Maclaurin dalam program C++ kita perlu mendefinisikan variabel-variabel yang akan kita gunakan untuk pengeksekusian program.type data yang di gunakan adalah double karena variabel yang akan ditampung adalah data pecahan dengan ukuran memori 8 byte. Dalam pembuatan program kali ini kita kembali menggunakan fungsi ”for”, pernyataan for berguna untuk mengulang pengeksekusian terhadap satu atau sejumlah pernyataan, seperti dalam kasus deret maclaurin ini. f or(ungkapan1; ungkapan2; ungkapan3) pernyataan tersebut identik dengan:
ungkapan 1; while (ungkapan 2) { pernyataan; ungkapan 3; } Ini sama artinya:
• ungkapan 1 merupakan pernyataan inisialisasi sebelum mesuk ke while
• ungkapan 2 berlaku sebagai kondisi yang menentukan pengulangan terhadap pernyataan atau tidak.
• ungkapan 3 digunakan sebagai pengatur variabel yang digunakan didalam ungkapan1. Tampak bisa terlihat penggunaan for, implementasinya akan menjadi lebih sederhana. Pada program kali ini kita menggunakan pernyataan for yang juga berada didalam pernyataan for. Berikut merupakan program dalam C++: Untuk hasil sin 30 kita bisa langsung compiler program sehingga menunjukan besar nilai Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
3.3
Solusi persamaan deret Maclaurin menggunakan program C++.
11
Gambar 3: Program C++ untuk Deret Maclaurin
Gambar 4: Hasil Sin 30 pada Program C++ untuk Deret Maclaurin untuk sin 30, berikut hasil compiler dari program C++:
Hasilnya mendekati dengan perhitungan analitik, jika dalam perhitukan analitik kita mendapatkan nilai sebesar 0.4794 dan pada program c++ didapatkan nilai sebesar 0.499967.
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
12
4
Kesimpulan
Untuk mencari Solusi penyelesaian deret maclaurin kita dapat menggunakan dua metode yaitu secara analitik walaupun kita harus beresiko menurunkan persamaan-persamaan yang sangat rumit dan secara numerik yang menggunakan program C++ itu lebih sederhana dan hasilnyapun memiliki keakuratan yang lebih baik dibandingkan metode analitik. Pada percobaan kali ini berhasil didapatkan nilai fungsu Sin 30 , yaitu 0.4794 dalam metode analitik dan 0.499967 dalam metode numerik menggunakan program C++.
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++
Pustaka
13
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 Pemrograman 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 : //id.wikipedia.org/wiki/DeretT aylor
Lida Maulida (1211703021) Deret Maclaurin Fungsi Sin (x) Menggunakan Program C++