perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB II TINJAUAN PUSTAKA
2.1 Landasan Teori Dasar-dasar teori yang digunakan sebagai landasan utama dalam penelitian ini, antara lain sebagai berikut: 2.1.1 Polinomial Persamaan polinomial (atau persamaan bilangan bulat rasional) diperoleh apabila suatu polinomial dalam satu variabel ditetapkan sama dengan nol. Bentuk standar suatu persamaan polinomial adalah sebagai berikut : ܽ ݔ ܽଵ ݔିଵ ܽଶ ݔିଶ ǥ ܽିଶ ݔଶ ܽିଵ ݔ ܽ ൌ Ͳ
(2.1)
dimana a disebut sebagai koefisien polinomial yang merupakan bilangan riil dan n merupakan derajat polinomial berupa bilangan bulat positif. Suku-suku pangkat dari x disusun dalam derajat menurun. Apabila tidak terdapat sebuah suku, maka nilai koefisien dari suku tersebut adalah nol. Koefisien tidak memiliki faktor umum kecuali ± 1, dan ܽ ് Ͳ. Suku ܽ ݔ disebut sebagai suku terdepan, ܽ adalah suku konstanta, dan ܽ disebut koefisien terdepan (Frank & Schmidt, 2004). Persamaan polinomial dibedakan menjadi beberapa jenis. Polinomial dengan koefisien dari variabel x berderajat tertinggi sama dengan 1 disebut sebagai polinomial monoid. Bentuk polinomial monoid adalah sebagai berikut : ݔ ܽଵ ݔିଵ ܽଶ ݔିଶ ڮ ܽ ൌ Ͳ
(2.2)
Berikut ini merupakan contoh-contoh polinomial berdasarkan derajat polinomial : a. Polinomial kuadrat Polinomial berderajat dua disebut juga sebagai polinomial kuadrat atau quadratic polinomial. Polinomial ini memiliki pangkat tertinggi suku x adalah 2 (n = 2). Bentuk polinomial kuadrat adalah sebagai berikut (Harris & Stocker, 1998) : ݂ሺݔሻ ൌ ܽ ݔଶ ܾ ݔ ܿ ൌ Ͳ
(2.3)
Contoh grafik polinomial derajat dua yaitu ݔଶ െ ͳ͵ ݔെ ͵Ͳ terdapat pada Gambar 2.1.
commit to user
6
7 digilib.uns.ac.id
perpustakaan.uns.ac.id
y 1400 1200 1000 800 600 400 200
x -20
-30
-10
10
20
30
-200
Gambar 2.1 Grafik polinomial ݔଶ െ ͳ͵ ݔെ ͵Ͳ
b. Polinomial kubik Polinomial kubik atau cubic polinomial merupakan polinomial berderajat tiga dimana nilai pangkat tertinggi x adalah tiga (n = 3). Contoh : ݂ሺݔሻ ൌ ܽ ݔଷ ܾ ݔଶ ܿ ݔ ݀ ൌ Ͳ
(2.4)
dengan a, b, c, d merupakan bilangan real dan a ≠ 0 (Bronshtein et al.,2015). Salah satu contoh persamaan polinomial kubik adalah ݔଷ െͶ ݔଶ െ ʹ ݔ ͵ dengan grafik seperti berikut : y 50
-5
-4
-3
-2
-1
1
2
3
4
5
x
-50
-100
-150
-200
-250
Gambar 2.2 Grafik Polinomial ݔଷ െͶ ݔଶ െ ʹ ݔ ͵
c. Polinomial kuartik Polinomial kuartik atau quartic polinomial merupakan polinomial berderajat empat dimana nilai pangkat tertinggi x adalah empat (n = 4). Contoh : commit to user ݂ሺݔሻ ൌ ܽ ݔସ ܾ ݔଷ ܿ ݔଶ ݀ ݔ ݁ ൌ Ͳ
(2.5)
8 digilib.uns.ac.id
perpustakaan.uns.ac.id
Contoh
polinomial
kuartik
ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ
adalah
ditampilkan dalam Gambar 2.3. 14
y
12 10 8 6 4 2
-15
-5
-10
5
x
10
15
-2
Gambar 2.3 Grafik Polinomial ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ
d. Polinomial berderajat n Polinomial derajat n merupakan polinomial dengan nilai pangkat tertinggi dari variabel x adalah n. Persamaan polinomial berderajat n memiliki bentuk : ݂ሺݔሻ ൌ ݔ ܽଵ ݔିଵ ܽଶ ݔିଶ ܽଷ ݔିଷ ڮ ܽ ൌ Ͳ
(2.6)
dimana ܽଵ ǡ ܽଶ ǡ ǥ ǡ ܽ merupakan bilangan real (James, Smith & Wolford, 2000). Salah satu contoh polinomial derajat n adalah ଼ ݔെ ݔെ ͵ͻ ݔ ͵ ݔହ ͶͶ ݔସ െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ െ ʹͷ ݔ ͳͻʹͲ.
Grafik
sampel
polinomial
ditampilkan pada Gambar 2.4 berikut : y 8 7 6 5 4 3 2 1
-10
-8
-6
-4
-2
2
4
6
8
10
x
-1
Gambar 2.4 Grafik Polinomial ଼ ݔെ ݔെ ͵ͻ ݔ ͵ ݔହ ͶͶ ݔସ െ ͳͲͺ ݔଷ െ commit to user ͳͻʹͺ ݔଶ െ ʹͷ ݔ ͳͻʹͲ
perpustakaan.uns.ac.id
9 digilib.uns.ac.id
Sebuah persamaan polinomial f(x) = 0 akan memiliki akar polinomial r jika dan hanya jika f(r) = 0. Dengan demikian, absis dari titik perpotongan dari grafik y = f(x) dan sumbu x adalah akar-akar dari f(x) = 0. Akar-akar sebuah persamaan polinomial dapat berupa akar-akar kompleks, akar-akar irasional, dan akar-akar rasional. Berikut ini merupakan penjelasannya : a. Apabila persamaan polinomial f(x) = 0 memiliki koefisiean real dan jika bilangan kompleks a + bi adalah akar dari f(x) = 0, maka konjugasi (sekawan) kompleks a – bi juga merupakan akar persamaan polinomial tersebut. b. Apabila bilangan irasional ܽ ξܾ merupakan salah satu akar dari sebuah persamaan polinomial f(x) = 0 dimana a dan b adalah bilangan rasional, maka irasional konjugasi ܽ െ ξܾ juga merupakan akar polinomial tersebut. Berdasarkan bentuk polinomial, maka dapat diketahui bahwa (James, Smith & Wolford, 2000) : a. Setiap persamaan polinomial f(x) memiliki sedikitnya satu akar, bilangan real atau bilangan kompleks. b. Suatu persamaan polinomial derajat n mempunyai tepat n akar. Ke n akar ini mungkin tidak semuanya berbeda. c. Terdapat setidaknya satu akar real jika n merupakan bilangan bulat ganjil d. Apabila f(x) = 0 merupakan persamaan polinomial, maka persamaan f(-x) = 0 mempunyai akar-akar negatif dari akar f(x) = 0. Misalnya, persamaan ݔଷ ͵ ݔଶ െ Ͷ ݔെ ͳʹ ൌ Ͳ mempunyai akar 2, -2, -3; maka persamaan ݔଷ െ ͵ ݔଶ െ Ͷ ݔ ͳʹ ൌ Ͳ adalah -2, 2, 3. e. Banyaknya akar positif dari persamaan polinomial f(x) = 0, dengan koefisien real, sama dengan banyaknya variasi tanda dalam f(x) atau banyaknya bilangan tersebut dikurangi suatu bilangan genap. Dikatakan variasi tanda yaitu apabila suatu polinomial disusun dalam variabel dengan derajat menurun, dan terdapat dua suku berurutan yang memiliki tanda berbeda. Dengan demikian, banyaknya akar negatif dari f(x) = 0 sama dengan banyaknya akar positif dari f(-x) =0 (Aturan tanda Descrates). Misalnya, ݔଷ ͵ ݔଶ െ Ͷ ݔെ ͳʹ mempunyai satu variasi tanda, f(-x) = 0 mempunyai satu akar positif dan f(x) = 0 mempunyai satu akar negatif.
commit to user f. Memungkinkan terjadinya nilai akar yang sama
10 digilib.uns.ac.id
perpustakaan.uns.ac.id
g. Akar kompleks terjadi pada pasangan konjugasi (pasangan sekawan) Pencarian akar kompleks polinomial derajat dua dapat dilakukan dengan menggunakan metode analitik seperti rumus kuadrat dan pembagian horner, sedangkan untuk menyelesaikan polinomial berderajat tiga atau lebih dapat dilakukan dengan metode numerik menggunakan algoritma-algoritma khusus pencarian akar kompleks polinomial. Di bawah ini akan dijelaskan lebih detail mengenai beberapa metode yang dapat digunakan untuk mencari akar kompleks polinomial :
2.1.1.1 Rumus Kuadrat Polinomial berderajat dua atau yang disebut juga persamaan kuadrat memiliki bentuk seperti yang tertera pada Persamaan 2.3. Dalam penyelesaian persamaan kuadrat dengan bentuk seperti Persamaan 2.3 memuat bentuk akar ξܾ ଶ െ Ͷܽܿ, bentuk aljabar ܾ ଶ െ Ͷܽܿ disebut sebagai diskriminan. Nilai diskriminan akan menentukan sifat dan banyaknya akar-akar polinomial yang dihasilkan. Persamaan 2.3 dapat dituliskan dalam bentuk lain seperti yang tertera pada Persamaan 2.6. ݔଶ ݔ ݍൌ Ͳ dimana nilai p didapat dari
dan nilai q didapat dari
(2.6)
(Harris & Stocker, 1998).
Nilai diskriminan untuk persamaan polinomial kuadrat monoid seperti yang tertera pada Persamaan 2.6 dapat ditentukan berdasarkan rumus berikut : ଶ
ܦൌ ቀଶ ቁ െ ݍ
(2.7)
Berdasarkan nilai diskrimanannya, polinomial kuadrat memiliki sifat-sifat seperti di bawah ini : 1. Apabila D > 0, maka ݔଶ ݔ ݍൌ Ͳ memiliki dua akar real yang berbeda yaitu ݔଵǡଶ ൌ െȀʹ േ ξܦ. 2. Apabila D = 0, maka ݔଶ ݔ ݍൌ Ͳ memiliki dua akar real yang sama yaitu ݔଵǡଶ ൌ െȀʹ. 3. Apabila D < 0, maka ݔଶ ݔ ݍൌ Ͳ memiliki pasangan penyelesaian yang
commit ξ ݅ܦto user kompleks yaitu ݔଵǡଶ ൌ െȀʹ േ
11 digilib.uns.ac.id
perpustakaan.uns.ac.id
Berikut ini merupakan grafik masing-masing sifat polinomial berdasarkan nilai diskriminan : 900
y
y
800
1400
700 1200
600 1000
500 800
400 600
-30
-20
300
400
200
200
100
-10
x
20
10
30
-30
-30
-20
-10
0
10
20
30
x
-200
Gambar 2.5 Grafik persamaan
Gambar 2.6 Grafik persamaan
ଶ
ݔെ ͳ͵ ݔെ ͵Ͳ dimana D > 0
ݔଶ ͳͺ ݔ ͺͳ dimana D = 0 y 70 60 50 40 30 20 10
-5
-4
-3
-2
-1
0
1
2
3
4
5
x
Gambar 2.7 Grafik persamaan ݔଶ ͷ ݔ ͳͳ dimana D < 0
Penyelesaikan polinomial kuadrat seperti pada Persamaan 2.3 dapat dilakukan dengan rumus kuadrat berikut : ݔଵǡଶ ൌ
ିേξ మ ିସ ଶ
(2.8)
Berdasarkan rumus kuadrat di atas, maka penyelesaian bentuk standar polinomial kuadrat yang tertera pada Persamaan commit to user2.6 adalah sebagai berikut :
12 digilib.uns.ac.id
perpustakaan.uns.ac.id
ଶ
ݔଵǡଶ ൌ െ ଶ േ ටቀଶቁ െ ݍൌ െ ଶ േ ξܦ
(2.9)
Rumus ini berlaku tanpa ada batasan jika domain variabilitas merupakan himpunan bilangan kompleks. Apabila dibatasi untuk bilangan real, maka D ≥ 0 harus terpenuhi. Dalam algoritma rumus kuadrat, input yang dimasukkan yaitu berupa persamaan polinomial seperti pada Persamaan 2.3 dan output yang dihasilkan berupa dua akar polinomial yaitu ݔଵ dan ݔଶ dimana kedua akar tersebut dapat berupa bilangan real maupun bilangan kompleks. Langkah-langkah algoritma rumus kuadrat dijabarkan dalam Alg 2.1 berikut : 1. Menginputkan persamaan polinomial kuadrat seperti pada Persamaan 2.3. 2. Mengubah bentuk polinomial menjadi polinomial monoid seperti pada
Persamaan 2.6 serta menentukan nilai p dan q dimana nilai p didapat dari dan
nilai q didapat dari . 3. Menentukan nilai diskriminan menggunakan Persamaan 2.7. 4. Menghitung akar kompleks polinomial dengan menggunakan Persamaan 2.9 sehingga dihasilkan ݔଵ dan ݔଶ . 2.1.1.2 Algoritma Cardano Polinomial kubik merupakan suatu polinomial yang berderajat tiga dengan bentuk umum seperti yang tertera dalam Persamaan 2.4, yaitu : ܽ ݔଷ ܾ ݔଶ ܿ ݔ ݀ ൌ Ͳ dimana a, b, c, d merupakan bilangan real dan a ≠ 0. Apabila Persamaan 2.4 dibagi dengan a akan menghasilkan bentuk polinomial monoid derajat tiga seperti berikut: ݔଷ ݔݎଶ ݔݏ ݐൌ Ͳ
(2.10)
dimana masing-masing nilai r, s, dan t didapat dari perhitungan berikut :
ௗ
ݎൌ Ǣ ݏൌ Ǣ ݐൌ Penyelesaian polinomial kubik dapat dilakukan dengan menggunakan algoritma Cardano. Algoritma Cardano diterbitkan oleh Girolamo Cardano (15011576) dalam tulisannya Ars Magna (Weisstein, n.d). Penyelesaian polinomial kubik dengan bentuk seperti Persamaan 2.10 dapat diselesaikan dengan menggunakan commit to user algoritma Cardano. Input algoritma Cardano adalah persamaan polinomial seperti
13 digilib.uns.ac.id
perpustakaan.uns.ac.id
yang tertera pada Persamaan 2.10 dan menghasilkan akar-akar polinomial (ݔଵ ǡ ݔଶ dan ݔଷ ) sebagai outputnya. Langkah-langkah algoritma Cardano dapat dijabarkan dalam Alg 2.2 berikut (Harris dan Stocker, 1998) : 1. Menginputkan polinomial yang akan dicari akarnya dalam bentuk Persamaan 2.10 dan menentukan nilai variabel r, s, dan t. 2. Mensubtitusikan nilai y pada Persamaan 2.10 dimana nilai y didapat dari :
ݕൌݔଷ
(2.11)
Subsitusi nilai y akan mengasilkan persamaan tereduksi seperti yang tertera pada persamaan berikut : ݕଷ ݕ ݍൌ Ͳ
(2.12)
Kemudian menentukan nilai p dan q dengan menggunakan rumus berikut : ݍൌ
ଶ య ଶ
ൌ
െ
௦ ଷ
ݐ
ଷ௦ି మ ଷ
3. Menghitung nilai diskriminan persamaan tereduksi. Nilai diskriminan direpresentasikan dalam variabel D berikut : ଷ
ଶ
ܦൌ ቀଷ ቁ ቀଶ ቁ
(2.13)
4. Menentukan cara penyelesaian polinomial kubik menggunakan algoritma Cardano dan menghitung akar-akar polinomial (ݔଵ ǡ ݔଶ dan ݔଷ ). Dalam algoritma Cardano terdapat dua penyelesaian persamaan polinomial. Penyelesaian tersebut ditentukan berdasarkan nilai diskriminan yang dihasilkan. Berdasarkan nilai diskriminan, persamaan polinomial kubik memiliki sifat-sifat berikut (Harris & Stocker, 1998) : a. Apabila nilai D > 0 akan menghasilkan satu akar bilangan riil dan dua akar kompleks sekawan. b. Apabila D = 0 akan menghasilkan tiga akar bilangan riil dengan dua akar sama (a double solution). c. Apabila D < 0 akan menghasilkan tiga akar riil yang berbeda. Pada kondisi D < 0 disebut sebagai irreducible case dimana persamaan polinomial tidak dapat tereduksi sehingga penyelesaian diselesaikan dengan menggunakan aturan trigonometri.
commit to user
14 digilib.uns.ac.id
perpustakaan.uns.ac.id
Penyelesaian polinomial kubik dengan D ≥ 0 dapat dilakukan dengan menggunakan langkah berikut : a. Menghitung nilai u dan v yang didapat dari :
య
ݑൌ ටሺെ ଶ ξܦ
(2.14)
య
ݒൌ ටሺെ ଶ െ ξܦ
(2.15)
b. Menghitung nilai akar polinomial kubik dengan menggunakan persamaan berikut :
ݔଵ ൌ െ ଷ ݑ ݒ
ݔଶǡଷ ൌ െ െ ଷ
௨ା௩ ଶ
േ ξ͵
(2.16) ௨ି௩ ଶ
݅
(2.17)
dimana nilai ݅ ൌ ξെͳ. Pada kasus irreducibe case dimana nilai D < 0 diterapkan rumus berikut untuk mencari akar-akar polinomialnya : ܿ ߮ݏൌ െ
(2.18)
ଶඥሺȁȁΤଷሻయ
sehingga solusi dari persamaan tereduksi Persamaan 2.12 adalah sebagai berikut : ݔଵ ൌ െ ʹ ή ට
ȁȁ
ଷ
ଷ
ȁȁ
ఝ
ቀ ቁ ఝିగ
ݔଶ ൌ െ ଷ െ ʹ ή ට ଷ
ቀ
ȁȁ
(2.19)
ଷ
ଷ
ఝାగ
ݔଷ ൌ െ ଷ െ ʹ ή ට ଷ
ቀ
ଷ
ቁ
(2.20)
ቁ
(2.21)
2.1.1.3 Algoritma Viete’s Penyelesaian polinomial kubik dapat juga dilakukan dengan menggunakan algoritma Viete’s. Algoritma Viete’s merupakan metode yang diusulkan oleh matematikawan Perancis, Farnciscus Vieta (1540-1603). Algoritma Viete’s ini digunakan untuk mencari akar polinomial derajat tiga bentuk tereduksi seperti yang tertera pada Persamaan 2.12.
commit to user
15 digilib.uns.ac.id
perpustakaan.uns.ac.id
Dikutip dari Tutorial Exercises for Solving Cubic Equations yang ditulis oleh John H. Mathews yang diadopsi dari Henderson (1930), pencarian akar polinomial dilakukan menggunakan nilai kesatuan akar kubik seperti : ߱ଵ ൌ ߱ଶ ൌ
ିଵାξଷ
(2.22)
ଶ ିଵିξଷ
(2.23)
ଶ
Input algoritma Viete’s merupakan persamaan kubik monoid seperti yang tertera pada Persamaan 2.10 dan menghasilkan tiga akar polinomial ሺݔଵ ǡ ݔଶ dan ݔଷ ሻ sebagai output. Berikut ini merupakan langkah-langkah algoritma Viete’s yang tertuang dalam Alg 2.3 : 1. Menginputkan persamaan polinomial kubik monoid (Persamaan 2.10) dan mengubahnya menjadi persamaan tereduksi (Persamaan 2.12) dengan mensubsitusikan Persamaan 2.11 ke Persamaan 2.10. Kemudian menentukan nilai p dan q. 2. Menghitung nilai variabel c య
ܿ ൌെ ට ଶ ଶ
మ ସ
(2.24)
3. Menghitung nilai r భ
ݎൌ ܿయ
(2.25)
4. Menghitung nilai d
݀ ൌ െଷ
(2.26)
5. Menentukan akar-akar polinomial ሺݔଵ ǡ ݔଶ dan ݔଷ ሻ dengan menggunakan Persamaan 2.22 dan Persamaan 2.23 dalam perhitungan akarnya. Berikut merupakan detail perhitungan pancarian akar polinomial kubik : ௗ
ݔଵ ൌ ݎ
(2.27) ௗ
ݔଶ ൌ ߱ଵ ݎ ఠ ݔଷ ൌ ߱ଶ ݎ
భ
ௗ ఠమ
(2.28) (2.29)
2.1.1.4 Algoritma Bairstow Algoritma Bairstow merupakan metode iteratif yang dapat digunakan untuk commit to user mencari akar polinomial berderajat n. Algoritma melibatkan pencarian faktor
16 digilib.uns.ac.id
perpustakaan.uns.ac.id
kuadrat yaitu ݂ሺݔሻ ൌ ݔଶ ݔݑ ݒdalam polinomial. Perhitungan mulai dilakukan dengan menentukan nilai u dan v yang tepat, kemudian proses iterasi akan terkonvergen pada nilai u dan u yang tepat dimana dengan kedua nilai tersebut yang membentuk faktor kuadrat akan menghasilkan dua akar polinomial. Algoritma Bairstow menggunakan persamaan polinomial derajat n dengan bentuk monoid sebagai input dan akar-akar polinomial ሺݔଵ ǡ ݔଶ ,ݔଷ ǡ ǥ ǡ ݔ ሻ sebagai output. Langkah-langkah dalam algoritma Bairstow untuk mencari akar kompleks polinomial (James, Smith & Wolford, 2000) dijabarkan dalam Alg 2.4 berikut: 1. Menentukan nilai awal u dan v. Nilai u dan v yang dipilih harus tepat. Apabila nilai u dan v tidak tepat, maka ketika iterasi tidak menghasilkan nilai u dan v yang konvergen. Untuk menentukan nilai u dan v dapat dilakukan dengan cara berikut ini : ݑൌ
షభ షమ
݀ܽ݊ ݒൌ
షమ
(2.30)
dimana a merupakan koefisien dari polinomial derajat n. Namun, pada beberapa kasus, kebanyakan nilai yang digunakan yaitu ݑ ൌ ݒ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ dengan rumus berikut : ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒ
(2.31)
dengan nilai k = 2, 3, ..., n. Berikut ini merupakan detail perhitungan nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ dengan pembagian sintesis : ܾ ൌ ͳ ܾଵ ൌ ܽଵ െ ݑ ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ݒ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒ ܾସ ൌ ܽସ െ ܾଷ ݑെ ܾଶ ݒ ڭ ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒ ڭ ܾିଵ ൌ ܽିଵ െ ܾିଶ ݑെ ܾିଷ ݒ ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒ Dan sisanya = ሺ ݔ ݑሻܾିଵ ܾ commit to user
17 digilib.uns.ac.id
perpustakaan.uns.ac.id
Konsep dasar algoritma Bairstow adalah untuk mengurangi nilai sisa yang dihasilkan agar mendekati nol sehingga dapat menghasilkan pendekatan akar yang memuaskan. Dengan demikian nilai ܾ dan ܾିଵ harus mendekati nol. 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus berikut : ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ
(2.32)
dengan nilai k = 2, 3, ..., n-1. Dimana ܿ ൌ ͳ dan ܿଵ ൌ ܾଵ െ ݑ. 4. Nilai ο ݑdan ο ݒdidapat dengan menghitung persamaan berikut: ο ݑൌ
ο ݒൌ
షభ షభ ቚ షమ
షమ ฬ షయ షమ షయ ቚ
(2.33)
ฬ షభ షమ షభ ቚ షమ
ฬ షభ షమ షయ ቚ
(2.34)
ฬ
5. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya. ݑାଵ ൌ ݑ οݑ
(2.35)
ݒାଵ ൌ ݒ οݒ
(2.36)
6. Mengulang langkah poin 2 hingga didapat nilai ο ݑdan ο ݒmendekati nol dan memenuhi nilai ε sebagai berikut: ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ
(2.37)
7. Apabila ο ݑdan ο ݒmendekati telah mendekati nol dan Persamaan 2.37 telah terpenuhi, maka nilai u dan v yang telah didapat kemudian disubtitusikan ke dalam persamaan berikut: ሺ ݔଶ ݔݑ ݒሻሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ ݎ݁݀݊݅ܽ݉݁ݎ
(2.38)
Menghitung akar dari persamaan kuadrat yang dihasilkan menggunakan rumus kuadrat seperti yang tertera pada Persamaan 2.8, dengan nilai b merupakan nilai dari u, nilai a sama dengan nol, dan nilai c sama dengan v. Dengan demikian, maka akar 1 dan akar 2 dari persamaan polinomial telah didapat. 8. Perhitungan akar berikutnya dilakukan dengan mengulangi langkah 1 untuk persamaan ሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ dan sisa yang dihasilkan pada nilai akhir merupakan nilai b.
commit to user
18 digilib.uns.ac.id
perpustakaan.uns.ac.id
2.1.1.5 Revisi Algoritma Bairstow Polinomial berderajat n pada algoritma Bairstow dapat dibagi dengan faktor kuadrat ݔଶ ݔݑ ݒuntuk mendapatkan persamaan polinomial berderajat n-2 ditambah sisa. Sisa persamaan tersebut memiliki bentuk : ሺ ݔ ݑሻܾିଵ ܾ Apabila u dan v memiliki nilai dimana faktor kuadrat memuat dua akar dari polinomial derajat n, maka sisanya harus bernilai nol. Nilai u dan v ditemukan dimana nilai ܾ dan ܾିଵ mendekati nol. Berikut ini merupakan pendekatan alternatif untuk menunjukkan sisa yaitu : ܾݔିଵ ሺܾݑିଵ ܾ ሻ ൌ ݔݎ ݏ dan mencari nilai u dan v dimana nilai r dan s harus mendekati nol. Hal ini dapat dilakukan dengan menerapkan ݎሺ ݑ οݑǡ ݒ οݒሻ dan ݏሺ ݑ οݑǡ ݒ οݒሻ dalam Taylor series. Nilai ο ݑdan ο ݒditentukan dimana niali r dan s mendekati nol, sehingga : ݎሺ ݑ οݑǡ ݒ οݒሻ ൌ ܾିଵ ሺ ݑ οݑǡ ݒ οݒሻ ൌ Ͳ ؆ ܾିଵ
డషభ డ௨
ο ݑ
డషభ డ௩
οݒ
(2.39)
ݏሺ ݑ οݑǡ ݒ οݒሻ ൌ ܾݑିଵ ሺ ݑ οݑǡ ݒ οݒሻ ܾ ሺ ݑ οݑǡ ݒ οݒሻ ൌ Ͳ ؆ ܾݑିଵ ܾ
డሾ௨షభ ା ሿ డ௨
ο ݑ
డሾ௨షభ ା ሿ డ௩
οݒ
(2.40)
Dari persamaan berikut : డ డ௨
ൌ െܾିଵ ܿିଶ ݑ ܿିଷ ݒൌ െܿିଵ dan
߲ܾ ൌ െܾିଶ ܿିଷ ݑ ܿିସ ݒൌ െܿିଶ ߲ݒ maka, Persamaan 2.39 menjadi : ܾିଵ ൌ ܿିଶ ο ݑ ܿିଷ οݒ
(2.41)
Sedangkan persamaan 2.40 dapat ditulis sebagai berikut : Ͳ ൌ ܾݑିଵ ܾ ቂݑ
డషభ డ௨
ܾିଵ
డ డ௨
ቃ ο ݑ ቂݑ
డషభ డ௩
డ డ௩
ቃ οݒ
(2.42)
Mengubah sebagian turunan dengan nilai c yang berkaitan dengan persamaan di atas, serta mengubah ܾݑିଵ dengan ݑሾܿିଶ ο ݑ ܿିଷ οݒሿ menggunakan Persamaan 2.41, maka didapat : ܾ ൌ ሾܿିଵ െ ܾିଵ ሿο ݑ ܿିଶ οݒ commit to user
(2.43)
19 digilib.uns.ac.id
perpustakaan.uns.ac.id
Solusi untuk ο ݑdan ο ݒdari Persamaan 2.41 dan 2.43 pada algoritma Revisi Bairstow adalah sebagai berikut (James, Smith & Wolford, 2000) : ο ݑൌ
ο ݒൌ
షయ ฬ షభ ฬ షమ షయ షమ ቚ ቚሺ షభ ିషభ ሻ షమ
(2.44)
షభ షమ ฬ ሺషభ ିషభ ሻ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
(2.45)
ฬ
Revisi Algoritma Bairstow menggunakan persamaan polinomial derajat n dengan bentuk monoid sebagai input dan akar akar polinomial ሺݔଵ ǡ ݔଶ ,ݔଷ ǡ ǥ ǡ ݔ ሻ sebagai output. Berdasarkan penjelasan di atas, maka langkah-langkah dalam revisi algoritma Bairstow (James, Smith & Wolford, 2000) dijabarkan dalam Alg 2.5 berikut: 1. Menentukan nilai awal u dan v. Nilai u dan v yang dipilih harus tepat. Nilai u dan v dapat dilakukan dengan menggunakan Persamaan 2.30 atau menggunakan nilai yang banyak digunakan dalam beberapa kasus yaitu ݑ ൌ ݒ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus Persamaan 2.31 serta menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ menggunakan Persamaan 2.32. 3. Menentukan nilai ο ݑdan ο ݒdengan menghitung Persamaan 2.44 dan Persamaan 2.45. 4. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan Persamaan 2.35 dan Persamaan 2.36 seperti berikut : ݑାଵ ൌ ݑ οݑ ݒାଵ ൌ ݒ οݒ 5. Mengulang langkah poin 2 hingga didapat nilai ο ݑdan ο ݒmendekati nol dan memenuhi Persamaan 2.37 yaitu ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ. 6. Apabila ο ݑdan ο ݒmendekati telah mendekati nol dan Persamaan 2.37 telah terpenuhi, maka nilai u dan v yang telah didapat kemudian disubtitusikan ke dalam Persamaan 2.38. Kemudian menghitung akar dari persamaan kuadrat yang dihasilkan menggunakan rumus kuadrat seperti yang tertera pada Persamaan 2.8, dengan nilai b merupakan nilai dari u, nilai a sama dengan nol, dan nilai c sama dengan v sehingga akar 1 dan akar 2 dari persamaan polinomial telah didapat.
commit to user
20 digilib.uns.ac.id
perpustakaan.uns.ac.id
7. Perhitungan akar berikutnya dilakukan dengan mengulangi langkah 1 untuk persamaan ሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ dan sisa yang dihasilkan pada nilai akhir merupakan nilai b.
2.1.1.6 Algoritma Muller Algoritma Muller merupakan algoritma pencarian akar kompleks persamaan polinomial derajat n yang diusulkan oleh Muller. Algoritma Muller merupakan generalisasi dari metode secant tetapi dalam penerapannya menggunakan tiga poin interpolasi kuadrat (Press et al., 1989). Algoritma Muller dapat mencari pasangan akar kompleks dalam menyelesaikan persamaan kuadrat. Metode iterasi ini konvergen di dekat suatu akar, tidak memerlukan pengevaluasian turunan fungsinya, dan memperoleh akar-akar nyata maupun kompleks meskipun akar-akar tersebut tidak sederhana. Selain itu, metode ini bersifat global sehingga tidak perlu menyediakan suatu pendekatan permulaan (Conte & Boor, 1992). Untuk menyelesaikan persamaan polinomial derajat n, dalam algoritma Muller terlebih dahulu diketahui tebakan awal akar polinomial yakni ݔିଶ ǡ ݔିଵ ǡ ݔ dengan nilai polinomial f(x).
Gambar 2.8 Grafik perbandingan letak akar antara Metode Secant (a) dan Metode Muller (b) Input algoritma Muller merupakan persamaan polinomial derajat n yang berupa polinomial monoid. Setelah diproses, algoritma Muller akan menghasilkan output berupa nilai akar-akar polinomial ሺݔଵ ǡ ݔଶ ,ݔଷ ǡ ǥ ǡ ݔ ሻ. Algoritma Muller dapat diterapkan dengan langkah-langkah yang tertuang dalam Alg 2.6 berikut ini (Butt, 2009) :
commit to user
21 digilib.uns.ac.id
perpustakaan.uns.ac.id
1. Menentukkan tiga poin tebakan awal yaitu ݔ ǡ ݔଵ ǡ ݔଶ dan jumlah maksimal iterasi yaitu ܫݔܽܯ 2. Menghitung nilai ݄ ǡ ݄ଵ ǡ ݄ଶ dimana : ݄ ൌ ݔ െ ݔଶ
(2.46)
݄ଵ ൌ ݔଵ െ ݔଶ
(2.47)
݄ଶ ൌ ݄ ݄ כଵ כሺ݄ െ ݄ଵ ሻ
(2.48)
3. Menghitung nilai persamaan fungsi dari masing-masing tebakan awal yaitu ݂ሺݔ ሻǡ ݂ሺݔଵ ሻǡ ݂ሺݔଶ ሻ. 4. Menghitung nilai koefisien a, b, c menggunakan perhitungan berikut : ܽൌ ܾൌ
భ ൫ሺ௫బ ሻିሺ௫మ ሻ൯ିబ ൫ሺ௫భ ሻିሺ௫మ ሻ൯ మ బ మ ൫ሺ௫భ ሻିሺ௫మ ሻ൯ିభ మ ൫ሺ௫బ ሻିሺ௫మ ሻ൯ మ
ܿ ൌ ݂ሺݔଶ ሻ
(2.49) (2.50) (2.51)
5. Menghitung nilai diskriminan dari perhitungan di atas ܦൌ ξܾ ଶ െ Ͷܽܿ
(2.52)
6. Menentukan nilai akar polinomial untuk menghasilkan pendekatan baru dari f(x). Maka, digunakan persamaan berikut : ଶ
ݔଷ ൌ ݔଶ െ േ
(2.53)
Dimana tanda pada penyebut dipilih untuk mendapatkan nilai absolut atau modulus yang terbesar mungkin. Dengan demikian, apabila b > 0 dipilih tanda “+”, sedangkan apabila b < 0, maka dipilih tanda “-”, dan apabila b = 0, maka pilih salah satu tanda “+” atau “-”. Setelah pendekatan baru ditemukan, ݔଷ , maka poin sebelumnya yaitu ݔ diabaikan sehingga tersisa tiga tebakan akar yaitu ݔଵ ǡ ݔଶ ǡ dan ݔଷ yang kemudian digunakan dalam proses selanjutnya. 7. Menghitung ݕൌdan melakukan pengecekkan terhadap nilai y. Apabila kondisi tersebut belum terpenuhi dimana y > ε, maka dilakukan perulangan langkah 2 hingga 6 sampai mendapatkan nilai akar yang konvergen dimana y < ε. Apabila y < ε, maka iterasi dihentikan. Nilai akar polinomial adalah ݔଷ . Polinomial direduksi dengan cara membagi persamaan polinomial dengan akar yang ditemukan. Pencarian akar selanjutnya dilakukan dengan menggunakan persamaan polinomial hasil reduksi kemudian mengulang langkah 1 hingga 7. commit to user
22 digilib.uns.ac.id
perpustakaan.uns.ac.id
2.1.2 Bilangan Kompleks Penyelesaian persamaan polinomial derajat n terkadang menghasilkan akar kompleks. Akar kompleks disajikan dalam bentuk bilangan kompleks. Bilangan kompleks dihasilkan dari akar kuadrat suatu bilangan negatif (yaitu ξെͳǡ ξെͷ) yang disebut bilangan imajiner murni. Menurut definisi, ξെͷ ൌ ξͷ ή ξെͳ, untuk menyatakan persamaan ersebut akan lebih mudah menggunakan simbol i dimana ݅ ൌ ξെͳ, sehingga dapat ditulis ξെͷ ൌ ݅ξͷ sebagai bentuk standar bilangan ini. Bentuk standar bilangan kompleks adalah a + bi dimana a dan b merupakan bilangan riil. Suku pertama a disebut bagian riil, sedangkan suku kedua bi disebut sebagai bagian imajiner murni dari bilangan kompleks. Dua bilangan kompleks a + bi dan c + di dikatakan sama jika a = c dan b = d. Konjugasi (conjugate) dari bilangan kompleks a + bi adalah bilangan kompleks a – bi (Frank and Schmidt, 2004). Berikut ini merupakan operasi-operasi aljabar bilangan kompleks : a. Penambahan, dilakukan dengan menambahkan bagian riil dan menambahkan bagian imajiner murni, contoh : ሺʹ ͵݅ሻ ሺͶ െ ͷ݅ሻ ൌ ሺʹ Ͷሻ ሺ͵ െ ͷሻ݅ ൌ െ ʹ݅ b. Pengurangan, dilakukan dengan mengurangi bagian riil dan mengurangi bagian imajiner murni, contoh : ሺʹ ͵݅ሻ െ ሺͶ െ ͷ݅ሻ ൌ ሺʹ െ Ͷሻ ൫͵ െ ሺെͷሻ൯݅ ൌ െʹ ͺ݅ c. Perkalian, dilakukan seperti pada bilangan binomial biasa dan mengganti ݅ ଶ dengan -1, contoh : ሺʹ ͵݅ሻሺͶ െ ͷ݅ሻ ൌ ͺ ʹ݅ െ ͳͷ݅ ଶ ൌ ͺ ʹ݅ െ ͳͷሺെͳሻ ൌ ʹ͵ ʹ݅ d. Pembagian, dilakukan dengan mengalikan pembilang maupun penyebut dengan konjugasi dari penyebut, contoh : ʹʹ ʹ ͵݅ ሺʹ ͵݅ሻሺͶ ͷ݅ሻ ሺͺ െ ͳͷሻ ሺͳͲ ͳʹሻ݅ ൌ ൌ ൌ ݅ ͳ ʹͷ Ͷͳ Ͷͳ Ͷ െ ͷ݅ ሺͶ െ ͷ݅ሻሺͶ ͷ݅ሻ Jika z = a + bi sebarang bilangan kompleks, maka sekawan (konjugasi) z dinyatakan oleh ݖҧ (dibaca “z garis”), didefinisikan oleh : ݖҧ ൌ ܽ െ ܾ݅
(2.54)
ݖҧ diperoleh dengan membalik tanda bagian imajiner z. Secara geometris, ݖҧ merupakan pencerminan z terhadap subu riil seperti yang terlihat pada Gambar 2.2. commit to user
23 digilib.uns.ac.id
perpustakaan.uns.ac.id
a, b z = a+bi
a, -b
ݖҧ ൌ a-bi
Gambar 2.2 Sekawan bilangan kompleks z Jika bilangan kompleks z dipandang sebagai vektor di R2, maka norma atau panjang vektor disebut modulus (atau nilai mutlak) z. Modulus bilangan kompleks z = a+bi, dinyatakan oleh |z|, didefinisikan sebagai berikut (Anton, 1987): ȁݖȁ ൌ ξܽଶ ܾ ଶ
(2.55)
Apabila z = a+bi direpresentasikan dalam bentuk x, y, maka akan menjadi z = x+yi. Jika z = x+yi adalah bilangan kompleks tak nol, r = |z|, dan θ merupakan sudut dari sumbu riil positif ke vektor z, maka menghasilkan persamaan berikut : x = r cos θ
(2.56)
y = r sin θ
(2.57)
dengan demikian, z = x+yi dapat ditulis sebagai : z = r (cos θ + i sin θ)
(2.58)
Persamaan di atas disebut sebagai bentuk kutub dari z. (x,y) y = r sin θ
r
θ x = r cos θ
Gambar 2.3 Bentuk kutub bilangan kompleks z = x+yi Sudut θ disebut sebagai argumen z dan dinyatakan oleh θ = arg z Argumen z tidak ditentukan secara unik karena dapat ditambahkan atau dikurangkan dengan sebarang kelipatan 2π dari θ untuk menghasilkan nilai commithanya to user argumen yang lain. Namun demikian, terdapat satu nilai argumen dalam
24 digilib.uns.ac.id
perpustakaan.uns.ac.id
radian yang memenuhi - π < θ < π yang disebut sebagai argumen utama z dan dinyatakan oleh θ = Arg z Akar-akar bilangan kompleks dapat diperoleh dengan menggunakan Rumus DeMoivre. Jika n bilangan bulat positif, dan z sebarang bilangan kompleks, maka didefinisikan akar ke-n dari z adalah sebarang bilangan kompleks w yang memenuhi persamaan wn = z
(2.59)
Jika z ≠ 0, maka rumus tersebut dapat diturunkan untuk akar ke-n dari z sebagai berikut : w = ρ (cos α + i sin α) dan z = r (cos θ + i sin θ) Jika diasumsikan bahwa w memenuhi Persamaan 49, maka : ρn (cos nα + i sin nα) = r (cos θ + i sin θ)
(2.60)
Dengan membandingkan modulus-modulus dari kedua ruas, maka ߩ ൌ ξݎ,
dimana ξ ݎmenyatakan akar riil positif ke-n dari r. Agar dalam Persamaan 50 mempunyai cos nα = cos θ dan sin nα = sin θ, sudut-sudut nα dan θ haruslah sama atau dibedakan oleh suatu kelipatan 2π, yakni : nα = θ + 2k π, dimana k = 0, ±1, ±2, ... Jadi, nilai-nilai w = = ρ (cos α + i sin α) yang memenuhi Persamaan 2.59 adalah:
ఏାଶగ
ݓൌ ݖଵȀ ൌ ξ ݎቂܿ ݏቀ
ఏାଶగ
ቁ ݅ ቀ
ቁቃ
(2.61)
Dimana nilai k sama dengan 0, 1, 2, 3, ..., n-1.
2.1.3 Galat Output dari perhitungan komputasi dengan menggunakan metode numerik biasanya menghasilkan nilai hampiran atau aproksimasi (approximation) dari nilai penyelesaian persamaan yang sebenarnya (Esfandiari, 2013). Galat atau kesalahan (error) didefinisikan sebagai selisih nilai sejati (exact solution) dengan nilai hampiran. Galat dihitung menggunakan dua cara yakni galat absolut dan galat relatif. Jika ݔҧ merupakan aproksimasi dari nilai sebenarnya x, maka galat absolut dapat didefinisikan sebagai berikut: commit to user ݁௦ ൌ ݔെ ݔҧ
(2.62)
25 digilib.uns.ac.id
perpustakaan.uns.ac.id
Di sisi lain, galat relatif dihitung dengan menggunakan rumus berikut : ݁ ൌ
௦௨௧ ்௨௩௨
ൌ
ೌ್ೞ ௫
ൌ
௫ି௫ҧ ௫
ǡͲ ് ݔ
(2.63)
Jika nilai sebenarnya sama dengan nol, maka nilai galat relatif tidak terdefinisikan. Umumnya, galat relatif lebih signifikan dibandingkan dengan galat absolut. Perhitungan galat relatif suatu bilangan kompleks tidak dapat dilakukan dengan menggunakan Persamaan 2.63. Dengan demikian, diperlukan formula khusus untuk menghitung galat bilangan kompleks. Sebuah usulan baru menyatakan bahwa dengan memodifikasi Persamaan 2.63, galat relatif suatu bilangan kompleks dapat dikalkulasi. Perhitungan galat relatif suatu akar kompleks ݖଵ ൌ ଵ ݍଵ ݅ dengan i satuan imaginer dari suatu nilai eksak ݖൌ ݅ݍadalah rasio norm dari selisih eksak dengan hampiran dengan norm dari eksak dan disajikan dalam bentuk persen. ݈݃ܽܽ ݐൌ
ԡ௭ି௭భ ԡ ԡ௭ԡ
ͳͲͲΨ
(2.64)
Beberapa jenis galat atau kesalahan adalah sebagai berikut (Salusu, 2008): a. Kesalahan relatif (relative error) yaitu kesalahan absolut dibagi dengan nilai sebenarnya. Karena nilai sebenarnya tidak diketahui maka digunakan nilai pendekatan. ݅௫ ൌ
ೣ ௫
(2.65)
b. Kesalahan bawaan (inheren) yaitu kesalahan dari data sendiri mungkin terjadi karena pengamatan kurang tepat atau adanya kekeliruan. c. Kesalahan pemotongan yaitu kesalahan yang terjadi karena adanya pemotongan suatu deret sehingga terdapat beberapa suku yang terabaikan. d. Kesalahan pembulatan yaitu kesalahan yang terjadi karena adanya pembulatan. e. Blunder (Mistakes) Blunder bukanlah suatu error. Misalnya bilangan 6238 dibaca sebagai 6328.
2.1.4 Rekayasa Perangkat Lunak Rekayasa perangkat lunak merupakan suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi commit to userdari kebutuhan pengguna, desain,
26 digilib.uns.ac.id
perpustakaan.uns.ac.id
pengkodean, pengujian hingga pemeliharaan sistem setelah digunakan (Mulyanto, 2008). Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi yang dapat berupa sebuah program yang dimengerti oleh komputer maupun prosedur yang dibutuhkan pengguna dalam memproses informasi. Berbagai model rekayasa perangkat lunak telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model rekayasa perangkat lunak umumnya mengacu pada Software Development Life Cycle (SDLC) yang memiliki tahapan analisis (analysis), desain (design), implementasi (implementasi), pengujian (testing), dan perawatan (maintenance) (Mulyanto, 2008).
2.1.4.1 Analisis (analysis) Analisis sistem merupakan sebuah teknik pemecahan masalah yang menguraikan sebuah sistem menjadi komponen-komponen dengan tujuan mempelajari seberapa baik komponen-komponen tersebut bekerja dan berineraksi untuk mencapai tujuan (Mulyanto, 2008). Tahap analisis dilakukan dengan menganalisa kebutuhan-kebutuhan perangkat lunak dan lingkungan implementasi.
2.1.4.2 Desain (design) Desain perangkat lunak merupakan tugas, tahapan, atau aktivitas yang difokuskan pada spesifikasi rinci dari solusi berbasis komputer. Desain perangkat lunak fokus pada sisi teknis dan implementasi sebuah perangkat lunak (Mulyanto, 2008). Desain perangkat lunak dapat dilakukan menggunakan flowchart maupun pemodelan menggunakan UML. 1. Flowchart Bagan alir sistem (system flowchart) merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan urutan-urutan dari prosedur-prosedur yang ada dalam sistem (Sikha, 2003). Definisi lain mengenai flowchart yaitu bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah (Al-Bahra, 2005). Simbol-simbil atau elemen-elemen pada flowchart dijabarkan dalam Tabel 2.1.
commit to user
27 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 2.1 Simbol Elemen Flowchart Simbol
Nama
Keterangan
Terminator
Permulaan / akhir program Proses perhitungan / proses
Process
pengolahan data Perbandingan pernyataan,
Decision
penyeleksian data yang memberikan pilihan untuk langkah selanjutnya
Data
Data yang digunakan misalnya variabel
2. UML (Unified Modelling Language) Unified Modelling Language merupakan seperangkat aturan dan notasi untuk spesifikasi sistem perangkat lunak yang dikelola dan diciptakan oleh Object Management Group. Notasi tersebut berupa elemen grafis untuk memodelkan bagian-bagian sistem. Penggunaan UML akan mempermudah programmer untuk menyalurkan idenya kepada calon pengguna sistem. Adanya bahasa yang bersifat standar, komunikasi antara perancang, programmer, dan calon pengguna diharapkan berjalan dengan lancar (Luthfi & Riasti, 2013). Selain itu, dengan menggunakan UML ini akan lebih memudahkan programmer dalam melakukan perancangan perangkat lunak. a. Behavioral Diagrams 1. Use Case Diagram Use Case Diagram merupakan diagram yang sangat berguna sebagai alat komunikasi tingkat tinggi yang merepresentasikan kebutuhan sistem (system requirements). Diagram ini menunjukkan interaksi antara pengguna dan entitas eksternal dengan sistem yang sedang dikembangkan. Berikut merupakan elemen use case diagrams:
commit to user
28 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 2.2 Notasi Use Case Diagram (Sugrue, 2010) Entitas
Deskripsi
Aktor
Mewakili entitas eksternal dalam sistem, dapat berupa manusia, perangkat keras, maupun sistem lainnya.
User
Trial User
Use Case
Use case merepresentasikan fungsional sebuah unit yang dapat berinteraksi dengan aktor eksternal atau
View Errors
terkait dengan kasus penggunaan lainnya. Use case digambarkan dengan bentuk elips dengan nama use case di dalamnya.
Boundary
Use case terdapat dalam batas (boundary) sistem System
yang
digambarkan
dengan
persegi
panjang
sederhana. Entitas eksternal tidak harus berada di dalam batas (boundary) sistem. Includes
Menggambarkan suatu use case mungkin termasuk View Errors
dalam use case lainnya, yang menyiratkan bahwa use case tersebut memiliki perilaku yang sama
<
>
dengan base use case. View System Level Error
Extends
Menggambarkan
Print Error Log
suatu
use
case
tertentu
menyediakan fungsional tambahan dari base use case lainnya. Hal ini berarti use case target
<<extend>>
memperluas perilaku dari use case sumber. Print
2. Activity Diagram Dalam activity diagram dimodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses. Hampir sama seperti flowchart, dengan diagram ini dapat dimodelkan sebuah alur kerja dari satu aktivitas ke aktivitas lainnya atau dari aktivitas ke keadaan state commit to user (Luthfi & Riasti, 2013).
29 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 2.3 Notasi Activity Diagram (Surgue, 2010) Entitas Action
Deskripsi Merepresentasikan suatu langkah atau aksi
View System Events
Start Node
dalam alur program. Digunakan
sebagai
tanda
dimulainya
sebuah alur (flow). Start
Activity Final Node
Merepresentasikan akhir dari semua alur kontrol dalam activity.
End
Control Flow
Merepresentasikan alur kontrol dari satu action ke entitas lain seperti action selanjutnya, decision point, activity final node, dan lain sebagainya.
Decision Node
Notasi yang berbentuk diamon digunakan untuk
merepresentasikan
keputusan
(decisions) dalam alur kontrol. Selain itu, notasi tersebut juga dapat digunakan untuk gabungan alur (merge flows). Partition
Swimlanes System
View System Events
digunakan
dalam
activity
diagram untuk menggambarkan kegiatan yang dilakukan oleh pelaku yang berbeda.
3. State Machine Diagrams State Machine Diagrams digunakan untuk menggambarkan transisi state dari lifetime objek tunggal dalam menanggapi peristiwa. Diagram ini dimodelkan hampir sama dengan activity diagram.
commit to user
30 digilib.uns.ac.id
perpustakaan.uns.ac.id
b. Interaction Diagrams Interaction diagrams adalah subset dari behavioral diagrams yang berkaitan dengan aliran kontrol seluruh sistem yang dimodelkan. 1. Sequence Diagrams Interaksi antar entitas atau objek disusun dalam suatu urutan tertentu dan akan dijelaskan melalui diagram sequence. Sequence diagram menunjukkan tahap-tahap yang seharusnya terjadi untuk menghasilkan sesuatu dalam use case (uthfi dan Riasti, 2013). Lifeline Objects Sequence diagram terdiri dari beberapa lifeline. Masing-masing entitas memiliki kolomnya sendiri. Berikut ini merupakan beberapa lifeline untuk masing-masing entitas: Tabel 2.4 Notasi Lifeline Sequence Diagram (Surgue, 2010) Entitas Actor
Deskripsi Actor mewakili entitas eksternal dalam sistem. Entitas eksternal meliputi manusia, perangkat keras ataupun sistem lainnya.
: User
Boundary
Elemen boundary merupakan antarmuka pengguna, atau logika back-end yang berhubungan dengan
: Boundary
Control
sistem eksternal secara langsung.
Elemen ini mengelola aliran informasi untuk sebuah skenario. Perilaku (behavior) dan aturan bisnis
: Control
(business rules) biasanya dikelola oleh objek-objek di dalamnya.
Entity
Elemen Entity bertanggung jawab mengendalikan data atau informasi. Elemen ini dianggap sebagai
: Entity
beans atau model objek.
commit to user
31 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pada sequence diagram, hal yang paling inti yakni pesan antar objek yang dimodelkan. Pesan tersebut biasanya berbentuk messagename (parameter). Pesan dapat dikirim dari dua arah, dan memungkinkan melewati lifelines lainnya untuk menuju lifelines tujuan. Tabel 2.5 Notasi Message Sequence Diagram (Surgue, 2010) Entitas Synchronous 1
Deskripsi Digambarkan dengan ujung berupa anak panah yang solid. Untuk pesan kembalian (return message) digambarkan dengan anak panah yang sama namun dengan garis putus-putus.
Asynchronous 1
Digambarkan dengan ujung berupa garis anak panah. Untuk return message bentuknya pun sama tetapi menggunakan garis putus-putus.
Self Message 1
Biasanya merupakan pesan yang dipanggil secara rekursif atau panggilan untuk metode lain milik objek yang sama.
2. Communication Diagrams Communication diagrams juga dikenal sebagai collaboration diagram. Diagram ini hampir sama dengan sqeuence diagrams, tetapi diagram ini didefinisikan dalam bentuk yang lebih bebas tanpa menggunakan lifelines. Communication diagram fokus pada hubungan antara objek boundary, control, dan entity. Pesan antar objek diberi nomor untuk menginformasikan urutannya. 3. Interaction Overview Diagrams Interaction Overview Diagrams adalah bentuk activity diagram dimana setiap node merupakan penghubung ke node lainnya dalam diagram interaksi. Diagram ini menyediakan ikhtisar atau index yang berguna dari key diagrams dalam sebuah sistem.
commit to user
32 digilib.uns.ac.id
perpustakaan.uns.ac.id
c. Structural Diagrams 1. Class Diagrams Class Diagram merupakan sebuah spesifikasi yang jika diinisiasikan akan
menghasilkan
pengembangan
dan
menggambarkan menawarkan
sebuah
objek
desain
berorientasi
keadaan
layanan
dan
merupakan objek.
(atribut/properti)
untuk
memanipulasi
sebuah
inti
dari
Diagram
ini
sistem
dan
keadaan
tersebut
(metode/fungsi) (Luthfi dan Ristiana, 2013). 2. Object Diagrams Object diagrams memberikan informasi mengenai hubungan antara contoh kelas pada titik tertentu. Diagram ini menggunakan beberapa elemen dari class diagram. 3. Components Diagrams Components diagrams digunakan untuk menggambarkan bagaimana komponen sistem yang dihubungkan bersama pada tingkat abstraksi yang lebih tinggi dari class diagram. 4. Composite Structure Diagrams Composite Structure Diagrams menunjukkan struktur internal kelas dan kolaborasi yang dimungkinkan. Entitas utama dalam diagram ini adalah parts, ports, connectors, collaboration, sebagai pengklasifikasi. 5. Deployment Diagrams Deployment diagrams memodelkan arsitektur runtime dari sistem dalam pengaturan dunia nyata. Diagram ini menunjukkan bagaimana entitas perangkat lunak dikerahkan ke node perangkat keras dan devices. Association links antar entitas merepresentasikan komunikasi antar node. 6. Package Diagrams Package diagrams menunjukkan organisasi paket dan elemen dalam memberikan visualisasi dari namespace yang akan diterapkan dalam class. Diagram ini pada umumnya digunakan untuk mengatur dan memberikan gambaran class diagram. seperti standar dependensi, terdapat dua jenis hubungan commit spesifik to user yang digunakan untuk package
33 digilib.uns.ac.id
perpustakaan.uns.ac.id
diagram. Keduanya digambarkan garis putus-putus tergantung pada stereotip yang sesuai (import or merge).
2.1.4.3 Implementasi (implementation) Implementasi merupakan tahapan menerjemahkan hasil desain logis dan fisik ke dalam kode-kode program komputer (Mulyanto, 2008).
2.1.4.4 Pengujian (testing) Pengujian
perangkat
lunak
merupakan
sebuah
proses
terhadap
aplikasi/program untuk menemukan segala kesalahan dan segala kemungkinan yang akan menimbulkan kesalahan sesuai dengan spesifikasi perangkat lunak yang telah ditentukan sebelum aplikasi tersebut diserahkan kepada pelanggan (Simarmata, 2010). Terdapat dua jenis pengujian perangkat lunak yaitu manual testing dan automated testing. Pada manual testing, pengujian perangkat lunak dilakukan secara manual yaitu dengan menggunakan black box testing ataupun white box testing. Black box testing digunakan untuk mengetahui hasil yang diperoleh dari sebuah sistem. Dalam pengujian black box, data tes diinputkan dalam sistem yang akan diuji dan kemudian menghasilkan output. Pengujian Black box menguji kualitas kinerja perangkat lunak, sedangkan pengujian white box menguji kualitas pembangunan perangkat lunak. Dengan demikian, tidak seperti pengujian black box, pengujian white box tidak mempertimbangkan hasil yang diperoleh dari sebuah perangkat lunak, tetapi fokus pada proses yang dilakukan sistem untuk menghasilkan output (Bennett, McRobb, and Farmer, 2010). Pelaksanaan pengujian perangkat lunak dilakukan berdasarkan strategi khusus pengujian perangkat lunak, misalnya big bang testing atau incremental testing dan bottom-up atau top-down testing (Galin, 2004). Pada automated testing, pengujian dilakukan dibantu dengan tools CASE (computer aided software engineering) dalam menganalisa perangkat lunak dan desain tasks.
commit to user
34 digilib.uns.ac.id
perpustakaan.uns.ac.id
2.1.4.5 Perawatan (maintenance) Perawatan dapat dilakukan dengan berbagai tipe seperti perawatan corrective, perawatan routine, dan perawatan system upgrade.
2.2 Penelitian Terkait Berikut ini merupakan beberapa penelitan-penelitian terkait algoritma-algoritma pencarian akar kompleks polinomial : a) Menentukan Akar kompleks Polinomial dengan Menggunakan Metode Bairstow Penelitian yang dilakukan oleh Iges Windra, Minora Longgom Nasution, dan Meira Parma Dewi pada tahun 2013 membahas cara menentukan akar kompleks polinomial dengan menggunakan metode Bairstow. Untuk mencari akar kompleks polinomial dengan menggunakan metode Bairstow, langkah-langkah yang dilakukan oleh peneliti, seperti yang tertulis dalam jurnalnya yang merupakan adopsi dari penelitian sebelumnya yang dilakukan oleh Bagheri (n.d) adalah sebagai berikut: 1. Menentukan tebakan awal dari variabel ݔଶ ݔݑ ݒ 2. Menghitung nilai ܾ ൌ ܽ 3. Menghitung ܾିଵ ൌ ܽିଵ ܾݑ ܾ ൌ ܽ ܾݑାଵ ܾݒାଶ 4. Menghitung nilai ܿ ൌ ܾ 5. Menghitung nilai ܿିଵ ൌ ܾିଵ ܿݑ ܿ ൌ ܾ ܿݑାଵ ܿݒାଶ 6. Mencari ο ݑdan ο ݒdengan aturan Cramer sebagai berikut: ο ݑൌ
ο ݒൌ
ିభ య ฬ ିబ మ మ య ቚ ቚ భ మ
ൌ
ିభ మ ฬ ିబ భ మ య ቚ ቚ భ మ
ൌ
ฬ
ฬ
ሺమ ሻሺିభ ሻିሺିబ ሻሺయ ሻ ሺమ ሻሺమ ሻିሺభ ሻሺయ ሻ
ሺభ ሻሺିభ ሻିሺమ ሻሺିబ ሻ
commit ሺమ ሻሺమ ሻିሺభ ሻሺ యሻ
to user
perpustakaan.uns.ac.id
35 digilib.uns.ac.id
7. Mencari nilai u dan v yang terbaru dengan persamaan : ݑ௨ ൌ כݑ οݑ ݒ௨ ൌ כ ݒ οݒ 8. Melakukan proses iterasi dengan mengulang langkah kedua dan ketiga sampai memenuhi kriteria penghentian. 9. Mencari akar kompleks persamaan polinomial dengan bantuan rumus kuadratis. 10. Menentukan polinomial yang telah terdeflasi, dengan beberapa kemungkinan berikut: a. Jika polinomial yang telah terdeflasi berderajat satu atau dua maka dapat dicari akarnya dengan rumus analitik. b. Jika polinomial yang telah terdeflasi berderajat lebih dari 2 maka dilanjutkan dengan pencarian akar dengan langkah metode Bairstow. Dalam penelitian tersebut, peneliti melakukan analisis metode Bairstow secara detail. Hasil analisis diterapkan untuk menyelesaikan persamaan polinomial. Setiap akar kompleks polinomial ditemukan, iterasi dihentikan dan dihitung keakuratan perhitungan berdasarkan estimasi eror. Misalnya iterasi keempat, metode Bairstow menghasilkan pendekatan ݔଶ െ ݔݑെ ݒyang sangat akurat dengan estimasi eror 0.062% untuk u dan 0.004% untuk v. Kemudian dilanjutkan pencarian akar kompleks lainnya berdasarkan polinomial terdeflasi. Dengan demikian, hasil analisi cukup teliti karena dilakukan perhitungan persentase estimasi eror nilai u dan v pada setiap iterasinya. Namun, pencarian akar kompleks polinomial pada penelitian ini hanya dilakukan pada satu sampel random yakni ݂ሺݔሻ ൌ ݔହ െ ͵ǡͷ ݔସ ʹǡͷ ݔଷ ʹǡͳʹͷ ݔଶ െ ͵ǡͺͷ ݔ ͳǡʹͷ. Selain itu, penelitia yang dilakukan merupakan penelitian teoritis sehingga hanya mengujikan teori metode Bairstow yang sudah ada, tanpa membuat suatu hal yang baru. Keterkaitan antara penelitian dalam jurnal dengan penelitian yang dilakukan yaitu memiliki kesamaan metode yang digunakan dalam pencarian akar kompleks polinomial. Perbedaan dengan peneitian yang diusulkan yaitu objek analisisnya.
b) Solving Cubic Equations by Viete’s Substitutions Artikel ditulis oleh OR Chi Ming pada EduMath29 pada tahun 2010. Dalam artikel tersebut, OR Chi Ming menunjukkan alternatif cara untuk menyelesaikan commit to user
36 digilib.uns.ac.id
perpustakaan.uns.ac.id
persamaan polinomial yang terdapat dalam artikel Leung pada EduMath27 dengan pengetahuan matematika tanpa level matrikulasi seperti yang dilakukan oleh Leung Chi Kit. Untuk menyelesaikan persamaan polinomial, Leung Chi Kit menggunakan substitusi ݔൌ ܿ ߠݏdan dengan menyelesaikan persamaan yang didapat yaitu
ߠ ൌ menggunakan formula Euler’s ݁ ఏ ൌ ܿ ߠݏ ݅ߠ݊݅ݏ. OR Chi Mig kemudian membuktikan bahwa formula Euler’s yang digunakan dalam penyelesaian persamaan polinomial oleh Leung Chi Kit tidak diperlukan. Untuk menyelesaikan kasus Leung, OR Chi Ming menggunakan substitusi Viete’s. Dikutip dari Ming (2010), algoritma Viete’s memanfaatkan trigonometri untuk menyelesaikan persamaan polinomial. Misalnya diketahui persamaan kubik ݔଷ
ܽ ݔଶ ܾ ݔ ܿ ൌ Ͳ. Dari persamaan tersebut, substitusi ݔൌ ݕെ ଷ
dapat
bertransformasi menjadi ݕଷ ݕ ݍൌ Ͳ. Viete’s menggunakan rumus tiga sudut (triple angle formula),
͵ ܣൌ Ͷܿ ݏଷ ܣെ ͵
ܣ. Langkah pertama yang dilakukan adalah memasukkan ݕൌ ݇
ܣke dalam persamaan ݕଷ ݕ ݍൌ Ͳ, sehingga didapat hasil berikut: ݇ ଷ ܿ ݏଷ ܣ ܣݏܿ݇ ݍൌ Ͳ Kemudian k dapat ditentukan dengan ݇ ଷ ǣ ݇ൌ Ͷǣ െ͵, maka : య
ฺ Jika p<0, pilih ݇ ൌ ටെ െ
ସ ଷ
ටെ
ସ ଷ ସ ଷ
మ
ସ
ൌ െଷ ସ
ൌ െଷ
dan masukkan ݕൌ ටെ
ଷ ܣ ටെ
ସ ଷ
ସ ଷ
ܣ. Sehingga didapat :
ܣ ݍൌ Ͳ
ฺ ሺͶ
ଷ ܣെ ͵
ܣሻ ቆെ ଷ ටെ
ସ ଷ
ቇ ൌ െݍ
ฺ
͵ ܣൌ య
ටି
ర య
Dengan demikian, maka persamaan kubik akan tereduksi menjadi persamaan trigonometri yang sederhana. Tahap selanjutnya yaitu :
ቮ ర ቮ ͳ ටି to user commit య య
37 digilib.uns.ac.id
perpustakaan.uns.ac.id
֞ మ వ
֞ Apabila
య
ଶ
మ ସ
మ ൈ
షర య
య ଶ
ͳሺ ൏ Ͳሻ మ ସ
Ͳሺ ൏ Ͳሻ
Ͳ, maka persamaan ݕଷ ݕ ݍൌ Ͳ harus diselesaikan
dengan menyubstitusikan ݕൌ ටെ
ସ ଷ
ܣdan triple angle formula.
Dari penelitian tersebut, OR Chi Ming menyimpulkan bahwa untuk menyelesaikan persamaan kubik yang memiliki akar rasional lebih baik menggunakan teorema faktor seperti substitusi Viete’s atau formula Cardano. Kelebihan dari penelitian ini ialah selain dilakukan pada kasus yang diselesaikan oleh Leung Chi Kit, substitusi Viete’s juga diterapkan dalam kasus yang diselesaikan dengan algoritma Cardano. Dari kedua pengujian tersebut, dapat diketahui dimana substitusi Viete’s dapat mempermudah pencarian akar polinomial pada kasus-kasus tertentu. Namun, pengujian substitusi Viete’s hanya dilakukan pada dua kasus saja sehingga belum diketahui kelebihan dan kekurangan substitusi Viete’s pada kasus-kasus yang diselesaikan dengan algoritma lainnya. Keterkaitan antara penelitian ini dengan penelitian yang diusulkan yaitu menggunakan metode yang sama yakni algoritma Viete’s.
c) A New Approach to Solving The Cubic: Cardan’s Solution Revealed Artikel yang ditulis oleh RWD Nickalls pada tahun 1993 mendeskripsikan lima parameter fundamental dari persamaan kubik yaitu ߜǡ ߣǡ ݄ǡ ݔே ǡdan ݕே dan menunjukkan bagaimana parameter-parameter tersebut dapat memodifikasi metode standar dalam memecahkan persamaan kubik (solusi Cardan) secara signifikan. Pada artikel ini, peneliti membuat sebuah pendekatan baru untuk menyelesaikan persamaan kubik. Dimulai dengan bentuk persamaan kubik dengan bentuk yang tertera pada Persamaan 4, dimana persamaan tersebut memiliki akar ߙǡ ߚǡ ߛ dan memperoleh bentuk tereduksi dengan substitusi ݔൌ ݖ ݔே . Dengan demikian, bentuk persamaan tersebut (Press et al., 1989) adalah sebagai berikut: ݃ሺݖሻ ൌ ܽ ݖଷ െ ͵ܽߜ ଶ ݖ ݕே ൌ Ͳ dan memiliki akar ݖଵ ൌ ߙ െ ݔே ǡ ݖଶ ൌ ߚ െ ݔே ǡ ݖଷ ൌ ߛ െ ݔே . Bentuk penggunaan commit to user identitas biasanya yaitu :
38 digilib.uns.ac.id
perpustakaan.uns.ac.id
ሺ ݍሻଷ െ ͵ݍሺ ݍሻ െ ሺଷ ݍଷ ሻ ൌ Ͳ Maka z = p + q adalah solusi dari (Press et al., 1989) ݍൌ ߜ ଶ dan ଷ ݍଷ ൌ െ ݕே Τܽ Pertama, selesaikan persamaan tersebut dengan cubing seperti biasanya, kemudian ଵ
substitusikan q dan selesaikan ଷ ൌ ଶ ቄെݕே േ ඥݕேଶ െ Ͷܽଶ ߜ ቅ, dan ݄ଶ ൌ Ͷܽଶ ߜ , maka menjadi : ଵ
ଷ ൌ ଶ ቄെݕே േ ඥݕேଶ െ ݄ଶ ቅ Persamaan di atas sangat berguna jika terdapat akar tunggal real, yaitu ketika ݕேଶ ݄ଶ . Hal ini berbeda dengan pendekatan Cardan : ଵ
ଷ ൌ ଶయ ൛െ ܩേ ξ ܩଶ Ͷ ܪଷ ൟ Dimana nilai G, H, ܩଶ Ͷ ܪଷ adalah : ܩൌ ܽଶ ݕே ǡ ܪൌ െܽଶ ߜ ଶ ܽ݊݀ ܩଶ Ͷ ܪଷ ൌ ܽସ ሺݕேଶ െ ݄ଶ ሻ Dengan demikian, maka persamaan di atas dapat ditulis sebagai berikut: ଵ
ଷ ൌ ଶ ൛െݕே േ ඥሺݕே ݄ሻሺݕே െ ݄ሻൟ Jika turning point pada koordinat y adalah yr, maka ݕே ݄ ൌ ்ݕభ ܽ݊݀ݕே െ ݄ ൌ ்ݕమ Solusi yang diusulkan oleh peneliti dapat ditulis sebagai berikut: ଵ
ଷ ൌ ଶ ൛െݕே േ ඥ்ݕభ ்ݕమ ൟ Dengan menggunakan simbol οଷ untuk diskriminan (geometrik) persamaan kubik, maka didapat : οଷ ൌ ்ݕభ ்ݕమ ൌ ݕேଶ െ ݄ଶ Solusi persamaan kubik ini bergantung pada tanda diskriminan berikut : 1. ݕேଶ ݄ଶ , maka memiliki satu akar yakni : య
ଵ
య
ଵ
ߙ ൌ ݔே ටଶ ቀെݕே ඥݕேଶ െ ݄ଶ ቁ ටଶ ቀെݕே െ ඥݕேଶ െ ݄ଶ ቁ 2. ݕேଶ ൌ ݄ଶ Pada kondisi h≠0, menghasilkan dua akar yang sama yakni ݖൌ ߜǡ ߜǡ െʹߜ. Akar sebenarnya adalah ݔൌ ݔே ߜǡ ݔே ߜǡ ݔே െ ʹߜ. Karena terdapat dua akar yang sama, maka tanda ߜ menjadi sangat penting dan bergantung pada tanda ݕே , dengan demikian maka ߜ dapat ditentukan commit to user dengan :
39 digilib.uns.ac.id
perpustakaan.uns.ac.id
య
௬
ߜ ൌ ට ଶಿ Jika ݕே ൌ ݄ ൌ Ͳ maka ߜ ൌ Ͳ, dalam kasus ini terdapat tiga akar yang sama yaitu ݔൌ ݔே . 3. ݕேଶ ൏ ݄ଶ Pada kondisi ini terdapat tiga akar real yang berbeda. Untuk menyelesaikannya peneliti mengusulkan untuk menggunakan trigonometri untuk menyelesaikan bentuk tereduksi menggunakan substitusi ݖൌ ʹߜܿ ߠݏsehingga diberikan: ʹܽߜ ଷ ሺͶܿ ݏଷ ߠ െ ͵ܿߠݏሻ ݕே ൌ Ͳ, dan ʹܽߜ ଷ ൌ ݄, maka persamaan tersebut menjadi ܿ ߠ͵ݏൌ
ି௬ಿ
. Dengan demikian, maka tiga akar yang dihasilkan dapat
dicari dengan menggunakan rumus berikut: ߙ ൌ ݔே ʹߜܿߠݏ ߚ ൌ ݔே ʹߜ
ሺߠ ߛ ൌ ݔே ʹߜ
ሺߠ
ଶగ ଷ ସగ ଷ
ሻ
ሻ
Peneliti mampu menunjukkan pendekatan baru untuk menyelesaikan persamaan kubik dan berhasil membuktikan bahwa parameter ߜǡ ߣǡ ݔே ǡdan ݕே menunjukkan kelebihan bagaimana solusi aljabar berkaitan dengan geometri persamaan kubik. Namun, hanya terdapat satu contoh penyelesaian persamaan kubik dan tidak terdapat perbandingan dengan metode lain untuk mengetahui perbandingan keefektifan penggunaan pendekatan yang baru. Keterikatan penelitian ini dengan penelitian yang diusulkan adalah objeknya sama yaitu persamaan kubik atau polinomial berderajat tiga.
d) Aplikasi Medote Muller dan Metode Bairstow dengan Bantuan Matlab dalam Menentukan Akar-Akar Polinomial Penelitian ini dilakukan oleh Hendun Mariana pada tahun 2007. Penelitian dilakukan dengan tujuan untuk mengaplikasikan metode Muller dan metode Bairstow dengan menggunakan bantuan Matlab untuk kemudian dilakukan analisa hasil penemuan akar-akar polinomial. Berdasarkan penelitian yang mengadopsi metode yeng sebelumnya telah dikemukakan oleh Steven (2002), aplikasi metode
commit to user
40 digilib.uns.ac.id
perpustakaan.uns.ac.id
Muller dengan bantuan Matlab dalam menentukan akar-akar polinomial dapat dijabarkan melalui langkah-langkah berikut ini: 1. Menentukan polinomial berderajat tinggi. 2. Menentukan 3 nilai tebakan awal yaitu ݔ ǡ ݔଵ ǡ ݔଶ sebagai pendekatan terhadap akar-akar polinomial yang akan dicari. 3. Karena nilai ݔ ǡ ݔଵ ǡ ݔଶ sudah diketahui, maka didapat nilai ݂ሺݔ ሻǡ ݂ሺݔଵ ሻǡ ݂ሺݔଶ ሻ. 4. Menghitung jarak antara nilai tebakan pertama dengan tebakan kedua ሺ݄ ൌ ݔଵ െ ݔ ሻ dan jarak antara nilai tebakan kedua dengan ketiga ሺ݄ଵ ൌ ݔଶ െ ݔଵ ሻ serta nilai fungsi dari kedua jarak yaitu ߜ ൌ ݂ሾݔିଵ ǡ ݔିଶ ሿ ൌ ݂ሾݔଶ ǡ ݔଵ ሿ ൌ
ሺ௫భ ሻିሺ௫బ ሻ బ
dan
ሺ௫మ ሻିሺ௫భ ሻ భ
.
5. Menghitung nilai a, b, c : ܽ ൌ ݂ሾݔ ǡ ݔିଵ ǡ ݔିଶ ሿ ൌ
ሾ௫ ǡ௫షభ ሿିሾ௫షభ ǡ௫షమ ሿ ାషభ
ఋ ିఋ
ൌ భ ାబ భ
బ
ܾ ൌ ݂ሾݔ ǡ ݔଵ ሿ ݄ଵ ݂ሾݔ ǡ ݔିଵ ǡ ݔିଶ ሿ ൌ ߜଵ ݄ܽଵ ܿ ൌ ݂ሺݔଶ ሻ 6. Menghitung nilai diskriminannya yaitu b + D dan b – D, kemudian diambil salah satu dari keduanya dengan nilai terbesar. 7. Menghitung nilai ݄ଷ ൌ
ିଶ േξ మ ିସ
. Berdasarkan nilai ݄ଷ , kemudian dilakukan
pencarian akar yaitu ݔଷ ൌ ݔଶ ݄ଷ . 8. Menghitung galat untuk akar yang ditemukan. Jika galat terlalu besar maka dapat dilakukan iterasi dengan mengganti nilai tebakannya, yaitu ݔ diganti dengan ݔଵ , ݔଵ diganti dengan ݔଶ , ݔଶ diganti dengan ݔଷ . 9. Dengan ketiga nila tebakan awal yang baru, dilakukan iterasi kemudian dicari akarnya, dan begitu seterusnya. 10. Apabila didapatkan akar yang paling kecil galatnya yaitu mendekati nol atau sama dengan 0.0001, maka iterasi segera dihentikan. Peneliti kemudian mengaplikasikan metode Bairstow, berdasarkan buku dengan langkah-langkah sebagai berikut: 1. Menentukan tebakan awal untuk faktor kuadrat yakni r dan s dan batas toleransi untuk galatnya yaitu 0.0001. 2. Menghitung ܾ ൌ ܽ
commit to user
41 digilib.uns.ac.id
perpustakaan.uns.ac.id
3. Menghitung nilai ܾିଵ ൌ ܽିଵ ܾݎ dan ܾ ൌ ܽ ܾݎାଵ ܾݏାଶ untuk i = n – 2 sampai 0. 4. Menghitung nilai ܿ ൌ ܾ 5. Meghitung nilai ܿିƮଵ ൌ ܾିଵ ܿݎ dan ܿ ൌ ܾ ܿݎାଵ ܿݏାଶ untuk i = n – 2 sampai 1. 6. Menghitung nilai ο ݎdan ο ݏdengan menggunakan rumus ܿଶ ο ݎ ܿଷ ο ݏൌ െܾଵ dan ܿଵ ο ݎ ܿଶ ο ݏൌ െܾ serta ݎᇱ ൌ ݎ ο ݎdan ݏᇱ ൌ ݏ οݏ 7. Apabila galat terlalu besar, maka dilakukan iterasi kembali degan nilai r dan s yang baru. ο
ο
หߝǡ ห ൌ ቚ ᇱ ቚ ͳͲͲΨ dan หߝǡ௦ ห ൌ ቚ ௦ᇱ ቚ ͳͲͲΨ 8. Jika galat mendekati nilai toleransi galat yang telah ditentukan, misalnya 0.0001, maka pencarian akarnya bisa dilakukan menggunakan rumus kuadrat seperti yang tertera pada Persamaan 7, dimana nilai b merupakan nilai dari u, nilai a sama dengan nol, dan nilai c sama dengan v. 9. Jika galat pada poin tujuh masih besar, maka dilakukan iterasi dengan langkahlangkah yang sama mulai langkah pertama hingga didapat nilai r dan s dengan galat yang mendekati nol atau sesuai dengan batas maksimum nilai fungsi yaitu 0.0001. 10. Menentukan akar dengan menggunakan rumus yang sama. Pencarian akar-akar lainnya dilakukan dengan iterasi kembali mulai dari awal hingga akhir menggunakan langkah-langkah yang sama dengan nilai r dan s yang berbeda. Dari hasil penelitian ini, dapat dianalisa bahwa untuk pencarian akar ݂ሺݔሻ ൌ ݔସ െ ݔଷ ͵ ݔଶ ͳͷ ݔ ͵ͲͲ dengan menggunakan metode Bairstow lebih efektif dibandingkan dengan metode Muller. Kelebihan penelitian ini adalah membandingkan dua metode yaitu metode Muller dan Bairstow sehingga dapat diketahui metode terbaik diantara keduanya. Namun, perbandingan kedua metode hanya berdasarkan pada jumlah langkah kerja saja, tidak berdasarkan galat yang dihasilkan. Keterkaitan penelitian ini dengan penelitian yang akan dilakukan adalah kesamaan metode yang digunakan yaitu metode Bairstow dan metode Muller.
commit to user
dalam sebuah kasus. estimasi eror 0% untuk u dan 0.0064% untuk v
ݔସ ൌ ͳ െ ͲǤͷ݅ǡ ݔହ ൌ ʹ
ݔଷ dan ݔସ .
untuk pencarian akar
pada iterasi keenam
diimplementasikan
sangat akurat dengan
ݔଷ ൌ ͳ ͲǤͷ݅ǡ
kemudian
ݒyang dihasilkan
(2013)
metode Bairstow
pendekatan ݔଶ െ ݔݑെ
ݔଶ ൌ െͳǡ
ݔଵ ൌ ͲǤͷǡ
Iges Windra
metode Bairstow
Metode Bairstow/
dimana hanya dilakukan penurunan
konvergensi yang
ʹǡͷ ݔଷ ʹǡͳʹͷ ݔଶ െ
polinomial
penelitian teoritis
dilakukan merupakan
Penelitian yang
Kelemahan
tinggi. Terlihat dari
memiliki laju
ݔହ െ ͵ǡͷ ݔସ
kompleks
͵ǡͺͷ ݔ ͳǡʹͷ yaitu:
metode Bairstow
persamaan ݂ሺݔሻ ൌ
Kelebihan
pencarian akar
menggunakan
commit to user
Menggunakan
dengan
Polinomial
kompleks
Hasil Dapat menunjukkan
Metode Bairstow
Metode Akar polinomial dari
Menentukan Akar Melakukan
1.
Tujuan
Judul / Penulis
No.
Tabel 2.6 Penelitian Terkait
42
Bairstow.
yaitu metode
digunakan serupa
Metode yang
penelitian
Keterkaitan
perpustakaan.uns.ac.id digilib.uns.ac.id
persamaan kubik yang memiliki akar rasional
alternatif cara
untuk
menyelesaikan
Viete’s
Substitution/ OR
commit to user
Chi Ming (2010)
Cardano.
tertentu.
Cardano.
dengan
level matrikulasi
matematika tanpa
pengetahuan
Leung dan formula
pada kasus-kasus
Viete’s atau formula
artikel Leung
menggunakan rumus
kompleks polinomial
faktor seperti substitusi
polinomial dalam
diselesaikan dengan
menggunakan teorema
pencarian akar
yaitu algoritma
digunakan serupa
Metode yang
penelitian
Keterkaitan
43
kasus yang sebelumnya Viete’s.
pada dua kasus, yakni
substitusi Viete’s dapat memudahkan
hanya diujicobakan
Substitusi Viete’s
Kelemahan
bahwa penerapan
Dapat menunjukkan
Kelebihan
persamaan
lebih baik
Penyelesaian
Equations by
Substitusi Viete’s
Menunjukkan
Hasil
Solving Cubic
Metode
2.
Tujuan
Judul / Penulis
No.
Tabel 2.6 Lanjutan Penelitian Terkait
perpustakaan.uns.ac.id digilib.uns.ac.id
menyelesaikan
fundamental dari
persamaan kubik
Cubic: Cardan’s
perbandingan keefektifan penggunaan pendekatan yang baru.
kelebihannya.
bahwa parameter ߜǡ ߣǡ ݔே ǡdan ݕே menunjukkan kelebihan bagaimana solusi aljabar berkaitan dengan geometri persamaan kubik.
dan menunjukkan
bagaimana
parameter
tersebut dapat
memodifikasi
solusi Cardan
secara signifikan
mengetahui
metode lain untuk
menunjukkan
berhasil membuktikan
ߜǡ ߣǡ ݄ǡ ݔே ǡdan ݕே
perbandingan dengan
tidak terdapat
persamaan kubik dan
contoh penyelesaian
Nickalls (1993)
parameter yang
dengan beberapa
pendekatan baru
menunjukkan
Hanya terdapat satu
Kelemahan
persamaan kubik dan
sebuah pendekatan
Peneliti mampu
Kelebihan
yakni
commit to user
Revealed/ RWD
Solution
baru untuk
lima parameter
Peneliti membuat
to Solving the
Solusi Cardano
Mendeskripsikan
A New Approach
Hasil
3.
Metode
Tujuan
Judul / Penulis
No.
Tabel 2.6 Lanjutan Penelitian Terkait
44
polinomial kubik.
penyelesaian
dilakukan untuk
Penelitian ini
penelitian
Keterkaitan
perpustakaan.uns.ac.id digilib.uns.ac.id
dan Metode
penemuan akar-
akar polinomial
dengan metode
Muller dan
Metode Bairstow
dengan Bantuan
dengan bantuan
Akar-Akar
(2007)
Hendun Mariana
Matlab
metode Bairstow
Menentukan
Polinomial/
Muller dan
commit to user
Matlab dalam
Bairstow
Metode Muller
Menganalisa hasil
Aplikasi Metode
4.
Metode
Tujuan
Judul / Penulis
No.
membandingkan dua
͵ ݔଶ ͳͷ ݔ ͵ͲͲ
dengan metode Muller.
efektif dibandingkan
metode Bairstow lebih
keduanya.
terbaik diantara
diketahui metode
sehingga dapat
Muller dan Bairstow
metode yaitu metode
dengan
݂ሺݔሻ ൌ ݔସ െ ݔଷ
dengan menggunakan
Penelitian dilakukan
Kelebihan
Hasil pencarian akar
Hasil
Tabel 2.6 Lanjutan Penelitian Terkait
galat yang dihasilkan.
saja, tidak berdasarkan
jumlah langkah kerja
berdasarkan pada
metode hanya
Perbandingan kedua
Kelemahan
45
metode Muller.
Bairstow dan
yaitu metode
digunakan sama
Metode yang
penelitian
Keterkaitan
perpustakaan.uns.ac.id digilib.uns.ac.id
46 digilib.uns.ac.id
perpustakaan.uns.ac.id
2.3 Kerangka Pemikiran Berdasarkan tinjauan pustaka, diketahui bahwa perangkat lunak dapat dimanfaatkan sebagai media pembelajaran matematika, khususnya pembelajaran mengenai polinomial. Salah satu media pembelajaran polinomial yang dapat digunakan adalah program kalkulator. Adanya program kalkulator yang dilengkapi dengan berbagai algoritma penyelesaian polinomial dapat menunjang kegiatan pembelajaran. Perancangan program kalkulator dilakukan menggunakan pendekatan UML dan diimplementasikan menggunakan Java Swing GUI. Dalam program kalkulator diterapkan beberapa algoritma metode numerik penyelesaian polinomial seperti algoritma Cardano, Viete’s, Muller, Bairstow, dan revisi Bairstow. Tersedianya beberapa algoritma dalam sebuah perangkat lunak dapat memudahkan pengguna untuk menyelesaikan persamaan polinomial dan dapat menambah wawasan pengguna mengenai karakter masing-masing algoritma. Kalkulator yang dibangun dapat mencari akar kompleks menggunakan algoritma terpilih dan menggunakan pendekatan Matlab kemudian masing-masing dibandingkan dan dihitung galat perhitungan. Ditampilkannya nilai galat perhitungan
pada
program
kalkulator
memudahkan
pengguna
untuk
membandingkan kinerja masing-masing algoritma sehingga algoritma yang terbaik dalam penyelesaian persamaan polinomial dapat diketahui. Program kalkulator juga menampilkan jumlah iterasi atau perulangan yang dilakukan oleh algoritma Muller, Bairstow, dan Revisi Bairstow dalam mencari akar kompleks polinomial sehingga pengguna dapat mengetahui kinerja algoritma terbaik dengan jumlah langkah kerja minimum. Kebaruan dari penelitian ini adalah terdapat kombinasi algoritma dalam pencarian akar kompleks dari sebuah persamaan polinomial berderajat tinggi. Polinomial berderajat tinggi yang dimaksud merupakan polinomial dengan pangkat tertinggi variabel x lebih dari tiga atau empat.
commit to user