↬ANALIS SEMANTIK↫
A. Pengertian
Semantik
Kata semantik dalam bahasa Indonesia, berasal dari bahasa
Yunani, yaitu sema (kata benda), yang berarti “tanda” atau “lambang”. Kata
kerjanya adalah semaino yang berarti “menandai” atau “melambangkan”. Tanda atau
lambang menurut Ferdinand de Saussure, terdiri dari komponen yang mengartikan,
yang berwujud bentuk-bentuk bunyi bahasa dan komponen yang diartikan atau makna
dari komponen yang pertama itu. Kedua komponen ini adalah merupakan tanda atau
lambang, sedangkan yang ditandai atau dilambanginya adalah sesuatu yang berada
di luar bahasa yang lazim disebut referen atau hal yang ditunjuk. Kata semantik
ini kemudian disepakati sebagai istilah yang digunakan untuk bidang linguistik
yang mempelajari hubungan antara tanda-tanda linguistik dengan hal-hal yang
ditandainya.
Oleh karena itu, kata semantik dapat diartikan sebagai ilmu
tentang makna atau tentang arti, yaitu salah satu dari tiga tataran analisis
bahasa, fonologi, gramatika, dan semantik. Dalam analisis semantik harus juga
disadari, karena bahasa itu bersifat unik, dan mempunyai hubungan yang sangat
erat dengan budaya masyarakat pemakainya, maka analisis suatu bahasa hanya
berlaku untuk bahasa itu saja, tidak dapat digunakan menganalisis bahasa lain.
Dalam setiap bahasa, termasuk bahasa Indonesia, seringkali kita temui adanya
hubungan kemaknaan atau relasi semantik antara sebuah kata atau satuan bahasa
lainnya dengan kata atau satuan bahasa lainnya lagi. Satuan bahasa disini dapat
berupa kata, frase, maupun kalimat. Hubungan atau relasi kemaknaan ini mungkin
menyangkut hal kesamaan makna (sinonim), kebalikan makna (antonim), kegandaan
makna (polisemi dan ambiguitas), ketercakupan makna (hiponim), kelainan makna
(homonim), kelebihan makna (redudansi), dan sebagainya.
B. Fungsi ini terkait dengan Tabel Simbol. Pengecekan yang di lakukan oleh analisis semantik
adalah sebagai berikut :
1.
Memeriksa keberlakuan nama-nama meliputi pemeriksaan berikut :
Duplikasi
Pada tahap ini dilakukan pengecekan apakah
sebuah nama terjadi pendefinisian lebih dari dua kali. Pengecekan dilakukan
pada bagian pengelola blok.
Terdefinisi
Melakukan pengecekan apakah sebuah nama
yang dipakai pada tubuh program sudah terdefinisi atau belum. Pengecekan dilakukan
pada semua tempat kecuali blok.
2.
Memeriksa tipe, melakukan pemeriksaan terhadap
kesesuaian tipe dalam statement-statement yang ada.
Misal : bila ada operasi antara dua Operan maka Tipe operan pertama harus bisa dioperasikan dengan operan kedua.
Kode Antara/Intermediate Code Adalah hasil dari
tahapan analisis, yang di buat oleh kompilator pada saat mentranslasikan
program dari bahasa tingkat tinggi. Kegunaan dari kode antara sebagai berikut :
·
Untuk memperkecil usaha dalam membangun
kompilator dari sejumlah bahasa ke sejumlah mesin. Dengan adanya kode antara
yang lebih Machine Independent maka
kode antara yang di hasilkan dapat digunakan lagi pada mesin lainnya.
·
Proses optimasi masih lebih mudah. Beberapa strategi
optimisasi lebih mudah di lakukan pada kode antara di bandingkan pada program
sumber atau pada kode assembly dan kode mesin.
·
Bisa melihat program internal yang mudah
dimengerti. Kode antara ini akan lebih mudah di pahami dari pada kode assembly
atau kode mesin.
Terdapat 2 Macam Kode Antara :
⥁ Notasi Postfix Adalah operator
diletakkan paling akhir.
Sintaks
Notasi Postfix : <operan><operan><operator>
Contoh 1 Ekspresi
:
((M + N + B) * (ca + cd ) + X
1) M + N ------> MN +
2) +B ------> B+
3) ca + cd ------> cacd+
4) +X ------> +X
5) * ------> *
Kode antaranya
adalah :
⤷ (1)B+cacd+*X disederhanakan (1)B+(3)*X+
Contoh 2
Ekspresi : IF <exp> THEN
<stmt1> ELSE <stmt2>
Kode antaranya
adalah :
<exp>
<label1> BZ <stmt1> <label2> BR <stmt2>
⥁ N Tuple Adalah setiap baris bisa terdiri
dari beberapa tupel. N tuple yang biasa digunakan adalah notasi 3 tupel dan 4
tupel.
Sintaks N
Tuple : <operator><operan><operan>
Contoh
notasi 3 tupel :
B:=O*B+D/Z
<operator><operan><operan>
Kode antaranya
adalah :
1) O*B -------> *OB
2) D/Z --------> /DZ
3) B+D -------> +BD
4) B:= --------> =:B
Kode antaranya
adalah :
*OB/DZ+BD:=B disederhanakan *OB/DZ+(1)(2):=B
Contoh
notasi 4 tupel :
<operator><operan><operan><hasil>
(A+B) * (Y+Z)
1) A+B -------> +AB
2) Y+Z --------> +YZ
3) *
Kode antaranya
adalah :
*(1)(2)