Senin, 03 Januari 2011

Konversi Angka ke Bilangan Romawi


/*
* konversiToRomawi.java
*
* Created on January 4, 2011, 10:06 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

/**
*
* @author Mr. Miscall
*/

import javax.swing.JOptionPane;

public class konversiToRomawi
{
public static void konversi(int angka)
{
int i;
char romawi[]={'I','V','X','L','C','D','M'};

if(angka>=1&&angka<5)
{
if(angka==4) System.out.print(romawi[0]+""+romawi[1]);
else for(i=0;i }
else if(angka>=5&&angka<10)
{
if(angka==9) System.out.print(romawi[0]+""+romawi[2]);
else
{
System.out.print(romawi[1]);
if(angka!=5) konversi(angka-5);
}
}
else if(angka>=10&&angka<50)
{
if(angka>=40)
{
System.out.print(romawi[2]+""+romawi[3]);
if(angka>40) konversi(angka-40);
}
else
{
if(angka%10==0) for(i=0;i else
{
System.out.print(romawi[2]);
konversi(angka-10);
}
}
}
else if(angka>=50&&angka<100)
{
if(angka>=90)
{
System.out.print(romawi[2]+""+romawi[4]);
if(angka>90) konversi(angka-90);
}
else
{
System.out.print(romawi[3]);
if(angka!=50) konversi(angka-50);
}
}
else if(angka>=100&&angka<500)
{
if(angka>=400)
{
System.out.print(romawi[4]+""+romawi[5]);
if(angka>400) konversi(angka-400);
}
else
{
if(angka%100==0) for(i=0;i else
{
System.out.print(romawi[4]);
konversi(angka-100);
}
}
}
else if(angka>=500&&angka<1000)
{
if(angka>=900)
{
System.out.print(romawi[4]+""+romawi[6]);
if(angka>900)konversi(angka-900);
}
else
{
System.out.print(romawi[5]);
if(angka!=500) konversi(angka-500);
}
}
else if(angka>=1000&&angka<5000)
{
if(angka%1000==0) for(i=0;i else
{
System.out.print(romawi[6]);
konversi(angka-1000);
}
}

else System.out.print(""); //untuk angka>=5000, karena keterbatasan
//compiler dalam menampilkan character unicode, maka tidak bisa ditampilkan
}


public static void main(String[] args)
{
int x;
String input;

do
{
input = JOptionPane.showInputDialog(null,"Masukkan bilangan [1-5000]= ","Input Dialog",JOptionPane.QUESTION_MESSAGE);
x = Integer.parseInt(input);
if(x<1||x>=5000)
{
JOptionPane.showMessageDialog(null,"Maaf, input anda di luar batas range. Harap input ulang","Pesan Error",JOptionPane.INFORMATION_MESSAGE);
}
}
while(x<1||x>=5000);

System.out.print("Angka = "+x);
System.out.print("\nBilangan romawi = ");
konversi(x);
}
}

Tidak ada komentar: