id
ABSTRACT teknik mesin, elektro, dan lainnya [4]. Salah satu model matematika
Software as a learning medium has become a trend in society. The yang sering digunakan adalah polinomial. Persamaan polinomial
development of science and technology encourage modernization memiliki bentuk 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + 𝑎2 𝑥 𝑛−2 + 𝑎3 𝑥 𝑛−3 + ⋯ + 𝑎𝑛 =
in every field of education, including mathematics. One of the 0 dimana 𝑎1 , 𝑎2 , … , 𝑎𝑛 merupakan koefisien real [5]. Sebuah
mathematical models often used is polynomial equation. Many polinomial dengan derajat n akan memiliki akar sebanyak n. Akar
mathematicians have done research on solving polynomials by polinomial dapat berupa bilangan real atau kompleks [6].
using numerical algorithms, but only focus on mathematical Penelitian yang dilakukan Iges Windra menyatakan bahwa metode
analysis. In this research, design and construction of a calculator Bairstow memiliki laju konvergensi yang cukup tinggi dan
as a medium of learning has been done. The calculator is completed menghasilkan galat yang rendah dalam mencari akar polinomial
by many algorithm such as the quadratic formula, Cardano, [7]. Perhitungan metode Bairtstow tersebut dikembangkan dan
Viete's, Bairstow, revise Baristow, Muller, and combination dikenal sebagai revisi algoritma Bairstow [5]. Metode Muller
algorithms. The alculator was designed by UML approach and sukses diaplikasikan pada komputer dengan menawarkan banyak
implemented on Java Swing GUI. The test results using black box keunggulan [8]. Namun, penelitian lain menyebutkan berdasarkan
method showed that 100% of functional calculator can work well. jumlah langkah kerja, Bairstow lebih baik kinerjanya dibandingkan
Based on the average calculation error, cubic polynomial is solved metode Muller [9]. Dalam penelitian lainnya, penyelesaian
properly by using Cardano algorithm which the average error is persamaan polinomial berderajat tiga dapat dilakukan dengan
1.43568059121049E-13%. Revise Bairstow algorithm showed menggunakan solusi Cardan [10] dan substitusi Viete’s [11].
good performance to find the complex roots of 4th degree Berdasarkan penelitian-penelitian di atas, diketahui bahwa keempat
polynomial with an average error is 1.34421873307271E-09% and penelitian mengenai pencarian akar kompleks polinomial
average of iteration is 4. The best combination algorithm on dilakukan oleh matematikawan-matematikawan sehingga
solving nth degree polynomials is Muller-Cardano which has an penelitian hanya fokus pada penyelesaian polinomial secara
average error 4.27781615793958E-13% and Revise Bairstow- matematika saja, sedangkan media pembelajaran mengenai
Cardano with average number of iteration is 7 iterations. polinomial masih sangat minim. Oleh karena itu, peneliti tertarik
untuk membuat sebuah perangkat lunak sebagai media
Keywords pembelajaran polinomial. Perangkat lunak berupa sebuah
Finding roots polynomial, calculator, quadratic formula, Cardano, kalkulator yangn didalamnya telah diimplementasikan metode-
Viete’s, Bairstow, Revised Bairstow, Muller metode numerik khusus pencarian akar kompleks polinomial
seperti rumus kuadrat, algoritma Cardano, Viete’s, Bairstow, revisi
1. PENDAHULUAN Bairstow, Muller, serta kombinasi algoritma. Sampai saat ini belum
Perangkat lunak sebagai media pembelajaran telah menjadi sebuah tersedia media pembelajaran kalkulator pencarian akar kompleks
tren di kalangan masyarakat. Kata “media” berasal dari bahasa polinomial yang dilengkapi dengan beberapa pilihan algoritma.
Latin dan merupakan bentuk jamak dari kata “medium” yang secara Analisa dan perancangan program kalkulator dilakukan dengan
harfiah berarti “perantara” yaitu perantara sumber pesan dengan menggunakan pendekatan UML dan diimplementasikan dengan
penerima pesan [1]. Media pembelajaran merupakan teknologi menggunakan bahasa Java Swing GUI. Kalkulator yang dibuat
pembawa pesan yang dapat dimanfaatkan untuk keperluan dapat menghitung akar kompleks pada polinomial derajat dua,
pembelajaran. Media pembelajaran dapat berupa sarana derajat tiga, derajat empat, dan derajat n. Galat (error) yang
komunikasi seperti buku, film, video, slide, maupun perangkat dihasilkan dari perhitungan pada masing-masing algoritma dalam
lunak [2]. Perangkat lunak (software) merupakan istilah yang pencarian akar kompleks polinomial akan dibandingkan untuk
digunakan untuk menggambarkan instruksi-instruksi yang mengetahui algoritma terbaik. Kriteria algoritma terbaik adalah
memberitahu perangkat keras untuk melakukan suatu tugas sesuai algoritma yang menghasilkan galat terendah dengan jumlah
dengan perintah [3]. Berdasarkan pengertian media dan perangkat langkah kerja (iterasi) terkecil.
lunak maka dapat diketahui perangkat lunak sebagai media
pembelajaran merupakan penerapan software pada perangkat keras
2. TINJAUAN PUSTAKA
komputer yang bertujuan menyampaikan pesan pembelajaran. 2.1 Polinomial
Perkembangan ilmu pengetahuan dan teknologi mendorong Persamaan polinomial memiliki bentuk standar seperti berikut :
modernisasi di setiap bidang pendidikan, termasuk bidang 𝑎0 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + 𝑎2 𝑥 𝑛−2 + ⋯ + 𝑎𝑛−1 𝑥 + 𝑎𝑛 = 0 (2.1)
matematika. Model matematika kerap kali digunakan dalam
commit to user
berbagai bidang seperti bidang fisika, kimia, ekonomi, teknik sipil,
perpustakaan.uns.ac.id digilib.uns.ac.id
dimana a disebut sebagai koefisien polinomial yang merupakan Polinomial kubik dapat diselesaikan dengan menggunakan
bilangan riil dan n merupakan derajat polinomial yang berupa algoritma Cardano yang diterbitkan oleh Girolamo Cardano (1501-
bilangan bulat positif. Suku-suku pangkat dari x disusun dalam 1576) dalam tulisannya Ars Magna [15]. Berikut merupakan
derajat menurun [12]. Polinomial disebut sebagai polinomial langkah-langkah algoritma Cardano [13] :
monoid. Polinomial monoid merupakan polinomial yang koefisien 1. Menginputkan polinomial dengan bentuk Persamaan 2.10 dan
variabel x berderajat tertinggi sama dengan 1. Bentuk polinomial menentukan nilai variabel r, s, dan t.
monoid adalah sebagai berikut: 2. Mensubtitusikan nilai y pada Persamaan 2.10 :
𝑟
𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + 𝑎2 𝑥 𝑛−2 + ⋯ + 𝑎𝑛 = 0 (2.2) 𝑦=𝑥+ (2.11)
Contoh-contoh polinomial berdasarkan derajat polinomial adalah 3
Subsitusi nilai y akan mengasilkan persamaan tereduksi :
sebagai berikut :
𝑦 3 + 𝑝𝑦 + 𝑞 = 0 (2.12)
a. Polinomial kuadrat (quadratic polynomial) yaitu polinomial 2𝑟 3 𝑟𝑠 3𝑠−𝑟 2
dengan nilai pangkat tertinggi dari suku x adalah 2 [13]. 𝑞= − + 𝑡 dan 𝑝 =
27 3 3
𝑓(𝑥) = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 (2.3)
3. Menghitung nilai diskriminan persamaan tereduksi.
b. Polinomial kubik (cubic polynomial) merupakan polinomial
𝑝 3 𝑝 2
yang nilai pangkat tertinggi dari suku x adalah tiga (n = 3). 𝐷 = ( ) +( ) (2.13)
3 2
𝑓(𝑥) = 𝑎𝑥 3 + 𝑏𝑥 2 + 𝑐𝑥 + 𝑑 = 0 (2.4)
4. Menentukan penyelesaian polinomial kubik dan menghitung
dengan a, b, c, d merupakan bilangan real dan a ≠ 0 [15]. akar-akar polinomial (𝑥1 , 𝑥2 dan 𝑥3 ). Penyelesaian ditentukan
c. Polinomial kuartik (quartic polynomial) adalah polinomial berdasarkan nilai diskriminan [10] :
berderajat empat dimana nilai pangkat tertinggi x adalah a. Penyelesaian polinomial kubik dengan D ≥ 0 dilakukan
empat (n = 4). dengan menghitung nilai u dan v :
𝑓(𝑥) = 𝑎𝑥 4 + 𝑏𝑥 3 + 𝑐𝑥 2 + 𝑑𝑥 + 𝑒 = 0 (2.5) 3 𝑞
𝑢 = √(− + √𝐷 (2.14)
2
d. Polinomial berderajat n merupakan polinomial dengan nilai
pangkat tertinggi dari variabel x adalah n. 3 𝑞
𝑓(𝑥) = 𝑥 𝑛 + 𝑎1 𝑥 𝑛−1 + 𝑎2 𝑥 𝑛−2 + ⋯ + 𝑎𝑛 = 0 (2.6) 𝑣 = √(− − √𝐷 (2.15)
2
dimana 𝑎1 , 𝑎2 , … , 𝑎𝑛 merupakan bilangan real [5]. Akar polinomial kubik didapat dari rumus berikut:
Persamaan polinomial f(x) = 0 memiliki akar polinomial r jika dan 𝑟
𝑥1 = − + 𝑢 + 𝑣 (2.16)
hanya jika f(r) = 0. Akar-akar sebuah persamaan polinomial dapat 3
𝑟 𝑢+𝑣 𝑢−𝑣
berupa akar-akar kompleks, akar-akar irasional dan rasional. 𝑥2,3 = − − ± √3 𝑖 (2.17)
3 2 2
Apabila persamaan polinomial f(x) = 0 memiliki koefisiean real dan
jika bilangan kompleks a + bi adalah akar dari f(x) = 0, maka dimana nilai 𝑖 = √−1.
konjugasi (sekawan) kompleks a – bi juga merupakan akar b. Apabila D < 0 akan menghasilkan tiga akar riil yang
persamaan polinomial tersebut [12]. berbeda (irreducible case). Penyelesaian dilakukan
dengan menggunakan trigonometri :
2.1.1 Rumus Kuadrat 𝑞
𝑐𝑜𝑠𝜑 = − 3
(2.18)
Polinomial kuadrat (Persamaan 2.3) dan dapat dituliskan dalam 2√(|𝑝|⁄3)
bentuk lain seperti Persamaan 2.6. sehingga solusi dari persamaan tereduksi Persamaan 2.12
𝑥 2 + 𝑝𝑥 + 𝑞 = 0 (2.6) adalah sebagai berikut :
𝑏 𝑐
dimana nilai p = dan nilai q = [13]. Maka diskriminan : 𝑟 |𝑝| 𝜑
𝑎 𝑎 𝑥1 = − + 2 ∙ √ cos ( ) (2.19)
𝑝 2 3 3 3
𝐷 = ( ) −𝑞 (2.7)
2
𝑟 |𝑝| 𝜑−𝜋
Penyelesaikan polinomial kuadrat Persamaan 2.3 dapat dilakukan 𝑥2 = − − 2 ∙ √ cos ( ) (2.20)
3 3 3
dengan rumus kuadrat berikut :
−𝑏±√𝑏2 −4𝑎𝑐 𝑟 |𝑝| 𝜑+𝜋
𝑥1,2 = (2.8) 𝑥3 = − − 2 ∙ √ cos ( ) (2.21)
2𝑎 3 3 3
2.3.1 Analisis
Analisis sistem merupakan sebuah teknik pemecahan masalah yang
menguraikan sebuah sistem menjadi komponen-komponen dengan Gambar 3.1 Alur metodologi
tujuan mempelajari seberapa baik komponen-komponen tersebut
bekerja dan berineraksi untuk mencapai tujuan [19]. 3.1 Pemilihan Sampel Polinomial
Sampel polinomial berupa persamaan polinomial berderajat dua,
2.3.2 Desain tiga, empat, dan n yang didapat dari beberapa buku.
Desain perangkat lunak merupakan tugas, tahapan, atau aktivitas 3.2 Penerapan Algoritma Secara Manual
yang difokuskan pada spesifikasi rinci dari solusi berbasis Sampel polinomial terpilih diselesaikan secara manual dengan
komputer. Desain perangkat lunak fokus pada sisi teknis dan menerapkan algoritma-algoritma penyelesaian yang akan
implementasi sebuah perangkat lunak [19]. Desain perangkat lunak digunakan dalam program kalkulator. Hasil dari contoh
dapat dilakukan menggunakan flowchart maupun pemodelan perhitungan ini akan digunakan sebagai dasar implemenasi
menggunakan UML. algoritma dalam program.
A. Flowchart
3.3 Pembangunan Program Kalkulator
Bagan alir sistem (system flowchart) merupakan bagan yang
menunjukkan arus pekerjaan secara keseluruhan dari sistem. 3.3.1 Analisis
Bagan ini menjelaskan urutan-urutan dari prosedur-prosedur Analisa kebutuhan perangkat lunak, baik kebutuhan fungsional
yang ada dalam sistem [20]. maupun kebutuhan non fungsional, dilakukan sebelum program
B. UML kalkulator dibangun.
Unified Modelling Language merupakan seperangkat aturan 3.3.2 Perancangan
dan notasi untuk spesifikasi sistem perangkat lunak yang Perancangan program kalkulator dilakukan menggunakan
dikelola dan diciptakan oleh Object Management Group. pendekatan UML dan flowchart.
Notasi tersebut berupa elemen grafis untuk memodelkan
bagian-bagian system [21]. 3.3.3 Implementasi
Hasil analisa dan perancangan program kalkulator
2.3.3 Implementasi diimplemenasikan menggunakan Java Swing GUI. Algoritma
Implementasi merupakan tahapan menerjemahkan hasil desain penyelesaian dalam program kalkulator adalah :
logis dan fisik ke dalam kode-kode program komputer [19]. Rumus kuadrat untuk polinomial derajat 2
Cardano, Viete’s, Bairstow, revisi Bairstow untuk polinomial
2.3.4 Pengujian derajat 3
Pengujian perangkat lunak merupakan sebuah proses terhadap Bairstow, revisi Bairstow, Muller untuk polinomial derajat 4
aplikasi/program untuk menemukan segala kesalahan dan segala Polinomial derajat n diselesaikan dengan kombinasi algoritma
kemungkinan yang akan menimbulkan kesalahan sesuai dengan seperti yang tertera dalam Tabel 3.1.
spesifikasi perangkat lunak yang telah ditentukan sebelum aplikasi
Tabel 3.1 Algoritma Penyelesaian Polinomial Derajat n
tersebut diserahkan kepada pelanggan [22].
Polinomial derajat n, Polinomial derajat n,
2.3.5 Perawatan dengan n bilangan ganjil dengan n bilangan genap
Perawatan dapat dilakukan dengan berbagai tipe seperti perawatan Muller Muller
corrective, perawatan routine, dan perawatan system upgrade [19]. Muller – Cardano Muller – Bairstow
Muller – Bairstow Muller – Revisi Bairstow
Muller – Revisi Bairstow Bairstow
3. METODE PENELITIAN Bairstow Bairstow – Revisi Bairstow
Tahap-tahap penelitian dapat dilihat dalam Gambar 3.1. Bairstow – Revisi Bairstow Bairstow – Muller
Bairstow – Cardano Revisi Bairstow
Bairstow – Muller Revisi Bairstow – Bairstow
Revisi Bairstow Revisi Bairstow – Muller
Revisi Bairstow – Bairstow
Revisi Bairstow – Cardano
commit toRevisi
userBairstow – Muller
perpustakaan.uns.ac.id digilib.uns.ac.id
𝑟
3.4 Pengujian Program Kalkulator 2. Mensubtitusikan 𝑦 = 𝑥 + pada persamaan kubik, sehingga
3
Pengujian program dilakukan dengan tujuan untuk mengetahui mengasilkan persamaan tereduksi 𝑦 3 + 𝑝𝑦 + 𝑞 = 0.
kualitas dan kinerja program yang dibangun. Pada penelitian ini, 3𝑠 − 𝑟 2 2𝑟 3 𝑟𝑠
pengujian program dilakukan dengan menggunakan metode black 𝑝= 𝑞= − +𝑡
3 27 3
box dimana pengujian dilakukan pada setiap fungsional yang 3(−2) − (−4)2 2(−4)3 (−4)(−2)
terdepat pada program. 𝑝= 𝑞= − +3
3 27 3
3.5 Penyelesaian Sampel Polinomial 𝑝 = −7.3 𝑞 = −4.4
Penyelesaian sampel-sampel polinomial yang telah ditentukan 3. Menghitung nilai diskriminan
menggunakan program kalkulator dilakukan setelah program 𝑝 3 𝑝 2
𝐷 =( ) +( )
kalkulator pencarian akar kompleks polinomial selesai dibangun. 3 2
3.6 Perbandingan Galat −7.3 3 −4.4 2
𝐷=( ) +( )
Galat yang dihasilkan kemudian dibandingkan satu sama lain. 3 2
Algoritma dengan galat rendah dapat dikategorikan sebagai 𝐷 = −9.8
algoritma yang baik. Pada algoritma Bairstow, Revisi Bairstow, 4. Karena D < 0, maka kasus ini tergolong irreducible case
dan Muller, perbandingan juga dilihat dari banyaknya iterasi yang sehingga pencarian akar kompleks polinomial menerapkan
𝑞
dilakukan. Ketiga algoritma tersebut dikenakan delta toleransi 𝑐𝑜𝑠𝜑 = − , berikut ini detail perhitungannya :
2√(|𝑝|⁄3)3
sebesar 1E-8. Dengan demikian, maka akan diketahui algoritma 𝑞
yang tercepat dengan galat terendah. 𝑐𝑜𝑠𝜑 = −
2√(|𝑝|⁄3)3
(−4.4)
𝑐𝑜𝑠𝜑 = −
4. HASIL DAN PEMBAHASAN 2√(|−7.3|⁄3)3
4.1 Sampel Polinomial (−4.4)
𝑐𝑜𝑠𝜑 = −
Sampel polinomial yang digunakan dalam penelitian ditampilkan 2√(2.4)3
dalam Tabel 4.1. 𝑐𝑜𝑠𝜑 = 0.576611
Tabel 4.1 Sampel polinomial
Sehingga,
No Derajat
Sampel Polinomial 𝜑 = 0.95622171
Polinomial
Dengan demikian, akar-akar polinomial adalah :
1 Polinomial 𝑥 2 + 18𝑥 + 81 𝑟 |𝑝| 𝜑
derajat 2
𝑥 2 − 13𝑥 − 30 𝑥1 = − + 2 ∙ √ cos ( )
3 3 3
𝑥 2 + 10𝑥 − 14 (−4) |−7.3| 0.95622171
𝑥1 = − +2∙√ cos ( )
3 3 3
𝑥 2 + 5𝑥 + 11
4 7.3
𝑥 2 − 3𝑥 + 5 𝑥1 = + 2 ∙ √
3 3
cos(0.318741)
2 Polinomial 𝑥 3 − 8𝑥 2 + 19𝑥 + 12 𝑥1 = 4.302776
derajat 3
𝑥 3 + 3𝑥 2 − 2𝑥 + 7 𝑟 |𝑝| 𝜑−𝜋
𝑥2 = − − 2 ∙ √ cos ( )
𝑥 3 + 3𝑥 2 + 3𝑥 + 2 3 3 3
(−4) |−7.3| 0.95622171−3.14159
𝑥 3 + 2𝑥 2 − 5𝑥 − 6 𝑥2 = − −2∙√ cos ( )
3 3 3
𝑥 3 − 4𝑥 2 − 2𝑥 + 3 4
𝑥2 = − 2 ∙ 1.56347192 ∙ cos(−0.728456981)
3 Polinomial 𝑥 4 + 7𝑥 3 − 𝑥 2 + 7𝑥 − 1 3
derajat 4 𝑥2 = −1
𝑥 4 − 2𝑥 3 + 2𝑥 2 − 7𝑥 + 1 𝑟 |𝑝| 𝜑+𝜋
𝑥 4 − 16𝑥 3 + 86𝑥 2 − 176𝑥 + 105 𝑥3 = − − 2 ∙ √ cos ( )
3 3 3
𝑥 4 − 5𝑥 3 + 13𝑥 2 − 19𝑥 + 10 (−4) |−7.3| 0.95622171+3.14159
𝑥3 = − −2∙√ cos ( )
4 Polinomial 𝑥 7 + 3𝑥 6 − 4𝑥 5 − 2𝑥 3 + 2 3 3 3
4
derajat n 𝑥3 = − 2 ∙ 1.56347192 ∙ cos(1.365938)
𝑥 8 − 𝑥 7 − 39𝑥 6 + 37𝑥 5 + 446𝑥 4 3
−108𝑥 3 − 1928𝑥 2 − 256𝑥 𝑥3 = 0.697224
+1920 Dengan demikian, berdasarkan algoritma Cardano, polinomial
𝑥 3 − 4𝑥 2 − 2𝑥 + 3 = 0 memiliki tiga akar diantaranya adalah
4.302776 + 0.0𝑖, −1.0 + 0.0𝑖 , dan 0.697224 + 0.0𝑖.
4.2 Perhitungan Manual Algoritma 4.3 Pembangunan Program Kalkulator
Beberapa sampel pada Tabel 4.1 dihitung secara manual
menggunakan algoritma penyelesaian polinomial derajat n yang 4.3.1 Analisis
tersedia pada program kalkulator. Hasil perhitungan dijadikan Analisa kebutuhan program kalkulator dilakukan untuk mengetahui
dasar pembuatan kalkulator. Berikut ini merupakan penyelesaian kebutuhan fungsional dan kebutuhan non fungsional. Kebutuhan
polinomial 𝑥 3 − 4𝑥 2 − 2𝑥 + 3 menggunakan algoritma Cardano : fungsional program ditunjukkan pada Tabel 4.2, sedangkan
1. Bentuk persamaan kubik 𝑥 3 + 𝑟𝑥 2 + 𝑠𝑥 + 𝑡 = 0, maka kebutuhan non fungsional tertera pada Tabel 4.3.
diketahui r = -4, s = -2, dan t = 3.
commit to user
perpustakaan.uns.ac.id digilib.uns.ac.id
ya
Tabel 4.3 Kebutuhan Non Fungsional Kalkulator Pencarian
Akar Kompleks Polinomial Derajat n x1 = (sqrt(d)/2)+p
diskriminan = ((p/3)^3)+((q/2)^2)
Gambar 4.1 Use Case Diagram Program Kalkulator cosA = -q/(2*sqrt((|p|/3)^3)
rad = acos(cosA)
4.3.3 Implementasi
diskriminan > 0 ? tidak x1 = ((-a[2]/3)+(2*sqrt(|p|/3)*cos(rad/3)))
Implementasi program kalkulator dilakukan menggunakan Bahasa
pemrograman Java dengan tampilan Java Swing GUI. Gambar 4.2 x2 = ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad-pi()/3)))
merupakan flowchart rumus kuadrat, Gambar 4.3 merupakan x3 = ((-a[2]/3)-(2*sqrt(|p|/3)*cos(rad+pi()/3)))
flowchart Cardano, Gambar 4.4 merupakan flowchart Bairstow, ya
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
Mulai Mulai
u=0
v=0 u=0
v=0
k=0
k=0
b[k] = a[k]+b[k-1]u+b[k-2]v
k = (n-1) ? tidak
k++
b[k] = a[k]+b[k-1]u+b[k-2]v
k = (n-1) ? tidak
k++
ya
k=0 ya
k=0
u = u + du
v = v +dv
u = u + du
v = v +dv
sq = u * u + 4 * v
sq = u * u + 4 * v
ya
ya
x[n-1] = u/2 + sqrt(-sq) / 2 i
x[n-2] = u/2 +-sqrt(-sq) / 2 i
x[n-1] = u/2 + sqrt(-sq) / 2 i
x[n-2] = u/2 +-sqrt(-sq) / 2 i
n=n–2
a[] = b[]
n=n–2
a[] = b[]
ya
ya
u = -a[n-1] / a[n-2]
x[0] = -a[0] / a[1] u = -a[n-1] / a[n-2]
v = -a[n] / a[n-2]
x[0] = -a[0] / a[1] v = -a[n] / a[n-2]
sq = u * u + 4 * v
sq = u * u + 4 * v
ya
ya
Selesai Selesai
Gambar 4.4 Flowchart Algoritma Bairstow Gambar 4.5 Flowchart Algoritma Revisi Bairstow
commit to user
perpustakaan.uns.ac.id digilib.uns.ac.id
Mulai
4.4 Hasil Implementasi Program Kalkulator
Input koefisien
Gambar 4.8 merupakan hasil implementasi program kalkulator
a[] dan
b[]=null, n,
berupa tampilan antarmuka program kalkulator pencarian akar
epsilon = 1E-8
J=0 kompleks polinomial.
x0 = 1, x2 = 2, x3 =
3
h0 = x0 - x2, h1 = x1 - x2
h2 = h0 * h1 * (h0 – h1)
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))
x3 = x2 – ((2c)/(b-D))
b>=0? tidak
y=c
tidak
ya
x3 = x2 – ((2c)/
(b+D))
y=c
x0 = x1, x1 = x2,
y > epsilon ? tidak
x2 = x3
ya
Gambar 4.8 Antarmuka program kalkulator pencarian akar
x[n-1] = x3 kompleks polinomial
b[] = a[]
4.5 Pengujian Program Kalkulator
n = n -1
i=n Pengujian program kalkulator dilakukan secara manual
menggunakan balck box testing untuk mengetahui kualitas kinerja
program kalkulator. Hasil pengujian menunjukkan seluruh
n=1? tidak i > -1 ?
fungsional pada program kalkulator dapat berfungsi sebagaimana
ya
mesinya. Dari seluruh fungsional dengan jumlah keseluruhan 17
ya
kasus uji, 100% fungsional sistem dapat berjalan dengan baik.
x[n-1] = -1*a[0]
i=n? tidak
a[] = b[i+1] + (a[i+1]*x3)
i--
Hasil pengujian dapat dilihat pada Tabel 4.4.
Tabel 4.4 Hasil Pengujian Kalkulator menggunakan Balckbox
ya
No Deskripsi Jumlah Hasil
x1, x2,x3,...,xn a[] = b[i+1]
i-- Kasus Diterima Tidak
Uji diterima
1 Mencari akar kompleks
Selesai
4 4 0
polinomial derajat 2
Gambar 4.6 Flowchart Algoritma Muller 2 Mencari akar kompleks
4 4 0
Mulai
polinomial derajat 3
3 Mencari akar kompleks
4 4 0
Input polinomial derajat 4
koefisien a[]
4 Mencari akar kompleks
6 6 0
omega1 = (-1 + sqrt(3) i) / 2
polinomial derajat n
omega2 = (-1 - sqrt(3) i) / 2
5 Melihat petunjuk
p = ((3*a[1]) – a[2]^2) / 3
penggunaan dan informasi 1 1 0
q = ((2*a[2]^3)/27) – (a[2]*a[1]/3) + a[0]
program
c = (-q/2) + sqrt((p^3/27) + (q^2/4)) Jumlah 19 19 0
r = c^(1/3)
d = -p/3
4.6 Penyelesaian Polinomial dan Analisa
x1 = r + (d/r)
x2 = (omega1*r) + (d/(omega1*r))
Perbandingan Galat
x3 = (omega2*r) + (d/(omega2*r))
4.6.1 Polinomial Derajat Dua
Pencarian akar kompleks polinomial derajat dua dilakukan
x1, x2,x3
menggunakan rumus kuadrat pada kelima sampel menunjukkan
rata-rata galat yang dihasilkan sangat kecil yaitu sebesar
Selesai
2.81952966549601E-07%. Hasil pencarian akar kompleks
polinomial derajat dua dapat dilihat pada Tabel 4.5.
Gambar 4.7 Flowchart Algoritma Viete’s
commit to user
perpustakaan.uns.ac.id digilib.uns.ac.id
Tabel 4.5 Hasil pencarian akar kompleks derajat dua polinomial hingga semua akar didapat. Pada algoritma Bairstow,
reduksi polinomial dilakukan berdasarkan polinomial kuadrat yang
No Sampel Perhitungan Rumus Kuadrat Perhitungan Matlab
Polinomial dapat setelah variabel u dan v diketahui. Berikut ini reduksi
Akar Galat(%) Akar polinomial berdasarkan algoritma Bairstow :
1. 𝑥 2 + 18𝑥 + 81 -9.0 1.409765E-6 -9.000000
-9.0 1.409765E-6 -8.999999
2
2. 𝑥 − 13𝑥 − 30 15.0 0.0 15.0+0.0i
Pada algoritma Muller, akar kompleks polinomial didapat satu per
-2.0 0.0 -2.0+0.0i
satu pada setiap proses, sehigga polinomial tereduksi didapat
3. 𝑥 2 + 10𝑥 − 14 -11.244998 1.783497E-14 -11.244998 dengan membagi persamaan polinomial dengan akar yang telah
1.244998 1.579686E-14 1.244998 didapat. Reduksi polinomial ini yang menjadi dasar kombinasi
4. 𝑥 2 + 5𝑥 + 11 -2.5+2.179449i 2.146547E-13 -2.500000+2.179449i algoritma. Dengan demikian, pencarian akar kompleks polinomial
pada kombinasi algoritma awalnya dilakukan dengan
-2.5-2.179449i 2.146547E-13 -2.500000-2.179449i
menggunakan algoritma 1 kemudian polinomial direduksi hingga
2
5. 𝑥 − 3𝑥 + 5 1.5+1.65831i 9.930137E-15 1.500000+1.658312i didapat polinomial derajat tiga atau empat. Selanjutnya, pencarian
1.5-1.65831i 9.930137E-15 1.500000-1.658312i akar polinomial derajat tiga atau empat tersebut dilakukan
menggunakan algoritma 2. Tabel 4.8 menampilkan rata-rata galat
4.6.2 Polinomial Derajat Tiga dan iterasi yang dihasilkan pada pencarian akar kompleks
Penyelesaian polinomial derajat tiga dilakukan menggunakan polinomial derajat n.
algoritma Cardano, Viete’s, Bairstow, dan revisi Bairstow. Rata-
rata yang dihasilkan pada penyelesaian lima sampel polinomial Tabel 4.8 Rata-rata galat dan iterasi pada pencarian akar
derajat tiga dapat dilihat pada Tabel 4.6. Rata-rata galat didapat dari kompleks polinomial derajat n
jumlah seluruh galat yang dihasilkan dibagi banyaknya akar yang Kombinasi
No Galat (%) Iterasi
dihasilkan. Algoritma
Tabel 4.6 Rata-rata galat pencarian akar kompleks polinomial 1 Bairstow 2.62347809508259E-09 12
derajat tiga Bairstow –
2 8.8918779643174E-09 10
Revisi Bairstow
Algoritma Rata-Rata galat (%)
Bairstow –
3 1.53555473779719E-06 19
Cardano 1.43568059121049E-13 Muller
Bairstow –
Viete’s 64.15201457 4 5.51058633925391E-10 12
Cardano
Bairstow 1.92955658379859E-09 5 Revisi Bairstow 1.69204593737167E-08 8
Revisi Bairstow
Revisi Bairstow 1.48444243802628E-08 6 2.84040213353398E-09 19
– Bairstow
Berdasarkan Tabel 4.6 algoritma terbaik dalam menyelesaikan Revisi Bairstow
polinomial derajat tiga adalah algoritma Cardano dengan rata-rata 7 7.08557635107149 8
– Muller
galat yaitu 1.43568059121049E-13%. Revisi Bairstow
8 3.72289154574655E-09 7
– Cardano
4.6.3 Polinomial Derajat Empat 9 Muller 2.99043000191301E-05 24
Tabel 4.7 menampilkan rata-rata galat yang dihasilkan pada Muller –
10 2.09544651882645 13
pencarian akar kompleks polinomial derajat empat. Berdasarkan Bairstow
Tabel 4.7, ketiga algoritma dapat menyelesaikan sampel-sampel Muller – Revisi
polinomial derajat empat dengan sangat baik dimana rata-rata galat 11 2.09544649363791 21
Bairstow
yang dihasilkan sangat rendah dan rata-rata iterasi yang dilakukan Muller –
sedikit. Algoritma terbaik dalam penyelesaian polinomial derajat 12 4.27781615793958E-13 10
Cardano
empat adalah algoritma Revisi Bairstow dengan rata-rata galat
yaitu 1.34421873307271E-09% dan rata-rata iterasi yaitu 4.
Berdasarkan Tabel 4.8, diketahui bahwa algoritma terbaik dalam
Tabel 4.7 Rata-rata galat dan iterasi pencarian akar kompleks
menyelesaikan polinomial derajat n adalah Muller – Cardano
polinomial derajat empat
dengan rata-rata galat yaitu 4.27781615793958E-13%. Namun,
Algoritma Galat (%) Iterasi berdasarkan rata-rata jumlah iterasi, algoritma Revisi Bairstow –
Bairstow 2.7918843298595E-08 5 Cardano lebih unggul dengan rata-rata jumlah iterasi yaitu 7 iterasi.
menggunakan metode black box menunjukkan bahwa 100% [8] Conte, S.D. and Boor, C.W.D., “Elementary numerical
fungsional program kalkulator dapat berjalan dengan baik. analysis: an algorithmic approach”, 2nd edn, Amerika:
2. Algoritma terbaik dalam menyelesaikan polinomial derajat McGraw-Hill Companies, Inc, 1972.
tiga adalah algoritma Cardano dengan rata-rata galat sebesar
1.43568059121049E-13%. [9] Mariana, Hendun, “Aplikasi Medote Muller dan Metode
3. Algoritma terbaik dalam menyelesaikan polinomial derajat Bairstow dengan bantuan Matlab dalam menentukan akar-
empat adalah revisi algoritma Bairstow yang menghasilkan akar polinomial’, Skripsi, Universitas Islam Negeri (UIN)
rata-rata galat yaitu 1.34421873307271E-09% dan rata-rata Malang, 2007.
jumlah iterasi yang dilakukan adalah 4. [10] Nickalls, R.W.D., “A new approach to solving the cubic:
4. Algoritma terbaik dalam penyelesaian polinomial derajat n Cardan's solution revealed”, The Mathematical
adalah kombinasi algoritma Muller – Cardano dimana nilai Gazette, 77(480), pp.354-359, 1993.
rata-rata galat yaitu 4.27781615793958E-13%. Namun,
berdasarkan rata-rata jumlah iterasi yang dilakukan, [11] Ming, OR. C., “Solving cubic equations by Viete’s
kombinasi algoritma Revisi Bairstow – Cardano lebih unggul Substitutions”, EduMath29, [on-line]:
dengan rata-rata jumlah iterasi yaitu tujuh iterasi. http://www.hkame.org.hk/uploaded_files/magazine/29/459.p
Untuk pengembangan penelitian selanjutnya disarankan untuk df.
dilakukan penelitian lebih lanjut mengenai media pembelajaran [12] Ayres, Frank. and Schmidt, P.A., “Schaum’s Outlines:
untuk model matematika, khususnya polinomial. Diharapkan Matematika Universitas”, 3rd edn, Jakarta: Erlangga, 2004.
kalkulator media pembelajaran dapat menyelesaikan persamaan
[13] Harris, J.W. and Stöcker, H., “Handbook of mathematics and
polinomial dengan derajat yang lebih tinggi. Algoritma yang
computational science”, Springer Science & Business Media,
digunakan dalam media pembelajaran dapat diperluas dengan
1998.
menggunakan metode numerik lainnya seperti metode Newton-
Raphson dan Secant, sehingga dapat memperluas wawasan [14] Bronshtein, I.N. and Semendyayev, K.A.F., “Handbook of
mengenai algoritma-algoritma tersebut. mathematics”, 6th edn, Springer Science & Business Media,
2015.
6. DAFTAR PUSTAKA [15] Weisstein, Eric W., "Cubic Formula." From MathWorld-- A
[1] Heinich, R., Molenda, M., & Russel, J. D., “Instructional
Wolfram WebResource, [on-
technology for teaching and learning: Designing instruction,
line]:http://mathworld.wolfram.com/CubicFormula.html.
integrating computers and using media”, Upper Saddle River,
NJ.: Merril Prentice Hall, 1996. [16] Mathews, J.H., “Tutorial Exercise for Solving Cubic
Equations”. Department of Mathematics, California State
[2] Susilana, R., and Riyana, C., “Media Pembelajaran: Hakikat,
University Fullerton, [on-line]:
Pengembangan, Pemanfaatan, dan Penilaian”, CV. Wacana
http://mathfaculty.fullerton.edu/mathews/cubics/A50/A00/Cu
Prima, 2009.
bicTutorial.html.
[3] Supriyanto, W. and Muhsin, A., “Teknologi informasi
perpustakaan”, Kanisius, Yogyakarta, 2008 [17] Butt, R. “Introduction to Numerical Analysis Using
MATLAB®”, Jones & Bartlett Learning, 2009.
[4] Munir, Rinaldi, “Metode Numerik”, Bandung : Informatika
Bandung, 2003. [18] Esfandiari, R.S., “Numerical Methods for Engineers and
Scientists using MATLAB®”, CRC Press, 2013.
[5] James, M.L. Smith, G.M. and Wolford, J.C., “Applied
Numerical Methods for Digital Computation”, New York: [19] Mulyanto, A. R., “Rekayasa Perangkat Lunak Jilid 1”.
Harper & Row, 2000. Jakarta: Departemen Pendidikan Nasional, 2008.
[6] Press, W. H., Flannery, B. P., Teukolsky, S. A., Vetterling, W. [20] Sikha, Bagui and Richard Earp. “Database Desain Using
T., & Flannery, B. P, “Numerical Recipes: The Art of Entity-Relationship Diagrams”. Auerbach Publication, 2003.
Scientific Computing (FORTRAN)”. Cambridge University [21] Luthfi, H. W., & Riasti, B. K., "Sistem Informasi Perawatan
Press, New York, 1989. Dan Inventaris Laboratorium Pada Smk Negeri 1 Rembang
[7] Windra, I. Nst, M.L. and Dewi, M.P., “Menentukan akar Berbasis Web", Indonesian Jurnal on Computer Science -
kompleks polinomial dengan Metode Bairstow, UNP Journal Speed (IJCSS) 15, 10(1), 2013.
of Mathematics, 2(1), 2013. [22] Simarmata, Janer, “Rekayasa Perangkat Lunak”, Penerbit
ANDI: Yogyakarta, 2010.
commit to user