Disini postingan kali ini aku akan membuat konversi kata dan di sertai dengan penjelasannya lengkap.
Sebelum melakukan pemrograman aku menggunakan DEV C++, karena ukuran nya yang hanya 48Mb dan tidak berat. Untuk mengunduh aplikasi silakan kunjungi https://sourceforge.net/projects/orwelldevcpp/
. Jika sudah terdownload silakan install dan buka kemudian buat project c++ nya.
Tuliskan kode berikut :
#include <iostream>
#include <math.h>
using namespace std;
void angka (int a){
if (a==1) {
cout<<" Satu ";
} else if (a==2) {
cout<<" Dua ";
} else if (a==3) {
cout<<" Tiga ";
} else if (a==4) {
cout<<" Empat ";
} else if (a==5) {
cout<<" Lima ";
} else if (a==6) {
cout<<" Enam ";
} else if (a==7) {
cout<<" Tujuh ";
} else if (a==8) {
cout<<" Delapan ";
} else if (a==9) {
cout<<" Sembilan ";
} else if (a==10) {
cout<<" Sepuluh ";
} else if (a==11) {
cout<<" Sebelas ";
}
}
void terbilang (int b){
if (b<=11) {
angka(b);
} else if ((b>11) && (b<=19)) {
terbilang(b % 10);
cout<<"Belas ";
} else if ((b>=20)&&(b<=99)) {
terbilang(b/10);
cout<<"Puluh";
terbilang(b%10);
} else if ((b>=100)&&(b<=199)) {
cout<<"Seratus";
terbilang(b%100);
} else if ((b>=200)&&(b<=999)) {
terbilang(b/100);
cout<<"Ratus";
terbilang(b%100);
} else if ((b>=1000)&&(b<=1999)) {
cout<<"Seribu";
terbilang(b%1000);
} else if ((b>=2000)&&(b<=9999)) {
terbilang(b/1000);
cout<<"Ribu";
terbilang(b%1000);
} else if ((b>=10000)&&(b<=99999)) {
terbilang(b/1000);
cout<<"Ribu";
terbilang(b%1000);
} else if ((b>=100000)&&(b<=999999)) {
terbilang(b/1000);
cout<<"Ribu";
terbilang(b%1000);
} else if ((b==1000000)) {
terbilang(b/1000000);
cout<<"Juta";
terbilang(b%1000000);
} else if ((b>1000000)) {
cout<<"ERROR\n";
cout<<"nilai yang Anda masukan melampaui database aplikasi";
}
}
int main(){
int nilai;
cout<<"Aplikasi Penkonversi Angka ke Kata"<<endl;
cout<<"============================"<<endl;
cout<<"Masukkan Bilangan Anda: ";
cin>>nilai;
if (nilai<0){
cout<<"Minus ";
terbilang(abs(nilai));
} else {
terbilang(nilai);
}
cout<<"\n============================\n";
return 0;
}
#Penjelasan
Dibawah ini aku sajikan penjelasan mengenai setiap kode diatas :
#include <iostream> berfungsi untuk memasukan sebuah file header yang berguna untuk input dan output stream misalnya dapat menggunakan cin dan cout .
#include <math.h> berfungsi untuk memasukan sebuah file header yang berguna untuk perhitungan matematika misalnya dapat menggunakan fungsi abs() untuk perhitungan absolute .
using namespace std berfungsi untuk agar setiap penulisan kode pada C++ selalu tidak diawali dengan std::
void angka (int a) berfungsi untuk membuat fungsi bernama angka dimana bertipe void yang artinya tidak mempunyai kembalian return. Jika void kembaliannya dapat berupa angka atau huruf yang mana dapat ditampilkan melalui cout. Untuk fungsi void berparameter int a, yang mana dalam parameter tersebut harus dimasukan huruf jika fungsi tersebut dipanggil. Fungsi ini berguna untuk mengubah nilai angka menjadi huruf, misalnya 1 terbilang "satu".
if (a==1) {
cout<<" Satu ";
} else if (a==2) {
cout<<" Dua ";
} berfungsi untuk mengkonversi angka 1,2,3 dan seterusnya menjadi hurufnya. Fungsi ini berada dalam fungsi void angka (int a) . Cara bacanya kode tersebut : jika a=1 maka akan ditampilkan "satu", lain jika a=2 maka akan ditampilkan "Dua" dsb.
void terbilang (int b) berfungsi untuk mengubah semua angka dibawah 1 juta menjadi huruf. Sebenarnya fungsi ini yang akan dipanggil nantinya, bukan fungsi void angka (int a). Didalam fungsi ini terdapat pemanggilan fungsi void angka() dan pemanggilan fungsi dirinya sendiri atau fungsi rekursif.
Didalam fungsi void terbilang( int b) terdapat beberapa pernyataan, beberapa pernyataannya :
if (b<=11) {
angka(b);
} else if ((b>11) && (b<=19)) {
terbilang(b % 10);
cout<<"Belas ";
}
Dari kode diatas cara membacanya adalah
1. Jika b kurang dari sama dengan 11 maka akan memanggil fungsi angka(b) ,
b adalah angka. Misalnya nilai b adalah 11, maka hasilnya akan ditampilkan "sebelas"
dari kondisi pertama ini kemudian akan berakhir.
2. Lain jika nilai b lebih dari 11 dan nilai b kurang dari sama dengan 19 atau bahasanya
else if ((b>11) && (b<=19)) maka akan memanggil fungsi dirinya sendiri atau
rekursif. Misalnya nilai variable b yang kita masukkan adalah 15 (karena lebih dari 11
dan kurang dari sama dengan 19), maka akan diproses dengan pertama memanggil
fungsi dirinya sendiri ( terbilang(b % 10) ).
Didalam pemanggilan fungsi dirinya sendiri tsb angka 15 akan
di modkan atau % kan dengan angka 10 dahulu, yang berarti 15 % 10 akan menghasilkan
angka 5. % atau mod berfungsi untuk menghitung sisa bagi nya .
Setelah hasil mod tersebut ditemukan maka akan dia jalankan pemanggilan fungsi
dirinya sendiri . Pertama hasilnya yang 5 tadi akan memasuki kondisi pertama atau
if (b<=11) , nah b kan sama dengan 5, maka memenuhi kondisi ini.
Selanjutnya akan memanggil fungsi angka(int a). Didalam fungsi angka akan ditampilkan
hasilnya "lima" karena nilai yang kita hasilkan tadi adalah 5 (hasil 15 % 10) dan
proses berakhir.
Setelah itu akan ditampilkan "Belas " atau bahasanya cout<<"Belas "; .
Dan kondisipun terpenuhi (semua proses dalam kondisi else if ((b>11) && (b<=19) )
sudah berhasil dijalankan semua, maka proses berakhir yang menghasilkan "lima belas" .
abs(nilai) atau abs() berfungsi agar semua angka negatif menjadi positif atau
meng absolute kan, misalnya variable nilai bernilai -5, maka setelah di abs(-5) maka akan menghasil kan nilai 5.
#Hasilnya :
Bagikan
Konversi Angka Ke Kata Huruf Dengan Bahasa Pemrograman C++
4/
5
Oleh
Bayu Ambika
Silahkan berkomentar secara bijak dan sesuai dengan topik pembahasan ...
Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>