Sabtu, 25 Oktober 2014

SEJARAH JAVA DAN PERKEMBANGANNYA


      Java adalah bahasa pemrograman tingkat tinggi yang berorientasi 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. Beberapa keunggulan java yaitu java merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java mengambil arah (semantiks) yang berbeda dibanding C++. 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 aturanaturan 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. Java adalah bahasa pemograman tingkat tinggi yang berorientasi objek, diedarkan oleh Sun Microsystem1 pada awal tahun 1996.

       Sejarah awal Java berawal di tahun 1991 ketika satu group insinyur-insinyur Sun, yang dipimpin oleh Petrick Naughton dan James Gosling, ingin mendesain sebuah bahasa pemograman komputer yang berukuran kecil yang dapat digunakan untuk peralatan elektronika konsumen sepertu switchboxes TV kabel. Dikarenakan peralatan-peralatan ini menggunakan konsumsi daya dan memory yang rendah, maka bahasa pemograman tersebut harus berukuran sangat kecil. Juga karena setiap vendor menggunakan CPUs (Central Processing Unit) yang berbeda, maka bahasa tersebut harus bersifat multiplatfrom, tidak terikat hanya pada satu arsitektur (Architecture Neutral). Proyek ini diberi nama Green Project. Karena harus bersifat Architecture Neutral, maka Green Project menggunakan Virtual Machine (atau dikenal dengan Java Virtual Machine) yang berasal dari model implementasi bahasa Pascal di awal-awal perkembangan PC. Dikarenakan insinyur-insinyur Sun berlatar belakang Unix2, jadi mereka mendasari bahasa pemograman mereka dengan C++ dari pada Pascal. Secara khusus mereka membuat bahasa mereka berorientasi obyek (object oriented), bukan berorientasi prosedur (procedural oriented) seperti model bahasa Pascal. Bahasa pemograman tersebut dinamakan Oak, kemudian diubah menjadi Java. Karena pada awalnya ditujuan untuk pemograman device kecil, Java memiliki karakteristik berukuran kecil, efisien, dan portable untuk berbagai hardware. Perkembangannya sempat terhenti karena tidak ada yang tertarik dan tidak memiliki pasar seperti yang diramalkan. Ketika teknologi internet berkembang, Java diarahkan untuk menjadi bahasa pemograman internet karena fitur-fitur Java seperti Architecture Neutral, real time, reliable dan secure sangat sesuai untuk pengembangan internet. Sebuah perusahaan berasal dari California yang membuat software dan hardware computer Didirikan tahun 1982 oleh Andeas Bechtolsheim, Vinod Khosla dan Scott Mc Neally. Perusahaan ini lebih terkenal karena pengembangan computer untuk system operasi UNIX. Sistim operasi yang dikembangkan oleh Bell Labs pada awal tahun 1970. 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 sebagaiWrite Once, Run Anywhere (WORA). Beberapa aturan dasar yang perlu diperhatikan sebelum mulai menulis program Java: Setiap memulai untuk menulis program Java harus menggunakan keyword class. Penggunaan tanda kurung (seperti { }, ( ), [ ]) harus selalu berpasangan.Penggunaan tanda – tanda kurung tersebut memiliki peran masing – masing yang akan saudara pelajari nantinya. Java bersifat case sensitif, artinya setiap huruf besar dan huruf kecil akan dibedakan oleh Java. Penggunaan tanda ; (titik koma) untuk mengakhiri setiap perintah, pendeklarasian serta hal – hal lain. Setiap program yang ditulis harus disimpan dengan nama ......java ( ..... diisi sesuai dengan nama class). Dan setelah di-compile akan menghasilkan .....class. Contoh: file dkp.java setelah di-compile akan menghasilkan dkp.class.

       Setiap program .java minimal menghasilkan saru file .class. Java Development Kit tidak menyertakan sebuah tool untuk menuliskan program Java kita. Oleh karena itu, untuk menuliskan program Kita harus menggunakan editing tool yang ada seperti Notepad, Textpad, JCreator dsb. Atau kita dapat menggunakan IDE yang lebih canggih seperti JBuilder, Eclipse, BlueJ, dsb tergantung pada kebutuhan kita. Untuk yang menggunakan Notepad terlebih dahulu melakukan setting path pada komputer saudara karena akan melakukan proses compile dan execute melalui . command promt. Untuk hal ini tanyakan kepada asisten yang bersangkutan Sedangkan untuk yang lain hanya perlu melakukan setting pada program editing-nya dan langsung dapat melakukan compile dan execute hanya dengan icon – icon ataushortcut key pada program tersebut. Menulis program pertama: Menampilkan tulisan di console Program : class HelloWorld { public static void main(String [] args) { System.out.println(―Hello World!!!‖); } } Simpan file dengan nama HelloWorld.java. Output berupa tulisan yang ditampilkan pada console / command promt. Memberi input ke dalam program Pemberian input yang paling sederhana dan gampang di lingkungan Java dengan menggunakan swing GUI Java, JOptionPane. Program: import javax.swing.JOptionPane; class Input { public static void main (String args[]) { String s = JOptionPane.showInputDialog ("Nama : "); System.out.println ("Selamat belajar Java saudara " + s); } } Simpan file dengan nama Input.java.

       Hasil eksekusinya akan meminta masukan dengan menggunakan kotak dialog, dan kemudian menampilkan tulisan di konsole. Kedua contoh program diatas akan sangat penting untuk kelanjutan praktikum ini ke . depannya, silahkan berlatih lebih sering Pembahasan Program class HelloWorld { class Input { Dengan ini dideklarasikan kelas baru dengan nama HelloWorld dan Input. Dan tanda { untuk memulai pengetikan kode program. Method main Setiap program Java harus mengandung method main dengan format sebagai berikut: public static void main (String args[]) public menunjukkan ketentuan akses, bahwa semua kelas dapat mengakses data yang ada dalam ketentuan akses public. static membuat method dapat dipanggil tanpa menjadi instans dari suatu class. Pada main butuh karena main bukan instans dari suatu class tapi merupakan yang dipanggil oleh interpreter. void mengindikasikan bahwa method main tidak mengembalikan nilai apa pun. String args mendeklarasikan parameter yang diberi nama args, yang merupakan instans class String. Tanda [] menunjukan tipe array System.out.println(―Hello World!!!‖); System.out.println berfungsi untuk membuat output ke layar. (―Hello World!!!‖) menunjukkan bahwa output yang akan ditampilkan adalah kata Hello World!!! Tanda ; untuk mengakhiri sebuah perintah. import javax.swing.JOptionPane; import keyword untuk memanggil packet atau Java Library javax.swing.JOptionPane merupakan Java library yang mengandung method yang ada di kelas JOptionPane yang akan digunakan nantinya. Tanda ; untuk mengakhiri sebuah perintah. String s = JOptionPane.showInputDialog ("Nama : "); String s mendeklarasikan variabel s yang bertipe String. Tanda = berarti memberikan nilai variabel s sesuai dengan sisi sebelah kanan JOptionPane.showInputDialog ("Nama : ") merupakan method yang ada di library JOptionPane yang berunguna untuk memasukkan input dan akan mengembalikan nilai bertipe String yang akan disimpan pada variabel s. Tanda ; untuk mengakhiri sebuah perintah. System.out.println ("Selamat belajar Java saudara " + s); System.out.println berfungsi untuk membuat output ke layar. Menunjukkan bahwa output yang akan ditampilkan. Berbeda dengan yang tadi, selain kalimat Selamat belajar Java saudara akan ditambah lagi dengan nilai yang telah disimpan pada variabel s dengan menggunakan operator String + (operator penggabungan String). Tanda ; untuk mengakhiri sebuah perintah. Tanda } untuk menutup pendeklarasian dari method dan class. Menggunakan Java Library (Java API): Java mempunyai library yang merupakan kumpulan dari class yang dapat langdsung digunakan, tanpa harus dideklarasi secara eksplisit terlebih dahulu. Sebelum menggunakannya, terlebih dahulu harus di-import ke kode program kita dengan menggunakan keyword import.

Contoh: import java.util.*; import javax.swing.JOptionPane; Tanda * menunjukkan seluruh class yang terkandung di dalamnya. Ada ratusan class di Java API, untuk lebih detailnya dapat dilihat pada dokumentasi yang disediakan di situs Java. Atau dapat melihat pada file src.zip yang ada di folder instalasi Java.

Secara default (tanpa meng-import apa – apa) di kode program yang kita tulis terlah terintergrasi library java.lang.*. Penggunaan ―static‖ : static memunyau arti bahwa suatu method tidak mempunyai hubungan dengan objek tertentu yang merupakan instance dari suatu class.

Jadi suatu method dapat dipanggil atau suatu data static dapat diakses tanpa menghubungkannya dengan suatu objek (tanpa membuat objek) static juga mempunyai arti bahwa hal yand dirujuknya (method, objek dan reference) adalah statis, tetap, dan hanya satu itu saja. Hal–hal yang static hanya dapat mengakses hal-hal yang static juga. Jadi kita tidak dapat memanggil non-static member dari dalam static member (dalam arti memanggil secara langsung).

Tapi untuk hal kebalikannya dapat dilakukan. Komentar Komentar merupakan bagian program yang tidak tereksekusi.

Karena itu berapa banyak pun kita membuat komentar pada program kita tidak akan memperbesar ukuran kode program tersebut.

Komentar berguna untuk menjelaskan program kita agar lebih mudah dimengerti oleh orang yang akan membaca source code program kita. 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. Selain itu keuntungan menggunakan bahasa pemrograman Java antara lain memori pada Java secara otomatis dilengkapi garbage collector yang berfungsi mendealokasi memori yang tidak diperlukan. Tidak ada lagi upaya yang dilakukan pemrogram untuk melakukan dispose. Kita tidak lagi dibebani urusan korupsi memori. Java menerapkan array sebenarnya, menghilangkan keperluan aritmatika pointer yang berbahaya dan mudah menjadi salah. Menghilangkan pewarisan jamak (multiple inheritance) diganti fasilitas antarmuka. Dan mudah dijalankan diberbagai platform. 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 komponen heavyweight (kelas berat) dan Swing, sedangkan AWT merupakan Swing lightweight (kelas ringan).



       Swing memiliki lebih banyak komponen. Fasilitas SwingLook 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. Sejarah Java Dimulai pada tahun 1991 dibentuknya suatu tim yang diberi nama green Tim ini dipimpin oleh Patrick Naughton dan James Gosling (Sekelompok insinyur Sun ). Awalnya mereka ingin membuat suatu bahasa komputer yang dapat digunakan oleh TV kabel ( Cable TV Box) yang memiliki memori kecil dan setiap perusahaan memiliki tipe yang berbeda. Untuk mengaplikasikan hal tersebut mereka menggunakan hal yang pernah dicoba oleh bahasa pascal. Sebelumnya Niclaus Wirth telah membuat sebuah bahasa yang portable yang akan digunakan dalam mesin bayangan selanjutnya ini disebut sebagai Virtual Mesin namun saat itu belum diumumkan. Akhirnya tim green mengunakan ide ini akhirnya mereka menciptakan Java Virtual Mesin. Vitual mesin inilah yang membuat java dapat dijalankan diberbagai platform.

        Pada tahun 1992 tim green membuat produknya yang diberi nama *7 (Star Seven ) Namun produk ini gagal dipasaran. Setelah itu dibuat produk yang baru. Inilah java, pada awalnya bahasa pemrograman yang dibuat tersebut diberi nama ―oak ― (Kemungkinan nama ini diambil dari nama pohon yang ada didepan jendela James Gosling). Namun setelah diperiksa ternyata nama oak sudah pernah digunakan. Maka lahirlah nama ― Java ―Pada tahun 1993 sampai pertengahan 1994 tim green yang mempunyai nama baru First person. Inc hanya menghabiskan waktu dengan memperhatikan penjualan dari produknya. Ternyata tidak satupun orang ditemukan. Akhirnya pada tahun 1994 First Person dibubarkan. Pada tahun itu Web berkembang sangat pesat saat itu browser yang banyak digunakan adalah Mosaic suatu broser yang gratis. Dalam suatu wawancara pada pertengahan tahun 94 James Gosling mengatakan ―We could build a real cool browser. It was one of the few things in the client/serve mainstream that needed some of the weird things we’d done: architecture neutral, real-time,reliable, secure—issues that weren’t terribly important in the workstation world. So we built a browser.‖ Akhirnya dibuatlah suatu browser oleh Patrick Naughton dan Jonathan Payne. Browser itu diberi nama Hot Java. Browser ini dibuat dengan menggunakan bahasa java untuk menunjukkan kemampuan dari java. Yang tidak kalah hebatnya mereka juga membuat teknologi yang disebut Aplet sehingga browser dapat menjalankan kode program didalam browser. Inilah bukti dari teknologi itu yang ditunjukkan java pada tanggal 25 mei 1995.

Sejak saat itu browser java memberikan lisensinya kepada browser lain untuk bisa menjalankan Applet dan pada tahun 1996 diberikan pada Internet Explorer. Akhirnya pada tahun 1996 dikeluarkan versi pertama dari java dengan mengeluarkan java 1.02 Pada tahun 1998 dikeluarkan java 1.2 dan java mulai mengeluarkan slogannya ―Write once, Run anywhre ― Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992.

Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, dan James Gosling, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang. Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oakpertama, 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 dipakai hanya di kalangan akademisi dan militer.

Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

       Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995. Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape. Edisi Java Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya: java.lang: Peruntukan kelas elemen-elemen dasar. java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI) java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan :

        internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut : 1. Java 2 Standard Edition ( J2SE ) J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object-oriented programming. Pada J2SE, terdiri dari dua buah produk yang dikeluarkan untuk membantu dalam membuat aplikasi tanpa tergantung dari platform yang digunakan, yaitu : Java SE Runtime Environment (JRE) Java Runtime Environtment (JRE) menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi yang ditulis dengan bahasa pemrograman Java.

Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian JRE, yaitu :

       Java Plug-in, yang memungkinkan menjalankan appletdi browser popular dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet dan aplikasi. Java Development Kit (JDK) Java Development Kit (JDK) merupakan perangkat lunak yang digunakan untuk manajemen dan membangun berbagai aplikasi Java. JDK merupakan superset dari JRE, berisikan segala susuatu yang ada di JRE ditambahkancompiler dan debugger yang diperlukan untuk membangun aplikasi. Dasar-dasar J2SE, meliputi pengenalan J2SE dan komponen pada J2SE.

Berikut adalah penjelasannya:

        J2SE atau Java 2 Standard Edition merupakan bahasa pemrograman Java untuk aplikasi desktop yang merupakan object- oriented programming. Pada J2SE, terdiri dari dua buah produk yang dikeluarkan untuk membantu dalam membuat aplikasi tanpa tergantung dari platform yang digunakan, yaitu:

Java Runtime Environment (JRE) menyediakan perpustakaan, Java Virtual Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi yang ditulis dengan bahasa pemrograman Java. Selain itu, terdapat dua buah kunci teknologi yang merupakan bagian dari JRE, yaitu: d Plug-in, yang memungkinkan menjalankan applet di browser populer dan Java Web Start, yang menyebarkan aplikasi mandiri melalui jaringan. JRE tidak mengandung utilitas seperti compiler atau debugger untuk mengembangkan applet Dan aplikasi.



        Java 2 Enterprise dition ( J2EE ) J2EE adalah singkatan dari Java 2 Enterprise Edition, dan sejak versi 5 berubah menjadi Java EE atau cukup Java Enterprise Edition. Java EE adalah sebuah spesifikasi, bukan berupa product berwujud nyata. Ada banyak vendor software atau komunitas opensource membuat software berupa application server yang mengikuti standard Java EE sehingga disebut Java EE compliant application server. J2EE (Java 2 Enterprise Edition)adalah kelompok dari beberapa API (Application Programming Interface) dari Java dan teknologi selain Java. J2EE dirancang untuk membuat aplikasi yang rumit. J2EE sering dianggap sebagai middle-ware atau teknologi yang berjalan di server, namun sebenarnya J2EE tidak hanya terbatas untuk itu. Faktanya J2EE juga mencakup teknologi yang dapat digunakan disemua lapisan dari sebuah sistem informasi.



        J2EE adalah teknologi yang dikembangkan (sekarang) oleh Oracle untuk pengembangan aplikasi skala enterprise. J2EE adalah sub dari bahasa Java. Arti dari aplikasi enterprise adalah aplikasi yang mempunyai karakteristik. Application server ini memungkinkan kita untuk membuat aplikasi berskala enterprise dengan lebih mudah karena application server sudah menyediakan berbagai fasilitas yang siap untuk digunakan sebagai pendukung aplikasi kita. Full Java EE compliant application server menyediakan berbagai service seperti web container, messaging, web service, mail, directory service, database connectivity, distributed transaction, remoting, persistence, dan lain lain. Contoh application server adalah Glassfish, Oracle AS, JBoss, IBM Websphere, JRun, JOnAS, dll. Apache



        Tomcat adalah salah satu webserver/webcontainer untuk aplikasi web Java yang cukup terkenal, tapi bukan termasuk Java EE application server karena tidak menyediakan semua service yang ada di spesifikasi Java EE. Jika kita membuka website sun.java.com, dan menuju halaman tentang Java EE, maka kita bisa mendownload salah satu produk implementasi Java EE yang dibuat di bawah kendali Sun Microsystem, yaitu Sun Java System Application Server, yang sebenarnya adalah nama lain dari Glassfish application server. Implementasi J2EE menyediakan kelas dasar dan API dari Java yang mendukung pengembangan dan rutin standard untuk aplikasi client maupun server, termasuk aplikasi yang berjalan di web browser. untuk aplikasi berbasis web, aplikasi sistem tersebar dengan beraneka ragam klien dengan kompleksitas yang tinggi.



       Java 2 Micro Edition ( J2ME ) J2ME adalah lingkungan pengembangan yang dirancang untuk meletakan perangkat lunak Java pada barang elektronik beserta perangkat pendukungnya. Pada J2ME, jika perangkat lunak berfungsi baik pada sebuah perangkat, maka belum tentu juga berfungsi baik pada perangkat yang lainnya. J2ME membawa Java ke dunia informasi, komunikasi, dan perangkat komputasi selain perangkat komputer desktop yang biasanya lebih kecil dibandingkan perangkat komputer desktop. J2ME biasa digunakan pada telepon selular, pager, personal digital assistants (PDA) dan sejenisnya. J2ME adalah bagian dari J2SE, karena itu tidak semua librabry yang ada pada J2SE dapat digunakan pada J2ME. Tetapi J2ME mempunyai beberapa library khusus yang tidak dimiliki J2SE. J2ME yaitu bagian dari J2SE yang ditujukan untuk implementasi pada perangkat genggam yang tidak mampu mendukung secara penuh imlementasi menggunakan J2SE dan dirancang untuk dapat menjalankan program Java pada perangkat-perangkat seperti hand phone, PDA (Personal Digital Assistant), Palm, PocketPC, Smart-Phone hingga PDA-Phone yang tidak mempunyai karakteristik yang berbeda dengan komputer biasa misalnya kecilnya jumlah memory pada perangkat genggam.



Sebenernya pada dasarnya J2ME itu terdiri dari 3 bagian yaitu konfigurasi, profil dan paket-paket opsional, berikut penjelasannya.


       Konfigurasi yaitu bagian yang berisi JVM dan beberapa library kelas lainnya. Ada dua jenis konfigurasi yaitu CDC (Connected Device Configuration) dan CLDC (Connected Limited Device Configuration).


       Profile yaitu bagian perluasan dari konfigurasi artinya selain sekumpulan kelas yang ada di konfigurasi, terdapat juga kelas lain yang lebih spesifik yang didefinisikan di dalam profil. Oleh karena itu profil akan membantu secara fungsional dengan menyediakan kelas-kelas yang tidak terdapat di konfigurasi. profile yang paling populer dari Sun adalah sering disebut MIDP (Mobile Information Device Profile).


       Paket-paket opsional yaitu paket tambahan yang dibutuhkan oleh aplikasi sehingga pada saat proses deployment paket-paket tersebut perlu didistribusikan sebagai bagian dari aplikasi yang bersangkutan. Perlu diingat bahwa paket-paket opsional tersebut bukan merupakan paket yang dibuat oleh perusahaan alat yang digunakan. Masing – masing edisi berisi Java 2 Software Development Kit (J2SDK) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi. Kelebihan Java di bandingkan dengan C++ Pembuat program java telah merancang java untuk menghilangkan pengalokasian dan dealokasi memori secara manual, karena java memiliki Garbage Collection Diperkenalkannya deklarasi array yang sebenarnya dan menghilangkan aritmatika pointer. Hal ini yang sering menyebabkan memori overwrite.



Dihilangkannya multiple inheritance, mereka menggantinya dengan interface. Kelebihan Pemrograman Java Java memiliki beberapa kelebihan dibandingkan dengan bahasa pemrograman lainnya. Adapun kelebihan tersebut di antaranya:


       1. Sederhana dan Ampuh Java dirancang untuk mudah dipelajari, terutama bagi programmer yang telah mengenal C/C++ akan mudah sekali untuk berpindah ke Java. Pemakai dapat belajar membuat program dengan Java secara cepat jika telah memahami konsep dasar pemrograman berorientasi objek. Java member programmer kemampuan untuk menuangkan semua ide, karena bahasa pemrograman ini bukan merupakan scripting language (bahasa naskah) yang menghilangkan kemampuan programmer untuk berinovasi, tetapi dengan cara berorientasi objek yang mudah dan jelas.


1. Aman Java dirancang sebagai bahasa pemrograman yang handal dan aman. Aplikasi-aplikasi yang dibangun dengan bahasa Java sangat handal dengan manajemen memori yang bagus. Aplikasi Java juga dikenal sangat secure, yaitu kasus-kasus seperti buffer everflow yang umumnya menjadi lubang keamanan aplikasi-aplikasi berbasis C/C++ tidak terjadi di Java, karena pengaturan keamanannya yang bagus.


2. Berorientasi-Objek Java merupakan bahasa pemrograman berorientasi objek dan bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali tida kompetibel dengan semuanya. Java memiliki keseimbangan, menyediakan mekanisme peng-class-an sederhana, dengan model antar muka dinamik yang intuitif hanya jika diperlukan.


3. Kokoh Kesalahan sering terjadi pada saat kompilasi karena Java merupakan bahasa pemrograman yang sensitif dalam hal deklarasi dan tipe data. Oleh karena hal tersebut, Java memiliki batasan agar dapat menemukan kesalahan lebih cepat 18saat mengembangkan program yaitu dengan langsung memeriksa program saat ditulis, dan sekali lagi ketika program di jalankan. Hal ini akan lebih menghemat waktu jika dibandingkan dengan keharusan menjalankan program terlebih dahulu dan memeriksa semua bagian program untuk melihat ketidakcocokan dinamis selama program berjalan.


4. Interaktif Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah digunakan memungkinkan programmer untuk memikirkan pembuatan perilaku khusus, tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian.


5. Netral Terhadap Berbagai Arsitektur Java memiliki kemampuan yang memungkinkan program melakukan beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses yang akan terjadi selanjutnya. Jalinan program-program digunakan memungkinkan programmer Java yang mudah untuk memikirkan pembuatan perilaku khusus, tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman global yang mengatur perulangan kejadian.


6. Terinterpretasi dan Berkinerja-Tinggi Java dirancang untuk tetap berkinerja baik pada CPU yang tidak terlalu kuat. Walaupun Java merupakan bahasa terinterpretasi, kode-kode Java telah dirancang dengan hati-hati sehingga mudah diterjemahkan ke dalam bahasa asli suatu mesin untuk menghasilkan kinerja yang tinggi. Java dilengkapi keajaiban lintas-platform yang luar biasa dengan kompilasi ke dalam representasi langsung yang disebut kode-byte Java (Java byte-code), yang dapat diterjemahkan oleh sistem manapun yang memilki program Java didalamnya. Sebagai sebuah platform, Java terdiri atas dua bagian utama, yakni : a. Java virtual machine (jvm) b. Java application programming interface (Java api)


7. Multiplatform Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/ sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin/bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk menginterpretasikan bytecode tersebut.


8. Perpustakaan Kelas yang Lengkap Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman Java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.


9. Bergaya C++ Dalam bahasa pemrograman manapun selalu ada fitur komentar. Java sendiri memiliki sintaks seperti bahasa pemrograman C++, dengan tambahan yang sangat istimewa yaitu komentar yang nantinya digunakan untuk menciptakan dokumentasi secara otomatis oleh suatu aplikasi yang disebut javadoc, sehingga menarik banyak pemrogram C++ untuk pindah ke Java.


       Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.


10. 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).



       Serupa dengan C, java mengalokasikan operator baru untuk mengalokasikan memori pada heap untuk objek baru. Kekurangan Pemrograman Java Adapun kekurangan pemrograman Java, yaitu:


