SELAMAT DATANG DIBLOG ANE YA, SUTOPO DWINANTO

Sabtu, 08 Oktober 2011

Tugas 1

ARTIKEL PEMOGRAMAN JAVA

 

SEJARAH JAVA

           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 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 pemeritaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.
        Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.
        Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja “bapak java”, James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak 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.



Sekilas Java

Tentunya Anda tidak asing lagi dengan nama Java, sebuah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems. Di bagian awal ini, kita akan mengulas tentang sekilas Java yang ditinjau dari aspek lingkungan pengembangan dan produk. Diharapkan ulasan ini nantinya dapat memperjelas terminologi ataupun pernyataan-pernyataan yang kerap kali membingungkan, terutama bagi yang baru mengenal Java.
1. Lingkungan Pengembangan
       
        Dalam mendiskusikan Java, kiranya penting sekali untuk membedakan antara bahasa pemrograman Java, Java Virtual Machine,dan platform Java. Bahasa pemrograman Java adalah bahasa yang digunakan untuk menghasilkan aplikasi-aplikasi Java. Pada umumnya, bahasa pemrograman hanya mendefinisikan sintaks dan perilaku bahasa. Pada saat program Java dikompilasi, ia akan dikonversi ke bentuk
bytecode, yang merupakan bahasa mesin yang portable. Selanjutnya, bytecode tersebut dijalankan di Java Virtual Machine (atau disebut Java VM atau JVM). Meskipun JVM dapat diimplementasikan langsung di perangkat keras, namun biasanya diimplementasikan dalam bentuk program perangkat lunak yang mengemulasi mesin (komputer) dan digunakan untuk menginterpretasi bytecode. Platform dapat didefinisikan sebagai perangkat lunak pendukung untuk aktivitas-aktivitas tertentu. Platform Java sendiri pada prinsipnya berbeda dengan bahasa Java atau JVM. Platform Java adalah himpunan kelas-kelas Java yang sudah didefinisikan sebelumnya dan eksis sejak instalasi Java. Platform Java juga mengacu pada lingkungan runtime atau API (Application Programming Interface) Java.

• Edisi Java
    Guna mencakup lingkungan-lingkungan aplikasi yang berbeda, Sun mendefinisikan 3 (tiga) edisi Java,yaitu :
       • J2ME (Java 2 Micro Edition)
            Edisi ini ditujukan bagi lingkungan dengan sumber daya terbatas, seperti smartcard, ponsel, dan PDA.
       • J2SE (Java 2 Standard Edition)
           Edisi ini ditujukan bagi lingkungan workstation, seperti pembuatan aplikasi-aplikasi dekstop.
       • J2EE (Java 2 Enterprise Edition)
           Edisi ini ditujukan bagi lingkungan Internet atau aplikasi terdistribusi dalam skala besar.

2. Perbedaan setiap edisi meliputi fitur-fitur bahasa yang didukung dan API yang tersedia. Berdasarkan tingkatannya, edisi yang lebih tinggi mampu mengemulasikan edisi yang lebih rendah. Adapun urutan edisi dari yang tertinggi ke rendah adalah J2EE, J2SE, dan J2ME.

 • Versi Java
         Ada hal yang menarik dan perlu kita cermati mengenai versi-versi Java yang telah dirilis. Sun menggunakan dua jenis versi untuk mengidentifikasikan rilis Java, yaitu versi produk dan versi developer.
Seperti kita ketahui, versi terbaru saat ini adalah versi 6 (versi produk) atau versi 1.6.0 (versi developer), dengan nama kode Mustang.
       Sejak tahun 2006, Sun juga menyederhanakan penamaan platform dengan tujuan untuk mencerminkan tingkat kematangan, stabilitas, skalabilitas, dan sekuriti yang lebih baik. Jika penamaan versi sebelumnya adalah Java 2 Platform, Standard Edition 5.0 (J2SE 5.0), maka sekarang disederhanakan menjadi Java Platform, Standard Edition 6 (Java SE 6, atau lebih sering disebut Java 6).

 

Elemen Bahasa Java

        Secara garis besar, elemen-elemen di setiap bahasa pemrograman sebenarnya hampir sama. Meskipun demikian, ada elemen-elemen khusus yang membedakan dan sekaligus mencerminkan identitas suatu bahasa. Adapun mengingat di sini kita bekerja dengan bahasa pemrograman Java, tentunya kita juga perlu memahami elemen-elemen dasar bahasa ini.

