Anda di halaman 1dari 24

Kegiatan Belajar 1 Program Sederhana

Dalam ilmu matematika permasalahan yang sederhana maupun yang kompleks dapat diselesaikan secara analitik, ada formula atau rumus yang langsung dapat digunakan. Namun, seringkali kita tidak dapat menemukan formula analitiknya, yang ada adalah formula numerik berupa algoritma. Untuk menyelesaikan suatu algoritma dibutuhkan pemrograman yang cukup komplek. Dalam kegiatan belajar kali ini, kita akan mempelajari bagaimana menyelesaikan permasalahan matematika dengan menggunakan program. Kemudian kita juga akan mencoba menyelesaikan permasalahan matematika dengan solusi numerik. Untuk dapat membuat suatu program sendiri dari software MATLAB, Anda harus paham penggunaan M-File atau yang dikenal dengan Editor di dalam MATLAB. Sebelum membuat program, akan dijelaskan terlebih dahulu mengenai M-File ini beserta beberapa menu di dalamnya. M-File Editor Pertama, untuk masuk ke M-File Editor Anda harus membuka MATLAB terlebih dahulu. Kemudian klik menu : File New M-file. Maka akan muncul jendela baru dengan nama Editor-Untitled seperti gambar di bawah ini :

Di bagian atas terdapat bermacam-macam menu untuk membantu anda membuat program, di antaranya ada File, Edit, Text, dst. Kemudian di bawahnya adalah panel shortcut/jalan pintas, serta yang dipojok kanan bawah adalah indikator letak pointer berada. Ini sangat berguna dan sangat membantu dalam proses running program dan terjadi eror maka MATLAB akan memberitahukan dimana letak eror tersebut. Sama halnya seperti command window, dengan m-file ini anda dapat mengetikkan vektor dan matriks dan operasi lainnya seperti pada modul sebelumnya. Hanya saja anda tidak bisa langsung melihat hasilnya kecuali telah anda simpan (save) dan running program tersebut. Untuk menyimpan program yang telah anda buat klik menu : File Save... kemudian simpan sesuai dengan nama program Anda. Ingat hal ini penting!!! Karena jika anda menyimpan menggunakan nama yang berbeda dengan nama program, maka program anda tidak bisa dijalankan. Selain cara ini, untuk menyimpan sekaligus menjalankan program Anda, Anda bisa mengklik menu : Debug Save and Run atau bisa langsung dengan menekan tombol F5 dari keyboard Anda. Jika anda membuat program sendiri, anda harus memperhatikan urutan langkahnya, pastikan bahwa urutan langkah telah benar sehingga program bisa berjalan dengan baik tanpa terjadi kesalahan syntax ataupun kesalahan logika. Contoh 1 : Diberikan suatu data sampel mengenai tinggi badan 11 orang (dalam cm), TB = 160, 155, 100, 179, 148, 126, 180, 169, 158, 146, 132. Ingin dicari rata-rata dan variansi tinggi badan dari sampel tersebut. Jawab : Secara manual, pertanyaan ini mudah dijawab. Anda tahu rumusnya dan anda lakukan komputasinya. Rumus untuk mencari rata-rata sampel yaitu :

