Skip to content

Instantly share code, notes, and snippets.

@fitrh
Last active November 6, 2021 03:42
Show Gist options
  • Save fitrh/8df50ed4e34a5623ffe37533312a1007 to your computer and use it in GitHub Desktop.
Save fitrh/8df50ed4e34a5623ffe37533312a1007 to your computer and use it in GitHub Desktop.
Tugas Praktikum Pengantar Pemrograman 2021

FUNCTION


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 spearator 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment