Sunday, November 27, 2011

Java - Bahasa pemrograman







Alasan pembuatan

       Java awalnya dibuat bukan untuk komputer atau internet seperti sekarang ini, namun untuk mengontrol alat elektronik. Menyesuaikan dengan kondisi pada berbagai alat elektronik, Sun Microsystem membuat bahasa yang bisa digunakan diberbagai macam platform (platform independent) dan memiliki penggunaan memori yang sedikit (karena memori pada alat elektronik umumnya lebih kecil dibanding komputer). Nama bahasa pemograman itu bukan Java, namun Oak (terinspirasi dari pohon Oak yang ada di depan kantor mereka).


Asal-usul nama

       Ternyata Oak cukup ngetren dan berkembang pesat sejalan perkembangan internet dan web. Sun Microsystem kembali mengembangkan bahasa ini agar sesuai dipakai di web, yang hasilnya adalah Java. Namanya diganti karena nama Oak sudah terdaftar untuk perusahaan lain. Nama Java sendiri adalah nama kopi favorit para pembuat bahasa itu. Java juga singkatan dari nama para pengembangnya, James Gosling, Arthur Van Hoff, Andy Bechtolsheim.


Tidak tergantung platform

       Program yang dibuat dengan bahasa pemrograman sebelumnya, seperti C dan C++, diubah oleh compiler menjadi kode mesin sesuai dengan jenis komputer tertentu. Sehingga program yang dibuat misalnya untuk komputer dengan CPU Intel + Linux, tidak bisa dijalankan di Apple Mac PC atau CPU Intel + Windows. Kalaupun menggunakan compiler lain untuk spesifikasi komputer tertentu, biasanya hasilnya beda, sehingga untuk mendapatkan program yang sama harus mengedit kodenya atau bahkan mengoding ulang.

       Berbeda dengan bahasa pemograman sebelumnya, Java menggunakan Java Virtual Machine(JVM) untuk menjalankan programnya, sehingga komputer dengan CPU dan operating system apapun jika memiliki JVM maka bisa menjalankan program Java dengan tampilan yang sama. Ini yang disebut dengan Write Once Run Anywhere (WORA), ngoding sekali dan programnya bisa dijalankan di berbagai jenis komputer.


Perbedaan proses compiling di Java dan C/C++

Java:

  • Java tidak menggunakan linker, langsung mengubah ke kode byte

  • Kode byte Java hanya bisa dijalankan di JVM

  • Ketika runtime, programnya tersambung dengan class-class JVM yang diperlukan

  • Programer juga bisa me-load class tertentu dengan menggunakan ClassLoader



C/C++:

  • Ketika di-compile, program diubah dulu menjadi object file, kemudian disambungkan dengan library yang dibutuhkan, baru dihasilkan program akhir yang bisa di jalankan(execute)

  • Kalau pakai static library, kode library itu ditambahkan ke program sehingga ukuran program menjadi besar

  • Kalau pakai dynamic library, program disambungkan ke library hanya ketika runtime

  • Object file dan execute file berbeda untuk setiap platform, sehingga jika platformnya ganti maka harus membuat object file dan execute file yang baru




*Sumber: Buku 'Java Programming', 황기태 & 김효수, 생능출판사 (Life & Power Press)

No comments: