Sejarah Singkat JAVA
Pada 1991, sekelompok insinyur Sun dipimpin oleh
Patrick Naughton dan James Gosling ingin merancang
bahasa komputer untuk perangkat konsumer seperti cable TV Box. Karena
perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil
dan mengandung kode yang liat. Juga karena manufaktur – manufaktur berbeda
memilih processor yang berbeda pula, maka bahasa harus bebas dari
manufaktur manapun. Proyek diberi nama kode ”Green”.
Kebutuhan untuk fleksibilitas, kecil, liat dan
kode yang netral terhadap platform mengantar tim mempelajari
implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal
telah merancang bahasa portabel yang menghasilkan intermediate code untuk
mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini kemudian dapat
digunakan di sembarang mesin yang memiliki interpreter. Proyek Green
menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap
arsitektur mesin.
Karena orang – orang di proyek Green berbasis C++
dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi
orientasi objek dan bukan prosedural. Mulanya bahasa yang diciptakan diberi
nama ”Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang
berada pada seberang kantornya, namun dikarenakan nama 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 kopi yang kemudian dengan tidak sengaja 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. J.E.N.I. Pengenalan Pemrograman 1 2
Produk pertama proyek Green adalah Star 7 (*7),
sebuah kendali jarak jauh yang sangat cerdas. Dikarenakan pasar masih belum
tertarik dengan produk konsumer cerdas maka proyek Green harus menemukan pasar
lain dari teknologi yang diciptakan. Pada saat yang sama, implementasi WWW dan
Internet sedang mengalami perkembangan pesat. Di lain pihak, anggota dari
proyek Green juga menyadari bahwa Java dapat digunakan pada pemrograman
internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang
berperan di web.
Java telah mengakomodasi hampir seluruh fitur
penting bahasa – bahasa pemrograman yang ada semenjak perkembangan komputasi
modern manusia :
1. Dari SIMULA, bahasa pada tahun 65-an, bahasa
yang paling mempengaruhi Java sekaligus C++. Dari bahasa ini diadopsi bentukan
– bentukan dasar dari pemrograman berorientasi objek.
2. Dari LISP – bahasa tahun 55-an. Diadopsi
fasilitas garbage collection, serta kemampuan untuk meniru generic
list processing, meski fasilitas ini jarang yang memanfaatkannya.
3. Dari Algol – bahasa pada tahun 60-an, diambil
struktur kendali yang dimilikinya.
4. Dari C++, diadopsi sintaks, sebagian
semantiks dan exception handling
5. Dari bahasa Ada, diambil strongly type, dan
exception handling.
6. Dari Objective C, diambil fasilitas interface.
7. Dari bahasa SmallTalk, diambil pendekatan single-root
class hiƩrarchie, dimana objek adalah satu kesatuan hirarki pewarisan
8. Dari bahasa Eiffel, fasilitas assertion yang
mulai diterapkan di sebagian JDK 1.4
J.E.N.I. Pengenalan Pemrograman 1 3
- Apa itu Teknologi JAVA?
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 sistem
operasi. Perkembangan Java tidak hanya terfokus oada satu sistem operasi, tetapi
dikembangkan untuk berbagai sistem operasi dan bersifat open source.
Sebuah Development
Environment
Sebagai sebuah peralatan pembangun, teknologi
Java menyediakan banyak tools : compiler, interpreter, penyusun
dokumentasi, paket kelas dan sebagainya.
Sebuah Aplikasi
Aplikasi dengan teknologi Java secara umum adalah
aplikasi serbt a guna yang dapat dijalankan pada seluruh mesin yang memiliki Java
Runtime Environment (JRE).
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 teknologi Java. J.E.N.I. Pengenalan
Pemrograman 1 4
Mengapa Mempelajari JAVA?
Berdasarkan white paper resmi dari SUN,
Java memiliki karakteristik berikut :
1. Sederhana (Simple)
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 mengunakan pemrograman berorientasi objek
yang membuat program dapat dibuat secara modular dan dapat dipergunakan
kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek
dan melakukan interaksi antar objek-objek tersebut.
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi
secara mudah dengan adanya libraries networking yang terintegrasi pada
Java.
4. Interpreted
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 mempuyai reliabilitas yang tinggi. Compiler
pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan
bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk
membantu mengatasi error pada pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi
internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk
menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan
aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent.
Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform
berbeda dengan Java Virtual Machine.
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 J.E.N.I. Pengenalan Pemrograman 1 5
Inprise, Microsoft ataupun Symantec yang
menggunakan Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu
program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada
lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan
properties ataupun method dapat dilakukan tanpa menggangu program yang
menggunakan class tersebut.
- Sebagian Fitur dari JAVA
Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) 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.
Aplikasi program Java diciptakan dengan file teks
berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode
berekstensi .class atau lebih. Bytecode adalah
serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode
mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan,
sementara bytecode berjalan pada java interpreter yang
tersedia di semua platform sistem komputer dan sistem operasi.
Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan
seorang pemrogram mengalokasikan memori pada saat dijalankan. Namun, setelah
menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan
kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C,
C++ dan bahasa lainnya, adalah pemrogram yang mutlak bertanggung jawab akan hal
ini. Hal ini dapat menyulitkan bilamana pemrogram tersebut alpa untuk
mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama
memory leaks.
Program Java melakukan garbage collection yang
berarti program tidak perlu menghapus sendiri objek – objek yang tidak
digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh
pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang
terdapat pada bahasa yang memungkinkan alokasi dinamis. J.E.N.I. Pengenalan Pemrograman
1 6
Code Security
Code Security terimplementasi pada Java
melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model
pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.
1. Pertama, class-loader menangani
pemuatan kelas Java ke runtime interpreter. Proses ini menyediakan
pengamanan dengan 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.
2. Kedua, bytecode verifier membaca bytecode
sebelum dijalankan dan menjamin bytecode memenuhi aturan – aturan
dasar bahasa Java.
3. Ketiga, manajemen keamanan menangani keamanan
tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber
daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing.
Setelah seluruh proses tersebut selesai
dijalankan, barulah kode program di eksekusi.
Java juga menyediakan beragam teknik pengamanan lain
:
1. Bahasa dirancang untuk mempersulit eksekusi
kode perusak. Peniadaan pointer merupakan langkah besar pengamanan.
Java tidak mengenal operasi pointer. Di tangan pemrogram 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 pemrogram jahat. Pointer merupakan sarana luar biasa untuk pengaksesan
tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat menjadi
bahasa yang lebih aman.
2. Java memiliki beberapa pengaman terhadap 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.
J.E.N.I. Pengenalan Pemrograman 1 7
Fase – fase Pemrograman JAVA
Gambar dibawah ini menjelaskan aliran proses
kompilasi dan eksekusi sebuah program Java :
Langkah pertama dalam pembuatan sebuah program
berbasis Java adalah menuliskan kode program pada text editor. Contoh text
editor yang dapat digunakan antara lain : notepad, vi, emacs dan lain
sebagainya. Kode program yang dibuat kemudian tersimpan dalam sebuah berkas
berekstensi .java.
Setelah membuat dan menyimpan kode program,
kompilasi file yang berisi kode program tersebut dengan menggunakan Java
Compiler. Hasil dari adalah berupa berkas bytecode dengan ekstensi .class.
Berkas yang mengandung bytecode tersebut
kemudian akan dikonversikan oleh Java Interpreter menjadi bahasa mesin sesuai
dengan jenis dan platform yang digunakan.
Proses
|
Tool
|
Hasil
|
Menulis kode program
|
Text
editor
|
Berkas berekstensi .java
|
Kompilasi program
|
Java Compiler
|
Berkas berekstensi .class (Java Bytecodes)
|
Menjalankan program
|
Java Interpreter
|
Program Output
|
KARAKTERISTIK JAVA
Pengertian seputar karakteristik java
ialah sebagai berikut :
☺ Sederhana:
Java tidak memiliki sintaks aneh tetapi banyak menggunakan sintaks c++ yang sudah banyak dikenal sehingga java tidak menyulitkan bagi para programmer. Bahkan java memberikan banyak peningkatan dan kemudahan dibanding c++.
☺ berorientasi objek :
Java merupakan pemrograman berorientasi objek yang murni. Dalam pemrograman Java semua adalah objek, terkecuali tipe data primitif.
☺ Dapat didistribusikan dengan mudah:
Sifat terdistribusi dari Java sangat tampak sebagai applet dan library yang mampu bekerja dalam jaringan dan bekerja dengan objek terdistribusi (RMI) dengan sangat baik. Saat ini Java juga memiliki kemampuan untuk server side processing yaitu teknologi Java Servlet dan Java Server Pages.
☺ aman:
Aman karena program Java memiliki library security serta policy yang membatasi akses applet di komputer client.
☺ Diinterpretasi oleh interpreter:
☺ Sederhana:
Java tidak memiliki sintaks aneh tetapi banyak menggunakan sintaks c++ yang sudah banyak dikenal sehingga java tidak menyulitkan bagi para programmer. Bahkan java memberikan banyak peningkatan dan kemudahan dibanding c++.
☺ berorientasi objek :
Java merupakan pemrograman berorientasi objek yang murni. Dalam pemrograman Java semua adalah objek, terkecuali tipe data primitif.
☺ Dapat didistribusikan dengan mudah:
Sifat terdistribusi dari Java sangat tampak sebagai applet dan library yang mampu bekerja dalam jaringan dan bekerja dengan objek terdistribusi (RMI) dengan sangat baik. Saat ini Java juga memiliki kemampuan untuk server side processing yaitu teknologi Java Servlet dan Java Server Pages.
☺ aman:
Aman karena program Java memiliki library security serta policy yang membatasi akses applet di komputer client.
☺ Diinterpretasi oleh interpreter:
Java memerlukan virtual machine yang bertindak
sebagai interpreter yang menterjemahkan bytecode (file class) menjadi bahasa
mesin yang dimengerti oleh komputer host.
☺ portable:
Portabel karena Java dapat dijalankan di berbagai platform tanpa perubahan kode sama sekali.
☺ multithreading:
Java memiliki kemampuan untuk menangani dan menjalankanbanyak thread sekaligus.
☺ dinamik:
Java merupakan teknologi yang terus berkembang, dan hal ini tampak nyata sekali dengan library yang terus ditingkatkan kemampuannya dan kelengkapannya. Bahkan Java saat ini telah menjadi teknologi handal untuk aplikasi mobile dengan adanya Java
☺ portable:
Portabel karena Java dapat dijalankan di berbagai platform tanpa perubahan kode sama sekali.
☺ multithreading:
Java memiliki kemampuan untuk menangani dan menjalankanbanyak thread sekaligus.
☺ dinamik:
Java merupakan teknologi yang terus berkembang, dan hal ini tampak nyata sekali dengan library yang terus ditingkatkan kemampuannya dan kelengkapannya. Bahkan Java saat ini telah menjadi teknologi handal untuk aplikasi mobile dengan adanya Java
2 Micro Edition.
• netral terhadap arsitektur hardware :
Java dapat dijalankan dengan baik pada komputer yang memiliki arsitektur berbeda-beda.
• robust :
Java merupakan teknologi yang mampu menolong programmer untuk menghasilkan program secara cepat dan handal karena Java mencegah adanya memory leaking, meniadakan pointer(yang merupakan keharusan pada programmer c dan c++) serta mencegah berbagai error yang mungkin terjadi dengan adanya berbagai proses pengecekan awal pada kompilasi
• netral terhadap arsitektur hardware :
Java dapat dijalankan dengan baik pada komputer yang memiliki arsitektur berbeda-beda.
• robust :
Java merupakan teknologi yang mampu menolong programmer untuk menghasilkan program secara cepat dan handal karena Java mencegah adanya memory leaking, meniadakan pointer(yang merupakan keharusan pada programmer c dan c++) serta mencegah berbagai error yang mungkin terjadi dengan adanya berbagai proses pengecekan awal pada kompilasi
ISTILAH PADA JAVA
Apakah Java?
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.
Platform
Independent
Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
JVM sendiri adalah sebuah aplikasi yang berjalan
di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan
mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah
interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di
Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan
dapat berjalan di platform mana saja, asalkan ada JVM di sana.
Kompiler dan interpreter untuk program Java
berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK
ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program
Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine.
Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat
didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan
JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE
saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya
tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah
memiliki JVM sendiri.
Library
Selain kompiler dan interpreter, bahasa Java
sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam
membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik,
desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.
OOP
Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.
OOP
Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.
Sedikit perbandingan tambahan dengan bahasa C dan
C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan
menghilangkan aspek-aspek kerumitan dalam bahasa C++ tanpa mengurangi
kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun
mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah
program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library
Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat
untuk dapat menguasai penggunaan library-library tersebut.
Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) 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. Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih.
Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) 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. Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih.
Bytecode adalah serangkaian instruksi serupa
instruksi kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada
sistem komputer dimana kompilasi ditujukan, sementara bytecode berjalan pada
java interpreter yang tersedia di semua platform sistem komputer dan sistem
operasi.
Garbage
Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi emori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks.
Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi emori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks.
Program Java melakukan garbage collection yang
berarti program tidak perlu menghapus sendiri objek–objek yang tidak digunakan
lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan
mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada
bahasa yang memungkinkan alokasi dinamis.
Code Security
Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.
Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.
DASAR-DASAR PEMROGRAMAN JAVA (#1)
Java adalah bahasa pemrograman berorientasi obyek
(PBO) atau dalam bahasa gaulnya yaitu Object Oriented Programming
(OOP). Jadi sebelum menggunakan Java sebaiknya terlebih dahulu memahami konsep
OOP. Untuk lebih jelasnya mengenai konsep OOP, saya tulis pada kategori OOP
dengan judul Konsep Pemrograman Berorientasi Obyek.
Dalam tulisan ini secara garis besar akan saya
uraikan mengenai apa saja yang harus dilakukan sebagai langkah awal, mencoba
membuat dan menjalankan sebuah program sederhana (seperti biasa program “Hello
World!”).
Langkah Awal
Sebelum kita mulai membuat program dengan Java, ada dua bagian penting yang harus dimiliki:
Sebelum kita mulai membuat program dengan Java, ada dua bagian penting yang harus dimiliki:
- Java Standar Edition Development Kit 6 (JDK 6) yang dapat diunduh (download) pada websitenya Sun Microsystems. Klik disini untuk mengunduh. Setelah selesai diunduh, jangan lupa dipasang (install). Untuk melakukan pemasangan caranya tidak sulit yaitu dengan klik ganda pada file yang telah diunduh kemudian ikuti instruksinya. Kalau masih bingung juga dengan cara pemasangannya, bisa langsung lihat saja disini. JDK 6 merupakan alat untuk membuat, mengembangakan dan menjalankan program dengan Java. Di dalam JDK 6 diantaranya terdapat Java Compiler (javac) dan Java Application Launcher (java). Java Compiler (javac) berfungsi untuk menterjemahkan kode program (.java) kedalam instruksi berupa bytecodes yang dapat dikenali oleh Java Virtual Machine (JVM). Java Application Launcher (java) digunakan oleh JVM untuk menjalankan aplikasi. Dibawah ini adalah gambar yang mengilustrasikan proses pengembangan aplikasi dengan Java.
- Alat untuk menulis/memperbaiki program (Text Editor). Banyak sekali jenis-jenis text editor yang tersedia saat ini baik yang berbayar atau yang gratisan. Bagi pengguna sistem operasi windows bisa menggunakan Notepad (sudah satu paket dengan sistem operasi windows). Kalo tidak nyaman dengan Notepad, saya punya satu referensi yang saya rekomendasikan untuk digunakan yaitu Notepad++. Aplikasi ini 100% gratis. Klik disini untuk mengunduh dan membaca informasi lebih detail.
Membuat Program Sederhana
Setelah langkah awal selesai kita lakukan, maka kita bisa lanjutkan dengan membuat sebuah program sederhana yaitu program untuk menampilkan teks / string “Hello World!”. Ketikkan kode program berikut pada text editor yang anda miliki:
Setelah langkah awal selesai kita lakukan, maka kita bisa lanjutkan dengan membuat sebuah program sederhana yaitu program untuk menampilkan teks / string “Hello World!”. Ketikkan kode program berikut pada text editor yang anda miliki:
Simpan program diatas dengan nama HelloWorld.java.
Perlu diperhatikan pada penulisan program dengan Java adalah Case Sensitive.
A tidak sama dengan a, HelloWorld tidak sama dengan helloworld.
Kompilasi HelloWorld.java ke
HelloWorld.class
Perintah yang digunakan untuk melakukan kompilasi adalah javac. Kompilasi akan dilakukan pada Command Prompt (Windows), untuk itu Command Prompt harus dijalankan terlebih dahulu.
Perintah yang digunakan untuk melakukan kompilasi adalah javac. Kompilasi akan dilakukan pada Command Prompt (Windows), untuk itu Command Prompt harus dijalankan terlebih dahulu.
Menjalankan Command Prompt (Windows XP):
- Klik tombol Start – All Programs – Accessories – Command Prompt, atau
- Klik tombol Start – Run, ketikkan cmd kemudian Enter.
Berikut ini adalah proses kompilasi program
sederhana yang dibuat sebelumnya. Dengan asumsi program sederhana tersebut
disimpan pada drive D folder Java (D:\Java). Folder Java adalah folder pribadi
saya untuk menyimpan latihan-latihan pemorgraman java. Jadi Anda boleh
menyimpan di drive mana saja dan di folder apa saja (tidak harus sama dengan
apa yang saya lakukan, yang penting anda mengerti dan memahami maksudnya).
Pada saat komplilasi jika menemukan error seperti
dibawah ini berarti bahwa compiler javac tidak ditemukan. Ini
disebabkan oleh karena tempat dari compiler javac berbeda dengan
tempat file dari program yang kita buat. Tempat dari compiler javac
biasanya terletak pada C:\Program Files\Java\jdk1.6.0_<versi>\bin. Maka
dari itu seharusnya program yang kita buat, kita simpan juga pada pada folder
tersebut, kompilasinya dan menjalankannya juga dilakukan pada folder tersebut.
Permasalahannya adalah file-file yang kita simpan di folder bin akan menjadi
sembrawut antara file-filenya JDK 6 dan file-file program yang kita buat
sendiri.
Supaya compiler javac ataupun launcher
java dapat dikenali secara menyeluruh oleh sistem operasi windows, maka
kita bisa melakukan seting Variabel PATH pada windows sehingga lokasi instalasi
JDK 6 dapat dikenali dimana saja dalam sistem operasi windows. Untuk melakukan
seting Variabel PATH, ikuti langkah-langkah berikut (Windows XP):
- Klik tombol Start – Control Panel – System
- Pada jendela System Properties pilih Advanced – Environment Variables
- Tambahkan lokasi folder bin dari installasi JDK 6 untuk PATH didalam User Variables dan System Variables seperti: C:\Program Files\Java\jdk1.6.0_<versi>10\bin
- Biasanya sudah terdapat beberapa PATH yang sudah diset sebelumnya. Untuk menambahkan PATH untuk folder bin instalasi JDK 6, tambahkan dibelakangnya saja dipisahkan dengan tanda titik koma (;). Contohnya seperti PATH yang ada pada komputer saya: C:\AppServ\Apache2.2\bin;C:\AppServ\php5;C:\AppServ\MySQL\bin;C:\Program Files\Java\jdk1.6.0_10\bin
Menjalankan Program HelloWorld
Perintah yang digunakan untuk menjalankan program adalah java. Berikut adalah ilustrasi menjalankan program HelloWorld.
Perintah yang digunakan untuk menjalankan program adalah java. Berikut adalah ilustrasi menjalankan program HelloWorld.
Macam-Macam Tipe Data pada Java
Java
mempunyai 11 macam tipe data yang terdiri atas tipe data sederhana dan
referensi / komposit. Tipe sederhana meliputi byte, short, int, long, char,
float, double dan boolean yang terbagi menjadi 3 tipe. Sedangkan tipe data
referensi meliputi class,array dan interface.
A. Tipe Data Sederhana
- Integer (Bilangan Bulat)
Tipe data yang masuk menjadi bagian ini
adalah byte, short, int dan long. Semua tipe data ini bersifat
Signed, yaitu bisa mempresentasikan nilai positif dan
negatif. Tidak seperti tipe data lainnya, Java tidak mendukung tipe data unsigned
yang hanya bisa mempresentasikan nilai postif. Untuk jelasnya akan dijelaskan
oleh tabel dan penjelasan di bawah ini :
Tipe Data
|
Ukuran (bit)
|
Range
|
Byte
|
8
|
-128
s.d. 127
|
Short
|
16
|
-32768
s.d. 32767
|
Int
|
32
|
-2147483648
s.d. 2147483647
|
Long
|
64
|
-9223372036854775808
s.d. 9223372036854775807
|
· Byte
Type byte umumnya
digunakan pada saat kita bekerja dengan sebuah data stream dari
suatu file maupun jaringan, yaitu untuk kepeluan proses membaca/menulis. Selain
itu, tipe ini juga digunakan saat bekerja dengan data biner yang tidak
kompatibel dengan tipe-tipe lain yang didefiniskan di dalam Java. Contoh :
class
ContohByte {public static void main(String [] args){byte
a;a=127;System.out.println(a);}}
·
Short
Pada
umumnya diaplikasikan pada komputer-komputer 16-bit, yang saat ini semakin
jarang
keberadaanya.
Contoh :
class
ContohShort {public static void main(String[]args){short umurWafiy;short
umurAdit;short
selisih;umurWafiy=23;umurAdit=13;selisih=umurWafiy-umurAdit;System.out.println(“Selisih
umur mereka adalah “ + selisih + ” tahun”);
·
Int
Tipe
ini merupakantipe yang paling banyak dipakai dalam merepresentasikan angka
dalam Java, dikarenakan dianggap paling efisien dibandingkan dengan tipe-tipe
integer lainnya. Tipe Int banyak digunakan untuk indeks dalam
struktur pengulangan maupun dalam konstruksi sebuah array.Selain
itu, secara teori setiap ekspresi yang melibatkan tipe integer byte,
short, int, long) semuanya akan dipromosikan ke int terlebih
dahulu sebelum dilakukan proses perhitungan. Contoh :
class HitungGaji{public static void main(String[]args){int
gaji;int lamaKerja;int
besarGajigaji=5000000;lamaKerja=4;besarGaji=gaji*lamaKerja;System.out.println(besarGaji);}}
·
Long
Tipe
ini digunakan untuk kasus-kasus tertentu yang nilainya berada di luar rentang
tipe int, karna tipe ini punya range paling tinggi dibanding Integer
lainnya. Dengan kata lain, tipe long terpaksa digunakan jika
data memiliki range diluar range int. Contoh:
public class MassaPlanet{public static
void main (String[]args){long volum=1864824217374668;long massaJenis=77886;long
massa=volum*massaJenis;System.out.println(massa);}}
2.
Floating-Point (Bilangan Pecahan)
Tipe floating-point digunakan
untuk merepresentasikan nilai-nilai yang mengandung pecahan atau angka decimal
di belakang koma, seperti 3.1416,5.25, dan sebagainya. Bilangan semacam ini
disebut sebagai bilangan riil. Dalam Java tipe ini dibedakan menjadi dua jenis,
yaitu float, dan double. Untuk jelasnya akan dijelaskan
oleh tabel dan penjelasan di bawah ini :
Tipe
|
Ukuran
|
Range
|
Presisi (jumlah digit)
|
|
bytes
|
bit
|
|||
float
|
4
|
32
|
+/-
3.4 x 1038
|
6-7
|
double
|
8
|
64
|
+/-
1.8 x 10308
|
15
|
·
Float
Tipe
ini digunakan untuk menandakan nilai–nilai yang mengandung presisi atau
ketelitan tunggal (single-precision) yang menggunakan ruang penyimpanan
32-bit. Presisi tunggal biasanya lebih cepat untuk processor-processor tertentu
dan memakan ruang penyimpanan setengah kali lebih sedikit dibandingkan presisi
ganda (double precision). Permasalahan yang timbul dari pemakaian
tipe float untuk nilai-nilai yang terlalu kecil atau justru
terlalu besar, karena nilai yang dihasilkan akan menjadi tidak akurat. Contoh
penggunaan variabel :
float suhu;
·
Double
Tipe
ini mengandung tingkat ketelitian ganda atau presisi ganda (double precision)
dan menggunakan ruang penyimpanan 64-bit untuk menyimpan nilai. Tipe double tentu
lebih cepat untuk melakukan perhitungan-perhitungan matematis daripad
tipe float. Untuk perhitungan yang bersifat bilangan riil dan
menghasilkan hasil yang lebih akurat, maka lebih baik menggunakan tipe double.
Contoh :
class KelilingLingkaran {public static
void main (String[] args) {double pi = 3.1416;double r = 2.12;double
keliling;keliling = 2*pi*r;System.out.println(“Keliling Lingkaran = ”+
keliling);}}
3. Char
Tipe data char merupakan tipe untuk
menyatakan sebuah karakter. Java menggunakan karakter Unicode untuk
merepresentasikan semua karakter yang ada . Unicode ialah
sekumpulan karakter yang terdapat pada semua bahasa, seperti bahasa
Latin, Arab, Yunani dan lain-lainnya. Karena bahasa Java dirancang untuk dapat
diterapkan di berbagai macam platform, maka Java menggunakan
karakter Unicode yang membutuhkan ukuran 16-bit. Untuk
karakter-karakter yang tidak dapat diketikkan secara langsung melalui keyboard,
java menyediakan beberapa escape sequence (pasangan karakter
yang dianggap sebagai karakter tunggal). Escape sequence tidak
dianggap sebagai String, melainkan tetap sebagai tipe karakter khusus.
Di bawah ini akan dijelaskan beberapa contoh tentang escape sequence.
Escape Sequence
|
Keterangan
|
\ddd
|
Karakter
octal (ddd)
|
\uxxxx
|
Karakter Unicode heksadecimal
(xxxx)
|
\’
|
Petik
tunggal
|
\’’
|
Petik
ganda
|
\\
|
Backslash
|
\r
|
Carriage return
|
\n
|
Baris
baru (line feed)
|
\f
|
Form feed
|
\t
|
Tab
|
\b
|
Backspace
|
Contoh
:
class ContohKarakter {public static void
main (String[] args) {char ch = 65;// 65 merupakan kode untuk karakter
A;System.out.println(“ch1=”+ch);ch++; //increment(penaikan
nilai sebesar 1)System.out.println(“ch2 = ”+ ch);}}
4. Boolean
Tipe boolean adalah
tipe data yang digunakan untuk menampung nilai logika, yaitu nilai yang hanya
memiliki dua buah kemungkinan (benar atau salah). Tipe ini ditandai dengan kata
kunci Boolean. Dalam bahasa Java, nilai benar dipresentasikan
dengan kata kunci true dan nilai salah dengan kata kunci false.
Contoh :
class ContohBolean {public static void
main (String[] args) {boolean a = true;if (a) {System.out.println(“Perintah
dilaksanakan ”);}//negasi dari aIf (!a) {System.out.println(“Perintah tidak
dilaksanakan ”);}}}
B. Tipe Data Referensi
1. Class
Kelas dapat didefiniskan sebagai cetak
biru (blueprint) atau prototipe/kerangka yang mendefiniskan
variabel-variabel (data) dan method-method (perilaku) umum dari sebuah objek.
Dengan kata lain kelas adalah sebuah kesatuan yang terintegrasi antara method
dan data yang mengacu pada suatu objek.
Dalam dunia permrograman, sebenarnya
kelas tidak jauh berbeda dengan tipe data sederhana. Perbedaannya, tipe data
sederhana digunakan untuk mendeklarasikan variabel ‘normal’, sedangkan kelas
digunakan untuk mendeklarasikan sebuah variabel yang berupa objek. Variabel
yang berupa objek ini sering disebut dengan referensi objek (object
reference).
Pada saat kita membuat sebuah kelas baru.
Sekali didefiniskan, maka tipe data baru ini dapat digunakan untuk membuat
suatu objek dari tipe tersebut. Dengan kata lain, kelas adalah pola (template)
untuk pembuatan objek, dan objek adalah wujud nyata (instance) dari sebuah
kelas. Contoh :
public Class Mahasiswa{public String
nama;public int nrp;Mahasiswa(String a, int b){nama =a;nrp= b;}public void
cetak (){System.out.println(“Nama : “+nama+” nrp : “+nrp);}}
Setelah kita membuat sebuah kelas, untuk
menggunakannya maka kita harus membuat sebuah instance dari kelas tersebut.
Berikut cara membuat objek dari kelas :
class Demo {public static void main(String[]args){Mahasiswa
mhs;mhs = new Mahasiswa(“Rezki”,5211100048)}}
2. Array
Tipe
data ini memiliki kemampuan untuk menggunakan satu variabel yang dapat
menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif.
Sebuah
array akan menyimpan beberapa item data yang memiliki tipe data sama didalam
sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa slot.
3. Interface
Interface
merupakan sekumpulan method yang hanya memuat deklarasi dan struktur method,
tanpa detail implementasinya. Sedangkan detail dari method tersebut berada pada
class yang mengimplementasikan interface tersebut. Interface digunakan bila
Anda ingin mengaplikasikan suatu method yang spesifik, yang tidak
diperoleh dari proses inheritance yang lebih terbatas. Tipe data yang boleh
pada interface hanya tipe data konstan
0 komentar:
Posting Komentar