• Tipe Data
         Tipe data di Java dikelompokkan menjadi dua jenis, yaitu tipe primitif dan reference (kelas). Tipe primitif/dasar adalah tipe-tipe bawaan, meliputi boolean, char, byte, short, int, long, float,dan double. Sementara itu, tipe reference memiliki semantik seperti pointer. Jenis tipe reference meliputi kelas, interface, dan array.
        Apabila Anda ingin memperlakukan nilai primitif sebagai suatu objek, Anda bisa memanfaatkan kelas-kelas pembungkus (wrapper). Kelas-kelas tersebut meliputi Boolean, Character, Byte, Short, Integer, Long, Float, dan Double. Perhatikan sintaksnya (penulisan huruf kecil dan besar), agar tidak keliru dengan tipe-tipe primitif.

• Deklarasi dan Inisialisasi Variabel
           Sebelum digunakan, setiap variabel harus dideklarasikan terlebih dahulu. Langkah ini dilakukan dengan menetapkan tipe data dan nama variabel. Pernyataan deklarasi variabel tunggal juga dapat digunakan untuk mendeklarasikan lebih dari satu variabel, tetapi semuanya harus bertipe sama.
int i;
int j;
// ekuivalen dengan kedua pernyataan di atas
int i, j;

Deklarasi juga dapat sekaligus melakukan inisialisasi terhadap suatu
variabel.
int i = 2;
int j = 3;
int i = 2, j = 3;

• Initial Value
        Saat mendeklarasikan variabel kelas, kita tidak harus melakukan inisialisasi karena kompiler akan meng-assign initial value (nilai awal atau default). Nilai default untuk semua tipe reference adalah null.
Nilai default tipe primitif boolean adalah false, char adalah \u0000, integer (byte, short, int, long) adalah 0, dan floating point (float, double) adalah 0.0.

• Ruang Lingkup Variabel
         Java mendefinisikan empat jenis variabel, meliputi variabel instance (field non-statis), variabel kelas (field statis), variabel lokal, dan parameter. Istilah field mengacu pada variabel instance dan variabel kelas (terkadang disebut member variable). Sementara itu, istilah variabel mengacu pada semua jenis variabel.
Lokasi di mana suatu variabel dideklarasikan secara eksplisit juga menetapkan ruang lingkupnya. Ruang lingkup variabel adalah wilayah di mana suatu variabel dapat diacu melalui namanya. Ruang lingkup juga menyatakan kapan variabel akan diciptakan dan dihapus dari memori.

• Blok
          Blok adalah kelompok pernyataan (nol atau lebih) di dalam tanda kurung kurawal. Penggunaan blok dengan pernyataan alir kontrol sangat direkomendasikan, meskipun hanya melibatkan sebuah pernyataan.

if (kondisi)
  { // awal blok
            // pernyataan
  } // akhir blok

• Komentar
            Penulisan komentar dapat mengadopsi blok komentar gaya C ataupun C++. Komentar gaya bahasa C lazimnya digunakan untuk komentar yang terdiri atas beberapa baris. Sementara itu, komentar gaya C++, yang dinyatakan melalui karakter //, umumnya digunakan untuk komentar satu baris. Untuk komentar-komentar yang akan dimasukkan ke dokumentasi dan dihasilkan melalui tool javadoc, disarankan menggunakan /** dan diakhiri dengan karakter */.


JAVA FOUNDATION

           Java Foundation Class (JFC) merupakan sekumpulan class-class Java yang digunakan untuk mengembangkan perangkat lunak berbasis GUI (Graphical User Interface). Selain itu, JFC juga mempunyai class-class yang digunakan untuk menambahkan fungsi dan kemampuan interaksi yang variatif dari pemrograman Java. Dari definisi ini, JFC tidak hanya berisi class-class GUI saja tetapi juga class-class lain yang dapat meningkatkan kemampuan pemrograman Java baik dari segi fungsionalitasnya maupun dari segi kemampuan interaksi pemrograman Java yang sangat kaya.

Feature JFC

