Apa Sih Bedanya Statement Dengan Expression Dalam Pemograman?

 

Apa sih Bedanya Statement dengan Expression dalam Pemrograman?


Statement adalah unit sintaks pada bahasa pemrograman yang menyatakan aksi atau tugas untuk dilakukan. Lalu apa itu ekspresi? Ekspresi adalah entitas sintaks pada bahasa pemrograman yang menghasilkan sebuah nilai. Biasanya ekspresi terdiri dari konstanta, variabel, fungsi, dan operator.

Statement adalah unit sintaks pada bahasa pemrograman yang menyatakan aksi atau tugas untuk dilakukan.

Contoh statement:

var x = 1; // statement untuk membuat variabel x
print("Hello World"); // statement untuk menampilkan teks kelayar

Lalu apa itu ekspresi?

Ekspresi adalah entitas sintaks pada bahasa pemrograman yang menghasilkan sebuah nilai.

Biasanya ekspresi terdiri dari konstanta, variabel, fungsi, dan operator.

Contoh ekspresi:

x + 1; // ekspresi menjumlahakan x dengan 1
3 * 3; // ekspresi 3 * 3
sqrt(25); // eskpresi untuk menghitung akar kuadrat

Sampai di sini, apakah kamu sudah bisa membedakan?

Kata kunci yang perlu diingat:

Statement = melakukan tugas tertentu;

Ekspresi = menghasilkan nilai.

Nah, sekarang coba perhatikan kode berikut ini:

var x = 4 + 2;

Apakah ini termasuk statement atau ekspresi?

Jika kamu menjawab statement.. maka kamu benar.

Jika kamu menjawab ekspresi.. maka kamu juga benar.

Loh kok bisa?

Karena kode tersebut merupakan statement yang di dalamnya terdapat ekspresi.

statement ekspression

Jadi..

var x = 4 + 2;

Adalah sebuah statement untuk membuat variabel x.

Sedangkan

4 + 2

Adalah sebuah ekspresi yang menghasilkan nilai 6.


Cara membedakan Statement dan Expression

Intinya, ekspresi menghasilkan nilai. Lalu statement mengerjakan sesuatu.

Cara gampang membedakannya adalah dengan operator pengisian atau sama dengan (=).

Apabila ia bisa disimpan dalam variabel, maka ia termasuk ekspresi. Tetapi kalau tidak bisa.. maka ia merupakan statement.

Contoh:

var x = 4 * 2; // 4 * 2 adalah ekspresi
var y = sqrt(25); // sqrt(25) adalah ekspresi
var z = if (x > 10) { z = 10 } // error, if merupakan statement

Coba perhatikan!

4*2 dan sqrt(25) merupakan sebuah ekspresi, karena menghasilkan nilai dan bisa disimpan dalam variabel.

Sedangkan if (x > 10) { z = 10 } merupakan sebuah statemen, ia tidak bisa disimpan ke dalam variabel.


> var z = if (x > 10) { z 10 }
   Uncaught SyntaxError: Unexpected token 'if'
>

Jadi intinya, jika tidak bisa disimpan ke dalam variabel.. maka ia termasuk statement sedangkan kalau bisa.. maka ia termasuk ekspresi.


Jika ia bisa kita simpan ke dalam variabel, maka ia termasuk ekspresi. Tetapi kalau tidak, maka ia termasuk statement.

Perintah print() merupakan sebuah instruksi untuk menampilkan teks ke layar. 

Contoh di Python:

>>> x = print("Hello World!")
Hello World!
>>> x
>>> 

Pada Python, perintah print() bisa kita simpan pada variabel x. Akan tetapi perintah print() tidak menghasilkan nilai apa-apa sehingga variabel x tidak memiliki nilai (null).

Maka perintah print() bisa kita bilang sebagai ekspresi, walaupun tidak menghasilkan nilai.

Oh iya, di Python.. kita bisa gunakan fungsi eval() untuk mengecek apakah itu ekspresi atau bukan. Jika tidak error, maka itu adalah ekspresi dan sebaliknya itu adalah statement.

Contoh:

>>> eval("1 + 1")
2
>>> eval("print('Hello')")
Hello
>>> eval("x = 1 + 1")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    x = 1 + 1
      ^
SyntaxError: invalid syntax

Jadi kesimpulannya, perintah print() pada Python adalah sebuah ekspresi.

Mari kita lihat contoh di bahasa pemrograman lain.

Contoh perintah print() di PHP:

$x = print("Hello World");
echo $x; //-> 1

Pada PHP, perintah print() akan menghasilkan nilai 1 sehingga variabel $x berisi 1. Ini bisa kita sebut sebagai ekspresi, karena menghasilkan nilai.

Sedangkan perintah echo pada PHP merupakan sebuah statement, karena ia tidak bisa kita simpan ke dalam variabel.

$y = echo "Hello";
PHP Parse error:  syntax error, unexpected 'echo' (T_ECHO) in php shell code on line 1

Ekspresi di String Interpolation

Pada bahasa pemrograman tertentu, kita menggunakan string interpolation untuk formating string dengan ekspresi.

