JUST FOR FUN NO RASIS !

Program Sederhana peng input barang Java

import java.util.Scanner;


public class baranglat

{
    public static void main(String[] args)
    {

    Scanner input = new Scanner(System.in);
    int harga , jumlah , total , diskon , totalbayar;

    System.out.print("harga barang :");                                      
    harga = input.nextInt();

    System.out.print("jumlah barang:");
    jumlah = input.nextInt();
  
     total = harga*jumlah;
     diskon = harga*jumlah*15/100;
     totalbayar=(harga*jumlah) -(harga * jumlah * 15/100);
  
    System.out.println("total : " +total);
    System.out.println("diskon : " +diskon);
    System.out.println("total yang harus dibayar : " +totalbayar);
    }
}

hasil program sederhana :


perogram bilangan aritmatik

 public class aritmatika1
{
    public static void main(String[] args)
    {
    int bil1 = 5;
    int bil2 = 2;
    int bil3 = 3;
    int bil4 = 2;
    int bil5 = 3;
    int bil6 = 5;
 
    float bil7 = 3;
    float bil8 = 2;
    int bil9 = 3;
    int bil10 = 2;

    int hasil1 = bil1+bil2;
    int hasil2 = bil3-bil4;
    int hasil3= bil5*bil6;
    float hasil4 = bil7/bil8;
    int hasil5 = bil9%bil10;

    System.out.println("Hasil1 = " +bil1+ "+" +bil2+ "=" +hasil1);
    System.out.println("Hasil2 = " +bil3+ "-" +bil4+ "=" +hasil2);
    System.out.println("Hasil3 = " +bil5+ "*" +bil6+ "=" +hasil3);
    System.out.println("Hasil4 = " +bil7+ "/" +bil8+ "=" +hasil4);
    System.out.println("Hasil5 = " +bil9+ "%" +bil10+ "=" +hasil5);
    }
}


 

JOB JAVA 2

AWAL TUJUAN BELAJAR JAVA DASAR PEMOGRAMAN



Untuk apasi kita belajar java ?? nah mari kita ulas di sini tentang tujuan awal belajar java, baik dari awal kata JAVA merupakan merupakan sebuah bahasa pemrograman yang berorientasi OBJEK dan dapat dijalankan (Run) pada segala jenis sistem operasi (OS)..


ILUSTRASI PROSSES COMPILE PADA PEMOGRAMAN JAVA

berikut langkahnya :


Ilustrasi proses compile pada bahasa pemrograman java
  • Install java jdk
  • lakukakan setingan dengan click kanan pada MY computer => Properties
  • setelah itu lakukan settingan variable dengan click advanced system setting => environment variables => tuliskan PATH pada variable name dan pada variable value tuliskan C:\Program Files\Java\jdk1.7.0_40\bin






  • setelah melakukan setingan jalankan program java yang diinginkan pada commad prompt







Istilah-Istilah OOP

OBJEK  adalah unit dasar  dalam OOP dengan aksi, identitas, dan merupakan bagian dari class.
STATE adalah keadaan dari sebuah objek.

IDENTITAS adalah suatu yang dimiliki oleh objek
 

Konsep Konsep OOP

1. Enkapsulasi (Encapsulation)
Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan hak aksesnya. Dalam OOP, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C.

Contoh: jam tangan. Dalam hal ini, penting sekali untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.

Dengan kata lain enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

2. Pewarisan (Inheritance)

Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut sebagai multilevel inheritance.

Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.  Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.

Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.

Contoh Pewarisan

Keuntungan Pewarisan

    Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
    Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.

Single & Multiple Inheritance

Bahasa C adalah contoh multiple inheritance. Suatu class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.

Multilevel Inheritance

Suatu subclass bisa menjadi superclass bagi class yang lain.

3. Polimorfisme

Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Kesimpulan :

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi, maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah, dapat dilakukan dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

ISTILAH VARIABEL/STATEMENT DAN TIPE DATA

Variabel dan Tipe Data


Nama merupakan hal penting dalam teknik pemrograman. Dalam suatu program, nama digunakan untuk menyebut sesuatu. Untuk menggunakan "sesuatu" tersebut, programmer harus mengerti bagaimana aturan pemberian nama dan aturan untuk menggunakan nama tersebut dalam programnya. Atau dengan kata lain, programmer harus mengerti sintaks dan semantik dari nama.

Menurut aturan sintaks Java, nama merupakan rangkaian dari 1 atau lebih karakter. Harus dimulai dengan huruf dan harus terdiri dari huruf, angka atau karakter garis bawah '_'. Berikut ini adalah contoh nama yang diperbolehkan:

        N   n   rate  x15   quite_a_long_name   HelloWorld

