Sabtu, 31 Maret 2012

Program Konversi Angka Menjadi Huruf

10:38:00 PM

Share it Please

Setelah tadi saya share Program Menghitung Nilai Faktorial kini saya share lagi sebuah program.Tapi program yang akan saya share kali ini sudah termasuk program yang "lumayan berat".Kenapa saya katakan program ini sudah termasuk program yang "lumayan berat"??jawabannya adalah karena untuk membuat sourcecodenya saja harus berfikir ekstra keras dengan menentukan dulu algoritmanya agar dalam proses konversi ke bahasa pemrograman tidak seberat kalau kita langsung mengetik sourcecode tanpa membuat dahulu algoritmanya.Program yang saya maksud ini adalah Program Konversi Angka Menjadi Huruf.
Dengan program ini kita dapat mengkonversi sebuah angka menjadi huruf sama seperti ketika kita membaca angka tersebut.

Misalkan kita masukkan sebuah angka ke dalam program yaitu angka 712, maka hasil outputnya adalah "tujuh ratus dua belas".Apabila kita memasukkan angka yang lain maka outputnya pun akan mengikuti angka yang diinputkan tadi tapi angka yang dimasukkan harus kurang dari 999 karena apabila angka yang dimasukkan diatas 999 maka output yang keluar adalah "diluar range" karena angka yang dimasukkan dibatasi hanya maksimal sampai 999.




Ok, ini dia sourcecodenya:

[sourcecode language="cpp"]

#include <iostream.h>
#include <conio.h>

class konversi{
friend istream& operator>>(istream& , konversi&);
public:
konversi(unsigned int b=0){bilangan=b;}
void membilang1();
void membilang2();
void membilang3();
void membilang4();
void konversikan();
private:
unsigned int bilangan;
};

istream& operator>>(istream& in, konversi& x){
cout <<"masukkan bilangan : ";
in>>x.bilangan;
return in;
}
void konversi::konversikan(){
if(bilangan<=11 || bilangan==100)membilang1();
else if(bilangan>19 && bilangan<=99)membilang3();
else if (bilangan>100 && bilangan<=999)membilang4();
else membilang2();
}
void konversi::membilang3(){
int satuan;
if(bilangan>19){
satuan=bilangan%10;
bilangan=bilangan/10;
konversikan();
cout<<"puluh ";
if (satuan!=0) {
bilangan=satuan;
konversikan();}
}
}
void konversi::membilang1(){
switch(bilangan){
case 0:cout<<"nol "; break;
case 1:cout<<"satu "; break;
case 2:cout<<"dua "; break;
case 3:cout<<"tiga "; break;
case 4:cout<<"empat "; break;
case 5:cout<<"lima "; break;
case 6:cout<<"enam "; break;
case 7:cout<<"tujuh "; break;
case 8:cout<<"delapan "; break;
case 9:cout<<"sembilan "; break;
case 10:cout<<"sepuluh "; break;
case 11:cout<<"sebelas "; break;
case 100:cout<<"seratus "; break;
default : cout<<"diluar range ";
}
}
void konversi::membilang2(){
int temp;
if(bilangan>11 && bilangan<20){
bilangan%=10;
membilang1();
cout<<"belas ";
}
else
membilang1();
}
void konversi::membilang4(){
int puluhan;
puluhan=bilangan%100;
if(bilangan>100 && bilangan<200){
cout <<"seratus ";
}
else {
bilangan=bilangan/100;
konversikan();
cout<<"ratus ";}
bilangan=puluhan;
konversikan();

}

int main(){
konversi a;
cin>>a;
a.konversikan();
getch();
}

[/sourcecode]

Ok,cukup sekian penjelasan program dari saya.Semoga bermanfaat bagi para pembaca.
:)

0 komentar:

Poskan Komentar

Jangan Lupa Komentarnya yah...:)