Wednesday, December 9, 2015

Kosep-konsep pada OOP istilah syntak,sumantik dan grammar

Ada 3 Konsep Dasar OOP pada Java :

A. Encapsulation


Encapsulation adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain.
Dalam OOP Encapsulation di wujudkan dalam bentuk “class”. Seperti yang telah dijalaskan sebelumnya dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.

• Private
Memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
• Protected
Memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.

• Public
Memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.

Contoh Program Encapsulation :

public class Siswa {
public String nama;
public String nrp;
public void Info() {
System.out.println(“Saya adalah”);
System.out.println(“Nama ” + nama);
System.out.println(“Nrp ” + nrp);
}
}

// Setelah itu kita buat New Class lagi dengan nama IsiData
public class IsiData {
public static void main(String[] args) {
Siswa IT = new Siswa();
IT.nama = “Mirna”;
IT.nrp = “0320110013″;
IT.Info();
}
}


B. Inheritance

Inheritance adalah pewarisan yang artinya sebuah class dapat mewarisi atribut dan metho dari class lain. untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Contoh Programnya :

public class Mamalia () {
System.out.println(“Ciri umum mamalia adalah bernapas dengan paru-paru, ” +
“berkembang biak dengan cara beranak”);
}

class () Paus extends Mamalia () {
String x = “Ikan Paus”;
System.out.println(“Mamalia yang Anda pilih adalah “+ x );
System.out.println(“Mamalia ini berada di laut”);
System.out.println(“Paus termasuk jenis mamalia terbesar”);
}

class Sapi () extends Mamalia (){
String x = “Sapi”;
System.out.println(“Mamalia yang Anda pilih adalah “+ x );
System.out.println(“Mamalia ini berada di darat”);
System.out.println(“Sapi termasuk jenis mamalia pemamah biak”);
}


C. Polymorism

Suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Polymorism dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Contoh program java nya :

Simpan dengan nama BeautyfullMahasiswa.java

public class BeautyfullMahasiswa extends Mahasiswa{
public void printNama(){
System.out.println(“Hallo, saya Mahasiswa yg cantik n baik”)
Super.printNama();
}
}

Simpan dengan nama Main.java

public class Main{
public static void main(String[] args]) {
BeautyfullMahasiswa mhs = new BeautyfullMahasiswa();
mhs.setNim(“0320110013”);
mhs.setNama(“Mirna Puji Rahayu”);
mhs.printNim();
mhs.printNama();
}
}

Kemudian compile dan run.

C:\>javac BeautyfullMahasiswa.java
C:\>javac Main.java
C:\>java Main


3 Syntax, Semantic & Grammar

Bahasa pemrograman adalah notasi formal yang mempunyai dua komponen utama yaitu syntax dan semantic. Syntax adalah kumpulan aturan formal yang menspesifikasikan komposisi suatu program yang terdiri dari huruf, angka, dan karakter lain. Sedangkan semantic adalah pendefinisian arti dari suatu program yang benar secara syntax dari bahasa tersebut.
 

Desain Bahasa Pemrograman
Sebuah bahasa pemrograman harus mempunyai kriteria sebagai berikut:
 Abstraction
Kemampuan bahasa pemrograman untuk mengkonstruksi suatu pola yang berulang-ulang. contoh: subprocedure
 Simplycity
Kesederhanaan, semakin sedikit konsep untuk dapat dimengerti dan dipelajari maka bahasa pemrograman itu dikatakan semakin baik.
 Regularity
Keteraturan, semakin sedikit melanggar aturan semakin baik.
 Konsistensi
Ketetapan suatu alur atau bentuk bahasa.
o Contoh : A(i) pada VB
 Translation
Penerjemah yang cepat dan menghasilkan kode tujuan yang efisien.

Syntax
Adalah kumpulan aturan formal yang mendefinisikan suatu bentuk bahasa. Syntax mendefinisikan bagaimana suatu kalimat dibentuk dan diatur sebagai barisan/urutan dari pemilihan suatu kata dasar. Sebagai 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 menyediakan bentuk-bentuk notasi untuk kominikasi antara programmer dan pemroses bahasa pemrograman, sehingga mempermudah pembuatan suatu program
Pendefinisian syntax dilakukkan dengan dua kumpulan aturan, yaitu Lexical dan Syntactic. Lexical adalah cara 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 adalah elemen-elemen yang mengatur bentuk suatu statement-statement dalam bahasa pemrograman.

Kriteria-kriteria Syntax
 Readability
Syntax haruslah mudah dibaca agar para programmer bisa mengerti maksud dan tujuannya.
 Writeability
Syntax juga harus mudah ditulis.
 Verifiability
Verifikasi program (konsep kebenaran)
 Kemudahan Translasi
Jika sytax tersebut mudah dimengerti oleh manusia, maka akan sulit di translasi ke dalam bahasa mesin.
 Pengurangan Ambiguitas
Agar programmer tidak mengalami salah perkiraan tentang suatu fungsi.
Elemen-elemen Syntactic
 Himpunan Karakter
ASCII – Karakter angka dan huruf
 Identifier
Umumnya string dari huruf dan angka
 Simbol untuk operator
Simbol matematika yang digunakan untuk jalannya program
 Keyword dan Reserved Word
Kata-kata milik bahasa, biasanya tidak boleh digunakan sebagai identifier
 Komentar
Digunakan dengan tujuan dokumentasi program
Contoh : /* pada bahasa c family */
 Blank (spasi)
Diabaikan maksudnya tidak pengaruh terhadap program
 Delimiter dan Tanda Kurung
Blok suatu program yang dimulai dari elemen awalan dan akhiran statement
Contoh : begin … end (pascal) dan { … } (C Family)
 Ekspresi
Suatu fungsi yang mengakses data dalam suatu program dan mengembalikan suatu nilai

Semantic
Semantic adalah pendefinisian arti dari suatu program yang benar secara syntax dari suatu bahasa pemrograman.
Contoh:
int nilai [10]
Semantic akan menentukan deklarasi diatas akan menyebabkan ruang sebanyak 10 elemen integer yang diberikan kepada variabel nilai.
if (a > b) max = a else max = b;
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, yaitu analisa input program sumber dan synthesis program objek yang executable.
1. 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. Dalam analisa input program sumber 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 Syntactic
Biasa disebut parsing, struktur program yang lebih besar diidentifikasi: statement, deklarasi, ekspresi, dll.
 Analisa Semantic
Merupakan 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.
2. 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 dan 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

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, yaitu EBNF Grammar dan Regular Grammar.
 Extended Backus-Naus Form Grammar
Disebut juga dengan metalanguage, yaitu bahasa yang digunakan untuk mendeskripsikan bahasa lain. Grammar ini menggunakan notasi matematis ::=, , |, *, +, {, }, [, ] yang disebut metasymbol. Suatu bahasa yang dideskripsikan dalam EBNF merupakan suatu kumpulan aturan. Contoh dari aturan EBNF