Format Angka untuk Mata Uang (1000000 to 1.000.000) pada Pemrograman C++
Jagat Koding - Format penomoran sering kali menjadi hal yang sepele dalam sebuah perhitungan suatu kasus. Kita sering kali mengabaikan format penulisan angka tersebut di output berbagai program sederhana. Seperti pada pemrograman C++, sering kali hal-hal seperti ini tidak kita perhatikan.
Pada umumnya kita hanya menampilkan angka secara apa adanya dengan memanfaatkan perintah cout pada pemrograman c++ seperti pada script berikut ini:
#include<iostream>
using namespace std;
int main(){
cout << 100000;
}
Apabila script tersebut kita jalankan akan menampilan output atau keluaran seperti tampilan berikut ini:
100000
--------------------------------
Process exited after 0.05598 seconds with return value 0
Press any key to continue . . .
Sebagai contoh jika di program kita mempunyai angka 1000000 dan ingin menampilkannya di output, biasanya yang tertampil tidak disertai dengan titik pembatas satuannya. Padahal di kehidupan sehari-hari sangatlah penting untuk menampilkan format satuan seperti bilangan 1000000 ditampilkan 1.000.000.
Berikut adalah script untuk menampilkan angka sesuai dengan satuannya seperti pada contoh di atas dengan menggunakan bahasa pemrograman c++.
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
string formatAngka(int angka, string perantara = ".") {
stringstream ss;
ss << angka;
string output = ss.str();
int inspost = output.length() - 3;
while (inspost > 0) {
output.insert(inspost, perantara);
inspost -= 3;
}
return output;
}
int main(){
cout << formatAngka(100000);
}
Setelah dijalankan akan menghasilkan tampilan seperti berikut ini :
100.000
--------------------------------
Process exited after 0.05598 seconds with return value 0
Press any key to continue . . .
Hal seperti itu sangat bermanfaat ketika kita menerapkannya di program yang berkaitan dengan keuangan sehingga memudahkan dalam membaca nominal keuangan. Sebagai contoh jika saya menulis angka 3000000, pasti untuk menentukan jumlah bilangan tersebut kita akan menghitung jumlah angka 0 nya, tetapi kalau kita pisahkan dengan tanda titik menjadi 3.000.000 kita akan lebih terbantu untuk membaca angka tersebut.
Sekarang coba kita ulas satu per satu script penampilan bilangan dengan memanfaatkan format penomoran tersebut.
1. Header
Berikut ini adalah file header atau library yang akan kita gunakan untuk menampilkan format angka sesuai dengan kaidahnya:
#include<iostream>
#include<sstream>
#include<string>
using namespace std;
Library iostream - (input - output stream) pada header digunakan untuk menjalankan proses input output pada pemrograman c++.
Library sstream - (string stream) pada header digunakan untuk melakukan operasi string pada pemrograman c++. Contoh pada program kita bisa mengubah tipe dari angka menjadi string lalu menyelipkan karakter titik (.) setiap 3 karakter dari belakang.
Library string - pada header digunakan untuk melakukan manipulasi string pada pemrograman c++ seperti pada program, kita bisa menghitung jumlah karakter pada string.
Namespace std - pada header digunakan untuk memanggil perintah yang berkaitan dengan input-output didalam library iostream sehingga kita bisa langsung memanfaatkan perintah untuk melakukan proses input output. Contoh
Menampilkan output tanpa memberikan using namespace di header program :
#include<iostream>
int main(){
std::cout<<"Hello World";
}
Menampilkan output dengan memberikan using namespace di header program :
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World";
}
2. Function
Untuk merapikan struktur program, disini kita akan memanfaatkan sebuah function atau kalau saya sering menyebutnya method dan kali ini berparameter.
Oh iya bagi yang lupa yuk kita ingat kalau parameter itu yang ada didalam kurung () ya temen2. Method yang kita buat namanya formatAngka dengan tipe data String dan memiliki 2 parameter, yaitu angka dengan tipe data integer dan perantara dengan tipe data string bernilai ".". Berikut scriptnya:
string formatAngka(int angka, string perantara = ".") {
stringstream ss;
ss << angka;
string output = ss.str();
int inspost = output.length() - 3;
while (inspost > 0) {
output.insert(inspost, perantara);
inspost -= 3;
}
return output;
}
Coba script di atas kita kupas lebih detail lagi agar lebih mengena ke poin-poin utamanya.
Detail 1 (method)
string formatAngka(int angka, string perantara = ".") {
...
baris kode
...
}
Script di atas adalah sebuah function atau fungsi berparameter yang sering saya sebut dengan method berparameter.
Detail 2 (int to string)
stringstream ss;
ss << angka;
string output = ss.str();
Script di atas dapat diartikan kita mendeklarasikan variable ss dengan tipe stringstream yang digunakan untuk menampung angka yang akan dikonversikan menjadi tipe data string dan disimpan kedalam variable output.
Detail 3 (string)
int inspost = output.length() - 3;
Script di atas dapat diartikan, kita mendeklarasikan variable dengan nama inspost dengan tipe data integer yang berisi panjang dari variable output(output.length()) dikurangi 3. Ini digunakan untuk menentukan titik awal penyisipan karakter titik(.) untuk pembatas satuan pada angka dari sisi kanan ke kiri.
Detail 4 (looping)
while (inspost > 0) {
output.insert(inspost, perantara);
inspost -= 3;
}
Script diatas diartika bahwa selama variable inspost masih lebih dari 0 maka penyisipan tanda titik(.) didalam angka akan terus dilakukan dan setiap perulangannya variable inspost akan dikurangi dengan angka 3.
Detail 5 (return)
return output;
Script di atas digunakan untuk mengembalikan nilai dari variable output setelah disisipkan tanda titik(.) didalamnya untuk membentuk format angka sehingga ketika method di panggil akan menampilkan variable output.
3. Main Program
Untuk menjalankan program, kita bisa memanggil fungsi yang sudah dibuat di dalam main program. Berikut ini adalah cara pemanggilan method dan pengisian paramter dengan angka yang akan ditampilkan sesuai format angka bertitik(.)
int main(){
cout << formatAngka(100000);
}
--- ;;; ---
0 Response to "Format Angka untuk Mata Uang (1000000 to 1.000.000) pada Pemrograman C++"
Post a Comment