Welcome to Dotnet Semarang Sign in | Join | Help

Fungsi Terbilang (C++)

Dari tulisan saya di dot net semarang sebelumnya, terdapat permintaan atas fungsi terbilang yang ditulis dengan bahasa C/C++
Kode program diuji menggunakan MS C/C++ Compiler versi 13.10.3077 for 80x88 (VC7). Bila ada yang telah mengguji menggunakan kompiler lain baik berhasil maupun tidak dapat menuliskan komentar untuk posting ini.
Berikut saya tulis contoh kode fungsi terbilang dalam bahasa C

/* Fungsi Terbilang
 * Ditulis dalam bahasa C++ oleh:
 * Ahmad Masykur <cahnom^at^gmail^dot^com>
 * Algoritma diambil dari posting di dotnet Semarang sebelumnya
 * Anda diperbolehkan menggunakan/merubah sebagian atau seluruh
 * kode program ini secara bebas namun harus tetap menyebutkan
 * nama pembuat asli pada kepala program ini
 */


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Terbilang(long nilai, char* keluaran)
{
    char bilangan[][12] = { "\0", "satu\0", "dua\0", "tiga\0", "empat\0",
                          "lima\0", "enam\0", "tujuh\0", "delapan\0",
                          "sembilan\0", "sepuluh\0", "sebelas\0" };
    char tmp1[255];
    char tmp2[255];
    tmp1[0] = 0;
    tmp2[0] = 0;
    if (nilai < 12) {
        strcpy(tmp1, " ");
        strcat(tmp1, bilangan[nilai]);
    }
    else if (nilai < 20) {
        Terbilang(nilai - 10, tmp1);
        strcat(tmp1, " belas");
    }
    else if (nilai < 100) {
        Terbilang((int)(nilai/10), tmp1);
        Terbilang(nilai % 10, tmp2);
        strcat(tmp1, " puluh");
        strcat(tmp1, tmp2);
    }
    else if (nilai < 200) {
        strcpy(tmp1, " seratur");
        Terbilang(nilai - 100, tmp2);
        strcat(tmp1, tmp2);
    }
    else if (nilai < 1000) {
        Terbilang((int)(nilai/100), tmp1);
        Terbilang(nilai % 100, tmp2);
        strcat(tmp1, " ratus");
        strcat(tmp1, tmp2);
    }
    else if (nilai < 2000) {
        strcpy(tmp1, " seribu");
        Terbilang(nilai - 1000, tmp2);
        strcat(tmp1, tmp2);
    }
    else if (nilai < 1000000) {
        Terbilang((int)(nilai/1000), tmp1);
        Terbilang(nilai % 1000, tmp2);
        strcat(tmp1, " ribu");
        strcat(tmp1, tmp2);
    }
    else if (nilai < 1000000000) {
        Terbilang((int)(nilai/1000000), tmp1);
        Terbilang(nilai % 1000000, tmp2);
        strcat(tmp1, " juta");
        strcat(tmp1, tmp2);
    }
    else if (nilai < 1000000000000) {
        Terbilang((int)(nilai/1000000000), tmp1);
        Terbilang(nilai % 1000000000, tmp2);
        strcat(tmp1, " milyar");
        strcat(tmp1, tmp2);
    }
    else if (nilai < 1000000000000000) {
        Terbilang((int)(nilai/1000000000000), tmp1);
        Terbilang(nilai % 1000000000000, tmp2);
        strcat(tmp1, " trilyun");
        strcat(tmp1, tmp2);
    }
    else {
        strcpy(tmp1, "\0");
    }
    strcpy(keluaran, tmp1);
}

int main(int argc, const char* argv[] )
{
    char tmp[255];
    if (argc > 1) {
        Terbilang(atol(argv[1]), tmp);
        printf(tmp);
    }

}
Published Monday, May 29, 2006 6:20 PM by cahnom
Filed under:

Attachment(s): terbilang.cpp

Comments

No Comments
Anonymous comments are disabled