Tanya Jawab Seputar Ekspresi dan Statement Penugasan

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?
  • kumpulan/kombinasi dari operand, operator, variable, konstanta, fungsi yang diproses bahasa pemrograman untuk mengembalikan suatu nilai.
Contohnya?
  • 2 + 3 * 4
  • y + 6
  • 4 != 4
2. Sebutkan beberapa kategori expression! Dan contohnya
  • arithmetic expression. contoh: 6 + 8;
  • relational expressions. contoh: (x  == y)
  • boolean expression. contoh: ( x && y)
Arithmetic Expression


3. Deskripsikan masing-masing apa saja yang bisa ada dalam arithmetic expression?

  • operators, operands, parentheses, function calls

4. Apa yang dimaksud dengan operator unary, binary, dan ternary? Dan contohnya!

  • memiliki satu operand, dua operand, tiga operand
  • (-i); 4 * 3; (x > y) ? x : y
5. Urutkan prioritas evaluasi operator berikut (dalam bahasa berbasis c, seperti c++, C#, java, dll): binary +, - , ++, --,unary +,-,++, --, *, /, %

  1. ++, --
  2. Unary
  3. ++, --
  4. *, /, %
  5. binary +, -
6. Bagaimana urutan aritmetika berikut: -a ** b ? unary atau exponen dulu?

  • -(a**b)
Associativity

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?

  • x = 9
9. Dari operator berikut mana yang di evaluasi dari kiri dan mana yang dari kanan?
*, /, %, binary +, binary -, ++, --, unary -, unary +
Untuk bahasa-bahasa berbasis C: 
  • Left: *, /, %, binary +, binary -
  • Right: ++, --, unary -, unary +
Overloaded Operator

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

11. Apa yang dimaksud dengan narrowing conversion dan widening conversion? dan Contohnya?
  • 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

12. Apa yang dimaksud mixed-mode expressions dan coercions
  • expression dimana operator memiliki dua operand yang berbeda type
  • coercion mengkonversi type data secara implisit
Explicit conversion/Casting

13. Apa yang dimaksud dengan explicit conversions/casting & contohnya di C/Java
  • menkonversi type data oleh programmer
  • contoh: int a = (int) x
Relational & Boolean Expressions

Relational 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

15. Apa yang dimaksud dengan boolean expressions? dan contohnya?
  • expression yang memiliki operand/variable/konstanta bertipe boolean, relational expression  dan menggunakan operator boolean dan hasilnya juga bertipe boolean. 
  • contoh: (a > b) && (c < d)
Short-circuit Evaluation

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

Conditional Targets

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) 
$count1 = 0;
else
$count2 = 0;
Compound Assignment Operators

18. Apa yang dimaksud dengan compound assignment operators? Dan contohnya?
  • Suatu teknik/metode untuk menyingkat bentuk assignment yang umum diperlukan.
  • Contoh: a = a + b --> a +=b
19. Berapa hasil variabel berikut ini:
i = 6; | i = 6;
j = ++i; | j = i++;
print(j); | print(j);
  • silahkan cek melalui coding
20. Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = i--; | j = --i;
print(j); | print(j);
  • silahkan cek melalui coding
Unary Assignment Operators

21. Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = -i++; | j = -++i;
print(j); | print(j);
  • silahkan cek melalui coding
Assignment as Expressions

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

23. Apa yang dimaksud dengan multiple assignments? Contohnya?
  • assignment statement yang memiliki multiple-target dan multiple source
  • Contoh: ($first, $second, $third) = (20, 40, 60);

No comments:

Post a Comment