Setelah membahas mengenai teori metode iterative, maka pada postingan kali ini akan dijelaskan mengenai aplikasi dari metode iterative tersebut. metode yang dipilih pada contoh aplikasi ini adalah metode bisection. Berikut akan dijelaskan sedikit tentang metode bisection.
Metode Bidang Bebas atau lebih spesifik lagi ‘Metode
Bidang Paruh’ (Bisection) adalah “pemaruhan”(nilai rata-rata) dari nilai
estimasi akar suatu persamaan aljabar non-linear tunggal yang dibentuk dengan
cara menebak 2 buah harga awal pada interval [a,b] yang
bertempat-kedudukan ‘mengapit’ (di kiri dan kanan) akar atau jawab yang
sebenarnya. Metode ini pada umumnya memerlukan 2 (dua) buah tebakan untuk
harga-harga x-awal (x0 dan x1).
Untuk contoh aplikasi metode bisection menggunakan contoh 3.1 buku rajaraman halaman 38 dengan persamaan :
X2 – d = f (x) = 0
Dengan metode bisection ini kita akan mencari akar-akar dari persamaan di atas.
Berikut adalah langkah-langkah untuk menjalankan metode bisection :
1. Buat userform dan buatlah kotak-kotak sesuai kebutuhan sesuai gambar di bawah ini :
2. Buat variabel dan rumus untuk metode bisection, yaitu nilai X2, f (X0), f(X1), f(X2), iterasi X2, iterasi f(X0), iterasi f(X1) dan iterasi f(X2)
3. Buatlah program seperti dibawah ini pada commandbutton :
Private Sub CommandButton1_Click()
'Program ini adalah program metode iterative
bisection
'Komputasi Teknik
'Arandityo Narutomo 1106107782
'METODE BISECTION
'Persamaan dari program ini adalah X^2-d = f(x) = 0
'Definisi variabel
'y0=F(x0)
'y1=F(x1)
'y2=F(x2)
Dim x0, x1, x2, y0, y1, y2, n, e, d As Double
x0 = Int(TextBox1.Text)
x1 = Int(TextBox2.Text)
n = Int(TextBox7.Text)
d = 25
'Rumus perhitungan bisection
x2 = (x0 + x1) / 2
TextBox3.Text = x2
y0 = x0 ^ 2 - d
TextBox4.Text = y0
y1 = x1 ^ 2 - d
TextBox5.Text = y1
y2 = x2 ^ 2 - d
TextBox6.Text = y2
'Perhitungan Error
e = ((x2 - x1) / x2) * 100
If e < 0 Then e = e * -1
TextBox8.Text = e
'Persamaan iterasi f(x)=X^2-d
For i = 0 To n
x2 = (x0
+ x1) / 2
If (x0 ^ 2 -
d) * (x2 ^ 2 - d) <= 0 Then
x1 = x2
Else
x0 = x2
End If
ListBox1.AddItem x2
'Listbox F (x0)
y0 = x0 ^ 2 - d
'Listbox F (x1)
y1 = x1 ^ 2 - d
'Listbox F (x2)
y2 = x2 ^ 2 - d
ListBox2.AddItem y0
ListBox3.AddItem y1
ListBox4.AddItem y2
'Iterasi error
e = ((x2 - x1) / x2) * 100
If (((x2 - x1) / x2) * 100) < 0 Then e = e * -1
ListBox5.AddItem e
Next i
End Sub
4. Tampilkan hasilnya sebagai berikut
Masukkan Input
Maka hasilnya seperti di bawah ini
Dari data di atas, kita ketahui bahwa nilai X2 berkisar 5. Dengan melihat bahwa error sudah mendekati nol atau bahkan nol, nilai X2 tetap ada dikisaran 5. Karena persamaan yang ingin dicari akar-akarnya mengindikasikan bahwa akar kembar, maka nilai X0 dan X1 adalah sama, sehingga dari data X2 yang telah diketahui sekitar 5, maka
Jumlah X0 dan X1 = 2 x 5 = 10, sehingga nilai X0 dan X1 adalah 1/2 x 10 = 5.
Apabila dilihat dari buku Rajaraman hasilnya sebagai berikut :
Dari nilai di atas terlihat baik hasil X0 dan X1 hampir serupa yaitu sekitar 5. Hal ini menunjukkan bahwa metode iterative bisection yang telah dibuat pada visual basic hampir sama dengan versi buku Rajaraman
bang rantot, wahh.. semakin jagoan aja nie, kalau sy lihat model interasi trus ditampilkan seperti itu jadi menyebabkan bingung yang baca ya? betul tidak, kalau one click one result bisa ga?
BalasHapusIya memang mas, sebenernya yang mau saya tampilkan disitu adalah lebih fokus ke X2-nya..Kan itu akar-akar persamaannya kembar, jadi cukup dilihat dari nilai X2-nya sudah bisa ketahuan, kan penjelasannya sudah saya jabarkan. namun memang paling baik itu nilai X0 dan X1 langsung terlihat sebagai hasil iterasi, kira-kira mas hasnan tahu caranya??
BalasHapussalam hangat..
bukan itu maksud saya, maksud saya tanpa menampilkan proses iterasinya, mungkin hal ini berguna untuk fungsi yang dipanggil ulang khan, saya sudah bikin, tp blum posting untuk bisection, ntar check blog saya ya untuk bisection
BalasHapusthanks
Oh begitu maksudnya mas..Iya itu memang sengaja mau ditampilkan proses iterasinya. Tapi boleh tuh mas, nanti kasih linknya ya supaya saya bisa lihat postingan mas hasnan tentang bisection.
HapusSalam hangat
makasih atas postingannya mas rantot.. kebetulan saya masih bingung membuat programnya.. lanjutkan
BalasHapusIya sama sama bung gerry..Selamat mecoba, siapa tahu kita bisa saling share, sama-sama saling belajar bung..
HapusSalam hangat
sebuah tulisan yang membuat saya lebih mengerti neyh tentang bisection..
BalasHapussering2 sharing ilmu ya mas Rantot, biar newbie kaya saya bisa terus belajar.. hehe..
Makasih..
Iya sama-sama mas Enggar
HapusSalam hangat
Waduh, penjelasan yang sederhana,singkat dan padat dari Bro Rantot..Sering-sering adja ntar sharing ilmunya..
BalasHapusIya bung saling berbagi ilmu dan sharing info..
Hapuswaahhh mantap! sangat membantu saya untuk memahami metode ini. penggunaan Int itu buat apa ya?? fungsinya apa ada penambahan itu??
BalasHapuspenggunaan Int itu hanya model penulisan saja yang menyatakan nilai itu harus dimasukkan sebagai input. Sama seperti kalau kita mengetik Val (x1) itu merupakan fungsi yang menyatakan x1 didefinisikan sebagai value. Jadi Int juga merupakan fungsi yang penggunaannya menandakan kalau nilai tersebut sebagai input dan harus dimasukkan. Fungsinya sama apabila kita hanya menuliskan x0 = textbox1.text
HapusSalam hangat
bung randi ini masih bermasalah di iterasi selain nilai x2 ya? saya jg nih bung.. yg bs di share ya.. thq semua
BalasHapusIya nih almer, masih bermasalah di X2, tapi untuk akar kembar masih tidak terlalu berdampak signifikan..Tapi kalau ada teman-teman yang mau share bisa tolong share yaaa...
Hapussalam hangat
Postingannya sangat bermanfaat buat newbie seperti saya untuk mengerti metode ini...
BalasHapusNice share
Daniel - mhs.blog.ui.ac.id/daniel81
Iyaaa sama sama bung daniel..
Hapussalam hangat
postingannya sangant bagus bung randi
BalasHapuso iya, cara menentukan nilai awal dari metode bisection apakah sama dengan false position ya?
Bang rantot suda mencoba memasukkan nilai awal yang berbeda? gimana hasilnya?
BalasHapusmas Randy,
BalasHapuspembahasan menarik,
bisa gak diaplikasikan untuk mencari persamaan fisis?
misalnya profil kecepatan aliran pada pelat datar.
artinya bukan suatu polinomial akan tetapi grafiknya polinomial.
pertanyaan lainnya adalah saya pernah mendengar istilah error function,itu maksudnya apa yah? saya sudah men-google tapi belum mengerti mas.
lalu apa yg mesti diperhatikan dalam menentukan jumlah iterasi yah?
Thanks a lot,
Deberland
http://mhs.blog.ui.ac.id/christoforus.d
Wehh ini postingannya menarik dan jelas, sejujurnya referensi perguruan farhan untuk masalah ini, banyak berdiskusi dengan bung rantoti,hehehe
BalasHapussalam hangat
nice posting Ran. Mau nanya nih, kenapa nilai yg dipilih 4.988, buka 5.00. Memang nilai f(x) yg lebih mendekati nol adalah nilai x = 4.988, namun x = 5.00 memiliki nilai error = 0. Mohon pencerahan untuk menentukan nilai x yang digunakan. Thx Ran.
BalasHapusBro mau nanya, itu for i nya perannya apaan? Variabel i nya yg sy maksud gan. Mohon pencerahannya segera, terimakasih
BalasHapus