Skip to main content

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);

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan d...

Sekilas Flowchart dan Data Flow Diagram (DFD)

Contoh flowchart dansymbol-symbolnya Flowcharting (1st documentation tool): Alternatif untuk dokumentasi narative yang panjang (who, what, when, where of the system) Lebih fokus ke aspek physical dari proses dan aliran informasi dibandingkan dengan aspek konseptual Digunakan untuk mendeskripsikan keseluruhan sistem informasi atau hanya sebagian saja. Keseluruhan sistem terdiri dari input, proses manual/komputer, output. Output bisa dibagikan ke para pengguna untuk membantu pengambilan keputusan atau bisa juga digunakan untuk input dalam proses selanjutnya. Berbagai macam jenis flowcharts adalah seperti berikut: Systems Flowcharts : menggambarkan keseluruhan konfigurasi sistem, termasuk dokumen, aliran data, dan proses suatu sistem. Document/procedure flowcharts: menggambarkan pembuatan dokumen, aliran, dan tujuan dokumen di dalam sistem dan prosedur-prosedur yang dilaksanakan di dalamnya. Hardware flowcharts: menggambarkan konfigurasi hardware suatu sistem Program f...