HACKING BY VALENT
SEMOGA MR.RULLY BERKENAN DAN MEMBERI SAYA NILAI YANG OK YA MR...

Sabtu, 31 Mei 2008

Sekilas Java

Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara bermacam platform dan sistem operasi). Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang jalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah HotJava yang berupa sebuah web browser.

1. Platform independence

Salah satu keunggulan Java adalah sifatnya yang 'platform independence', artinya Java - baik source program maupun hasil kompilasinya - sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan. Source code sebuah aplikasi dengan bahasa Java yang ditulis di atas sistem Windows NT misalnya, dengan gampang dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kode-pun. Ini tentunya merupakan satu nilai tambah tersendiri. Bandingkan dengan bahasa C/C++ misalnya, jika kita bekerja pada UNIX FreeBSD dan ingin memindahkannya pada HP UNIX, kita terkadang harus juga mengedit source code-nya sehingga sesuai dengan HP UNIX, walaupun keduanya masih berada dalam keluarga UNIX.

Dan yang lebih hebat lagi, bukan hanya source code-nya saja yang bisa dipindah-pindahkan antar sistem komputer, bahkan hasil kompilasinya pun bisa dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu.

Umumnya jika kita menulis program -misalnya dalam bahasa C++- pada satu sistem komputer -misalnya PC-, kompiler akan menterjemahkan source code kedalam bahasa mesin yang spesifik untuk prosesor yang ada di PC. Jika hendak dijalankan di sistem lain, Macintosh misalnya, maka source code harus dikompilasi lagi pada mesin Macintosh yang bersangkutan, dan terkadang harus melakukan pengeditan source code terlebih dahulu. Menjalankan hasil kompilasi dari platform Windows pada platform UNIX tidak akan pernah berhasil. Berikut ini ilustrasinya:

Hal yang berbeda terjadi pada lingkungan Java. Lingkungan Java terdiri dari dua bagian yaitu Java compiler dan Java interpreter. Java compiler menterjemahkan source code kedalam bytecode. Hasil kompilasi, yaitu program Java (berekstensi class), akan bisa dijalankan dengan bantuan Java interpreter. Java interpreter dapat dijalankan langsung (dari command prompt) maupun dari program applet viewer atau web browser (untuk applet). Kenapa harus bersusah payah menambahkan satu layer bytecode interpreter? Jawabnya adalah untuk memungkinkan program Java bisa dijalankan pada bermacam-macam sistem komputer asalkan pada sistem komputer itu terdapat Java interpreter.

Kelemahan dari penggunaan bytecode adalah kecepatan operasi yang lebih lambat daripada program-program biasa. Hal ini karena program-program yang ditulis pada bahasa pemrograman yang hardware-specific dapat langsung berjalan di atas hardware dimana ia dikompilasi.. Program bytecode harus diterjemahkan terlebih dahulu oleh interpreter baru dijalankan di atas hardware.

Karena keunggulan-keunggulan di atas, program Java sangat baik digunakan untuk aplikasi internet maupun intranet, mengingat komunitasi internet dan intranet biasanya menggunakan sistem operasi dan platform yang sangat berbeda-beda dalam mendapatkan dan memberikan informasi.

2. Memulai Java

Untuk bisa memulai menggunakan Java, minimal kita harus terlebih dahulu menginstall Java Development Kit yang dapat di-download dengan gratis dari http://java.sun.com. Dapat juga digunakan program developent tools Java lainnya yang memiliki fasilitas yang lebih lengkap seperti Symantec Café, Borland J Builder, Microsoft Visual J++, dan lainnya.

Seperti telah diterangkan di atas, hasil kompilasi Java dapat berupa aplikasi maupun applet. Aplikasi merupakan hasil kompilasi program Java yang dapat langsung dijalankan dari command prompt dengan bantuan program java interpreter, sedangkan applet harus dijalankan di atas browser atau appletviewer. Perbedaan applet dan aplikasi Java terletak pada penurunannya dari class Applet. Perhatikan contoh di bawah ini:

Aplikasi Java

