Konsep Bahasa Pemrograman

Ada 3 hal yang berhubungan dengan konsep bahasa pemrogramanan: sintaks, semantiks dan pragmatis. Dalam mengajarkan 3 konsep ini 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.

Post a Comment

6 Komentar

  1. W
    WalterSizSO

    Hello, Indie Music: https://indie2019.blogspot.com/ Ambient, Industrial Music: https://ambient-2019.blogspot.com/ Europe Music Promo Only: https://europesmusic.blogspot.com/ Italodance Music: https://webidc.blogspot.com/ Alternative Rock, Punk Rock: https://alternativesrock.blogspot.com/ Downloads made through our private server by simple use of FTP (File Transfer Protocol) program. fresh music categorized by genres! (Genre: House, Progressive House, Electro House, Tech House, Deep House, Soulful House, Nu-Disco, Techno, Minimal, Djs Chart and EXCLUSIVE ALBUM & TRACKS, …) Best regards, Walter

  2. W
    WalterSizSO

    Hello, Indie Music: https://indie2019.blogspot.com/ Ambient, Industrial Music: https://ambient-2019.blogspot.com/ Europe Music Promo Only: https://europesmusic.blogspot.com/ Italodance Music: https://webidc.blogspot.com/ Alternative Rock, Punk Rock: https://alternativesrock.blogspot.com/ Downloads made through our private server by simple use of FTP (File Transfer Protocol) program. fresh music categorized by genres! (Genre: House, Progressive House, Electro House, Tech House, Deep House, Soulful House, Nu-Disco, Techno, Minimal, Djs Chart and EXCLUSIVE ALBUM & TRACKS, …) Best regards, Walter

  3. v
    vumbepeLq

    Cephalexin For Animals https://oscialipop.com - Cialis Ssrkvd Many pustules are conuent running together over the chin and forehead. Levitra For Bph <a>Cialis</a> Levitra Economico kamagra pills effects https://oscialipop.com - Cialis Mfwusq Cialis Profesional England

  4. U
    Uncotronesk

    https://newfasttadalafil.com/ - purchase cialis online cheap Vqeasr Cialis Dependance Generika Cialis Potenzmittel Uqkspu <a>Cialis</a> Iwuwlp falciparum fever is usually constant b. https://newfasttadalafil.com/ - cialis online without prescription Bwzbeb

  5. D
    DavidUtimeNZ

    Xin chao, toi mu?n bi?t gia c?a b?n.

  6. a
    azsiepelin

    http://slkjfdf.net/ - Joxukhis <a href="http://slkjfdf.net/">Udedapuv</a> vhv.hozc.tik-indonesia.com.jzn.jo http://slkjfdf.net/

SUPPORTED:


Terima kasih kepada Rekan - Rekan yang memberikan dukungan bagi kami
TIK Indonesia Stefany Kristy Chania