Sedangkan rumus variansi sampel yaitu : (

Jika X adalah tinggi badan maka secara manual diperoleh :

( ) ( ) ( )

Dengan demikian, didapatkan bahwa rata-rata tinggi badan sebesar 150,27 sedangkan variansinya sebesar 571,02. Menghitung dengan menggunakan proses manual tidaklah efektif. Proses menghitung rata-rata dan variansi di atas dapat juga dibuatkan programnya, seperti yang anda sering lihat di kalkulator, excel dan software lain. Anda telah tahu bahwa untuk mencari rata-rata dan variansi pada MATLAB, Anda hanya perlu menggunakan perintah mean dan var. Namun sekarang akan dicoba menggunakan langkah yang berbeda, hal ini dimaksudkan untuk melatih alur logika berpikir Anda. Cobalah anda perhatikan dan praktekkan susunan program di bawah ini. Perhatikan pula mengenai penjelasan yang diberikan berikutnya :

Setelah Anda selesai mengetikkan perintah seperti pada gambar di atas pada m-file, lalu simpanlah m-file tersebut dengan nama file contoh.m. Program di atas diberi nama file contoh.m, nama file ini sesuai dengan nama program yang dibuat pada perintah function yaitu contoh(data). Jadi jika program anda bernama programsaya(data) anda harus menyimpannya dengan nama file programsaya.m. Selanjutnya, pada program yang dibuat di m-file diperhatikan pula urutan langkahnya harus benar sehingga bisa dirunning dengan baik dan tidak terjadi kesalahan syntax maupun logika. Seperti contoh di atas, pada langkah pertama Anda harus mendefinisikan variabel n, jum1 dan jum2 baru kemudian baru mencari mean dan variansi melalui iterasi. Sekarang akan dijelaskan mengenai perintah-perintah yang terdapat pada contoh di atas. 1. function Perintah function adalah perintah untuk mendefinisikan nama program Anda. function contoh(data) artinya program ini bernama contoh, dan dapat dipanggil jika variabel data telah ada. Pemanggilan dilakukan pada command window dengan perintah contoh(nama_data). 2. length Perintah ini untuk menghitung banyaknya data. Dalam contoh di atas, variabel n digunakan untuk menyimpan banyaknya data. 3. for <kondisi> <ekspresi> end Perintah ini berguna dalam proses iterasi. Dalam perintah ini Anda harus menentukan indek apa yang berjalan, dari nilai batas bawah ke nilai batas atas, kemudian berikan ekspresi yang diperlukan di dalam iterasinya seperti apa dan jangan lupa Anda harus mengakhirinya dengan end. MATLAB akan mengeksekusi ekspresi sebanyak kondisi yang ditentukan. Pada contoh di atas, indek yang berjalan adalah i yang berjalan dari 1 hingga n. Statement yang diperlukan yaitu jum1=jum1+data(i). Logika berpikir dalam statement ini adalah :

nilai awal jum1 adalah 0, kemudian pada iterasi pertama misalnya, nilai jum1 baru berasal dari jum1 awal ditambah dengan data ke-1, selanjutnya pada iterasi kedua, nilai jum1 baru berasal dari jum1 pada iterasi pertama ditambah data ke-2, begitu seterusnya hingga iterasi ke-n. jum1=0 Iterasi ke-1 Iterasi ke-2 Dst. Iterasi terakhir jum1=jum1+data ke-1 jum1=jum1+data ke-2

Jum1 = jum1+data ke-n

Ingat bahwa nilai dari variabel jum1 akan berubah secara dinamis dari iterasi ke iterasi. 4. disp Untuk menampilkan karakter, format baku penulisannya disp( ), karakter harus ditulis di antara tanda petik satu. num2str mengubah angka yang bersifat numerik menjadi string/karakter. Format penulisan num2str(...). Dalam tanda kurung diisi dengan variabel yang diinginkan.

5.

Itulah beberapa perintah yang terdapat pada contoh di atas. Diharapkan anda telah paham mengenai perintah-perintah tersebut baik kegunaannya dan cara menggunakannya. Anda diharapkan juga mempelajari perintah-perintah lain untuk memperkuat kemampuan pemrograman anda. Kembali ke contoh tadi, pastikan bahwa Anda telah menyimpannya dengan nama contoh.m. Jangan langsung menekan F5 pada keyboard Anda atau mengklik menu : Debug Run atau melalui shortcutnya karena hal itu

menyebabkan terjadinya error/kesalahan berikut ini yang ditampilkan pada jendela utama pada panel command window : ??? Input argument "data" is undefined. Error in ==> contoh at 2 n=length(data); Kesalahan di atas menunjukkan bahwa variabel data belum terdefinisi karena anda belum menyimpan data yang diperlukan. Sekarang anda perlu menyimpan data untuk input program contoh di atas, misalkan dengan nama variabel tinggi. Selanjutnya, definisikan variabel tinggi pada command window. Perintahnya dapat dilihat sebagai berikut : >> tinggi=[160 155 100 179 148 126 180 169 158 146 132]; Kemudian Anda panggil program contoh. Lakukan perintah seperti berikut : >> contoh(tinggi) rata-rata = 150.2727 variansi = 571.0182 Perhatikanlah, diperoleh hasil rata-rata tinggi badan 150.2727 cm dan variansi sebesar 571.0182 cm2 langsung ditampilkan. Mudah bukan? Supaya anda mampu memahaminya lebih dalam, silahkan anda praktekkan contoh kedua berikut ini. Contoh 2 : Buatlah program untuk menghitung luas persegi panjang. Output yang ditampilkan yaitu panjang, lebar, serta luasnya. Jawab : Untuk memulainya, anda buat m-file baru, klik menu pada jendela M-file Editor : File New M-file. Maka akan muncul m-file baru letaknya di sebelah kanan contoh.m (lihat pojok kiri bawah). Kemudian ketikkan algoritma program seperti gambar di bawah ini :

Simpanlah dengan nama sesuai nama fungsinya luaspersegipanjang.m INGAT : jangan langsung dirunning karena akan menyebabkan error seperti yang telah disebutkan pada contoh 1 di atas. Pindah ke jendela utama MATLAB, misalkan anda ingin mencari luas persegi panjang dengan panjang 9 dan lebar 6 maka ketiklah di command window : >> luaspersegipanjang(9,6) Panjang yang diinputkan = 9 Lebar yang diinputkan = 6 Luas yang dihasilkan = 54 Ingat pada fungsi yang anda buat, letak panjang lebih dulu daripada lebar, maka Anda harus memasukkan nilai panjangnya lebih dulu daripada nilai lebarnya. Meskipun nanti hasil akhir luasnya tidak berbeda namun akan berbeda pada posisi tampilan nilai panjang dan lebarnya. Perhatikan! >> luaspersegipanjang(6,9) Panjang yang diinputkan = 6 Lebar yang diinputkan = 9 Luas yang dihasilkan = 54

Terlihat bahwa hasil tampilan di atas terbalik antara panjang dan lebarnya, seharusnya panjang > lebar. Dua contoh di atas, merupakan contoh program yang dapat anda panggil jika anda telah memiliki argumen atau data yang dibutuhkan sebelumnya, dan diikutkan dalam pemanggilan program. Berikut ini akan diberikan alternatif contoh, dimana anda bisa langsung merunning program tanpa memiliki data/data diikutkan kemudian setelah program running. Contoh 3 : Buatlah program untuk menghitung luas dan keliling lingkaran. Jawab : Misalkan terdapat lingkaran dengan jari-jari lingkaran 10 cm, dapat Anda hitung secara manual yaitu dengan rumus luas lingkaran , dimana Diperoleh hasil

Selanjutnya, Anda bisa membuat program sendiri dengan bantuan MATLAB untuk menghitung luas lingkaran hanya dengan menginputkan jari-jari lingkaran. Berikut ini adalah program yang dibuat pada m-file.

Program di atas bernama LuasKelilingLingkaran dan disimpan dengan nama LuasKelilingLingkaran.m Program pada contoh ini bisa langsung Anda simpan dan run atau tekan tombol F5. Hal ini dikarenakan pada nama program LuasKelilingLingkaran(), di dalam tanda kurungnya dikosongi sehingga bisa langsung dilakukan Debug Save and Run... . Selanjutnya perintah input berguna supaya user atau pengguna program ini diminta untuk menginputkan datanya langsung dari keyboard. Tampilan yang keluar jika Anda langsung melakukan debugging yaitu : Silakan memasukkan datanya Jari-jari lingkaran = Tampilan pertama yang keluar seperti di atas. Misalkan Anda memiliki lingkaran dengan jari-jari 10, maka Anda ketikkan angka 10 lalu tekan enter. Diperoleh hasil beserta tampilannya sebagai berikut : Silakan memasukkan datanya Jari-jari lingkaran = 10 Luas lingkaran = 314.1593 Keliling lingkaran = 62.8319 Contoh-contoh yang diberikan di atas masih sebatas aplikasi untuk mencari penyelesaian suatu permasalahan yang sangat mendasar. Sekarang akan dijelaskan mengenai aplikasi dalam menyelesaikan suatu sistem persamaan matematika, dengan membuat program dan anda dapat mencari solusi sistem persamaan tersebut secara cepat dan tepat. Sekarang kita lihat kembali contoh 2.6 pada Modul I mengenai akar persamaan kuadrat. Pada contoh tersebut dapat dibuat program mencari akar persamaan kuadrat di dalam m-file secara mudah. Perhatikan contoh berikut ini, kemudian Anda buat program untuk contoh 2.6

Contoh 4 : Dipunyai suatu persamaan kuadrat x2 + 2x 2, carilah akar persamaan kuadratnya! Jawab : Dengan rumus abc, dari persamaan di atas diperoleh nilai a = 1, b = 2, dan c = -2, maka akar persamaannya yaitu : ( )( )

Jadi, akar-akar persamaannya yaitu 0,7321 dan -2,7321. Kemudian dari contoh sederhana ini, dibuat program untuk mencari akar persamaannya. Berikut ini adalah contoh program yang dibuat :

Program di atas hanya sekedar contoh saja, anda bisa membuat program yang lebih baik dari contoh yang diberikan. Untuk memanggil program ini, dari jendela editor anda langsung tekan F5 atau jika anda memanggil dari jendela command window ketikkan : akarperskuadrat. Tampilan yang akan muncul seperti berikut ini : Program mencari akar pers.kuadrat -----------------------------------------------Misalkan persamaan kuadrat berbentuk : ax^2+bx+c Masukkan parameter berikut ini : Nilai a = Inputkan nilai a dari keyboard Anda, sesuai dengan contoh nilai a yaitu 1 kemudian tekan enter. Inputkan lagi nilai b dan nilai c. Sehingga akhirnya akan diperoleh tampilan sebagai berikut : Program mencari akar pers.kuadrat -----------------------------------------------Misalkan pers.kuadrat berbentuk : ax^2+bx+c Masukkan parameter berikut ini : Nilai a = 1 Nilai b = 2 Nilai c = -2 -------------------------------------------Akar persamaaan yg diperoleh : p1 = 0.73205 p2 = -2.7321 -------------------------------------------Dengan program yang telah berhasil dibuat, Anda memperoleh hasil yang sama dengan hasil yang sebelumnya dihitung secara analitik. Dengan program yang ada, anda cukup memasukkan input untuk mencari akar persamaan fungsi kuadrat.

Selama Anda tahu bagaimana langkah atau algoritma dalam memperoleh suatu solusi persamaan linear, maka Anda bisa membuat program dengan persamaan yang lebih kompleks, misalnya pangkat tiga atau persamaan kubik dan lain sebagainya. Latihan! Untuk melatih Anda dalam membuat program, kerjakanlah beberapa latihan berikut ini dengan hasil tampilan semenarik mungkin. 1. Buatlah program untuk mencari volume benda ruang seperti bola, kerucut dan limas. 2. Suatu persamaan regresi y = a + bx. Buat program untuk mencari estimasi dari a dan b. Misalkan diketahui data y = 23,12,45,24,78,12,93,21,76,12 dan x = 11,4,19,10,80, 20, 40, 25, 62, 9

Kegiatan Belajar 2 Program dengan Metode Numerik


Pada kegiatan belajar 1 telah dijelaskan dan diberikan contoh beberapa program sederhana. Sekarang, akan diberikan materi mengenai program untuk menyelesaikan masalah matematika menggunakan metode numerik. Sebelumnya telah disinggung bahwa tidak semua solusi permasalahan matematika bisa diselesaikan secara analitik, tetapi bisa diselesaikan melalui pendekatan numerik. Dalam metode numerik yang merupakan metode pendekatan, proses pencarian nilai akar menggunakan metode iterasi. Metode iterasi bertujuan mendapatkan nilai akar yang konsisten setelah iterasi ke n. Konsep konsisten diterjemahkan bahwa nilai akar yang diperoleh setelah iterasi ke n tidak berbeda jauh dengan nilai akar iterasi ke n. Konsep ini dikenal dengan istilah error atau tingkat kesalahan. Tentu saja eror yang dapat ditoleransi harus cukup kecil. Pada kegiatan belajar ini, kita lebih fokus pada pendekatan metode numerik untuk menyelesaikan suatu persamaan matematika dalam mencari penyelesaian akar-akar persamaan karakteristik. Beberapa metode numerik di antaranya yaitu metode bisection, dan metode newton-rhapson 1. Metode Bisection Metode bisection atau biseksi atau belah dua merupakan metode pembagian interval, yaitu metode yang digunakan untuk mencari akar-akar persamaan nonlinear (polinomial) melalui proses iterasi dengan persamaan :

f(a)

b x f(b)

Anda perhatikan gambar di atas. Dari gambar di atas dapat diketahui bahwa f(a) > 0 dan f(b) < 0. Nilai akar nol atau nilai x yang membuat f(x) = 0 terjadi di x = d, berada diantara nilai a dan b. Permasalahannya adalah, mencari nilai d tidak dapat dilakukan secara analitik. Sedangkan mencari nilai akar d dengan metode coba-coba sangat kama dan tidaklah efisien. Selanjutnya mencari nilai d akan dilakukan dengan metode numerik. Dengan metode biseksi, permasalahan tersebut dapat diselesaikan. Algoritmanya dapat diberikan di bawah ini : 1. Tentukan nilai xa dan xb sedemikian hingga f(xa)*f(xb)<0. Ini menjamin bahwa antara xa dan xb ada nilai x yang membuat f(x) = 0. 2. Tentukan nilai xc = (xa+xb )/2. Nilai xc adalah nilai tengah antara xa dan xb. Selanjutnya anda hitung nilai f(xc). 3. Jika f(xa)*f(c) < 0, maka b = c. Jika f(a)*f(c)> 0, maka a = c. Jika f(a)* f(xc) < 0, maka akar nol antara xa dan xc. Selanjutnya xc dimasukkan sebagai nilai xb yang baru, xb = xc. Jika sebaliknya, maka akar nol berada di antara xc dan xb. Selanjutnya xc dimasukkan sebagai nilai xa yang baru. 4. Ulangi langkah no 2 sd 3 di atas, sampai diperoleh selisih antara harga mutlak nilai f(xa)-f(xb) < e, dimana e adalah nilai yang sangat kecil, misal e = 10-5. Itu artinya jarak antara xa dan xb udah sangat dekat, atau xa = xb sama dengan akar nol yang dicari.

Contoh 1 : Carilah akar persamaan f(x) = x3 7x+1 menggunakan metode iterasi belah dua dengan epsilon, e = 10-5. Jawab : 1. Anda tentukan nilai akar awal. Misalnya, xa = 2.5 dan xb = 2.6 kemudian dihitung f(xa) dan f(xb) serta dicek apakah memenuhi persyaratan atau tidak. Jika tidak memenuhi persyaratan maka nilai awal diganti. f(2.5) = -0.875 (negatif) dan f(2.6) = 0.367 (positif) Berarti akar nol berada diantara 2.5 dan 2.6. Karena f(xa)*f(xb) < 0 maka nilai awal ini telah memenuhi syarat. Tentukan nilai xc = (xa+xb)/2 = 2.55. Dan dihitung nilai f(2.55) = 0.2686. Karena f(xa)*f(xc) > 0, maka xa yang baru diganti dengan nilai yang baru xa = 2.55 dan xb masih tetap 2.6. Dengan nilai xa = 2.55 dan xb = 2.6. dicari lagi nilai xc yang baru xc = (2.55+2.6)/2 = 2.575 Dan dihitung f(2.575) = - 0.04886 f(xa)*f(xc) > 0, maka xa yang baru diganti dengan nilai yang baru xa = 2.575 dan xb masih tetap 2.6.Begitu seterusnya, iterasi diulangi lagi hingga f(xc) sangat kecil (mendekati nol) atau |f(xa) f(xb)| < e, dimana e = 10-5.

2.

3.

Program yang dibuat untuk menyelesaikan permasalahan ini dapat dilihat pada gambar berikut ini :

Gambar 1

Gambar 2 Pertama, Anda membuat fungsi untuk mendefinisikan persamaan Anda, yaitu x3 7x + 1. Seperti terlihat pada Gambar 1. Hal ini bertujuan agar Anda

mudah untuk memanggil dan menggunakan fungsi atau persamaan secara langsung. Penggunaan fungsi ini bisa diperlihatkan pada Gambar 2. Program pada Gambar 1 disimpan dengan nama file fungsi.m Pada Gambar 2, mulai menggunakan algoritma belah dua. Algoritma ini digunakan untuk menyelesaikan akar persamaan karakteristik sesuai dengan contoh di atas pada persamaan x3 7x + 1. Program ini disimpan dengan nama file akarbelahdua.m Perhatikan Gambar 2! Langkah awalnya yaitu memasukkan nilai a dan b serta epsilon. Nah, penggunaan fungsi pada Gambar 1 terletak pada pendefinisian x dan y sebagai fungsi persamaan yaitu x = fungsi(a) dan y = fungsi(b). MATLAB secara otomatis membaca kedua definisi itu sebagai fungsi yang berkaitan dengan program pada fungsi.m. Namun, ingat bahwa Anda harus menyimpan kedua file (fungsi.m dan akarbelahdua.m) dalam satu folder. Jika tidak, maka akan terjadi error. Selanjutnya, penggunaan flow control WHILE. Format penggunaan : while <kondisi> <ekspresi> end Flow control dengan menggunakan WHILE akan berhenti mengeksekusi ekspresi jika kondisi telah dipenuhi. Jika belum dipenuhi maka MATLAB akan terus mengeksekusi ekspresi hingga kondisi terpenuhi. Flow control berikutnya yaitu IF. Format penggunaan : if <kondisi> <ekspresi1> else <ekspresi2> end

jika kondisi benar maka MATLAB akan mengeksekusi ekspresi1. Jika kondisi salah maka ekspresi2 yang dieksekusi. Bagaimana jika kondisinya banyak? Maka digunakan flow control bersarang dengan format : if <kondisi1> <ekspresi1> elseif <kondisi2> <ekspresi2> elseif<kondisi3> <ekspresi3> ...dst else<ekspresi terakhir> end Perhatikan pada elseif, sebelum end terdapat perintah RETURN. Perintah ini sejalan dengan flow control WHILE, yaitu untuk menghentikan iterasi while karena terpenuhinya suatu kondisi tertentu. Flow control berikutnya yang digunakan dalam program ini yaitu FOR. Flow control ini untuk menampilkan hasil dari tiap iterasi. Program pada Gambar 2 tidaklah lengkap karena terpotong sampai line 23. Selengkapnya Anda perlu menuliskan program di bawah ini : function akarbelahdua disp(' '); disp('Program Bisection untuk mencari akar') a = input('Masukkan tebakan awal paling rendah : '); b = input('Masukkan tebakan awal paling tinggi : '); e = input('Masukkan nilai epsilon : '); x = fungsi(a); y = fungsi(b); i=0; while (abs(x-y)>e) i=1+i; if (x*y < 0) c(i) = (a + b)/2; z(i) = fungsi(c(i));

if (x*z(i) < 0) b = c(i); else a = c(i); end elseif (x*y>0) disp(' Syarat f(a)*f(b) < 0 tidak terpenuhi'); disp(' '); return end x = fungsi(a); y = fungsi(b); end disp(' '); disp(' iterasi akar f(akar) '); for j =1:i disp([j c(j) z(j) ]); end; disp(' '); akar=fungsi(c(i)); error = abs(x-y); disp(['Tebakan = ' num2str(c(i))]); disp(['Nilai akar = ' num2str(akar)]); disp(['Kesalahan = ' num2str(error)]); disp(' '); untuk memanggil program di atas, Anda tekan tombol F5 dari jendela M-file, pada command window akan muncul tampilan awal : Program Bisection untuk mencari akar Masukkan tebakan awal paling rendah : Ketikkan nilainya sebesar 2.5, setelah itu ketikkan 2.6 dan terakhir Anda ketikkan 1e-5 sebagai epsilon atau errornya. Hasil selengkapnya yaitu sebagai berikut : Program Bisection untuk mencari akar Masukkan tebakan awal paling rendah : 2.5 Masukkan tebakan awal paling tinggi : 2.6 Masukkan nilai epsilon : 1e-5

iterasi 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 17.0000

akar 2.5500 2.5750 2.5625 2.5688 2.5719 2.5703 2.5711 2.5715 2.5713 2.5712 2.5712 2.5712 2.5712 2.5712 2.5712 2.5712 2.5712

f(akar) -0.2686 0.0489 -0.1111 -0.0314 0.0086 -0.0114 -0.0014 0.0036 0.0011 -0.0001 0.0005 0.0002 0.0000 -0.0001 -0.0000 0.0000 -0.0000

Tebakan = 2.5712 Nilai akar = -1.2588e-006 Kesalahan = 9.791e-006 Akar persamaan yang diperoleh dari iterasi dengan menggunakan metode belah dua yaitu 2.5712 dengan iterasi sebanyak 17 serta tingkat error sebesar 9.791e-6. Mungkin untuk kasus ini iterasi yang diperoleh bisa dibilang sedikit. Jika Anda menemukan suatu kasus yang mungkin butuh iterasi banyak, tentu saja tampilan program di atas tidak efektif. Anda bayangkan jendela command window akan penuh dengan hasil-hasil iterasi, misalkan sebanyak 100 iterasi. Nah, agar tampilan di atas menjadi lebih sederhana dan elegan maka Anda perlu sedikit modifikasi pada program.

Modifikasinya adalah sebagai berikut : Pada bagian flow control FOR, mulai dari bagian disp(iterasi akar f(akar)) anda hapus semua hingga end, ingat hanya pada flow control FOR. Kemudian Anda tambahkan variabel iterasi = i; setelah variabel error = abs(x-y); selanjutnya tambahkan disp([Banyak iterasi = num2str(iterasi)]) setelah disp([Kesalahan ......]). Jadi nanti program akan berbentuk seperti berikut : function akarbelahdua disp(' '); disp('Program Bisection untuk mencari akar') ...dst while (abs(x-y)>e) ...dst end disp( ) iterasi=i; akar=fungsi(c(i)); error = abs(x-y); disp(['Tebakan = ' num2str(c(i))]); disp(['Nilai akar = ' num2str(akar)]); disp(['Kesalahan = ' num2str(error)]); disp(['Banyak iterasi = ' num2str(iterasi)]); disp( ); Ingat, program yang anda buat di atas dikhususkan hanya untuk persamaan berbentuk : ( ) . Mungkin bisa ditambahkan pada program Anda, dituliskan bentuk persamaannya. function akarbelahdua disp(' '); disp('Program Bisection untuk mencari akar') disp('Persamaan : f(x) = x^3 7x + 1') ...dst Anda bisa mempercantik tampilan dengan menambahkan garis seperti pada contoh 4 kegiatan belajar 1.

Program yang Anda buat ini bisa diterapkan untuk persamaan kuadrat. Coba Anda terapkan program Anda untuk persamaan pada Contoh 4 Kegiatan Belajar 1 yaitu x2 + 2x 2. Untuk melakukan hal ini, Anda harus mengubah persamaan pada file fungsi.m. ketika Anda merunning program masukkan nilai awal yang mendekati salah satu akar. Bisa Anda lihat hasil sebelumnya pada Contoh 4 bahwa akar persamaan kuadrat yang dicari dengan rumus abc diperoleh p1 = 0.73205 serta p2 = -2.732. Selanjutnya dengan metode belah dua ini, Anda masukkan nilai awal paling rendah 0 dan paling tinggi 1, ini untuk mencari akar yang pertama. Untuk mencari akar yang kedua masukkan nilai awal paling rendah -3 dan paling tinggi -1. Program yang Anda buat, hasil modifikasi program sebelumnya seharusnya menghasilkan tampilan kurang lebih seperti berikut. Untuk akar persamaan yang pertama : Program Bisection untuk mencari akar Persamaan : f(x) = x^2 + 2x - 2 Masukkan tebakan awal paling rendah : 0 Masukkan tebakan awal paling tinggi : 1 Masukkan nilai epsilon : 0.00001 Tebakan = 0.73205 Nilai akar = -2.9984e-006 Kesalahan = 6.6072e-006 Banyak iterasi = 19 Untuk akar persamaan yang kedua : Program Bisection untuk mencari akar Persamaan : f(x) = x^2 + 2x - 2 Masukkan tebakan awal paling rendah : -3 Masukkan tebakan awal paling tinggi : -1 Masukkan nilai epsilon : 0.00001 Tebakan = -2.732 Nilai akar = -2.9984e-006

Kesalahan = 6.6072e-006 Banyak iterasi = 20 Bisa Anda lihat dan buktikan bahwa hasil yang diperoleh sama. 2. Metode Newton-Rhapson Metode NR ini digunakan untuk menyelesaiakan persamaan non linear. Rumus penyelesaiannya yaitu : ( ) ( ) ( ) ( ) Persamaan non-linear dapat diselesaikan dengan metode NR jika memenuhi syarat sebagai berikut : ( ) ( ) | | ( ) ( ) ( ) Dimana, ( ) adalah turunan pertama dari fungsi f ( ) adalah turunan kedua dari fungsi f X0 adalah nilai awal sebelum iterasi dilakukan. Algoritma metode NR yaitu : 1. Mencari turunan pertama dan kedua dari fungsi f atau persamaannya. 2. menentukan nilai awal X0 kemudian cek apakah sudah memenuhi syarat atau belum 3. Jika syarat telah terpenuhi, lakukan iterasi untuk mencari nilai Xn 4. iterasi diulangi hingga selisih antara Xn-1 dan Xn = 0 atau e, dimana e merupakan bilangan error yang sangat kecil nilainya (mendekati nol) Contoh 2 : Carilah akar persamaan f(x) = ex 3x2 dengan menggunakan metode NewtonRhapson! Jawab : Berikut ini akan dijelaskan penyelesaian secara analitik. Untuk pembuatan program silakan Anda kerjakan sendiri sesuai kemampuan Anda.

Step 1. Mencari turunan pertama dan kedua ( ) ( ) Step 2. Menentukan nilai awal X0, misalnya 1 ( ) ( ) ( ) ( ) ( ) Mengakibatkan ( ) ( ) ( )( | | | ( ) ( ) ( )( Sehingga syarat dipenuhi. Step 3. Saatnya melakukan iterasi dengan e = 10-5 ( ) ( ) ( ) Karena selisih masih lebih besar dari e, maka iterasi dilanjutkan Step 4. ( ) ( ) ( ) Begitu seterusnya hingga kondisi selisih <= e terpenuhi. Sebagai latihan, buatlah program di atas dengan menggunakan MATLAB. Jika program dan hasil yang Anda peroleh benar maka jawabannya adalah x = 0.9100076 atau yang mendekatinya.

) | )

Anda mungkin juga menyukai