Contoh string interpolation:

Javascript:

console.log(`Sebuah string ${1 + 2}`)

Python:

print(f"sebuah string {1 + 2}")

C#:

Console.WriteLine($"sebuah string {1 + 2}");

Coba perhatikan..

1 + 2 merupakan sebuah ekspresi yang berada di dalam string interpolation.

Ini juga bisa kita pakai untuk membedakan statemen dan ekspresi.

Intinya, jika ekspresi yang kita tulis pada string interpolation tidak error.. maka ia termasuk ekspresi. Sebaliknya, ia termasuk statement.

Contoh salah: ❌

console.log(`Sebuah string ${if(true){ alert("hi") }}`);

Perhatikan!

if(true){ alert("hi") } ini bukan ekspresi melainkan sebuah statement, karena ia tidak bisa ditulis dalam string interpolation.

Lalu gimana cara kita menggunakan if/else dan perulangan di dalam string interpolation?

Gampang..

Kita hanya perlu menggunakan ekspresi.

Ekspresi dan Statemen pada If/else

If/else merupakan statement..

var answer = 3;
if(answer == 3){
   // benar
} else {
   // salah
}

Akan tetapi ada bentuk lain dari if/else yang merupakan ekspresi.

Biasanya dibuat dengan operator ternary.

Contoh:

var answer = 3;
var result = (answer == 3) ? 'benar' : 'salah';

Pada Python, kita bisa gunakan if expression:

answer = 3
result = 'benar' if answer == 3 else 'salah'

Contoh penggunaan pada string interpolation:

Javascript:

var answer = 3;
console.log(`Hasilnya ${(answer == 3) ? 'benar' : 'salah'}`);

Python:

answer = 3
print(f"hasilnya {'benar' if answer == 3 else 'salah'}")

Ekspresi dan Statemen pada Perulangan

Perulangan forwhile, dan do/while merupakan sebuah statement. Fungsinya untuk melakukan iterasi dan mereka tidak menghasilkan nilai apapun.

// perulangan adalah statement
for(i = 0; i < 10; i++){
    // do something
}

Apabila kita ingin melakukan perulangan dengan ekspresi, maka kita harus melakukannya dengan fungsi tertentu.

Misalnya..

Pada Javascript, kita bisa menggunakan fungsi map() pada array.

Contoh:

var arr = [2, 4, 1, 4, 5, 3, 1, 1];
console.log(`isi array * 2: ${arr.map((item) => item * 2)}`)

Fungsi map() akan melakukan iterasi sebanyak isi array, lalu di fungsi ini harus kita isi dengan fungsi lambda atau fungsi anonymous untuk memproses semua item.

Perulangan dengan ekspresi biasanya sering kita temukan pada JSX di Reactjs.

Pada JSX, kita tidak dibolehkan membuat perulangan dengan stament seperti for, while, dan do/while. Kita hanya dibolehkan membuat perulangan dengan ekspresi.

Contoh: ❌ salah

function Hello(){
  const data = [3,4,5,6,7,3];
	return(
  	<>
     {for(i = 0; i<data.lenght; i++){
       <a>{data[i]}</a>
     }}
    </>
  )
}

Contoh: ✅ benar

function Hello(){
	const data = [1,2,3,4,5,6];
  return(
  <>
    {data.map((value, index) => {
    	return <a key={index}>{item}</a>
  	})}
  </>
  )
}

Ekspresi dan Statement pada Fungsi

Fungsi bisa jadi sebuah statemen bisa juga jadi ekspresi. Tergantung jenis fungsinya.

Contoh pada Python:

# ini adalah fungsi sebagai statement
def add(a,b):
	return a + b

# ini adalah fungsi lambda yang merupakan ekspresi
jumlahkan = lambda a, b : a + b

# pemanggila fungsi adalah ekspresi
add(1,2)
jumlahkan(1,2)

Nah coba perhatikan..

Saat kita membuat fungsi dengan def di Python.. maka ia akan dianggap sebagai statement. Sedangkan jika kita membuat fungsi dengan lambda, maka ia dianggap sebagai ekspresi.

Oh iya, pemanggilan fungsi itu termasuk ekspresi karena menghasilkan nilai baru.

Contoh lain pada Javascript:

// ini fungsi statement, sebenarnya ini juga bisa jadi ekspresi
function add(a,b){
  return a + b;
}

// ini fungsi ekspresi
const jumlahkan = function(a, b){
  return a + b;
}

// ini juga fungsi ekspresi atau disebut juga arrow function
const kali = (a,b) => a * b;
const bagi = (a,b) => {
  return a / b;
}

Pada javascript, fungsi termasuk dalam ‘first-class citizen object’ yang artinya perulakunya sama seperti ekspresi.. yakni bisa disimpan ke dalam variabel, bisa menjadi parameter, bisa dilakukan operasi.

Contoh:

const luasPersegi = function luas(sisi){
    return sisi * sisi
}


Comments

Popular posts from this blog

3 Contoh Flowchart Percabangan beserta programnya

Mengenal KOTLIN

Looping Adalah Algoritma Perulangan: Berikut Contohnya