Fitur-fitur yang dipunyai oleh JFC
Komponen Swing Memuat semua class-class yang dibutuhkan untuk membuat aplikasi berbasis GUI, dari tombol, table, tab, menu, toolbar dan sebagainya
Look and Feel (LaF) Memberikan kemampuan kepada program Java yang dikembangkan menggunakan library swing untuk memilih tema tampilan. Misalnya sebuah program yang sama dapat mempunyai tampilan windows LaF atau Java LaF, atau LaF lain yang dikembangkan oleh komunitas seperti JGoodies.
Accessibility API Faslititas untuk mengembangkan aplikasi bagi penyandang cacat, misalnya dukungan untuk membuat huruf braile, kemampuan mengambil input dari layar sentuh dan sebagainya.
Java 2D API Berisi kumpulan class-class yang dapat digunakan untuk memanipulasi object-object 2 dimensi, sperti garis, kotak, lingkaran, kurva dan lain sebagainya. Selain itu Java 2D API juga memberikan kemampuan program yang ditulis menggunakan Java untuk mencetak output ke alat pencetak seperti printer.
Drag-anddrop Menyediakan kemampuan drag-and-drop antara program Java dan program lain yang ditulis spesifik untuk suatu platform sistem operasi tertentu.
International ization (i18n) Membantu pengembang perangkat lunak untuk membangun aplikasi yang dapat mendukung semua bahasa dan huruf yang ada di dunia.
Tabel Feature JFC
         Modul ini akan berkonsentrasi untuk membahas komponen swing. Pemilihan komponen dan library swing yang tepat dapat mempengaruhi kualitas program yang kita buat secara signifikan. Hal ini dikarenakan, dalam dunia Java Standard Edition, lebih spesifik lagi aplikasi Java yang dibangun menggunakan swing, belum ada framework yang benar-benar komprehensif membimbing pengembang untuk membuat aplikasi yang berkualitas.
         Pada umumnya aplikasi yang dikembangkan dengan Swing mempunyai kode yang sangat ‘kotor’, dimana kode yang berisi pengendalian terhadap event komponen swing bercampur aduk dengan kode yang berisi aturan bisnis dan kode yang berisi manipulasi terhadap data.

Swing Package

       Swing API sangat bagus dan lengkap, Java 6.0 menyertakan setidaknya tujuh belas (17) buah package yang berisi class-class swing yang siap digunakan.

javax.accessibility javax.swing.plaf javax.swing.text
javax.swing javax.swing.plaf.basic javax.swing.text.html
javax.swing.border javax.swing.plaf.metal javax.swing.text.rtf
javax.swing.colorchooser javax.swing.plaf.multi javax.swing.table
javax.swing.event javax.swing.plaf.synth javax.swing.tree
javax.swing.filechooser javax.swing.undo

        Untungnya kita tidak akan menggunakan semua class-class dalam package swing, hanya sebagian kecil saja dari class-class tersebut yang nantinya akan benar-benar kita gunakan. Sehingga kita bisa berkonsentrasi untuk memahami beberapa komponen penting saja. Dalam modul ini nanti kita hanya akan menggunakan beberapa class komponen swing yang penting saja. Beberapa kelas ini sudah cukup sebagai bahan  pemembuat perangkat lunak berkualitas.
       Komunitas Java juga menyediakan banyak sekali library swing, antara lain dari Swingx dan JGoodies yang mengembangkan library standard swing dengan menambahkan berbagai macam feature menarik. Sedangkan komunitas dari javadesktop.org mengembangkan banyak sekali library swing untuk keperluan khusus. Nyaris semua komponen yang kita perlukan baik komponen umum hingga komponen untuk tujuan khusus banyak tersedia di internet, kita tinggal mencari dan menggunakan.
Praktek yang baik dalam memilih komponen apa yang tepat adalah dengan mencari dahulu informasi di internet. Hal ini sangat bermanfaat untuk mengurangi waktu kita mengembangkan komponen, sehingga kita bisa lebih banyak berkonsentrasi untuk
mengembangkan sisi bisnis dan usability dari software yang kita kembangkan. Sebaik apapun softeware yang kita buat tapi tidak memberikan nilai tambah terhadap masalah yang dihadapi adalah kesia-siaan belaka. Banyak sekali software yang dianggap gagal memberikan nilai tambah terhadap masalah yang dihadapi hanya karena tampilan GUI-nya sangat susah dipahami dan tidak intuitif.
 

