Created
December 30, 2024 03:53
-
-
Save fadhil-riyanto/2daa645ad3813207a21cb56c15aff330 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <cmath> | |
#include <cctype> | |
using namespace std; | |
// cara compile : klik ctrl + ` lalu tulis "// caranya klik ctrl + | |
// lalu tulis "clear && g++ advcalc.cpp && ./a.out" | |
// untuk menjalankan, tulis ini di terminala | |
// judul : AdvCalc | |
// tanggal : 13 november 2024 | |
// Kamus | |
string menu_pilihan_string; | |
int angka_pertama_perkalian; | |
int angka_kedua_perkalian; | |
int angkake1_pertambahan; | |
int angkake2_pertambahan; | |
int angkake1_pembagian; | |
int angkake2_pembagian; | |
int angkake1_perkurangan; | |
int angkake2_perkurangan; | |
int panjangsisi_volumekubus; | |
int angkake1_volumebalok; | |
int angkake2_volumebalok; | |
int angkake3_volumebalok; | |
int hasil; | |
int status_berhenti; | |
char ingin_keluar; | |
int pers_A; | |
int pers_B; | |
int pers_C; | |
int input_pilihan_mode_pecahan; | |
// kamus untuk mode trigonometri | |
int input_pilihan_mode_trig; | |
float input_derajat_trig; | |
float output_hitung_trig; | |
float x1; | |
float x2; | |
int status_output; | |
// kamus untuk operasi pecahan | |
int isi_pembilang_pec1; | |
int isi_penyebut_pec1; | |
int isi_pembilang_pec2; | |
int isi_penyebut_pec2; | |
int hasil_pembilang_atas; | |
int hasil_penyebut_bawah; | |
int hasil_penyederhanaan_penyebut; | |
int hasil_penyederhanaan_pembilang; | |
int input_faktorial; | |
int hasil_faktorial; | |
void tampilkan_pilihan_menu_utama() | |
{ | |
cout<<"\033[0;33m [ 1 ] Perkalian :" << "\033[0;33m [ 6 ] volume Balok : " << "\033[0;33m [ 11 ] Help : "<< endl; | |
cout<<"\033[0;33m [ 2 ] Pertambahan :" << "\033[0;33m [ 7 ] Persamaan Kuadrat : "<< endl; | |
cout<<"\033[0;33m [ 3 ] Pembagian :" << "\033[0;33m [ 8 ] Operasi Pecahan : "<< endl; | |
cout<<"\033[0;33m [ 4 ] Pengurangan :" << "\033[0;33m [ 9 ] Trigonometry : "<< endl; | |
cout<<"\033[0;33m [ 5 ] volume Kubus :" << "\033[0;33m [ 10 ] Faktorial : "<< endl; | |
} | |
void tampilkan_logo() | |
{ cout<<endl; | |
cout<<"\033[0;33m █████╗ ██████╗ ██╗ ██╗ ██████╗ █████╗ ██╗ ██████╗\033[0m" << endl; | |
cout<<"\033[0;33m ██╔══██╗██╔══██╗██║ ██║ ██╔════╝██╔══██╗██║ ██╔════╝\033[0m" << endl; | |
cout<<"\033[0;33m ███████║██║ ██║██║ ██║█████╗██║ ███████║██║ ██║ \033[0m" << endl; | |
cout<<"\033[0;33m ██╔══██║██║ ██║╚██╗ ██╔╝╚════╝██║ ██╔══██║██║ ██║ \033[0m" << endl; | |
cout<<"\033[0;33m ██║ ██║██████╔╝ ╚████╔╝ ╚██████╗██║ ██║███████╗╚██████╗\033[0m" << endl; | |
cout<<"\033[0;33m ╚═╝ ╚═╝╚═════╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═════╝\033[0m" << endl; | |
cout<<"\033[0;34m =========================================================\033[0m" << endl; | |
cout<<"\033[0;36m | Advanced calculator by: - Fadhil Riyanto | \033[0m" << endl; | |
cout<<"\033[0;36m | - Rizky Delfa Ramadhani | \033[0m" << endl; | |
cout<<"\033[0;36m | - Rezqy Tatya Anza | \033[0m" << endl; | |
cout<<"\033[0;34m =========================================================\033[0m" << endl; | |
cout<< endl; | |
} | |
void tampilkan_help() { | |
cout << "\n\033[0;34m==================== HELP - Advanced Calculator ====================\033[0m\n"; | |
cout << "\033[0;36mCara Menggunakan Program AdvCalc:\033[0m\n"; | |
cout << "1. Jalankan program ini di terminal Anda.\n"; | |
cout << "2. Setelah program dimulai, Anda akan melihat beberapa opsi menu.\n"; | |
cout << "3. Pilih operasi yang ingin dijalankan dengan memasukkan nomor menu:\n"; | |
cout << " - [1] Perkalian\n"; | |
cout << " - [2] Pertambahan\n"; | |
cout << " - [3] Pembagian\n"; | |
cout << " - [4] Pengurangan\n"; | |
cout << " - [5] Volume Kubus\n"; | |
cout << " - [6] Volume Balok\n"; | |
cout << " - [7] Persamaan Kuadrat\n"; | |
cout << " - [8] Operasi Pecahan\n"; | |
cout << " - [9] Trigonometry\n"; | |
cout << " - [10] Faktorial\n"; | |
cout << " - [11] Help\n"; // Menambahkan opsi Help | |
cout << "4. Masukkan angka yang diminta oleh program untuk menyelesaikan operasi yang dipilih.\n"; | |
cout << "5. Setelah hasil muncul, Anda akan ditanya apakah ingin keluar (y/n).\n"; | |
cout << " - Ketik 'y' untuk keluar dari program atau 'n' untuk kembali ke menu.\n"; | |
cout << "\033[0;33mTips:\033[0m Gunakan kombinasi \033[1;32mCtrl + `\033[0m untuk membuka terminal di beberapa editor.\n"; | |
cout << "==================================================================\n\n"; | |
} | |
void bersihkan_layar() | |
{ | |
std::cout << "\x1B[2J\x1B[H"; | |
} | |
int hitung_perkalian(int angka_1, int angka_2) { | |
return angka_1 * angka_2; | |
} | |
int hitug_pertambahan (int angka_1, int angka_2) { | |
return angka_1 + angka_2; | |
} | |
int hitung_pembagian (int angka_1, int angka_2) { | |
return angka_1 / angka_2; | |
} | |
int hitung_penkurangan (int angka_1, int angka_2) { | |
return angka_1 - angka_2; | |
} | |
int hitung_volumekubus (int angka_1) { | |
return angka_1 * angka_1 * angka_1; | |
} | |
int hitung_volumebalok (int angka_1, int angka_2, int angka_3) { | |
return angka_1 * angka_2 * angka_3; | |
} | |
float hitung_rumus_abc(int a, int b, int c, string mode) | |
{ | |
// rumus determinan adlh akar(b^2 - 4ac) | |
float determinan = sqrt((b * b) - 4 * a * c); | |
if (mode == "xpositif") | |
{ | |
return (-b + determinan) / (2 * a); | |
} | |
else if (mode == "xnegatif") | |
{ | |
return (-b - determinan) / (2 * a); | |
} | |
// cout << determinan << endl; | |
return 0; | |
} | |
int konfirmasi_ingin_keluar() { | |
cout << "\033[0;31mapakah anda ingin keluar? (y/n) : "; | |
cin >> ingin_keluar; | |
std::cout << "\x1B[2J\x1B[H"; | |
if (ingin_keluar == 'y' || ingin_keluar == 'Y') { | |
return 1; | |
} else { | |
return 0; | |
} | |
} | |
int cari_angka_yg_bisa_bagi_habis(int pembilang, int penyebut) | |
{ | |
if (penyebut == 0) { | |
return pembilang; | |
} | |
return cari_angka_yg_bisa_bagi_habis(penyebut, pembilang % penyebut); // ini namanya fungsi rekursif | |
} | |
int simpelkan_bentuk_per(int pembilang, int penyebut, string mode_keluaran) { | |
int angka_ygbisa_bagi_habis = cari_angka_yg_bisa_bagi_habis(pembilang, penyebut); | |
int hasil_pembilang = pembilang / angka_ygbisa_bagi_habis; | |
int hasil_penyebut = penyebut / angka_ygbisa_bagi_habis; | |
if (mode_keluaran == "pembilang") { | |
return hasil_pembilang; | |
} else if (mode_keluaran == "penyebut") { | |
return hasil_penyebut; | |
} | |
return 0; | |
} | |
// fungsi untuk pecahan start dr disini ya | |
int tambahkan_pecahan(int atas, int bawah, int lawan_nya_atas, int lawan_nya_bawah, string mode) | |
{ | |
// bentuk cara menambahkan pecahan | |
// a / b + c / d = (a * d) + (b * c) / b * d | |
if (mode == "pembilang") { | |
// perkalian silang yg menghasilkan atas | |
return (atas * lawan_nya_bawah) + (bawah * lawan_nya_atas); | |
} else { | |
return bawah * lawan_nya_bawah; | |
} | |
} | |
int kalikan_pecahan(int atas, int bawah, int lawan_nya_atas, int lawan_nya_bawah, string mode) | |
{ | |
// bentuk cara menambahkan pecahan | |
// a / b * c / d = (a * c) / (b * d) | |
if (mode == "pembilang") { | |
// perkalian silang yg menghasilkan atas | |
return atas * lawan_nya_atas; | |
} else { | |
return bawah * lawan_nya_bawah; | |
} | |
} | |
int kurangkan_pecahan(int atas, int bawah, int lawan_nya_atas, int lawan_nya_bawah, string mode) | |
{ | |
// a / b + c / d = (a * d) + (b * c) / b * d | |
if (mode == "pembilang") { | |
// perkalian silang yg menghasilkan atas | |
return (atas * lawan_nya_bawah) - (lawan_nya_atas * bawah); | |
} else { | |
return bawah * lawan_nya_bawah; | |
} | |
} | |
int bagi_pecahan(int atas, int bawah, int lawan_nya_atas, int lawan_nya_bawah, string mode) | |
{ | |
// bentuk cara menambahkan pecahan | |
// a / b / c / d = (a / b) * (d / c) // dibalik pecahaan nya c / d nya | |
if (mode == "pembilang") { | |
// perkalian silang yg menghasilkan atas | |
return (atas * lawan_nya_bawah); | |
} else { | |
return (bawah * lawan_nya_atas); | |
} | |
} | |
// ditambahkan dr file pecahan.cpp jam 11.23 | |
string isi_kekosongan_dgn_spasi(int angka, int digit) | |
{ | |
string angkakestring = to_string(angka); | |
int jumlah_string = angkakestring.length(); | |
string spasi_yg_disiappkan = ""; | |
if (jumlah_string == digit) { | |
// tidak perlu menyisipkan lagi | |
return " " + angkakestring + " "; | |
} else { | |
// perlu disii dgn spasi | |
for(int i = 0; i < (digit - jumlah_string); i++) { | |
spasi_yg_disiappkan = spasi_yg_disiappkan + " "; | |
} | |
// gabungkan | |
return " " + angkakestring + spasi_yg_disiappkan + " "; | |
} | |
} | |
int terbesardr6data(int data1, int data2, int data3, int data4, int data5, int data6) | |
{ | |
int gak_kepake_lg = 0; | |
if (data1 < data2) | |
{ | |
gak_kepake_lg = data1; | |
data1 = data2; | |
data2 = gak_kepake_lg; | |
} | |
if (data1 < data3) { | |
gak_kepake_lg = data1; | |
data1 = data3; | |
data3 = gak_kepake_lg; | |
} | |
if (data1 < data4) { | |
gak_kepake_lg = data1; | |
data1 = data4; | |
data4 = gak_kepake_lg; | |
} | |
if (data1 < data5) { | |
gak_kepake_lg = data1; | |
data1 = data5; | |
data5 = gak_kepake_lg; | |
} | |
if (data1 < data6){ | |
gak_kepake_lg = data1; | |
data1 = data6; | |
data6 = gak_kepake_lg; | |
} | |
return data1; | |
} | |
void tampilkan_pecahan( int pembilang_pers1, int penyebut_pers1, | |
int pembilang_pers2, int penyebut_pers2, | |
int pembilang, int penyebut, char tipe_operator_sekarang) | |
{ | |
int terbesar_drsemua = terbesardr6data(pembilang_pers1, | |
penyebut_pers1, pembilang_pers1, | |
penyebut_pers2, pembilang, penyebut); | |
string angka_ver_string = to_string(terbesar_drsemua); | |
int jmldigit = angka_ver_string.length(); | |
cout << isi_kekosongan_dgn_spasi(pembilang_pers1, jmldigit) << " " << isi_kekosongan_dgn_spasi(pembilang_pers2, jmldigit) << " " << isi_kekosongan_dgn_spasi(pembilang, jmldigit) << endl; | |
for(int i = 0; i < jmldigit + 2; i++) { | |
cout << "-"; | |
} | |
cout << " " << tipe_operator_sekarang << " "; | |
for(int i = 0; i < jmldigit + 2; i++) { | |
cout << "-"; | |
} | |
cout << " " << "=" << " "; | |
for(int i = 0; i < jmldigit + 2; i++) { | |
cout << "-"; | |
} | |
cout << endl; | |
cout << isi_kekosongan_dgn_spasi(penyebut_pers1, jmldigit) << " " << isi_kekosongan_dgn_spasi(penyebut_pers2, jmldigit) << " " << isi_kekosongan_dgn_spasi(penyebut, jmldigit) << endl; | |
} | |
// fungsi untk pecahan stop | |
// fungsi khusus trigonometri dimulai | |
float ubah_derajatkeradian(float derajat) | |
{ | |
return derajat * (M_PI / 180); | |
} | |
void tampilkan_menu_trigonometri() | |
{ | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout<<"\033[0;36mFungsi Trigonometri yang tersedia: " << endl; | |
cout<<"\033[0;33m [ 1 ] sin() " << endl; | |
cout<<"\033[0;33m [ 2 ] cos() " << endl; | |
cout<<"\033[0;33m [ 3 ] tan() " << endl; | |
} | |
void fungsi_khusus_op_ngitung_trig() | |
{ | |
tampilkan_menu_trigonometri(); | |
cout<<"\033[0;36mmasukkan menu > " ; | |
cin >> input_pilihan_mode_trig; | |
if (input_pilihan_mode_trig == 1) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "[mode fungsi sin()]" << endl; | |
cout << "\033[0;33mMasukkan derajat: "; | |
cin >> input_derajat_trig; | |
output_hitung_trig = sinf(ubah_derajatkeradian(input_derajat_trig)); | |
cout << "sin(" << input_derajat_trig << ") = " << output_hitung_trig << endl; | |
} else if (input_pilihan_mode_trig == 2) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "[mode fungsi cos()]" << endl; | |
cout << "\033[0;33mMasukkan derajat: "; | |
cin >> input_derajat_trig; | |
output_hitung_trig = cosf(ubah_derajatkeradian(input_derajat_trig)); | |
cout << "cos(" << input_derajat_trig << ") = " << output_hitung_trig << endl; | |
} else if (input_pilihan_mode_trig == 3) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "[mode fungsi tan()]" << endl; | |
cout << "\033[0;33mMasukkan derajat: "; | |
cin >> input_derajat_trig; | |
output_hitung_trig = tanf(ubah_derajatkeradian(input_derajat_trig)); | |
cout << "tan(" << input_derajat_trig << ") = " << output_hitung_trig << endl; | |
} else { | |
cout << "\033[1;31mWaduh, mode tidak dikenali !" << endl; | |
} | |
} | |
// fungsi ini khusus untuk operasi pecahan, penjumlahan, perkalian, tambah, dll | |
void fungsi_khusus_op_pecahan() | |
{ | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout<<"\033[0;36mIngin melakukan apa dengan pecahan? " << endl; | |
cout<<"\033[0;33m [ 1 ] penjumlahan pecahan " << endl; | |
cout<<"\033[0;33m [ 2 ] perkalian pecahan " << endl; | |
cout<<"\033[0;33m [ 3 ] pengurangan pecahan " << endl; | |
cout<<"\033[0;33m [ 4 ] pembagian pecahan " << endl; | |
cout<<"\033[0;36m [ 9 ] kembali ke menu utama " << endl; | |
cout<<"\033[0;36mmasukkan menu > " ; | |
cin >> input_pilihan_mode_pecahan; | |
if (input_pilihan_mode_pecahan == 1) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "\033[0;36m[MODE PENJUMLAHAN PECAHAN]" << endl; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 1): "; | |
cin >> isi_pembilang_pec1; | |
cout << "Masukkan penyebut (pecahan 1) : "; | |
cin >> isi_penyebut_pec1; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 2): "; | |
cin >> isi_pembilang_pec2; | |
cout << "Masukkan penyebut (pecahan 2) : "; | |
cin >> isi_penyebut_pec2; | |
// cek apakah penyebut ada yg isi na nol atau engga | |
if (isi_penyebut_pec1 == 0 && isi_penyebut_pec2 == 0) { | |
cout << "\033[1;31mWaduh, dilarang membagi dengan 0 !" << endl; | |
} else { | |
cout << "\033[0;36m-----------------------" << endl; | |
hasil_pembilang_atas = tambahkan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
"pembilang"); | |
hasil_penyebut_bawah = tambahkan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, isi_penyebut_pec2, | |
"penyebut"); | |
hasil_penyederhanaan_pembilang = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "pembilang"); | |
hasil_penyederhanaan_penyebut = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "penyebut"); | |
tampilkan_pecahan(isi_pembilang_pec1, | |
isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
hasil_penyederhanaan_pembilang, | |
hasil_penyederhanaan_penyebut, '+'); | |
} | |
// nb: yg pembagian belum selese | |
} else if (input_pilihan_mode_pecahan == 2) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "\033[0;36m[MODE PERKALIAN PECAHAN]" << endl; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 1): "; | |
cin >> isi_pembilang_pec1; | |
cout << "Masukkan penyebut (pecahan 1) : "; | |
cin >> isi_penyebut_pec1; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 2): "; | |
cin >> isi_pembilang_pec2; | |
cout << "Masukkan penyebut (pecahan 2) : "; | |
cin >> isi_penyebut_pec2; | |
// cek apakah penyebut ada yg isi na nol atau engga | |
if (isi_penyebut_pec1 == 0 && isi_penyebut_pec2 == 0) { | |
cout << "\033[1;31mWaduh, dilarang membagi dengan 0 !" << endl; | |
} else { | |
cout << "\033[0;36m-----------------------" << endl; | |
hasil_pembilang_atas = kalikan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
"pembilang"); | |
hasil_penyebut_bawah = kalikan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, isi_penyebut_pec2, | |
"penyebut"); | |
hasil_penyederhanaan_pembilang = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "pembilang"); | |
hasil_penyederhanaan_penyebut = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "penyebut"); | |
tampilkan_pecahan(isi_pembilang_pec1, | |
isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
hasil_penyederhanaan_pembilang, | |
hasil_penyederhanaan_penyebut, 'x'); | |
} | |
// return 0; | |
} else if (input_pilihan_mode_pecahan == 3) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "\033[0;36m[MODE PENGURANGAN PECAHAN]" << endl; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 1): "; | |
cin >> isi_pembilang_pec1; | |
cout << "Masukkan penyebut (pecahan 1) : "; | |
cin >> isi_penyebut_pec1; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 2): "; | |
cin >> isi_pembilang_pec2; | |
cout << "Masukkan penyebut (pecahan 2) : "; | |
cin >> isi_penyebut_pec2; | |
// cek apakah penyebut ada yg isi na nol atau engga | |
if (isi_penyebut_pec1 == 0 && isi_penyebut_pec2 == 0) { | |
cout << "\033[1;31mWaduh, dilarang membagi dengan 0 !" << endl; | |
} else { | |
cout << "\033[0;36m-----------------------" << endl; | |
hasil_pembilang_atas = kurangkan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
"pembilang"); | |
hasil_penyebut_bawah = kurangkan_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, isi_penyebut_pec2, | |
"penyebut"); | |
hasil_penyederhanaan_pembilang = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "pembilang"); | |
hasil_penyederhanaan_penyebut = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "penyebut"); | |
tampilkan_pecahan(isi_pembilang_pec1, | |
isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
hasil_penyederhanaan_pembilang, | |
hasil_penyederhanaan_penyebut, '-'); | |
} | |
// return 0; | |
} else if (input_pilihan_mode_pecahan == 4) { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "\033[0;36m[MODE PEMBAGIAN PECAHAN]" << endl; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 1): "; | |
cin >> isi_pembilang_pec1; | |
cout << "Masukkan penyebut (pecahan 1) : "; | |
cin >> isi_penyebut_pec1; | |
cout << "\033[0;33mMasukkan pembilang (pecahan 2): "; | |
cin >> isi_pembilang_pec2; | |
cout << "Masukkan penyebut (pecahan 2) : "; | |
cin >> isi_penyebut_pec2; | |
// cek apakah penyebut ada yg isi na nol atau engga | |
if (isi_penyebut_pec1 == 0 && isi_penyebut_pec2 == 0) { | |
cout << "\033[1;31mWaduh, dilarang membagi dengan 0 !" << endl; | |
} else { | |
cout << "\033[0;36m-----------------------" << endl; | |
hasil_pembilang_atas = bagi_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
"pembilang"); | |
hasil_penyebut_bawah = bagi_pecahan(isi_pembilang_pec1, isi_penyebut_pec1, | |
isi_pembilang_pec2, isi_penyebut_pec2, | |
"penyebut"); | |
hasil_penyederhanaan_pembilang = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "pembilang"); | |
hasil_penyederhanaan_penyebut = simpelkan_bentuk_per(hasil_pembilang_atas, | |
hasil_penyebut_bawah, "penyebut"); | |
tampilkan_pecahan(isi_pembilang_pec1, | |
isi_penyebut_pec1, | |
isi_pembilang_pec2, | |
isi_penyebut_pec2, | |
hasil_penyederhanaan_pembilang, | |
hasil_penyederhanaan_penyebut, '/'); | |
} | |
// return 0; | |
} else if (input_pilihan_mode_pecahan == 9) { | |
// kosong | |
} else { | |
cout << "inputan salah, mohon pilih menu di atas tersebut." << endl; | |
} | |
} | |
int main() | |
{ | |
// loop terus tanpa berhenti | |
while (1) { | |
// jika variabel status berhenti nilai nya 1, maka break loop nya | |
if (status_berhenti==1) { | |
break; | |
} | |
bersihkan_layar(); | |
tampilkan_logo(); | |
tampilkan_pilihan_menu_utama(); | |
cout<<"\033[0;36mmasukkan menu > " ; | |
cin >> menu_pilihan_string; | |
if (menu_pilihan_string == "1") { | |
cout << "\033[0;33mmasukan angka pertama : "; | |
cin >> angka_pertama_perkalian ; | |
cout << "masukan angka kedua : "; | |
cin >> angka_kedua_perkalian; | |
// panggil fungsi disini, lalu simpan di hasil | |
hasil = hitung_perkalian(angka_pertama_perkalian, angka_kedua_perkalian); | |
cout << "hasil Perkalian : a x b = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
} else if (menu_pilihan_string == "2") { | |
cout << "\033[0;33mMasukan angka pertama :"; | |
cin >> angkake1_pertambahan; | |
cout << "Masukan angka kedua :"; | |
cin >> angkake2_pertambahan; | |
// panggil fungsi disini, lalu simpan hasil | |
hasil = hitug_pertambahan(angkake1_pertambahan, angkake2_pertambahan); | |
cout << "hasil pertambahan : a + b = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "3") { | |
cout << "\033[0;33mMasukan angka pertama :"; | |
cin >> angkake1_pembagian; | |
cout << "\033[0;33mMasukan angka pertama :"; | |
cin >> angkake2_pembagian; | |
// panggil fungsi disini, lalu simpan hasil | |
hasil = hitung_pembagian (angkake1_pembagian, angkake2_pembagian); | |
cout << "hasil pembagian : a : b = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "4") { | |
cout << "\033[0;33mMasukan angka pertama :"; | |
cin >> angkake1_perkurangan; | |
cout << "\033[0;33mMasukan angka kedua :"; | |
cin >> angkake2_perkurangan; | |
// panggil fungsi disini, lalu simmpan hasil | |
hasil = hitung_penkurangan (angkake1_perkurangan, angkake2_perkurangan); | |
cout << "hasil pengurangan : a - b = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "5") { | |
cout <<"\033[0;33mMasukan sisi kubus :"; | |
cin >> panjangsisi_volumekubus; | |
// panggil fungsi disini, lalu simmpan hasil | |
hasil = hitung_volumekubus (panjangsisi_volumekubus); | |
cout << "hasil volume kubus : S x S x S = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "6") { | |
cout <<"\033[0;33mMasukan panjang balok :"; | |
cin >> angkake1_volumebalok; | |
cout <<"\033[0;33mMasukan lebar balok :"; | |
cin >> angkake2_volumebalok; | |
cout <<"\033[0;33mMasukan tinggi balok :"; | |
cin >> angkake3_volumebalok; | |
// panggil fungsi disini, lalu simmpan hasil | |
hasil = hitung_volumebalok (angkake1_volumebalok, angkake2_volumebalok, angkake3_volumebalok); | |
cout << "hasil volume balok : P x L x T = " << hasil << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "7") { | |
cout <<"\033[0;33mMasukan nilai A :"; | |
cin >> pers_A; | |
cout <<"\033[0;33mMasukan nilai B :"; | |
cin >> pers_B; | |
cout <<"\033[0;33mMasukan nilai C :"; | |
cin >> pers_C; | |
x1 = hitung_rumus_abc(pers_A, pers_B, pers_C, "xpositif"); | |
cout << "x1 = " << x1 << endl; | |
x2 = hitung_rumus_abc(pers_A, pers_B, pers_C, "xnegatif"); | |
cout << "x1 = " << x2 << endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "8") { | |
fungsi_khusus_op_pecahan(); | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "9") { | |
fungsi_khusus_op_ngitung_trig(); | |
status_berhenti = konfirmasi_ingin_keluar(); | |
}else if (menu_pilihan_string == "10") { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
input_faktorial = 0; | |
hasil_faktorial = 1; | |
cout << "\033[0;33mMasukkan angka yg ingin difaktorialkan: "; | |
std::cin >> input_faktorial; | |
std::cout << "===\n"; | |
for(int i = input_faktorial; i != 0; --i) { | |
if (i == 1) { | |
std::cout << i; | |
} else { | |
std::cout << i << " x "; | |
} | |
hasil_faktorial = hasil_faktorial * i; | |
} | |
std::cout << " = "; | |
std::cout << hasil_faktorial << std::endl; | |
status_berhenti = konfirmasi_ingin_keluar(); | |
} else if (menu_pilihan_string == "help" || menu_pilihan_string == "11") { | |
bersihkan_layar(); | |
tampilkan_help(); | |
cout << "[enter untuk keluar]" << endl; | |
cin.ignore(); | |
cin.get(); | |
} else { | |
bersihkan_layar(); | |
tampilkan_logo(); | |
cout << "\033[1;31mOops, menu tidak diketahui" << endl; | |
cout << "[enter untuk kembali]" << endl; | |
cin.ignore(); | |
cin.get(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment