Berikut ini adalah source code dengan C++ untuk membuat aplikasi operasi pada segitiga. Dalam pembuatan aplikasi ini saya menggunakan pengulangan DO WHILE dan pemilihan IF ELSE. Selain itu saya juga menggunakan fungsi akar sqrt(). Dimana untuk menggunakan fungsi akar diperlukan header file <math.h>.
#include <stdio.h>
#include <math.h>
void main()
{ //deklarsi variable
float a,b,c,luas,keliling,luas2,s,alas,alas2,tinggi,tinggi2;
float setengahalas,setengahalas2,sisimiring,sisimiring2,sisi,sisi2;
int ulangi,jenis,ulangi2;
//awal pengulangan menu utama
do
{
//instruksi menu utama
printf("OPERASI SEGITIGA\n");
printf("Pilih jenis segitiga\n");
printf("1. segitiga sembarang\n");
printf("2. segitiga siku-siku\n");
printf("3. segitiga sama kaki\n");
printf("4. segitiga sama sisi\n");
scanf_s("%d",&jenis);
//masuk ke pilihan segitiga sembarang
if(jenis==1)
{
//awal pengulangan segitiga sembarang
do
{
//cetak instruksi segitiga sembarang
printf("Masukan ketiga sisi segitiga sembarang.\n");
printf("sisi a = ");
scanf_s("%f",&a);
printf("sisi b = ");
scanf_s("%f",&b);
printf("sisi c = ");
scanf_s("%f",&c);
//operasi bila data input error
if(a<=0 || b<=0 || c<=0)
{
printf("Maaf, data yang anda masukan tidak valid.\n");
printf("Apakah anda ingin mencoba lagi?\n");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n\n\n");
scanf_s("%d",&ulangi);
}
//operasi segitiga sembarang
else
{
keliling=a+b+c;
s=keliling/2;
luas2=s*(s-a)*(s-b)*(s-c);
luas=sqrt(luas2);
}
//cetak hasil segitiga sembarang
printf("sisi pertama = %f\n",a);
printf("sisi kedua = %f\n",b);
printf("sisi ketiga = %f\n",c);
printf("Luas = %f\n",luas);
printf("Keliling = %f\n\n\n",keliling);
printf("Apakah anda ingin melakukan perhitungan lagi? \n");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n");
scanf_s("%d",&ulangi);
}
//akhir pengulangan segitiga sembarang
while(ulangi==1);
}
//masuk ke segitigasiku-siku
else if(jenis==2)
{
//awal pengulangan segitiga siku-siku
do
{
//cetak instruksi segitiga siku-siku
printf("Masukan elemen segitiga siku-siku.\n");
printf("(bila tidak diketahui, masukan angka 0\n");
printf("alas = \n");
scanf_s("%f",&alas);
printf("tinggi = \n");
scanf_s("%f",&tinggi);
printf("sisi miring = \n");
scanf_s("%f",&sisimiring);
//operasi bila hanya diketahui alas dan tinggi segitiga siku-siku
if(alas!=0 && tinggi!=0 && sisimiring==0)
{
alas2=pow(alas,2);
tinggi2=pow(tinggi,2);
sisimiring2=tinggi2+alas2;
sisimiring=sqrt(sisimiring2);
luas=alas*tinggi/2;
keliling=alas+tinggi+sisimiring;
}
//operasi bila hanya diketahui alas dan sisi miring segitiga siku-siku
else if(alas!=0 && sisimiring!=0 && tinggi==0)
{
alas2=pow(alas,2);
sisimiring2=pow(sisimiring,2);
tinggi2=sisimiring2-alas2;
tinggi=sqrt(alas2);
luas=alas*tinggi/2;
keliling=alas+tinggi+sisimiring;
}
//operasi bila hanya diketahui tinggi dan sisi miring segitiga siku-siku
else if(tinggi!=0 && sisimiring!=0 && alas==0)
{
tinggi2=pow(tinggi,2);
sisimiring2=pow(sisimiring,2);
alas2=sisimiring2-tinggi2;
alas=sqrt(alas2);
luas=alas*tinggi/2;
keliling=alas+tinggi+sisimiring;
}
//operasi bila data yang dimasukan error
else
{
printf("Maaf, data yang anda masukan tidak valid.\n");
printf("Apakah anda ingin mencoba lagi?\n");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n\n\n");
scanf_s("%d",&ulangi);
}
//cetak hasil segitiga siku-siku
printf("alas = %f\n",alas);
printf("tinggi = %f\n",tinggi);
printf("sisi miring = %f\n",sisimiring);
printf("luas = %f\n",luas);
printf("keliling = %f\n\n\n",keliling);
printf("Apakah anda ingin mengulang perhitungan?\n");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n");
scanf_s("%d",&ulangi);
}
//akhir pengulangan segitiga siku-siku
while(ulangi==1);
}
//masuk ke pilihan segitiga sama kaki
else if(jenis==3)
{
//awal pengulangan segitiga sama kaki
do
{
//cetak instruksi
printf("Masukan elemen segitiga sama kaki\n");
printf("Bila tidak diketahui, masukan angka 0.\n");
printf("alas = ");
scanf_s("%f",&alas);
printf("tinggi = ");
scanf_s("%f",&tinggi);
printf("sisi miring = ");
scanf_s("%f",&sisimiring);
//operasi bila hanya diketahui alas dan tinggi segitiga sama kaki
if(alas!=0 && tinggi!=0 && sisimiring==0)
{
setengahalas=alas/2;
setengahalas2=setengahalas*setengahalas;
tinggi2=tinggi*tinggi;
sisimiring2=tinggi2+setengahalas2;
sisimiring=sqrt(sisimiring2);
luas=setengahalas*tinggi;
keliling=sisimiring*2+alas;
}
//operasi bila hanya diketahui alas dan sisi miring segitiga sama kaki
else if(alas!=0 && tinggi==0 && sisimiring!=0)
{
setengahalas=alas/2;
setengahalas2=pow(setengahalas,2);
sisimiring2=pow(sisimiring,2);
tinggi2=sisimiring2-setengahalas2;
tinggi=sqrt(tinggi2);
luas=setengahalas*tinggi;
keliling=sisimiring*2+alas;
}
//operasi bila hanya dioketahui tinggi dan sisi miring segitiga sama kaki
else if(alas==0 && tinggi!=0 && sisimiring!=0)
{
sisimiring2=pow(sisimiring,2);
tinggi2=pow(tinggi,2);
setengahalas2=sisimiring2-tinggi2;
setengahalas=sqrt(setengahalas2);
luas=setengahalas*tinggi;
keliling=sisimiring*2+alas;
}
//operasi bila data error
else
{
printf("Maaf, data yang anda masukan tidak valid.\n");
printf("Apakah anda ingin mencoba lagi?\n");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n\n\n");
scanf_s("%d",&ulangi);
}
//cetak hasil segitiga sama kaki
printf("alas = %f\n",alas);
printf("tinggi = %f\n",tinggi);
printf("sisi miring = %f\n",sisimiring);
printf("luas = %f\n",luas);
printf("keliling = %f\n\n\n",keliling);
printf("Apakah anda ingin mengulang perhitungan?");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n");
scanf_s("%d",&ulangi);
}
//akhir pengulangan segitiga sama kaki
while(ulangi==1);
}
//masuk ke pilihan segitiga sama sisi
else if(jenis==4)
{
//awal pengulangan segitiga sama sisi
do
{
//cetak instruksi
printf("Masukan elemen segitiga sama sisi.\n");
printf("Bila tidak diketahui masukan angka 0.\n");
printf("sisi = ");
scanf_s("%f",&sisi);
printf("luas = ");
scanf_s("%f",&luas);
printf("keliling = ");
scanf_s("%f",&keliling);
//operasi bila sisi yang diketahui
if(sisi!=0)
{
luas=sisi*sisi/4*1.732051;
keliling=sisi*3;
}
//operasi bila luas yang diketahui
else if(luas!=0)
{
sisi2=luas*4/1.732051;
sisi=sqrt(sisi2);
keliling=sisi*3;
}
//operasi bila keliling yang diketahui
else if(keliling!=0)
{
sisi=keliling/3;
luas=sisi*sisi/4*1.732051;
}
//cetak hasil segitiga sama sisi
printf("sisi = %f\n",sisi);
printf("luas = %f\n",luas);
printf("keliling = %f\n\n\n",keliling);
printf("Apakah anda ingin mengulang perhitungan?");
printf("1. YA\n");
printf("2. TIDAK(kembali ke menu utama)\n");
printf("3. TIDAK(keluar)\n");
scanf_s("%d",&ulangi);
}
//akhir pengulangan segitiga sama sisi
while(ulangi==1);
}
//pemberitahuan bila pilihan pada menu utama salah
else
{
printf("Maaf pilihan anda salah, apakah anda ingin mengulangi?\n");
printf("1. YA\n");
printf("2. TIDAK(keluar)");
scanf_s("%d",&ulangi2);
}
}
//akhir pengulangan menu utama
while(ulangi==2 || ulangi2==1);
}
Read more...