Senin, 02 Februari 2009

Konversi Angka Arabic ke Romawi

Konversi ke angka romawi adalah program komputer untuk mengkonversi angka berformat standar (arabic), antara 1 sampai 3999 menjadi berformat Romawi.

Untuk angka dari 1 sampai 10 yang sudah biasa anda perhatikan seperti I, II, III, IV, V, VI, VII, VIII, IX, X. Sedangkan simbol angka romawi yang ada adalah I (= 1), V (= 5), X (= 10), L (= 50), C (= 100), D (= 500), and M (= 1000).


Contoh :
XX = 20, XV = 15, VI = 6, IV = 4,
XL = 40, CM = 900, XLVII = 47, CXVI = 116,
MCXX = 1120, MCMXIV = 1914.

Aturan: Simbol romawi yang muncul tidak lebih dari tiga kali berturut-turut
  • IIII (salah) seharusnya IV = 4
  • LXXXX (salah) seharusnya XC = 90
  • DCCCC (salah) seharusnya CM = 900

Algoritma Konversi Angka Arabic ke Angka Romawi
  1. Baca data dari keyboard, Simpan ke variable angka.
  2. Lakukan pengecekan, bila format bukan angka, kembali ke baris ke-1
  3. Lakukan pengecekan, angka > 3999, kembali ke baris ke-1
  4. Inisialisasi Romawi = "" dan Jumlah loop = Length(Angka)
  5. Cek per-digit dari posisi belakang (satuan) sampai depan (ribuan), sebanyak panjang_digit, contoh : 3924, maka yang diproses angka 4 terlebih dahulu, lalu 2, 9 sampai dengan 3.
  6. Jika digit=9, maka ambil dua angka romawi, bila 9=IX, 90=XC, 900=CM
  7. Jika digit>=5, maka ambil satu angka romawi pasti yaitu, bila 5=V, 50=L, 500=V, serta tambahan digit dengan syarat, bila 6=VI, 7=VII, 8=VIII, begitu juga 60=LX, 70=LXX, 80=LXXX, sistem ratusan juga mengikuti aturan yang sama
  8. Jika digit=4, maka ambil dua angka romawi, bila 4=IV, 40=XL, 400=CV
  9. Jika digit<=3, maka tambahkan digit dengan syarat: bila 1=I, 2=II, 3=III, begitu juga 10=X, 20=XX, 30=XXX, sistem ratusan juga mengikuti aturan yang sama. Simpan dalam hasil_sementara untuk setiap digit huruf.11. Romawi = Romawi + hasil_sementara 
  10. Lanjutkan untuk digit lebih atas. Misal setelah satuan, kerjakan puluhan, ratusan, dst. Ulang baris ke-6 sampai semua digit selesai dikerjakan.
  11. Cetak Romawi.
  12. Selesai.

Tidak ada komentar:

Posting Komentar