1. Tulis sekali, perbaiki di mana saja Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.


2. 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.


3. Penggunaan memori yang banyak penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.



        Tahapan Kompilasi Java Adapun tahapan kompilasi Java sebagai berikut:


1. Tulis/Ubah Pemrogram menulis program dan menyimpannya di media dalam bentuk berkas '.Java'.

2. Kompilasi Pengkompilasi membentuk bytecodes dari program menjadi bentuk berkas '.class'.


3. Muat Pemuat kelas memuat bytecodes ke memori.


4. Verifikasi Peng-verifikasi memastikan bytecodes tidak mengganggu sistem keamanan Java.


5. Jalankan Penerjemah menerjemahkan bytecodes ke bahasa mesin dan memilih mana yang tidak bisa di pakai.



       Java Swing merupakan library Java yang digunakan untuk menciptakan Graphic User Interface (GUI) yang berbasis cross platform atau OS independent. User interface yang dibangun dengan Java swing dapat dijalankan pada sistem operasi apa saja yang mendukung Java dengan tampilan yang relatif sama, bahkandapat menyerupai user interface Windows XP, Mac OS atau Linux. Sejarah Swing Internet Foundation Classes (IFC) merupakan library grafik untuk Java yang dikeluarkan pertama kali oleh Netscape Comminication Corporation pada 16 Desember 1996.



        Pada 2 April 1997, Sun Microsystems dan Netscape Comminication Corporation menggabungkan IFC dengan teknologi lain untuk membangun Java Foundation Classes. Swing diperkenalkan sebagai mekanime yang dapat dilihat dan dirasakan tiap -tiap komponen dalam sebuah aplikasi tanpa membuat perubahan pada substansi dalam pengkodean dari aplikasi. Perkenalan tersebut didukung dengan pluggabke kook and feel yang membuat komponen swing dapat digunakan dalam berbagai platform. Pada dasarnya, swing merupakan library yang terpisah. Namun, sejak Java Standard Edition 1.2 dipublikasikan, swing sudah termasuk ke dalam bagian J2SE. Arsitektur Swing Swing merupakan platform-independent, Model View Controller framework untuk Java yang mengikuti model pemrograman tunggal.



        Arsitektur dari swing terdiri dari:


