Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assignment 4 - Function #81

Open
fitrh opened this issue Nov 7, 2021 · 0 comments
Open

Assignment 4 - Function #81

fitrh opened this issue Nov 7, 2021 · 0 comments
Labels
Done Answers have been graded

Comments

@fitrh
Copy link
Member

fitrh commented Nov 7, 2021

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

@fitrh fitrh added On Progress Work on assignments On Review Answers are being reviewed and removed On Progress Work on assignments labels Nov 7, 2021
@fitrh fitrh added Done Answers have been graded and removed On Review Answers are being reviewed labels Nov 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Done Answers have been graded
Projects
None yet
Development

No branches or pull requests

1 participant