#include <stdlib.h>
#include <string.h>
float Kali(float bil1, float bil2), Tambah(float bil1, float bil2), Bagi(float bil1, float bil2), Kurang(float bil1, float bil2), hasilKali, hasilTambah, hasilBagi, hasilKurang, Pangkat(float bil1, float bil2), Faktorial(float bil1);
int main(){
struct psd
{
char NIM[10];
char Nama[20];
char password1[10];
char password2[10];
}psd;
int pilihan, pilihan2;
float a,b;
int benar=1,salah=0,nama1,nama2;
while (benar == 1)
{
printf ("Password 1 : ");
gets(psd.password1);
printf ("Password 2 : ");
gets(psd.password2);
nama1=strcmp(psd.password1,"Evi");
nama2=strcmp(psd.password2,"Septiyani");
if (nama1==0 && nama2==0)
{
printf ("=======Login Berhasil======\n\n",psd.password1,psd.password2);
benar = 1;
printf("Nama : ");
gets(psd.Nama);
printf("NIM : ");
gets(psd.NIM);
printf("\n\nSelamat Datang %s",psd.Nama);
printf(" dengan NIM %s\n\n",psd.NIM);
atas:
printf("********************************************\n");
printf("* Evi's Kalkulator *\n");
printf("********************************************\n\n");
printf("1.Operasi Perkalian\n");
printf("2.Operasi Penjumlahan\n");
printf("3.Operasi Pembagian\n");
printf("4.Operasi Pengurangan\n");
printf("5.Operasi Pemangkatan\n");
printf("6.Operasi Faktorial\n\n");
printf("Pilih salah satu operasi di atas : ");
scanf_s("%d",&pilihan);
printf("\n");
printf("********************************************\n\n\n");
switch(pilihan)
{
case 1 :
printf("Perkalian bilangan \n\n");
printf("Masukan bilangan pertama : ");
scanf_s("%f",&a);
printf("Masukan bilangan kedua : ");
scanf_s("%f",&b);
printf("\n");
printf("Hasil perkaliannya adalah : %f\n",Kali(a,b));
break;
case 2 :
printf("Penjumlahan bilangan \n\n");
printf("Masukan bilangan pertama : ");
scanf_s("%f",&a);
printf("Masukan bilangan kedua : ");
scanf_s("%f",&b);
printf("\n");
printf("Hasil penjumlahannya adalah : %f\n",Tambah(a,b));
break;
case 3 :
printf("Pembagian bilangan \n\n");
printf("Masukan bilangan pertama : ");
scanf_s("%f",&a);
printf("Masukan bilangan kedua : ");
scanf_s("%f",&b);
printf("\n");
printf("Hasil pembagiannya adalah : %f\n",Bagi(a,b));
break;
case 4 :
printf("Pengurangan bilangan \n\n");
printf("Masukan bilangan pertama : ");
scanf_s("%f",&a);
printf("Masukan bilangan kedua : ");
scanf_s("%f",&b);
printf("\n");
printf("Hasil pengurangannya adalah : %f\n",Kurang(a,b));
break;
case 5 :
printf("Pemangkatan bilangan \n\n");
printf("Masukan bilangan yang dipangkatkan : ");
scanf_s("%f",&a);
printf("Masukan pangkat : ");
scanf_s("%f",&b);
printf("\n");
printf("Hasil pemangkatannya adalah : %f\n",Pangkat(a,b));
case 6 :
printf("Pemangkatan bilangan \n\n");
printf("Masukan bilangan bulat positif : ");
scanf_s("%f",&a);
printf("\n");
printf("Hasil faktorialnya adalah : %f\n",Faktorial(a));
break;
default : printf("Anda Tidak Menginputkan Perintah Operasi Apapun");
}
printf("\n\nApakah Anda Ingin Keluar?");
printf("\n1. Tidak\n");
printf("2. Ya\n");
scanf_s("%d",&pilihan2);
if(pilihan2==1)
{ goto atas;
return(0);
}
else{
salah = 0;
break;
}
}
else
{
if (salah == 3)
{
printf("Akses Ditolak\n");
salah = 0;
break;
}
else
{
printf("Password Salah\n\n");
salah++;
}
}
}
}
float Kali(float bil1,float bil2)
{
hasilKali= bil1*bil2;
return hasilKali;
}
float Tambah(float bil1,float bil2)
{
hasilTambah= bil1+bil2;
return hasilTambah;
}
float Bagi(float bil1,float bil2)
{
hasilBagi= bil1/bil2;
return hasilBagi;
}
float Kurang(float bil1,float bil2)
{
hasilKurang= bil1-bil2;
return hasilKurang;
}
float Pangkat(float bil1, float bil2){
if (bil2 == 0)
return 1;
else
return bil1 * Pangkat(bil1,bil2-1);
}
float Faktorial(float bil1)
{
if (bil1==0)
return 1;
else
return bil1*Faktorial(bil1-1);
}
Program ini mengenai
aplikasi kalkulator sederhana yaitu kalkulator yang hanya terdiri 4 operasi
dasar perhitungan yaitu perkalian, penjumlahan, pembagian, dan pengurangan,
namun sekarang ditambahkan operasi pemangkatan dan faktorial.
Di sini digunakan sistem switch case
saat melakukan pemilihan operasi perhitungan misalnya saat pemilihan operasi
perhitungan perkalian, maka user akan menginputkan angka 1 untuk melakukan
operasi perhitungan. Maka akan muncul untuk menginputkan bilangan 1 dan 2, saat
di enter maka hasil dari operasi perkalian 2 bilangan tersebut akan muncul.
Kemudian selesainya perhitungan akan muncul juga pertanyaan “Apakah Anda Ingin
Keluar?” Apabila Tidak, maka aplikasi akan dijalankan kembali atau maksudnya
kembali ke program awal, sedangkan Ya, maka akan keluar dari aplikasi.
Perbedaan dengan yang sebelumnya setelah pemakaian fungsi yang saat itu switch
case di atas hanya untuk menginputkan data serta menampilkan hasil operasi,
sedangkan untuk fungsi berhubung ada diluar dari fungsi main, jadi caranya
yaitu dengan memanggil fungsi tersebut. Kali ini ditambahkan fungsi login,
dengan menginputkan password1 dan 2 dengan menggunakan string yang
dideklarasikan menggunakan fungsi struct dan juga menggunakan array. Selain
itu, juga dibuat fungsi rekursif faktorial dan pemngkatan. Jadi pada saat user
memilih operasi pemangkatan atau faktorial maka akan dijalankan fungsi rekursif
pada fungsi diluar int main.
Untuk lebih jelasnya bisa dilihat melalui video yang terdapat pada link ini http://youtu.be/G0KTqcX04Zs
Semangaaaaaat :) ^^