JUST FOR FUN NO RASIS !

Tentang Java

                                                                Sekilas Tentang Java

    JAVATM yang dikembangkan di Sun Microsystem berawal dari gagasan untuk menciptakan suatu bahasa, perangkat lunak yang bebas dan tidak bergantung pada platform atau sistem operasi tertentu (tidak hanya bekerja pada sistem operasi tertentu). Tujuan awalnya adalah dengan menggunakan bahasa yang sudah ada, yaitu C++ namun seiring dengan kemajuan yang dicapai, para pencipta JAVA menyadari bahwa akan lebih baik bila mereka menemukan (menciptakan) bahasa mereka sendiri daripada mengembangkan C++.

    Tidak seperti bahasa-bahasa compiler tradisional, yang mengubah kode (source code) menjadi perintah-perintah tingkat mesin (bahasa mesin), kompiler Java mengubah (menterjemahkan) kode-kode sumber Java menjadi perintah-perintah yang akan di- interpretasi (dibaca) oleh runtime Mesin Virtual Java (Java Virtual Machine).
    Java dapat digunakan untuk membuat dua jenis program, yaitu applet dan aplikasi mandiri (stand alone application). Secara sederhana, sebuah applet adalah bagian dari halaman web entah itu berupa animasi, gambar sederhana (image) atau hanya sebuah garis atau sekumpulan teks.
    Para pencipta Java di Sun Microsystem mendefinisikan Java sebagai bahasa yang sederhana, berorientasi object, terdistribusi, terinterpretasi, kokoh, aman, netral arsitektur, akrab, berkinerja tinggi, multi jalinan (multithreaded) dan dinamis.

1. Sederhana

             Inti dari ke-"sederhana"-an Java terutama terletak pada kemiripannya dengan C dan C++. Karena programmer-programmer masa kini khususnya yang tertarik menggunakan Java telah memiliki pengalaman setidaknya dengan C dan mungkin dengan C++, Java tentu saja terlihat sederhana dan akrab bagi programmer- programmer ini.
             Java menyederhanakan bahasa C++ dengan menambahkan fitur-fitur pendukung yang belum terdapat dalam C++ dan membuang beberapa fitur yang membuat C++ menjadi bahasa yang rumit dan sulit untuk dikuasai. Java sederhana karena hanya ia memiliki tiga tipe angka data primitif, tipe Boolean dan array. Selebihnya, semua dalam Java adalah sebuah kelas. Salah satu fitur penting yang ditawarkan Java (yang belum ada pada C++) adalah pengumpulan sampah (garbage collection). Dengan mekanisme ini, user tidak perlu membebaskan memori yang dialokasikan, karena semua dilakukan oleh Mesin Virtual Java. Java juga mendukung penulisan program multi jalinan, yaitu suatu program yang dapat melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan.

2. Berorientasi Obyek

             Dalam pendekatannya pada orientasi-obyek, Java lebih merujuk pada SmallTalk daripada C++. Selain tipe data primitive-nya, semua yang ada pada Java adalah kelas. Sebaliknya dalam C++ semuanya serba campur-aduk, dimana programmer dapat secara bebas (benar-benar bebas)dalam mencampur kode-kode orientasi obyek (kelas) (kelas) dengan kode prosedural (fungsi). Dalam Java semua ini tidak diperbolehkan. Tidak ada fungsi global dalam Java, semua fungsi harus dipanggil melalui sebuah obyek.
             Dukungan Java terhadap orientasi-obyek tidak termasuk penurunan (inheritansi) ganda. Para perancang Java merasa kerumitan yang dimunculkan inheritansi ganda tidak sebanding dengan keuntungan yang dihasilkan. Sebagai ganti dari inheritansi ganda, Java kemudian menyediakan antarmuka (interface).

3. Terdistribusi

             Java memudahkan pembuatan aplikasi terdistribusi dengan sekumpulan kelas yang digunakan pada aplikasi-aplikasi jaringan. Dengan menggunakan kelas URL (Uniform Resource Locator) Java, suatu aplikasi dapat dengan mudah mengakses server-jauh (remote server).

4. Terinterpretasi

             Karena Java adalah bahasa interpretasi, sekali Interpreter Java terpasang, terinstal pada suatu mesin tertentu, mesin tersebut dapat secara langsung menjalankan aplikasi-aplikasi Java (tidak peduli platform atau sistem operasi apa yang terpasang pada mesin tersebut). Ketika menggunakan bahasa interpreter, programmer juga terbebas dari kekhawatiran berkaitan dengan ketergantungan antar modul.
             Keuntungan lain adalah waktu yang digunakan untuk lingkaran edit-compile-link-test dapat dipotong. Tanpa adanya langkah kompile dan link, maka bekerja dalam lingkungan interpreter lebih sederhana dan lebih hemat waktu karena hanya melalui lingkaran edit-test.

5. Kokoh

             Membuat suatu program yang terdistribusi, mendukung multi-jalinan yang dapat dijalankan pada berbagai sistem operasi dan berbagai prosesor bukanlah suatu pekerjaan yang mudah. Berdasarkan pemikiran ini, maka Java diciptakan sebagai bahasa yang sangat ketat dalam penulisan (strongly typed language). Dalam Java management memori telah disederhanakan dengan dua cara. Pertama Java tidak mendukung manipulasi pointer atau aritmatik secara langsung, sehingga mustahil bagi program Java untuk menumpuk (meng-overwrite) memori atau mengkorupsi data. Kedua Java menggunakan mekanisme pengumpulan sampah saat program berjalan (runtime) daripada pembebasan memori secara eksplisit.

