Algoritma dan Program Mencari Akar Imaginer dengan C++
Jika kita sudah memahami cara mencari akar-akar persamaan kuadrat tentunya kita bisa menetukan akar imajinernya. Masih ingat dengan bilangan imaginer ? ya ,
Bilangan imajiner adalah bilangan yang mempunyai sifat i 2 = −1. Bilangan ini biasanya merupakan bagian dari bilangan kompleks. Selain bagian imajiner, bilangan kompleks mempunyai bagian bilangan riil. Secara definisi, (bagian) bilangan imajiner i ini diperoleh dari penyelesaian persamaan kuadratik:
atau secara ekivalen
atau juga sering dituliskan sebagai
.
Algoritma Persamaan_Kuadrat dan akar imaginer
{Membaca A,B, dan C , lalu menghitung akar-akar persamaan kuadrat Ax^2+Bx+C = 0 dengan menentukan nilai disk= B*B– 4*A*C terlebih dahulu barulah kemudian mencari akar-akar persamaan kuadratnya dan akar imaginernya}
Deklarasi
A, B, C : integer {koefisien-koefisien persamaan}
disk : longint {nilai diskriminan}
x1, x2 : real {nilai-nilai akar untuk disk>=0}
XRiil,Ximaginer : float
Deskripsi
read (A, B, C)
disk ß B*B– 4*A*C
if (A = 0) then write (‘Bukan Persamaan Kuadrat’)
else if disk > 0 then
x1 ß-B + sqrt (disk)/2*A
x2 ß-B – sqrt(disk)/2*A
else if disk = 0 then
x1 ß-B/2*A
x2 ß x1
else XRiil ß -b/(2*a)
XImaginer ß sqrt(-D)/(2*a);
end if
Bahasa C++
#include <iostream.h> #include <conio.h> #include <fstream.h> class Persamaan{ friend istream& operator>>(istream&, Persamaan&); friend ostream& operator<<(ostream&, Persamaan&); public: void proses(); void HitungPers1(); void HitungPers2(); void HitungPers3(); private: float a,b,c,D,X,X1,X2,XRiil,XImajiner; }; istream& operator>>(istream& input, Persamaan& Masukan){ cout<<" \t\t PROGRAM MENCARI AKAR PERSAMAAN KUADRAT \n\n"; cout<<" Perhitungan akar-akar persamaan aX2+bX+c= 0\n"; cout<<"Masukkan nilai koefisien a,b,dan c\n"; cout<<"Nilai a: "; input>>Masukan.a; cout<<"Nilai b: "; input>>Masukan.b; cout<<"Nilai c: "; input>>Masukan.c; } ostream& operator<<(ostream& output, Persamaan& Keluaran){ output<<"Akar Persamaan "<<Keluaran.a<<"X2 + "<<Keluaran.b<<"X + "<<Keluaran.c<<"= 0 adalah\n"; if(Keluaran.D>0){Keluaran.HitungPers1();} else if(Keluaran.D==0){Keluaran.HitungPers2();} else{Keluaran.HitungPers3();} } void Persamaan::proses(){ D = b*b-4*a*c; cout<<"Diskriminan =\n "<<D<<endl; } void Persamaan::HitungPers1(){ X1 = (-b+sqrt(D))/(2*a); X2 = (-b-sqrt(D))/(2*a); cout<<" X1 =\n "<<X1; cout<<" X2 =\n "<<X2; } void Persamaan::HitungPers2(){ X = -b/(2*a); cout<<" X1 = X2 = \n"<<X; } void Persamaan::HitungPers3(){ XRiil = -b/(2*a); XImajiner = sqrt(-D)/(2*a); cout<<" Akar imajiner:\n "; cout<<" X1 = "<<XRiil<<"+"<<XImajiner<<"*i\n "; cout<<" X2 = "<<XRiil<<"-"<<XImajiner<<"*i\n "; } int main { Persamaan x; x.proses(); x.HitungPers1(); x.HitungPers2(); x.HitungPers3(); getch(); return 0; }
Baca juga : Peluang Bisnis 2023
Baca juga : Daftar Kampus Terfavorit di Yogyakarta