Program ini adalah program yang saya buat sebagai latihan pra-UAS mata kuliah Algoritma Pemrograman.
Pada UAS nanti saya akan membuat program sederhana, yaitu program konversi bilangan.
Ini adalah lanjutan dari tutorial saya sebelumnya, yaitu C++: Program Konversi Bilangan - Desimal Biner Oktal Heksadesimal (Part 1). Pada tutorial sebelumnya terdapat banyak pengulangan kode program sehingga pada tutorial kali ini, penulisan kode lebih dioptimalisasi. :D
1.
Langsung aja, buka Microsoft Visual Studio (karena saya menggunakan
Microsoft Visual Studio, tapi teman-teman bisa menggunakan code editor
lain seperti Borland C++).
2. Buat project baru, saya beri nama projectnya konversi_bilangan_2, pilih WIN32 Console Application.
3. Masukkan code berikut :
// konversi_bilangan_2.cpp : Defines the entry point for the console application. // Developer : Erik Gunawan // Nickname : EXz #include "stdafx.h" #include <iostream> using namespace std; void pilihan(); void header() { cout << "Program Konversi Bilangan" << endl; cout << "=============================================" << endl; cout << "A = Desimal ke Biner, Oktal, Heksadesimal " << endl; cout << "B = Biner ke Desimal, Oktal, Heksadesimal " << endl; cout << "C = Oktal ke Desimal, Biner, Heksadesimal " << endl; cout << "D = Heksadesimal ke Desimal, Biner, Oktal " << endl; cout << "=============================================" << endl; cout << endl; } int hasil[100]; int bil; int sisa = 0; int x = 0; int fromDecimal(int desimal, int kode) { for (int i=desimal; i>0; i/=kode) { sisa = i % kode; x += 1; hasil[x] = sisa; } if (kode==2) { cout << "Hasil biner : "; } else if (kode==8) { cout << "Hasil oktal : "; } else if (kode==16) { cout << "Hasil heksadesimal : "; } while (x) { if (kode==2 || kode==8) { cout << hasil[x]; } else if (kode==16) { switch (hasil[x]) { case 10 : cout << 'A'; break; case 11 : cout << 'B'; break; case 12 : cout << 'C'; break; case 13 : cout << 'D'; break; case 14 : cout << 'E'; break; case 15 : cout << 'F'; break; default : cout << hasil[x]; break; } } x -= 1; } cout << endl; return 0; } char bil_hexa[100]; void toDecimal(int kode) { int pangkat = 1; int hasil_desimal = 0; int desimal = 0; int index = 0; int a, b, c, length; if (kode==2 || kode==8) { for (int i=bil; i>0; i/=10) { sisa = i % 10; hasil_desimal += pangkat * sisa; pangkat *= kode; } cout << "Hasil desimal : " << hasil_desimal << endl; if (kode==2) { fromDecimal(hasil_desimal,8); fromDecimal(hasil_desimal,16); } else if (kode==8) { fromDecimal(hasil_desimal,2); fromDecimal(hasil_desimal,16); } } if (kode==16) { length = strlen(bil_hexa); for (int i=length-1; i>=0; i--) { a = bil_hexa[index]; switch (a) { case 'A' : case 'B' : case 'C' : case 'D' : case 'E' : case 'F' : b = a-55; break; default : b = a-48; break; } c = i; while (c>=0) { desimal = pangkat*b; pangkat *= 16; c -= 1; } pangkat = 1; hasil_desimal += desimal; index += 1; } cout << "Hasil desimal : " << hasil_desimal << endl; fromDecimal(hasil_desimal,2); fromDecimal(hasil_desimal,8); } } void decimalToAll() { cout << "Masukkan bilangan desimal : "; cin >> bil; fromDecimal(bil,2); fromDecimal(bil,8); fromDecimal(bil,16); } void binaryToAll() { cout << "Masukkan bilangan biner : "; cin >> bil; toDecimal(2); } void octalToAll() { cout << "Masukkan bilangan oktal : "; cin >> bil; toDecimal(8); } void hexaToAll() { cout << "Masukkan bilangan hexadesimal : "; cin >> bil_hexa; toDecimal(16); } void pesan_salah() { system("cls"); cout << "Kode yang Anda masukkan salah!!" << endl; cout << endl; } void pilihan() { char pilih, coba_lagi; pilih: header(); cout << "Masukkan Pilihan : "; cin >> pilih; cout << endl; if (pilih=='a' || pilih=='A') { decimalToAll(); } else if (pilih=='b' || pilih=='B') { binaryToAll(); } else if (pilih=='c' || pilih=='C') { octalToAll(); } else if (pilih=='d' || pilih=='D') { hexaToAll(); } else { pesan_salah(); goto pilih; } coba: cout << endl; cout << "Ingin coba lagi (Y/N) ? "; cin >> coba_lagi; if (coba_lagi=='Y' || coba_lagi=='y') { system("cls"); goto pilih; } else if (coba_lagi=='N' || coba_lagi=='n') { _exit(0); } else { pesan_salah(); goto coba; } } void main(){ pilihan(); }4. Run file, hasilnya akan seperti ini :
5. Masukkan bilangan yang ingin dicari.
Program ini masih banyak kekurangannya, jadi mohon maaf. :D
Untuk download contoh project di atas, klik disini atau konversi_bilangan_2.
Ditunggu kritik saran pertanyaan dan komentarnya. :D
Semoga bermanfaat.
0 komentar:
Post a Comment