top of page
Writer's pictureD A Rosi Arsida Wardani

Pemilihan / Kontrol Program | Workshop 4

Updated: May 28, 2021

Algoritma akar imajiner berbentuk a + bi dengan a dan b bilangan real dan bila harga b^2 - 4ac < 0 dengan menyempurnakan Algoritma Persamaan_Kuadrat.

Algoritma Persamaan_Kuadrat :


Jawab :

Analisis :

  • A dan B adalah bilangan real, maka nilai dari A dan B bisa berupa bilangan rasional dan irrasional beserta negatifnya dan nol. Hal ini berarti tipe data A dan B nantinya adalah double.

  • Bilangan kompleks berbentuk z = a + bi, dengan a sebagai bagian real dari z dan b sebagai bagian imajinari dari z.

  • rumus determinan (disk) yaitu disk = B^2 - 4AC. Dapat ditulis dengan disk = ((B*B) - (4*A*C))

  • Apabila harga B^2 - 4AC < 0 atau disk < 0, maka akar-akarnya tidak real atau imajiner

  • Imajinari didefinisikan sebagai i = sqrt(-1)

Rumus menghitung nilai a :

z = a + bi

a = Re z

a = ((-B) / (2 * A))

Rumus menghitung nilai b :

disk = (B*B) - (4*A*C)

z = a + bi

b = Im z

b = ((sqrt(disk*(-1))) / (2 * A))

Algoritma :

Algoritma Persamaan_Kuadrat

{Menghitung akar-akar persamaan kuadrat Ax^2 + Bx + C = 0}

Deklarasi

A, B, a, b : double {koefisien-koefisien persamaan}

C : integer {koefisien persamaan}

disk : longint {nilai deskriminan}

x1, x2 : real {nilai-nilai akar untuk disk >= 0}

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))

x1 ← ((-B - sqrt (disk))/(2*A))

write (x1, x2)

else if (disk = 0) then

x1 ← (-B/(2*A))

x2 ← x1

write (x1, x2)

else

a ← ((-B) / (2 * A))

b ← ((sqrt(disk*(-1))) / (2 * A))

write ("(a + bi) , (a - bi)")

end if


Flowchart


Program C++

#include <iostream>
#include <math.h>
using namespace std;

class akar{
	friend ostream& operator<<(ostream&, const akar&);
	friend istream& operator>>(istream&, akar&);

	public :
		
		int C;
		double A, B, disk, x1, x2, a, b;
		void seleksi();
	
};

istream& operator>>(istream& in, akar& masuk){
	cout<<"masukkan A : ";
	in>>masuk.A;
	cout<<"masukkan b : ";
	in>>masuk.B;
	cout<<"masukkan c : ";
	in>>masuk.C;
	return in;
}

void akar::seleksi(){
	disk = ((B*B) - (4*A*C));
	if (A == 0)
		cout<<"Bukan Persamaan Kuadrat";
	else if (disk > 0){
		x1 = (-B+sqrt(disk))/(2*A);
		x2 = (-B-sqrt(disk))/(2*A);
		cout << "x1 = " <<x1 <<endl;
		cout << "x2 = " <<x2 <<endl;
	}else if (disk == 0){
		x1 = (-B/(2*A));
		x2 = x1;
		cout<<"("<<x1<<" , "<<x2<")";
	}else{
		a = ((-B) / (2 * A));
		b = ((sqrt(disk*(-1))) / (2 * A));
		cout <<"("<<a<<" + "<<b<<"i) , ("<<a<<" - "<<b<<"i)";
	}
}		

ostream& operator << (ostream& out, akar& keluar){
	keluar.seleksi();
	return out;
}

int main(){
	akar x;
	
	cin>>x;
	cout<<x;

}

Hasil run program :



 

Algoritma, flowchart, dan program untuk menetukan benyaknya hari dalam suatu bulan dan tahun yang diberikan

Jawab :

Algoritma :

Algoritma jumlah_hari

{menentukan jumlah hari dengan mempertimbangkan adanya tahun kabisat}

Deklarasi

tahun, pilih : integer

Deskripsi

read (tahun, pilih)

Pilih (pilih)

1 : write ("bulan Januari jumlah hari 31")

2 : if (tahun%400=0) then

write ("bulan Februari jumlah hari 29")

else if (tahun%100=0) then

write ("bulan Februari jumlah hari 28")

else if (tahun%4=0) then

write ("bulan Februari jumlah hari 29")

else

write ("bulan Februari jumlah hari 28")

end if

3 : write ("bulan Maret jumlah hari 31")

4 : write ("bulan April jumlah hari 30")

5 : write ("bulan Mei jumlah hari 31")

6 : write ("bulan Juni jumlah hari 30")

7 : write ("bulan Juli jumlah hari 31")

8 : write ("bulan Agustus jumlah hari 31")

9 : write ("bulan September jumlah hari 30")

10 : write ("bulan Oktober jumlah hari 31")

11 : write ("bulan November jumlah hari 30")

12 : write ("bulan Desember jumlah hari 31")

else : write ("periksa kembali input anda!")

end {Pilih}


Flowchart


Program C++

#include <iostream>
using namespace std;

class waktu{
	friend ostream& operator<<(ostream&, waktu&);
	friend istream& operator>>(istream&, waktu&);

	public :
		seleksi();
		int tahun, pilih; 
	
};

istream& operator>>(istream& in, waktu& masuk){
	cout<<"masukkan tahun : ";
	in>>masuk.tahun;
	return in;
}

waktu::seleksi(){
	cout<<"Pilih bulan : "<<endl;
	cout<<"1. Januari"<<endl;
	cout<<"2. Februari"<<endl;
	cout<<"3. Maret"<<endl;
	cout<<"4. April"<<endl;
	cout<<"5. Mei"<<endl;
	cout<<"6. Juni"<<endl;
	cout<<"7. Juli"<<endl;
	cout<<"8. Agustus"<<endl;
	cout<<"9. September"<<endl;
	cout<<"10. Oktober"<<endl;
	cout<<"11. November"<<endl;
	cout<<"12. Desember"<<endl;
	cout<<"masukkan pilihan (1-12) : "<<endl;
	cin>>pilih;
	switch (pilih){
		case 1 :
			cout<<"bulan Januari jumlah hari 31";
			break;
		case 2 :
			if (tahun%400==0)
				cout<<"bulan Februari jumlah hari 29";
			else if (tahun%100==0)
				cout<<"bulan Februari jumlah hari 28";
			else if (tahun%4==0)
				cout<<"bulan Februari jumlah hari 29";
			else 
				cout<<"bulan Februari jumlah hari 28";
			break;
		case 3 :
			cout<<"bulan Maret jumlah hari 31";
			break;
		case 4 :
			cout<<"bulan April jumlah hari 30";
			break;
		case 5 :
			cout<<"bulan Mei jumlah hari 31";
			break;
		case 6 :
			cout<<"bulan Juni jumlah hari 30";
			break;
		case 7 :
			cout<<"bulan Juli jumlah hari 31";
			break;
		case 8 :
			cout<<"bulan Agustus jumlah hari 31";
			break;
		case 9 :
			cout<<"bulan September jumlah hari 30";
			break;
		case 10 :
			cout<<"bulan Oktober jumlah hari 31";
			break;
		case 11 :
			cout<<"bulan November jumlah hari 30";
			break;
		case 12 :
			cout<<"bulan Desember jumlah hari 31";
			break;
		default :
			cout<<"periksa kembali input anda!";
			break;
	}
}		

ostream& operator << (ostream& out, waktu& luar){
	luar.seleksi();
	return out;
}

int main(){
	waktu x;
	
	cin>>x;
	cout<<x;

	return 0;
}
	

Hasil run :


 

Algoritma, flowchart, dan program untuk mengecek apakah karakter yang dimasukkan itu merupakan huruf besar, huruf kecil, atau digit.

Jawab :

Algoritma karakter

{mengecek apakah karakter yang dimasukkan itu merupakan huruf besar, huruf kecil, atau digit}

Deklarasi

input : char

Deskripsi

if (input >= 'A' And input <='Z') then

write ("Huruf kapital")

else if (input >= 'a' And input <= 'z') then

write ("Huruf kecil")

else if (input >= '0' And input <= '9') then

write ("Digit")

else

write ("Periksa kembali inputan anda!")

end if

Flowchart

Program C++

#include <iostream>
using namespace std;

class karakter{
	friend ostream& operator<<(ostream&, const karakter&);
	friend istream& operator>>(istream&, karakter&);

	public :
		char input;
		void seleksi();	
};

istream& operator>>(istream& in, karakter& masuk){
	cout<<"inputkan karakter : ";
	in>>masuk.input;
	return in;
}

void karakter::seleksi(){
	if (input>='A'&&input<='Z'){
		cout<<input<<" adalah huruf kapital";
	}else if (input>='a'&&input<='z'){
		cout<<input<<" adalah huruf kecil";
	}else if (input>='0'&&input<='9'){
		cout<<input<<" adalah digit";
	}else{
		cout<<"periksa kembali inputan anda";
	}
}		

ostream& operator << (ostream& out, karakter& keluar){
	keluar.seleksi();
	return out;
}

int main(){
	karakter x;
	
	cin>>x;
	cout<<x;

}

Hasil run :


Recent Posts

See All

One-dimensional Arrays

One-dimensional arrays are data structures that contain data types of the same type. In the form of a group of related memories...

Loop

Introduction Examples of algorithms in everyday life : Example 1 : To finish eating a plate of rice (initial conditions) Mouthfuls of a...

Comments


Post: Blog2_Post
bottom of page