1. Platform Independence Swing dapat digunakan diberbagai platform seperti Windows OS, Mac OS, dan Linux karena ekspresi Java dan implementasinya hamper sama untuk berbagai platform.


2. Extensible Swing merupakan arsitektur terpartisi, yang memungkinkan untuk penggunaan implementasi berbagai framework interface tertentu. Pengguna dapat menyediakan kustom implementasi sendiri dari komponen untuk menggantikan implementasi default. Secara umum, pengguna Swing dapat menambahkan framework dengan memperluas framework y ang sudah ada dan menyediakan implementasi alternatif komponen inti. Swing juga merupakan framework berbasis komponen, dimana komponen Swing adalah komponen Java Beans yang kompatibel dengan spesifikasi Java Beans Component Architecture


 3. Customizable Atas dasar model program rendering dari framework Swing, kendali atas rincian rendering komponen dimungkinkan dalam Swing. Representasi visual dari komponen Swing pada umumnya berupa satu set standar elemen. Pengguna program biasanya menyesuaikan komponen Swing standar dengan menetapkan beberapa elemen untuk membuat visualisasi kontrol GUI yang unik.


4. Configurable Swing bergantung pada mekanisme runtime dan pola komposisi tidak langsung untuk merespon perubahan pengaturan secara run-time. Contohnya aplikasi berbasis Swing dapat mengubah tampilan pada saat run-time, dimana pengguna dapat memberikan tampilan mereka sendiri dan diimplementasikan tanpa perubahan apapun pada kode program.


