Deskripsi :
Bilangan Romawi adalah bilangan unik yang memiliki aturan-aturan yang berlaku dan terdiri dari huruf-huruf CAPITAL seperti I, X, C, M, V, L, dan v. Di Indonesia bilangan ini sangat jarang digunakan sekali, tapi untuk hal-hal tertentu saja. Pada dasarnya, bilangan Romawi memiliki bilangan dasar dan maksimal perulangan ganda pada huruf-huruf dalam suatu angka yaitu 3. Misal XXX = 30 bukan XXXX=40.
Pada dasarnya adapun aturan dari bilangan romawi tersebut adalah sebagai berikut :
- Angka romawi memiliki arti : I = 1 , V = 5, X = 10, L = 50, C = 100, D = 500, M = 100.
- Romawi tidak mengenal 4 buah symbol yang di lakukan secara berurutan. Misal, IIII itu seharusnya IV, XXXX seharusnya LX, dsb.
- Lambang romawi seperti IV, MC, CD, dsb, memiliki ciri khas yaitu Simbol pertama memiliki nilai Lebih Kecil dari pada simbol kedua.
- Jika ditemukankondisi nomor 3 maka pembacaanya adalah lambang kedua dikurangi lambang pertama.
- Jika ditemukan Lambang seperti contoh pada nomor 3 maka yang di bandingkan maju 2 langkah, misal: CMII pertama-tama kita bandingkan karakter pertama dan kedua dahulu yaitu C dan M. C memiliki nilai yang kurang dari M. Selanjutnya, kita membandingkan I dengan I bukan M dengan I.
- Berdasarkan nomor 4 dan 5 diperoleh pembacaan bila CMII maka akan dibaca M – C + I + I.
- Jika kondisi Lambang Kedua Lebih besar dari pada lambang pertama, maka pembacaan tinggal dijumlahkan saja misal: MVII maka M + V + I + I.
Source code Program :
- 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);
- }
- }
- }
No comments:
Post a Comment