Cara convert angka romawi ke angka desimal dengan bahasa pemrograman dart

Di tutorial kali ini saya ingin membagi sedikit ilmu bagaimana cara convert angka romawi ke angka desimal menggunakan bahasa pemrograman Dart,




Adapun code nya bisa dilihat dibawah ini:

void main() {
  print(convertRomawiToNumber("III"));
}

String convertRomawiToNumber(String? romawi) {
  Map<String, int> romawiToNumber = {
    "I": 1,
    "V": 5,
    "X": 10,
    "L": 50,
    "C": 100,
    "D": 500,
    "M": 1000
  };
  int total = 0;
  List<int> listRomawiToNumber = [];

  //cek invalid INPUT
  if (romawi == null || romawi.length < 1) {
    return "INVALID INPUT";
  }
  
  //cek invalid ROMAWI
  for (int i = 0; i < romawi.length; i++) {
    if (!(romawiToNumber.keys.toList().contains(romawi.split("")[i]))) {
      return "INVALID ROMAWI";
    }
  }

  //Convert ROMAWI TO NUMBER
  for (int i = 0; i < romawi.length; i++) {
    listRomawiToNumber.add(romawiToNumber[romawi.split("")[i]]!);
  }

  //SET DEFAULT TOTAL WITH LAST VALUE LIST RESULT ROMAWI TO NUMBER
  total += listRomawiToNumber[listRomawiToNumber.length - 1];
  
  //LOGIC CHECK ROMAWI
  for (int i = listRomawiToNumber.length - 1; i >= 0; i--) {
    if (i >= 1) {
      if (listRomawiToNumber[i] <= listRomawiToNumber[i - 1]) {
        total += listRomawiToNumber[i - 1];
      } else {
        total -= listRomawiToNumber[i - 1];
      }
    }
  }
  
  //RETURN TOTAL
  return total.toString();
}

Dari kode diatas jika dijalankan maka akan keluar hasil convert angka romawi III menjadi angka desimal 3 

0 komentar:

Post a Comment

Informasi:
Form komentar ini menggunakan moderasi, setiap komentar yang masuk akan melalui proses pemeriksaan sebelum ditampilkan dalam kolom komentar.

Memasang link dan konten yang mengandung pornografi di komentar tidak akan di tampilkan. Hanya komentar yang membangun dan sesuai topik artikel saja yang akan kami tampilkan.

Mohon maaf atas ketidaknyamanannya.