Jumat, 31 Maret 2017

Konversi Desimal ke Romawi dalam Bahasa Pemrograman Java

Konversi Desimal ke Romawi, semisal contoh 3120 = MMMCXX

Algoritma Yang Digunakan:
1. Jika kelipatan 1000 diganti dengan satu M
2. Sisanya jika di atas 900 ditambahkan CM
3. Sisanya jika di atas 500 ditambahkan D
4. Sisanya jika di atas 400 ditambahkan CD
5. Sisanya jika kelipatan 100 diganti dengan satu C //mengulang algoritma kelipatan 1000
6. Sisanya jika di atas 90 ditambahkan XC
7. Sisanya jika di atas 50 ditambahkan L
8. Sisanya jika di atas 40 ditambahkan CL
9. Sisanya jika kelipatan 10 diganti dengan satu C //mengulang algoritma kelipatan 1000 atau 100
10. Sisanya jika di atas 9 ditambahkan IX
11. Sisanya jika di atas 5 ditambahkan V
12. Sisanya jika di atas 4 ditambahkan IV
13. Sisanya ditambahkan I

Untuk algortima di atas 1000 bisa mengulang kelipatan 1000 ke atas dengan menemukan simbol penggantinya dalam Romawi



Implementasi ke Kode Java:
Dalam koding ini dugunakan If Else If
buatlah satu kelas dengan nama Konversi

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package inymgd;

/**
 *
 * @author monday
 */

import java.io.*;

public class Konversi {
    
    public static void main (String args[]) {
        try{            
            //deklarasi variabel penampung angka
            int angka;            
            do{
                //menampilkan input stream agar tampil dilayar
                System.out.print ("Masukkan Angka Desimal (1-4000): ");

                //input tersebut dibaca dan dimasukkan ke variabel angka
                BufferedReader bfr = new BufferedReader (new InputStreamReader(System.in));
                angka = Integer.parseInt(bfr.readLine());
            }while(angka < 1 || angka > 4000);

            //deklarasi variabel penampung romawiawi
            String romawi = "";
            //implementasikan algoritma
            do{
                if (angka >= 1000){
                    angka = angka - 1000;
                    romawi = romawi + "M";
                }
                else if (angka >= 900){
                    angka = angka - 900;
                    romawi = romawi + "CM";
                }
                else if (angka >= 500){
                    angka = angka - 500;
                    romawi = romawi + "D";
                }
                else if (angka >= 400){
                    angka = angka - 400;
                    romawi = romawi + "CD";
                }
                else if (angka >=100){
                    angka = angka - 100;
                    romawi = romawi + "C";
                }
                else if (angka >=90){
                    angka = angka - 90;
                    romawi = romawi + "XC";
                }
                else if (angka >=50){
                    angka = angka - 50;
                    romawi = romawi + "L";
                }
                else if (angka >=40){
                    angka = angka - 40;
                    romawi = romawi + "XL";
                }
                else if (angka >=10){
                    angka = angka - 10;
                    romawi = romawi + "X";
                }
                else if (angka >=9){
                    angka = angka - 9;
                    romawi = romawi + "IX";
                }
                else if (angka >=5){
                    angka = angka - 5;
                    romawi = romawi + "V";
                }
                else if (angka >=4){
                    angka = angka - 4;
                    romawi = romawi + "IV";
                }
                else if (angka >=1){
                    angka = angka - 1;
                    romawi = romawi + "I";
                }
            }while (angka > 0);

            //menampilkan hasil konversi
            System.out.println("Angka Romawi: "+ romawi);
            
        }catch (IOException io){
            System.out.println ("Error: " + io.getMessage());
        }
    }
}

Tidak ada komentar:

Posting Komentar

Besakih Temple Ceremony