class JavaPertama {

public static void main (String args[]) {

System.out.println("Halo, ini ¿

Aplikasi java saya yang pertama!");

}

}

Aplikasi Java

import java.awt.Graphics;

public class JavaAppletPertama extends ¿ java.applet.Applet {

public void paint(Graphics g) {

g.drawString ("Ini applet java ¿

ku yang pertama!",5, 25);

}

}

Pada aplikasi Java, kita membuat sebuah class baru yang bukan merupakan turunan dari class apapun. Apa yang akan dikerjakan oleh aplikasi tersebut terletak di dalam prosedur main. Dalam contoh di atas, aplikasi akan mencetak tulisan “Halo, ini Aplikasi java saya yang pertama!” pada layar monitor (diwakili oleh objek System.out). Setelah dikompilasi kita akan mendapatkan bytecode yang berada dalam bentuk file dengan ekstensi class. Hal yang perlu diperhatikan adalah bahwa:

1. nama file source code harus sama dengan nama class yang didefinisikan di atas (dalam hal ini JavaPertama.java)

2. penamaan dan penulisan syntaks dalam Java adalah case sensitive

3. nama file bytecode hasil kompilasi sama dengan nama class yang didefinisikan (dalam hal ini JavaPertama.class)

Sedangkan pada applet terdapat baris class JavaAppletPertama extends java.applet.Applet yang menentukan bahwa class yang baru kita buat (JavaAppletPertama) merupakan turunan dari class Applet yang berada pada paket java.applet. Salah satu yang menarik dari Java adalah telah tersedianya sedemikian banyak class yang siap pakai dan tinggal diturunkan (baca: digunakan) untuk membuat applet maupun aplikasi baru. Kumpulan class-class ini disimpan dalam suatu paket yang diakses dengan memanggil nama paket yang bersangutan. Paket-paket ini telah meliputi paket bahasa Java dasar (java.lang), paket abstraksi window dan objek-objeknya (java.awt), sampai dengan paket networking TCP/IP (java.net).

Setelah diturunkan dari class Applet, class yang baru akan secara otomatis memiliki sifat (attribute) dan kelakuan (behaviour) yang sama dengan class Applet. Namun class Applet ini baru hanya merupakan template untuk pembuatan applet-applet baru. Kita harus melakukan modifikasi (istilahnya overriding) terhadap prosedur dan fungsi yang tersedia dari class Applet. Salah satu prosedur yang akan kita override pada contoh ini adalah prosedur paint() yang menentukan bagaimana dan apa yang akan ditampilkan pada applet saat pertama kali muncul.

Pada applet di atas kita juga menggunakan class Graphics yang gunanya untuk manipulasi tampilan Graphics pada applet kita. Untuk itu kita harus secara eksplisit memanggil class tersebut dengan nama tempat paketnya, yaitu: import java.awt.Graphics.

Lalu pada prosedur paint(), kita lakukan penggambaran sesuatu pada applet dengan menggunakan function drawString() yang terletak pada objek g yang bertype Graphics. Function ini mengambil parameter string apa yang akan digambarkan, posisi x, dan posisi y (dalam pixel) pada applet.

Setelah dikompilasi, kita akan memperoleh sebuah file class yang bernama JavaAppletPertama.class. Untuk melihat hasil applet tersebut, kita harus membuat sebuah halaman HTML yang memanggil applet tersebut. Gunakan tag HTML sebagai berikut:

Percobaan membuat applet

Java applet ku mengatakan:

HEIGHT=25>

Sekarang jalankan web browser dan buka file HTML ini (misalnya applet.html) dan lihat hasilnya. Cara lain untuk melihat applet ini adalah dengan menggunakan program appletviewer yang merupakan program bawaan Java Development Kit.

3. Informasi lebih lanjut

Salah satu keuggulan Java adalah kemampuannya dijalankan pada web browser ini. Dalam hal ini web browser berfungsi sebagai Java Interpreter yang berfungsi menterjemahkan bytecode dan menampilkan hasilnya pada browser. Ini berarti kita akan mendapatkan tampilan halaman web yang animatif, dinamis, maupun interaktif, tergantung dari program Java yang dibuat. Tanpa Java, kita hanya akan mendapat tampilan dokumen HTML yang statis, tidak menarik dan tidak interaktif. Banyak contoh applet yang tersedia di internet yang telah siap digunakan untuk memperindah dan membuat halaman web anda lebih interaktif. Sebagian ada yang gratis dan ada pula yang harus anda beli. Silahkan kunjungi search engine dengan keyword java, class, atau java class. Site lain yang layak anda kunjungi adalah http://www.developer.com dan http://java.sun.com

Untuk mempelajari Java lebih detail, sekarang terdapat banyak literatur baik yang ada di internet maupun di buku. Salah satunya adalah “Java dan JavaScript” oleh Onno W. Purbo & Akhmad Daniel S, PT Elex Media Komputindo 1998.

Mudah Belajar Java Bersama [SuSE] Linux - 2, Installasi Java

Instalasi Java secara cepat dan mudah pada SuSE Linux dapat dilakukan langsung melalui YAST. Namun, karena kita berniat menjadi programmer, mari kita mulai dengan sedikit hand-made :-).

Salah satu yang membuat bingung waktu install Java, adalah : Java versi yang mana yang harus saya pakai ? Ada versi Sun, ada versi IBM dan ada versi vendor lain. Meski pada dasarnya sama, hal ini cukup membingungkan. Apa saya saja yang kebingungan sendiri ya :-).


