Skip to content

Assignment 4 - Function #81

@fitrh

Description

@fitrh

1. vɪˈdʒɛsɪməl

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 20

    Input Ouptput
    20 10
    10 A
    38 1I
    90 4A
  • void table(): Mencetak table perkalian vigesimal dengan format berikut

    Vigesimal - Wikipedia

    Dimana setiap elemennya didapatkan dengan memanfaatkan method toVigesimal

    Yang dicetak adalah 4 - I1, bagian luar (1 - J) hanya sebagai panduan

    Pada dasarnya yang dicetak adalah table perkalian 2 - 19, namun setiap hasil
    perkaliannya dikonversi ke vigesimal


2. BigInt

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 separator yang digunakan

    Contoh:

    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 angka

    Contoh:

    print({1, 3, 4, 4}) mencetak 1344

  • void print(char[] c): Sama seperti method sebelumnya, hanya saja parameter
    yang digunakan adalah char[]

    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 dan JavaDoc-nya, silakan lengkapi body method
dan mengganti return valuenya

Placeholder Code tidak menyediakan main method, silakan tambahkan main method untuk keperluan testing, kode yang dipush tidak mengandung main method

Metadata

Metadata

Assignees

No one assigned

    Labels

    DoneAnswers have been graded

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions