Merubah atau konversi format angka ke format mata uang pada arduino bisa dilakukan berbagai cara, banyak sekali yang mencari tutorial bagaimana cara mengkonversi angka ke mata uang di arduino.
jika dalam bahasa inggris mungkin temanya seperti ini, how to convert numeric to currency format, atau bisa juga orang mencari dengan keyword menambahkan separator pada bilangan atau angka di arduino
Setelah mencari dari berbagai sumber seperti stack overflow dan website lainya, akhirnya saya bisa mengkonversi angka dari tipe data integer, long double atau apapun tipe nya ke dalam format mata uang dimana mata uang kita (indonesia) adalah rupiah yang setiap 3 digit angka harus ditambah titik (.)
Mungkin di negara luar separator yang digunakan pada mata uang adalah koma, dan hal ini juga sama bisanya menggunakan tutorial pada artikel ini.
Berikut adalah berbagai langkah untuk membuat program konversi angka ke format mata uang.
Membuat fungsi reverse pada String untuk pemograman Arduino
Berikut adalah fungsi yang berfungsi sebagai reverse atau membalikan data String.
Input : hallo kamu
Output : umak ollah
void reverse(char *x, int begin, int end) { char c; if (begin >= end) return; c = *(x + begin); *(x + begin) = *(x + end); *(x + end) = c; reverse(x, ++begin, --end); }
Program diatas menggunakan fungsi rekursiv, atau biasa dimengerti fungsi yang memanggil dirinya sendiri, jika dibayangkan fungsi ini mirip dengan perulangan.
Membuat Fungsi Konversi Angka ke String Kemudian Tambahkan Separator di Setiap 3 Digit
Berikut ini merupakan fungsi utama yang mengkonversi angka numerik ke format mata uang dengan menambahkan separator di setiap 3 digit angka.
String rupiah(long a) { String ans; String n = String(a); int count = 0; for (int i = n.length() - 1; i >= 0; i--) { ans += n[i]; count++; if (count == 3) { ans += ('.'); count = 0; } } if (ans.length() % 4 == 0) { ans.remove(ans.length()-1, 1); } ans.toCharArray(buff, 12); reverse (buff, 0, ans.length() - 1); return String(buff); }
Membuat Input angka Dari Serial Monitor
dan dibawah ini saya buatkan program untuk input angka dari serial monitor, sehingga nanti angka yang di input dapat diproses untuk di konversi ke format mata uang
String b; while (Serial.available()){ delay(10); char a = Serial.read(); b += a; } if (b.length() > 0){ long a = b.toDouble(); Serial.print(a); Serial.print("\t"); Serial.println(rupiah(a)); }
Program Lengkap Arduino Konversi Angka ke Format Mata Uang dengan Separator
Berikut saya sertakan program keseluruhan yang sudah bekerja dari mulai input data, proses konversi angka ke mata uang kemudian di tampilkan ke serial monitor.
char buff[12]; void reverse(char *x, int begin, int end) { char c; if (begin >= end) return; c = *(x + begin); *(x + begin) = *(x + end); *(x + end) = c; reverse(x, ++begin, --end); } String rupiah(long a) { String ans; String n = String(a); int count = 0; for (int i = n.length() - 1; i >= 0; i--) { ans += n[i]; count++; if (count == 3) { ans += ('.'); count = 0; } } if (ans.length() % 4 == 0) { ans.remove(ans.length()-1, 1); } ans.toCharArray(buff, 12); reverse (buff, 0, ans.length() - 1); return String(buff); } void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: String b; while (Serial.available()){ delay(10); char a = Serial.read(); b += a; } if (b.length() > 0){ long a = b.toDouble(); Serial.print(a); Serial.print("\t"); Serial.println(rupiah(a)); } }
Terimakasih sudah berkunjung, dan jangan lupa untuk berkomentar.
Keyword
- how to convert int to string then add Separator,
- convert numeric to currency arduino,
- konversi angka ke mata uang arduino,
- tutorial arduino keypad angka,
- angka keypad uang arduino,
Ijin tanya master
Jika ingin ditampilkan di modul panel p10 gimana caranya?
Mungkin berkenan membuatkan artikelnya master
Terima kasih