Tanya-jawab Singkat Tentang Ekspresi dan Statement dalam Konsep Bahasa Pemrograman

Berikut di bawah ini adalah tanya-jawab singkat tentang topik ekspresi dan statement dalam konsep bahasa pemrograman

Q: Apa yang dimaksud dengan ekspresi (expression)? Sebutkan beberapa contohnya!
A:
kumpulan/kombinasi dari operand, operator, variable, konstanta, fungsi yang yang diproses bahasa pemrograman untuk mengembalikan suatu nilai.
Contoh:
- 2 + 3 * 4
- y + 6
- 4 != 4
Q: Sebutkan beberapa  kategori ekspresi (expression)! Dan contohnya!
A:
- ekspresi aritmatika (arithmetic expression). contoh: 6 + 8;
- eksprise relasional (relational expressions). contoh: (x  == y)
- ekspresi boolean (boolean expression). contoh: ( x && y)

Q: Deskripsikan masing-masing apa saja yang bisa ada dalam arithmetic expression?
A:
operators, operands, { }(atau parentheses), fungsi (function calls)
Q: Apa yang dimaksud dengan operator unary, binary, dan ternary? Dan contohnya!
A:
unary: memiliki satu operand, contoh: (-i);
binary: memiliki dua operand, contoh: 4 * 3;
ternary: memiliki tiga operand, contoh: (x > y) ? x : y
Q: Urutkan prioritas evaluasi operator berikut (dalam bahasa berbasis c, seperti c++, C#, java, dll): binary +, - , ++, --,unary +,-,++, --, *, /, %
A:
postfix ++, --
unary +,-
prefix ++, --
*, /, %
binary +, -
Q: Bagaimana urutan aritmetika berikut: -a ** b ? unary atau exponent (pangkat) dulu?
A:
-(a**b)  --> exponent dulu 
Q: Apa yang dimaksud dengan associativity? Dan contohnya?
A:
urutan evaluasi operator bila memiliki level yang sama.
contoh: a - b + c - d evaluasi dari kiri ke kanan atau dari kanan ke kiri?
Q: x = 6/2*(2+1); Berapa x? 9 atau 1?
A:
x = 9 (hampir semua bahasa pemrograman menjalankan evaluasi dari kiri ke kanan untuk ekspresi di atas
Q: Dari operator berikut mana yang di evaluasi dari kiri dan mana yang dari kanan?
*, /, %,
binary +, binary -,
++, --,
unary -, unary +
A:
C-based languages (c, c++, c#, java, dll):
dari kiri: *, /, %, binary +, binary -
dari kanan: ++, --, unary -, unary +
Q: Apa yang dimaksud dengan operator overloading? Contohnya?
A:
penggunaan operator untuk beberapa operasi
contoh:
+ untuk penambahan pada ekspresi aritmatika dan catenation untuk operasi di string (java)
ampersand (&) untuk logical AND (binary) dan address-of operator (unary) --> di (C++)
Q: Apa yang dimaksud dengan narrowing conversion dan widening conversion? dan Contohnya?
A:
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;
Q: Apa yang dimaksud mixed-mode expressions dan coercions?
A:
-expression dimana operator memiliki dua operand yang berbeda type
-coercion: mengkonversi type data secara implisit
Q: Apa yang dimaksud dengan explicit conversions/casting & contohnya?
A:
menkonversi type data oleh programmer
contoh: int a = (int) x
Q: Apa yang dimaksud dengan ekspresi relasional (relational expressions)? dan contohnya?
A:
ekspresi relasional (relational expression) adalah ekspresi (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
Q: Apa yang dimaksud dengan ekspresi boolean (boolean expression)? Dan contohnya?
A:
ekspresi boolean adalah ekspresi (expression) yang memiliki operand,variable, konstanta bertipe boolea atau ekspresi relasional dan menggunakan operator boolean dan hasilnya (nilai kembaliannya) juga bertipe boolean.
contoh: (a > b) && (c < d)
Q: Apa yang dimaksud dengan short-circuit evaluation? Dan contohnya?
A:
evaluasi dari suatu expression dimana hasilnya ditentukan tanpa mengevaluasi semua operand dan/atau operatornya.
Contoh:
(13 * a) * (b / 13 - 1)  --> jika a = 0 ekspressi berikutnya tidak perlu dievaluasi
(a >= 0) && (b < 10)  --> jika a < 0 ekspresi di sisi kanan tidak perlu di evaluasi
Q: Ubahlah ke bentuk if-else :
x = (y > z) ? y : z;
atau
($flag ? $count1 : $count2) = 0;
A:
if (y > z)
x = y;
else
x = z;
------------------------
if ($flag)
$count1 = 0;
else
$count2 = 0;
Q: Apa yang dimaksud dengan compound assignment operators? Dan contohnya?
A:
Suatu teknik/metode untuk menyingkat bentuk assignment yang umum digunakan.
Contoh: a = a + b menjadi --> a +=b

Q: Berapa hasil variabel berikut ini:
i = 6; | i = 6;
j = ++i; | j = i++;
print(j); | print(j);
A:
j = 7 | j = 6
Q: Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = i--; | j = --i;
print(j); | print(j);
A:
j = -5 | j = -6
Q: Berapa hasil variabel berikut ini:
i = -5; | i = -5;
j = -i++; | j = -++i;
print(j); | print(j);
A:
j = 5 | j = 6
Q: Apa yang dimaksud dengan assignment as expressions? Dan contohnya?
A: Assignment yang digunakan sebagai suatu expression dan sebagai operand di dalam expression yang lain.
Contoh: while ((ch = getchar()) != EOF) { ... }
ch = getchar()  adalah assignment --> kemudian digunakan sebagai operand dalam relational expression  != EOF 
Q: Apa yang dimaksud dengan multiple assignments? Contohnya?
A:
assignment statement yang memiliki multiple-target dan multiple source Contoh: ($first, $second, $third) = (20, 40, 60);

No comments:

Post a Comment