Assalamualaikum Wr. Wb.
Ada 3 hal yang berhubungan dengan
konsep bahasa pemrogramanan: sintaks, semantiks dan pragmatis. Dalam
mengajarkan 3 konsep ini saya menggunakan analogi bahasa yang biasa kita pakai
sehari-hari.
Sintaks
Sintaks sebuah bahasa berhubungan dengan struktur bahasa. Sebagai contoh, untuk
membentuk sebuah kalimat yang valid dalam bahasa kita memakai struktur:
[subyek] + [kata kerja] + [kata benda]. Dengan memakai struktur ini, kita bisa
membentuk kalimat, sebagai contoh: Saya makan nasi. Dalam hubungannya
dengan bahasa pemrograman, kita musti memenuhi sintaks (baca: aturan struktur
bahasa) agar program dapat berjalan. Sebagai contoh, dalam bahasa BASIC, untuk
mengassign sebuah variabel dengan sebuah nilai, kita memakai operand
‘=’, tetapi kalau dalam Pascal, kita pakai ‘:=’. Contoh dalam BASIC: a=1,
tapi dalam bahasa Pascal, a:=1.
Semantik
Semantik sebuah bahasa menggambarkan hubungan antara sintaks dan model
komputasi. Sederhananya, semantik menjelaskan arti dari program.
Analoginya sebagai berikut. Apabila kita memakai sintaks [subyek] + [kata
kerja] + [kata benda], kita bisa menghasilkan kalimat-kalimat.
Apabila kita mengasilkan kalimat Saya makan nasi, maka kalimat ini
memenuhi aturan sintaks. Tapi, apabila saya membuat kalimat Saya makan batu,
secara sintaks kalimat ini sudah benar. Namun, secara semantik, kalimat ini
tidak mengandung makna yang berarti.
Dalam hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang
programmer tidak bisa mengaitkan sintaks dengan model komputasi. Kesalahan
logika bisa dengan mudah terjadi.
Sebagi contoh ada bahasa pemrograman
sebagai berikut:
if(a=5) {
echo ‘Nilai a=5′;
}
Apabila program ini dijalankan, apa
yang terjadi? Bergantung bahasa apa yang digunakan. Apabila bahasa yang dipakai
adalah bahasa C, maka output yang keluar selalu Nilai a=5, walaupun
nilai variabel a sebelumnya selain 5. Kenapa itu bisa terjadi? Itu karena
operator ‘=’ dalam bahasa C berarti mengassign sebuah variabel yang ada
di sebelah kiri dengan nilai yang ada di sebelah kanan. Dalam bahasa C, secara
sintaks operasi ini sudah benar.
Tapi, apabila yang dimaksud adalah programmer ingin mengevaluasi nilai variabel
a, maka seharusnya memakai operator logika ‘==’. Jadi, program yang
sebenarnya menjadi
if(a==5){
echo ‘Nilai a=5′;
}
Pragmatik
Pragmatik berhubungan dengan kemudahan implementasi dan efisiensi. Dalam
analoginya dengan bahasa, kita bisa saja memberitahukan ke seseorang “Jangan
merokok” apabila ada peraturan yang melarang seseorang merokok di dalam sebuah
ruangan. Kalimat singkat seperti itu sebenarnya sudah cukup efisien. Tapi,
dalam kesempatan lain kita bisa saja memakai kalimat “Mohon Anda jangan merokok
di sini karena menurut peraturan pemerintah daerah nomor XXX tahun XXX
dinyatakan bahwa merokok di tempat umum akan mengakibatkan pelanggaran
peraturan, selain itu dari sisi kesehatan… blah blah blah”.
Dalam hubungannya dengan bahasa
pemrograman, seorang programmer harus bisa memastikan efisiensi dalam melakukan
peng-coding-an. Dalam bahasa C, programmer diberikan kekuasaan untuk
mengalokasikan memori. Sebagai akibatnya, apabila programmer lalai dalam
mengontorl variabel-variabel yang dihasilkan dari hasil assignment pointer,
maka akan terjadi kebocoran memori. Ini diakibatkan apabila seorang programmer
mengcreate sebuah variabel pointer, dan kemudian menghapusnya, informasi
tersebut masih ada dalam memori, hanya saja sudah tidak bisa diakses lagi.
Ketika saya sedang mendalami konsep
pemrograman secara pragmatis, menariknya, saya mendapati teori broken window.
Teori ini akan saya jelaskan lebih lanjut di tulisan berikutnya dengan kategori
Personal
0 komentar:
Post a Comment