Mudahnya, kita akan gunakan Java yang didownload dari Sun. Pada link http://java.sun.com, ada 3 variasi Java, yaitu Java SE, Java ME dan Java EE. Kita langsung dari yang awal yaitu J2SDK.

1. Download Java SE dari http://java.sun.com/javase/downloads/index.jsp

Ambil untuk Linux. Tidak usah yang dibundel dengan Netbeans ataupun yang lainnya. Saat ini versi terbaru adalah 1.6.0. Untuk Linux ada 2 tipe ( Linux RPM in self-extracting file dan Linux in self-extracting file), ambil yang kedua, dengan nama jdk-6-linux-i586.bin

2. Copy ke folder /opt

3. Masuk ke Konsole / Terminal

Perintah : ALT+F2, ketik konsole

4. Install Java SE. Pada Konsole, ketikkan perintah berikut [tanda # jangan ikut diketik. Itu merupakan prompt user root. Kalau masuk sebagai user biasa, lambangnya adalah $. Untuk masuk ke prompt root dari user biasa, ketik su dan masukkan password root] :

# chmod +x /opt/jdk-6-linux-i586.bin

# ./jdk-6-linux-i586.bin [Note : titik-slash-namafile]

5. Check hasil instalasi

Java -version

java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)

Bagaimana jika yang kita install adalah versi 1.6.0 tapi versi yang keluar adalah versi lain ? Berarti sudah ada Java SDK yang tertanam di Linux. Java yang baru saja kita install terletak pada folder /opt/jdk1.6.0. Coba check dengan perintah berikut.

# ls -l /usr/bin/java

lrwxrwxrwx 1 root root 22 Jan 24 09:22 /usr/bin/java -> /etc/alternatives/java

Jika hasilnya seperti diatas atau folder tidak sesuai, kita bisa bisa "memaksa" agar SuSE menggunakan Java yang baru saja kita install. Ketik perintah berikut :

# ln -s /usr/bin/java /opt/jdk1.6.0/bin ln -s /opt/jdk1.6.0/bin/java /usr/bin/java --> revisi dari kel. Lihat bagian Comment.

Check ulang dengan perintah Java -version

6. Buatkan ClassPath agar kompiler Java [javac] bisa dikenal dari berbagai folder, dengan langkah sebagai berikut :

- Buat file dengan nama .bash_profile. Simpan pada home directory. Jika masuk sebagai root, simpan pada /root. Jika masuk sebagai user biasa, simpan pada /home/namauser. Pada Linux, file yang diawali dengan tanda titik berarti hidden file.

- Ketik isi file .bash_profile dengan :

JAVA_HOME=/opt/jdk1.6.0

export JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

- Simpan

7. Log-off dari SuSE

8. Masuk kembali

9. Test Kompiler. Buka konsole, ketik

# javac

Jika menghasilkan keluaran, berarti kompiler Java sudah siap digunakan. Jika belum, check ulang penulisan CLASSPATH dan sesuaikan dengan kondisi instalasi.

Sejarah perkembangan Java

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


Versi Awal

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.

Kelebihan

  • 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. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.
  • 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.
  • 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. Universitas-universitas di Amerika 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.
  • 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).

[sunting] Kekurangan

  • 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.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena koe 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.
  • 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.

Kekurangan

  • 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.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena koe 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.
  • 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.

Contoh Kode Program Sederhana Dalam Java

Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman Java adalah sebagai berikut:

class HaloDunia
{
public static void main(String[] argumen)
{
System.out.println("Halo Dunia");
}
}

Tahap Kompilasi Java

  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

Integrated Development Environment

Banyak pihak telah membuat IDE (Integrated Development Environment - Lingkungan Pengembangan Terintegrasi) untuk Java. Yang populer saat ini (Juli 2006) antara lain:

NetBeans disponsori Sun Microsystems, dan versi terkininya memilki Matisse, sebuah GUI Editor yang menurut pendapat umum merupakan yang terbaik. [rujukan?]

Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya.

JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari kebanyakan IDE.

Situs yang bekaitan dengan JAVA