BAB
I
PENDAHULUAN
A. LATAR
BELAKANG
Pesatnya
pertumbuhan teknologi, terutama teknologi komputer sudah tidak bisa dipungkiri
lagi, bagi yang mengikuti perkembangannya, ia tidak akan dipandang sebelah
mata. Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk
mundur dari panggung kompetisi. Ibarat sebuah penyakit, teknologi komputer
sudah menyusup hampir ke semua bidang kehidupan manusia. Dari pemerintah pusat
sampai tingkat pemerintah desa, perusahaan-perusahaan, supermarket, minimarket,
perguruan tinggi, SLTA, SLTP, bahkan SD hampir semuanya mengenal komputer.
Perangkat
lunak ini merupakan salah satu bagian yang tak terpisahkan dari system computer
saat ini. Perkembangan teknologi saat ini dapat dipastikan mengikutsertakan
perkembangan perangkat lunak. Perkembangan pembangunan perangkat lunak
mengalami kemajuan yang signifikan sejak 6 dekade terakhir : dimulai dari
sekedar memberi instruksi biner ke system computer sederhana, pembuatan bahasa
pemrograman tingkat rendah, tingkat menengah sampai tingkat tinggi.
Karena
semakin kompleknya kebutuhan akan komputer sebagai alat bantu komputasi,
perkembangan perangkat lunak juga telah melahirkan konsep-konsep pemrograman,
mulai dari konsep pemrograman sederhana (hanya menuliskan baris-baris program
dari yang berjalan dari awal sampai akhir program), pembuatan
prosedur-prosedur, sampai pada pemrograman berorientasi obyek. Pemrograman
berorientasi obyek merupakan konsep pemrograman yang relatif baru, di mana
pemrograman diarahkan ke paradigma pembentukan obyek-obyek yang saling berinteraksi.
B. RUMUSAN
MASALAH
Permasalahan yang akan
kami bahas dalam makalah ini yaitu:
Ø Bagaimana
sejarah pemrograman java?
Ø Apa
itu bahasa pemrograman java?
Ø Sebutkan
apa saja aturan dasar pada java!
Ø Sebutkan
istilah-istilah yang terdapat pada java!
Ø Apa
saja karakteristik yang dimiliki java?
Ø Sebutkan
macam-macam tipe data pada java!
Ø Sebutkan
kelebihan dan kekurangan java!
Ø Bagaimana
perkembangan java di Indonesia?
Ø Sebutkan
contoh dari program java!
C. TUJUAN
Tujuan dalam penyusunan
makalah ini yaitu:
Ø Untuk
mengetahui sejarah pemrograman java
Ø Untuk
mengetahui pengertian bahasa pemrograman java
Ø Untuk
mengetahui apa saja aturan dasar pada java
Ø Untuk
mengetahui istilah-istilah yang ada pada java
Ø Untuk
mengetahui karakteristik yang dimiliki java
Ø Untuk
mengetahui tipe data pada java
Ø Untuk
mengetahui kelebihan dan kekurangan java
Ø Untuk
mengetahui perkembangan java di Indonesia.
Ø Mengetahui
contoh-contoh program java.
BAB II
ISI
A. SEJARAH
JAVA
Java adalah bahasa pemrograman serbaguna
yang dapat digunakan untuk membuat sebuah program. Java merupakan sebuah bahasa
pemrograman tingkat menengah. Salah satu kelebihan Java adalah
ketidak-tergantungan dengan platform, artinya Java dapat dijalankan pada
sembarang komputer dan pada sembarang sistem operasi yang sering disebut dengan
portabilitas. Yang menariknya portabilitas Java tidak terbatas pada program
sumber (source code), melainkan juga pada tingkat bytecode. Dengan demikian
suatu program yang sudah anda kompilasi dengan java di OS Windows dapat juga
berjalan di Macintosh secara langsung tanpa kompilasi ulang.
Java adalah bahasa pemrograman yang
berorientasi objek (OOP). Java diciptakan oleh James Gosling, developer dari
Sun Microsystems pada tahun 1991. Perkembangan Java tidak hanya terfokus pada
satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan
bersifat open source. Sebagai bahasa pemrograman yang berorientasi objek, Java
menggunakan kelas untuk membentuk suatu objek.
Bahasa pemrograman Java pertama lahir 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, James Gosling dan
Bill Joy, 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).
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 hanya dipakai 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. 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.
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 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.
B. BAHASA
PEMPROGRAMAN JAVA
Java merupakan sebuah bahasa
pemrograman tingkat tinggi yang berorientasi pada objek dan program java
tersusun dari bagian yang disebut kelas. Kelas terdiri atas metode-metode yang
melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya.
Para pemrogram Java banyak mengambil
keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java
Application Programming Interface (API).
Kelas-kelas ini diorganisasikan
menjadi sekelompok yang disebut paket (package). Java API telah menyediakan
fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi
ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan
bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara
menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program
javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode.
File kode sumber mempunyai ekstensi *.java. Kompilator javac menghasilkan file
bytecode kelas dengan ekstensi *.class. Interpreter merupakan modul utama
sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java.
Java merupakan bahasa berorientasi
objek (OOP) yaitu cara ampuh dalam pengorganisasian dan pengembangan perangkat
lunak. Pada OOP, program komputer sebagai kelompok objek yang saling
berinteraksi. Deskripsi ringkas OOP adalah mengorganisasikan program sebagai
kumpulan komponen, disebut objek. Objek-objek ini ada secara independen,
mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerintahkan
objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan
sesuatu.
Kelas bertindak sebagai modul
sekaligus tipe. Sebagai tipe maka pada saat jalan, program menciptakan
objek-objek yang merupakan instan-instan kelas. Kelas dapat mewarisi kelas
lain. Java tidak mengijinkan pewarisan jamak namun menyelesaikan kebutuhan
pewarisan jamak dengan fasilitas antarmuka yang lebih elegan.
Seluruh objek diprogram harus
dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan Java
yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java menentukan
dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe yang
merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti
mengurangkan variabel bertipe integer dengan variabel bertipe string).
Pencegahan sedini mungkin diharapkan menghasilkan program yang bersih. Kebaikan
lain fitur ini adalah kode program lebih dapat dioptimasi untuk menghasilkan
program berkinerja tinggi.
Java menggunakan model pengamanan
tiga lapis (three-layer security model) untuk melindungi sistem dari untrusted
Java code. Pertama, bytecode verifier membaca bytecode sebelum dijalankan dan
menjamin bytecode memenuhi aturan-aturan dasar bahasa Java. Kedua, class loader
menangani pemuatan kelas Java ke runtime interpreter. Ketiga, manajer keamanan
menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak
mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem
window.
Platform independence adalah
kemampuan program bekerja di sistem operasi yang berbeda. Bahasa Java merupakan
bahasa yang secara sempurna tidak bergantung platform. Tipe variabel Java
mempunyai ukuran sama di semua platform sehingga variabel bertipe integer
berukuran sama tidak peduli dimana program java dikompilasi. Begitu telah
tercipta file .class dengan menggunakan kompilator Java di platform manapun,
maka file .class tersebut dapat dijalankan di platform manapun. Jadi “dimanapun
dibuat, dimanapun dapat dijalankan”. Slogan ini biasa diringkas sebagai Write
Once, Run Anywhere (WORA).
Java termasuk bahasa Multithreading.
Thread adalah untuk menyatakan program komputer melakukan lebih dari satu tugas
di satu waktu yang sama. Java menyediakan kelas untuk menulis program
multithreaded, program mempunyai lebih dari satu thread eksekusi pada saat yang
sama sehingga memungkinkan program menangani beberapa tugas secara konkuren.
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 di bahasa yang memungkinkan alokasi dinamis.
Java mempunyai mekanisme
exception-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 lebih tegar. Ketika kesalahan yang serius ditemukan, program Java
menciptakan exception. Exception dapat ditangkap dan dikelola program tanpa
resiko membuat sistem menjadi turun.
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 berjalan.
Grafical User Interface (GUI) adalah
salah satu kemampuan Java dalam mendukung dan manajemen antarmuka berbasis
grafis. Tampilan grafis yang akan ditampilkan terhubung dengan program serta
tempat penyimpanan data. Elemen dasar di Java untuk penciptan tampilan berbasis
grafis adalah dua paket yaitu AWT dan Swing. Abstract Windowing Toolkit (AWT),
atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing
bertujuan umum dan multiplatform serta menyediakan sejumlah kelas untuk membuat
GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar,
dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu
pull-down.
Penggunaan komponen AWT ditandai
dengan adanya instruksi : import java.awt.*; Swing merupakan perbaikan
kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap
AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak
dibanding kelas Button. Selain itu
komponen swing umumnya diawali dengan huruf “J”, misalnya JButton,
JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing
menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen
Swing ditandai dengan adanya instruksi : import javax.swing.
Beberapa perbedaan AWT dan Swing, AWT
merupakan komponen heavyweight (kelas berat) sedangkan Swing lightweight (kelas
ringan). Swing memiliki lebih banyak komponen. Fasilitas Swing Look and Feel :
Metal, Windows, Motif. Komponen Swing berdasar model-view, yaitu suatu cara
pengembangan komponen dengan pemisahan penyimpanan dan penanganan data dari
representasi visual data.
Bahasa pemrograman Java merupakan
salah satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi
basis data yang dibuat menggunakan MySQL.
C. ATURAN
DASAR JAVA
Aturan dasar dari penggunaan
sintaks bahasa Java:
Ø Java
bersifat case-sensitive.
Ø Secara
umum Java mengabaikan spasi kosong (karakter yang tidak muncul pada layar,
misalnya kosong, tab, baris baru).
Ø Brace
{} adalah simbol pengelompokkan dalam Java yang menandai awal dan akhir bagian
suatu program.
Ø Setiap
pernyataan Java diakhiri dengan simbol ; .
Ø Simbol
// membuat sebuah baris komentar, simbol /* ... */ membatasi bagian awal dan
akhir suatu komentar.
Ø Komentar
javadoc khusus digunakan untuk men-generate dokumentasi HTML untuk program Java,
dapat menciptakan komentar javadoc dengan memulai baris dengan /** dan
mengakhirinya dengan */ .
Ø Java
memiliki beberapa kata yang dicadangkan dan tidak bisa digunakan dalam ekspresi
biasa. Kata-kata tersebut disebut keyword.
Ø Kelas
pertama dalam sebuah program Java (disebut kelas pengendali) harus memiliki
nama yang sama dengan file dimana ia disimpan.
D. ISTILAH-ISTILAH
DALAM JAVA
1. Class
Ø Konsep
dari suatu objek yang terdiri dari atribut dan method.
Ø Class
dapat dikatakan sebagai suatu jenis. Misalnya sapi. Sapi adalah salah satu
class dari hewan.
2. Object
Ø Sesuatu
yang dijelaskan oleh class. Berbeda dengan class, objek dapat dirasakan dengan
panca indera kita dan kitapun dapat berinteraksi dengan objek.
Ø Misalnya,
ada sapi bernama Sob dan Bo, mereka itulah contoh objek dari class sapi.
3. Instantiate
Ø Disebut
juga inheritance.
Ø Sifat
atau method yang didefinisikan dalam superclass, dan secara otomatis diwariskan
dari semua subclasses. Jadi, kita hanya
menuliskan kode method sekali dan dapat digunakan oleh semua subclass.
4. Instance
variable
Ø Variabel
yang dideklarasikan didalam class tapi diluar dari method.
Ø Instance
variabel berhubungan dengan instance dari class, sehingga variabel ini hanya
bisa digunakan ketika ada instance dari class.
5. Instance
method
Ø Method
yang tersedia ketika instance dari suatu class telah dibuat.
Ø Ciri-ciri method :
a) Mengembalikan
nilai atau tidak.
b) Diterima
oleh parameter.
c) Method
yang telah selesai di eksekusi akan kembali ke method yang memanggilnya.
6. Class
static member variable
Ø Variabel
yang dapat diakses oleh semua method didalam class.
Ø Aturan
dasar dalam pendeklarasian :
a) Saat
pendeklarasian variabel, tuliskan kata static sebelum tipe variabelnya.
b) Menempatkan
deklarasi variabel dalam blok class, tetapi tidak dalam method yang berada
dalam class.
7. Konstruktor
Ø Inisialisasi
objek ketika dibuat sebagai persiapan yang diperlukan objek tersebut agar
berfungsi dengan baik.
Ø Syarat
:
a) Nama
konstruktor harus sama dengan nama class.
b) Tidak
menspesifikasikan tipe data, karena konstruktor berupa function tanpa parameter.
E. KARAKTERISTIK
JAVA
Ø Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip C++
namun sintaks pada Java telah banyak diperbaiki terutama menghilangakan
pengguanaan pointer yang rumit dan multipleinhritance. Java juga menggunakan
automatic memory allocation dan memory garbage collection.
Ø Berorientasi obyek (obyek oriented)
Java menggunakan pemrograman berorientasi obyek yang
membuat program dapat dibuat secara modular dan dapat dipergunakan kembali.
Pemrograman berorientasi obyek memodelkan dunia nyata ke dalam obyek dan
melakukan interaksi antar obyek-obyek tersebut.
Ø Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi
secara mudah dengan adanya liberries netwoking yang terintegrasi pada
Java.
Ø Interpreted
Program Java dijalankan menggunakan interpreted yaitu
Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah
dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang
berbeda-beda.
Ø Robust
Java menpunyai reliabilitas yang tinggi. Compiler pada
Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan
bahasa pemrograman lain. Java mempunyai runtime-Exception handing untuk
membantu mengatasi error pada pemrograman.
Ø 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.
Ø Architecture Neutral
Program Java merupakan platform independent. Program
cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda
dengan Java Virtual Machine.
Ø Portable
Source code maupun program Java dapat dengan mudah
dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.
Ø Performance
Performance pada Java sering dikatakan kurang tinggi.
Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain
seperti buatan inprise, Microsoft ataupun Symantec yang menggunakan Just In
Time Compilers (JIT).
Ø Multitheaded
Java mempunyai kemampuan untuk membuat suatu program
yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.
Ø 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
F.
MACAM-MACAM TIPE DATA PADA JAVA
Ada
2 macam tipe data pada java, yakni tipe
data referensi dan tipe data primitive. Dalam tipe data referensi terdapat
subuah kelebiahan yaitu pemrograman berorientasi objek adalah dapat
mendefinisikan tipe data baru yang merupakan objek dari class tertentu. Tipe
data ini digunakan untuk mereferensikan objek atau class tertentu, seperti
String. Sedangkan tipe data primitive terbagi menjadi delapan macam, yakni :
Ø Integer
(Bilangan Bulat )
Integer
merupakan tipe data numerik yang digunakan apabila tidak berurusan dengan
pecahan atau bilangan desimal. Tipe data numerik yang termasuk integer adalah
sebagai berikut :
1. Byte
Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di
memori.
2. Short
Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits
) di memori.
3. Int
Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes
( 32 bits ) di memori.
4. Long
Memiliki nilai dari -9223372036854775808 sampai 9223372036854775807 dan
menempati 8 bytes ( 64 bits ) dimemori.
Bilangan
integer biasanya menggunakan int, dan bukan byte, short maupun long. Bilangan
integer juga mengenal nilai positif dan negatif ( signed number ). Tipe data
byte dan short hanya digunakan pada aplikasi khusus yang memperhatikan
penggunaan memori. Sedangkan long jarang digunakan karena jarang memerlukan
bilangan sebesar kapasitas long.
Ø Floating Point ( Bilangan Pecahan )
Floating
Point digunakan untuk menangani bilangan desimal atau perhitungan yang lebih
detail dibanding integer. Ada dua macam floating point, yaitu :
1. Float
memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4 byte di memori.
2. Double
memiliki nilai -1.7x10308 sampai +1.7x10308
Semua
bilangan pecahan atau desimal dalam Java tanpa diakhiri huruf f akan dianggap
sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus
diakhiri dengan huruf F. Misalnya : 4.22
F atau 2.314f. Sedangkan untuk bilangan double, bisa menambah dengan huruf D,
karena secara default bilangan dengan koma atau pecahan atau desimal akan
dianggap sebagai double.
Ø Char
Char
adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan
tanda ‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan
merupakan tipe data primitif, tetapi sudah merupakan sebuah objek. Tipe char
mengikuti aturan unicode, sehingga dapat menggunakan kode /u kemudian diikuti
bilangan dari 0 sampai 65535, tetapi yang biasa digunakan adalah bilangan
heksadesimal dari 0000 sampai FFFF. Misalnya : ‘\u123’
Ø Boolean
Dalam
Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan
false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering
digunakan untuk menentukan alur program.
G.
KELEBIHAN DAN KEKURANGAN PEMROGRAMAN JAVA
Ø Kelebihan Pemrograman Java
1. Interaktif,
java dirancang untuk menciptakan program jaringan yang interaktif.
2. OOP
(Object Oriented Programming - Pemrogram Berorientasi Objek)
3. 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.
4. Sederhana
dan ampuh, java menyediakan sarana untuk membuat program (applet) yang berjalan
pada web browser. Programmer dapat menggunakan applet kecil yang aman, dinamik,
lintas platform, aktif dan siap dijalankan di jaringan.
5. Multiplatform.
Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform /sistem
operasi komputer, 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 Penyebanya adalah setiap sistem operasi
menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java)
untuk meninterpretasikan bytecode tersebut
6. 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.
7. 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).
8. Mendukung
koneksi ke database.
Ø Kekurangan
Pemrograman Java
1. Java
memiliki kecepatan yang kurang dari bahasa C ++.
2. Implementasi
J2ME tidak global. Misalnya, J2ME untuk Motorola dengan J2ME untuk Sony Ericson
tidak sama. Berbeda lagi J2ME untuk Nokia. Setiap produk selalu mempunyai modul
tersendiri yang dinilai aneh penerapannya dan harus di-compile dengan modul
yang berbeda-beda.Sehingga flatform satu dengan yang lainnya tidak kompatibel.
3. Java
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
4. 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 ).
5. Program
yang dibuat oleh bahasa ini lebih lambat disbanding program yang dibuat dengan
bahasa lain seperti C atau C++.
6. Java
merupakan bahasa pemrograman yang kompleks.
H. PERKEMBANGAN
JAVA DI INDONESIA
Platform
Java memang tumbuh sangat pesat dan banyak inovasi yang lahir di dunia Java,
khususnya yang lahir dari komunitas pecinta Java. beberapa tahun terakhir ini,
jumlah pengguna Java di Indonesia sudah meningkat secara signifikan. Beberapa
universitas juga sudah menjadikan Java sebagai bahasa pengantar utama dalam
perkuliahan.
Dari
sisi komunitas, diadakan pertemuan rutin yang dihadiri oleh para peminat Java,
baik yang expert maupun yang newbie. Dalam beberapa bulan terakhir, jumlah
pesertanya semakin banyak. Seringkali ruangan yang disediakan tidak dapat
menampung keseluruhan peserta. Teknologi terkini yang terkenal antara lain
adalah:
·
Aspect
·
Annotation
Aspect
digunakan untuk menambahkan fungsionalitas ke object yang sudah ada secara
transaparan. Misalnya otorisasi, siapa boleh memanggil method apa. Kalau kita
coding secara manual ke method, akan ada kode otorisasi di semua method,
sehingga banyak terjadi duplikasi. Istilah pemrogramannya, kode seperti ini
tidak ortogonal. Tambahkan kode untuk logging, buka-tutup resource, dan
lainnya, maka kode program kita akan menjadi sangat-sangat tidak efisien dan
sulit dimaintain. Dengan Aspect, kode yang tersebar dan terduplikasi ini dapat
dikumpulkan di satu tempat saja. Tanpa Aspect, kita dapat mencapai tujuan yang
sama dengan pattern Interceptor.
Annotation
adalah implementasi metaprogramming di Java. Metaprogramming artinya memprogram
program itu sendiri. Salah satu contoh penggunaan annotation adalah untuk
menerapkan Aspect pada kode. Jadi, di dalam kode program, kita menambahkan kode
annotation untuk mengkonfigurasi Aspect. Masih banyak lagi penggunaan
annotation yang meningkatkan produktivitas. Contoh lain adalah konfigurasi
mapping tabel database dengan business object.
Ada
2 macam tipe java, satu yaitu java dari vendor (di Indonesia kurang populer),
dan Java yang light, sehingga bisa buat sistem yang murah, setelah itu yang
teknologi diatas Java Enterprise, seperti framework JSF yang standard, integrasi
beberapa produk open source kelas dunia seperti Struts Shale dengan Webwork,
Injection yang lagi naik daun.
Java
sebenarnya adalah kumpulan spesifikasi yang free, dikeluarkan oleh Sun
Microsystems. Mulai dari bahasa pemrogramannya, berbagai aplikasi server, dan
juga spesifikasi komponen yang dapat dijalankan di server adalah berupa
spesifikasi/standar. Implementasi dari standar ini bisa dibuat oleh siapa saja.
Untuk saat ini, implementasi bahasa pemrograman yang umum digunakan antara lain
Sun Microsystems, IBM, dan BEA.
Dalam
implementasi ini gratis dan bebas digunakan untuk perorangan, tapi ada
batasan-batasan khusus dalam pendistribusiannya. Artinya, kita boleh pakai
dengan gratis atau bebas, tapi kita belum tentu boleh untuk memberikannya pada
orang lain. Selain itu, juga ada implementasi yang open source misalnya
Blackdown dan gcj. Di luar bahasa pemrogramannya sendiri, ada banyak kumpulan
framework, library, dan aplikasi yang open source. Salah satunya adalah project
Jakarta milik Apache Software Foundation. Project Jakarta ini menampung banyak
komponen siap pakai yang open source.
Ini
mungkin berbeda dengan bahasa pemrograman seperti yang kita kenal dulu,
misalnya VB atau Delphi. VB atau Delphi adalah sebuah produk, bukan
spesifikasi. Jadi, hanya ada satu implementasi dari VB, yaitu buatan Microsoft,
dan hanya ada satu implementasi Delphi, yaitu yang diterbitkan Borland.
Untuk
platform .NET, Microsoft juga mengambil pendekatan spesifikasi-implementasi
seperti Java. Spesifikasinya tersedia bagi umum, dan Microsoft menyediakan
implementasinya berupa Visual Studio .NET. Tapi masyarakat umum juga bisa
membuat implementasi sendiri, misalnya project Mono (http://www.mono-project.com).
Saat
ini, Java di Indonesia masih dalam taraf pertumbuhan, sehingga diharapkan
kebutuhan developer Java masih akan meningkat terus. Jadi, belajar Java masih
menjadi investasi yang berprospek cerah. Jangan ragu untuk belajar Java.
Walaupun terasa lebih sulit, Java membuat kita menjadi terbuka wawasannya
terhadap masalah-masalah enterprise, misalnya database connection pooling,
clustering, distributed transaction, dan lainnya. Banyak konsep penting yang
dapat kita peroleh dibandingkan cara cepat klik-and-drag.
I.
CONTOH PROGRAM JAVA
Salah
satu contoh program java yaitu Window Event di Java. Contoh program berikut ini
memberikan contoh bagaimana penanganan event di dalam window. Event akan aktif
saat window diubah ukurannnya, diclose, aktif, dan sebagainya. Listener yang
digunakan dalam contoh program ini adalah WindowListener, WindowFocusListener
dan WindowStateListener.
Berikut ini program lengkapnya:
001
|
/*
|
|
002
|
* WindowEventDemo.java is a 1.4 example that
requires
|
|
003
|
* no other files.
|
|
004
|
*/
|
|
005
|
||
006
|
import javax.swing.*;
|
|
007
|
import java.awt.*;
|
|
008
|
import java.awt.event.*;
|
|
009
|
||
010
|
public class WindowEventDemo extends JPanel
|
|
011
|
implements
WindowListener,
|
|
012
|
WindowFocusListener,
|
|
013
|
WindowStateListener
{
|
|
014
|
final static String newline =
"\n";
|
|
015
|
final static String space =
" ";
|
|
016
|
static JFrame frame;
|
|
017
|
JTextArea display;
|
|
018
|
||
019
|
public WindowEventDemo() {
|
|
020
|
super(new
BorderLayout());
|
|
021
|
display =
new JTextArea();
|
|
022
|
display.setEditable(false);
|
|
023
|
JScrollPane
scrollPane = new JScrollPane(display);
|
|
024
|
scrollPane.setPreferredSize(new
Dimension(500, 450));
|
|
025
|
add(scrollPane,
BorderLayout.CENTER);
|
|
026
|
||
027
|
frame.addWindowListener(this);
|
|
028
|
frame.addWindowFocusListener(this);
|
|
029
|
frame.addWindowStateListener(this);
|
|
030
|
||
031
|
checkWM();
|
|
032
|
}
|
|
033
|
||
034
|
//Some window managers don't
support all window states.
|
|
035
|
//For example, dtwm doesn't
support true maximization,
|
|
036
|
//but mimics it by resizing the
window to be the size
|
|
037
|
//of the screen. In this
case the window does not fire
|
|
038
|
//the MAXIMIZED_ constants on the
window's state listener.
|
|
039
|
//Microsoft Windows supports
MAXIMIZED_BOTH, but not
|
|
040
|
//MAXIMIZED_VERT or
MAXIMIZED_HORIZ.
|
|
041
|
public void checkWM() {
|
|
042
|
Toolkit tk
= frame.getToolkit();
|
|
043
|
if
(!(tk.isFrameStateSupported(Frame.ICONIFIED))) {
|
|
044
|
displayMessage(
|
|
045
|
"Your
window manager doesn't support ICONIFIED.");
|
|
046
|
}
|
|
047
|
if
(!(tk.isFrameStateSupported(Frame.MAXIMIZED_VERT))) {
|
|
048
|
displayMessage(
|
|
049
|
"Your
window manager doesn't support MAXIMIZED_VERT.");
|
|
050
|
}
|
|
051
|
if
(!(tk.isFrameStateSupported(Frame.MAXIMIZED_HORIZ))) {
|
|
052
|
displayMessage(
|
|
053
|
"Your
window manager doesn't support MAXIMIZED_HORIZ.");
|
|
054
|
}
|
|
055
|
if
(!(tk.isFrameStateSupported(Frame.MAXIMIZED_BOTH))) {
|
|
056
|
displayMessage(
|
|
057
|
"Your
window manager doesn't support MAXIMIZED_BOTH.");
|
|
058
|
} else {
|
|
059
|
displayMessage(
|
|
060
|
"Your
window manager supports MAXIMIZED_BOTH.");
|
|
061
|
}
|
|
062
|
}
|
|
063
|
||
064
|
public void
windowClosing(WindowEvent e) {
|
|
065
|
displayMessage("WindowListener
method called: windowClosing.");
|
|
066
|
||
067
|
//A pause
so user can see the message before
|
|
068
|
//the window
actually closes.
|
|
069
|
ActionListener
task = new ActionListener() {
|
|
070
|
boolean
alreadyDisposed = false;
|
|
071
|
public
void actionPerformed(ActionEvent e) {
|
|
072
|
if
(!alreadyDisposed) {
|
|
073
|
alreadyDisposed
= true;
|
|
074
|
frame.dispose();
|
|
075
|
}
else { //make sure the program exits
|
|
076
|
System.exit(0);
|
|
077
|
}
|
|
078
|
}
|
|
079
|
};
|
|
080
|
Timer
timer = new Timer(500, task); //fire every half second
|
|
081
|
timer.setInitialDelay(2000);
//first delay 2 seconds
|
|
082
|
timer.start();
|
|
083
|
}
|
|
084
|
||
085
|
public void
windowClosed(WindowEvent e) {
|
|
086
|
//This
will only be seen on standard output.
|
|
087
|
displayMessage("WindowListener
method called: windowClosed.");
|
|
088
|
}
|
|
089
|
||
090
|
public void
windowOpened(WindowEvent e) {
|
|
091
|
displayMessage("WindowListener
method called: windowOpened.");
|
|
092
|
}
|
|
093
|
||
094
|
public void
windowIconified(WindowEvent e) {
|
|
095
|
displayMessage("WindowListener
method called: windowIconified.");
|
|
096
|
}
|
|
097
|
||
098
|
public void
windowDeiconified(WindowEvent e) {
|
|
099
|
displayMessage("WindowListener
method called: windowDeiconified.");
|
|
100
|
}
|
|
101
|
||
102
|
public void
windowActivated(WindowEvent e) {
|
|
103
|
displayMessage("WindowListener
method called: windowActivated.");
|
|
104
|
}
|
|
105
|
||
106
|
public void windowDeactivated(WindowEvent
e) {
|
|
107
|
displayMessage("WindowListener
method called: windowDeactivated.");
|
|
108
|
}
|
|
109
|
||
110
|
public void
windowGainedFocus(WindowEvent e) {
|
|
111
|
displayMessage("WindowFocusListener
method called: windowGainedFocus.");
|
|
112
|
}
|
|
113
|
||
114
|
public void
windowLostFocus(WindowEvent e) {
|
|
115
|
displayMessage("WindowFocusListener
method called: windowLostFocus.");
|
|
116
|
}
|
|
117
|
||
118
|
public void
windowStateChanged(WindowEvent e) {
|
|
119
|
displayStateMessage(
|
|
120
|
"WindowStateListener
method called: windowStateChanged.", e);
|
|
121
|
}
|
|
122
|
||
123
|
void displayMessage(String msg) {
|
|
124
|
display.append(msg
+ newline);
|
|
125
|
System.out.println(msg);
|
|
126
|
}
|
|
127
|
||
128
|
void displayStateMessage(String
prefix, WindowEvent e) {
|
|
129
|
int state
= e.getNewState();
|
|
130
|
int
oldState = e.getOldState();
|
|
131
|
String msg
= prefix
|
|
132
|
+
newline + space
|
|
133
|
+
"New state: "
|
|
134
|
+
convertStateToString(state)
|
|
135
|
+
newline + space
|
|
136
|
+
"Old state: "
|
|
137
|
+
convertStateToString(oldState);
|
|
138
|
display.append(msg
+ newline);
|
|
139
|
System.out.println(msg);
|
|
140
|
}
|
|
141
|
||
142
|
String convertStateToString(int
state) {
|
|
143
|
if (state
== Frame.NORMAL) {
|
|
144
|
return
"NORMAL";
|
|
145
|
}
|
|
146
|
if ((state
& Frame.ICONIFIED) != 0) {
|
|
147
|
return
"ICONIFIED";
|
|
148
|
}
|
|
149
|
//MAXIMIZED_BOTH
is a concatenation of two bits, so
|
|
150
|
//we need
to test for an exact match.
|
|
151
|
if ((state
& Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH) {
|
|
152
|
return
"MAXIMIZED_BOTH";
|
|
153
|
}
|
|
154
|
if ((state
& Frame.MAXIMIZED_VERT) != 0) {
|
|
155
|
return
"MAXIMIZED_VERT";
|
|
156
|
}
|
|
157
|
if ((state
& Frame.MAXIMIZED_HORIZ) != 0) {
|
|
158
|
return
"MAXIMIZED_HORIZ";
|
|
159
|
}
|
|
160
|
return
"UNKNOWN";
|
|
161
|
}
|
|
162
|
||
163
|
/**
|
|
164
|
* Create the GUI and show
it. For thread safety,
|
|
165
|
* this method should be
invoked from the
|
|
166
|
* event-dispatching thread.
|
|
167
|
*/
|
|
168
|
private static void
createAndShowGUI() {
|
|
169
|
//Make
sure we have nice window decorations.
|
170
|
JFrame.setDefaultLookAndFeelDecorated(true);
|
171
|
||
172
|
//Create
and set up the window.
|
|
173
|
frame =
new JFrame("WindowEventDemo");
|
|
174
|
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
|
175
|
||
176
|
//Create
and set up the content pane.
|
|
177
|
JComponent
newContentPane = new WindowEventDemo();
|
|
178
|
newContentPane.setOpaque(true);
//content panes must be opaque
|
|
179
|
frame.setContentPane(newContentPane);
|
|
180
|
||
181
|
//Display
the window.
|
|
182
|
frame.pack();
|
|
183
|
frame.setVisible(true);
|
|
184
|
}
|
|
185
|
||
186
|
public static void
main(String[] args) {
|
|
187
|
//Schedule
a job for the event-dispatching thread:
|
|
188
|
//creating
and showing this application's GUI.
|
|
189
|
javax.swing.SwingUtilities.invokeLater(new Runnable() {
|
|
190
|
public void
run() {
|
|
191
|
createAndShowGUI();
|
|
192
|
}
|
|
193
|
});
|
|
194
|
}
|
|
195
|
}
|
BAB
III
PENUTUP
KESIMPULAN
Ø Java
merupakan sebuah bahasa pemrograman tingkat tinggi yang berorientasi pada objek
dan program java tersusun dari bagian yang disebut kelas.
Ø Java
sebenarnya adalah kumpulan spesifikasi yang free, dikeluarkan oleh Sun
Microsystems. Mulai dari bahasa pemrogramannya, berbagai aplikasi server, dan
juga spesifikasi komponen yang dapat dijalankan di server adalah berupa
spesifikasi/standar. Implementasi dari standar ini bisa dibuat oleh siapa saja.
Untuk saat ini, implementasi bahasa pemrograman yang umum digunakan antara lain
Sun Microsystems, IBM, dan BEA.
Ø Saat
ini, Java di Indonesia masih dalam taraf pertumbuhan, sehingga diharapkan
kebutuhan developer Java masih akan meningkat terus. Jadi, belajar Java masih
menjadi investasi yang berprospek cerah. Jangan ragu untuk belajar Java.
Walaupun terasa lebih sulit, Java membuat kita menjadi terbuka wawasannya
terhadap masalah-masalah enterprise, misalnya database connection pooling,
clustering, distributed transaction, dan lainnya. Banyak konsep penting yang
dapat kita peroleh dibandingkan cara cepat klik-and-drag.
DAFTAR PUSTAKA
Anonim. 2010. Istilah pada java. http://eziekim.wordpress.com. 6 Oktober
2013
Arum sari, Oktavia. 2012. Makalah tentang
java. http://octacuby.blogspot.com. 6
Oktober 2013
Canova, Agus. 2013. Macam-macam type data
pada java. http://domarku.blogspot.com . 6 Oktober 2013
Anonim. 2012. Contoh program java. http://contohprogram.info.
6 Oktober 2013
Setiawan, Andika. 2012. Pengertian Java. http://andikasetiawan300.blogspot.com. 6
Oktober 2013
Scomanechi. 2012. Sejarah perkembangan
bahasa java. http://shabrinac.blogspot.com.
6 Oktober 2013
Anonim. 2007. Perkembangan teknologi java
di Indonesia. http://oneesc.wordpress.com. 6 Oktober 2013
Vicky. 2012. Pengertian pemrograman java-
kelebihan dan kekurangan java. http://belajar-komputer-mu.com. 6 Oktober 2013
untuk file PPTnya silakan download di link http://www.4shared.com/file/h4yvzrWz/ppt_java.html
untuk file PPTnya silakan download di link http://www.4shared.com/file/h4yvzrWz/ppt_java.html
0 comments:
Post a Comment