jump to navigation

Fungsi Terbilang dengan CSharp January 25, 2010

Posted by Teguh in C#.
trackback

Pernahkah anda kesulitan membilang angka yang digitnya 6 atau lebih ?? Misal angka 11111111111 kalau diterjemahkan atau terbilangnya apa ya ..??  Untuk memudahkan kita dalam membilang angka tersebut, kali ini Ane akan membuat program yang bisa membilang angka sampai bilyun.

Langkah pertama siapkan buka IDE Visual Studio NET. Kalau tidak ada, bisa gunakan text editor favorit anda, bisa Notepad, Wordpad dan lainnya. Kalo Ane biasa menggunakan Notepad++. Jangan lupa untuk tambahkan pada environtment variabel PATH dengan lokasi compiler C# (csc.exe). Caranya klik kanan pada My Computer -> Advanced -> Environtment Variables. Di System Variables double click path, dan kita tambahkan lokasi compiler .Net Framework.

;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;

Ok Langsung saja kita mulai codingnya…

1. Buat file Terbilang.cs, yang isinya :

////////////////////////////////////////////

//          Created by         : Teguh                                     //

//          Email                 : yanuartotw@gmail.com    //

////////////////////////////////////////////

public class Terbilang {

// Penggunaan Access Modifier private agar tidak ada pengaksesan langsung terhadap variabel.

private ulong input = 0; // tipe data ulong untuk kedalaman nilai numerik positif yang dalam / lebih presisi.

private string output = “”;

private string[] angka = {“nol “,”se”,”dua “,”tiga “,”empat “,”lima “,”enam “,”tujuh “,”delapan “,”sembilan “};

private string[] lipat2 = {“”,”puluh “,”ratus “};

private string[] lipat3 = {“”,”ribu “,”juta “,”milyar “,”trilyun “,”bilyun “};

private string err = “”;

public Terbilang() { // Konstruktor

}

// Metode setAngka sebagai filter terhadap angka, yang akan diisi ke variabel input, dan juga sebagai pemanggil metode proses().

public void setAngka(ulong angka) {

if(angka < 1e+19) { // Pembatasan variabel angka tidak melebihi bilyun.

input = angka;

proses();

} else {

err = “Angka melebihi batas”;

}

}

// Hasil dari penerjemahan angka dikeluarkan.

public string Hasil() {

if(err != “”) return err;

else return output;

}

private void proses() {

if(input == 0) {

output = angka[input];

return;

}

uint temp = 0;

ulong pangkat = 0;

string str = “”;

for(int i = 5; i > 0; i–) {

pangkat = (ulong) System.Math.Pow(10, i * 3);

temp = (uint) (input / pangkat);

if(temp > 0) {

if(temp == 1 && i == 1) str = “se”;

else str = ratusan(temp);

output += str + lipat3[i];

}

input -= (ulong) temp * (ulong) pangkat;

}

output += ratusan((uint) input);

}

private string ratusan(uint rts) {

uint tmp = 0;

uint bagi = 0;

string bil = “”;

for(int j = 2; j > 0; j–) {

bagi = (uint) System.Math.Pow(10, j);

tmp = rts / bagi;

if(tmp > 0) {

if(tmp == 1 && j == 1) {

rts -= tmp * bagi;

if(rts >= 1) bil += angka[rts] + “belas “;

else bil += “sepuluh “;

return bil;

}

bil += angka[tmp] + lipat2[j];

rts -= tmp * bagi;

}

}

if(rts == 1)  bil += “satu “;

else bil += angka[rts];

return bil;

}

public static void Main() {

new Terbilang();

}

}

Sekarang waktunya kompilasi untuk menjadi library, caranya buka Command Prompt / Run – cmd. Pindahkan direktorinya ke lokasi file Terbilang.cs. Compile file dengan perintah :

csc /targer:library /out:Terbilang.dll Terbilang.cs

Sekarang kita buat file pengetesan dengan nama testTerbilang.cs

public class testTerbilang {

public static void Main(string[] args) {

System.Console.Write(“Masukkan angka : “);

string str = System.Console.ReadLine();

ulong inp = 0;

try {

inp = System.UInt64.Parse(str);

Terbilang tbl = new Terbilang();

tbl.setAngka(inp);

System.Console.WriteLine(“Hasil : “);

System.Console.WriteLine(tbl.Hasil());

} catch (System.Exception e) {

System.Console.WriteLine(“Ada kesalahan pengisian ” + e);

}

System.Console.ReadLine();

}

}

Kita kompilasi dengan perintah :

csc /reference:Terbilang.dll testTerbilang.cs

Hasil :

Jadi Pembilang untuk angka 111111111 adalah :

“seratus sebelas juta seratus sebelas ribu seratus sebelas”

Comments»

1. Daniel Robertus - January 19, 2011

Mantap mas.. saya ijin kopas… tapi saya edit sedikit…

private string[] angka = {“nol “,”se”,”dua “,”tiga “,”empat “,”lima “,”enam “,”tujuh “,”delapan “,”sembilan “};

tulisan nol saya pikir tidak perlu.. kalo ada malah jadi ditulis nol nya… saya tes dengan 1234567890
jadi ada angka nol di akhir string… saya kira itu tidak perlu.. hehehe…

Yanuarto - January 19, 2011

OK.
nol itu perlu, bila ada input 0. kalau ada akhir nol dibaca puluh. misal akhir 90 maka sembilan puluh.


Leave a comment