perpustakaan.uns.ac.id
digilib.uns.ac.id
BAB IV PEMBAHASAN
4.1 Sampel Polinomial Penelitian Sampel-sampel yang digunakan dalam penelitian ini berupa persamaan polinomial derajat dua, tiga, empat, dan n yang didapat dari berbagai sumber literatur. Sampel polinomial ditunjukkan pada Tabel 4.1. Tabel 4.1 Sampel Polinomial No
Derajat
Sampel Polinomial
Polinomial 1
2
3
Sumber
Polinomial
ݔଶ ͳͺ ݔ ͺͳ
(Horner, 1971)
derajat 2
ݔଶ െ ͳ͵ ݔെ ͵Ͳ
(Horner, 1971)
ݔଶ ͳͲ ݔെ ͳͶ
(Neill, 2010)
ݔଶ ͷ ݔ ͳͳ
(Neill, 2010)
ݔଶ െ ͵ ݔ ͷ
(Neill, 2010)
Polinomial
ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ
(Horner, 1971)
derajat 3
ݔଷ ͵ ݔଶ െ ʹ ݔ
(Horner, 1971)
ݔଷ ͵ ݔଶ ͵ ݔ ʹ
(Horner, 1971)
ݔଷ ʹ ݔଶ െ ͷ ݔെ
(Horner, 1971)
ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵
(Neill, 2010)
Polinomial
ݔସ ݔଷ െ ݔଶ ݔെ ͳ
(Horner, 1971)
derajat 4
ݔସ െ ʹ ݔଷ ʹ ݔଶ െ ݔ ͳ
(Horner, 1971)
ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ
(Horner, 1971)
ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ
(James, Smith & Wolford, 2000)
4
Polinomial
ݔ ͵ ݔെ Ͷ ݔହ െ ʹ ݔଷ ʹ
(Horner, 1971)
derajat n
଼ ݔെ ݔെ ͵ͻ ݔ ͵ ݔହ ͶͶ ݔସ
(James, Smith &
െͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ െ ʹͷݔ
Wolford, 2000)
ͳͻʹͲ
commit to user
52
53 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.2 Pencarian Akar Kompleks Polinomial Secara Manual Pencarian akar kompleks masing-masing sampel polinomial yang telah ditentukan secara manual dilakukan sebelum kalkulator dibangun. Pencarian akar kompleks polinomial dilakukan dengan menerapkan masing-masing algoritma secara manual. Algoritma yang digunakan dalam pencarian akar kompleks polinomial secara manual adalah rumus kuadrat (Alg 2.1), Cardano (Alg 2.2), Viete’s (Alg 2.3), Bairstow (Alg 2.4), revisis algoritma Bairstow (Alg 2.5), dan Muller (Alg 2.6). Sampel yang digunakan yaitu satu sampel polinomial derajat dua, tiga, dan empat. Sampel tersebut dapat dilihat pada Tabel 4.1. Perhitungan manual ini merupakan dasar pembangunan program kalkulator. Berikut ini merupakan pembahasan lebih rinci mengenai perhitungan masing-masing algoritma : 4.2.1 Pencarian Akar Kompleks Polinomial Derajat Dua a. Pencarian akar kompleks ݔଶ ݔ ͳʹ menggunakan rumus kuadrat 1. Berdasarkan bentuk polinomial derajat dua yaitu ݔଶ ݔ ݍ, maka nilai p = 7 dan q = 12. 2. Menentukan nilai diskriminan ଶ
ଶ
ܦൌ ቀଶቁ െ ݍൌ ቀଶቁ െ ͳʹ ൌ ሺ͵ǡͷሻଶ െ ͳʹ ൌ ͳʹǡʹͷ െ ͳʹ ൌ Ͳǡʹͷ 3. Menentukan akar kompleks polinomial
ݔଵ ൌ െ ଶ ξ ܦൌ െ ଶ ඥͲǡʹͷ ൌ െ͵ǡͷ Ͳǡͷ ൌ െ͵ǡͲ ͲǡͲ݅ ݔଶ ൌ െ െ ξ ܦൌ െ െ ඥͲǡʹͷ ൌ െ͵ǡͷ െ Ͳǡͷ ൌ െͶǡͲ ͲǡͲ݅ ʹ ʹ Dengan demikian, maka penyelesaian polinomial
ݔଶ ݔ ͳʹ
menggunakan Rumus Kuadrat menghasilkan dua akar kompleks yakni െ͵ǡͲ ͲǡͲ݅ dan െͶǡͲ ͲǡͲ݅.
4.2.2 Pencarian Akar Kompleks Polinomial Derajat Tiga a. Pencarian akar kompleks polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ menggunakan algoritma Cardano 1. Berdasarkan bentuk polinomial derajat tiga yaitu ݔଷ ݔݎଶ ݔݏ ݐ, maka r = -4, s = -2, dan t = 3.
commit to user
54 digilib.uns.ac.id
perpustakaan.uns.ac.id
ݕൌݔ
2. Mensubtitusikan
pada
ଷ
persamaan
kubik,
sehingga
mengasilkan persamaan tereduksi ݕଷ ݕ ݍൌ Ͳ. Nilai p dan q didapat dari : ൌ
͵ ݏെ ݎଶ ͵ሺെʹሻ െ ሺെͶሻଶ െ െ ͳ െʹʹ ൌ ൌ ൌ ൌ െǡ͵ ͵ ͵ ͵ ͵
ʹሺെͶሻଷ ሺെͶሻሺെʹሻ െͳʹͺ ͺ ʹ ݎଷ ݏݎ െ ݐൌ െ ͵ൌ െ ͵ ݍൌ ͵ ͵ ʹ ͵ ʹ ʹ െͳʹͺ ʹ ͺͳ െͳͳͻ െ ൌ ൌ െͶǡͶ ݍൌ ʹ ʹ ʹ ʹ 3. Menghitung nilai diskriminan ଷ ଶ െǡ͵ ଷ െͶǡͶ ଶ ܦൌቀ ቁ ቀ ቁ ൌ൬ ൰ ൬ ൰ ൌ െʹǡͶଷ െʹǡʹଶ ൌ െͻǡͺ ͵ ʹ ͵ ʹ 4. Dari perhitungan di atas, diketahui bahwa nilai diskriminan dari persamaan polinomial tersebut bernilai kurang dari nol. Kasus seperti ini disebut sebagai irreducible case yang akan menghasilkan akar kompleks. Dengan demikian, pencarian akar kompleks polinomial menggunakan algoritma Cardano dilakukan dengan menerapkan ܿ ߮ݏൌ െ ܿ ߮ݏൌ െ ܿ ߮ݏൌ െ
ଶඥሺȁȁΤଷሻయ
, berikut ini detail perhitungannya :
ݍ ʹඥሺȁȁΤ͵ሻଷ
ൌെ
ሺെͶǡͶሻ
ሺെͶǡͶሻ ʹඥሺȁെǤ͵ȁΤ͵ሻଷ
ൌെ
ʹξͳͶǡͲ͵ͳ
ൌെ
ሺെͶǡͶሻ ʹඥሺʹǤͶሻଷ
ሺെͶǡͶሻ ሺെͶǡͶሻ ൌെ ሺʹሻሺ͵ǡͺʹͳͺʹሻ ǡͶ͵Ͷ
ܿ ߮ݏൌ Ͳǡͷͳͳ Sehingga, ߮ ൌ Ͳǡͻͷʹʹͳͳ Dengan demikian, maka solusi dari persamaan tereduksi ݕଷ ݕ ݍൌ Ͳ adalah sebagai berikut : x
ȁȁ
ఝ
ݔଵ ൌ െ ଷ ʹ ή ට ଷ
ቀ ଷ ቁ ݔଵ ൌ െ ସ
ሺିସሻ ଷ
ȁିǡଷȁ
ʹήට ǡଷ
ଷ
ቀ
ǡଽହଶଶଵଵ
ݔଵ ൌ ଷ ʹ ή ට ଷ
ሺͲǡ͵ͳͺͶͳሻ commit to user
ଷ
ቁ
55 digilib.uns.ac.id
perpustakaan.uns.ac.id
ସ
ǡଷ
ݔଵ ൌ ଷ ʹ ή ට ଷ
ሺͲǡ͵ͳͺͶͳሻ ସ
ݔଵ ൌ ଷ ʹ ή ͳǡͷ͵Ͷʹ ή ͲǡͻͶͻ͵ͳ ସ
ݔଵ ൌ ଷ ʹǡͻͻͶͶʹ ݔଵ ൌ Ͷǡ͵Ͳʹ x
ȁȁ
ݔଶ ൌ െ ଷ െ ʹ ή ට ݔଶ ൌ െ
ሺିସሻ ଷ
ଷ
ఝିగ
ቀ
െʹήට
ȁିǡଷȁ
ଷ
ቁ
ቀ
ଷ
ǡଽହଶଶଵଵିଷǡଵସଵହଽ ଷ
ቁ
ସ
ݔଶ ൌ ଷ െ ʹ ή ͳǡͷ͵Ͷͳͻʹ ή
ሺെͲǡʹͺͶͷͻͺͳሻ ସ
ݔଶ ൌ ଷ െ ʹ ή ͳǡͷ͵Ͷͳͻʹ ή ͲǡͶʹͲʹͷͲ ݔଶ ൌ െͳ x
ȁȁ
ఝାగ
ݔଷ ൌ െ ଷ െ ʹ ή ට ଷ
ቀ ݔଷ ൌ െ
ሺିସሻ ଷ
െʹήට
ȁିǡଷȁ ଷ
ଷ
ቁ
ቀ
ǡଽହଶଶଵଵାଷǡଵସଵହଽ ଷ
ቁ
ସ
ݔଷ ൌ ଷ െ ʹ ή ͳǡͷ͵Ͷͳͻʹ ή
ሺͳǡ͵ͷͻ͵ͺሻ ସ
ݔଷ ൌ ଷ െ ʹ ή ͳǡͷ͵Ͷͳͻʹ ή ͲǡʹͲ͵Ͷʹͺ ସ
ݔଷ ൌ ଷ െ Ͳǡ͵ͳͲͻ ݔଷ ൌ ͲǡͻʹʹͶ Dengan demikian, berdasarkan algoritma Cardano, polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ memiliki tiga akar diantaranya adalah Ͷǡ͵Ͳʹ ͲǡͲ݅, െͳǡͲ ͲǡͲ݅ , dan ͲǡͻʹʹͶ ͲǡͲ݅. b. Pencarian akar kompleks polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ menggunakan algoritma Viete’s 1. Berdasarkan bentuk polinomial derajat tiga yaitu ݔଷ ݔݎଶ ݔݏ ݐ, maka r = -4, s = -2, dan t = 3. 2. Mensubtitusikan ݕൌ ݔ
ଷ
pada persamaan ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵,
sehingga mengasilkan persamaan tereduksi ݕଷ ݕ ݍൌ Ͳ. Nilai p commit to user dan q didapat dari :
56 digilib.uns.ac.id
perpustakaan.uns.ac.id
ൌ
͵ ݏെ ݎଶ ͵ሺെʹሻ െ ሺെͶሻଶ െ െ ͳ െʹʹ ൌ ൌ ൌ ൌ െǡ͵ ͵ ͵ ͵ ͵
ʹሺെͶሻଷ ሺെͶሻሺെʹሻ െͳʹͺ ͺ ʹ ݎଷ ݏݎ െ ݐൌ െ ͵ൌ െ ͵ ݍൌ ͵ ͵ ʹ ͵ ʹ ʹ െͳʹͺ ʹ ͺͳ െͳͳͻ െ ൌ ൌ െͶǡͶ ݍൌ ʹ ʹ ʹ ʹ 3. Menghitung nilai d dan c ݀ൌ
െ Ǥ͵ ൌ ൌ ʹǡͶͶ ͵ ͵
ଷ ݍଶ ݍ ܿ ൌെ ඨ ʹ Ͷ ʹ ܿ ൌെ
ሺെǡ͵ሻଷ ሺെͶǡͶሻଶ ሺെͶǡͶሻ ඨ ʹ Ͷ ʹ
ሺെǡ͵ሻଷ ሺെͶǡͶሻଶ ܿ ൌ ʹǡʹͲ͵Ͳ͵ͲͶ ඨ ʹ Ͷ ܿ ൌ ʹǡʹͲ͵Ͳ͵ͲͶ ඥെͳͶǡͲ͵ͳͲͲͳ Ͷǡͺͷ͵ͳͲͲͳͶ ܿ ൌ ʹǡʹͲ͵Ͳ͵ͲͶ ඥെͻǡͷ ܿ ൌ ʹǡʹͲ͵Ͳ͵ͲͶ ͵ǡͳʹʹͶͻͺͻͻͻ݅ 4. Langkah selanjutnya adalah mencari nilai r. Nilai r didapat dari akar య
pangkat tiga dari nilai c ൫ ξܿ൯. Di bawah ini akan dijelaskan mengenai detail perhitungan nilai r : య
య
ݎൌ ξܿ ൌ ඥʹǡʹͲ͵Ͳ͵ͲͶ ͵ǡͳʹʹͶͻͺͻͻͻ݅ Nilai ʹǡʹͲ͵Ͳ͵ͲͶ ͵ǡͳʹʹͶͻͺͻͻͻ݅ kemudian diubah menjadi bentuk trigonometri. ߩ ൌ ȁܿȁ ൌ ඥܽଶ ܾ ଶ ൌ ඥʹǡʹͲ͵Ͳ͵ͲͶଶ ͵ǡͳʹʹͶͻͺͻͻͻଶ ൌ ඥͶǡͺͷ͵ͳͲͲͳͶ ͻǡͷ ൌ ඥͳͶǡͲ͵ͳͲͲͳ ൌ ͵ǡͺʹͳͺʹͲʹͶͻ ݕ ͵ǡͳʹʹͶͻͺͻͻͻ ൰ ߠ ൌ ି݊ܽݐଵ ቀ ቁ ൌ ି݊ܽݐଵ ൬ ݔ ʹǡʹͲ͵Ͳ͵ͲͶ ൌ ି݊ܽݐଵ ሺͳǡͶͳͻ͵ʹ͵ͳͻሻ ൌ Ͳǡͻͷʹʹͳͳ
commit to user
57 digilib.uns.ac.id
perpustakaan.uns.ac.id
Karena nilai x dan y bernilai positif, maka sudut yang terbentuk berada di kuadran satu. Sudut yang terbentuk oleh θ adalah 54,79o. Nilai variable r dihitung dengan menggunakan rumus berikut : ݎൌ యඥߩ ൬ܿݏ
ߠ ʹ݇ߨ ߠ ʹ݇ߨ ݊݅ݏ ݅൰ ͵ ͵
Dengan nilai k = 0, 1, 2. x
ݎൌ యඥߩ ቀܿݏ
ఏାଶగ ଷ
݊݅ݏ
ݎൌ యξ͵ǡͺʹͳͺʹͲʹͶͻ ቀܿݏ
ఏାଶగ ଷ ହସǡଽ ଷ
݅ቁ
݊݅ݏ
ହସǡଽ ଷ
݅ቁ
ݎൌ ͳǡͷ͵Ͷͳͻʹሺ
ሺͳͺǡʹሻ ሺͳͺǡʹሻ ݅ሻ ݎൌ ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅ x
ݎൌ యඥߩ ቀܿݏ
ఏାଶగ ଷ
݊݅ݏ
ݎൌ యξ͵ǡͺʹͳͺʹͲʹͶͻ ቀܿݏ
ఏାଶగ ଷ
݅ቁ
ହସǡଽାଶ ଷ
݊݅ݏ
ହସǡଽାଶ ଷ
݅ቁ
ݎൌ ͳǡͷ͵Ͷͳͻʹሺ
ሺͳ͵ͺǡʹሻ ሺͳ͵ͺǡʹሻ ݅ሻ ݎൌ ͳǡͷ͵ͶͳͻʹሺെͲǡͶʹͲʹͷͲ ͲǡͷͳͻͲʹ͵݅ሻ ݎൌ െͳǡͳ ͳǡͲͶͲͺ͵͵݅ x
ݎൌ యඥߩ ቀܿݏ
ఏାଶగ ଷ
݊݅ݏ
ݎൌ యξ͵ǡͺʹͳͺʹͲʹͶͻ ቀܿݏ
ఏାଶగ ଷ
݅ቁ
ହସǡଽାସ ଷ
݊݅ݏ
ହସǡଽାସ ଷ
݅ቁ
ݎൌ ͳǡͷ͵Ͷͳͻʹሺ
ሺʹͷͺǡʹሻ ሺʹͷͺǡʹሻ ݅ሻ ݎൌ ͳǡͷ͵ͶͳͻʹሺെͲǡʹͲ͵Ͷʹͺ͵͵ʹ ሺെͲǡͻͻͲͺͻͺ͵ͻ݅ሻሻ ݎൌ െͲǡ͵ͳͺͲͷͶͶͺ െ ͳǡͷ͵ͲͻͶͳ݅ Dari ketiga nilai r yang memenuhi yaitu nilai r dengan k sama dengan nol yang mengasilkan nilai r positif yaitu ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅. 5. Menghitung nilai akar polinomial pertama dengan perhitungan sebagai berikut : ݔଵ ൌ ݎ
݀ ݎ
ݔଵ ൌ ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅ ʹǡͶͶ ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅ commit to user ݔଵ ൌ ʹǡͻͻͶͶʹ͵ͲͶ
58 digilib.uns.ac.id
perpustakaan.uns.ac.id
6. Kedua akar polinomial lainnya didapat dengan menggunakan nilai ଵ
ଵ
ଵ
ଵ
variabel ߱ଵ ൌ െ ଶ ଶ ξ͵݅ dan ߱ଶ ൌ െ ଶ െ ଶ ξ͵݅. Berikut detail perhitungannya : x
ଵ
ଵ
߱ଵ ݎൌ ቀെ ଶ ଶ ξ͵݅ቁ ή ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅ ߱ଵ ݎൌ െͳǡͳ ͳǡͲͶͲͺ͵͵݅
x
ଵ
ଵ
߱ଶ ݎൌ ቀെ ଶ െ ଶ ξ͵݅ቁ ή ͳǡͶͺͶʹͳͳͷʹ ͲǡͶͺͻͻͶͶͳ݅ ߱ଶ ݎൌ െͲǡ͵ͳͺͲͷͶ െ ͳǡͷ͵Ͳͻ݅
x
ௗ
ݔଶ ൌ ߱ଵ ݎ ఠ భ
ݔଶ ൌ െͳǡͳ ͳǡͲͶͲͺ͵͵݅
ʹǡͶͶ െͳǡͳ ͳǡͲͶͲͺ͵͵݅
ݔଶ ൌ െʹǡ͵͵͵͵͵͵͵͵͵͵͵͵͵͵ ͻǡͻͻʹͲͲʹʹͳʹͶͳ ܧെ ͳͷ݅ x
ௗ
ݔଷ ൌ ߱ଵ ݎ ఠ భ
ଶǡସସ
ݔଷ ൌ െͲǡ͵ͳͺͲͷͶ െ ͳǡͷ͵Ͳͻ݅ ିǡଷଵ଼ହସିଵǡହଷଽ ݔଷ ൌ െͲǡ͵ͳͲͺͻͳͲͷ͵ʹͷ Jadi, berdasarkan algoritma Viete’s, akar-akar polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ adalah sebagai berikut : ݔଵ ൌ ʹǡͻͻͶͶʹ͵ͲͶ ݔଶ ൌ െʹǡ͵͵͵͵͵͵͵͵͵͵͵͵͵͵ ͻǡͻͻʹͲͲʹʹͳʹͶͳ ܧെ ͳͷ݅ ݔଷ ൌ െͲǡ͵ͳͲͺͻͳͲͷ͵ʹͷ c. Pencarian akar kompleks polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ menggunakan algoritma Bairstow Pencarian akar 1 dan 2 Iterasi 1 1. Menentukan nilai ݑଵ ൌ ݒଵ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒdengan pembagian sintesis : ܾ ൌ ܽ ൌ ͳ
commit ሺͳ Ͳ כሻtoൌuser െͶ ܾଵ ൌ ܽଵ െ ܾ ݑൌ െͶ െ
59 digilib.uns.ac.id
perpustakaan.uns.ac.id
ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ܾ ݒൌ െʹ െ ሺെͶ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ െʹ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒൌ ͵ െ ሺെʹ Ͳ כሻ െ ሺെͶ Ͳ כሻ ൌ ͵ 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ. Berikut detail perhitungan : ܿ ൌ ܾ ൌ ͳ ܿଵ ൌ ܾଵ െ ܿ ݑൌ െͶ െ ሺͳ Ͳ כሻ ൌ െͶ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ െʹ െ ሺെͶ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ െʹ 4. Nilai ο ݑdan ο ݒdidapat dengan menghitung persamaan berikut: ο ݑൌ
షభ షభ ቚ షమ
ฬ
షమ ฬ షయ షమ షయ ቚ
ൌ
భ ฬ య ฬ మ బ మ భ ቚ ቚ భ బ
ሺଷήଵሻିሺሺିଶሻήሺିସሻሻ
ଷ ቚ ିଶ ିଶ ቚ ିସ
ൌ
ିସ ቚ ଵ ିସ ቚ ଵ
ିହ
ο ݑൌ ൫ሺିଶሻήଵ൯ିሺሺିସሻήሺିସሻሻ ൌ ିଵ଼ ൌ Ͳǡʹͺ ο ݒൌ ο ݒൌ
ฬ షభ ฬ షమ షభ షభ షమ ቚ ቚ షమ షయ
ൌ
ฬ మ భ మ ቚ భ
య ฬ మ భ బ ቚ
ሺሺିଶሻήሺିଶሻሻିሺሺଷሻήሺିସሻሻ ൫ሺିଶሻήଵ൯ିሺሺିସሻήሺିସሻሻ
ൌ
ିଶ ଷ ቚ ିସ ିଶ ିଶ ିସ ቚ ቚ ିସ ଵ ቚ
ଵ
ൌ ିଵ଼ ൌ െͲǡͺͻ
5. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan menggunakan rumus :ݑାଵ ൌ ݑ οݑ ݀ܽ݊ݒାଵ ൌ ݒ οݒ . ݑଶ ൌ ݑଵ οݑଵ ൌ Ͳ Ͳǡʹͺ ൌ Ͳǡʹͺ ݒଶ ൌ ݒଶ οݒଶ ൌ Ͳ ሺെͲǡͺͻሻ ൌ െͲǡͺͻ 6. Melakukan pengecekkan ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ ȁͲǡʹͺȁ ȁെͲǡͺͻȁ ൏ ͲǡͲͲͲͲͲͲͲͳ ͳǡͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi Karena persamaan di atas belum terpenuhi, maka dilakuakn iterasi berikutnya yaitu iterasi ke 2, 3, dan seterusnya dengan mengulang langkah 2
hingga
6.
ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ
Iterasi
akan
dihentikan
ketika
kondisi
telah terpenuhi. Tabel 4.2 menampilkan hasil
perhitungan pada masing-masing iterasi.
commit to user
60 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.2 Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Algoritma Bairstow pada Penyelesaian Polinomial Derajat Tiga Iterasi
u
ο࢛
v
ο࢜
ke1
0
2
0
0.27777778
-0.88888889
0.28 -0.89
0.02550501
0.19334998
3
0.30 -0.70
-0.00050706
-0.00168531
4
0.30 -0.70
-0.00000009
-0.00000014
5
0.30 -0.70
-0.0000000000000011
0.0000000000000023
Berdasarkan Tabel 4.2, pada iterasi ke 5 persamaan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ telah terpenuhi, sehingga iterasi dihentikan. Nilai u dan v yang telah didapat kemudian disubtitusikan ke dalam persamaan berikut untuk mendapatkan polinomial tereduksi: ሺ ݔଶ ݔݑ ݒሻሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ ݎ݁݀݊݅ܽ݉݁ݎ Maka, ሺ ݔଶ Ͳǡ͵ ݔെ Ͳǡሻሺ ݔെ Ͷǡ͵ሻ ൌ Ͳ Berdasarkan polinomial kuadrat yang dihasilkan, nilai akar kompleks adalah : x
ݎଵ ൌ
ି௨ାξ௨మ ିସ௩ ଶ
ൌ
ିǡଷାඥሺǡଷሻమ ିସሺିǡሻ ଶ
ൌ
ିǡଷାඥǡଽିሺିଶǡ଼ሻ ଶ
ൌ
ିǡଷାଵǡ ଶ
ݎଵ ൌ Ͳǡ x
ݎଶ ൌ
ି௨ିξ௨మ ିସ௩ ଶ
ൌ
ିǡଷିඥሺǡଷሻమ ିସሺିǡሻ ଶ
ൌ
ିǡଷିඥǡଽିሺିଶǡ଼ሻ ଶ
ൌ
ିǡଷିଵǡ ଶ
ݎଶ ൌ െͳ Pencarian akar 3 Pencarian akar ketiga didapat dari sisa (remainder) pembentukan polinomial tereduksi yaitu (x – 4,3) sehingga nilai ݎଷ ൌ Ͷǡ͵
commit to user
61 digilib.uns.ac.id
perpustakaan.uns.ac.id
d. Pencarian akar kompleks polinomial ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ menggunakan revisi algoritma Bairstow Pencarian akar 1 dan 2 Iterasi 1 1. Menentukan nilai ݑଵ ൌ ݒଵ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒdengan pembagian sintesis : ܾ ൌ ܽ ൌ ͳ ܾଵ ൌ ܽଵ െ ܾ ݑൌ െͶ െ ሺͳ Ͳ כሻ ൌ െͶ ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ܾ ݒൌ െʹ െ ሺെͶ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ െʹ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒൌ ͵ െ ሺെʹ Ͳ כሻ െ ሺെͶ Ͳ כሻ ൌ ͵ 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ. Berikut detail perhitungan : ܿ ൌ ܾ ൌ ͳ ܿଵ ൌ ܾଵ െ ܿ ݑൌ െͶ െ ሺͳ Ͳ כሻ ൌ െͶ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ െʹ െ ሺെͶ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ െʹ 4. Nilai ο ݑdan ο ݒdidapat dengan menghitung persamaan berikut: ο ݑൌ
షయ ฬ షభ ฬ షమ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
ൌ
ሺሺିଶሻήሺିସሻሻିሺଵήଷሻ
ହ
బ ฬ మ ฬ య భ బ భ ቚ ି ቚ మ మ భ
ൌ
ିଶ ଵ ቚ ଷ ିସ ିସ ଵ ቚ ቚ ିସ ቚ
ο ݑൌ ൫ሺିସሻήሺିସሻ൯ିሺήଵሻ ൌ ଵ ൌ Ͳǡ͵ͳ ο ݒൌ
షభ షమ ฬ ሺషభ ିషభ ሻ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
ൌ
ሺሺିସሻήଷሻିሺήሺିଶሻሻ
ିଵଶ
ฬ
ο ݒൌ ൫ሺିସሻήሺିସሻ൯ିሺήଵሻ ൌ
ଵ
మ ฬ భ ฬ మ ିమ య బ ൌ భ ቚ ି ቚ మ మ భ
ିସ ିଶ ቚ ଷ ିସ ଵ ቚ ቚ ିସ ቚ
ൌ െͲǡͷ
5. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan menggunakan rumus :ݑାଵ ൌ ݑ οݑ ݀ܽ݊ݒାଵ ൌ ݒ οݒ . ݑଶ ൌ ݑଵ οݑଵ ൌ Ͳ Ͳǡ͵ͳ ൌ Ͳǡ͵ͳ ݒଶ ൌ ݒଶ οݒଶ ൌ Ͳ ሺെͲǡͷሻ ൌ െͲǡͷ 6. Melakukan pengecekkan ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ
commit to user ȁͲǡ͵ͳȁ ȁെͲǡͷȁ ൏ ͲǡͲͲͲͲͲͲͲͳ
62 digilib.uns.ac.id
perpustakaan.uns.ac.id
ͳǡͲ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi Karena persamaan di atas belum terpenuhi, maka dilakukan iterasi berikutnya yaitu iterasi ke 2, 3, dan seterusnya dengan mengulang langkah 2
hingga
6.
Iterasi
akan
dihentikan
ketika
kondisi
ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ telah terpenuhi. Hasil iterasi ditampilkan pada Tabel 4.3. Tabel 4.3 Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Revisi Algoritma Bairstow pada Penyelesaian Polinomial Derajat Tiga Iterasi
u
ο࢛
v
ο࢜
ke1
0
2
0
0.31250000
-0.75000000
0.31 -0.75
-0.00972985
0.05265568
3
0.30 -0.70
0.00000549
0.00011996
4
0.30 -0.70
-0.00000000004
-0.00000000016
Berdasarkan Tabel 4.3 diketahui bahwa pada iterasi ke 4 telah memenuhi persamaan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ . Kemudian nilai u dan v yang telah didapat disubtitusikan ke dalam persamaan beriku untuk mendapatkan polinomial tereduksit: ሺ ݔଶ ݔݑ ݒሻሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ ݎ݁݀݊݅ܽ݉݁ݎ Maka, ሺ ݔଶ Ͳǡ͵ ݔെ Ͳǡሻሺ ݔെ Ͷǡ͵ሻ ൌ Ͳ Akar 1 dan 2 didapat dari perhitungan berikut : ݎଵ ൌ
െ ݑേ ξݑଶ െ Ͷ ݒെͲǡ͵ ඥሺͲǡ͵ሻଶ െ ͶሺെͲǡሻ ൌ ʹ ʹ
ݎଵ ൌ
െͲǡ͵ ඥͲǡͲͻ െ ሺെʹǡͺሻ െͲǡ͵ ͳǡ ൌ ൌ Ͳǡ ʹ ʹ
ݎଶ ൌ
െ ݑേ ξݑଶ െ Ͷ ݒെͲǡ͵ െ ඥሺͲǡ͵ሻଶ െ ͶሺെͲǡሻ ൌ ʹ ʹ
ݎଶ ൌ
െͲǡ͵ െ ඥͲǡͲͻ െ ሺെʹǡͺሻ െͲǡ͵ െ ͳǡ commit ൌ to user ൌ െͳ ʹ ʹ
63 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pencarian akar 3 Akar 3 didapat dari sisa (remainder) pada saat pembentukkan polinomial tereduksi yaitu (x – 4,3) sehingga nilai ݎଷ ൌ Ͷǡ͵ 4.2.3
Pencarian Akar Kompleks Polinomial Derajat Empat
a. Pencarian akar kompleks polinomial ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ menggunakan algoritma Bairstow Pencarian akar 1 dan 2 Iterasi 1 1. Menentukan ݑଵ ൌ ݒଵ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒdengan pembagian sintesis : ܾ ൌ ܽ ൌ ͳ ܾଵ ൌ ܽଵ െ ܾ ݑൌ െͷ െ ሺͳ Ͳ כሻ ൌ െͷ ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ܾ ݒൌ ͳ͵ െ ሺെͷ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳ͵ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒൌ െͳͻ െ ሺͳ͵ Ͳ כሻ െ ሺെͷ Ͳ כሻ ൌ െͳͻ ܾସ ൌ ܽସ െ ܾଷ ݑെ ܾଶ ݒൌ ͳͲ െ ሺെͳͻ Ͳ כሻ െ ሺͳ͵ Ͳ כሻ ൌ ͳͲ 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ. Berikut detail perhitungan : ܿ ൌ ܾ ൌ ͳ ܿଵ ൌ ܾଵ െ ܿ ݑൌ െͷ െ ሺͳ Ͳ כሻ ൌ െͷ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ ͳ͵ െ ሺെͷ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳ͵ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ െͳͻ െ ሺͳ͵ Ͳ כሻ െ ሺെͷ Ͳ כሻ ൌ െͳͻ 4. Nilai ο ݑdan ο ݒdidapat dengan menghitung persamaan berikut: ο ݑൌ
షభ షభ ቚ షమ
ฬ
షమ ฬ షయ షమ షయ ቚ
ൌ
మ ฬ ర ฬ య భ య మ ቚ ቚ మ భ
ሺଵήሺିହሻሻିሺሺିଵଽሻήଵଷሻ
ൌ
ଵ ቚ ିଵଽ ିଵଽ ቚ ଵଷ
ଵଷ ቚ ିହ ଵଷ ቚ ିହ
ଵଽ
ο ݑൌ ൫ሺିଵଽሻήሺିହሻ൯ିሺଵଷήଵଷሻ ൌ ିସ ൌ െʹǡ ο ݒൌ
ฬ షభ ฬ షమ షభ షభ షమ ቚ ቚ షమ షయ
ൌ
ర ିଵଽ ଵ ฬ య ฬ ቚ ቚ మ య ଵଷ ିଵଽ య మ ൌ ିଵଽ ଵଷ ቚ user ቚ ቚ commit ቚ to ଵଷ ିହ మ భ
64 digilib.uns.ac.id
perpustakaan.uns.ac.id
ο ݒൌ
ሺሺିଵଽሻήሺିଵଽሻሻିሺଵଷήଵሻ ൫ሺିଵଽሻήሺିହሻ൯ିሺଵଷήଵଷሻ
ൌ
ଶଷଵ ିସ
ൌ െ͵ǡͳʹ
5. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan menggunakan rumus :ݑାଵ ൌ ݑ οݑ ݀ܽ݊ݒାଵ ൌ ݒ οݒ . ݑଶ ൌ ݑଵ οݑଵ ൌ Ͳ Ͳǡʹͺ ൌ െʹǡ ݒଶ ൌ ݒଶ οݒଶ ൌ Ͳ ሺെͲǡͺͻሻ ൌ െ͵ǡͳʹ 6. Melakukan pengecekkan terhadap ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ ȁെʹǡȁ ȁെ͵ǡͳʹȁ ൏ ͲǡͲͲͲͲͲͲͲͳ→ belum terpenuhi Karena persamaan di atas belum terpenuhi, maka dilakukan iterasi kedua dengan mengulang langkah 2 hingga 6. Di bawah ini merupakan hasil perhitungan iterasi berikutnya : Tabel 4.4 Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Algoritma Bairstow pada Penyelesaian Polinomial Derajat Empat Iterasi
u
v
ο࢛
ο࢜
ke1
0
2
0
-2.66216216
-3.12162162
-2.7 -3.1
-0.06977005
3.14694849
3
-2.7 0.02
-0.13655869
1.44655453
4
-2.8 1.5
-0.11275151
0.47476358
5
-2.9 1.9
-0.01855564
0.05273624
6
-3.0 2.0
-2.01893667E-4
6.1868688E-4
7
-3.0 2.0
-2.78227877E-8
8.01465508E-8
8
-3.0 2.0
-7.54951656E-16
1.421085471E-16
Berdasarkan Tabel 4.4, diketahui bahwa pada iterasi ke 8 persamaan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ telah terpenuhi, sehingga iterasi dihentikan. Nilai u dan v yang telah didapat kemudian disubtitusikan ke dalam persamaan berikut untuk mendapatkan polinomial tereduksi: ሺ ݔଶ ݔݑ ݒሻሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ ݎ݁݀݊݅ܽ݉݁ݎ
commit to user
perpustakaan.uns.ac.id
65 digilib.uns.ac.id
Maka, ሺ ݔଶ െ ͵ ݔ ʹሻሺ ݔଶ െ ʹ ݔ ͷሻ ൌ Ͳ Dimana ሺ ݔଶ െ ʹ ݔ ͷሻ merupakan polinomial tereduksi. Akar 1 dan 2 didapat dari perhitungan berikut : ݎଵ ൌ
െ ݑേ ξݑଶ െ Ͷ ͵ ݒ ඥሺെ͵ሻଶ െ Ͷሺʹሻ ͵ ξͻ െ ͺ ͵ ͳ ൌ ൌ ൌ ൌʹ ʹ ʹ ʹ ʹ
ݎଶ ൌ
െ ݑേ ξݑଶ െ Ͷ ͵ ݒെ ඥሺെ͵ሻଶ െ Ͷሺʹሻ ͵ െ ξͻ െ ͺ ͵ െ ͳ ൌ ൌ ൌ ൌͳ ʹ ʹ ʹ ʹ
Pencarian akar 3 dan 4 Akar 3 dan 4 didapat dari polinomial tereduksi yaitu ሺ ݔଶ െ ʹ ݔ ͷሻ. Dengan demikian, maka perhitungan akar 3 dan 4 dimana nilai u = -2 dan v = 5 adalah : െ ݑ ξݑଶ െ Ͷ ʹ ݒ ඥሺെʹሻଶ െ Ͷሺͷሻ ʹ ξͶ െ ʹͲ ݎଷ ൌ ൌ ൌ ʹ ʹ ʹ ݎଷ ൌ
ʹ ξെͳ ʹ Ͷ݅ ൌ ൌ ͳ ʹ݅ ʹ ʹ
ݎସ ൌ
െ ݑെ ξݑଶ െ Ͷ ʹ ݒെ ඥሺെʹሻଶ െ Ͷሺͷሻ ʹ െ ξͶ െ ʹͲ ൌ ൌ ʹ ʹ ʹ
ʹ െ ξെͳ ʹ Ͷ݅ ൌ ൌ ͳ െ ʹ݅ ʹ ʹ Dari perhitungan di atas, maka diketahui akar-akar polinomial dari ݎସ ൌ
persamaan ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ ൌ Ͳ adalah 1, 2, 1+2i, dan 1-2i. b. Pencarian akar kompleks polinomial ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ menggunakan revisi algoritma Bairstow Pencarian akar 1 dan 2 Iterasi 1 1. Menentukan nilai ݑଵ ൌ ݒଵ ൌ Ͳ 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒdengan pembagian sintesis : ܾ ൌ ܽ ൌ ͳ
commit ሺͳ Ͳ כሻtoൌuser െͷ ܾଵ ൌ ܽଵ െ ܾ ݑൌ െͷ െ
66 digilib.uns.ac.id
perpustakaan.uns.ac.id
ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ܾ ݒൌ ͳ͵ െ ሺെͷ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳ͵ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒൌ െͳͻ െ ሺͳ͵ Ͳ כሻ െ ሺെͷ Ͳ כሻ ൌ െͳͻ ܾସ ൌ ܽସ െ ܾଷ ݑെ ܾଶ ݒൌ ͳͲ െ ሺെͳͻ Ͳ כሻ െ ሺͳ͵ Ͳ כሻ ൌ ͳͲ 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ. Berikut detail perhitungan : ܿ ൌ ܾ ൌ ͳ ܿଵ ൌ ܾଵ െ ܿ ݑൌ െͷ െ ሺͳ Ͳ כሻ ൌ െͷ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ ͳ͵ െ ሺെͷ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳ͵ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ െͳͻ െ ሺͳ͵ Ͳ כሻ െ ሺെͷ Ͳ כሻ ൌ െͳͻ 4. Nilai ο ݑdan ο ݒdidapat dengan menghitung persamaan berikut: ο ݑൌ
ο ݑൌ
ο ݒൌ
ο ݒൌ
షయ ฬ షభ ฬ షమ షయ షమ ቚ ቚሺ షభ ିషభ ሻ షమ ሺିଵଽήሺଵଷሻሻିሺሺିହሻήଵሻ ሺଵଷήଵଷሻିሺିହήሻ
ൌ
ൌ
భ ฬ య ฬ ర మ భ మ ቚ ି ቚ య య మ ିଵଽ ଵଽ
షభ షమ ฬ ሺషభ ିషభ ሻ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
ൌ
ሺଵଷήଵሻିሺήሺିଵଽሻሻ
ଵଷ
ฬ
ሺଵଷήଵଷሻିሺିହήሻ
ൌ
ൌ
ିଵଽ ିହ ቚ ଵ ଵଷ ଵଷ ିହ ቚ ቚ ଵଷ
ൌ െͳǡͳ
య ฬ మ ฬ య ିయ ర భ మ ቚ ି ቚ య య మ
ଵଽ
ቚ
ൌ
ଵଷ ିଵଽ ቚ ଵ ଵଷ ିହ ቚ ቚ ଵଷ
ቚ
ൌ Ͳǡ
5. Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan menggunakan rumus :ݑାଵ ൌ ݑ οݑ ݀ܽ݊ݒାଵ ൌ ݒ οݒ . ݑଶ ൌ ݑଵ οݑଵ ൌ Ͳ ሺെͳǡͳሻ ൌ െͳǡͳ ݒଶ ൌ ݒଶ οݒଶ ൌ Ͳ Ͳǡ ൌ Ͳǡ 6. Melakukan pengecekkan terhadap ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ ȁͳǡͳȁ ȁͲǡȁ ൏ ͲǡͲͲͲͲͲͲͲͳ ͳǡͻͶ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi Karena persamaan di atas belum terpenuhi, maka dilakukan iterasi berikutnya yaitu iterasi ke 2, 3, dan seterusnya dengan mengulang langkah 2
hingga
6.
Iterasi
akan
commit to user
dihentikan
ketika
kondisi
67 digilib.uns.ac.id
perpustakaan.uns.ac.id
ȁοݑଵ ȁ ȁοݒଵ ȁ ൏ ߝ telah terpenuhi. Hasil perhitungan masing-masing iterasi ditampilkan dalam Tabel 4.5. Tabel 4.5 Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Revisi Algoritma Bairstow pada Penyelesaian Polinomial Derajat Empat Iterasi
u
ο࢛
v
ο࢜
ke1
0
0
-1.17
0.77
2
-1.17
0.77
-1.17165517
0.92034965
3
-2.34
1.69
-0.92093913
0.56265879
4
-3.26
2.25
0.23101677
-0.22547716
5
-3.03
2.03
0.02695486
-0.02646247
6
-3.0
2.0
3.03114375E-4
-2.99554673E-4
7
-3.0
2.0
3.71394534E-8
3.68663724E-8
Berdasarkan hasil perhitungan pada Tabel 4.5, diketahui bahwa pada iterasi ke 7 iterasi dihentikan karena telah memenuhi persamaan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ. Nilai u dan v yang telah didapat kemudian disubtitusikan ke dalam persamaan berikut: ሺ ݔଶ ݔݑ ݒሻሺ ݔିଶ ܾଵ ݔିଷ ܾଶ ݔିସ ڮ ܾିଷ ݔ ܾିଶ ሻ ݎ݁݀݊݅ܽ݉݁ݎ Maka, ሺ ݔଶ െ ͵ ݔ ʹሻሺ ݔଶ െ ʹ ݔ ͷሻ ൌ Ͳ Dimana ሺ ݔଶ െ ʹ ݔ ͷሻ merupakan polinomial tereduksi. Akar 1 dan 2 didapat dari: ݎଵ ൌ
െ ݑ ξݑଶ െ Ͷ ͵ ݒ ඥሺെ͵ሻଶ െ Ͷሺʹሻ ͵ ξͻ െ ͺ ͵ ͳ ൌ ൌ ൌ ൌʹ ʹ ʹ ʹ ʹ
ݎଶ ൌ
െ ݑെ ξݑଶ െ Ͷ ͵ ݒെ ඥሺെ͵ሻଶ െ Ͷሺʹሻ ͵ െ ξͻ െ ͺ ͵ െ ͳ ൌ ൌ ൌ ൌͳ ʹ ʹ ʹ ʹ
Pencarian akar 3 dan 4 Akar 3 dan 4 didapat dari polinomial tereduksi yang dihasilkan yaitu ሺ ݔଶ െ commit to user ʹ ݔ ͷሻ. Perhitungan akar 3 dan 4 dimana u = -2 dan v = 5 adalah :
68 digilib.uns.ac.id
perpustakaan.uns.ac.id
െ ݑ ξݑଶ െ Ͷ ʹ ݒ ඥሺെʹሻଶ െ Ͷሺͷሻ ʹ Ͷ݅ ݎଷ ൌ ൌ ൌ ൌ ͳ ʹ݅ ʹ ʹ ʹ ݎସ ൌ
െ ݑെ ξݑଶ െ Ͷ ʹ ݒെ ඥሺെʹሻଶ െ Ͷሺͷሻ ʹ Ͷ݅ ൌ ൌ ൌ ͳ െ ʹ݅ ʹ ʹ ʹ
Dari perhitungan di atas, maa diketahui akar-akar polinomial dari persamaan ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ ൌ Ͳ adalah 1, 2, 1+2i, dan 1-2i. c. Pencarian akar kompleks polinomial ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ menggunakan algoritma Muller Pencarian akar 1 Iterasi 1 1. Menentukkan tiga poin tebakan awal yaitu ݔ ǡ ݔଵ ǡ ݔଶ yaitu 1, 2, 3. 2. Kemudian menghitung nilai ݄ ǡ ݄ଵ ǡ ݄ଶ berikut : ݄ ൌ ݔ െ ݔଶ ൌ ͳ െ ͵ ൌ െʹ ݄ଵ ൌ ݔଵ െ ݔଶ ൌ ʹ െ ͵ ൌ െͳ ݄ଶ ൌ ݄ ݄ כଵ כሺ݄ െ ݄ଵ ሻ ݄ଶ ൌ ሺെʹሻ כሺെͳሻ כ൫ሺെʹሻ െ ሺെͳሻ൯ ݄ଶ ൌ ʹ כሺെͳሻ ൌ െʹ 3. Menghitung masing-masing persamaan fungsi dari ketiga tebakan awal tersebut, ݂ሺݔ ሻǡ ݂ሺݔଵ ሻǡ ݂ሺݔଶ ሻ. x
݂ሺݔ ሻ ൌ ݂ሺͳሻ ൌ ሺͳሻସ െ ͷሺͳሻଷ ͳ͵ሺͳሻଶ െ ͳͻሺͳሻ ͳͲ ݂ሺͳሻ ൌ ͳ െ ͷ ͳ͵ െ ͳͻ ͳͲ ݂ሺͳሻ ൌ Ͳ
x
݂ሺݔଵ ሻ ൌ ݂ሺʹሻ ൌ ሺʹሻସ െ ͷሺʹሻଷ ͳ͵ሺʹሻଶ െ ͳͻሺʹሻ ͳͲ ݂ሺʹሻ ൌ ͳ െ ͶͲ ͷʹ െ ͵ͺ ͳͲ ݂ሺʹሻ ൌ Ͳ
x
݂ሺݔଶ ሻ ൌ ݂ሺ͵ሻ ൌ ሺ͵ሻସ െ ͷሺ͵ሻଷ ͳ͵ሺ͵ሻଶ െ ͳͻሺ͵ሻ ͳͲ ݂ሺ͵ሻ ൌ ͺͳ െ ͷ ʹ כ ͳ͵ ͻ כെ ͳͻ ͵ כ ͳͲ ݂ሺ͵ሻ ൌ ͺͳ െ ͳ͵ͷ ͳͳ െ ͷ ͳͲ ݂ሺ͵ሻ ൌ ͳ
commit to user
69 digilib.uns.ac.id
perpustakaan.uns.ac.id
4. Menghitung nilai x
ܽൌ ܽൌ
x
ܾൌ ܾൌ
భ ൫ሺ௫బ ሻିሺ௫మ ሻ൯ିబ ൫ሺ௫భ ሻିሺ௫మ ሻ൯ మ ଵିଷଶ ିଶ
ൌ
ିଵሺିଵሻିሺିଶሻሺିଵሻ ିଶ
ൌͺ
బ మ ൫ሺ௫భ ሻିሺ௫మ ሻ൯ିభ మ ൫ሺ௫బ ሻିሺ௫మ ሻ൯ మ ସכሺିଵሻାଵ ିଶ
ൌ
ିସାଵ ିଶ
ൌ
ሺିଶሻమ ሺିଵሻିሺିଵሻమ ሺିଵሻ ିଶ
ൌ ʹͶ
ܿ ൌ ݂ሺݔଶ ሻ ൌ ͳ 5. Menghitung nilai diskriminan dari perhitungan di atas ܦൌ ඥܾ ଶ െ Ͷܽܿ ൌ ඥʹͶଶ െ ሺͶ כͺ ͳ כሻ ൌ ξͷ െ ͷͳʹ ൌ ξͶ ൌ ͺ
6. Menghitung akar polinomial ݔଷ . Nilai b lebih dari nol, sehingga tanda operator yang digunakan yaitu “+”. ݔଷ ൌ ݔଶ െ
ʹܿ ʹ ͳ כ ͵ʹ ൌ ͵െ ൌ͵െ ൌʹ ܾܦ ʹͶ ͺ ͵ʹ
ݕൌ ܿ ൌ ͳ 7. Melakukan pengecekkan terhadap nilai y ݕ൏ ͲǡͲͲͲͲͲͲͲͳ ͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi Pada langkah 6 persamaan belum terpenuhi sehingga dilakukan iterasi kedua dengan mengulang langkah 2 hingga 7 dimana nilai yang digunakan sebagai tebakan awal adalah nilai ݔ ൌ ʹǡ ݔଵ ൌ ͵ dan ݔଶ ൌ ʹ. Iterasi 2 ݔ ൌ ʹǢݔଵ ൌ ͵Ǣݔଶ ൌ ʹ ݄ ൌ ͲǢ݄ଵ ൌ ͳǢ݄ଶ ൌ Ͳ ݂ሺݔ ሻ ൌ ͲǢ ݂ሺݔଵ ሻ ൌ ͳǢ ݂ሺݔଶ ሻ ൌ Ͳ ݕൌ ܿ ൌ ݂ሺݔଷ ሻ ൌ Ͳ Pengecekkan terhadap y : ݕ൏ ͲǡͲͲͲͲͲͲͲͳ Ͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → terpenuhi
commit to user
70 digilib.uns.ac.id
perpustakaan.uns.ac.id
Karena persamaan di atas terpenuhi, maka iterasi dihentikan dan akar polinomial didapat yaitu nilai ݔଶ = 2. Dengan demikian, akar 1 polinomial tersebut adalah 2.
Pencarian akar 2 Sebelum dilakukan pencarian akar kompleks kedua, persamaan polinomial ݔସ െ ͷ ݔଷ ͳ͵ ݔଶ െ ͳͻ ݔ ͳͲ
terlebih
dahulu
direduksi
menjadi
polinomial tereduksi. Reduksi polinomial dilakukan dengan membagi polinomial dengan akar yang didapat sebelumnya. Reduksi polinomial lebih mudah dilakukan menggunakan metode Horner :
Berdasarkan perhitungan di atas, maka persamaan hasil reduksi adalah ݔଷ െ ͵ ݔଶ ݔെ ͷ ൌ Ͳ. Langkah selanjutnya adalah mengulang langkah 1 hingga 7 untuk mendapatkan akar kedua menggunakan persamaan polinomial hasil reduksi. Hasil perhitungan untuk pencarian akar kedua adalah sebagai berikut : Iterasi 1 ݔ ൌ ͳǢ ݔଵ ൌ ʹǢݔଶ ൌ ͵ ݄ ൌ െʹǢ݄ଵ ൌ െͳǢ݄ଶ ൌ െͳ ݂ሺݔ ሻ ൌ ͲǢ ݂ሺݔଵ ሻ ൌ ͷǢ ݂ሺݔଶ ሻ ൌ ͳ ܽ ൌ ͵Ǣ ܾ ൌ ͳͶǢ ܿ ൌ ͳ ܦൌʹ ݔଷ ൌ ͳ ݕൌ ܿ ൌ ݂ሺݔଷ ሻ ൌ ͳ Pengecekkah terhadap y : ݕ൏ ͲǡͲͲͲͲͲͲͲͳ ͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi, lakukan iterasi dengan mengulang langkah 2 hingga 7
commit to user
71 digilib.uns.ac.id
perpustakaan.uns.ac.id
Iterasi 2 ݔ ൌ ʹǢ ݔଵ ൌ ͵Ǣݔଶ ൌ ͳ ݄ ൌ ͳǢ݄ଵ ൌ ʹǢ݄ଶ ൌ െʹ ݂ሺݔ ሻ ൌ ͲǢ ݂ሺݔଵ ሻ ൌ ͳǢ ݂ሺݔଶ ሻ ൌ Ͳ ܽ ൌ ͺǢ ܾ ൌ െͺǢ ܿ ൌ Ͳ ܦൌͺ ݕൌ ܿ ൌ ݂ሺݔଷ ሻ ൌ Ͳ Pengecekkan terhadap y : ݕ൏ ͲǡͲͲͲͲͲͲͲͳ Ͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → terpenuhi, iterasi dihentikan Dengan demikian, maka nilai akar polinomial kedua adalah ݔଶ ൌ ͳ. Pencarian akar 3 Mereduksi polinomial sebelumnya yaitu ݔଷ െ ͵ ݔଶ ݔെ ͷ ൌ Ͳ, dengan membagi persamaan tersebut dengan akar yang ditemukan : 1
-3
7
→koefisien -5 polinomial
Akar ← 1
1 -2 5 1 -2 5 0 Polinomial tereduksi yang didapat yaitu ݔଶ െ ʹ ݔ ͷ ൌ Ͳǡkemudian mengulang langkah 1 hingga 7 menggunakan persamaan baru dengan tiga tebakan awal ݔ ǡ ݔଵ ǡ ݔଶ yaitu 1, 2, 3. Berikut hasil perhitungan : Iterasi 1 ݔ ൌ ͳǢݔଵ ൌ ʹǢݔଶ ൌ ͵ ݄ ൌ െʹǢ݄ଵ ൌ െͳǢ݄ଶ ൌ െͳ ݂ሺݔ ሻ ൌ ͶǢ ݂ሺݔଵ ሻ ൌ ͷǢ ݂ሺݔଶ ሻ ൌ ͺ ܽ ൌ ͳǢ ܾ ൌ ͶǢ ܿ ൌ ͺ ܦൌ ʹǡͶͷͲʹͻͻͲͻͺͳͶ ܧെ ͳ Ͷ݅ ݔଷ ൌ ͳ ʹ݅ ݕൌ ܿ ൌ ݂ሺݔଷ ሻ ൌ ͺ
Pengecekkan terhadap y : ݕ൏ ͲǡͲͲͲͲͲͲͲͳ
commit to user
72 digilib.uns.ac.id
perpustakaan.uns.ac.id
ͺ ൏ ͲǡͲͲͲͲͲͲͲͳ → belum terpenuhi, dilakukan iterasi dengan mengulang langkah 2 hingga 7
Iterasi 2 ݔ ൌ ʹǢݔଵ ൌ ͵Ǣݔଶ ൌ ͳ ʹ݅ ݄ ൌ ͳ െ ʹ݅Ǣ݄ଵ ൌ ʹ െ ʹ݅Ǣ݄ଶ ൌ ʹ ݅ ݂ሺݔ ሻ ൌ ͲǢ ݂ሺݔଵ ሻ ൌ ͳǢ ݂ሺݔଶ ሻ ൌ Ͳ ܽ ൌ Ͷ Ͷ݅Ǣ ܾ ൌ െͳʹ Ͷ݅Ǣ ܿ ൌ Ͳ ܦൌ ͳʹ െ Ͷ݅ ݕൌ ܿ ൌ ݂ሺݔଷ ሻ ൌ Ͳ Pengecekkan terhadap y : ݕ൏ ͲǡͲͲͲͲͲͲͲͳ Ͳ ൏ ͲǡͲͲͲͲͲͲͲͳ → terpenuhi, iterasi dihentikan Pada iterasi kedua, proses dihentikan karena persamaan di atas telah terpenuhi. Dengan demikian, akar polinomial ketiga adalah ݔଶ ൌ ͳ ʹ݅. Pencarian akar 4 Akar keempat didapat dari hasil pembagian polinomial yang telah direduksi sebelumnya yaitu ݔଶ െ ʹ ݔ ͷ ൌ Ͳdengan akar yang telah didapat yaitu ͳ ʹ݅. 1
-2
→koefisien 5 polinomial
Akar ← ͳ ʹ݅
1+2i -5 1 -1+2i 0 Berdasarkan perhitungan di atas, maka didapat polinomial tereduksi yaitu ݔെ ͳ ʹ݅ ൌ Ͳǡsehingga nilai akar polinomial terakhir adalah ͳ െ ʹ݅.
4.3 Pembangunan Program Kalkulator Pencarian Akar Kompleks Polinomial Derajat N Sebelum program kalkulator pencarian akar kompleks polinomial derajat n dibangun, terlebih dahulu dilakukan analisa dan perancangan program agar program yang dibuat sesuai dengan kebutuhan. Di bawah ini merupakan commit to user pembahasan analisa kebutuhan serta perancangan program kalkulator:
73 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.1 Analisa Kebutuhan Program Kalkulator Analisa kebutuhan program kalkulator pencarian akar kompleks polinomial derajat n dilakukan dengan mendefinisikan kebutuhan-kebutuhan program, baik kebutuhan fungsional maupun kebutuhan non fungsional. Hasil analisa kebutuhan akan menjadi dasar pembangunan program kalkulator. 4.3.1.1 Deskripsi Sistem Program kalkulator pencarian akar kompleks polinomial derajat n merupakan sebuah perangkat lunak berbasis dekstop yang digunakan khusus untuk mencari akar-akar kompleks polinomial derajat dua, tiga, empat, dan n. Program kalkulator dibangun dengan menggunakan bahasa pemrograman Java. Program kalkulator dilengkapi dengan berbagai algoritma khusus pencarian akar kompleks polinomial seperti rumus kuadrat, algoritma Viete’s, Cardano, Bairstow, Revisi Bairstow, dan Muller. Program kalkulator dapat menyelesaikan persamaan polinomial derajat dua, tiga, empat, dan juga n. Input program berupa koefisien variabel x, sedangkan outputnya berupa nilai akar-akar kompleks polinomial hasil perhitungan menggunakan algoritma yang dipilih dan pendekatan Matlab, galat yang dihasilkan, dan jumlah iterasi yang dilakukan. Dengan program kalkulator ini diharapkan dapat menjadi media pembelajaran untuk orang awam, sehingga dapat memudahkan dalam menyelesaikan persamaan polinomial derajat n. 4.3.1.2 Kebutuhan Fungsional Tabel 4.6 menampilkan kebutuhan-kebutuhan fungsional dari program kalkulator pencarian akar-akar kompleks polinomial derajat n.
Tabel 4.6 Kebutuhan Fungsional Kalkulator Pencarian Akar Kompleks Polinomial Derajat n Kode
Kebutuhan Fungsional
F.1
Pengguna dapat mencari akar-akar kompleks polinomial derajat dua
F.2
Pengguna dapat mencari akar-akar kompleks polinomial derajat tiga
F.3
Pengguna dapat mencari akar-akar kompleks polinomial derajat empat
F.4
Pengguna dapat mencari akar-akar kompleks polinomial derajat n
F.5
Pengguna dapat melihat petunjuk peggunaan dan informasi program
commit to user
74 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.1.3 Kebutuhan Non Fungsional Berikut ini merupakan kebutuhan non-fungsional pada program kalkulator pencarian akar kompleks polinomial derajat n :
Tabel 4.7 Kebutuhan Non Fungsional Kalkulator Pencarian Akar Kompleks Polinomial Derajat n Kode
Kebutuhan Non Fungsional
NF.1
Desain antarmuka yang user friendly dan sederhana, sehingga mudah digunakan untuk orang awam
NF.2
Program dapat terkoneksi dengan program Matlab
NF.3
Program dapat menyelesaikan persamaan polinomial dalam waktu singkat
4.3.2 Perancangan Program Kalkulator Perancangan sistem dilakukan berdasarkan hasil analisa kebutuhan program sebelumnya. Kebutuhan fungsional program kalkulator dimodelkan menggunakan use case diagram, kemudian diidentifikasi aktor dan masing-masing use case. Setelah dimodelkan menggunakan use case diagram, dilakukan perancangan prototipe antarmuka program kalkulator. Masing-masing use case kemudian dimodelkan dengan model analisis yaitu dengan membuat sequence diagram dan class diagram sehingga memudahkan dalam implementasi program kalkulator. 4.3.2.1 Model Use Case Berikut ini merupakan pemodelan kebutuhan fungsional menggunakan model use case serta pembahasannya : 4.3.2.1.1 Diagram Use Case Use case diagram menggambarkan masing-masing fungsional yang terdapat pada program kalkulator. Gambar 4.1 menunjukkan use case diagram untuk program kalkulator pencarian akar kompleks polinomial derajat n.
commit to user
75 digilib.uns.ac.id
perpustakaan.uns.ac.id
System Mencari akar kompleks polinomial derajat 2
Mencari akar kompleks polinomial derajat 3
Mencari akar kompleks polinomial derajat 4 Pengguna Mencari akar kompleks polinomial derajat n
Melihat petunjuk penggunaan dan informasi program
Gambar 4.1 Use case diagram Kalkulator
4.3.2.1.2 Identifikasi Pengguna Pada program kalkulator pencarian akar kompleks polinomial derajat n hanya terdapat satu pengguna. Pengguna mencakup semua golongan seperti orang awam, pelajar, mahasiswa, dan lain sebagainya. 4.3.2.1.3 Definisi Use Case Definisi use case berdasarkan use case diagram yang tertera pada Gambar 4.1 dijabarkan dalam Tabel 4.8 berikut ini :
Tabel 4.8 Use Case dan Deskripsi Use Case Kode UC.1
UC.2
Use Case
Deskripsi
Mencari akar kompleks
Melakukan pencarian akar-akar kompleks
polinomial derajat 2
polinomial derajat dua
Mencari akar kompleks
Melakukan pencarian akar-akar kompleks
polinomial derajat 3
polinomial derajat tiga menggunakan algoritma yang dipilih
UC.3
Mencari akar kompleks
Melakukan pencarian akar-akar kompleks
polinomial derajat 4
polinomial derajat empat menggunakan algoritma yang dipilih
commit to user
76 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.7 Lanjutan Use Case dan Deskripsi Use Case Kode UC.4
Use Case
Deskripsi
Mencari akar kompleks
Melakukan pencarian akar-akar kompleks
polinomial derajat n
polinomial derajat n menggunakan algoritma yang dipilih
UC.5
Melihat petunjuk
Melihat petunjuk peggunaan program
penggunaan dan
kalkulator dan informasi program kalkulator
informasi program
pencarian akar polinomial derajat n
4.3.2.1.4 Kesesuaian Use Case Diagram dengan Kebutuhan Fungsional Tabel 4.9 berikut menunjukkan kesesuaian antara use case yang dibuat dengan kebutuhan fungsional program kalkulator pencarian akar kompleks polinomial derajat n.
Tabel 4.9 Kesesuaian Use Case dengan Kebutuhan Fungsional Kode Kebutuhan
Kebutuhan Fungsional
Kode Use case
Pengguna dapat mencari F.1
akar-akar kompleks
Use Case
Mencari akar kompleks UC.1
polinomial derajat 2
polinomial derajat dua Pengguna dapat mencari F.2
akar-akar kompleks
Mencari akar kompleks UC.2
polinomial derajat 3
polinomial derajat tiga Pengguna dapat mencari F.3
akar-akar kompleks
Mencari akar kompleks UC.3
polinomial derajat 4
polinomial derajat empat Pengguna dapat mencari F.4
akar-akar kompleks
Mencari akar kompleks UC.4
polinomial derajat n
polinomial derajat n Pengguna dapat melihat F.5
petunjuk peggunaan dan
Melihat petunjuk UC.5
informasi programcommit to user
penggunaan dan informasi program
77 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.2.1.5 Use Case Scenario Di bawah ini dijabarkan use case scenario untuk masing-masing use case: Nama use case
: Mencari akar kompleks polinomial derajat 2
Kode use case
: UC.1
Tabel 4.10 Scenario UC.1 : Mencari Akar Kompleks Polinomial Derajat 2 Field Name
Field Description
Name
Mencari akar kompleks polinomial derajat 2
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 2’
Use case
Use case berfungsi apabila pengguna menginputkan
Initiation
koefisien variabel x dan mengklik ‘Penyelesaian dengan Rumus Kuadrat’
Use Case Dialog
Sistem meminta pengguna untuk membuka tabulasi ‘Polinomial Derajat 2’ Sistem menampilkan halaman ‘Polinomial Derajat 2’ Sistem meminta pengguna untuk mengisi koefisien variabel x dan mengklik button ‘Penyelesaian dengan Rumus Kuadrat’ Sistem melakukan validasi terhadap koefisien yang diinputkan Sistem menentukan input Matlab Sistem menghitung akar kompleks pendekatan Matlab Sistem menghitung akar kompleks dengan rumus kuadrat Sistem menghitung galat Sistem menampilkan akar kompleks hasil perhitungan dengan rumus kuadrat Sistem menampilkan akar kompleks pendekatan Matlab Sistem menampilkan galat
commit to user
78 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.10 Lanjutan Scenario UC.1 : Mencari Akar Kompleks Polinomial Derajat 2 Field Name
Field Description
Use Case
Program menampilkan akar-akar kompleks hasil
Termination
perhitungan dengan Rumus Kuadrat, akar-akar kompleks pendekatan Matlab, dan galat perhitungan
Tabel 4.11 Combine Scenario UC.1 : Mencari Akar Kompleks Polinomial Derajat 2 Use Case Name
Mencari akar kompleks polinomial derajat 2
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 2’
Actor
System
1. Mengklik tabulasi ‘Polinomial Derajat 2’ 2. Menampilkan halaman ‘Polinomial Derajat 2’ 3. Menginputkan koefisien variabel x 4. Mengklik ‘Penyelesaian dengan Rumus Kuadrat’ 5. Melakukan validasi koefisien yang diinputkan 6. Menentukan input perhitungan Matlab 7. Menghitung akar kompleks dengan pendekatan Matlab 8. Menghitung akar kompleks dengan rumus commit kuadratto user
79 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.11 Lanjutan Combine Scenario UC.1 : Mencari Akar Kompleks Polinomial Derajat 2 Actor
System 9. Menghitung galat 10. Menampilkan akar kompleks perhitungan rumus kuadrat 11. Menampilkan akar kompleks pendekatan Matlab 12. Menampilkan galat
1st alternative 5. Melakukan validasi koefisien yang diinputkan, input tidak tepat 6. Menampilkan notifikasi ‘Input tidak tepat’
Berikut ini merupakan activity diagram untuk use case UC.1 yaitu mencari akar kompleks polinomial derajat 2 :
commit to user
80 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pengguna
Sistem
Mengklik tab 'Polinomial Derajat 2'
Menampilkan tab 'Polinomial Derajat 2'
Menginputkan koefisien variabel x
Mengklik 'Penyelesaian dengan Rumus Kuadrat'
Validasi
tidak
Notifikasi 'Input tidak tepat'
ya Menentukan input Matlab
Menghitung pendekatan Matlab
Mencari akar-akar kompleks dengan Rumus Kuadrat
Menghitung galat
Menampilkan akar kompleks
Menampilkan pendekatan Matlab
Menampilkan galat
Gambar 4.2 Activity Diagram UC.1 : Mencari Akar Kompleks Polinomial Derajat 2 Nama use case
: Mencari akar kompleks polinomial derajat 3
Kode use case
: UC.2
Tabel 4.12 Scenario UC.2 : Mencari Akar Kompleks Polinomial Derajat 3 Field Name
Field Description
Name
Mencari akar kompleks polinomial derajat 3
Assumption
Program kalkulator telah berjalan, commit to user Program kalkulator terkoneksi dengan Matlab
81 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.12 Lanjutan Scenario UC.2 : Mencari Akar Kompleks Polinomial Derajat 3 Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 3’
Use case
Use case berfungsi apabila pengguna menginputkan
Initiation
koefisien variabel x, memilih algoritma penyelesaian, dan mengklik ‘OK’
Use Case Dialog
Sistem meminta pengguna untuk membuka tabulasi ‘Polinomial Derajat 3’ Sistem menampilkan halaman ‘Polinomial Derajat 3’ Sistem meminta pengguna untuk mengisi koefisien variabel x Sistem meminta pengguna memilih algoritma penyelesaian Sistem meminta pengguna mengklik button ‘OK’ Sistem melakukan validasi terhadap koefisien yang diinputkan Sistem menentukan input Matlab Sistem menghitung akar kompleks pendekatan Matlab Sistem menghitung akar kompleks dengan algoritma Sistem menghitung galat Sistem menampilkan akar kompleks hasil perhitungan dengan algoritma terpilih Sistem menampilkan akar kompleks pendekatan Matlab Sistem menampilkan galat Sistem menampilkan jumlah iterasi
Use Case
Program menampilkan akar-akar kompleks hasil
Termination
perhitungan dengan algoritma terpilih, akar-akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
commit to user
82 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.13 Combine Scenario UC.2 : Mencari Akar Kompleks Polinomial Derajat 3 Use Case Name
Mencari akar kompleks polinomial derajat 3
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 3’
Actor
System
1. Mengklik tabulasi ‘Polinomial Derajat 3’ 2. Menampilkan halaman ‘Polinomial Derajat 3’ 3. Menginputkan koefisien variabel x 4. Memilih algoritma penyelesaian 5. Mengklik ‘OK’ 6. Melakukan validasi koefisien yang diinputkan 7. Menentukan input perhitungan Matlab 8. Menghitung akar kompleks dengan pendekatan Matlab 9. Menghitung akar kompleks dengan algoritma terpilih 10. Menghitung galat 11. Menampilkan akar kompleks perhitungan algoritma terpilih 12. Menampilkan akar kompleks pendekatan Matlab 13. Menampilkan galat 14. Menampilkan jumlah iterasi commit to user
83 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.13 Lanjutan Combine Scenario UC.2 : Mencari Akar Kompleks Polinomial Derajat 3 Actor
System
1st alternative 6. Melakukan validasi koefisien yang diinputkan, input tidak tepat 7. Menampilkan notifikasi ‘Input tidak tepat’ Pengguna
Mengklik tab 'Polinomial Derajat 3'
Sistem
Menampilkan tab 'Polinomial Derajat 3'
Menginputkan koefisien variabel x
Memilih algoritma
Mengklik 'OK'
Validasi
tidak
Notifikasi 'Input tidak tepat'
ya Menentukan input Matlab
Menghitung pendekatan Matlab
Mencari akar-akar kompleks dengan algoritma yang dipilih
Menghitung galat
Menampilkan akar kompleks
Menampilkan pendekatan Matlab
Menampilkan galat
Menampilkan iterasi
Gambar 4.3 Activity Diagram UC.2 : Mencari Akar Kompleks Polinomial Derajat commit to user 3
84 digilib.uns.ac.id
perpustakaan.uns.ac.id
Nama use case
: Mencari akar kompleks polinomial derajat 4
Kode use case
: UC.3
Tabel 4.14 Scenario UC.3 : Mencari Akar Kompleks Polinomial Derajat 4 Field Name
Field Description
Name
Mencari akar kompleks polinomial derajat 4
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 4’
Use case
Use case berfungsi apabila pengguna menginputkan
Initiation
koefisien variabel x, memilih algoritma penyelesaian, dan mengklik ‘OK’
Use Case Dialog
Sistem meminta pengguna untuk membuka tabulasi ‘Polinomial Derajat 4’ Sistem menampilkan halaman ‘Polinomial Derajat 4’ Sistem meminta pengguna untuk mengisi koefisien variabel x Sistem meminta pengguna memilih algoritma penyelesaian Sistem meminta pengguna mengklik button ‘OK’ Sistem melakukan validasi terhadap koefisien yang diinputkan Sistem menentukan input Matlab Sistem menghitung akar kompleks pendekatan Matlab Sistem menghitung akar kompleks dengan algoritma Sistem menghitung galat Sistem menampilkan akar kompleks hasil perhitungan dengan algoritma terpilih Sistem menampilkan akar kompleks pendekatan Matlab Sistem menampilkan galat Sistem menampilkan jumlah iterasi
commit to user
85 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.14 Lanjutan Scenario UC.3 : Mencari Akar Kompleks Polinomial Derajat 4 Field Name
Field Description
Use Case
Program menampilkan akar-akar kompleks hasil
Termination
perhitungan dengan algoritma terpilih, akar-akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
Tabel 4.15 Combine Scenario UC.3 : Mencari Akar Kompleks Polinomial Derajat 4 Use Case Name
Mencari akar kompleks polinomial derajat 4
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat 4’
Actor
System
1. Mengklik tabulasi ‘Polinomial Derajat 4’ 2. Menampilkan halaman ‘Polinomial Derajat 4’ 3. Menginputkan koefisien variabel x 4. Memilih algoritma penyelesaian 5. Mengklik ‘OK’ 6. Melakukan validasi koefisien yang diinputkan 7. Menentukan input perhitungan Matlab 8. Menghitung akar kompleks dengan pendekatan Matlab 9. Menghitung akar kompleks dengan algoritma 10. Menghitung galat commit to user
86 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.15 Lanjutan Combine Scenario UC.3 : Mencari Akar Kompleks Polinomial Derajat 4 Actor
System 11. Menampilkan akar kompleks perhitungan algoritma 12. Menampilkan akar kompleks pendekatan Matlab 13. Menampilkan galat 14. Menampilkan jumlah iterasi
1st alternative 6. Melakukan validasi koefisien yang diinputkan, input tidak tepat 7. Menampilkan notifikasi ‘Input tidak tepat’
Berikut ini merupakan activity diagram untuk use case UC.3 yaitu mencari akar kompleks polinomial derajat 4 :
commit to user
87 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pengguna
Mengklik tab 'Polinomial Derajat 4'
Sistem
Menampilkan tab 'Polinomial Derajat 4'
Menginputkan koefisien variabel x
Memilih algoritma
Mengklik 'OK'
Validasi
tidak
Notifikasi 'Input tidak tepat'
ya Menentukan input Matlab
Menghitung pendekatan Matlab
Mencari akar-akar kompleks dengan algoritma yang dipilih
Menghitung galat
Menampilkan akar kompleks
Menampilkan pendekatan Matlab
Menampilkan galat
Menampilkan iterasi
Gambar 4.4 Activity Diagram UC.3 : Mencari Akar Kompleks Polinomial Derajat commit4to user
88 digilib.uns.ac.id
perpustakaan.uns.ac.id
Nama use case
: Mencari akar kompleks polinomial derajat n
Kode use case
: UC.4
Tabel 4.16 Scenario UC.4 : Mencari Akar Kompleks Polinomial Derajat n Field Name
Field Description
Name
Mencari akar kompleks polinomial derajat n
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat n’
Use case
Use case berfungsi apabila pengguna menginputkan
Initiation
koefisien variabel x, memilih algoritma penyelesaian, dan mengklik ‘OK’
Use Case Dialog
Sistem meminta pengguna untuk membuka tabulasi ‘Polinomial Derajat n’ Sistem menampilkan halaman ‘Polinomial Derajat n’ Sistem meminta pengguna untuk menginputkan derajat polinomial Sistem meminta pengguna untuk mengklik ‘OK’ Sistem melakukan validasi derajat polinomial yang diinputkan Sistem menampilkan pilihan algoritma Sistem meminta pengguna untuk mengisi koefisien variabel x Sistem meminta pengguna memilih algoritma penyelesaian Sistem meminta pengguna mengklik button ‘OK’ Sistem melakukan validasi terhadap koefisien yang diinputkan Sistem menentukan input Matlab Sistem menghitung akar kompleks pendekatan Matlab Sistem menghitung akar kompleks dengan algoritma
commit to user Sistem menghitung galat
89 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.16 Lanjutan Scenario UC.4 : Mencari Akar Kompleks Polinomial Derajat n Field Name
Field Description
Use Case Dialog
Sistem menampilkan akar kompleks hasil perhitungan dengan algoritma terpilih Sistem menampilkan akar kompleks pendekatan Matlab Sistem menampilkan galat Sistem menampilkan jumlah iterasi
Use Case
Program menampilkan akar-akar kompleks hasil
Termination
perhitungan dengan algoritma terpilih, akar-akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
Tabel 4.17 Combine Scenario UC.4 : Mencari Akar Kompleks Polinomial Derajat n Use Case Name
Mencari akar kompleks polinomial derajat 4
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program menampilkan tabulasi ‘Polinomial Derajat n’
Actor
System
1. Mengklik tabulasi ‘Polinomial Derajat n’ 2. Menampilkan halaman ‘Polinomial Derajat n’ 3. Menginputkan derajat polinomial 4. Mengklik ‘OK’ 5. Melakukan validasi derajat polinomial 6. Menampilkan pilihan algoritma
commit to user
90 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.17 Lanjutan Combine Scenario UC.4 : Mencari Akar Kompleks Polinomial Derajat n Actor
System
7. Menginputkan koefisien variabel x 8. Memilih algoritma penyelesaian 9. Mengklik ‘OK’ 10. Melakukan validasi koefisien yang diinputkan 11. Menentukan input perhitungan Matlab 12. Menghitung akar kompleks dengan pendekatan Matlab 13. Menghitung akar kompleks dengan algoritma terpilih 14. Menghitung galat 15. Menampilkan akar kompleks perhitungan algoritma 16. Menampilkan akar kompleks pendekatan Matlab 17. Menampilkan galat 18. Menampilkan jumlah iterasi 1st alternative 5. Melakukan validasi derajat polinomial yang diinputkan, input tidak tepat 6. Menampilkan notifikasi ‘Input tidak tepat’ 2nd alternative 10. Melakukan validasi koefisien yang diinputkan, input tidak tepat 11. Menampilkan notifikasi ‘Input tidak tepat’
Berikut ini merupakan activity diagram untuk use case UC.4 yaitu mencari akar kompleks polinomialcommit derajatton user :
91 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pengguna
Mengklik tab 'Polinomial Derajat n'
Sistem
Menampilkan tab 'Polinomial Derajat n'
Menginputkan derajat polinomial
Mengklik 'OK'
Validasi
tidak
Notifikasi 'Input tidak tepat'
ya Menampilkan pilihan algoritma
Menginputkan koefisien variabel x
Memilih algoritma
Mengklik 'OK'
Validasi
tidak
Notifikasi 'Input tidak tepat'
ya Menentukan input Matlab
Menghitung pendekatan Matlab
Mencari akar-akar kompleks dengan algoritma yang dipilih
Menghitung galat
Menampilkan akar kompleks
Menampilkan pendekatan Matlab
Menampilkan galat
Menampilkan iterasi
Gambar 4.5 Activity Diagram UC.4 : Mencari Akar Kompleks Polinomial Derajat commit to user n
92 digilib.uns.ac.id
perpustakaan.uns.ac.id
Nama use case
: Melihat petunjuk penggunaan dan informasi program
Kode use case
: UC.5
Tabel 4.18 Scenario UC.5 : Melihat Petunjuk Penggunaan dan Informasi Program Field Name
Field Description
Name
Melihat petunjuk penggunaan dan informasi program
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Pre-condition
Program menampilkan tabulasi ‘About’
Use case
Use case berfungsi apabila pengguna mengklik tabulasi
Initiation
‘About’
Use Case Dialog
Sistem meminta pengguna untuk membuka tabulasi ‘About’ Sistem menampilkan halaman ‘About’ Program menampilkan halaman ‘About’
Use Case Termination
Tabel 4.19 Combine Scenario UC.5 : Melihat Petunjuk Penggunaan dan Informasi Program Use Case Name
Melihat petunjuk penggunaan dan informasi program
Assumption
Program kalkulator telah berjalan, Program kalkulator terkoneksi dengan Matlab
Actors
Pengguna
Pre-condition
Program telah berjalan
Actor
System
1. Mengklik tabulasi ‘About 2. Menampilkan halaman ‘About
Berikut ini merupakan activity diagram untuk use case UC.5 yaitu melihat petunjuk penggunaan dan informasi program : commit to user
93 digilib.uns.ac.id
perpustakaan.uns.ac.id
Pengguna
Sistem
Mengklik tab 'About'
Menampilkan tab 'About'
Menampilkan petunjuk penggunaan dan informasi program
Gambar 4.6 Activity Diagram UC.5 : Melihat Petunjuk Penggunaan dan Informasi Program
4.3.2.1.6 Flowchart Program Kalkulator Gambar 4.7 menunjukkan diagram alur (flowchart) program kalkulator pencarian akar kompleks polinomial derajat n. Berikut ini merupakan penjelasan Gambar 4.7 : 1. Program memiliki empat tabulasi berdasarkan masing-masing derajat polinomial yakni polinomial derajat dua, tiga, empat, dan n. 2. Input masing-masing algoritma berupa koefisien masing-masing variabel x. 3. Proses yang dilakukan dalam program kalkulator yaitu menghitung nilai pendekatan akar kompleks dengan menggunakan Matlab dan mencari akar-akar kompleks polinomial menggunakan algoritma yang dipilih. 4. Nilai galat masing-masing akar kompleks polinomial didapat dari perhitungan galat relatif. Perhitungan galat relatif yang mengunakan formula yang diusulkan dalam penelitian ini. Perhitungan galat relatif suatu akar kompleks polinomial menggunakan Persamaan 2.64. Dalam perhitungan galat, nilai eksak diubah menjadi nilai pendekatan numerik yang didapat dari perhitungan Matlab. Penggunaan solusi numerik hasil
commit to user perhitungan Matlab ini dikarenakan beberapa sampel polinomial yang
94 digilib.uns.ac.id
perpustakaan.uns.ac.id
digunakan dalam penelitian tidak disertai dengan solusi eksak. Selain itu, penyelesaian polinomial berderajat tinggi sulit diselesaikan dengan metode analitik. Oleh karena itu, digunakan alternatif lain untuk mendapatkan nilai eksak persamaan polinomial yaitu dengan menggunakan solusi numerik yang mendekati solusi eksak yang didapat dari perhitungan perangkat lunak matematika, Matlab. Seperti yang disebutkan dalam situs MathWorks (2016), Matlab merupakan perangkat lunak matematika berbasis matriks yang dapat mengekspresikan komputasi matematika. Matlab telah digunakan oleh jutaan insinyur dan ilmuwan di seluruh dunia untuk melakukan analisa dan desain. 5. Output dari perhitungan dalam program kalkulator adalah akar-akar kompleks polinomial
ሺݔଵ ǡ ݔଶ ,ݔଷ ǡ ǥ ǡ ݔ ሻ,
masing-masing
galat
yang
dihasilkan
ሺ݃ଵ ǡ ݃ଶ ,ݔଷ ǡ ǥ ǡ ݃ ሻ, serta jumlah iterasi yang dilakukan untuk penyelesaian polinomial menggunakan algoritma Bairstow, revisi algoritma Bairstow, dan Muller ሺ݅ଵ ǡ ݅ଶ ,ݔଷ ǡ ǥ ǡ ݅ ሻǤ
commit to user
Algoritma Cardano
Revisi Revisi Rumus R mus Ru Kuadrat K adrat Ku
Perhitungan galat
x1, x2 g1, g2
Revisi Revisi Rumus R mus Ru Kuadrat K adrat Ku
Perhitungan galat
x1, x2 g1, g2
commit to user
Keterangan : a, b, c, d = koefisien polinomial r = akar kompleks g = galat i = iterasi
x1, x2, x3 g1, g2, g3
Perhitungan galat
Perhitungan Matlab
Perhitungan Matlab
Perhitungan Matlab
ya
Cardano
tidak
Viete’s tidak
tidak
Perhitungan galat
x1, x2, x3 g1, g2, g3 i1, i2, i3
Perhitungan galat
x1, x2, x3 g1, g2, g3 i1, i2, i3
Perhitungan galat
x1, x2, x3 g1, g2, g3
tidak
x1, x2, x3, x4 g1, g2, g3, g4 i1, i2, i3, i4
ya
Perhitungan galat
Revisi Algoritma Bairstow
Perhitungan Matlab
x1, x2, x3, x4 g1, g2, g3, g4 i1, i2, i3, i4
Gambar 4.7 Diagram Alur Kalkulator Polinomial
Selesai
Algoritma Bairstow
Revisi Algoritma Bairstow
Algoritma Bairstow
Algoritma Viete’s
Perhitungan galat
Perhitungan Matlab
Perhitungan Matlab
Perhitungan Matlab
Perhitungan Matlab
ya
ya
ya
Bairstow
ya
Bairstow tidak
Muller
x1, x1, x2, x2, x3, x3, x4, x4, ..., ..., xn xn g1, g1, g2, g2, g3, g3, g4, g4, ..., ..., gn gn i1, i1, i2, i2, i3, i3, i4, i4, ..., ..., in in
x1, x2, x3, x4 g1, g2, g3, g4 i1, i2, i3, i4
Perhitungan galat
Muller
Perhitungan Matlab
ya
Perhitungan galat
Algoritma 2
a, b, c
Algoritma 1
Perhitungan Matlab
Pilihan algoritma
95
x1, x1, x2, x2, x3, x3, x4, x4, ..., ..., xn xn g1, g1, g2, g2, g3, g3, g4, g4, ..., ..., gn gn i1, i1, i2, i2, i3, i3, i4, i4, ..., ..., in in
Perhitungan galat
Algoritma 2
a, b, c, d
Algoritma 1
Perhitungan Matlab
Pilihan algoritma
koefisien
Revisi Bairstow
koefisien Revisi Bairstow
ya
n, bilangan genap
ya
tidak
a, b, c, d
derajat
a, b, c
ya
n, bilangan ganjil
Polinomial derajat n
ya
tidak
Polinomial derajat 4
tidak
ya
ya
tidak
Revisi Rumus Kuadrat
tidak
Polinomial derajat 3
ya
Rumus Kuadrat
a, b
ya
Polinomial derajat 2
Mulai
perpustakaan.uns.ac.id digilib.uns.ac.id
96 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.2.1 4.3.2.2 Prototipe Antarmuka Hasil analisa kebutuhan dan perancangan program diimplementasikan dalam antarmuka atau user interface. Antarmuka merupakan tampilan program yang dilihat oleh pengguna. Untuk memudahkan implementasi, terlebih dahulu dibuat prototipe antarmuka. Prototipe antarmuka merupakan sampel antarmuka sebelum diimplementasikan menggunakan Java GUI. Berikut ini merupkan prototipe antarmuka masing-masing tabulasi :
a. Tabulasi Polinomial Derajat 2 Polinomial Derajat 2
Polinomial Derajat 3
Polinomial Derajat 4
Polinomial Derajat n
About
Masukkan Masukkan koefisien koefisien polinomial polinomial ::
Pilih Pilih algoritma algoritma :: Rumus Kuadrat Akar Akar kompleks kompleks pendekatan pendekatan Matlab Matlab :: Akar Akar 11 == Akar Akar 22 == Akar Akar kompleks kompleks perhitungan perhitungan kalkulator kalkulator :: Akar kar 11 == Akar Akar 22 == Galat Galat yang yang dihasilkan dihasilkan :: Galat Galat 11 == Galat Galat 22 ==
Gambar 4.8 Prototipe Tabulasi Polinomial Derajat 2
commit to user
97 digilib.uns.ac.id
perpustakaan.uns.ac.id
b. Tabulasi Polinomial Derajat 3 Polinomial Derajat 2
Polinomial Derajat 3
Polinomial Derajat 4
Polinomial Derajat n
About
Masukkan Masukkan koefisien koefisien polinomial polinomial ::
Pilih Pilih algoritma algoritma :: Algoritma Cardano
OK
Akar Akar kompleks kompleks perhitungan perhitungan kalkulator kalkulator ::
Akar Akar kompleks kompleks pendekatan pendekatan Matlab Matlab ::
Akar kar 11 ==
Akar Akar 11 ==
Akar Akar 22 ==
Akar Akar 22 ==
Akar Akar 33 ==
Akar Akar 33 ==
Galat Galat yang yang dihasilkan dihasilkan ::
Iterasi Iterasi yang yang dilakukan dilakukan ::
Gambar 4.9 Prototipe Tabulasi Polinomial Derajat 3
c. Tabulasi Polinomial Derajat 4 Polinomial Derajat 2
Polinomial Derajat 3
Polinomial Derajat 4
Polinomial Derajat n
About
Masukkan Masukkan koefisien koefisien polinomial polinomial ::
Pilih Pilih algoritma algoritma :: Algoritma Bairstow
OK
Akar Akar kompleks kompleks perhitungan perhitungan kalkulator kalkulator ::
Akar Akar kompleks kompleks pendekatan pendekatan Matlab Matlab ::
Akar kar 11 ==
Akar Akar 11 ==
Akar Akar 22 ==
Akar Akar 22 ==
Akar Akar 33 ==
Akar Akar 33 ==
Akar Akar 44 ==
Akar Akar 44 ==
Galat Galat yang yang dihasilkan dihasilkan ::
Iterasi Iterasi yang yang dilakukan dilakukan ::
Gambar 4.10 Prototipe Tabulasi Polinomial Derajat 4 commit to user
98 digilib.uns.ac.id
perpustakaan.uns.ac.id
d. Tabulasi Polinomial Derajat n Polinomial Derajat 2
Polinomial Derajat 3
Masukkan Masukkan derajat derajat polinomial polinomial ::
Polinomial Derajat 4
Polinomial Derajat n
About
OK
Masukkan Masukkan koefisien koefisien polinomial polinomial ::
Pilih Pilih algoritma algoritma :: Algoritma Muller
OK
Akar Akar kompleks kompleks perhitungan perhitungan kalkulator kalkulator ::
Akar Akar kompleks kompleks pendekatan pendekatan Matlab Matlab ::
Galat Galat yang yang dihasilkan dihasilkan ::
Iterasi Iterasi yang yang dilakukan dilakukan ::
Gambar 4.11 Prototipe Tabulasi Polinomial Derajat n
4.3.2.3 Model Analisis Use case diagram direalisasikan dalam analisis model program kalkulator pencarian akar kompleks polinomial. Melalui analisi model, kebutuhan program akan dispesifikasikan kembali berdasarkan kebutuhan-kebutuhan yang telah dianalisis dan apa yang dapat program lakukan untuk membantu pengguna. Sebelum program kalkulator dibangun, dilakukan analisis struktur logika dari situasi permasalahan dan cara masing-masing elemen logika saling berinteraksi. Dalam penelitian ini, model analisis dilakukan dengan membuat robustness diagram, sequence diagram, dan class diagram. 4.3.2.3.1 Robustness Diagram Robustness diagram merupakan salah satu cara untuk menghasilkan analisis class diagram untuk sebuah use case. Berikut ini merupakan robustness diagram program kalkulator pencarian akar kompleks polinomial derajat n :
commit to user
99 digilib.uns.ac.id
perpustakaan.uns.ac.id
ProsesKalkulator
TampilanKalkulator
Gambar 4.12 Robustness Diagram Program Kalkulator
Berdasarkan robustness diagram di atas, diketahui bahwa dalam porgram kalkulator pencarian akar kompleks polinomial derajat n terdapat satu boundary yakni
TampilanKalkulator
dan
satu
control
yakni
ProsesKalkulator.
TampilanKalkulator merupakan model interaksi antara program kalkulator dengan pengguna.
TampilanKalkulator
berupa
kelas
antarmuka
program.
TampilanKalkulator ini telah mencakup seluruh tabulasi pada program yaitu tabulasi Polinomial Derajat 2, Polinomial Derajat 3, Polinomial Derajat 4, Polinomial Derajat n, dan About. Proses yang dilakukan kalkulator dalam mencari akar-akar kompleks polinomial terdapat dalam kelas control ProsesKalkulator. 4.3.2.3.2 Sequence Diagram Dalam
sequence diagram
dipaparkan interaksi objek yang disusun
berdasarkan urutan proses dalam sistem. Proses yang terjadi pada masing-masing use case akan dijabarkan dalam bentuk interaksi objek sesuai dengan urutannya mulai dari inputan user hingga output yang dihasilkan. Berikut ini merupakan sequence diagram masing-masing use case : a. UC.1 Mencari akar kompleks polinomial derajat 2
commit to user
100 digilib.uns.ac.id
perpustakaan.uns.ac.id
: Pengguna
: TampilanKalkulator
: ProsesKalkulator
1 : input koefisien variabel x 2 : klik 'Penyelesaian dg Rumus Kuadrat 3 : inputKoefisien()
4 : validate()
sd Jika input tidak valid 5 : menampilkan notifikasi sd Jika input valid 6 : inputMatlab()
7 : findingRootsUsingMatlab()
8 : rumusKuadrat()
9 : hitungGalat()
10 : cetakPendekatanMatlab() 11 : cetakAkar() 12 : cetakGalat()
Gambar 4.13 Sequence Diagram UC.1 Mencari Akar Kompleks Polinomial Derajat 2
commit to user
101 digilib.uns.ac.id
perpustakaan.uns.ac.id
b. UC.2 Mencari akar kompleks polinomial derajat 3
: Pengguna
: TampilanKalkulator
: ProsesKalkulator
1 : input koefisien variabel x 2 : pilih algoritma 3 : klik 'OK' 4 : inputKoefisien()
5 : validate()
sd Jika input tidak valid 6 : menampilkan notifikasi sd Jika input valid 7 : inputMatlab()
8 : findingRootsUsingMatlab()
9 : perhitunganAlgoritma()
10 : hitungGalat()
11 : cetakPendekatanMatlab() 12 : cetakAkar() 13 : cetakGalat() 14 : cetakIterasi()
Gambar 4.14 Sequence Diagram UC.2 Mencari Akar Kompleks Polinomial Derajat 3
commit to user
102 digilib.uns.ac.id
perpustakaan.uns.ac.id
c. UC.3 Mencari akar kompleks polinomial derajat 4
: Pengguna
: TampilanKalkulator
: ProsesKalkulator
1 : input koefisien variabel x 2 : pilih algoritma 3 : klik 'OK' 4 : inputKoefisien()
5 : validate()
sd Jika input tidak valid 6 : menampilkan notifikasi sd Jika input valid 7 : inputMatlab()
8 : findingRootsUsingMatlab()
9 : perhitunganAlgoritma()
10 : hitungGalat()
11 : cetakPendekatanMatlab() 12 : cetakAkar() 13 : cetakGalat() 14 : cetakIterasi()
Gambar 4.15 Sequence Diagram UC.3 Mencari Akar Kompleks Polinomial Derajat 4
commit to user
103 digilib.uns.ac.id
perpustakaan.uns.ac.id
d. UC.4 Mencari akar kompleks polinomial derajat n
: Pengguna
: TampilanKalkulator
: ProsesKalkulator
1 : input derajat polinomial 2 : klik 'OK' 3 : inputDerajat() 4 : validate()
sd Jika derajat tidak valid 5 : menampilkan notifikasi
sd Jika derajat valid
7 : input koefisien variabel x
6 : menampilkan pilihan algoritma
8 : pilih algoritma 9 : klik 'OK' 10 : inputKoefisien()
11 : validate()
sd Jika input tidak valid 12 : menampilkan notifikasi sd Jika input valid 13 : inputMatlab()
14 : findingRootsUsingMatlab()
15 : perhitunganAlgoritma()
16 : hitungGalat()
17 : cetakPendekatanMatlab() 18 : cetakAkar() 19 : cetakGalat() 20 : cetakIterasi()
Gambar 4.16 Sequence Diagram UC.4 Mencari Akar Kompleks Polinomial Derajat n commit to user
104 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.2.3.3 Class Diagram Class diagram program kalkulator pencarian akar kompleks polinomial derajat n ditunjukkan pada Gambar 4.17. <
> ProsesKalkulator <> TampilanKalkulator
+inputKoefisien() +inputMatlab() +findingRootsUsingMatlab() +rumusKuadrat() +algoritmaCardano() +algoritmaVietes() +algoritmaBairstow() +revisiBairstow() +algoritmaMuller() +hitungGalat() +inputDerajat()
+cetakPendekatanMatlab() +cetakAkar() +cetakGalat() +cetakIterasi()
Gambar 4.17 Class Diagram Program Kalkulator
4.3.3 Implementasi Program Kalkulator Algoritma-algoritma khusus pencarian akar kompleks polinomial seperti algoritma rumus kuadrat (Alg 2.1), Cardano (Alg 2.2), Viete’s (Alg 2.3), Bairstow (Alg 2.4), revisis algoritma Bairstow (Alg 2.5), dan Muller (Alg 2.6) diimplementasikan dalam sebuah program yang ditulis menggunakan bahasa pemrograman java. Di bawah ini akan dijelaskan mengenai implementasi algoritma-algoritma tersebut : 4.3.3.1 Implementasi Algoritma Rumus Kuadrat Algoritma rumus kuadrat merupakan algoritma yang digunakan untuk mencari akar kompleks suatu persamaan polinomial berderajat dua. Algoritma rumus kuadrat (Alg 2.1) adalah algoritma sederhana. Gambar 4.18 merupakan flowchart algoritma rumus kuadrat.
commit to user
105 digilib.uns.ac.id
perpustakaan.uns.ac.id
Mulai
Input koefisien a[]
d = a[1] * a[1] - 4 * a[0] p = -a[1] / 2
q = (-sqrt(d)/2) d >= 0 ?
tidak
x1 = p+"+"+q+"i" x2 = p+"-"+q+"i"
ya x1 = (sqrt(d)/2)+p x2 = (-sqrt(d)/2)+p
x1, x2
Selesai
Gambar 4.18 Flowchart Rumus Kuadrat Berikut ini merupakan pseudocode implementasi algoritma rumus kuadrat : Algoritma Rumus Kuadrat {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat dua} Input : a[] Output : arrayakar[] Deskripsi Algoritma input(a) d ← a[1] * a[1] - 4 * a[0] p ← -a[1] / 2 IF (d >= 0) arrayakar[0] ← (sqrt(d)/2)+p arrayakar[1] ← (-sqrt(d)/2)+p ELSE q ← (-sqrt(d)/2) arrayakar[0] ← p+"+"+q+"i" arrayakar[1] ← p+"-"+q+"i" ENDIF RETURN arrayakar
4.3.3.2 Implementasi Algoritma Cardano Penyelesaian persamaan polinomial derajat tiga dapat dilakukan dengan user menggunakan algoritma Cardano.commit Dalamtoalgoritma Cardano terdapat dua pilihan
106 digilib.uns.ac.id
perpustakaan.uns.ac.id
penyelesaian persamaan polinomial derajat tiga. Pilihan penyelesaian tersebut bergantung pada nilai diskriminan yang dihasilkan. Flowchart algoritma Cardano dapat dilihat pada Gambar 4.19. Mulai
Input koefisien a[]
p = ((3*a[1])-a[2]^2)/3 q = ((2*a[2]^3)/27)-(a[2]*a[1]/3)+a[0] diskriminan = ((p/3)^3)+((q/2)^2) cosA = -q/(2*sqrt((|p|/3)^3) rad = acos(cosA) diskriminan > 0 ?
tidak
x1 = ((-a[2]/3)+(2*sqrt(|p|/3)*cos(rad/3))) x2 = ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad-pi()/3))) x3 = ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad+pi()/3)))
ya u = (-1*(q/2))^(1/3)+ sqrt(diskriminan) v = (-1*(q/2))^(1/3)- sqrt(diskriminan) x1 = (-a[2]/3) + u + v y = (-a[2]/3)-((u+v)/2) z = ((u-v)/2) * sqrt(3) x2 = y+"+"+z+"i" x3 = y+"-"+z+"i"
x1, x2,x3
Selesai
Gambar 4.19 Flowchart Algoritma Cardano
Secara keseluruhan, algoritma Cardano (Alg 2.2) dapat dijabarkan dalam pseudocode berikut ini : Algoritma Cardano {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat tiga} Input : a[] Output : arrayakar[] commit to user Deskripsi Algoritma
107 digilib.uns.ac.id
perpustakaan.uns.ac.id
input(a) p ← ((3*a[1])-a[2]^2)/3 q ← ((2*a[2]^3)/27)-(a[2]*a[1]/3)+a[0] diskriminan ← ((p/3)^3)+((q/2)^2) IF (diskriminan > 0) u ← cbrt(-1*(q/2))+ sqrt(diskriminan) v ← cbrt(-1*(q/2))- sqrt(diskriminan) w ← (-a[2]/3) + u + v arrayakar[0] ← w y ← (-a[2]/3)-((u+v)/2) z ← ((u-v)/2) * sqrt(3) arrayakar[1] ← y+"+"+z+"i" arrayakar[2] ← y+"-"+z+"i" ELSE IF (diskriminan <= 0) cosA ← -q/(2*sqrt((|p|/3)^3) rad ← acos(cosA) arrayakar[0] ← ((-a[2]/3)+(2*sqrt(|p|/3)*cos(rad/3))) arrayakar[1] ← ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad-pi()/3))) arrayakar[2] ← ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad+pi()/3))) ENDIF RETURN arrayakar
4.3.3.3 Implementasi Algoritma Viete’s Algoritma Viete’s merupakan algoritma penyelesaian persamaan polinomial derajat tiga. Gambar 4.20 merupakan flowchart algoritma Viete’s. Mulai
Input koefisien a[]
omega1 = (-1 + sqrt(3) i) / 2 omega2 = (-1 - sqrt(3) i) / 2 p = ((3*a[1]) – a[2]^2) / 3 q = ((2*a[2]^3)/27) – (a[2]*a[1]/3) + a[0] c = (-q/2) + sqrt((p^3/27) + (q^2/4)) r = c^(1/3) d = -p/3
x1 = r + (d/r) x2 = (omega1*r) + (d/(omega1*r)) x3 = (omega2*r) + (d/(omega2*r))
x1, x2,x3
Selesai
commit to user Gambar 4.20 Flowchart Algoritma Viete’s
perpustakaan.uns.ac.id
108 digilib.uns.ac.id
Dalam pembangunan kalkulator pencarian akar kompleks polinomial, algoritma Viete’s (Alg 2.3) dapat dijabarkan dalam pseudocode berikut : Algoritma Viete’s {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat tiga} Input : a[] Output : arrayakar[] Deskripsi Algoritma input(a) omega1 ← -0.5 imomega1 ← 0.5 * sqrt(3) omega2 ← -0.5 imomega2 ← -0.5 * sqrt(3) p ← ((3*a[1]) – a[2]^2) / 3 q ← ((2*a[2]^3)/27) – (a[2]*a[1]/3) + a[0] d ← -p/3 imd ← 0.0 dd ← (p^3/27) + (q^2/4) IF (dd < 0) c ← (-q/2) imc ← sqrt(-1*dd) ELSE c ← (-q/2) + sqrt(dd) imc ← 0.0 ENDIF normc ← sqrt(c^2 + imc^2) taninvers ← atan(imc/c) tetha ← 0.0 IF (c > 0 || imc > 0) tetha ← toDegrees(taninvers) //kuadran 1 ELSE IF( c < 0 || imc > 0) tetha ← 180 - |toDegrees(taninvers)| // kuadran 2 ELSE IF ( c < 0 || imc < 0) Tetha ← 180 + |toDegrees(taninvers)| // kuadran 3 ELSE IF ( c > 0 || imc < 0) tetha ← 360 - |toDegrees(taninvers)| // kuadran 4 ENDIF r ← normc^(1/3) * cos(toRadians(tetha/3) im r ← normc^(1/3) * sin(toRadians(tetha/3) dr ← ((d*r) + (imd*imr)) / (r^2+imr^2) imdr ← ((-imr*d) + (imd*r)) / (r^2 + imr^2) z1 ← r + dr imz1 ← imr + imdr omega1r ← (omega1*r) – (imomega1*imr) imomega1r ← (omega1*imr) + (imomega1*r) omega2r ← (omega2*r) – (imomega2*imr) imomega2r ← (omega2*imr) + (imomega2*r) domega1r ← ((d*omega1r)+(imd*imomega1r)) / (omega1r^2+imomega1r^2) imdomega1r ← ((-imomega1r*d)+(imomega1r*imd)) / (omega1r^2+imomega1r^2) z2 ← omega1r + domega1r imz2 ← imomega1r + imdomega1r domega2r ←((d*omega2r)+(imd*imomega2r)) / (omega2r^2+imomega2r^2) imdomega2r ←((-imomega1r*d)+(imomega1r*imd)) / (omega1r^2+imomega1r^2) commit to user z3 ← omega2r + domega2r
109 digilib.uns.ac.id
perpustakaan.uns.ac.id
imz3 ← imomega2r + imdomega2r arrayakar[0] ← z1+"+"+ imz1+"i" arrayakar[1] ← z2+"+"+ imz2+"i" arrayakar[2] ← z3+"+"+ imz3+"i" RETURN arrayakar
4.3.3.4 Implementasi Algoritma Bairstow Algoritma Bairstow digunakan untuk menyelesaikan persamaan polinomial berderajat n. Algoritma Bairstow menggunakan sistem iterasi dalam mencari akar polinomial berderajat n. Flowchart algoritma Bairstow tertera pada Gambar 4.21.
commit to user
110 digilib.uns.ac.id
perpustakaan.uns.ac.id
Mulai
Input koefisien a[], n Ɛ = 1E-8
u=0 v=0
k=0
k = (n-1) ?
tidak
b[k] = a[k]+b[k-1]u+b[k-2]v k++
tidak
c[k] = b[k] + c[k-1]u + c[k-2]v k++
ya k=0
k = (n-2) ? tidak
ya Δu = b[n] * c[n-3] - b[n-1] * c[n-2] /
(c[n-2] * c[n-2]) - c[n-1] * c[n-3] Δv = b[n-1] * c[n-1] - b[n] * c[n-2] / tidak
(c[n-2] * c[n-2]) - c[n-1] * c[n-3]
u = u + du v = v +dv
|Δu| + |Δv| < Ɛ
sq = u * u + 4 * v
sq < 0 ?
tidak
x[n-1] = u/2 + sqrt(-sq) / 2 x[n-2] = u/2 +-sqrt(-sq) / 2
tidak
x[n-1] = u/2 + sqrt(-sq) / 2 x[n-2] = u/2 +-sqrt(-sq) / 2
ya x[n-1] = u/2 + sqrt(-sq) / 2 i x[n-2] = u/2 +-sqrt(-sq) / 2 i
n=n–2 a[] = b[]
n=1?
tidak
n=2?
ya u = -a[n-1] / a[n-2] x[0] = -a[0] / a[1]
v = -a[n] / a[n-2] sq = u * u + 4 * v
sq < 0 ?
ya
x[n-1] = u/2 + sqrt(-sq) / 2 i x[n-2] = u/2 +-sqrt(-sq) / 2 i
x1, x2,x3,...,xn
Selesai
commit to user Gambar 4.21 Flowchart Algoritma Bairstow
perpustakaan.uns.ac.id
111 digilib.uns.ac.id
Berikut ini merupakan pseudocode algoritma Bairstow (Alg 2.4) yang digunakan dalam pembangunan kalkulator pencarian akar kompleks polinomial : Algoritma Bairstow {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat n} Input : a[], n Output : arrayakar[] Deskripsi Algoritma input(a) input(n) epsilon ← 1e-8 //nilai toleransi WHILE (n >= 3) DO u ← 0 v ← 0 error ← 1 c[n] ← b[n] ← a[n] WHILE (error > epsilon) DO b[n-1] ← a[n-1] + u * b[n] c[n-1] ← b[n-1] + u * c[n] FOR (i = n - 2; i > 0; i--) DO b[i] ← a[i] + u * b[i+1] + v * b[i+2] c[i] ← b[i] + u * c[i+1] + v * c[i+2] ENDFOR b[0] ← a[0] + u * b[1] + v * b[2] det ← (c[2] * c[2]) - c[1] * c[3] nu ← b[0] * c[3] - b[1] * c[2] nv ← b[1] * c[1] - b[0] * c[2] IF (det == 0) du ← dv ← 1 ELSE du ← nu / det dv ← nv / det ENDIF u ← u + du v ← v + dv error ← sqrt(du * du + dv * dv) ENDWHILE sq = u * u + 4 * v IF (sq < 0) p ← u/2 q ← sqrt(-sq) / 2 arrayakar[n-1] ← p+“+”+q+“i” arrayakar[n-2] ← p+“-”+q+“i” ELSE arrayakar[n-1] ← (u/2)+(sqrt((s*q)/2)) arrayakar[n-2] ← (u/2)-(sqrt((s*q)/2)) ENDIF n ← n - 2 FOR (i = 0; i < n + 1; i++) DO a[i] ← b[i+2] ENDFOR ENDWHILE IF (n == 2) u ← -a[1] / a[2] commit to user v ← -a[0] / a[2]
112 digilib.uns.ac.id
perpustakaan.uns.ac.id
sq ← u * u + 4 * v IF (sq < 0) p ← u/2 q ← sqrt(-sq) / arrayakar[0] ← arrayakar[1] ← ELSE arrayakar[0] ← arrayakar[1] ← ENDIF ELSE IF (n == 1) arrayakar[0] ← -a[0] ENDIF RETURN arrayakar
2 p+“+”+q+“i” p+“-”+q+“i” (u/2)+(sqrt((s*q)/2)) (u/2)-(sqrt((s*q)/2))
/ a[1]
4.3.3.5 Implementasi Revisi Algoritma Bairstow Revisi algoritma Bairstow (Alg 2.5) merupakan pengembangan algoritma Bairstow (Alg 2.4). Langkah-langkah yang dilakukan dalam revisi algoritma Bairstow sama persis dengan algoritma Bairstow. Perbedaan dari kedua algoritma tersebut hanya terdapat pada rumus yang digunakan dalam menentukan nilai ∆u dan ∆v yang akan berpengaruh pada nilai u dan v. Flowchart revisi algoritma Bairstow adalah sebagai berikut :
commit to user
113 digilib.uns.ac.id
perpustakaan.uns.ac.id
Mulai
Input koefisien a[], n Ɛ = 1E-8
u=0 v=0
k=0
k = (n-1) ?
tidak
b[k] = a[k]+b[k-1]u+b[k-2]v k++
tidak
c[k] = b[k] + c[k-1]u + c[k-2]v k++
ya k=0
k = (n-2) ? tidak
ya
tidak
Δu = (b[n-1] * c[n-2]) - (b[n] * c[n-3]) / ((c[n-1]-b[n-1]) * c[n-3]) - (c[n-2] * c[n-2]) Δv = (b[n] * c[n-2]) - (b[n-1] * (c[n-1]-b[n-1])) / ((c[n-1]-b[n-1]) * c[n-3]) - (c[n-2] * c[n-2])
u = u + du v = v +dv
|Δu| + |Δv| < Ɛ
sq = u * u + 4 * v
sq < 0 ?
tidak
x[n-1] = u/2 + sqrt(-sq) / 2 x[n-2] = u/2 +-sqrt(-sq) / 2
tidak
x[n-1] = u/2 + sqrt(-sq) / 2 x[n-2] = u/2 +-sqrt(-sq) / 2
ya
x[n-1] = u/2 + sqrt(-sq) / 2 i x[n-2] = u/2 +-sqrt(-sq) / 2 i
n=n–2 a[] = b[]
n=1?
tidak
n=2?
ya u = -a[n-1] / a[n-2] x[0] = -a[0] / a[1]
v = -a[n] / a[n-2] sq = u * u + 4 * v
sq < 0 ?
ya
x[n-1] = u/2 + sqrt(-sq) / 2 i x[n-2] = u/2 +-sqrt(-sq) / 2 i
x1, x2,x3,...,xn
Selesai
commit to user Gambar 4.22 Flowchart Revisi Algoritma Bairstow
perpustakaan.uns.ac.id
114 digilib.uns.ac.id
Berikut ini merupakan pseudocode dari revisi algoritma Bairstow : Revisi Algoritma Bairstow {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat n} Input : a[], n Output : arrayakar[] Deskripsi Algoritma input(a) input(n) epsilon ← 1e-8 //nilai toleransi WHILE (n >= 3) DO u ← 0 v ← 0 error ← 1 c[n] ← b[n] ← a[n] WHILE (error > epsilon) DO b[n-1] ← a[n-1] + u * b[n] c[n-1] = b[n-1] + u * c[n]; FOR (i = n - 2; i > 0; i--) DO b[i] ← a[i] + u * b[i+1] + v * b[i+2] c[i] ← b[i] + u * c[i+1] + v * c[i+2] ENDFOR b[0] ← a[0] + u * b[1] + v * b[2] det ← ((c[1]-b[1]) * c[3]) - (c[2] * c[2]) nu ← (b[1] * c[2]) - (b[0] * c[3]) nv ← (b[0] * c[2]) - (b[1] * (c[1]-b[1])) IF (det == 0) du ← dv ← 1 ELSE du ← nu / det dv ← nv / det ENDIF u ← u + du v ← v + dv error ← sqrt(du * du + dv * dv) ENDWHILE sq = u * u + 4 * v IF (sq < 0) p ← u/2 q ← sqrt((-s*q)/2) arrayakar[n-1] ← p+“+”+q+“i” arrayakar[n-2] ← p+“-“+q+“i” ELSE arrayakar[n-1] ← (u/2)+(sqrt((s*q)/2)) arrayakar[n-2] ← (u/2)-(sqrt((s*q)/2)) ENDIF n ← n - 2 FOR (i = 0; i < n + 1; i++) DO a[i] ← b[i+2] ENDFOR ENDWHILE IF (n == 2) u ← -a[1] / a[2]; v ← -a[0] / a[2]; sq ← u * u + 4 * v; commit to user IF (sq < 0)
115 digilib.uns.ac.id
perpustakaan.uns.ac.id
p ← u/2 q ← ඥെݍݏΤʹ arrayakar[0] ← arrayakar[1] ←
p+“+”+q+“i” p+“-”+q+“i”
ELSE arrayakar[0] ← (u/2)+(sqrt((s*q)/2)) arrayakar[1] ← S(u/2)-(sqrt((s*q)/2)) ENDIF ELSE IF (n == 1) arrayakar[0] ← -a[0] / a[1] ENDIF RETURN arrayakar
4.3.3.6 Implementasi Algoritma Muller Algoritma Muller merupakan generalisasi dari metode secant dimana dalam mencari akar kompleks dilakukan dengan beberapa perulangan hingga nilai akar konvergen. Flowchart algoritma Muller ditampilkan pada Gambar 4.23.
commit to user
116 digilib.uns.ac.id
perpustakaan.uns.ac.id
Mulai
Input koefisien a[] dan b[]=null, n, epsilon = 1E-8 J=0
x0 = 1, x2 = 2, x3 = 3
h0 = x0 - x2, h1 = x1 - x2 h2 = h0 * h1 * (h0 – h1) f0 = f(x0), f1 = f(x1), f2 = f(x2) a = ((h1*(f0-f2))-(h0*(f1-f2)))/h2 b = (((h0^2)*(f1-f2))- ((h1^2)*(f0-f2)))/h2 c = f(x2) D = sqrt((b^2)-(4*a*c))
b>=0?
tidak
x3 = x2 – ((2c)/(b-D)) y=c
tidak ya x3 = x2 – ((2c)/ (b+D)) y=c
y > epsilon ?
tidak
x0 = x1, x1 = x2, x2 = x3
tidak
a[] = b[i+1] + (a[i+1]*x3) i--
ya x[n-1] = x3
b[] = a[] n = n -1 i=n
n=1?
tidak
i > -1 ?
ya
ya
x[n-1] = -1*a[0]
i=n?
ya x1, x2,x3,...,xn
a[] = b[i+1] i--
Selesai
commit to user Gambar 4.23 Flowchart Algoritma Muller
perpustakaan.uns.ac.id
117 digilib.uns.ac.id
Di bawah ini merupakan psuedocode pada implementasi algoritma Muller dalam program kalkulator : Algoritma Muller {Algoritma ini digunakan untuk mencari akar kompleks polinomial derajat n} Input : a[], n Output : arrayakar[] Deskripsi Algoritma input(a) input(n) epsilon ← 1e-8 m ← n FOR (int i = 0; i <= n; i++) DO b[i] ← 0.0 ENDFOR FOR (int j=0; j < (m-1); j++)DO loop ← false x0 = 1.0 x1 = 2.0 x2 ← 3.0 WHILE (loop == false)DO h0 ← x0 - x2 h1 ← x1 - x2 h2 ← h0 * h1 * (h0 – h1) f0 ← f(x0) f1 ← f(x1) f2 ← f(x2) a ← ((h1*(f0-f2))-(h0*(f1-f2)))/h2 b ← (((h0^2)*(f1-f2))- ((h1^2)*(f0-f2)))/h2 c ← f(x2) D ← sqrt((b^2)-(4*a*c)) IF (b >= 0)DO x3 ← x2 – ((2c)/(b+D)) ELSE x3 ← x2 – ((2c)/(b-D)) ENDIF y ← c IF ( y > epsilon) DO x0 ← x1 x1 ← x2 x2 ← x3 loop ← false ELSE arrayakar[n-1] ← x3 loop ← true ENDIF ENDWHILE System.arraycopy(a, 0, b, 0, n+1) n ← n – 1 FOR (int i = n; i > -1 ; i--)DO IF ( i == n)DO a[i] ← b[i+1] ELSE a[i] ← b[i+1] + (a[i+1]*x3) commit to user ENDIF
118 digilib.uns.ac.id
perpustakaan.uns.ac.id
ENDFOR IF ( n == 1)DO arrayakar[n-1] ← -1*a[0] ENDIF ENDFOR RETURN arrayakar
4.4 Hasil Implementasi Program Kalkulator Algoritma-algoritma khusus pencarian akar kompleks polinomial seperti rumus kuadrat (Alg 2.1), Cardano (Alg2.2), Viete’s (Alg 2.3), Bairstow (Alg 2.4), revisi Bairstow (2.5), dan Muller (Alg 2.6) diimplementasikan dalam bahasa Java. Antarmuka program kalkulator dibuat sederhana untuk memudahkan pengguna. Tampilan antarmuka implementasi program kalkulator pencarian akar kompleks polinomial derajat n dapat dilihat pada Gambar 4.24. keterangan lebih lanjut mengenai program dapat dilihat pada Lampiran 1.
Gambar 4.24 Antarmuka Program Kalkulator Pencarian Akar Kompleks Polinomial Derajat n
commit to user
119 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.5 Pengujian Program Kalkulator dengan Metode Black Box Pengujian perangkat lunak dilakukan secara manual menggunakan balck box testing. Tujuan dilakukannya pengujian adalah untuk mengetahui kualitas kinerja program kalkulator, mengetahui apakah semua fungsional telah berjalan seperti seharusnya. Pengujian balck box dilakukan dengan menginputkan data-data yang mungkin diinputkan oleh pengguna. Pengujian balck box dilakukan pada seluruh fungsional-fungsional yang terdapat pada program kalkulator. Tabel 4.20 menunjukkan hasil pengujian program kalkulator dengan menggunakan metode black box.
commit to user
Menginputkan koefisien variabel x tetapi
tidak lengkap (terdapat variabel yang
kosong) dan mengklik button
Mencari akar
kompleks polinomial
derajat 2
tidak lengkap (terdapat variabel yang
kosong) dan mengklik button
kompleks polinomial
derajat 2
notifikasi ‘Input tidak
‘Input tidak tepat’
kompleks pendekatan Matlab, dan galat perhitungan
dengan algoritma, akar kompleks pendekatan Matlab, dan galat perhitungan
button ‘Penyelesaian dengan Rumus
Kuadrat’
derajat 2
dengan algoritma, akar
kompleks perhitungan
kompleks perhitungan
lengkap sesuai format dan mengklik
kompleks polinomial
Berhasil menampilkan akar
Menginputkan koefisien variabel x
Menampilkan akar
notifikasi ‘Input tidak
‘Input tidak tepat’
tepat’
Berhasil menampilkan
Menampilkan notifikasi
tepat’
Berhasil menampilkan
Menampilkan notifikasi
Mencari akar
‘Penyelesaian dengan Rumus Kuadrat’
Menginputkan koefisien variabel x tetapi
Mencari akar
‘Penyelesaian dengan Rumus Kuadrat’
dengan Rumus Kuadrat’
derajat 2
tepat’
notifikasi ‘Input tidak
‘Input tidak tepat’
dan mengklik button ‘Penyelesaian
kompleks polinomial
Hasil Berhasil menampilkan
Output Menampilkan notifikasi
Input
Tidak menginputkan koefisien variabel x
Deskripsi
Mencari akar
commit to user
4
3
2
1
No
Tabel 4.20 Pengujian Program Kalkulator Menggunakan Metode Black Box
120
Sukses
Sukses
Sukses
Sukses
Ket.
perpustakaan.uns.ac.id digilib.uns.ac.id
8
7
6
5
No
memilih algoritma dan mengklik button
‘OK’
Menginputkan koefisien variabel x tetapi
tidak lengkap (terdapat variabel yang
kosong), memilih algoritma dan mengklik
kompleks polinomial
derajat 3
Mencari akar
kompleks polinomial
derajat 3
dengan algoritma, akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
dengan algoritma, akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
dan mengklik button ‘OK’
derajat 3
kompleks perhitungan
kompleks perhitungan
Berhasil menampilkan akar
lengkap sesuai format, memilih algoritma
Menampilkan akar
notifikasi ‘Input tidak
‘Input tidak tepat’
tepat’
Berhasil menampilkan
Menampilkan notifikasi
kompleks polinomial
dan mengklik button ‘OK’
derajat 3
notifikasi ‘Input tidak
‘Input tidak tepat’ tepat’
Berhasil menampilkan
Menampilkan notifikasi
Menginputkan koefisien variabel x
tidak sesuai format, memilih algoritma
kompleks polinomial
notifikasi ‘Input tidak
‘Input tidak tepat’ tepat’
Berhasil menampilkan
Hasil
Menampilkan notifikasi
Output
Mencari akar
Menginputkan koefisien variabel x tetapi
commit to user
Mencari akar
button ‘OK’
Tidak menginputkan koefisien variabel x,
Input
Mencari akar
Deskripsi
Tabel 4.20 Lanjutan Pengujian Program Kalkulator Menggunakan Metode Black Box
121
Sukses
Sukses
Sukses
Sukses
Ket.
perpustakaan.uns.ac.id digilib.uns.ac.id
12
11
10
9
No
memilih algoritma dan mengklik button
‘OK’
Menginputkan koefisien variabel x tetapi
tidak lengkap (terdapat variabel yang
kosong), memilih algoritma dan mengklik
kompleks polinomial
derajat 4
Mencari akar
kompleks polinomial
derajat 4
dengan algoritma, akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
dengan algoritma, akar kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
dan mengklik button ‘OK’
derajat 4
kompleks perhitungan
kompleks perhitungan
Berhasil menampilkan akar
lengkap sesuai format, memilih algoritma
Menampilkan akar
notifikasi ‘Input tidak
‘Input tidak tepat’
tepat’
Berhasil menampilkan
Menampilkan notifikasi
kompleks polinomial
dan mengklik button ‘OK’
derajat 4
notifikasi ‘Input tidak
‘Input tidak tepat’ tepat’
Berhasil menampilkan
Menampilkan notifikasi
Menginputkan koefisien variabel x
tidak sesuai format, memilih algoritma
kompleks polinomial
notifikasi ‘Input tidak
‘Input tidak tepat’ tepat’
Berhasil menampilkan
Hasil
Menampilkan notifikasi
Output
Mencari akar
Menginputkan koefisien variabel x tetapi
commit to user
Mencari akar
button ‘OK’
Tidak menginputkan koefisien variabel x,
Input
Mencari akar
Deskripsi
Tabel 4.20 Lanjutan Pengujian Program Kalkulator Menggunakan Metode Black Box
122
Sukses
Sukses
Sukses
Sukses
Ket.
perpustakaan.uns.ac.id digilib.uns.ac.id
Berhasil menampilkan
Menampilkan notifikasi ‘Input tidak tepat’
Menginputkan derajat polinomial tidak
sesuai format dan mengklik button ‘OK’
Mencari akar
kompleks polinomial
Menginputkan koefisien variabel x tetapi
tidak sesuai format, memilih algoritma
dan mengklik button ‘OK’
kompleks polinomial
derajat n
‘OK’
derajat n
Mencari akar
notifikasi ‘Input tidak
‘Input tidak tepat’
memilih algoritma dan mengklik button
kompleks polinomial
notifikasi ‘Input tidak
‘Input tidak tepat’
tepat’
Berhasil menampilkan
Menampilkan notifikasi
tepat’
Berhasil menampilkan
Menampilkan notifikasi
penyelesaian
pilihan algoritma
Tidak menginputkan koefisien variabel x,
algoritma penyelesaian
Mencari akar
derajat n
kompleks polinomial
format dan mengklik button ‘OK’
Berhasil menampilkan
Menampilkan pilihan
Mencari akar
Menginputkan derajat polinomial sesuai
tepat’
derajat n
notifikasi ‘Input tidak
tepat’
derajat n
notifikasi ‘Input tidak
‘Input tidak tepat’
dan mengklik button ‘OK’
kompleks polinomial
Hasil Berhasil menampilkan
Output Menampilkan notifikasi
Input
Tidak menginputkan derajat polinomial
Deskripsi
Mencari akar
commit to user
17
16
15
14
13
No
Tabel 4.20 Lanjutan Pengujian Program Kalkulator Menggunakan Metode Black Box
123
Sukses
Sukses
Sukses
Sukses
Sukses
Ket.
perpustakaan.uns.ac.id digilib.uns.ac.id
19
18
No
kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
kompleks pendekatan Matlab, galat perhitungan, dan jumlah iterasi
Mengklik tab ‘About’
Melihat petunjuk program kalkulator dan petunjuk penggunaan
peggunaan dan
informasi program
Menampilkan informasi
dengan algoritma, akar
dengan algoritma, akar
dan mengklik button ‘OK’
derajat n
penggunaan
kalkulator dan petunjuk
informasi program
Berhasil menampilkan
kompleks perhitungan
kompleks perhitungan
lengkap sesuai format, memilih algoritma
Berhasil menampilkan akar
Hasil
kompleks polinomial
Menampilkan akar
Output
Menginputkan koefisien variabel x
Input
Mencari akar
Deskripsi
Tabel 4.20 Lanjutan Pengujian Program Kalkulator Menggunakan Metode Black Box
124
Sukses
Sukses
Ket.
perpustakaan.uns.ac.id digilib.uns.ac.id
commit to user
125 digilib.uns.ac.id
perpustakaan.uns.ac.id
Hasil pengujian program kalkulator dengan menggunakan metode black box menunjukkan seluruh fungsional pada program kalkulator dapat berfungsi sebagaimana mesinya. Dari seluruh fungsional dengan jumlah keseluruhan 17 kasus uji, 100% fungsional sistem dapat berjalan dengan baik. Hasil pengujian dapat dilihat pada Tabel 4.21 berikut ini :
Tabel 4.21 Ringkasan Pengujian Program Kalkulator dengan Metode Black Box No
1
Deskripsi
Mencari akar kompleks polinomial derajat 2
2
Mencari akar kompleks polinomial derajat 3
3
Mencari akar kompleks polinomial derajat 4
4
Mencari akar kompleks polinomial derajat n
5
Jumlah
Hasil
Kasus Uji
Diterima
Tidak diterima
4
4
0
4
4
0
4
4
0
6
6
0
1
1
0
19
19
0
Melihat petunjuk penggunaan dan informasi program
Jumlah
4.6 Penyelesaian Sampel Polinomial dan Analisa Perbandingan Galat Setelah program kalkulator pencarian akar kompleks polinomial dibangun, masing-masing sampel-sampel polinomial yang telah ditentukan dicari akar-akar kompleksnya menggunakan masing-masing algoritma yang tersedia pada program kalkulator. Hasil perhitungan berupa akar-akar kompleks, galat, dan jumlah iterasi. Hasil perhitungan sampel-sampel polinomial menggunakan kalkulator pencarian akar kompleks polinomial dijabarkan lebih rinci di bawah ini :
commit to user
126 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.1 Polinomial Derajat Dua Hasil perhitungan sampel polinomial derajat dua menggunakan kalkulator pencarian akar kompleks polinomial derajat dua dan galat perhitungan dijabarkan dalam Tabel 4.22. Tabel 4.22 Hasil Pencarian Akar Kompleks Polinomial Derajat Dua Menggunakan Rumus Kuadrat No
1.
2.
3.
4.
5.
Sampel
Perhitungan Rumus Kuadrat
Perhitungan Matlab
Polinomial
Akar
Galat(%)
Akar
ݔଶ ͳͺ ݔ ͺͳ
-9.0
1.409765E-6
-9.000000
-9.0
1.409765E-6
-8.999999
15.0
0.0
15.0+0.0i
-2.0
0.0
-2.0+0.0i
ݔଶ െ ͳ͵ ݔെ ͵Ͳ ݔଶ ͳͲ ݔെ ͳͶ ݔଶ ͷ ݔ ͳͳ ݔଶ െ ͵ ݔ ͷ
-11.244998
1.783497E-14
-11.244998
1.244998
1.579686E-14
1.244998
-2.5+2.179449i 2.146547E-13
-2.500000+2.179449i
-2.5-2.179449i
2.146547E-13
-2.500000-2.179449i
1.5+1.65831i
9.930137E-15
1.500000+1.658312i
1.5-1.65831i
9.930137E-15
1.500000-1.658312i
Pada penyelesaian persamaan polinomial derajat dua menggunakan rumus kuadrat (Alg 2.1), diketahui bahwa galat yang dihasilkan sangat kecil yakni dibawah 1%. Galat terkecil yang dihasilkan mencapai 0.0% terjadi pada perhitungan sampel persamaan ݔଶ െ ͳ͵ ݔെ ͵Ͳ, sedangkan galat yang dihasilkan pada pencarian akar kompleks polinomial pada keempat sampel lainnya berada antara 1.409765E-6% hingga 9.930137E-15%. Namun, secara keseluruhan, rumus kuadrat sangat baik digunakan untuk menyelesaikan persamaan polinomial derajat dua dengan rata-rata galat yang dihasilkan dari kelima sampel di atas adalah sebesar 2.81952966549601E-07%. Rata-rata galat tersebut didapat dari jumlah seluruh galat yang dihasilkan pada kelima sampel kemudian dibagi banyaknya akar yang dihasilkan dari kelima sampel yaitu sebanyak 10 akar.
commit to user
127 digilib.uns.ac.id
perpustakaan.uns.ac.id
4.3.2 Polinomial Derajat Tiga Penyelesaian sampel-sampel persamaan polinomial derajat tiga menggunakan perhitungan Matlab, algoritma Cardano, Viete’s, Bairstow, dan revisi Bairstow serta galat yang dihasilkan dari perhitungan tertera dalam Tabel 4.23.
commit to user
2.
1.
No
0.0
-0.513451
commit to user
െ ʹ ݔ
ݔଷ ͵ ݔଶ
5.423440
E-14
0.476836-
1.242229i
1.242229i
1.476836+
2.096412E-16i
E-14
1.242229i
1.242229i
E-14 -2.953672-
1.476836-
1.123232
2.291622i
1.590059+
2.750847E-16i
75.153861
25.292943
75.153861
55.160452
160.970199
55.160452
Galat (%)
Viete’s
0.476836+ 5.423441
-3.953672
E-14
2.291622i
-3.180118-
1.837212
4.256726-
ͳʹ
2.291622i
E-14
2.291622i
ͳͻݔ
Akar 1.590060-
Galat (%)
4.256726+ 1.837212
Akar
Cardano
ݔଷ െ ͺ ݔଶ
Polinomial
Sampel Galat (%)
E-8
2.570782
E-9
2.957732
E-14
4.108131
E-14
1.242229i
0.476836-
1.242229i
E-14
5.277054
E-14
0.476836+ 5.277054
-3.953672
-0.513451
2.291622i
4.256726-
2.291622i
4.256726+ 4.108131
Akar
Bairstow
5
5
1
1
16
16
Iterasi
Galat (%)
Revisi Bairstow
0.0
E-11
3.779656
E-14
4.108131
E-14
1.242229i
0.476836-
1.242229i
E-14
6.993341
E-14
0.476836+ 6.993341
-3.953672
-0.513451
2.291622i
4.256726-
2.291622i
4.256726+ 4.108131
Akar
Tabel 4.23 Hasil Pencarian Akar Kompleks Polinomial Derajat Tiga
6
6
1
1
171339
171339
Iterasi
128
1.242229i
0.476836-
1.242229i
0.476836+
-3.953672
-0.513452
2.291622i
4.256726-
2.291622i
4.256726+
Akar
Matlab
perpustakaan.uns.ac.id digilib.uns.ac.id
5.
4.
3.
No
8.548717
E-13
-0.5-
0.866025i
4.440892E-16i 2.969442+ 5.551115E-17i
6.192596
E-14
ݔଷ െ Ͷ ݔଶ
െ ʹ ݔ ͵
0.697224
-1.000000
4.302776
E-14
-0.636109
2.220446E-16i
E-14
4.777041
-2.3333333-
2.220446
2.220446E-16i
E-14
E-14
-1.000000
-2.333333-
8.881784
-0.333333+
2.666666
NaN+NaNi
NaN+NaNi
NaN+NaNi
Akar
36.389103
133.333333
30.987750
66.666666
22.222222
33.333333
NaN+NaNi
NaN+NaNi
NaN+NaNi
Galat (%)
Viete’s
commit to user
െ ͷ ݔെ
-3.0
0.0
E-13
0.866025i
2.0
8.548717
E-14
4.440892
Galat (%)
-0.5+
-2.0
Akar
Cardano
2.220446
ݔଷ ʹ ݔଶ
͵ ݔ ʹ
ݔଷ ͵ ݔଶ
Polinomial
Sampel
0.697224
-1.0
4.302776
-1.0
-3.000000
2.0
0.866025i
-0.5-
0.866025i
-0.5+
-2.000000
Akar
E-14
3.184694
0.0
E-14
4.128398
E-14
4.440892
E-11
4.787282
0.0
E-13
8.548717
E-13
8.548717
E-10
2.279066
Galat (%)
Bairstow
5
5
1
7
1
7
17
17
1
Iterasi
0.697224
-1.0
4.302776
-1.0
-3.0
2.0
0.866025i
-0.5-
0.866025i
-0.5+
E-14
3.184694
0.0
E-10
9.583662
E-14
4.440892
E-14
8.881784
0.0
E-13
8.770762
E-13
8.770762
E-7
2.216681
Galat (%)
Revisi Bairstow
-2.000000
Akar
Tabel 4.23 Lanjutan Hasil pencarian akar kompleks polinomial derajat tiga
4
4
1
3
1
3
5
5
1
Iterasi
129
0.697224
-1.0+0.0i
4.302776
-1.000000
-3.000000
2.0
0.866025i
-0.5-
0.866025i
-0.5+
-1.999999
Akar
Matlab
perpustakaan.uns.ac.id digilib.uns.ac.id
130 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.24 Rata-Rata Galat Pencarian Akar Kompleks Polinomial Derajat Tiga Algoritma Cardano Viete’s Bairstow Revisi Bairstow
Rata-Rata galat (%) 1.43568059121049E-13 64.15201457 1.92955658379859E-09 1.48444243802628E-08
Rata-rata galat pencarian akar kompleks polinomial derajat tiga didapat dari jumlah seluruh galat yang dihasilkan dibagi dengan banyaknya akar yang dihasilkan dari lima sampel polinomial. Berdasarkan Tabel 4.24, diketahui bahwa dalam pencarian akar kompleks polinomial derajat tiga, algoritma Cardano lebih unggul dibandingkan algoritma lainnya. Hal ini dikarenakan algoritma Cardano memiliki galat paling rendah dan cukup stabil. Cardano dengan rata-rata 1.43568059121049E-13% Rata-rata jumlah iterasi yang dilakukan oleh algoritma Bairstow dalam melakukan pencarian akar-akar kompleks polinomial adalah 10, sedangkan ratarata jumlah iterasi revisi algoritma Bairstow adalah 34271. Berdasarkan rata-rata jumlah iterasi tersebut, algoritma Bairstow lebih cepat dalam menemukan akar-akar polinomial derajat tiga. Hal ini dikarenakan, pada penyelesaian persamaan ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ, revisi algoritma Bairstow memerlukan 171339 iterasi untuk menemukan nilai akar yang konvergen, sedangkan algoritma Bairstow hanya memerlukan 16 iterasi saja. Pembahasan lebih lanjut mengenai masing-masing algoritma dijelasakan di bawah ini : x
Algoritma Cardano Galat
yang
dihasilkan
dari
penyelesaian
sampel-sampel
polinomial
menggunakan algoritma Cardano berada pada range 0.0% hingga 8.548717E13%. Galat yang dihasilkan dari perhitungan algoritma Cardano dapat dikatakan stabil, karena nilai galat yang dihasilkan hampir sama dan sangat kecil yaitu mendekati nol. Pada implementasinya, penyelesaian algoritma Cardano dibedakan menjadi dua cara berdasarkan nilai diskriminan yang dihasilkan seperti yang telah dijelaskan pada Alg 2.2, yaitu :
commit to user
131 digilib.uns.ac.id
perpustakaan.uns.ac.id
a. Apabila diskriminan ≥ 0, maka penyelesaian dilakukan dengan mencarin
nilai u dan v. Akar polinomial didapat dari ݔଵ ൌ െ ଷ ݑ ݒ
ݔଶǡଷ ൌ െ ଷ െ
௨ା௩
േ ξ͵
ଶ
௨ି௩ ଶ
dan
݅, sehingga menghasilkan dua akar kompleks.
b. Apabila diskriminan < 0 (irreducible case), maka penyelesaian dilakukan dengan menggunakan trigonometri, dimana akar-akar polinomial didapat dari : ݔଵ ൌ െ ଷ ʹ ή ට
ȁȁ
ݔଶ ൌ െ െ ʹ ή ට
ȁȁ
ଷ
ଷ
ȁȁ
ଷ
ఝ
ቀ ଷ ቁ ఝିగ
ቀ
ଷ
ఝାగ
ݔଷ ൌ െ ଷ െ ʹ ή ට ଷ
ቀ
ଷ
ቁ ቁ
Tabel 4.22 menunjukkan bahwa galat pencarian akar kompleks polinomial derajat tiga menggunakan algoritma Cardano mencapai 0.0% pada persamaan ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ dan ݔଷ ʹ ݔଶ െ ͷ ݔെ . Penyelesaian persamaan ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ menghasilkan nilai diskriminan yaitu 152.56, sedangkan persamaan ݔଷ ʹ ݔଶ െ ͷ ݔെ menghasilkan nilai diskriminan yaitu -8.33 (irreducible case). Dengan demikian, maka tingkat ketelitian algoritma Cardano tidak dipengaruhi oleh cara yang digunakan untuk menyelesaikan persamaan polinomial karena galat mencapai 0.0% pada sampel dengan nilai diskriminanya lebih dari dan kurang dari 0. x
Algoritma Viete’s Penyelesaian persamaan polinomial derajat tiga menggunakan algoritma Viete’s tidak direkomendasikan, karena galat perhitungan yang dihasilkan sangat besar yakni berada pada kisaran 22.222222% hingga 160.970199%. Berdasarkan Tabel 4.22, algoritma Viete’s tidak dapat menyelesaikan persamaan ݔଷ ͵ ݔଶ ͵ ݔ ʹ. Berikut ini merupakan pembahasan lebih rinci penyelesaian persamaan ݔଷ ͵ ݔଶ ͵ ݔ ʹ : 1. Berdasarkan bentuk persamaan polinomial derajat tiga, ݔଷ ݔݎଶ ݔݏ ݐ, maka nilai variabel-variabel pada persamaan ݔଷ ͵ ݔଶ ͵ ݔ ʹ adalah : r = 3, s = 3, t = 2
commit to user
132 digilib.uns.ac.id
perpustakaan.uns.ac.id
2. Mensubtitusikan ݕൌ ݔ pada persamaan ݔଷ ͵ ݔଶ ͵ ݔ ʹ, sehingga ଷ
mengasilkan persamaan tereduksi ݕଷ ݕ ݍൌ Ͳ. Berikut merupakan perhitungan nilai p dan q : ൌ
͵ ݏെ ݎଶ ͵ሺ͵ሻ െ ሺ͵ሻଶ ͻ െ ͻ Ͳ ൌ ൌ ൌ ൌͲ ͵ ͵ ͵ ͵
ʹሺ͵ሻଷ ሺ͵ሻሺ͵ሻ ͷͶ ͻ ʹ ݎଷ ݏݎ െ ݐൌ െ ʹൌ െ ʹൌ ʹെ͵ʹൌͳ ݍൌ ͵ ͵ ʹ ͵ ʹ ʹ 3. Menghitung nilai masing-masing variable yang diperlukan dalam pencarian akar kompleks polinomial menggunakan algoritma Viete’s ݀ൌ
െ െͲ ൌ ൌͲ ͵ ͵
ଷ ݍଶ ͳ Ͳଷ ͳଶ ݍ ඨ ඨ ൌെ ൌ െͲǤͷ ξͲ ͲǤʹͷ ܿ ൌെ ʹ ʹ Ͷ ʹ Ͷ ʹ ܿ ൌ െͲǤͷ ͲǤͷ ൌ Ͳ 4. Menentukan nilai r య
య
ݎൌ ξܿ ൌ ξͲ ൌ Ͳ 5. Menghitung nilai akar polinomial pertama dengan perhitungan sebagai berikut : ݔଵ ൌ ݎ
݀ Ͳ ൌ Ͳ ݎ Ͳ
6. Kedua akar polinomial lainnya didapat dengan menggunakan nilai variabel ଵ
ଵ
ଵ
ଵ
߱ଵ ൌ െ ଶ ଶ ξ͵݅ dan ߱ଶ ൌൌ െ ଶ െ ଶ ξ͵݅. Berikut detail perhitungannya : ଵ
ଵ
ଵ
ଵ
x
߱ଵ ݎൌ ቀെ ଶ ଶ ξ͵݅ቁ Ͳ כൌ Ͳ
x
߱ଶ ݎൌ ቀെ ଶ െ ଶ ξ͵݅ቁ Ͳ כൌ Ͳ
x
ݔଶ ൌ ߱ଵ ݎ ఠ ൌ Ͳ
x
ௗ
భ
ௗ
ݔଷ ൌ ߱ଵ ݎ ఠ
భ
ൌ Ͳ
Berdasarkan perhitungan di atas, diketahui bahwa nilai variabel p = 0 sehingga mengakibatkan perhitungan lainnya menghasilkan nilai nol. Pada perhitungan perhitungan akar kompleks, ݔଵ ǡ ݔଶ ǡ ݔଷ , terdapat kesalahan perhitungan dimana semua variabel bernilai nol. Pemrograman Java tidak dapat menangai kondisi commit to user tersebut sehingga menghasilkan nilai NaN (Not a Number).
perpustakaan.uns.ac.id
x
133 digilib.uns.ac.id
Algoritma Bairstow Dalam pencarian akar kompleks polinomial menggunakan algoritma Bairstow, polinomial akan direduksi secara bertahap. Seperti yang telah dijelaskan pada Alg 2.4, reduksi polinomial dilakukan setelah memenuhi persamaan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ dan iterasi dihentikan. Nilai u dan v yang didapat kemudian disubstitusikan pada persamaan berikut untuk mendapatkan polinomial tereduksi :
Berdasarkan bentuk persamaan di atas, diketahui bahwa terdapat polinomial kuadrat yang terbentuk dari nilai u dan v. Polinomial kuadrat ini kemudian diselesaikan menggunakan rumus kuadrat untuk mendapatkan dua akar kompleks polinomial. Pencarian akar berikutnya dilakukan dengan mencari nilai u dan v dari polinomial tereduksi yang terbentuk yang memenuhi ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ. Polinomial kemudian akar direduksi kembali hingga semua akar ditemukan. Dalam penyelesaian polinomial kubik, polinomial akan direduksi menjadi polinomial kuadrat dan sisa (remainder), sehingga dua akar didapat dari polinomial kuadrat dan satu akar didapat dari sisa. Berdasarkan Tabel 4.22 diketahui bahwa galat perhitungan mencapai 0.0% pada akar 2.0 untuk persamaan ݔଷ ʹ ݔଶ െ ͷ ݔെ dimana akar 2.0 berasal dari sisa (remainder) yang dihasilkan, sedangkan persamaan ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵ mencapai galat 0.0% pada pencarian akar -1.0 dimana -1.0 didapat dari perhitungan polinomial kuadrat yang dihasilkan. Dengan demikian, galat 0.0% muncul pada perhitungan polinomial kuadrat maupun sisa, sehingga ketelitian algoritma Bairstow tidak dipengaruhi oleh penyelesaian polinomial kuadrat. Selain itu, banyaknya iterasi tidak dipengaruhi oleh besarnya koefisien masingmasing variabel x yang menyusun persamaan polinomial. Hal ini dikarenakan berdasarkan Tabel 4.22, iterasi terbanyak dilakukan dalam penyelesaian persamaan ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ dan ݔଷ ͵ ݔଶ ͵ ݔ ʹ yang memiliki maksimal iterasi 16 dan 17. commit to user
134 digilib.uns.ac.id
perpustakaan.uns.ac.id
x
Revisi algoritma Bairstow Seperti algoritma Bairstow, akar-akar kompleks polinomial Bairstow didapat dari polinomial kuadrat hasil reduksi. Hal ini telah dijelaskan pada Alg 2.5. Pada pencarian akar kompleks polinomial derajat tiga dengan menggunakan revisi algoritma Bairstow, galat perhitungan mencapai 0.0% pada tiga sampel polinomial
yaitu
pada
akar
-3.953672
persamaan
untuk
ݔଷ ͵ ݔଶ െ ʹ ݔ , pada akar 2.0 untuk persamaan ݔଷ ʹ ݔଶ െ ͷ ݔെ dan pada akar -1.0 untuk persamaan ݔଷ െ Ͷ ݔଶ െ ʹ ݔ ͵. Namun, persamaan ݔଷ ͵ ݔଶ െ ʹ ݔ menghasilkan akar -3.953672 dari sisa hasil reduksi. Sedangkan pada kedua persamaan lainnya, galat mencapai 0.0% pada akar dari polinomial kuadrat hasil reduksi. Dengan demikian, maka ketelitian algoritma Bairstow tidak dipengaruhi oleh penyelesaian polinomial kuadrat yang dilakukan. Berdasarkan
data
dalam
Tabel
4.22
diketahui
bahwa
persamaan
ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ melakukan sebanyak 171339 kali perulangan untuk mendapatkan akar nilai akar yang konvergen. Berikut merupakan detail perhitungannya : Pencarian akar 1 dan 2 Iterasi 1 1. Menentukan nilai variabel u dan v sama dengan nol ( ݑ ൌ ݒ ൌ Ͳ ). 2. Menghitung nilai ܾଵ ǡ ܾଶ ǡ ǥ ǡ ܾ menggunakan rumus ܾ ൌ ܽ െ ܾିଵ ݑെ ܾିଶ ݒdengan pembagian sintesis : ܾ ൌ ܽ ൌ ͳ ܾଵ ൌ ܽଵ െ ܾ ݑൌ െͺ െ ሺͳ Ͳ כሻ ൌ െͺ ܾଶ ൌ ܽଶ െ ܾଵ ݑെ ܾ ݒൌ ͳͻ െ ሺെͺ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳͻ ܾଷ ൌ ܽଷ െ ܾଶ ݑെ ܾଵ ݒൌ ͳʹ െ ሺͳͻ Ͳ כሻ െ ሺെͺ Ͳ כሻ ൌ ͳʹ 3. Dari nilai u, v, dan b, langkah yang harus dilakukan selanjutnya adalah menghitung nilai ܿଵ ǡ ܿଶ ǡ ǥ ǡ ܿିଵ dengan rumus ܿ ൌ ܾ െ ܿିଵ ݑെ ܿିଶ ݒ. Berikut detail perhitungan : ܿ ൌ ܾ ൌ ͳ ܿଵ ൌ ܾଵ െ ܿ ݑൌ െͺ െ ሺͳ Ͳ כሻ ൌ െͺ ܿଶ ൌ ܾଶ െ ܿଵ ݑെ ܿ ݒൌ ͳͻ െ ሺെͺ Ͳ כሻ െ ሺͳ Ͳ כሻ ൌ ͳͻ commitmenghitung to user 4. Nilai ο ݑdan ο ݒdidapat dengan persamaan berikut:
135 digilib.uns.ac.id
perpustakaan.uns.ac.id
ο ݑൌ ο ݑൌ ο ݒൌ ο ݒൌ 5.
షయ ฬ షభ ฬ షమ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
ൌ
ሺሺଵଽሻήሺି଼ሻሻିሺଵήଵଶሻ
ିଵସ
൫ሺି଼ሻήሺି଼ሻ൯ିሺήଵሻ
ൌ
షభ షమ ฬ ሺషభ ିషభ ሻ షమ షయ ቚ ቚሺ షభ ିషభ ሻ షమ
ฬ
ሺሺି଼ሻήଵଶሻିሺήሺଵଽሻሻ
ସ
ൌ
ൌ
൫ሺି଼ሻήሺି଼ሻ൯ିሺήଵሻ
బ ฬ మ ฬ య భ బ భ ቚ ି ቚ మ మ భ
ൌ െʹǤͷʹͷ
మ ฬ భ ฬ మ ିమ య బ భ ቚ ି ቚ మ మ భ
ିଽ ସ
ൌ
ଵଽ ଵ ቚ ଵଶ ି଼ ି଼ ଵ ቚ ቚ ି଼ ቚ
ൌ
ି଼ ଵଽ ቚ ଵଶ ି଼ ଵ ቚ ቚ ି଼ ቚ
ൌ െͳǤͷ
Menghitung nilai u dan v untuk perhitungan iterasi berikutnya dengan menggunakan rumus :ݑାଵ ൌ ݑ οݑ ݀ܽ݊ݒାଵ ൌ ݒ οݒ . ݑଶ ൌ ݑଵ οݑଵ ൌ Ͳ ሺെʹǤͷʹͷሻ ൌ െʹǤͷʹͷ ݒଶ ൌ ݒଶ οݒଶ ൌ Ͳ ሺെͳǤͷሻ ൌ െͳǤͷ
6. Melakukan pengecekkan terhadap ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ ȁെʹǤͷʹͷȁ ȁെͳǤͷȁ ൏ ͲǤͲͲͲͲͲͲͲͳ ͶǤͲʹͷ ൏ ͲǤͲͲͲͲͲͲͲͳ → belum terpenuhi, maka dilakukan iterasi kedua Iterasi berikutnya dilakukan dengan mengulang langkah 2 hingga 6. Hasil iterasi ditampilkan pada Tabel 4.25. Tabel 4.25 Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Revisi Algoritma Bairstow pada Penyelesaian ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ Iterasi
U
ke-
ο࢛
v
ο࢜
1
0
0
-2.5625
-1.5
2
-2.5625
-1.5
-2.79835199
-1.47885572
3
-5.36
-2.98
2.44098917
1.18712391
4
-2.92
-1.79
-3.61192005849
-1.84431017106
5
-6.53
-3.64
2.33195565802
1.23795570541
6
-4.2
-2.4
6.01307421653
3.03486541070
7
1.81
0.64
-3.25168331978
-1.64861506661
8
-1.44
-1.01
-2.29233695302
-1.17048974620
9
-3.73
-2.18
-215.68245926834 commit to user
-110.88015606237
136 digilib.uns.ac.id
perpustakaan.uns.ac.id
Tabel 4.24 Lanjutan Nilai u, v, οݑ, dan ο ݒMasing-Masing Iterasi Menggunakan Revisi Algoritma Bairstow pada Penyelesaian ݔଷ െ ͺ ݔଶ ͳͻ ݔ ͳʹ Iterasi
U
v
10
-219.14
-113.06
107.84732098746
55.44316617721
11
-111.57
-57.62
53.93584602999
27.72775678494
12
-57.63
-29.89
26.99231522405
13.87621870729
13
-30.64
-16.02
13.54510587062
6.96278519647
14
-17.09
-9.05
6.87176126488
3.53083934664
15
-10.22
-5.52
3.64583852339
1.86043189473
ke-
ڭ 85000 ڭ 171339
ڭ 40.16 ڭ -8.51
∆࢛ ࢛
ڭ
∆࢜ ࢜
ڭ
20.35
-22.01241278044
ڭ 23.37
ڭ -11.30230595491
ڭ
ڭ
1.93940422357E-13
6.04767795794E-13
Berdasarkan perhitungan diatas, diketahui bahwa untuk menghasilkan nilai konvergen dimana nilai ο ݑdan ο ݒmendekati nol dan ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ memerlukan banyak perulangan. Hal ini terjadi pada kasus-kasus tertentu, seperti salah satunya pada persamaan polinomial ini dimana persamaan memiliki nilai variabel lebih besar dibandingkan sampel lainnya ini. Kombinasi variabel pada persamaan polinomial juga dapat mempengaruhi banyaknya iterasi yang dilakukan untuk mendapat nilai yang konvergen.
4.3.3 Polinomial Derajat Empat Penyelesaian sampel-sampel persamaan polinomial derajat empat dilakukan dengan menggunakan algoritma Bairstow (Alg 2.4), revisi algoritma Bairstow (Alg 2.5), dan algoritma Muller (Alg 2.6) yang telah diimplementasikan dalam program kalkulator pencarian akar kompleks polinomial. Hasil pencarian akar-akar kompleks polinomial derajat empat tertera dalam Tabel 4.26.
commit to user
2.
1.
No
commit to user
ͳ
ʹ ݔଶ െ ݔ
ݔସ െ ʹ ݔଷ
െͳ
െ ݔଶ ݔ
ݔସ ݔଷ
Polinomial
Sampel
1.678508i
7 1.678508i
-0.245876-
1.571447E-13
-0.245876+
-0.245876-
7
0.148276
2.343476
1.678508i
1.571447E-13
-0.245876+
1
1
0.979145i
1.678508i
2.604775E-9
1.434491E-8
0.148276
2.343476
0.979145i
6
0.064830-
3.101672E-14
1.895001E-14
1.871880E-14
9.027433E-9
9.027433E-9
3.006717E-14
3.006717E-14
2.442581E-14
2.138051E-13
Galat
Revisi Bairstow
0.064830+0.
0.064830-
6
0.142799
-7.272459
Akar
979145i
3.101672E-14
0.064830+0.
1
1
Iterasi
979145i
2.442581E-14
3.945675E-12
Galat
0.142799
-7.272459
Akar
Bairstow
6
6
1
1
6
6
1
1
Iterasi
2.343476+0.0i
5.299910E-21i
0.148277-
1.678508i
-0.245876+
1.678508i
-0.245876-
4.676465E-24i
0.142799-
0.979145i
0.064830-
0.979145i
0.064830+
4.715715E-8i
-7.272459+
Akar
Tabel 4.26 Hasil Pencarian Akar Kompleks Polinomial Derajat Empat
0.0
9.359401E-14
1.571447E-13
1.570766E-13
1.943682E-14
3.218310E-05
3.218310E-05
1.148820E-06
Galat
Muller
6
9
2
1
12
46
2
1
Iterasi
137
1.678508i
-0.245876-
1.678508i
-0.245876+
0.148276
2.343476
0.979145i
0.064830-
979145i
0.064830+0.
0.142799
-7.272459
Akar
Matlab
perpustakaan.uns.ac.id digilib.uns.ac.id
4.
3.
No
Akar
4.999999
3.000000
1.0
7.0
1.000000+
Polinomial
ݔସ െ ͳ ݔଷ
ͺ ݔଶ
െ ͳݔ
ͳͲͷ
ݔସ െ ͷ ݔଷ
Sampel
8
2.0
1.776357E-13
8
8
2.0+0.0i
1.0+0.0i
1.0+2.0i
1.776357E-13
1.110223E-13
5.347542E-14
2
2
2
1
1
2
2
1
Iterasi
1.000000-
2.000000i
1.000000+
6.999999
1.0
2.999999
5.000000
Akar
138
1.999999
1.776357E-13
1.110223E-13
1
5.347542E-14
5.033011E-13
0.0
3.045183E-13
6.927792E-13
Galat
2.0
1.0
5.347542E-14
1.0+2.0i
3.0+0.0i
1.0+0.0i
7.0+0.0i
5.0+0.0i
Akar
1.000000
8
1.0-2.0i
1
1
8
8
1
Iterasi
1.332268E-13
1
5.347542E-14
2.543601E-9
0.0
6.217249E-13
9.076802E-10
Galat
Matlab
0.999999
3.580362E-14
1.0+2.0i
6.999999
1.0
3.000000
5.000000
Akar
Muller
2.000000i
1.000000-
െ ͳͻ ݔ ͳͲ
1
9
9
1
1
Iterasi
Revisi Bairstow
2.0i
2.0i
commit to user
ͳ͵ ݔଶ
3.580362E-14
3.045183E-13
0.0
2.085467E-7
2.212001E-7
Galat
Bairstow
Tabel 4.26 Lanjutan hasil pencarian akar kompleks polinomial derajat empat
perpustakaan.uns.ac.id digilib.uns.ac.id
139 digilib.uns.ac.id
perpustakaan.uns.ac.id
Berikut ini merupakan analisa masing-masing algoritma untuk penyelesaian persamaan polinomial derajat empat : x
Algoritma Bairstow Penyelesaian persamaan polinomial derajat empat menggunakan algoritma Bairstow cukup baik. Hal ini dikarenakan galat perhitungan berkisar antara 0.0% hingga 2.212001E-7%. Galat mencapai 0.0% pada penyelesaian persamaan ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ dimana persamaan tersebut memiliki nilai-nilai koefisien lebih besar dibandingkan dengan sampel lainnya. Dengan demikian, ketelitian algoritma Bairstow tidak dipengaruhi oleh besar kecilnya koefisien yang menyusun suatu persamaan.
x
Revisi Algoritma Bairstow Revisi algoritma Bairstow menghasilkan galat yang sangat rendah yakni 0.0% hingga 9.027433E-9%. Galat mencapai 0.0% terdapat pada pencarian akar persamaan ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ dimana nilai akarnya 1.0. Hal tersebut sama dengan penyelesaian polinomial dengan menggunakan algoritma Bairstow.
x
Algoritma Muller Pencarian akar kompleks polinomial derajat empat menggunakan algoritma Muller menghasilkan galat berkisar 0.0% hingga 3.218310E-05% dengan jumlah maksimal iterasi yang cukup besar yakni mencapai 46 iterasi. Galat mencapai 0.0% pada penyelesaian persamaan ݔସ െ ʹ ݔଷ ʹ ݔଶ െ ݔ ͳ dan ݔସ െ ͳ ݔଷ ͺ ݔଶ െ ͳ ݔ ͳͲͷ. Dengan demikian, besarnya galat tidak dipengaruhi oleh besar kecilnya koefisien masing-masing variabel x.
Tabel 4.27 Rata-Rata Galat dan Iterasi Pencarian Akar Kompleks Derajat Empat Algoritma Bairstow Revisi Bairstow Muller
Rata-rata galat (%) 2.7918843298595E-08 1.34421873307271E-09 4.09468833907407E-06
Iterasi 5 4 6
Berdasarkan Tabel 4.27, diketahui bahwa revisi algoritma Bairstow lebih commit tolainnya user karena memiliki rata-rata galat unggul dibandingkan algoritma-algoritma
perpustakaan.uns.ac.id
140 digilib.uns.ac.id
yang paling kecil. Selain itu, revisi algoritma Bairstow juga menunjukkan performa yang baik dengan rata-rata jumlah iterasi terendah yakni 4.
4.3.4 Polinomial Derajat N Penyelesaian persamaan polinomial derajat n dapat dilakukan dengan berbagai algoritma yang tersedia dalam program kalkulator yaitu algoritmaalgoritma murni seperti algoritma Bairstow (Alg 2.4), revisi algoritma Bairstow (Alg 2.5), dan algoritma Muller (Alg 2.6) maupun kombinasi algoritma. Dasar kombinasi algoritma yang digunakan adalah polinomial tereduksi. Pencarian akar kompleks polinomial menggunakan algoritma Bairstow, revisi algoritma Bairstow, dan Muller dilakukan secara bertahap, dimana polinomial akan direduksi setiap kali akar kompleks ditemukan. Pada algoritma Bairstow dan revisi algoritma Bairstow, reduksi polinomial menghasilkan polinomial kuadrat, dan polinomial tereduksi. Berikut ini merupakan persamaan tereduksi yang dihasilkan:
Pembahasan lebih detail mengenai algoritma Bairstow dan revisi algoritma Bairstow terdapat pada Alg 2.4 dan Alg 2.5. Berdasarkan persamaan di atas, didapat polinomial kuadrat dan polinomial tereduksi. Polinomial kuadrat akan diselesaikan menggunakan rumus kuadrat untuk mendapatkan dua akar kompleks polinomial, sedangkan polinomial tereduksi digunakan kembali untuk mendapatkan nilai u dan v selanjutnya. Setelah melalui beberapa iterasi dan ditemukan nilai u dan v yang memenuhi kondisi ȁοݑାଵ ȁ ȁοݒାଵ ȁ ൏ ߝ, dilakukan reduksi kembali dengan mensubtitusikan hasil perhitungan pada persamaan di atas. Proses ini kemudian dilakukan berulang hingga semua akar didapat. Penyelesaian polinomial menggunakan algoritma Muller dilakukan bertahap. Pencarian satu akar kompleks dilakukan dengan beberapa iterasi hingga ditemukan nilai akar yang konvergen. Setelah didapat akar yang konvergen dan memenuhi syarat ݕ൏ ߝ, maka iterasi dihentikan dan dilakukan reduksi polinomial. Reduksi polinomial pada algoritma Muller dilakukan dengan membagi polinomial sebelumnya dengan akar yang commit ditemukan. Hasil reduksi polinomial berupa to user
141 digilib.uns.ac.id
perpustakaan.uns.ac.id
polinomial tereduksi yang kemudian digunakan dalam pencarian akar selanjutnya. Dengan demikian, reduksi polinomial dilakukan setiap kali akar ditemukan. Proses ini berlanjut hingga semua akar ditemukan. Pada kombinasi algoritma, pencarian akar kompleks dilakukan dengan menggunakan algoritma pertama. Setelah didapat akar polinomial, persamaan polinomial direduksi sehingga menghasilkan polinomial tereduksi. Polinomial tereduksi kemudian digunakan untuk mencari akar kompleks berikutnya. Polinomial akan terus direduksi hingga menghasilkan polinomial kubik atau polinomial kuartik. Penyelesaian polinomial derajat n dimana n merupakan bilangan ganjil akan menghasilkan polinomial kubik setelah melalui beberapa kali reduksi. Polinomial kubik kemudian diselesaikan dengan algoritma penyelesaian polinomial kubik. Penyelesaian polinomial berderajat n dimana n merupakan bilangan genap akan menghasilkan polinomial kuartik. Polinomial kuartik yang dihasilkan dari proses reduksi akan diselesaikan menggunakan algoritma pencarian akar kompleks polinomial kuartik (polinomial derajat tiga). Dengan demikian, maka kombinasi algoritma yang digunakan dibedakan berdasarkan derajat polinomial (n). Kombinasi algoritma dapat dilihat pada Tabel 3.1. Hasil pencarian akar kompleks polinomial derajat n menggunakan algoritma Bairstow, revisi algoritma Bairstow, dan Muller tertera pada Tabel 4.28. Tabel 4.29 menunjukkan hasil pencarian akar kompleks polinomial berderajat ganjil menggunakan kombinasi algoritma, sedangkan Tabel 4.30 menunjukkan hasil pencarian akar kompleks polinomial berderajat genap menggunakan kombinasi algoritma.
commit to user
1.
No
commit to user -4.024945
1.998401E-13
0.999999
32
1.044485
2.551052E-13
1.044485
32
0.505307i
0.505307i
7
2.121439E-12
6.620053E-14
4.251753E-14
-0.602156+ 2.121439E-12
4.820421E-10
-0.602156-
-0.602156+
7 0.505307i
4.820421E-10
0.872559i
9.523163E-9
9.523163E-9
0.505307i
-0.602156-
0.872559i
0.092386-
4
0.092386-
1.446222E-9
0.872559i
0.092386+
0.872559i
4
15
15
7
7
5
5
5.572632E-15i
1.044485+
6.218298E-15i
1.000000-
0.505307i
-0.602156+
0.505307i
-0.602156-
0.872559i
0.092386-
0.872559i
-4.024945+
Akar
0.092386+
1.446222E-9
1
Iterasi
0.092386+
2.185548E-7
Galat
െ ʹ ݔଷ ʹ
1.000000
Akar
3.424238E-8i
1
Iterasi
െ Ͷ ݔହ
7.813826E-9
Galat
Revisi Bairstow
-4.024945
Akar
Bairstow
ݔ ͵ ݔ
Polinomial
Sampel
Tabel 4.28 Hasil Pencarian Akar Kompleks Polinomial Derajat n
5.825269E-13
7.161635E-13
8.192837E-13
7.204360E-13
1.033300E-05
1.033300E-05
9.340089E-07
Galat
Muller
18
13
18
16
126
2
1
Iterasi
142
1.044485
0.999999
0.505307i
-0.602156+
0.505307i
-0.602156-
0.872559i
0.092386-
0.872559i
0.092386+
-4.024945
Akar
Matlab
perpustakaan.uns.ac.id digilib.uns.ac.id
2.
No
-2.243726+
0.742886i
ͶͶ ݔସ
െ ͳͲͺ ݔଷ
4.230974+
4.230974+
ͳͻʹͲ
1.026733
2.162632E-14
1.026733
6
-1.429501
4.659905E-14
-1.429501
6
0.692541i
0.692541i
4.230974-
15
4.230974-
2.504055E-12
0.692540i
0.692541i
15
0.742886i
-2.243726-
0.742886i
0.742886i
2.504055E-12
2.428810E-9
1.383556E-10
Galat
0.0
3.106603E-14
5.773776E-10
5.773776E-10
6.239721E-9
-2.243726+ 6.239721E-9
2.508048
-5.079776
Akar
െ ʹͷݔ
1
1
23
23
Iterasi
Revisi Bairstow
-2.243726-
commit to user
െ ͳͻʹͺ ݔଶ
1.380749E-8
1.380749E-8
5.531531E-11
2.508048
െ ͵ͻ ݔ
͵ ݔହ
Galat
5.979733E-12
Akar
Bairstow
-5.079776
଼ݔെ ݔ
Polinomial
Sampel
6
6
1
1
11
11
11
11
Iterasi
1.026732
-1.429501
0.692541i
4.230975-
692541i
4.230974+0.
0.742889i
-2.243724-
0.742889i
-2.243729+
2.508048
6.697303E-7i
-5.079777-
Akar
Tabel 4.28 Lanjutan Hasil Pencarian Akar Kompleks Polinomial Derajat n
1.081316E-13
1.087311E-13
2.595698E-05
2.101301E-05
1.802509E-04
1.802509E-04
7.082627E-14
1.949266E-05
Galat
Muller
6
9
39
2
82
9
6
1
Iterasi
143
1.026733
-1.429501
0.692541i
4.230974-
0.692541i
4.230974+
0.742886i
-2.243726-
0.742886i
-2.243726+
2.508048
-5.079776
Akar
Matlab
perpustakaan.uns.ac.id digilib.uns.ac.id
commit to user 0.999999
2.551052E-13
1.044485
32
1.044485
1.998401E-13
0.999999
32
0.505307i
0.505307i
-0.602156-
-0.602156+ 4.820421E-10
7
0.505307i
0.505307i
1.998401E-13
2.551052E-13
4.820421E-10
-0.602156+ 4.820421E-10
-0.602156-
7
0.872559i
1.446220E-9
1.446220E-9
0.872559i
4.820421E-10
0.092386-
1
0.092386-
1.446204E-9
0.872559i
0.092386+
0.872559i
1
32
32
7
7
4
4
1
1.044485
0.999999
0.505307i
-0.602156+
0.505307i
-0.602156-
0.872559i
0.092386+-
0.872559i
-4.024945+
0.092386+
1.446204E-9
9.904182E-8
0.092386+
-4.024945
െ ʹ ݔଷ ʹ
1 6.581418E-9i
Akar
െ Ͷ ݔହ
Iterasi
4.634037E-13
Galat
-4.024945
Akar
2.551052E-13
1.998401E-13
4.820421E-10
4.820421E-10
8.448769E-06
8.449362E-06
7.637558E-07
Galat
Bairstow – Muller
ݔ ͵ ݔ
Iterasi
Bairstow – Revisi Bairstow
Galat
Bairstow – Cardano
Akar
Polinomial
Sampel
Ganjil
32
32
7
7
50
2
1
Iterasi
144
1.044485
0.999999
0.505307i
-0.602156+
0.505307i
-0.602156-
0.874652i
0.093608+
-4.004483
0.093614
Akar
Matlab
Tabel 4.29 Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan Bilangan
perpustakaan.uns.ac.id digilib.uns.ac.id
െ ʹ ݔଷ ʹ
െ Ͷ ݔହ
ݔ ͵ ݔ
Polinomial
Sampel
commit to user 1.044485
4.251753E-14
1.044485
15
-4.024945
6.620053E-14
-4.024945
15
0.505307i
0.505307i
-0.602156+
-0.602156+ 2.121439E-12
7
0.505307i
0.505307i
-0.602156-
-0.602156-
7
0.872559i
0.872559i
2.121439E-12
1
0.092386-
0.092386+
9.523148E-9
1
1.000000
0.092386-
9.523148E-9
0.092386+
1
Akar
0.872559i
7.009593E-9
1.000000
Iterasi
4.251753E-14
6.620053E-14
2.121439E-12
2.121439E-12
9.523164E-09
9.523164E-09
7.343393E-09
Galat
15
15
7
7
9
9
1
Iterasi
Revisi Bairstow-Bairstow
0.872559i
Galat
Akar
Revisi Bairstow- Cardano
Bilangan Ganjil
1.044485
-4.024945
0.505307i
-0.602156+
0.505307i
-0.602156-
2.952506E-23i
1.000000+
0.795978i
-0.485547-
0.795978i
0.670319+
Akar
4.251753E-14
6.620053E-14
2.121439E-12
2.121439E-12
7.009571E-09
39.84178893
66.44185631
Galat
Revisi Bairstow – Muller
15
15
7
7
7
2
1
Iterasi
145
0.505307i
-0.602156-
0.505307i
-0.602156+
0.872559i
0.092386-
0.872559i
0.092386+
0.999999
1.044485
-4.024945
Akar
Matlab
Tabel 4.29 Lanjutan Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan
perpustakaan.uns.ac.id digilib.uns.ac.id
0.092386+
0.092386-
5.572632E-15i
5.572632E-15i
1.044485+
18
1.044485+
5.825269E-13
6.218298E-15i
6.218298E-15i
1.000000-
13
1.000000-
7.161635E-13
0.505307i
0.505307i
-0.602156+
18
-0.602156+
8.192837E-13
0.505307i
5.825269E-13
7.161635E-13
8.192837E-13
7.204360E-13
3.115449E-14
3.115449E-14
7.813406E-09
Galat
Muller-Bairstow
0.505307i
-0.602156-
-0.602156-
16
1 0.872559i
commit to user
0.872559i
7.204360E-13
5.596376E-14
0.872559i
0.872559i
0.092386-
െ ʹ ݔଷ ʹ
1
5.596376E-14
0.092386+
-4.024945
Akar
െ Ͷ ݔହ
1
Iterasi
4.413369E-14
Galat
-4.024945
Akar
Muller- Cardano
ݔ ͵ ݔ
Polinomial
Sampel
Bilangan Ganjil
18
13
18
16
4
4
1
Iterasi
5.572632E-15i
1.044485+
6.218298E-15i
1.000000-
0.505307i
-0.602156+
0.505307i
-0.602156-
0.872558i
0.092386+
0.872558i
0.092386-
-4.024945
Akar
5.825269E-13
7.161635E-13
8.192837E-13
7.204360E-13
3.406934E-14
3.406934E-14
9.904224E-08
Galat
Muller-Revisi Bairstow
18
13
18
16
4
4
1
Iterasi
-0.602156-
0.505307i
-0.602156+
0.872559i
0.092386-
0.872559i
0.092386+
0.999999
1.044485
-4.024945
Akar
Matlab
digilib.uns.ac.id 0.505307i
146
Tabel 4.29 Lanjutan Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan
perpustakaan.uns.ac.id
0.742886i -2.243726-
0.742886i -5.079776
commit to user 1.026733
2.162632E-14
1.026733
6
-1.429501
4.659905E-14
-1.429501
6
0.692541i
0.692541i
15
4.230974+
2.50406E-12
4.230974-
4.230974+
15
2.508048
0.742886i
0.692541i
2.504055E-12
4.230974-
11
11
-2.243726+
0.692541i
5.531531E-11
2.508048
5.962248E-12
1
െ ʹͷ ݔ ͳͻʹͲ
1.520651E-8
-2.243726-
െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ
2.058673E-8i
-5.079776+
Akar
0.742886i
1
Iterasi
͵ ݔହ ͶͶ ݔସ
Galat
2.162632E-14
4.659905E-14
2.504055E-12
2.504055E-12
5.531531E-11
2.401967E-06
2.402046E-06
5.663953E-07
Galat
Bairstow – Muller
-2.243726+ 1.520651E-8
Akar
Bairstow – Revisi Bairstow
଼ ݔെ ݔെ ͵ͻ ݔ
Sampel Polinomial
Genap
6
6
15
15
5
98
2
1
Iterasi
1.026733
-1.429501
0.692541i
4.230974+
0.692541i
4.230974-
0.742886i
-2.243726-
0.742886i
-2.243726+
2.508048
-5.079776
Akar
Matlab
147
Tabel 4.30 Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan Bilangan
perpustakaan.uns.ac.id digilib.uns.ac.id
0.692541i -2.243726-
0.742886i 4.230974-
commit to user 3.106603E-14 0
-1.429501 1.026733
6
6
1.026733
-1.429501
2.508048
2.428810E-09
2.508048
11
-5.079776
1.383556E-10
-5.079776
11
0.742886i
0.692541i
0
3.106603E-14
2.428810E-09
1.383556E-10
-2.243726+ 6.239732E-09
4.230974+
6.239743E-09
5.773500E-10
0.742886i 93
93
4.230974+
5.773225E-10
Galat
0.692541i 5.773774E-10
5.773774E-10
1
െ ʹͷ ݔ ͳͻʹͲ
6.245005E-09
-2.243726-
െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ
0.692541i
4.230974-
Akar
0.742886i
1
Iterasi
͵ ݔହ ͶͶ ݔସ
Galat
6
6
11
11
11
11
2
1
Iterasi
Revisi Bairstow – Muller
-2.243726+ 6.245005E-09
Akar
Revisi Bairstow – Bairstow
଼ ݔെ ݔെ ͵ͻ ݔ
Sampel Polinomial
Genap
1.026733
-1.429501
0.692541i
4.230974+
0.692541i
4.230974-
0.742886i
-2.243726-
0.742886i
-2.243726+
2.508048
-5.079776
Akar
Matlab
148
Tabel 4.30 Lanjutan Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan Bilangan
perpustakaan.uns.ac.id digilib.uns.ac.id
0.692542i -5.079777
0.692542i -5.079777
commit to user 7.082627E-14
2.508048
6
2.508048
1.026733
1.081316E-13
1.026733
6
-1.429501
9
1.087311E-13
-2.243724-
-1.429501
82
-2.243729
0.742889i
1.802509E-04
-2.243724-
9
9
4.230975-
0.742889i
31.431448
-2.243729
1.266651E-05
1
െ ʹͷ ݔ ͳͻʹͲ
2.847729E-05
4.230975-
െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ
0.692542i
4.230975+
Akar
0.692542i
1
Iterasi
͵ ݔହ ͶͶ ݔସ
2.847729E-05
Galat
7.082627E-14
1.081316E-13
1.087311E-13
1.802509E-04
31.431448
1.266651E-05
2.824276E-05
2.824276E-05
Galat
6
6
9
82
68
68
1
1
Iterasi
Muller - Revisi Bairstow
4.230975+
Akar
Muller – Bairstow
଼ ݔെ ݔെ ͵ͻ ݔ
Sampel Polinomial
Genap
1.026733
-1.429501
0.692541i
4.230974+
0.692541i
4.230974-
0.742886i
-2.243726-
0.742886i
-2.243726+
2.508048
-5.079776
Akar
Matlab
149
Tabel 4.30 Lanjutan Hasil Pencarian Akar Kompleks Polinomial Derajat n Menggunakan Kombinasi Algoritma dimana n Merupakan Bilangan
perpustakaan.uns.ac.id digilib.uns.ac.id
perpustakaan.uns.ac.id
digilib.uns.ac.id
Keterangan pada Tabel 4.29 dan Tabel 4.30: Pencarian akar menggunakan algoritma Bairstow Pencarian akar menggunakan revisi algoritma Bairstow Pencarian akar menggunakan algoritma Muller
Berdasarkan Tabel 4.28 diketahui bahwa algoritma Bairstow, revisi algoritma Bairstow, dan Muller mampu menyelesaikan polinomial derajat n dengan galat yang dihasilkan sangat kecil. Berdasarkan data pada Tabel 4.29 dan Tabel 4.30 diketahui bahwa penyelesaian persamaan polinomial menggunakan kombinasi algoritma memiliki hasil yang hampir sama dengan menggunakan algoritma seperti biasa. Hal ini terbukti dengan adanya kesamaan antara hasil pencarian akar pada Tabel 4.29 dan Tabel 4.30 dengan Tabel 4.28. Tabel 4.30 dengan sel berwarna biru nilainya sama dengan hasil pencarian dengan algoritma Bairstow pada Tabel 4.28, begitu pula dengan sel berwarna oranye sama dengan hasil pencarian akar dengan revisi Bairstow pada Tabel 4.28 dan sel berwarna hijau sama dengan hasil pencarian akar menggunakan algoritma Muller pada Tabel 4.28. Hasil pencarian akar kompleks polinomial menggunakan kombinasi algoritma berbeda pada tiga akar terakhir yang didapat untuk polinomial derajat n dimana n merupakan bilangan ganjil. Sedangkan pada polinomial derajat n dimana n merupakan bilangan genap, maka empat akar terakhir akan berbeda. Galat yang dihasilkan pada pencarian akar kompleks polinomial derajat n menggunakan kombinasi algoritma Bairstow – Cardano, Bairstow – Revisi Bairstow, Bairstow – Muller, Revisi Bairstow – Cardano, Revisi Bairstow – Bairstow sangat rendah yakni dibawah 1%. Dengan demikian, dapat dikatakan bahwa kombinasi algoritma tersebut dapat digunakan dengan baik dalam penyelesaian polinomial derajat n. Galat terkecil mencapai 0.0% pada pencarian akar persamaan ଼ ݔെ ݔെ ͵ͻ ݔ ͵ ݔହ ͶͶ ݔସ െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ െ ʹͷ ݔ ͳͻʹͲ menggunakan kombinasi algoritma Revisi Bairstow – Bairstow dan Revisi Bairstow – Muller. Galat 0.0% didapat dari pencarian akar menggunakan Revisi Bairstow pada kedua kombinasi algoritma tersebut.
commit to user
150
perpustakaan.uns.ac.id
151 digilib.uns.ac.id
Pada Tabel 4.29 dan Tabel 4.30 diketahui bahwa terdapat tiga kombinasi algoritma dengan galat yang cukup besar. Berikut ini merupakan penjelasannya : 1. Revisi Bairstow – Muller (Tabel 4.29) Penyelesaian persamaan polinomial ݔ ͵ ݔെ Ͷ ݔହ െ ʹ ݔଷ ʹ menggunakan kombinasi algoritma Revisi Bairstow menghasilkan galat yang besar pada proses pencarian dua akar terakhir yaitu 39.84178893% dan 66.44185631%. Pada pencarian empat akar pertama menggunakan algoritma Revisi Bairstow menghasilkan akar dan galat yang tepat dan benar. Hal ini terlihat bahwa empat akar pertama hasil algoritma Revisi Bairstow – Muller (sel berwarna oranye pada Tabel 4.29) bernilai sama dengan empat akar pertama hasil algoritma Revisi Bairstow (empat baris terakhir penyelesaian persamaan ݔ ͵ ݔെ Ͷ ݔହ െ ʹ ݔଷ ʹ pada Tabel 4.28). Namun, terjadi pergeseran angka ketika proses masuk pada algoritma Muller. Pergeseran angka yang terjadi sangat kecil. Pada pencarian akar pertama menggunakan algoritma Muller pada kombinasi Revisi Bairstow – Muller masih menghasilkan nilai yang sesuai. Namun, pada pencarian akar berikutnya efek pegeseran angka sangat terlihat. Adanya kesalahan pada hasil perhitungan sebelumnya akan menghasilkan nilai tidak tepat pada perhitungan berikutnya. Oleh karena itu, perhitungan tersebut menghasilkan galat yang besar. Hal ini juga dipengaruhi oleh ketelitian perhitungan pada program Java. Detail perhitungan terdapat pada Lampiran 2. 2. Muller – Bairstow dan Muller – Revisi Bairstow (Tabel 4.2) Pada penyelesaian persamaan ଼ ݔെ ݔെ ͵ͻ ݔ ͵ ݔହ ͶͶ ݔସ െ ͳͲͺ ݔଷ െ ͳͻʹͺ ݔଶ െ ʹͷ ݔ ͳͻʹͲ menggunakan algoritma Muller Bairstow dan Muller – Revisi Bairstow menghasilkan galat yang sama pada pencarian akar ke lima yaitu 31.431448%. Pencarian akar keempat menggunakan algoritma Muller menghasilkan akar -2.243724-0.742889i, apabila pencarian akar dilanjutkan menggunakan algoritma Muller akan menghasilkan nilai sekawan dari akar kompleks tersebut yaitu -2.243724-0.742889i. Namun, pada kombinasi Muller – Bairstow dan Muller – Revisi Bairstow menghasilkan -2.243729 sehingga menghasilkan galat yang besar. Hal ini dikarenakan input untuk algoritma Bairstow dan Revisi Bairstow merupakan bilangan real, sedangkan output dari
commit to user algoritma Muller merupakan bilangan kompleks. Oleh karena itu, terdapat nilai
152 digilib.uns.ac.id
perpustakaan.uns.ac.id
imaginer output algoritma Muller tidak terhitung dalam algoritma Bairstow dan Revisi Bairstow. Algoritma dalam penyelesaian akar polinomial derajat n dapat diketahui dengan menghitung nilai rata-rata galat yang dihasilkan dan rata-rata jumlah langkah kerja yang dilakukan. Rata-rata galat didapat dari jumlah seluruh galat yang dihasilkan dibagi dengan banyaknya akar yang dihasilkan. Untuk kombinasi algoritma Cardano, rata-rata galat didapat dari jumlah seluruh galat yang dihasilkan untuk menyelesaiakan persamaan ݔ ͵ ݔെ Ͷ ݔହ െ ʹ ݔଷ ʹ dibagi banyaknya akar yang dihasilkan yaitu 7. Tabel 4.31 menunjukkan nilai rata-rata galat yang dihasilkan dan rata-rata jumlah langkah kerja yang dilakukan pada masing-masing kombinasi algoritma.
Tabel 4.31 Rata-Rata Galat dan Iterasi Pencarian Akar Kompleks Derajat n No
Kombinasi Algoritma
Rata-rata galat (%)
Rata-rata iterasi
1
Bairstow
2.62347809508259E-09
12
2
Bairstow – Revisi
8.8918779643174E-09
10
Bairstow 3
Bairstow – Muller
1.53555473779719E-06
19
4
Bairstow – Cardano
5.51058633925391E-10
12
5
Revisi Bairstow
1.69204593737167E-08
8
6
Revisi Bairstow –
2.84040213353398E-09
19
Bairstow 7
Revisi Bairstow - Muller 7.08557635107149
8
8
Revisi Bairstow –
3.72289154574655E-09
7
Cardano 9
Muller
0.0000299043000191301
24
10
Muller – Bairstow
2.09544651882645
13
11
Muller – Revisi
2.09544649363791
21
4.27781615793958E-13
10
Bairstow 12
Muller – Cardano
commit to user
153 digilib.uns.ac.id
perpustakaan.uns.ac.id
Berdasarkan Tabel 4.31, diketahui bahwa algoritma terbaik dalam pencarian akar kompleks derajat n adalah kombinasi Muller – Cardano dimana nilai rata-rata galat yang dihasilkan yaitu 4.27781615793958E-13%. Namun, berdasarkan ratarata jumlah iterasi yang dilakukan, kombinasi algoritma Revisi Bairstow – Cardano lebih unggul dengan rata-rata jumlah iterasi yaitu tujuh iterasi.
commit to user