Pages

Tuesday, October 29, 2013

Makalah "Java Untuk Pembelajaran"

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

0 comments:

Post a Comment