(21H07110202) Introduction to Programming 2021 Course - Assignment Repository
stdcs / 21-ip-assignment Goto Github PK
View Code? Open in Web Editor NEW(21H07110202) Introduction to Programming 2021 Course - Assignment Repository
(21H07110202) Introduction to Programming 2021 Course - Assignment Repository
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
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
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
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
URL-encoding merupakan mekanisme untuk mengubah beberapa karakter khusus kedalam
format %
diikuti dengan representasi hexadecimal ASCII-nya, tujuannya adalah
keamanan komunikasi data dan standarisasi karakter yang digunakan pada URL.
Berikut adalah table Reserved Characters dan Unsasfe Characters yang digunakan
pada URL-encoding
Character | URL-encode |
---|---|
$ | %24 |
& | %26 |
+ | %2b |
, | %2c |
/ | %2f |
: | %3a |
; | %3b |
= | %3d |
? | %3f |
@ | %40 |
Character | URL-encode |
---|---|
space | %20 |
" | %22 |
< | %3c |
> | %3e |
# | %23 |
% | %25 |
{ | %7b |
} | %7d |
\ | %5c |
^ | %5e |
~ | %7e |
[ | %5b |
] | %5d |
` | %60 |
Berdasarkan table diatas, buatlah sebuh perogram dengan method berikut:
String encode(String rawUrl)
: Melakukan peroses percent-encoding terhadap
rawUrl
contoh
encode("https://github.com/syssrc/21-ip-assignment")
menghasilkan https%3A%2F%2Fgithub.com%2Fsyssrc%2F21-ip-assignment
String decode(String encodedUrl)
: Kebalikan dari method diatas
Pada kelas English vocabulary, anda belajar membentuk kata dengan menambahkan
prefixes dan suffixes, pada kelas ini, anda diberikan tugas untuk mengubah
kumpulan kata, berikut adalah deskripsi tugasnya:
String addPrefixUn(String word)
Salah satu prefix umum dalama bahasa Inggris adalah un
, yang berarti not.
Pada tugas ini, buatlah method yang menambahkan prefix un
kedalam sebuah kata.
Contoh
addPrefixUn("happy")
unhappy
addPrefixUn("manageable")
unmanageable
String prefixes(String prefix, Sring... groups)
Pada kelas ini, anda belajar beberapa suffix umum:
en
(yang sama artinya dengan 'put into' atau 'cover with'),pre
(yang berarti 'before' atau 'forward'),auto
(yang berarti 'self' atau 'same'),inter
(yang berarti 'between' atau 'among').Pada tugas ini, anda diharapakan untuk membuat method yang menambahkan prefix
kedalam setiap kata didalam groups
dengan format berikut:
prefix :: prefixkata_1 :: prefixkata_2 :: ... :: prefixkata_n
Contoh
prefixes("en", "close", "joy", "lighten")
en :: enclose :: enjoy :: enlighten
prefixes("pre", "serve", "dispose", "position")
pre :: preserve :: predispose :: preposition
prefixes("auto", "didactic", "graph", "mate")
auto :: autodidactic :: autograph :: automate
prefixes("inter", "twine", "connected", "dependent")
inter :: intertwine :: interconnected :: interdependent
String removeSuffixNess(String word)
ness
adalah suffix yang umum digunakan utuk mengungkapkan 'state of being'.
Pada tugas ini, anda diminta untuk menemukan akar kata dengan menghilangkan
suffix ness
.
Namu karena aturan pengejaan: Jika akar kata diakhiri oleh konsonan lalu diikuti
oleh y
, maka y
diganti menjadi i
, menghapus ness
berarti mengembalikan y
pada akar katanya. e.g. happiness
--> happi
--> happy
.
Contoh
removeSuffixNess("heaviness")
heavy
removeSuffixNess("sadness")
sad
String nounToVerb(String sentence, int index)
Salah satu praktik umum penggunaan suffix dalam bahasa Inggris adalah
verbing atau verbifying -- dimana kata sifat menjadi kata kerja dengan
menambahkan suffix en
.
Pada tugas ini, anda akan berlatih "verbing" dengan mengekstark kata sifat
dari sebuah kalimat dan mengubahnya menjadi kata kerja.
Diberikan sebuah method nounToVerb(sentence, index)
, sentence
dipecah menjadi
kosa kata, dan index
menunjukkan kata keberepa yang diverbing, index -1
berarti kata terakhir. Method ini mengembalikan kata kerja yang diekstrak dalam
bentung verbing.
Contoh
nounToVerb("I need to make that bright.", -1 )
brighten
nounToVerb("It got dark as the sun set.", 2)
darken
Buatlah sebuah program yang menerima inputan String s
termasuk spasi, jika
terdapat karakter F
atau f
pada s
, maka cetak Fizz sebanyak jumlah
karakter Ff
, jika terdapat karakter B
atau b
, maka cetak Buzz
sebanyak jumlah karakter Bb
, jika terdapat keduanya maka cetak Fizz sebanyak
jumlah karakter Ff
dan Buzz sebanyak jumlah karakter Bb
, dengan syarat,
Fizz selalu dicetak terlebih dahulu sebelum Buzz dan tidak ada spasi diantarnya,
jika tidak, maka cetak kembali s
yang di input.
Karena kalian telah belajar String Manupulation, pada tugas ini,
penentuan banyaknya Ff
dan Bb
tidak mennggunakan perulangan.
Contoh
Input | Output |
---|---|
FFFffBBffbbB | FizzFizzFizzFizzFizzFizzFizzBuzzBuzzBuzzBuzzBuzz |
Abdallah | Buzz |
Mas Mukhtar | Mas Mukhtar |
Bang Marfi | FizzBuzz |
new String("The {alpha} {do} over the {animal}\n")
.concat("and feels as if {who} where in {where}\n")
.concat("of typography together with {with}.\n");
String diatas merupakan sebuah template dan setiap kata yang diapit oleh
curly braces ({}
) adalah placeholder, placeholder setelah proses parsing
akan digantikan oleh nilai dari data yang memiliki identifier atau nama
variabel yang sama dengan placeholder tersebut tanpa curly braces, e.g.
{alpha}
akan digantikan oleh nilai dari variabel alpha
.
Buatlah sebuah program untuk melakukan template parsing dengan method
berikut:
List<String> parse(String template, Map<String, String> data)
Memparsing template
dan mengganti semua placeholder yang ada dengan
nilai dari data
yang sesuai, jika ada placeholder yang tidak ada didalam
data
, maka placeholder tersebut dibiarkan apa adanya. template
dikembalikan sebagai List<String>
dimana setiap elemennya merupakan hasil
split template
berdasarkan new line (\n
)
void render(List<String> string)
Mencetak perbaris hasil dari method parse
Jika diberikan main
method berikut
public static void main(String[] args) {
String template = new String("The {alpha} {do} over the {animal}\n")
.concat("and feels as if {who} where in {where}\n")
.concat("of typography together with {with}.\n");
Map<String, String> data = new HashMap<>();
data.put("with", "Hermann Zapf");
data.put("do", "jumps");
data.put("alpha", "quick brown fox");
data.put("animal", "lazy dog");
data.put("where", "the seventh heaven");
data.put("who", "he");
render(parse(template, data));
}
Program akan menghasilkan output berikut
The quick brown fox jumps over the lazy dog
and feels as if he where in the seventh heaven
of typography together with Hermann Zapf.
Dalam Relational Database Management System, Data Manipulation Language (DML)
merupakan perintah-perintah yang digunakan untuk memanipulasi struktur data
di dalam database, 2 diantaranya adalah INSERT dan SELECT.
Buatlah sebuah program yang mensimulasikan proses INSERT dan SELECT
sederhana dengan method berikut
Placeholder file dari tugas ini hanya mendefinisikan method beserta
return type tanpa method signature (parameter)
Lengkapi method signature yang dibutuhkan sesuai deskripsi method dan
main
method dibawah
Map<String, String> insert(/* signatures */)
Merupakan simulasi dari perintah INSERT, perintah INSERT memiliki
sintaks: INSERT INTO <table_name> <column(s)> VALUES (value(s))
.
Pada program ini, <table_name>
direpresentasikan oleh List<Map<String, String>>
sedangkan column(s)
merupakan String
dengan setiap kolomnya dipisahkan
oleh koma (,
), e.g. "id,name,address"
berarti 3 kolom (id
, name
,
address
) dan value(s)
memiliki format yang sama dengan column(s)
dimana
setiap nilainya dipasangkan tepat 1 dengan kolom pada column(s)
, e.g.
"01,Fitrah,Maros"
berarti id=01
, name=Fitrah
, dan address=Maros
, hal
ini berarti jumlah column(s)
= jumlah value(s)
, jika jumlahnya tidak sama,
program akan menghasilakn IllegalArgumentException
// student merupkan <table_name>
List<Map<String, String>> student = new ArrayList<>();
// Ketiga sintaks dibawah ini valid
// column(s) selalu menjadi lower case dan tanpa spasi
// value(s) disimpan apa adanya namun tanpa spasi
student.add(insert("id,first_name,last_name", "H071171504, Rabia, Adaw"));
// spasi pada sintaks ini dihilangkan oleh method insert
student.add(insert("id, first_name, last_name", "H071171512,Fitrah,M"));
// UPPER CASE pada sintaks ini diganti menjadi lower case oleh method insert
student.add(insert("ID, FIRST_NAME, LAST_NAME", "H071171510, Amalia, Dwi"));
// Baris berikut menghasilkan IllegalArgumentException
// student.add(insert("id,first_name, last_name", "H071171308,Babang,Arizk,Male"));
List<String> select(/* signatures */)
Merupakan simulasi dari perintah SELECT, printah SELECT memiliki
sintaks: SELECT <column(s)> from <table_name>
.
Pada program ini, column(s)
merupakan String variadic arguments
,
<table_name>
sama dengan yang ada pada method insert
dan mengembalikan
List<String>
yang berisi nama kolom dan data dari setiap kolomnya dipisahkan
oleh semi colon (;
), jika ada kolom pada column(s)
yang tidak terdapat didalam
<table_name>
, kolom tersebut diisi oleh nilai "NONE"
Contoh
// dengan asumsi baris berikut merupakan lanjutan potongan program
// pada deskripsi method insert
select(student, "first_name", "last_name").forEach(System.out::println);
menghasilkan
first_name;last_name
Fitrah;M
Amalia;Dwi
Rabia;Adaw
select(student, "first_name", "i").forEach(System.out::println);
menghasilkan
first_name;i
Fitrah;NONE
Amalia;NONE
Rabia;NONE
void prettify(List<String> strings)
Mencetak hasil dari method select
dengan format
-
)Contoh
// dengan asumsi baris berikut merupakan lanjutan potongan program
// pada deskripsi method insert
prettify(select(student, "id", "first_name", "last_name"));
menghasilkan
| ID | FIRST_NAME | LAST_NAME |
--------------------------------------
| H071171512 | Fitrah | M |
| H071171510 | Amalia | Dwi |
| H071171504 | Rabia | Adaw |
--------------------------------------
prettify(select(student, "id", "address", "first_name", "last_name"));
menghasilkan
| ID | ADDRESS | FIRST_NAME | LAST_NAME |
---------------------------------------------------
| H071171512 | NONE | Fitrah | M |
| H071171510 | NONE | Amalia | Dwi |
| H071171504 | NONE | Rabia | Adaw |
---------------------------------------------------
main
method berikut
public static void main(String[] args) {
List<Map<String, String>> student = new ArrayList<>();
student.add(insert("id, first_name, last_name, gender", "H071171512, Fitrah, Muhammad, Male"));
student.add(insert("id, first_name, last_name, gender", "H071171510, Amalia, Dwi, Female"));
student.add(insert("id,first_name,last_name,gender", "H071171504, Rabia,Adaw,Female"));
student.add(insert("id,first_name, last_name, gender", "H071171308,Babang,Arizk,Male"));
select(student, "first_name", "last_name", "i").forEach(System.out::println);
System.out.println();
prettify(select(student, "id", "first_name", "last_name", "gender"));
}
Menghasilakan output berikut
first_name;last_name;i
Fitrah;Muhammad;NONE
Amalia;Dwi;NONE
Rabia;Adaw;NONE
Babang;Arizk;NONE
| ID | FIRST_NAME | LAST_NAME | GENDER |
---------------------------------------------------
| H071171512 | Fitrah | Muhammad | Male |
| H071171510 | Amalia | Dwi | Female |
| H071171504 | Rabia | Adaw | Female |
| H071171308 | Babang | Arizk | Male |
---------------------------------------------------
start
, end
dan size
Cetak angka dari start
sampai end
, jika start == end
, cetak angka tersebut
Setiap baris terdiri dari size
angka, jika size == 0
, cetak 1 angka perbaris
Setiap angka dipisahkan oleh 1 spasi kecuali angka terakhir dalam 1 baris
Setelah mencetak sebanyak size
, cetak baris baru
1<space>2<space>3<newline>
4<space>5<space>6<newline>
8<space>7<space>9<newline>
Setiap angka dicetak rata kanan berdasarkan nilai terbesar dalam range
Setiap angka dicetak dengan leading zero sesuai nilai terbesar dalam range
Untuk lebih jelasnya, silakan perhatikan contoh berikut
1 10 4
01 02 03 04
05 06 07 08
09 10
100 90 7
100 099 098 096 094 095 094
093 092 091 090
0 100 10
000 001 002 003 004 005 006 007 008 009
010 011 012 013 014 015 016 017 018 019
020 021 022 023 024 025 026 027 028 029
030 031 032 033 034 035 036 037 038 039
040 041 042 043 044 045 046 047 048 049
050 051 052 053 054 055 056 057 058 059
060 061 062 063 064 065 066 067 068 069
070 071 072 073 074 075 076 077 078 079
080 081 082 083 084 085 086 087 088 089
090 091 092 093 094 095 096 097 098 099
100
10 10 0
10
hint:
System.out.printf("%03d", 1);
akan mengasilkan 001
n
, dimana n >= 0
n
dengan pola seperti pada contoh10
10! = 10 x 9 x 8 x 7 x 6 x 5 x 4 x 3 x 2 x 1 = 3628800
0
0! = 1
n
dimana n > 0
n
x n
n
elemen, cetak baris baru5
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
Semua soal dikerjakan menggunakan konsep perulangan dan materi sebelumnya
Tidk ada penggunaan array atau materi yang lebih advance dari perulangan
Jika diberikan deretan angka [1, 2, 3, 1, 5, 0, 7, 8, 2] maka anda dapat dengan
mudahnya menentukan bawa terdapat 2 angka 1, 2 angka 2, dan 1
angka yang lainnya. Buatlah sebuah program yang menerima inputan integer N,
dimana N adalah banyaknya inputan integer selanjutnya.
Kemudian tentukan berapa banyak masing-masing angka yang diinput tanpa mengurutkannya.
Program yang anda buat hanya boleh menggunakan tipe data integer atau array integer.
Contoh Input :
10
1 3 4 5 3 2 2 8 9 1
Contoh Output :
2 Angka 1
2 Angka 3
1 Angka 4
1 Angka 5
2 Angka 2
1 Angka 8
1 Angka 9
Contoh Input :
10
0 1 0 1 0 1 0 1 0 10000
Contoh Output :
5 Angka 0
4 Angka 1
1 Angka 10000
Dalam konteks Position Numeral System, Radix atau basis merupakan digit
unik, termasuk nol, untuk merepresentasikan angka, contohnya adalah Decimal
System yang kita gunakan sehari-hari, sistem ini menggunakan radix 10 yaitu 0 - 9.
Buatlah sebuah program dengan memanfaatkan array, yang menerima sebuah inputan
integer kemudian konversi bilangan integer tersebut ke basis 2 (biner),
8 (octal), dan 16 (hexa), hasil konversinya dicetak dengan 8 zero pad.
Kode program ini hanya terdapat variable integer, char, array integer dan array
char dan tidak menggunakan String Formatter atauput Format Specifier kecuali
untuk menghasilkan zero pad.
Contoh Input :
123
Contoh Output :
base 2: 01111011
base 8: 00000173
base 16: 0000007B
Contoh Input :
255
Contoh Output :
base 2: 11111111
base 8: 00000377
base 16: 000000FF
Contoh Input :
16
Contoh Output :
base 2: 00010000
base 8: 00000020
base 16: 00000010
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
Diatas adalah potongan program untuk menghitung hasil penjumlahan dari elemen
sebuah array. Lengkapi kode berikut, sehingga kode berikut dapat menghitung
hasil penjumlahan elemen sebuah array dengan menggunakan ⅓ dari panjang array.
Program ini tidak menerima inputan, array dinyatakan didalam program sebagai
array integer.
int sumWithOneThirdLength = 0;
for (int i = 0; i < arr.length / 3; i++) {
// Your Magic is Here
}
Kemudian cetak urutan elemen yang dijumlahkan beserta hasilnya disetiap proses
penjumlahan degan format rata kanan berdasarkan bilangan terbesar, lalu setelah
selesai, cetak hasil akhirnya berdasarkan contoh.
Contoh :
jika arr
adalah { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
, maka
Output program sebagai berikut
1 + 6 + 11 = 18
2 + 7 + 12 = 21
3 + 8 + 13 = 24
4 + 9 + 14 = 27
5 + 10 + 15 = 30
Sum of [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15] = 120
Penjelasan :
Karena pada contoh arr
panjangnya adalah 15, dan 1/3 dari 15 adalah 5, maka
hanya butuh 5 perulangan untuk mendapatkan hasil penjumlahan array
Contoh :
arr
adalah { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }
Output :
1 + 6 + 11 = 18
2 + 7 + 12 = 21
3 + 8 + 13 = 24
4 + 9 + 14 = 27
5 + 10 + 15 = 30
16 + 17 = 33
Sum of [1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17] = 153
Contoh :
arr
adalah { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Output :
1 + 4 + 7 = 12
2 + 5 + 8 = 15
3 + 6 + 9 = 18
Sum of [1][2][3][4][5][6][7][8][9] = 45
- Tidak ada penggunaan nested loop pada soal ini
- Proses menghitung jumlah total tiap 3 elemen, mencetak tiap 3 elemen, dan
menghitung jumlah total keseluruhan terjadi dialam perulangan yang samaarr
tidak selalu terurut e.g.arr = {10, 9, 0, 99, 1000, 876};
Tidak ada penggunaan
java.uti.Arrays
dan string method pada soal-soal diatas
SysMart membutuhkan bantuan anda sebagi programmer untuk merancang sebuah
aplikasi kasir CLI (Command Line Interface) untuk memvalidasi dan menghitung
banyaknya kembalian dari pembayaran yang diberikan, tidak hanya itu, SysMart
juga menginginkan program tersebut agar dapat menghitung banyaknya kembalian
untuk setiap pecahan uang yang mereka miliki.
Mereka memiliki pecahan:
SysMart menggunakan satuan lembar untuk uang pecahan 1.000 keatas dan
buah untuk pecahan 500 kebawah.
Jika pelanggan membayarkan sejumlah uang dan kembaliannya ada diluar pecahan
tersebut, SysMart menganggapnya sebagai donasi.
Bantulah SysMart untuk merancang aplikasi tersebut, berikut spesifikasi
lengkap dan referensi programnya.
Lengkapilah potongan program barikut
public class RoleB {
public static void main(String[] args) {
int menuIndex = 0;
int subMenuIndex = 0;
boolean isValidRole = false;
if (args.length == 0) {
System.out.println("What role you want to see ?");
System.out.println("For example, try 'Admin'.");
return;
}
if (args.length > 1) {
System.out.println("Too many argument");
return;
}
/*
* Your magic is here
* Role validation
* /
if (/* Magic ? */) {
System.out.println("Invalid Role");
System.out.println("Valid Role : Super Admin, Admin, User");
return;
}
/*
* Another magic
* Main menu
* /
}
}
Sehingga menghasilkan output berikut (Klik untuk play)
args[0]
sebagai variabel pengecekan RoleisValidRole
harus digunakanindexMenu
dan indexSubmenu
if (args[0] == "Admin") {
System.out.printf("%d. Admin\n", menuIndex);
System.out.printf("%2d.%d. CRUD Admin\n", menuIndex, subMenuIndex);
System.out.printf("%2d.%d. CRUD User\n\n", menuIndex, subMenuIndex);
System.out.printf("%d. User\n", menuIndex); // Duplikasi, bagian ini hanya boleh terdapat dibagian User
System.out.printf("%2d.%d. View\n", menuIndex, subMenuIndex); // Duplikasi, bagian ini hanya boleh terdapat dibagian User
System.out.printf("%2d.%d. Edit\n", menuIndex, subMenuIndex); // Duplikasi, bagian ini hanya boleh terdapat dibagian User
} else if (args[0] == "User") {
System.out.printf("%d. User\n", menuIndex);
System.out.printf("%2d.%d. View\n", menuIndex, subMenuIndex);
System.out.printf("%2d.%d. Edit\n", menuIndex, subMenuIndex);
}
- Diatas merupakan contoh duplikasi, dimana role Admin menampilkan menu User dalam pengecekan kondisinya
- Setiap Role hanya menampilkan menu untuk Role tersebut dialam blok pengecekannya
Untuk lebih jelasnya, silahkan perhatikan bagian output
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.