Berikut di bawah ini adalah tanya jawab singkat seputar ekspresi (expression) dan statemen penugasan (assignment statements) dalam bahasa pemrograman.
Expression
1. Apa itu expression? Dan contohnya?
3. Deskripsikan masing-masing apa saja yang bisa ada dalam arithmetic expression?
4. Apa yang dimaksud dengan operator unary, binary, dan ternary? Dan contohnya!
7. Apa yang dimaksud dengan associativity? dan contohnya?
*, /, %, binary +, binary -, ++, --, unary -, unary +
10. Apa yang dimaksud dengan operator overloading? Contohnya?
11. Apa yang dimaksud dengan narrowing conversion dan widening conversion? dan Contohnya?
12. Apa yang dimaksud mixed-mode expressions dan coercions
13. Apa yang dimaksud dengan explicit conversions/casting & contohnya di C/Java
Relational Expressions
14. Apa yang dimaksud dengan relational expressions? dan contohnya?
15. Apa yang dimaksud dengan boolean expressions? dan contohnya?
16. Apa yang dimaksud dengan short-circuit evaluation? Dan contohnya?
Conditional Targets
17. Ubahlah ke bentuk if-else :
x = (y > z) ? y : z;
dan
($flag ? $count1 : $count2) = 0;
-----------------------------------------------------
18. Apa yang dimaksud dengan compound assignment operators? Dan contohnya?
i = 6; | i = 6;
j = ++i; | j = i++;
print(j); | print(j);
i = -5; | i = -5;
j = i--; | j = --i;
print(j); | print(j);
21. Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = -i++; | j = -++i;
print(j); | print(j);
22. Apa yang dimaksud dengan assignment as expressions? dan contohnya?
23. Apa yang dimaksud dengan multiple assignments? Contohnya?
Expression
1. Apa itu expression? Dan contohnya?
Contohnya?
- kumpulan/kombinasi dari operand, operator, variable, konstanta, fungsi yang diproses bahasa pemrograman untuk mengembalikan suatu nilai.
- 2 + 3 * 4
- y + 6
- 4 != 4
2. Sebutkan beberapa kategori expression! Dan contohnya
Arithmetic Expression
- operators, operands, parentheses, function calls
4. Apa yang dimaksud dengan operator unary, binary, dan ternary? Dan contohnya!
5. Urutkan prioritas evaluasi operator berikut (dalam bahasa berbasis c, seperti c++, C#, java, dll): binary +, - , ++, --,unary +,-,++, --, *, /, %
- memiliki satu operand, dua operand, tiga operand
- (-i); 4 * 3; (x > y) ? x : y
6. Bagaimana urutan aritmetika berikut: -a ** b ? unary atau exponen dulu?
- ++, --
- Unary
- ++, --
- *, /, %
- binary +, -
Associativity
- -(a**b)
7. Apa yang dimaksud dengan associativity? dan contohnya?
- urutan evaluasi operator bila memiliki level yang sama.
- contoh: a - b + c - d dari kiri ke kanan atau dari kanan ke kiri?
8. x = 6/2*(2+1); Berapa x? 9 atau 1?
9. Dari operator berikut mana yang di evaluasi dari kiri dan mana yang dari kanan?
- x = 9
*, /, %, binary +, binary -, ++, --, unary -, unary +
Overloaded OperatorUntuk bahasa-bahasa berbasis C:
- Left: *, /, %, binary +, binary -
- Right: ++, --, unary -, unary +
10. Apa yang dimaksud dengan operator overloading? Contohnya?
penggunaan operator untuk beberapa operasi
contoh:
- + untuk penambahan dan catenation (java)
- ampersand (&) untuk logical AND (binary) dan address-of operator (unary) --> di (C++)
Type Conversions
- narrowing conversion: mengkonversi nilai ke type yang tidak bisa menyimpan bahkan perkirannya dari semua nilai dari type asalnya. contoh: long ke int; double ke float;
- widening conversion: mengkonversi nilai ke type yang bisa menyimpan setidaknya perkiraan dari semua nilai type asalnya. contoh: int ke long; int ke float;
Mixed-mode expressions & Coercions
- expression dimana operator memiliki dua operand yang berbeda type
- coercion mengkonversi type data secara implisit
Explicit conversion/Casting
- menkonversi type data oleh programmer
- contoh: int a = (int) x
Relational & Boolean Expressions
14. Apa yang dimaksud dengan relational expressions? dan contohnya?
- relational expression adalah expression yang memiliki operator yang membandingkan nilai dari dua operand (relational operator) dan nilai kembaliannya bertipe boolean
- contoh: "7" == 7 ; "7" === 7; a + 1 > 2 * b
Boolean Expressions
Short-circuit Evaluation
- expression yang memiliki operand/variable/konstanta bertipe boolean, relational expression dan menggunakan operator boolean dan hasilnya juga bertipe boolean.
- contoh: (a > b) && (c < d)
16. Apa yang dimaksud dengan short-circuit evaluation? Dan contohnya?
- evaluasi dari suatu expression dimana hasilnya ditentukan tanpa mengevaluasi semua operand dan/atau operatornya.
- Contoh:
- (13 * a) * (b / 13 - 1) --> jika a = 0?
- (a >= 0) && (b < 10) --> jika a < 0 ??
Assignment Statements
17. Ubahlah ke bentuk if-else :
x = (y > z) ? y : z;
dan
($flag ? $count1 : $count2) = 0;
-----------------------------------------------------
if (y > z)x = y;
else
x = z;
dan
if ($flag)
Compound Assignment Operators$count1 = 0;
else
$count2 = 0;
18. Apa yang dimaksud dengan compound assignment operators? Dan contohnya?
19. Berapa hasil variabel berikut ini:
- Suatu teknik/metode untuk menyingkat bentuk assignment yang umum diperlukan.
- Contoh: a = a + b --> a +=b
i = 6; | i = 6;
j = ++i; | j = i++;
print(j); | print(j);
20. Berapa hasil variabel berikut ini:
- silahkan cek melalui coding
i = -5; | i = -5;
j = i--; | j = --i;
print(j); | print(j);
Unary Assignment Operators
- silahkan cek melalui coding
21. Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = -i++; | j = -++i;
print(j); | print(j);
Assignment as Expressions
- silahkan cek melalui coding
22. Apa yang dimaksud dengan assignment as expressions? dan contohnya?
- Assignment yang digunakan sebagai suatu expression dan sebagai operand di dalam expression yang lain.
- Contoh: while ((ch = getchar()) != EOF) { ... }
Multiple Assignments
- assignment statement yang memiliki multiple-target dan multiple source
- Contoh: ($first, $second, $third) = (20, 40, 60);
Comments
Post a Comment