6. Aman

             Karena Java tidak menggunakan pointer yang secara langsung merujuk pada lokasi memori seperti yang terdapat pada C atau C++, Java memiliki kendali penuh terhadap semua kode yang ada pada lingkungan Java. Sebelumnya telah diantisipasi bahwa aplikasi-aplikasi Java akan dijalankan di internet dan akan secara dinamis dapat dijalankan bersama atau mengeksekusi program lain di tempat yang berlainan melalui internet, maka para pengembang Java berpendapat tentang perlu adanya kompiler Java yang akan menghasilkan kode bite Java yang akan melewati standar keamanan runtime Java. Gagasan ini memunculkan ide tentang pemeriksa kode byte yang akan memeriksa semua kode yang masuk dan memastikan bahwa semua kode tersebut telah mematuhi serangkaian aturan yang telah ditentukan dan aman untuk dijalankan.

7. Arsitektur Netral

             Sebelum dijalankan, program Java harus dikompile terlebih dulu menggunakan kompiler Java. Proses kompilasi ini kemudian akan menghasilkan suatu kode bite tertentu yang serupa dengan file kode (bahasa) mesin yang dapat dieksekusi pada mesin apapun yang memiliki interpreter Java.
             Jadi, Java dapat dijalankan dalam mesin (komputer) dengan system operasi apapun selama ia memiliki interpreter Java, dan dengan demikian maka tuntutan arsitektur netral pada Java dapat dipenuhi.

8. Portable

             Salah satu tujuan penting pembuatan Java adalah kode-kode Java haruslah Portable, sehingga ketika arsitektur baru (baik itu perangkat keras ataupun sistem operasi atau keduanya) berkembang, lingkungan Java dapat diterapkan dan dipindahkan pada mereka.
             Pada Java, semua tipe data primitif (integer, long, float, double dan sebagainya) memiliki ukuran tertentu, tidak bergantung pada mesin atau sistem operasi dimana program Java dijalankan. Hal ini sangat berlawanan dengan bahasa seperti C atau C++ yang menyerahkan ukuran tipe data primitif pada kompiler dan mesin (serta sistem operasi). Java portable karena kompiler Java sendiri ditulis menggunakan Java

9. Berkinerja Tinggi

             Sebuah aplikasi Java tidak akan menyamai kinerja aplikasi bahasa terkompilasi penuh seperti C atau C++. Namun demikian untuk sebagian besar aplikasi termasuk pengolahan grafis, satu dari berbagai macam hal yang dapat ditemui secara umum pada World Wide Web, kinerja Java lebih dari cukup.
             Banyak pengadopsi awal C++ khawatir aanya kemungkinan penurunan kinerja saat mereka mengubah program mereka dari C ke C++. Namun para pengadopsi (pengguna) awal C++ menemukan walaupun program dalam C akan melebihi suatu program C++ dalam banyak kasus, waktu untuk pengembangan lebih lanjut dan biaya tidak sesuai dengan kinerja yang dihasilkan.
             Walupun aplikasi Java mungkin tidak dapat menyamai aplikasi C++, namun secara normal aplikasi Java akan cukup cepat, dan Java memungkinkan user melakukan banyak hal yang tidak dapat dilakukan dengan C++.

10.  Multi-Jalinan

             Menulis suatu bahasa yang hanya bisa melakukan satu perkerjaan adalah hal yang biasa dalam bahasa pemrograman. Program-program Java dapat terdiri atas beberapa jalinan yang memungkinkan program untuk melakukan beberapa pekerjaan sekaligus. Suatu contoh, sebuah program multi jalinan dapat me-render sebuah image di layar pada satu jalinan disamping menerima masukan dari keyboard user pada jalinan utama-nya.
             Dukungan terhadap beberapa jalinan tersinkronisasi sekaligus telah terbangun (secara internal) pada Java dan lingkungan runtime-nya. Jalinan tersinkronisasi sangat berguna dalam membuat aplikasi yang terdistribusi dan berbasis jaringan. Aplikasi semacam ini dapat berkomunikasi dengan server jauh pada satu jalinan dan berinteraksi dengan user pada jalinan yang lain.

  11.  Dinamis

             Karena terinterpretasi, Java adalah bahasa yang benar-benar dinamis. Saat runtime, lingkungan Java dapat mengembangkan dirinya dengan terhubung pada kelas-kelas yang mungkin terletak pada server-jauh pada suatu jaringan (misalnya, lewat internet). Pada C++ setiap kali anggota variabel atau fungsi ditambahkan pada suatu kelas, maka kelas tersebut dan semua kode tambahan yang merujuk pada kelas tersebut perlu dikompile ulang. Java menyederhanakan masalah ini dengan menyerahkan pada runtime. Saat runtime interpreter Java melakukan resolusi nama ketika terhubung dengan kelas-kelas yang bersangkutan. Interpreter Java juga bertanggung-jawab dalam menentukan penempatan obyek dalam memori. Dua fitur pada interpreter Java ini memecahkan masalah berkaitan degan perubahan definisi kelas ketika digunakan kelas-kelas yang lain.


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

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

Kekurangan

    Tulis sekali, jalankan 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 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.

    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 program java sederhana / basic

public class tugas1

{

    public static void main(String[] args)
    {
    // Display " Hello World!"
    System.out.println("NPM 30411050");
    System.out.println("Nama Fazri Fatahillah");
    System.out.println("Kelas 308");
    }

}

 

0 komentar:

Posting Komentar