Program Java: Konversi Angka Desimal ke Angka Romawi

konversi angka desimal ke romawi sudah pernah saya tampilkan dalam pemograman C++, sekarang saya akan berikan coding untuk konversi dari bilangan bulat ke desimal dengan pemograman java. Saya sendiri menemukan 2 macam coding untuk konversi bilangan bulat ke romawi. Jadi bisa anda jadikan refrensi.

Program Pertama
import java.util.*;

public class KonversiDesimalToRomawi {
public static void main (String args[])
{
int bil;
String tampil="";

//inisialisasi berupa array
String [] biasa = {"","I","II", "III", "IV", "V",
"VI", "VII", "VIII", "IX"};
String [] sepuluh = {"", "X", "XX","XXX","XL"};
String [] limapuluh = {"", "L", "LX", "LXX", "LXXX","XC"};
String [] seratus = {"", "C", "CC", "CCC", "CD"};
String [] limaratus = {"", "D", "DC", "DCC", "DCCC", "CM"};
String [] seribu = {"", "M", "MM", "MMM", "Mv", "v"};

// inputan dari keyboard
System.out.print("Masukkan bilangan desimal : ");
Scanner obj = new Scanner(System.in);
bil = obj.nextInt();

//kondisi dimana angka tdk lebih dari 5000
if (bil>5000)
{
System.out.println("Maaf.., Angka Desimal Yang Di "+
"Inputkan Harus Di Bawah 5000");

}
else
{
//defenisi
int lmrts = bil % 1000;
int srts = lmrts % 500;
int lmpl = srts % 100;
int spl = lmpl % 50;
int ak = spl % 10;

int a = bil/1000;
tampil += ""+seribu[a];

//aturan konversi desimal ke romawi
if ( (lmrts >=900) && (lmrts <= 999))
{
tampil += "CM";

//90
if( (lmpl >= 90) && (lmpl <= 99) )
{
tampil += "XC";
int f= ak/1;
tampil += ""+biasa[f];
}
else
{
int d = lmpl/50;
tampil += ""+limapuluh[d];
int e = spl/10;
tampil += ""+sepuluh[e];
int f= ak/1;
tampil += ""+biasa[f];
}

}
else
{
int b = lmrts/500;
tampil += ""+limaratus[b];

//400
if ( (srts >= 400)&& (srts <= 499) )
{
tampil += "CD";

//90
if( (lmpl >= 90) && (lmpl <= 99) )
{
tampil += "XC";
int f= ak/1;
tampil += ""+biasa[f];
}
else
{
int d = lmpl/50;
tampil += ""+limapuluh[d];
int e = spl/10;
tampil += ""+sepuluh[e];
int f= ak/1;
tampil += ""+biasa[f];
}

}
else
{
int c = srts/100;
tampil += ""+seratus[c];
if((lmpl >= 90)&&(lmpl <= 99))
{
tampil += "XC";
int f= ak/1;
tampil += ""+biasa[f];
}
else
{
int d = lmpl/50;
tampil += ""+limapuluh[d];
int e = spl/10;
tampil += ""+sepuluh[e];
int f= ak/1;
tampil += ""+biasa[f];
}
}
}
System.out.println("Maka angka Romawinya "+tampil);

}

}
}

Coding Program bisa di download di sini


Program ke dua
import java.io.*;

public class konversi
{
public static void main (String[]args)
{
InputStreamReader in= new InputStreamReader (System.in);
BufferedReader rd = new BufferedReader(in);

String input=null;
int angka=0;

try
{
System.out.print("Masukkan Bilangan Bulat anda: ");
input=rd.readLine();

angka = Integer.parseInt(input);

if(angka<1||angka>5000)
{
System.out.println("Tahun harus dalam jangkuan 1....5000");
}
else{
while (angka>=1000){
System.out.print("M");
angka=angka-1000;
}
if (angka>=500){
if(angka>=900){
System.out.print("CM");
angka=angka-900;
}
else{
System.out.print("D");
angka=angka-500;
}
}
while (angka>=100){
if(angka>=400){
System.out.print("CD");
angka=angka-400;
}
else{
System.out.print("C");
angka=angka-100;
}
}
if(angka>=50){
if(angka>=90){
System.out.print("XC");
angka=angka-90;
}
else{
System.out.print("L");
angka=angka-50;
}
}
while(angka>=10){
if(angka>=40){
System.out.print("XL");
angka=angka-40;
}
else{
System.out.print("X");
angka=angka-10;
}
}
if(angka>=5){
if(angka==9){
System.out.print("IX");
angka=angka-9;
}
else{
System.out.print("V");
angka=angka-5;
}
}
while(angka>=1){
if(angka==4){
System.out.print("IV");
angka=angka-4;
}
else{
System.out.print("I");
angka=angka-1;
}
}
}

{
System.out.println("");
}
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage());
System.exit(1);
}
catch(NumberFormatException nfe)
{
System.out.println(nfe.getMessage());
System.exit(1);
}
}
}


Coding Program bisa di download di sini



selamat mencoba!!



refrensi:

http://adhit8.blogspot.com/2009/10/program-konversi-bilangan-bulat-desimal.html

Labels: