Bahasa
pemrograman, atau sering diistilahkan juga dengan bahasa komputer,
adalah teknik komando/instruksi standar untuk memerintah komputer.
Bahasa pemrograman ini merupakan suatu set aturan sintaks dan semantik
yang dipakai untuk mendefinisikan program komputer. Bahasa ini
memungkinkan seorang programmer dapat menentukan secara persis data mana
yang akan diolah oleh komputer, bagaimana data ini akan
disimpan/diteruskan, dan jenis langkah apa secara persis yang akan
diambil dalam berbagai situasi
Bahasa
Pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan
proses komputasi dalam format yang dapat dibaca oleh komputer dan
manusia. Proses komputasi umumnya didefinisikan secara formal
menggunakan konsep matematika dari Mesin Turing. Pada dasarnya bahasa
Pemrograman dirancang untuk memfasilitasi komunikasi antara manusia
dengan computer
Sebuah
bahasa pemrograman disebut Turing Complete jika dapat dipergunakan
untuk mendeskripsikan semua komputasi yang dapat dilakukan Mesin Turing,
yaitu memiliki variable integer dan operator aritmatik, pernyataan
penugasan, pernyataan sekuensial, pernyataan seleksi, dan pernyataan
iterasi didefinisikan secara formal menggunakan konsep matematika dari
Mesin Turing
Komputer
adalah mesin yang dapat melaksanakan seperangkat perintah dasar
(instruction set). Komputer hanya dapat diberi perintah yang terdiri
dari perintah-perintah dasar tersebut. Perintah-perintah yang lebih
rumit (misalnya mengurutkan suatu daftar sesuai abjad) harus
diterjemahkan menjadi serangkaian perintah-perintah dasar yang dapat
dimengerti komputer (perintah-perintah yang termasuk dalam instruction
set komputer tersebut) yang pada akhirnya dapat menyelesaikan tugas yang
diinginkan, meskipun dijalankan dengan beberapa operasi dasar, bukan
satu operasi rumit
Bahasa
pemrograman adalah bahasa yang dapat diterjemahkan menjadi kumpulan
perintah-perintah dasar tersebut. Penerjemahan dilakukan oleh program komputer yang disebut kompilator
(compiler). Setiap bahasa pemrograman mempunyai kompilatornya sendiri.
Contohnya, kompilator C++ tidak akan mengerti program yang ditulis
dengan bahasa Java. Sintaks dari bahasa pemrograman lebih mudah dipahami
oleh manusia daripada sintaks perintah dasar. Namun tentu saja komputer
hanya dapat melaksanakan perintah dasar itu. Maka di sinilah peran
penting kompilator sebagai perantara antara bahasa pemrograman dengan
perintah dasar.
Kegiatan membuat program komputer dengan menggunakan bahasa pemrograman disebut pemrograman komputer.
Bahasa pemrograman yang bisa anda temui di sini adalah: Pascal, C, PHP,
Delphi dan C++ Builder. Sebagian besar adalah kompiler yang berbasis
Microsoft Windows. Bahasa pemrograman tidak lain adalah sebuah cara
untuk berkomunikasi dengan mesin, dan mesin yang sedang kita tuju dan
kita ajak untuk berkomunikasi adalah komputer. Terlepas dari tipe
komputer tersebut, tentunya memerlukan bahasa yang menjembatani
komunikasi antara anda sebagai manusia dengan komputer sebagai mesin.
Mesin adalah mesin. Yang membuat mesin tersebut menjadi berguna adalah
dengan memberikan instruksi kepadanya menggunakan bahasa yang dapat
dimengerti oleh mesin.
Jadi
pendek katanya adalah, sebenarnya semakin canggih mesin, semakin
canggih juga bahasa pemrograman yang digunakannya. Mengikuti
perkembangan teknologi informasi yang semakin mudah dan canggih,
perkembangan bentuk dan ukuran mesin semakin lama semakin mengecil
dibandingkan dengan pendahulunya. Ukuran tentunya bukan lagi masalah
jika yang anda cari adalah fungsi. Karena walaupun perangkat keras
teknologi informasi masa kini lebih kecil, tetapi sudah bisa dipastikan
berfungsi lebih baik dan mutakhir. Begitu juga perkembangan bahasa
pemrograman yang dibutuhkan oleh mesin tersebut
Bahasa
pemrograman tidak terlepas juga dari platform di mana bahasa
pemrograman tersebut digunakan. Platform sistem operasi yang berkembang
sekarang sudah mendukung bahasa pemrograman, Variasi nama, bahasa, dan
mode bahasa pemrograman semakin banyak. Bahasa pemrograman pun sudah
tersusun berdasarkan kategori tersendiri: bahasa tingkat rendah,tingkat
menengah dan tinggi. Semakin tinggi bahasa pemrograman tersebut, semakin
mudahlah manusia untuk memahaminya.
Bahasa
tingkat tinggi adalah bahasa pemrograman yang sudah menyerupai dengan
bahasa manusia, antara lain: Pascal, C++, Java dan lainnya. Sebelum anda
membuat program menggunakan bahasa pemrograman, adalah sangat baik
untuk mengetahui dimana program yang akan anda buat tersebut digunakan,
tipe pengguna, sistem operasi yang mendukung, dan persaratan sistem yang
dibutuhkan. Jika sudah anda temukan, silakan anda pilih bahasa
pemrograman apa yang anda kuasai dan kompiler apa yang anda butuhkan.
Selanjutnya, jangan lupa juga anda menentukan dalam lingkungan apa anda
akan membuat program anda. Misalnya, Aplikasi Console, Aplikasi Grafik
atau Visual, Aplikasi Desktop atau Client Server, Aplikasi Web Server,
atau aplikasi Mobile. Setelah semuanya komplit, anda bisa memulai untuk
mengembangkan program anda menggunakan bahasa pemrograman yang anda
pilih.
Menurut tingkat kedekatannya dengan mesin komputer, bahasa pemrograman terdiri dari:
1. Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110
2. Bahasa Tingkat Rendah, atau dikenal dengan istilah bahasa rakitan (Assembly),
yaitu memberikan perintah kepada komputer dengan memakai kode-kode
singkat (kode mnemonic), contohnya MOV, SUB, CMP, JMP, JGE, JL, LOOP,
dsb.
bahasa assembly
merupakan bahasa dengan pemetaan satu – persatu terhadap instruksi
komputer. Setiap intruksi assembly diterjemahkan dengan menggunakan assembler
3. Bahasa
Tingkat Menengah, yaitu bahasa komputer yang memakai campuran instruksi
dalam kata-kata bahasa manusia dan instruksi yang bersifat simbolik,
contohnya {, }, ?, <<, >>, &&, ||, dsb.
4. Bahasa
Tingkat Tinggi, yaitu bahasa komputer yang memakai instruksi berasal
dari unsur kata-kata bahasa manusia, contohnya begin, end, if, for,
while, and, or, dsb.
Sebagian
besar bahasa pemrograman digolongkan sebagai Bahasa Tingkat Tinggi,
hanya bahasa C yang digolongkan sebagai Bahasa Tingkat Menengah dan
Assembly yang merupakan Bahasa Tingkat Rendah.
Sekarang
ini perkembangan bahasa pemrogram sangat pesat sekali. Bahasa
pemrograman dahulu hanya berbasis Ms DOS dengan langkah dan sintak
program yang rumit , sekarang ini sudah berbasis Objek dan dengan
mudahnya kita mau membuat tampilan tertentu dan dengan menggunakan OS MS
Window, Linuk pun jadi. Dalam Bahasa pemograman ada beberapa teknik
Sebagai berikut :
1. Pemograman Procedural
Procedure merupakan instruksi khusus yang dieksekusi secara berurutan.
Pemograman Procedural merupakan pemograman yang terdiri atas kumpulan
perintah/instruksi yang akan dijalankan/dieksekusi oleh komputer secara
berurutan.
2. Pemograman Functional
Pemograman Functional merupakan pemograman yang terdiri atas kumpulan
perintah/instruksi yang akan dijalankan/dieksekusi oleh komputer
berdasarkan fungsi-fungsi.Fungsi yang dipakai seperti dalam fungsi yang
ada dalam matematika.
3. Pemograman Terstruktur
Pemograman Terstruktur merupakan pemograman yang terdiri atas kumpulan
perintah/instruksi yang akan dijalankan/dieksekusi oleh komputer
berdasarkan procedural dan atau functional.
Pemilihan procedural atau functional berdasarkan pemilahan masalah yang
sebelumnya besar menjadi kumpulan masalah-masalah kecil yang kemudian
dibuat/disusun dalam bentuk procedural atau functional tergantung dari
kebutuhannya..
4. Pemograman Berbasis Modul
Pemograman berbasis modul merupakan pemograman yang didasarkan atas
kumpulan program procedural dan atau program functional yang akan
dijalankan/dieksekusi oleh komputer berdasarkan modul.
Hasil pemograman procedural atau pemograman functional yang berskala
kecil dalam istilah Pemograman Berbasis Modul disebut/diistilahkan
sebagai modul.
5. Pemograman Berorientasi Objek
Pemograman berorientasi objek merupakan pemograman yang terdiri atas
kumpulan perintah/instruksi yang akan dijalankan/dieksekusi oleh
komputer berdasarkan kejadian-kejadian yang berkenaan dengan
sebuah/beberapa objek.
Pemograman ini sudah berbasis graphical seperti windows atau beberapa jenis linux.
6. Pemograman Generic
Pemograman generic merupakan pemograman yang terdiri atas kumpulan
perintah/instruksi yang akan dijalankan oleh komputer bersama-sama
pemograman berorientasi objek atau pemograman functional.
Pemograman generic merupakan pemograman berskala kecil guna mendukung
atau berkolaborasi dengan pemograman berorientasi objek atau pemograman
functional.
7. Pemgoraman Declarative
Pemograman Declarative merupakan pemograman yang terdiri atas kumpulan
perintah/instruksi yang akan dijalankan oleh komputer berdasarkan
pernyataan (declarative) yang berhubungan dengan logika
Contoh-Contoh Bahasa Pemrograman
FORTRAN
FORTRAN (FORmula TRANslator) dikembangkan pada tahun 1956
oleh John Backus di IBM. Ditujukan untuk mempermudah pembuatan aplikasi
matematika, ilmu pengetahuan dan teknik. Keunggulan FORTRAN terletak
pada dukungan untuk menangani perhitugan, termasuk bilangan kompleks.
Kelemahan bahasa ini terletak pada operasi masukan/keluaran yang sangat
kaku. Selain itu, kode sumbernya lebih sulit dipahami dibandingkan
dengan bahasa pemrograman yang lain.
BASIC
BASIC (Beginner All-purpose Symbolic Instruction Code)
dikembangkan pada tahun 1965 di Darmouth College. Penciptanya adalah
John Kemeny dan Thomas Kurtz. Awalnya ditujukan sebagai bahasa sederhana
untuk pengajaran dasar pemrograman komputer. Bahasa ini tergolong
sebagai bahasa yang serbaguna yakni dapat dipakai untuk aplikasi apa
saja. BASIC merupakan bahasa yang sangat popular sebelum akhirnya muncul
Pascal. Keunggulan BASIC terletak pada kemudahan untuk dipakai. Namun
kala itu BASIC berbentuk interpreter sehingga kecepatannya sangat
lambat. Akhir-akhir ini muncullah BASIC berbentuk compiler. Namun
kehadirannya terlambat oleh kedatangan Pascal yang sejak awal berbentuk
compiler sehingga menawarkan kecepatan yang lebih tinggi. Kelemahan yang
lain adalah BASIC tidak mendukung operasi bilangan kompleks dan
penanganan terhadap berkas sangat terbatas sehingga tidak cocok untuk
menangani aplikasi bisnis.
PASCAL
Pascal dibuat oleh Nicklaus Wirth pada tahun 1971. Nama
Pascal berasal dari nama matematikawan Perancis yang bernama Blaise
Pascal (1623-1662). Bahasa ini awalnya digunakan untuk mengenalkan
pemrograman terstuktur. Keunggulan Pascal adalah kemudahan untuk
mempelajarinya dan dukungan fungsi-fungsi matematika yang sangat
lengkap. Kelemahan Pascal adalah tidak mendukung operasi bilangan
kompleks dan tidak mendukung sarana untuk aplikasi bisnis.
C
C diciptakan oleh Brian W. Kernighan dan Dennis M. Ritchie
pada tahun 1972 di Laboratorium AT&T. Bahasa ini menggabungkan
kemampuan pengendalian mesin dalam aras rendah dan struktur data dan
struktur kontrol yang beraras tinggi. C dipakai antara lain untuk
menyusun sistem operasi LINUX dan UNIX. Kelebihan C adalah cepat,
efisien, pemanipulasian data dalam bentuk bit dimungkinkan, dank ode
sumber bahasa C pada suatu platform dapat dipendahkan ke platform lain
tanpa adanya perubahan. Sedangkan kelemahan C adalah banyak yang
menganggapo bahwa bahasa C adalah bahasa yang sulit dipahami dan tidak
adanya dukungan untuk aplikasi bisnis.
JAVA
Java dibuat pada tahun 1995 di Sun Microsystems. Java
merupakan bahasa berorientasi objek dan serbaguna. Kode Java dikompilasi
dalam format yang disebut bytecode. Bytecode ini dapat dijalankan di
semua komputer yang telah dilengkapi dengan program Java Interpreter dan
Java Virtual Machine. Java telah menyediakan sarana untuk membuat
program yang disebut applet yang berjalan di pada Web Browser. Bahasa
ini juga mendukung koneksi ke database, meyediakan sarana untuk membuat
aplikasi berbasis Windows dan juga dapat dipakai dalam pemrograman
jaringan.
Berikut ini adalah daftar bahasa pemrograman komputer:
Definisi
• Bahasa pemrograman merupakan notasi formal
• Mempunyai 2 komponen utama :
1. Syntax: Kumpulan aturan formal yang menspesifikasikan komposisi suatu program yang terdiri dari huruf, angka, dan karakter lain
2. Semantic: Mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut
Desain Bahasa Pemrograman
Kriteria desain bahasa pemrograman
· Abstraction
- Kemampuan untuk mengkonstruksi suatu pola yang berulang-ulang,
- contoh: subprocedure
· Simplycity
- Kesederhanaan, semakin sedikit konsep untuk dapat dimengerti, semakin baik
· Regularity
- Keteraturan, semakin sedikit melanggar aturan semakin baik
· Konsistensi
- Ketetapan suatu alur atau bentuk bahasa
- contoh: A(i) pada VB
· Translation
- Penerjemah yang cepat dan menghasilkan kode tujuan yang efisien
Syntax
· Kumpulan aturan yang mendefinisikan suatu bentuk bahasa
· Syntax mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan / urutan dari pemilihan suatu kata dasar
· Kata dikonstruksikan dengan karakter-karakter alphabet
· contoh keyword (reserve word) dalam bahasa C while, do, if, else, dll
· Syntax
mengatur cara mengkombinasikan kata-kata tersebut ke dalam suatu
statement dengan bentuk yang benar sehingga dapat disusun suatu program
yang dapat berjalan dengan benar
· Syntax tidak mengerti arti atau isi dari suatu kalimat, semantic yang bisa mengartikannya
· Syntax
menyediakan bentuk-bentuk notasi untuk kominikasi antara programmer dan
pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu
program
Syntax memiliki beberapa criteria
· Readability = Mudah dibaca
· Writeability = Mudah ditulis
· Verifiability = Verifikasi program (konsep kebenaran)
· Kemudahan Translasi = Mudah bagi manusia, sulit di translasi
· Pengurangan Ambiguitas :
· Dua arti atau lebih
* contoh A(i)
* Array atau pemanggilan fungsi
* Syntax didefinisikan dengan dua kumpulan aturan
* Lexical dan Syntactic
*
Lexical: menspesifikasikan kumpulan karakter yang terdapat dalam
alphabet dari bahasa dan cara supaya karakter-karakter tersebut
dikombinasikan ke dalam kata-kata yang valid dan diterima
* Syntactic: elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman
Elemen-elemen Syntactic
· Himpunan Karakter
ASCII – Karakter angka dan huruf
· Identifier
Umumnya string dari huruf dan angka
· Simbol untuk operator
Simbol matematika
· Keyword dan Reserved Word
Kata-kata milik bahasa, biasanya tidak boleh digunakan sebagai identifier
· Komentar
Dokumentasi program
- /* pada bahasa c family */
· • Blank (spasi)
- diabaikan
· • Delimiter dan Tanda Kurung
- Elemen awalan dan akhiran statement
- begin … end
- { … }
· • Ekspresi
- Suatu fungsi yang mengakses data dalam suatu program dan mengembalikan suatu nilai
Semantic
1. Mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut
2. int nilai[10]
3. •
Semantic akan menentukan deklarasi diatas akan menyebabkan ruang
sebanyak 10 elemen integer yang diberikan kepada variabel nilai
4. if (a > b) max = a else max = b;
5. Ekspresi
a > b harus dievaluasi terlebih dulu, tergantung dari nilai ini satu
dari dua statement di belakangnya akan dieksekusi
Tingkatan Translasi
· Translasi dari syntax ke executable merupakan pusat implementasi bahasa pemrograman
· Kecepatan dan efisiensi eksekusi menjadi tujuan utama.
· Translasi dibagi dua
1. Analisa input program sumber
2. Synthesis program objek yang executable
Analisa Input Program Sumber
· Program sumber dilihat oleh translator sebagai kumpulan urut-urutan simbol.
· Suatu program yang diatur rapi oleh programmer tidak akan terlihat oleh translator
· Dibutuhkan analisa-analisa berikut:
· Analisa Lexical
-
Tahap dasar dari translasi, mengerjakan pengelompokkan urut-urutan
karakter ke dalam komponen pokok: identifier, delimiter, symbol
operator, angka, keyword, blank, komentar, dst.
Analisa Input Program Sumber
· Analisa Syntactic
- Biasa disebut parsing
- Struktur program yang lebih besar diidentifikasi:
statement, deklarasi, ekspresi, dll
· Analisa Semantic
- Pusat dari tahapan translasi
- Struktur syntatic hasil dari syntatic analyzer diproses
- Menghasilkan suatu kode objek yang executable sederhana
- Akan dimanipulasi oleh tahap optimasi sampai jadi kode executable
Synthesis Program Objek yang Executable
· • Merupakan tahapan akhir suatu translasi yang berfokus pada pembangunan program yang executable
· • Terdiri dari beberapa tahapan:
· • Optimasi
- Menghilangkan inefisiensi kode
- Mengubah kode yang tidak efisien menjadi kode yang efisien
· • Penghasil Kode
- Dibentuk sebagai bahasa Assembly, kode mesin atau program obyek lainnya
· • Linking dan Loading
- Bersifat optional
- Menggabungkan potongan-potongan kode yang dihasilkan dari translasi terpisah kedalam program final executable yang utuh
Grammar
· •Suatu kumpulan aturan (production) yang menentukan urut-urutan karakter
· •Suatu formal grammar adalah grammar biasa yang ditentukan dengan menggunakan notasi yang ketat
· •Ada dua kelas grammar yang berguna untuk teknologi compiler
- EBNF Grammar
- Regular Grammar
EBNF Grammar
• Extended Backus-Naus Form
• Metalanguage
- Bahasa yang digunakan untuk mendeskripsikan bahasa lain
• Menggunakan notasi matematis
• ::=, <, >, |, *, +, {, }, [, ]
• Disebut metasymbol
• Suatu bahasa yang dideskripsikan dalam EBNF merupakan suatu kumpulan aturan
EBNF Grammar
<program> ::= {<statemen>*}
<statemen> ::= <assignment> | <conditional> | <loop>
<assigment> ::= <identifier> = <expr>;
<conditional> ::= if <expr> {statemen*} | if <expr> {<statemen>+}
else {<statemen>+}
<loop> ::= while <expr> {<statemen>+ }
<expr> ::= <identifier> | <number> | (<expr>) |
<expr> <operator> <expr>
<operator> ::= + | – | * | / | = | <> | < | > | <= | >=
<identifier> ::= <letter> <digit>*
<letter> ::= a | b | c | … | z | A | B | C | … | Z
<digit> ::= 0 | 1 | 2 | … | 9
A = B +1
Logika Proporsional
· Representasi Pengetahuan dan Penalaran
Agen
cerdas harus memiliki kapasitas untuk: Perceiving, yaitu menerima
informasi dari lingkungan. Knowledge Representation, yaitu
merepresentasikan pengertian yang dimilikinya terhadaplingkungan.
Reasoning, yaitu melakukan penalaran terhadap implikasi dari yang
diketahui dan pilihan yangtersedia. Acting, yaitu memilih yang ingin
dilakukan dan melakukannya.Representasi pengetahuan dan proses inferensi
adalah hal utama dalam seluruh bidang dalamkecerdasan buatan. Komponen
utama dalam agen berbasis pengetahuan adalah basis pengetahuannya.Basis
pengetahuan adalah sebuah himpunan kalimat. Setiap kalimat diekspresikan
dalam sebuah bahasayang disebut dengan bahasa untuk merepresentasikan
pengetahuan (knowledge representationlanguage). Kalimat
merepresentasikan beberapa konfirmasi dari dunia nyata. Harus ada
mekanismeuntuk menyusun kalimat baru dari keadaan lama. Proses ini
disebut dengan penalaran. Aturan dalaminferensi harus memperhatikan
persyaratan utama, yaitu bahwa kalimat baru harus secara logis
dapatditurunkan dari kalimat sebelumnya.Logika adalah alat utama untuk
merepresentasikan dan bernalar tentang pengetahuan.
Secarakhusus,diperlukan adanya kemampuan untuk bernalar secara logis
formal. Keuntungan menggunakan bahasayang logis formal dalam kecerdasan
buatan, adalah bahwa bahasa merepresentasikan hal yang terbatasdan
secara tepat. Dengan demikian akan dapat ditulis program secara
deklaratif, yaitu menggambarkanapa yang benar dan tidak dalam pemecahan
masalah. Hal ini juga akan mengijinkan terjadinyapenalaran otomatis yang
diperlukan dalam penalaran umum.Mengenai logika, juga dapat disampaikan
beberapa keterbatasan. Sebagian besar penalaran yang
dilakukan
oleh manusia tergantung pada pengetahuan yang tidak pasti. Logika
tidakdapatmerepresentasikan ketidakpastian seperti ini. Lebih spesifik
lagi, penalaran dengan bahasa alamiahmemerlukan penalaran untuk keadaan
yang tersembunyi, yaitu: niat dari orang yang mengucapkan.Ketika orang
menyebutkan bahwa, Satu dari ban di mobil ini kempes, maka kita tahu
bahwa ada 3 banlagi yang tersisa (kalau memang mobil berban 4). Manusia
akan dapat mengatasi berbagai jenispengucapan / emosi / lafal, namun
logis formal mengalami kesulitan dalam hal-hal yang ambigu
sepertiini.Sebuah logika terdiri atas dua bagian, yaitu: bahasa dan cara
penalaran. Bahasa logika, memilikidua aspek, yaitu: sintaks dan
semantik. Dengan demikian, untuk menspesifikasikan logika secara
khusus,diperlukan tiga hal sebagai berikut:Sintaks: simbol atomik dari
bahasa logika, dan aturan konstruksi bahasa yang baku, atau
merupakanekspresi non-atomik (struktur simbol) dari sebuah logika.
Sintaks akan menspesifikasikan simbol-simboldalam sebuah bahasa, dan
bagaimana simbol dikombinasikan untuk membentuk kalimat. Dari
siniterlihat bahwa fakta dalam dunia akan direpresentasikan melalui
kalimat di dalam logika.Semantik: arti dari simbol atomik dalam logika,
dan aturan untuk mendeterminasikan arti dari ekspresinon-atomik di dalam
logika. Semantik menspesifikasikan fakta-fakta dalam dunia yang
direferensikanmelalui sebuah kalimat. Dengan demikian, juga memberikan
cara tentang bagaimana sebuah kebenarandidasari dengan artinya di dunia
nyata. Sebuah fakta adalah klaim terhadap dunia, dan bisa bernilaisalah
atau benar.Metode Penalaran Sintaksis: aturan untuk mendeterminasikan
himpunan bagian dalam ekspresilogikal, disebut juga dengan teorema.
Penalaran akan memberikan metode untuk menghasilkan kalimatbaru(yang
bernilai benar), dengan diturunkan dari kalimat yang sudah ada
sebelumnya.Fakta adalah klaim tentang kenyataan di dunia yang bisa
bernilai benar atau salah. Representasi adalahsebuah ekspresi (kalimat)
dalam bahasa tertentu yang dapat dikodekan ke dalam program komputerdan
memiliki arti khusus untuk objek dan relasi dalam dunia nyata. Harus
dipastikan bahwa representasikonsisten dengan kenyataan, sehingga gambar
berikut ini berlaku:
Ada
beberapa sistem logika yang memiliki sintaks dan semantik yang
berbeda-beda, di bawah ini adalahbeberapa contoh: Logika proporsional:
semua obyek yang digambarkan dalam logika adalah pasti atau
unik.Contoh:Andi adalah seorang mahasiswaMahasiswa(Andi). Dalam hal
ini Andi mengacu kepada individu yang unik. Logika predikat
ordepertama: obyek yang digambarkan bisa unik ataupun variabel
yangmengacu pada obyek tertentu.Contoh:
S
emua mahasiswa miskin
s (mahasiswa(s)Æmiskin(s))
Dalam
hal ini s dapat merepresentasikan banyak mahasiswa yang unik.
TemporalMerepresentasikan kebenaran dalam jangka waktu tertentu.
ModalMerepresentasikan ketidakpastian. Logika orde tinggiMengijinkan
variabel untuk merepresentasikan banyak relasi antar obyek.
Non-monotonicMerepresentasikan nilai default.Logika proporsional adalah
salah satu sistem logika yang sederhana dan dapat digunakan untuk
keadaandunia yang tidak kompleks, serta hanya bisa merepresentasikan
satu kepastian nilai kebenaran.5.3 Logika ProporsionalDalam logika
proporsional, pengguna dapat mendefinisikan sebuah himpunan simbol
proporsional,seperti P, Q, X, Z, dsb, dengan arti yang spesifik terhadap
simbol-simbol tersebut. Contoh: P, berarti Hari ini panas
Bahasa Pemrograman merupakan himpunan aturan – aturan (konvensi) untuk menyatukan (menghubungkan algoritma – algoritma)
Jenis Bahasa
1. Bahasa Mesin (Machine)
2. Bahasa Rakitan (Assembly)
3. Bahasa Tingkat Tinggi (High Level Language)
Bahasa Mesin merupakan bahasa yang paling rendah levelnya
(very low-level).
• Dieksekusi secara langsung oleh komputer.
• Proses eksekusi sangat cepat.
• Realisasi (bahasa) membutuhkan biaya rendah (low cost of realization).
• Fleksible untuk membuat layer software yang baru.
• Tergantung pada mesin (Machine dependent)
Bahasa Assembly
• Menggunakan Mnemonic, misalnya ADD, ADC (Add with Carry).
• Menggunakan nama simbolik.
• Tergantung pada mesin (Machine dependent).
• Contoh :
MOV AX,1234h
ADD AX, 01h
LEA AX, WORD PTR Number
Bahasa Tingkat Tinggi
• Mendefinisikan sebuah mesin abstrak (Abstract machine).
• Membutuhkan proses translasi oleh translator (compiler atau interpreter).
• Lebih mudah untuk dipelajari karena lebih sederhana.
• Lebih lambat dibandingkan bahasa mesin dan bahasa assembly.
KRITERIA BAHASA PEMROGRAMAN
ü Readability
Faktor-faktor :
Simplicity
Orthogonality
Statement Kontrol
Tipe data dan Struktur data
Syntax dan Lexical convention
ü Writability
Faktor-faktor :
Simplicity.
Orthogonality.
Mendukung abstraksi.
Abstraksi
adalah kemampuan untuk mendefinisikan dan kemudian menggunakan struktur
yang kompleks atau operasi yang mengijinkan detail dari operasi
diabaikan.
ü Reliability
Faktor-faktor :
Type checking.
Exception handling.
Readability dan writability
ü Cost
Faktor-faktor :
Training Programmer
Penulisan Program / pembuatan software
Kompililasi dan eksekusi
Maintance
Faktor yang mempengaruhi desain suatu bahasa
✦ Arsitektur Komputer (Computer Architecture).
✦ Metodologi Pemrograman (Programming Methodology)
-oriented programming
Kategori Bahasa Pemrograman
•Imperative (Prosedural).
· Fitur utamanya adalah variable, assignment, statement, dan iterasi.
· Contoh : C, Pascal.
•Functional.
· Menggunakan fungsi-fungsi untuk melakukan komputasi.
· Contoh : LISP, Scheme.
• Logic.
Berdasaarkan aturan (rule-based).
Aturan tidak memiliki urutan khusus.
· Contoh : Prolog.
• Object-oriented.
· Pengkapsulan data dengan proses.
· Pewarisan (inheritance) dan dynamic type binding.
· Perkembangannya cepat.
· Contoh : C++, Java
Metode Implementasi
· Kompilasi (Compilation), dilakukan oleh compiler. Menerjemahkan high-level program ke kode mesin.
Translasi membutuhkan waktu tertentu (compiletime) Eksekusi cepat
Contoh bahasa yang menggunakan compiler : Pascal, C/C++
· Interpretasi (Interpretation), dilakukan oleh interpreter.
Tanpa proses translasi.
Eksekusi lambat. Saat ini jarang digunakan.
Contoh bahasa yang menggunakan interpreter : BASIC
· Hybrid
Gabungan antara kompilasi dan interpretasi
Translation cost kecil.
Kecepatan eksekusi tidak terlalu lambat
MULTIPLE CHOICE:
1. Memeriksa kebenaran dan urutan dari token-token yang terbentuk oleh Lexical Analysis merupakan tugas dari:
A. Lexical Analysis C. Lambda Calculus
B. Syntax Analyzer D. Scheme
Untuk soal no. 2, 3, 4, dan 5. Perhatikan gambar di bawah ini:
2. Dari gambar diatas yang menyatakan tidak ada batasan pada aturan produksi terdapat pada tipe…
A. 0 C. 2
B. 1 D. 3
3. Yang menjelaskan panjang string ruas kiri harus < atau = ruas kanan addalah tipe… A. 0 C. 2 B. 1 D. 3
4. Yang
menjelaskan mengenai ruas kiri haruslah tepat satu symbol variable,
yaitu symbol non terminal adalah tipe… A. 0 C. 2 B. 1 D. 3
5. Yang
menjelaskan mengenai ruas kanan hanya memiliki maksimal satu symbol non
terminal dan diletakkan paling kanan sendiri adalah tipe… A. 0 C. 2 B. 1
D. 3
6. Yang bukan merupakan konsep semantic bahasa pemrograman adalah…
A. Bagian terakhir dari tahapan analisis adalah analisis semantik
B. Memanfaatkan pohon sintaks yang dihasilkan dari parsing
C. Memiliki konsep matematika dari sebuah fungsi dan pemrograman fungsional
D. Proses analisa sintaks dan analisa semantic merupakan 2 proses yang sangat erat kaitannya dan sulit untuk dipisahkan.
7. Teknik-teknik pendiskripsian Semantik Bahasa Pemrograman, kecuali…
A. Interpreter Semantic C. Denotational Semantic
B. Operational Semantic D. Algebraic Semantic
8. Program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (intermediate presentation) merupakan pengertian dari…
A. Sintesa C. Imperative Programming
B. Analisa D. Pragmatics
9. Konsep-konsep matematika dari sebuah fungsi dan bahasa pemrograman fungsional, kecuali…
A. Bahasa sederhana dengan ilmu semantic sederhana
B. Suatu set fungsi primitive
C. Aplikasi operasi
D. Suatu set objek data dan fungsi asosiasi
10. Identifier/pengenal yang berisi data yang dapat berubah nilainya di dalam pemrograman merupakan pengertian dari…
A. Sintaks C. Semantiks
B. Variabel D. Pragmatiks
ESSAY:
1. Jelaskan pengertian dari bahasa pemrograman!
2. Jelaskan pengertian dari Syntax, Semantik, dan Pragmatics!
3. Jelaskan pengertian dari Kompilasi!
4. jelaskan konsep dasar pemrograman fungsional atau yang disebut dengan Function Programming!
5. Jelaskan pengertian dari Imperative Programming!
Jawaban Essay:
1. Bahasa Pemrogramanà Prosedur atau tata cara pembacaan program.
2. Pengertian dari :
- Syntax : kumpulan aturan yang mendefinisikan
suatu bentuk bahasa, baik tata cara yang berupa penulisan kata,
ekspresi, dan pernyataan.
- Semantik : aturan-aturan untuk menyatakan arti dalam sebuah pemrograman.
- Pragmatik : bagian dari ilmu bahasa
(linguistic) yang mempelajari makna tuturan penutur (speaker’s meaning),
makna yang berhubungan dengan konteks (contextual meaning), menelaah
maksud penutur yang lebih banyak dari pada apa yang dituturkan oleh
penutur (implicature), memahami manipulasi bahasa untuk kesopanan
(politeness), memahami anggapan-anggapan dalam tuturan dan kalimat
(pre-supposition and entailment), mengetahui bagaimana manusia bertindak
dengan menggunakan medium bahasa (speech act) dan yang bertumpu pada
satu makna yang mungkin akan diragukan oleh para linguis dan
pragmatisis, yaitu “ilmu yang mempelajari makna, menciptakan makna dan
mengubah makna realitas yang terkandung tiap-tiap tuturan, tindakan dan
peristiwa bahasa”.
3. Kompilasià program
yang membaca suatu program yang ditulis dalam suatu bahasa sumber
(source language) dan menerjemahkannya ke dalam suatu bahasa sasaran
(target language).
4. Suatu set fungsi primitive
- - Suatu set format fungsional
- Aplikasi operasi
- Suatu set objek data dan fungsi asosiasi
- Suatu mekanisme untuk memberikan rujukan sebuah nama terhadap suatu fungsi.
5. Imperative Programmingà program
yang mempunyai karakteristik berupa status dan instruksi/perintah,
dapat mengubah status program yang diwakili oleh variable dan instruksi
yang diwakili oleh statement
Pilihan Ganda:
1. Pengecekan yang dapat dilakukan pada semantik, kecuali...
a. Duplikasi
b. Terdefinisi
c. Ekspresi yang mengikuti If
d. Parsing Bottom up
2. Pendekatan yang mendefinisikan suatu mesin buatan (Abstract) dengan instruksi-instruksi primitif merupakan pengertian dari...
a. Operational Semantic
b. Denotational Semantic
c. Algebraic Semantic
d. Structured Operational
3. Contoh –contoh dari Interpreter dan Compiler , kecuali...
a. Cobol
b. Pascal
c. Fortran
d. Software
4. Yang merupakn tugas dari Syntax Analyzer adalah...
a. Menderetkan krakter yang kemudian dikelompokkan menjadi satu.
b. Bertugas memeriksa kebenaran dan urutan dari token-token yang terbentuk.
c. Membangkitkan kode antara berdasarkan pohon parsing.
d. Melakukan optimasi
5. Batasan-batasan yang terdapat pada Syntax Analyzer, kecuali...
a. Panjang meaksimum token identifier adalah 8 karakter.
b. Panjang maksimum ekspresi tunggal adalah 80 karakter.
c. Nilai bilangan bulat adalah – 32768 s/d 32767
d. Operasi aritmatika harus melibatkan operan-operan yang bertipe berbeda.
6. Yang merupakan ciri-ciri dari pemrograman imperatif, kecuali...
a. Dapat mengubah status program
b. Statusnya yang diwakili variabel
c. Instruksinya yang diwakili variabel
d. Mudah ditranslation
7. Struktur kontrol pada pemrograman Imperatif, kecuali...
a. Komposisi Sekuensial
b. Seleksi
c. Include
d. Iterasi
8. Komponen primer yang menggunakan mekanisme struktur data tingkat tinggi bahsa functional adalah...
a. Kumpulan objek data
b. Kumpulan functional forms
c. Kumpulan fungsi built-in
d. Kumpulan bahasa aplikasi
9. Menugaskan suatu nilai kepada setiap ekspresi dalam bahasa merupakan tujuan dari...
a. Semantik
b. Denotasional Semantik
c. Pragmatik
d. Syntaks
10. Objek yang terdapat pada scheme adalah...
a. Atoms dan list
b. Reduksi dan induksi
c. Compile dan abstract
d. Compile dan list
Essay:
1. Jelaskan pengertian dari kompilator yang anda ketahui!
2. Sebutkan ciri –ciri dari pemrograman imperative!
3. Jelaskan pengertian dari Syntaks!
4. Sebutkan pengecekan yang dapat dilakukan dalam semantik!
5. Sebutkan 3 komponen primer yang terdapat pada bahasa functional!
Jawaban Essay:
1. Kompilator
adalah sebuah program yang membaca suatu program yang ditulis dalam
suatu bahasa sumber dan menterjemahkannya ke dalam suatu bahasa sasaran.
2. Ciri-ciri pemrograman Imperative:
- Mempunyai karakteristik berupa status dan intruksi/perintah
- Untuk mengubah status program
- Status diwakili oleh variabel
- Intruksi diwakili statement
3. Syntaks merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa
4. a. Memeriksa penggunaan nama-nama (keberlakuannya)
b. Memeriksa tipe
5. Kumpulan objek data, kumpulan functional forms, dan kumpulan fungsi built-in.