Hurus kecil dan huruf besar dianggap berbeda, sehingga HelloWorld, helloworld, HELLOWORLD, dan heLLOwoRLD adalah nama yang berbeda-beda. Beberapa kata tertentu merupakan nama yang memiliki kegunaan tertentu oleh Java, dan tidak dapat dipergunakan oleh programmer. Kata-kata ini disebut reserved words (kata-kata cadangan) misalnya: class, public, static, if, else, while, dan lain-lain.

Hal lain yang penting adalah compound names atau nama campuran, yaitu yang merupakan nama biasa yang dihubungkan dengan titik, misalnya System.out.println. Idenya adalah "sesuatu" pada Java dapat terdiri dari "sesuatu" yang lain. Nama System.out.println artinya System menampung out dan out menampung println. Kita sebut "sesuatu" sebagai identifier (pengenal) tidak peduli apakah ia berupa nama tunggal atau campuran.

Program melakukan manipulasi data yang disimpan dalam memori. Dalam bahasa mesin, data hanya bisa diambil dengan menyebut alamatnya di memori. Dalam bahasa pemrograman tingkat tinggi seperti Java, nama bisa digunakan untk mengganti alamat data tersebut di memori. Tugas komputer adalah untuk melacak di mana data tersebut di simpan, sedangkan programmer menggunakan nama untuk memerintahkan komputer mengambil data tersebut dari memori. Nama yang digunakan seperti ini disebut variable.

Variabel sebenarnya berarti lebih kompleks. Variabel bukan isi dari data, tapi lokasi di memori yang menyimpan data tersebut. Variabel bisa diibaratkan sebagai kotak penyimpanan data, bukan isi kotaknya. Karena data di dalam kotak bisa berubah, variabel hanya dapat dipercaya pada satu saat saja, walaupun tempatnya selalu sama.

Dalam bahasa Java, satu-satunya cara untuk memasukkan data ke dalam variabel adalah dengan menggunakan assignment statement, atau pernyataan pemberian nilai. Pernyataan ini berbentuk:

variable = ekspresi;

di mana ekspresi menyatakan apapun yang berhubungan dengan nilai suatu data. Ketika komputer menjalankan instruksi ini, komputer akan menghitung dan menyimpan hasilnya ke dalam variabel. Contoh:

kecepatan = 40;

Variable dalam pernyataan di atas adalah kecepatan dan ekspresinya adalah angka 40. Komputer menghitung pernyataan ini dan menyimpan 40 ke dalam variabel kecepatan, dan mengganti apapun yang telah disimpan sebelumnya.

Sekarang misalnya kita ingin melakukan perhitungan yang lebih kompleks:

jarak = kecepatan * waktu

Di sini, * merupakan operasi perkalian. Komputer mengambil data yang disimpan dalam variabel kecepatan dan waktu, melakukan perkalian, dan menyimpan hasilnya dalam jarak.

Variabel dalam bahasa Java didesign untuk menyimpan hanya 1 jenis tipe data. Kompiler akan menampilkan kesalahan sintax apabila variabel ini dicoba untuk diberi tipe data jenis lain. Oleh karena itu Java disebut bahasa pemrograman bertipe kuat atau strongly typed language.

Ada 8 tipe data primitif dalam bahasa Java.

Java memiliki beberapa jenis variabel yang dapat dikelompokkan sebagai berikut :

  1. Instance Variables (tidak statis). Dalam bahasa pemrograman berorientasi objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objeknya.

 2. Class Variables (statis). Variabel ini merupakan bagian integral dari suatu kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk setiap objek pada kelas yang bersangkutan.


  3. Local Variables. Variabel ini didefinisikan di dalam suatu metoda (method) atau dalam suatu prosedur. Variabel ini bersifat lokal karena hanya dapat diakses oleh metoda atau prosedur tersebut.Parameter. Paramater atau argumen adalah variabel yang digunakan pada saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau metoda.



 TUGAS PROGRAM

public class lat2

{

        public static void main(String[] args)
    {

        //tempat deklarasi variabel beserta tipe data
        //tipe data primitif


        long data1 = 12345678;
        int data2 = 2348762;
        short data3 = 714;
        byte data4 = 34;
        float data5 = (float) 1.733; //tipe data pecahan
        double data6 = 4.967;  //tipe data pecahan
        char data7='C';
        boolean data8=true;

   
        System.out.println("Nilai Long :"+data1);
        System.out.println("Nilai int :"+ data2);
        System.out.println("Nilai short :"+data3);
        System.out.println("Nilai byte :"+data4);
        System.out.println("Nilai Double :"+data5);
        System.out.println("Nilai Float : "+data6);
        System.out.println("Nilai Char : "+data7);
        System.out.println("Nilai Boolean :"+data8);

       
    }

}




 selamat membaca dan mencoba :))
 

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");
    }

}