2. • Mengenal defenisi Java
• Mengenal sejarah perkembangan Java
• Mengenal fitur – fitur Java
• Mengenal Keunggulan dan Kelemahan Java
• Mengenal Integrated Development Environment
TUJUAN
3. Pengenalan Java
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai
komputer termasuk telepon genggam.
Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung
di Sun Microsystems saat ini merupakan bagian dari Oracle dan
dirilis tahun 1995.
Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan
C++ namun dengan sintaksis model objek yang lebih sederhana
serta dukungan rutin-rutin aras bawah yang minimal.
4. Pengenalan Java
Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code
(bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM).
Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik
(general purpose), dan secara khusus didisain untuk memanfaatkan
dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang
memungkinkan aplikasi java mampu berjalan di beberapa platform sistem
operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali,
jalankan di mana pun".
Saat ini java merupakan bahasa pemrograman yang paling populer
digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai
jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
5. Sejarah Java
Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan
selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek
tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori
oleh Patrick Naughton, Mike Sheridan, dan James Gosling, beserta sembilan
pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah
maskot Duke yang dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road
di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan
menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai
pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen),
seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).
6. Sejarah Java
Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik
ditambah beberapa orang dari proyek The Green Project. Mereka
memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton
Avenue, Palo Alto.
Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam
waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga
ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja
dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih
merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk
membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi
dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web
Runner berganti nama menjadi Hot Java.
7. Sejarah Java
Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2
dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada
surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.
Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di
sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric
Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen,
membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja
"Bapak Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java
karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang
tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil
dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.
Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java
tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).
8. Versi Java
Versi awal Java pada tahun 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:
java.lang : Peruntukan kelas elemen-elemen dasar.
java.io : Peruntukan kelas input dan output, termasuk penggunaan
berkas.
java.util : Peruntukan kelas pelengkap seperti kelas struktur data dan
kelas kelas penanggalan.
java.net : Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi
dengan komputer lain menggunakan jaringan TCP/IP.
java.awt : Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
java.applet : Kelas dasar aplikasi antar muka untuk diterapkan pada
penjelajah web.
9. Keunggulan Java
• Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di
beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis
sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup
menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang
dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu
hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan.
Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan
diatas operating system Linux tetapi dijalankan dengan baik di atas
Microsoft Windows. Platform yang didukung sampai saat ini adalah
Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah
setiap sistem operasi menggunakan programnya sendiri-sendiri (yang
dapat diunduh dari situs Java) untuk meninterpretasikan bytecode
tersebut.
• OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
10. Keunggulan Java
• Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan
library/perpustakaan (kumpulan program program yang disertakan dalam
pemrograman java) yang sangat memudahkan dalam penggunaan oleh
para pemrogram untuk membangun aplikasinya. Kelengkapan
perpustakaan ini ditambah dengan keberadaan komunitas Java yang
besar yang terus menerus membuat perpustakaan-perpustakaan baru
untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
• Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++
sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini
pengguna Java sangat banyak, sebagian besar adalah pemrogram C++
yang pindah ke Java. Universitas-universitas di Amerika Serikat juga
mulai berpindah dengan mengajarkan Java kepada murid-murid yang
baru karena lebih mudah dipahami oleh murid dan dapat berguna juga
bagi mereka yang bukan mengambil jurusan komputer.
11. Keunggulan Java
• Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan
memori sehingga para pemrogram tidak perlu melakukan pengaturan
memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai
secara luas).
12. Kelemahan Java
• Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak
kompatibel antara platform satu dengan platform lain. Untuk J2SE,
misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada
Mac OS X.
• 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.
13. Kelemahan Java
• 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.
14. Fitur – Fitur Java
1. Bahasa Sederhana dan Ampuh
Banyak sistem pemrograman memiliki puluhan cara untuk
mengerjakan satu hal. Jika suatu bahasa cukup terbuka sehingga orang
dapat melihat lebih mendalam, kita bebas dan dapat melakukan apa saja
dengan cara kita. Mungkin cara ini menawarkan kinerja yang sangat
memuaskan bagi programmer yang ahli dan teliti, tetapi kebebasan
tersebut harus dibayar mahal dengan kerumitan dan cukup sulit untuk
dimengerti.
Dengan Java, hanya ada sedikit cara untuk menyelesaikan suatu
pekerjaan. Java memberi Anda kemampuan untuk menuangkan ide Anda
dalam cara berorientasi objek yang mudah dan jelas, tanpa harus melihat
proses bagian dalam sistem yang sering kali berbahaya.
15. Fitur – Fitur Java
Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java
tidak menyediakan fitur-fitur rumit bahasa pemrograman level tinggi,
serta banyak pekerjaan pemrograman yang mulanya harus dilakukan
manual, sekarang dapat dikerjakan oleh Java secara otomatis.
Java tidak mendukung fitur-fitur rumit berikut ini :
• Explicit pointer manipulation
• Implicit type casting
• Structure atau Unions
• Operator Overloading
• Templates
• Header Files
• Multiple Inheritance
16. Fitur – Fitur Java
2. Bahasa Berorientasi Objek
Meskipun Java dipengaruhi bahasa-bahasa terdahulu, namun Bahasa
Java bukan turunan langsung dari bahasa manapun, dan juga tidak
dirancang untuk kompatibel secara kode sumber dengan bahasa-bahasa
sebelumnya. Bahasa Java sepenuhnya baru. Kebijakan ini memberi
kebebasan perancang Java. Kebebasan ini menghasilkan rancangan
Bahasa Java yang bersih, berguna, serta sekaligus menerapkan
pendekatan pragmatic terhadap objek.
Java merupakan penyeimbangan antara mazhab berorientasi objek
“murni” yang memandang “semua harus objek / semua adalah objek” dan
mazhab pragmatis yang menerapkan pragmatis “stay out my way” (model
hacker “jangan iktut campur”). Model objek Java adalah sederahana dan
mudah dikembangkan, namun sejalan dengan itu, bilangan dan tipe data
sederahana lain dianggap sebagai non-objek berkinerja tinggi.
17. Fitur – Fitur Java
OOP adalah cara ampuh dalam pengembangan dan pengorganisasian
perangkat lunak. Pada OOP, program computer sebagai sekelompok objek
yang berinteraksi. Deskripsi ringkas OOP adalah mengorganisasikan
program sebagai kumpulan komponen, disebut objek. Objek- Objek ini
ada secara independent, mempunyai aturan-aturan berkomunikasi
dengan objek lain dan untuk memerintahkan objek lain guna meminta
informasi tertentu atau meminta objek lain mengerjakan sesuatu.
Kebanyakan sistem berorientasi-objek lain memilih hirarki objek
yang kaku dan susah diatur, atau memilih menggunakan model objek
dinamik yang tidak memiliki kinerja tinggi dan kelengkapan. Java sekali
lagi memiliki keseimbangan, menyediakan, menyediakan mekanisme
peng-class-an sederhana, dengan model antarmuka dinamik yang intuitif
hanya jika diperlukan. Java tidak mengijinkan pewarisan jamak namun
menyelesaikan kebutuhan pewarisan jamak dengan fasilitas yang lebih
elegan.
18. Fitur – Fitur Java
3. Bahasa Statically Typed
Seluruh objek dalam program harus dideklarasikan lebih dahulu
sebelum digunakan. Ini memungkinkan kompilator Java menentukan
dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe
yang merupakan barikade awal untuk mencegah kesalahan yang tidak
perlu (seperti mengurangkan variable bertipe integer dengan variable
bertipe string).
Kebaikan lain dari fitur ini adalah kode program dapat dioptimasi
untuk menghasilkan program berkinerja tinggi.
19. Fitur – Fitur Java
4. Bahasa Dikompilasi
Sebelum menjalankan program di bahasa Java, program
dikompilasi menggunakan Java compiler. Kompilasi akan
menghasilkan file bytecode yang serupa fungsinya dengan file kode
mesin dan dapat dieksekusi disembarang Java Interpreter. Java
Interpreter membaca file “bytecode” dan menerjemahkan perintah
“bytecode” menjadi perintah-perintah bahasa mesin yang dapat
dieksekusi.
20. Fitur – Fitur Java
5. Bahasa yang Aman
Salah satu prinsip kunci perancangan Java adalah keselamatan
dan keamanan. Bahasa Java (implementasinya) telah memperoleh
pengalaman aspek keamanan dari Java Applet. Cara kerja applet
adalah sebagai berikut :
Saat web browser mengetahui adanya Java Applet dihalaman
web yang sedang diinterpretasi (atau web rendering), maka browser
akan melakukan download applet dan keseluruhan halaman web.
Applet itu kemudian dijalankan dikomputer dimana browser berada.
Hal ini tentu dapat menjadi sangat berbahaya, banyak aksi buruk
yang dapat dilakukan applet terhadap computer yang
mengeksekusinya. Untuk itu Java telah memberi pengamanan
terhadap applet dengan model pengamanan berlapis.
21. Fitur – Fitur Java
Java juga menyediakan beragam teknik pengamanan, yaitu:
1. Java tidak mengenal pointer. Peniadaan pointer merupakan langkah
besar pengamanan. Bagi pemrogram handal, operasi pointer
merupakan anugrah besar untuk optimasi program dan pembuatan
program yang efisien serta mengagumkan. Namun juga dapat
menjadi petaka yang besar, pointer merupakan sarana luar biasa
untuk pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer,
Java dapat menjadi bahasa yang lebih aman.
2. Program Java dikompilasi menjadi serangkaian bytecode. Sebelum
Java dijalankan, terdapat Java verifier yang memeriksa bytecode
untuk menjamin ketiadaan kode yang mencurigakan.
22. Fitur – Fitur Java
3. Java mempunyai beberapa pengaman terhadap applet. Untuk mencegah
program bertindak mengganggu disk pemakai applet tidak diperbolehkan
melakuukan open, read, atau write terhadap file di sistem pemakai secara
sembarangan. Karena Java applet dapat membuka jendela browser yang
baru, maka jendela mempunyai Java logo dan teks indentifikasi terhadap
jendela yang dibuka.
Hal ini mencegah jendela pop-up menipu sebagai yang lain seperti untuk
meminta nama pemakai dan password. Java telah menerapkan keamanan
yang ketat namun fleksibel. Keamanan berdasar suatu file kebijakan
sehingga dapat diatur dan dikendalikan untuk memperoleh kemampuan
maksimal bagi program mandiri dan applet yang dipercaya (trusted code).
23. Fitur – Fitur Java
6. Bahasa Independen terhadap Platform
Platform independence adalah kemampuan program bekerja di
sistem operasi atau sistem komputer berbeda. Bahasa Java merupakan
bahasa yang secara sempurna tidak bergantung pada platform.
Tipe variabel Java mempunyai ukuran yang sama di semua platform
sehingga variabel bertipe integer (int, long) berukuran sama tidak peduli
dimana program Java dikompilasi. Juga terhadap penggunaan Java applet
di web adalah sama sekali tidak memerlukan perubahan sedikit pun
terhadap file .class yang dihasilkan agar dapat dieksekusi di platform
manapun. Begitu telah tercipta file .class dengan menggunakan
kompilator Java di platform manapun, maka file .class tersebut juga dapat
dijalankan di platform manapun. Jadi dimanapun dibikin, dimanapun
dapat dijalankan
24. Fitur – Fitur Java
7. Bahasa Multithreading
Thread adalah untuk menyatakan program komputer melakukan
lebih dari satu tugas di satu waktu yang sama. Java menyediakan kakas
untuk menulis program multithread, program mempunyai lebih dari satu
thread eksekusi pada saat yang sama sehingga memungkinkan program
menangani beberapa tugas secara konkruen. Semua aplikasi pasti
sedikitnya mempunyai satu thread yang merepresentasikan jalur utama
eskekusi.
25. Fitur – Fitur Java
8. Bahasa yang Didukung Garbage Collector
Program Java melakukan garbage collection yang berarti pemrogram
tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi.
Fasilitas ini mengurangi beban pengelolan memori oleh pemrogram dan
mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat
di bahasa yang memungkinkan kesalahan alokasi dinamis.
26. Fitur – Fitur Java
9. Bahasa yang Tangguh
Java interpreter memeriksa semua akses sistem yang dilakukan.
Program Java tidak dapat menyebabkan crash terhadap sistem.
Java mempunyai mekanisme execption-handling yang ampuh.
Exception handling menyediakan cara untuk memisahkan antara bagian
penanganan kesalahan dengan bagian kode normal sehingga menuntun
ke struktur kode program yang lebih bersih dan menjadikan aplikasi
menjadi lebih tegar. Ketika kesalahan yang serius ditemukan, program
Java menciptakan execption. Exception dapat ditangkap dan dikelola
program tanpa resiko membuat sistem menjadi down.
27. Fitur – Fitur Java
10. Bahasa yang Mampu Diperluas
Program Java mendukung native method, yaitu fungsi ditulis di
bahasa lain, biasanya C/C++. Dukungan native method memungkinkan
pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding
fungsi ekivalen di Java. Native method secara dinamis akan di-link ke
program Java, yaitu diasosiasikan dengan program saat jalan.
Bahasa mempunyai banyak fitur modern yang ampuh untuk
pengelolaan sistem kompleks. Namun perlu diingat bahwa bahasa Java
tetap hanya bahasa pemrograman sekedar kakas. Seluruh kakas
pengembangan tetap memerlukan pengembang (pemrogram) yang
mampu menggunakannya.
28. Integrated Development Environment
(IDE)
Banyak pihak telah membuat IDE (Integrated Development Environment -
Lingkungan Pengembangan Terintegrasi) untuk Java. Diantara IDE
tersebut antara lain:
• Dr. Java, program gratis yang dikembangkan oleh Universitas Rice,
Amerika Serikat
• BlueJ, program gratis yang dikembangkan oleh Universitas Monash,
Australia
• NetBeans (open source- Common Development and Distribution License
(CDDL)) NetBeans disponsori Sun Microsystems, dan versi terkininya
memilki Matisse, sebuah GUI Editor yang menurut pendapat umum
merupakan yang terbaik.
29. Integrated Development Environment
(IDE)
• Eclipse JDT (open source- Eclipse Public License)
Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota
'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar
yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia,
Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin
tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan
IDE lainnya.
• IntelliJ IDEA (commercial, free 30-day trial)
• Oracle JDeveloper (free)
• Xinox JCreator (ada versi berbayar maupun free)
JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan
memori lebih sedikit) dari kebanyakan.