And atau AndAlso? Or atau OrElse?

Pada VB.Net ada operator And dan AndAlso, serta Or dan OrElse. Apa perbedaan keduanya? Dan kapan sebaiknya memakai And dan Or atau AndAlso dan OrElse?

Perbedaan

Perbedaan utama antara kedua operator adalah operator And dan Or akan mevalidasi kedua ekspresi yang digunakan, sedang operator AndAlso dan OrElse tidak akan mengecek ekspresi kedua apabila ekspresi yang pertama sudah dapat digunakan untuk menentukan hasil logika.

Operator AndAlso dan OrElse disebut sebagai Short-Circuiting Logical Operator.

And atau AndAlso

Kondisi yang harus dipenuhi dalam logika And adalah kedua ekspresi/operand harus bernilai true. Berikut tabel mengenai hasil dari logika And.

Nilai Operand 1 Nilai Operand 2 Hasil Logika And
True True True
True False False
False True False
False False False

Seperti yang sudah kita ketahui, logika And akan bernilai true apabila kedua operand yang diberikan bernilai true. Nah, dalam pemrograman (khususnya VB), apabila kita hanya menggunakan operator And saja, maka semua operand akan dicek meski nilai operand yang pertama bernilai false. Sedang bila menggunakan operator AndAlso, operand kedua tidak akan dicek apabila operand yang pertama sudah bernilai false, karena hasilnya pasti false.

If 10 < 3 And 10 > 5 Then
' meski 10 < 3 bernilai false,
' dan hasil logika And akan bernilai false,
' if akan tetap mengecek ekspresi 10 > 5
End If

If 10 < 3 AndAlso 10 > 5 Then
' karena hasil 10 < 3 adalah false,
' dan pasti hasil logika And akan false,
' maka pengecekan if akan berhenti,
' dan ekspresi 10 > 5 tidak akan dieksekusi
End If

Or atau OrElse

Hasil operasi logika Or adalah

Nilai Operand 1 Nilai Operand 2 Hasil Logika Or
True True True
True False True
False True True
False False False

Nah, kalau logika OrElse, maka apabila operand yang pertama sudah bernilai true, maka operasi logika Or akan langsung dihentikan dan menghasilkan nilai true.

If 10 > 3 Or 10 > 5 Then
' script di dalam if akan dieksekusi setelah mengecek 10 > 3 dan 10 > 5
End If

If 10 > 3 OrElse 10 > 5 Then
' script di dalam if akan dieksekusi setelah mengecek 10 > 3 saja
End If

Kesimpulan

Short-Circuiting Logical Operator ini merupakan salah satu cara yang dapat digunakan untuk meningkatkan performa, dan bagi programmer VB.Net, aku menyarankan sebisa mungkin membiasakan untuk menggunakan operator AndAlso dan OrElse ini.

Btw, pada C#, operator And itu sama dengan (&) dan operator AndAlso itu sama dengan (&&). smile

Semoga bermanfaat.

Tetap Sehat, Tetap Semangat, agar dapat Tetap dalam Perdjoeangan!!

Referensi:

Hartadi

I’m a Passionate Programmer ;)

Leave a Reply