Membuat Swing HelloWorld dengan
Netbeans 6

Netbeans 6 dilengkapi dengan GUI builder yang dikenal dengan Matisse. Dalam modul ini selanjutnya, Matisse akan digunakan untuk menyebut Netbeans GUI Builder. Tools ini sangat powerful dan produktif dalam membuat komponen GUI. Langkah-langkah yang harus anda lakukan untuk membuat Swing HelloWorld dengan Matisse adalah sebagai berikut:
1. Buat project baru dalam Netbeans, caranya pilih menu :
    File > New Project
2. Langkah berikutnya anda harus menentukan kategori project yang akan anda buat,      caranya pilih :
    General > Java Application
   Anda akan dibawa ke dialog untuk menentukan nama project dan folder dimana anda meletakkan project     tersebut, pilih folder sesuai keinginan anda.
3. Klik kanan di project yang baru anda buat, popup menu akan muncul, kemudian pilihlah menu :
    New > JFrame Form…
   Kemudian masukkan nama class JFrame yang akan dibuat, misalnya Helloworld.java, klik finish.
4. Tampilan Netbeans akan berganti dengan tampilan GUI builder, dimana di sisi kanan akan terlihat Swing Pallet. Klik item Label di Swing Pallet kemudian klik di atas JFrame, sebuah Jlabel akan dibuat
Jendela Design dan Pallete Netbeans Matisse

5. Untuk memenuhi tujuan kita membuat Swing HelloWorld, kita akan memasukkan string “HelloWorld” ke dalam JLabel yang baru saja kita buat. Caranya, dobel klik di atas JLabel tersebut, kursor muncul bersama text field dan ketikkan “Helloworld”.
6. Klik kanan di file HelloWorld.java pada jendela explorer di sebelah kiri, pilih menu Run File… untuk mengcompile dan menjalankan class HelloWorld.java atau tekan tombol SHIFT + F6.

    Matisse mempunyai sistem Layouting yang sangat fleksible, sistem layout yang digunakan oleh Matisse adalah GroupLayout. Dalam chapter berikutnya kita akan belajar bagaimana menggunakan GroupLayout ini dengan benar dan memanfaatkan keunggulanya dalam menata component GUI dengan sangat rapi.
Swing helloworld ini hanya sebagian kecil saja dari pekerjaan yang harus dilakukan dalam membangun aplikasi desktop berbasis Java. Selanjutnya kita akan membahas penggunaan JLabel, JButton, JCheckBox, JTextField dan JRadioButton untuk membuat aplikasi GUI sederhana dengan menggunakan Matisse.

Komponen Swing


        Swing toolkit menyediakan banyak sekali komponen untuk membangun aplikasi GUI desktop. Swing toolkit juga menyediakan class-class untuk menangani interaksi antara aplikasi dan user menggunakan standard input seperti keyboard dan mouse. Komponen-komponen yang disediakan swing mencakup semua GUI toolkit yang lazim digunakan dalam apilasi desktop, seperti : JTabel, JList, JTree, JButton, JLabel dan masih banyak komponenkomponen lainnya yang sudah teruji dan siap pakai.
      Selain komponen GUI, swing juga menyediakan fasilitas untuk proses undo, komponen untuk mengolah text, internationalization, Komponen GUI yang mendukung penyandang cacat (accessibility support) dan fasilitas drag-and-drop.
      Look and Feel merupakan fasilitas yang unik dalam swing. Dengan fasilitas Look and Feel ini kita bisa dengan mudah merubah tampilan dari program kita sesuai dengan keinginan dan tujuan kita. Misalnya, agar program terlihat fancy atau agar program terlihat konsisten dalam segala keadaan.
     Swing juga menyediakan library Java 2D untuk pengolahan data secara visual, seperti mengolah gambar, object 2D, bahkan animasi. SwingLabs.org menyediakan libary Swing Painter yang merupakan pengembangan dari Java 2D, Swing Painter ini memungkinkan aplikasi swing mempunyai tampilan yang indah dan terlihat profesional.
    Java 6.0 menambahkan banyak sekali fitur-fitur baru ke dalam package swing, termasuk dukungan untuk library OpenGL menggunakan JOGL, Tray Icon dan Web Service. Dengan adanya dukungan ini swing menjadi lebih poweful dan mempunyai masa depan yang cerah.