5. Loosely-Coupled and MVC Pustaka Swing memanfaatkan pola model/view/controller(mvc) desain perangkat lunak yang secara konseptual pasangan data yang dilihat dari kontrol interface pengguna melalui yang dilihat. Karena hal tersebut, komponen Swing dikaitkan model dan programmer dapat menggunakan berbagai macam implementasi atau menyediakan sendiri implementasi tersebut. Penggunaan framework Swing tidak memerlukan penciptaan model, karena telah tersedia satu set implementasi yang transparan secara default, yang terkait dengan kelas Jcomponent di perpustakaan Swing. Komponen yang kompleks mungkin memerlukan implementasi model disekitar data spesifik aplikasi seperti: tabel dan pohon.



       Komponen Dasar Swing Secara umum, komponen swing terdiri dari lima bagian yang sering digunakan, yaitu:


1. Top-level Container Merupakan Toplevel Container container dasar dimana komponen lainnya diletakkan. ini terdiri dari Frame, Dialog, dan Applet yang diimplementasikan dalam class JFrame, JDialog, dan JApplet.


2. Intermediate Container Merupakan komponen perantara untuk peletakkan komponen lainnya, yaitu class JPanel.


3. Atomic Container Merupakan komponen yang memiliki fungsi spesifik dan biasanya user berinteraksi langsung dengan jenis komponen ini. Komponen ini terdiri dari: JButton, JTextField, dan JTextArea.


4. Layout Manager Layout Manager berfungsi untuk mengatur posisi dari komponen yang diletakkan pada container. Terdapat lima macam layout, yaitu: class BorderLayout, Boxlayout, FlowLayout, GridBagLayout, dan GridLayout.


5. Event Handling Event Handling berfungsi untuk menangani event yang dilakukan user, misalnya menekan tombol, mengklik mouse, dan lain sebagainya.