Masyarakat Suku Maya memiliki sistem penomoran dengan basis 20 atau lebih dikenal sebagai Vigesimal. Vigesimal direpresentasikan oleh angka 0 - 9 dan huruf A - J dimana A - J adalah 10 - 19.
Buatlah sebuah program dengan method sebagai berikut
-
char[] toVigesimal(int n)
: Mengkonversi bilangan berbasis 10 ke basis 20Input Ouptput 20 10 10 A 38 1I 90 4A -
void table()
: Mencetak table perkalian vigesimal dengan format berikutDimana setiap elemennya didapatkan dengan memanfaatkan method
toVigesimal
Yang dicetak adalah
4
-I1
, bagian luar (1 - J) hanya sebagai panduanPada dasarnya yang dicetak adalah table perkalian 2 - 19, namun setiap hasil perkaliannya dikonversi ke vigesimal
Tipe data integar pada bahasa pemrograman umumnya memiliki kapasitas 32-bit signed atau 2^32 - 1 atau sebesar 2147483647, sehingga 2147483647 + 1 pada tipe data integer akan menghasilkan hasil yang keliru berdasarkan aritmatika penjumlahan.
Bahasa pemrograman Java menyediakan class java.math.BigInteger
untuk
melakukan operasi aritmatika terhadap angka yang terlalu besar untuk tipe data
integer.
Buatlah sebuh program dengan method sebagai berikut
-
int[] add(int[] a, int[] b)
: Menjumlahkan 2 buah angka besar, dimana angka tersebut direpresentasikan sebagai array e.g. 2147483647 direpresentasikan sebagai{2, 1, 4, 7, 4, 8, 3, 6, 4, 7}
.Contoh:
-
add({2, 1, 4, 7, 4, 8, 3, 6, 4, 7}, {1})
mengembalikan{2, 1, 4, 7, 4, 8, 3, 6, 4, 8}
-
add({2, 1, 4, 7, 4, 8, 3, 6, 4, 7}, {2, 1, 4, 7, 4, 8, 3, 6, 4, 7})
mengembalikan{4, 2, 9, 4, 9, 6, 7, 2, 9, 4}
-
-
char[] humanFormat(int[] nums)
: Menkonversi array integer kedalam human readable format yang dipisahkan oleh dot(.)Contoh:
humanFormat({2, 1, 4, 7, 4, 8, 3, 6, 4, 8})
mengembalikan{'4', '.', '2', '9', '4', '.', '9', '6', '7', '.', '2', '9', '4'}
karena 4294967294 bisa diformat sebagai 4.294.967.294 -
char[] humanFormat(int[] nums, char sep)
: Sama seperti method sebelumnya, hanya saja method ini bisa menspesifikkan spearator yang digunakanContoh:
humanFormat({2, 1, 4, 7, 4, 8, 3, 6, 4, 8}, '_')
mengembalikan{'4', '_', '2', '9', '4', '_', '9', '6', '7', '_', '2', '9', '4'}
atau 4294967294 yang diformat sebagai 4_294_967_294 -
void print(int[] nums)
: Mencatak array integer kedalam format angkaContoh:
print({1, 3, 4, 4})
mencetak1344
-
void print(char[] c)
: Sama seperti method sebelumnya, hanya saja parameter yang digunakan adalahchar[]
Conotoh:
print({'4', '.', '2', '9', '4', '.', '9', '6', '7', '.', '2', '9', '4'})
mencetak 4.294.967.294
Program pada tugas ini hanya menggnakan tipe data primitif dan array primitif
Method pada Placeholder Code yang disediakan tidak dirubah
return type
,method name
,signature
danJavaDoc
-nya, silakan lengkapibody method
dan menggantireturn valuenya
Placeholder Code tidak menyediakan
main method
, silakan tambahkanmain method
untuk keperluan testing, kode yang dipush tidak mengandungmain method