Jumat, 24 Agustus 2012

Sejarah JAVA


Sedikit mengenal sejarah JAVA. Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa harus berukuran kecil dan mengandung kode yang liat. Juga karena manufakturmanufaktur berbeda memilih processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”. Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portabel yang menghasilkan intermediate code untuk mesin hipotesis. Mesin ini sering disebut dengan mesin maya (virtual machine). Kode ini kemudian dapat digunakan di sembarang mesin yang memiliki interpreter. Proyek Green menggunakan mesin maya untuk mengatasi isu utama tentang netral terhadap arsitektur mesin. Karena orang–orang di proyek Green berbasis C++ dan bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan prosedural. Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.

Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang sangat cerdas. Dikarenakan pasar masih belum tertarik dengan produk consumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang diciptakan. Pada saat yang sama, implementasi WWW dan Internet sedang mengalami perkembangan pesat. Di lain pihak, anggota dari proyek Green juga menyadari bahwa Java dapat digunakan pada pemrograman internet, sehingga penerapan selanjutnya mengarah menjadi teknologi yang berperan di web.

Java telah mengakomodasi hampir seluruh fitur penting bahasa–bahasa pemrograman yang ada semenjak perkembangan komputasi modern manusia :
  1. Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling mempengaruhi Java sekaligus C++. Dari bahasa ini diadopsi bentukan–bentukan dasar dari pemrograman berorientasi objek.
  2. Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection, serta kemampuan untuk meniru generic list processing, meski fasilitas ini jarang yang memanfaatkannya.
  3. Dari Algol – bahasa pada tahun 60-an, diambil struktur kendali yang dimilikinya.
  4. Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling
  5. Dari bahasa Ada, diambil strongly type, dan exception handling.
  6. Dari Objective C, diambil fasilitas interface.
  7. Dari bahasa SmallTalk, diambil pendekatan single-root class hiƩrarchie, dimana object adalah satu kesatuan hirarki pewarisan
  8. Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK 1.4

Perbedaan Pemrograman Prosedural dan Pemrograman Berorientasi Objekk



Seperti yang telash kita ketahui, semua program computer terdiri atas kode dan data. Kode yang dimaksud disini adalah proses logis program (misalnya fungsi), sedangkan data dapat berupa variable maupun konstanta. Selanjutnya, kode dan data tersebut secara konseptual diatur sedemikian rupa sehingga dapat bekerja sama untuk menghasilkan program keluaran sesuai dengan proses yang diinginkan.
Pada model pemrograman tradisional atau procedural (disebut process-oriented model), semua data dan kode digabung menjadi satu bagian dalam satu program. Untuk program-program sederhana yang hanya membutuhkan beberapa buah baris kode, penggunaan model ini tentu tidak begitu menjadi masalah. Permasalahan baru akan timbul pada saat program tersebut berkembang ke arah yang lebih besar dan kompleks, yang mungkin membutuhkan ratusan atau bahkan ribuan baris kode. Alasan semacam inilah yang menjadi benih diciptakannya model program baru, yaitu model pemrograman berorientasi objek (disebut objek-oriented model). Pada model ini, komponen-komponen penyusun program secara konseptual akan dipecah menjadi bagian-bagian tersendiri yang disebut dengan objek.

Seperti yang telah anda lihat diatas, dalam pemrograman berorientasi objek, setiap objek akan memiliki data (sifat, berupa variable atau konstanta) dan method (perilaku atau kemampuan melakukan sesuatu, berupa fungsi). Jadi, objek dapat didefinisikan sebagai suatu entitas yang memiliki data dan method. Sebagai contoh : manusia adalah suatu objek yang memiliki data-data (misalnya : nama, jenis kelamin, tinggi badan, berat badan, dll) dan juga method (mislanya : cara bicara, cara berjalan, cara marah, dll).
Dalam dunia pemrograman, objek semacam ini diabstraksikan menjadi sebuah kelas. Dengan kata lain, kelas adalah bentuk abstrak dari suatu objek. Wujud nyata dari suatu kelas disebut dengan instance. Sebagai contoh : apabila terdapat kelas manusia, maka contoh instance nya adalah : Udin, Iteung, Widyan, Nana, Ajeng, Zaki, dan lainnya. Contoh lainnya, apabila ada kelas Karnivora. Instance nya adalah : Harimau, Singa, Hiu, dan sebagainya.
Secara Umum, beberapa keuntungan yang tampak pada model pemrograman berorientasi objek adalah sebagai berikut :
  1. Objek-objeknya dapat digunakan ulang untuk program-program lain
  2. Programnya lebih terstruktur dan lebih mudah untuk dikembangkan
  3. Bersifat natural atau alami, karena perilaku dan sifat-sifat objek di dalam program akan disesuaikan dengan objek-objek nyata yang ada di dalam sekitar kita.

Pengenalan JAVA


Program di dalam Java : Bytecode

Dalam sebagian besar bahasa perograman, sebuah kode program harus dikompilasi (compile) maupun diterjemahkan (interpret) sehingga dapat dijalankan di dalam sebuah computer. Software yang digunakan untuk melakukan kompilasi kode program disebut dengan compiler, sedangkan yang digunakan untuk melakukan interpretasi disebut dengan interpreter. Perbedaan compiler dengan interpreter  adalah terletak pada proses eksekusi kodenya. Compiler akan menerjemahkan isi kode program secara keseluruhan, sedangkan dengan interpreter akan menerjemahkan dengan cara baris per baris. Karena proses eksekusinya dilakukan per baris, maka interpreter lebih lambat apabila dibandingkan dengan compiler.
Java menerapkan dua proses diatas. Ini berarti bahwa Java berperan sebagai compiler dan interpreter. Apabila bingung. Konsep dasarnya adalah, mula-mula kode program yang ditulis dengan bahasa Java (berekstensi .Java) akan dikompilasi (oleh compiler) menjadi suatu kode objek. Dalam Java, kode objek ini disebut dengan istilah bytecode. Jadi, dalam Java, hasil akhir programnya akan berupa bytecode (berekstensi .class), bukan .EXE. Selanjutnya, bytecode akan dieksekusi baris demi baris (oleh interpreter). Dengan demikian, proses kompilasi hanya dilakukan sekali, akan tetapi proses interpret akan dilakukan setiap program dieksekusi.

gambar : logijava.blogspot.com

Bytecode dapat dianggap sebagai sekumpulan perintah dalam bahasa mesin untuk sebuah JVM (Java Virtual Machine). Setiap interpreter Java, baik berupa development tool maupun sebuah web browser, merupakan implementasi dari JVM. Program yang dibuat dengan Java tidak mungkin dapat dijalankan di dalam computer maupun alat lain yang tidak memiliki JVM.
Dengan adanya konsep bytecode, dalam Java dikenal adanya istilah “write once, run anywhere”. Ini berarti bahwa, sekali kita menulis program Java dan melakukan kompilasi terhadapnya, maka bytecode-nya dapat dijalankan di dalam platform manapun selama platform tersebut memiliki JVM.