- Pengertian Sintak, Semantik dan Logika

Seringkali kita
mendengar sintak dalam istilah pemrograman. Namun, terkadang kita tidak
mengetahui dengan jelas apa arti sintak sebenarnya.berikut saya coba memaparkan
pengertian dari sintak.
Sintak 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 harus memenuhi sintak (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..
Atau jika
lebih spesifik lagi sintak dapat diartikan aturan-aturan peng-code-an struktur
suatu bahasa pemograman, ibarat grammar dalam berbahasa Inggris. Setiap jenis
bahasa pemograman mempunyai aturan sintak yang berbeda.

Semantik sebuah
bahasa menggambarkan hubungan antara sintak dan model komputasi. Sederhananya,
semantik menjelaskan arti dari program. Analoginya sebagai berikut. Apabila
kita memakai sintak [subyek] + [kata kerja] + [kata benda], kita bisa
menghasilkan kalimat-kalimat.
Apabila
kita mengasilkan kalimat Saya makan nasi, maka kalimat ini memenuhi
aturan sintak. Tapi, apabila saya membuat kalimat Saya makan batu,
secara sintak kalimat ini sudah benar. Namun, secara semantik, kalimat ini tidak
mengandung makna yang berarti.

Logika pada
bahasa pemrograman adalah suatu operasi dengan menggunakan perintah-perintah khusus
yang berupa sintak untuk menghasilkan output tertentu. Misalnya pada
pemrograman pascal, ada sebuah operasi logika yang disebut operasi
not berfungsi untuk membalikan bilangan positif menjadi negatif begitu juga
bilangan negatif akan menjadi bilangan positif.
- 2 Contoh Kesalahan Sintak, Semantik dan Logika

Sebuah contoh dari kesalahan sintak
pada listing bahasa pemrograman pascal:
program how_long_ur_name;
uses wincrt;
var s:real; x:byte;
begin
write('Nama anda ?'); readln(s);
x:=length(s);
writeln('Panjang nama anda ',x,'
karakter')
;
end.
Ketika program ini dijalankan maka program error
karena terjadi kesalahan pada penginputan tipe data karena variabel s: real
; seharusnya tipe data variabel s: string ;. Karena tipe data real
adalah tipe data yang digunakan pada
tipe data numeric menyangkut bilangan real.
Berikut adalah listing
dari bahasa pemrograman pascal yang benar:
program
how_long_ur_name; uses wincrt;
var
s:string; x:byte;
begin
write('Nama anda ?'); readln(s);
x:=length(s);
writeln('Panjang nama anda ',x,' karakter')
;
end.

Sangat sulit
memang membedakan tiap kesalahan pada sebuah listing program, dan yang ini
adalah salah satu contoh kesalahan semantik pada bahasa pemrograman pascal:
program
little_down;
uses wincrt;
var s:string; i:integer;
begin
s:=
'sixiz.com';
for
i:=1 to length(s) do
begin
write(s);
delete(s,10-i,1);
end;
end.
Sekilas mungkin listing program diatas tidak
terlihat jelas kesalahannya. Namun, apabila dicermati dengan teliti nama
program diatas adalah little down yang bisa diartikan semakin kebawah semakin
kecil. Jika dijalankan listing program ini maka hasil programnya berupa tulisan
yang semakin berkurang satu demi satu hurup, tetapi berjejer kesebelah kanan.
Tentunya hal ini tidak sesuai dengan jenis programnya.
Hal
ini terjadi karena kesalah penulisan write(s); , yang seharusnya writeln(s);
Sehingga hasilnya akan sesuai dengan jenis programnya.
Dan
berikut adalah jenis listing bahasa pemrograman pascal yang benar:
program
little_down;
uses wincrt;
var s:string; i:integer;
begin
s:=
'sixiz.com';
for
i:=1 to length(s) do
begin
writeln(s);
delete(s,10-i,1);
end;
end.

Dalam
hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang programmer
tidak bisa mengaitkan sintak 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 sintak 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′;
}
0 Komentar