Pages

Selasa, 29 Desember 2015

Java

PENGENALAN JAVA

·         Sejarah Java
Pada tahun 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV box. Dikarenakan perangkat tersebut tidak memiliki banyak memori dan memakai CPU yang berbeda, maka bahasa harus berukuran kecil serta bersifat multiplatform atau bisa dijalankan di berbagai platform. Proyek tersebut diberi nama “Green Project”.
Karena harus bersifat Architecture Neutral (multiplatform), maka Green Project menggunakan Virtual Machine (dikenal dengan Java Virtual Machine) yang berasal dari model omplementasi bahasa Pascal. Karena orang-orang di Green Project berbasis C++, maka sintaks yang diambil dari C++, serta mengadopsi orientasi objek bukan procedural objek. Mulanya bahasa yang diciptakan bernama “Oak” oleh James Gosling, terinspirasi dari sebuah pohon yang berada di seberang kantornya. Namun dikarenakan Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan Java. Nama Java sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai yang kemudian salah satu dari mereka menyebutkan kata Java yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.
Perkembangannya sempat terhenti karena tidak ada yang tertarik. Ketika teknologi internet berkembang, Java diarahkan untuk menjadi bahasa pemrograman internet karena fitur-fitur Java sesuai dengan pengembangan internet.
Java telah mengakomodasi hamper seluruh fitur penting bahasa-bahasa pemrograman, misalkan
o   SIMULA. Dari bahasa ini diadopsi bentuk-bentuk dasar dari pemrograman berorientasi objek
o   LISP. Dari bahasa ini diadopsi fasilitas garbage collection, serta kemampuan meniru generic list processing.
o   Algol. Dari bahasa ini diadopsi struktur kendali yang dimilikinya.
o   C++. Dari bahasa ini diadopsi sintaks, sebagian semantics dan exception handling.
o   Ada. Dari bahasa ini diadopsi strongly type dan exception handling.
o   Objective C. Dari bahasa ini diadopsi fasilitas interfacenya.
o   Smalltalk. Dari bahasa ini diadopsi pendekatan single-root class hierarchie, dimana object adalah satu kesatuan hirarki pewarisan.
o   Eiffel. Dari bahasa ini diadopsi fasilitas assertion yang mulai diterapkan di sebagian JDK.

·         Pengertian Java
Pengertian Java menurut perannya dapat dibagi menjadi 4 :
1.    Sebagai sebuah bahasa pemrograman
Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi, desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain. Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform system operasi. Perkembangan Java tidak hanya terfokus pada satu system operasi, tetapi dikembangkan untuk berbagai system operasi dan bersifat open source.
2.    Sebagai sebuah Development Environment
Sebagai sebuah peralatan pembangun, tekonologi Java menyediakan banyak tools seperti compiler, interpreter, penyusun dokumentasi, dan paket kelas.
3.    Sebagai sebuah aplikasi
Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE).
4.    Sebagai sebuah Deployment Environment
Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas-kelas untuk semua paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya. Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser komersial menyediakan interpreter dan runtime environment dari tekonologi Java.

·         Java Versi Awal
Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
o   Java.lang        :Peruntukan kelas elemen-elemen dasar
o                       Java.io :Peruntukan kelas input dan output, termasuk penggunaan berkas.
o                       Java.util           :Peruntukan kelas pelengkap seperti kelas struktur data dan kelas-kelas penanggalan.
o                       Java.net          :Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
o                       Java.awt         :Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
o                       Java.applet     :Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

·         Karakteristik pada Java
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1.    Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.
2.    Berorientasi Objek (Object Oriented)
Java menggunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata ke dalam objek dan melakukan interaksi antar objek-objek tersebut.
3.    Dapat didistribusi dengan mudah
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.
4.    Interpreter
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5.    Robust
Java mempunyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman yang lain. Java mempunyai runtime Exception handling untuk membantu mengatasi error pada pemrograman.
6.    Aman
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak system komputer yang menjalankan aplikasi tersebut.
7.    Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan JVM
8.    Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
9.    Performance
Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupu Symantec yang menggunakan Just In Time Compilers (JIT)
10.  Multithread
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11.  Dinamis
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa mengganggu program yang menggunakan class tersebut.

·         Tipe data pada Java
Ada 8 jenis tipe data dalam Java :

Jenis Data
Deskripsi
Ukuran
Minimum
Maksimum
Boolean
Hanya bisa berisi benar atau salah
1-bit
Char
Karakter Unicode
16-bit
Byte
Bilangan bulat
8-bit
-127
128
Short
Bilangan bulat
16-bit
-32768
32767
Int
Bilangan bulat
32-bit
-2147483648
2147483647
Long
Bilangan bulat
64-bit
-9223372036854775808
9223372036854775807
Float
Bilangan riil
32-bit
1.40129846432481707e-45
3.40282346638528860e+38
Double
Bilangan riil
64-bit
4.94065645841246544e-324
1.79769313486231570e+308

