Penambahan Titik atau Koma pada Angka di C++, C#, PHP, dan VB.NET





Assalamu'alaikum Wr. Wb.
Beberapa minggu terakhir ane jadi jarang posting di blog. Maklum hari libur jadi suka main game sampe mabok
Oiya, di postingan kali ini ane mau share trik sederhana untuk memformat angka (menambahkan titik/koma di angka).
Trik ini biasanya digunakan untuk memformat angka menjadi terformat seperti matauang. contohnya kek 1000000 jadi 1.000.000. Langsung saja disimak


C++

Kode C++ berikut ane buat seadanya pake stringstream untuk ganti variabel angka (integer) jadi string biar jalan di Dev C++


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;
} 
Untuk fungsi yang diatas, header yang dibutuhkan adalah #include "sstream" dan #include "string".
Khusus pengguna Visual Studio atau Visual C++, bisa pake fungsi berikut (tanpa stringstream).



string formatAngka(int angka, string perantara = ".") {
 string output = to_string(angka);
 int inspost = output.length() - 3;
 while (inspost > 0) {
  output.insert(inspost, perantara);
  inspost -= 3;
 }
 return output;
}


Penggunaannya tinggal dipanggil nama fungsinya yang diatas.



formatAngka(angka);
// contoh
cout << formatAngka(100000);

Output


jika ingin menambahkan RP pada awalannya tinggal ganti return output; jadi return "Rp " + output;. Atau panggilnya seperti ini cout << "Rp " << formatAngka(100000);.

Mudah kan?
Nah untuk fungsi di C#, PHP, dan VB.NET mungkin sudah cukup mudah dimengerti tanpa ane jelasin lagi kek C++ diatas dan tanpa dipake-in fungsi lagi

C#

Untuk C# caranya sangat mudah. Tinggal menggunakan ToString() (ToString(string format);) aja. Berikut adalah contohnya, tinggal diletakin didalam blok fungsi utama.



// contoh
Console.WriteLine((100000000).ToString("n0"));
// atau
Console.Write((100000000).ToString("#,##0"));
Dari kedua kode diatas hasilnya sama, yaitu 100.000. Untuk nambahin RP tinggal diganti kek gini



// contoh pake RP
Console.WriteLine("Rp " + (100000000).ToString("n0"));
// atau
Console.Write("Rp " + (100000000).ToString("#,##0"));

Ada juga cara lain yaitu menggunakan String.Format(string format, object arg0). Yang ini jauh lebih keren



Console.WriteLine(String.Format("{0:n}"10000));
 /*  
    output dari kode diatas : 10.000,00 
   */
Console.WriteLine(String.Format("{0:n0}"10000)); // atau Console.WriteLine(String.Format("{0:#,##0}", 10000));
 /*  
    output dari kode diatas : 10.000
   */
Maksud dari n pada tiap format dalam kode diatas adalah Number atau Angka (tipe Integer). Yang mau mengeksplore String.Format(string format, object arg0) lebih dalam bisa tes format selain n, seperti c (Currency), d (Decimal), e (Scientific), f (Fixed point), g (General, atau default), n (Number), r (Percent), p (Round-trip), dan x(Hexadecimal).



 String s = String.Format("(C) Currency: . . . . . . . . {0:C}\n" +
  "(D) Decimal:. . . . . . . . . {0:D}\n" +
  "(E) Scientific: . . . . . . . {1:E}\n" +
  "(F) Fixed point:. . . . . . . {1:F}\n" +
  "(G) General:. . . . . . . . . {0:G}\n" +
  "    (default):. . . . . . . . {0} (default = 'G')\n" +
  "(N) Number: . . . . . . . . . {0:N}\n" +
  "(P) Percent:. . . . . . . . . {1:P}\n" +
  "(R) Round-trip: . . . . . . . {1:R}\n" +
  "(X) Hexadecimal:. . . . . . . {0:X}\n",
  100000100000.00F);
 Console.WriteLine(s);


Output


*Kode C# diatas juga dapat digunakan pada bahasa pemrograman JAVA.

PHP

Untuk PHP malah lebih mudah. Sudah tersedia fungsi number_format() (PHP 4.* dan 5.* keatas). Berikut adalah kodenya.



<?php
print "RP ".number_format(1000000);
?>

Output dari kode diatas adalah RP 1,000,000. Atau jika ingin separator angkanya adalah titik (.) bisa ditambahkan argumen di parameter fungsi number_format().



<?php
 //number_format(angka, angka_dibelakang, separator_angka_dibelakang,separator_angka)
print "RP ".number_format(1000000, 0, ',', '.');
/*
 output: RP 1.000.000
*/
print "\n";
print "RP ".number_format(1000000, 2, ',', '.');
/*
 output: RP 1.000.000,00
*/
print "\n";
print "RP ".number_format(1000000, 2, '-', '.');
/*
 output: RP 1.000.000-00
*/
?>

Untuk referensi pembelajaran number_format() yang lebih lengkap bisa dicek disini.

VB.NET

Untuk yang VB.NET kodenya mirip dengan kode C# diatas, tinggal dihilangin semi-colon (;) nya (titik koma), jadi gausah ane jelasin panjang lebar lagi



Console.WriteLine((100000000).ToString("n0"))
Console.WriteLine((100000000).ToString("#,##0"))
Console.WriteLine(vbNewLine)
' contoh pake RP
Console.WriteLine("Rp " + (100000000).ToString("n0"))
Console.WriteLine("Rp " + (100000000).ToString("#,##0"))



Untuk yang masih mau snippet dari kode-kode diatas bisa didownload disini.
Sekian dulu. Semoga bermanfaat
Silahkan tinggalkan komentar di bawah jika ada pertanyaan, feedback, atau penambahan kode

0 komentar :

Posting Komentar

Cancel Reply

Iklan