·         Fitur-fitur Java
o   Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platform dimana kompilasi kode java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM.
o   Garbage collection
Maksud dari garbage collection yaitu program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan programmer dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
o   Code security
Code security terimplementasikan pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi system dari untrusted Java Code.
a.    Class-loader, menangani pemuatan kelas Java ke runtime interpreter. Proses ini memisahkan kelas-kelas yang berasal dari local disk dengan kelas-kelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena kelas-kelas yang berasal dari local disk yang dimuat terlebih dahulu.
b.    Bytecode verifier, membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java.
c.     Management security, menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti system file, port jaringan, proses eksternal dan system windowing.
Java juga menyediakan beragam teknik pengamanan lain :
§  Peniadaan pointer
Java tidak mengenal operasi pointer. Di tangan programmer handal, operasi pointer merupakan hal yang luar biasa untuk optimasi dan pembuatan program yang efisien serta mengagumkan. Namun mode ini dapat menjadi petaka di hadapan programmer jahat. Pointer merupakan sarana luar biasa untuk pengaksesan tidak diotorisasi.
§  Pengamanan applet
Untuk mencegah program bertindak mengganggu media penyimpanan, maka applet tidak diperbolehkan melakukan open, read, ataupun write terhadap berkas secara sembarangan. Karena Java applet dapat membuka jendela browser yang baru, maka jendela mempunyai logo Java dan teks identifikasi terhadap jendela yang dibuka. Hal ini mencegah jendela pop-up menipu sebagai permintaan keterangan username dan password.

·         Kelebihan Java
1.    Multiplatform
Java dirancang untuk mendukung aplikasi yang dapat beroperasi di lingkungan jaringan berbeda. Untuk mengakomodasi hal tersebut, Java compiler membangkitkan bytecodes (sebuah format yang tidak tergantung pada arsitektur tertentu yang didesain untuk mengirimkan kode ke banyak platform perangkat keras dan perangkat lunak secara efisien). Java dapat dijalankan oleh banyak platform seperti Linux, Unix, Windows, Solari, maupun Mac.
2.    Berorientasi Objek (OOP)
Java adalah bahasa pemrograman yang berorientasi pada objek. Java membagi program menjadi objek-objek serta memodelkan sifat dan tingkah laku masing-masing dalam menyelesaikan suatu masalah.
3.    Dapat didistribusikan dengan mudah
Java memiliki library rutin yang lengkap untuk dirangkai pada protocol TCP/IP (seperti HTTP dan FTP) dengan mudah. Kemampuan networking Java lebih kuat dan lebih mudah digunakan. Java memudahkan tugas pemrograman jaringan yang sulit seperti membuka dan mengakses sebuah soket koneksi. Java juga mamudahkan pembuatan CGI (Common Gateway Interface).
4.    Bersifat dinamis
Java dirancang untuk beradaptasi dengan lingkungan yang sedang berkembang. Java bersifat dinamis dalam tahap linking. Class yang ada dapat di link sebatas yang diperlukan, apabila diperlukan modul kode yang baru dapat di link dari beberapa sumber, bahkan dari sumber dalam jaringan Internet.
5.    Garbage Collection
Java mempunyai pengumpul sampah otomatis sehingga mengefisienkan waktu programmer.
6.    Mirip C++
Java memiliki sintaks yang mirip dengan C++ sehingga bagi para programmer berbasis C++ akan mudah dalam belajar Java.

·         Kekurangan Java
1.    Mudah didekompilasi
Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
2.    Penggunaan memori yang banyak
Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

·         Struktur Data
o   Comments
Comments digunakan untuk memberikan keterangan/penjelasan suatu baris program. Comments tidak akan dikompilasi oleh compiler. Lambang untuk comments ada 2 yaitu :
a.    Double slash (//) : untuk memberikan penjelasan satu baris
b.    Slash bintang (/* dan */) : untuk memberikan penjelasn lebih dari satu baris.
o   Reserved word
Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contohnya yaitu class, digunakan untuk membuat class pada java.
o   Modifiers
Modifiers digunakan untuk menentukan penggunaan dari suatu data, methods dan class. Contoh modifiers adalah public, static, private, final, abstract dan protected.
o   Statements
Statements merupakan baris perintah atau kumpulan perintah. Setiap statement pada java selalu diakhiri dengan titik koma (;).
o   Blocks
Blocks digunakan untuk membentuk suatu grup statements. Blocks diawali dengan kurung kurawal buka ({) dan diakhiri dengan kurung kurawal tutup (}). Blocks dapat digunakan secara nested (blocks di dalam blocks).
o   Classes
Classes merupakan inti dari program java. Suatu class merupakan “blueprint” untuk menciptakan suatu objek.
o   Methods
Methods merupakan kumpulan dari statements yang melakukan suatu fungsi atau operasi secara sekuens. Setiap java aplikasi harus mempunyai method main() (kecuali applet). Method main() pada java selalu berbentuk :

public static void main(String[] args){
//statement
}


0 komentar:

Posting Komentar