Minggu, 07 Oktober 2012

Sorting Dalam Java (Insertion & Selection )

Sampurasun . . .


kali ini saya akan mempostingkan tetang bagaimana men sorting dalam java , kita langsung saja gan . . .

Sorting adalah sebuah proses di mana merankai benda dalam urutan tertentu dan/atau dalam himpunan yang berbeda.

pengertinanya singkatnya yaitu , sorting berarti menyusun , menyusun suatu unsur unsur yang teracak acak menjadi berurutan , di mana bisa secara Ascending (kecil-besar) dan Descending (besar-kecil), tergantug kebutuhan dari si pemakai .

proses Sorting dalam java terbagi menjadi 4 :
  • Insertion 
  • Selection 
  • Merge Sort
  • Quick Sort
dan disini sekarang kan di bahas tentang sorting dengan cara Insertion dan Selection , ayo langsung aja gan pada source code nya ya , hehe :D



Insertion Sort


Algoritma insertion sort yaitu sebuah algoritma sederhana yang cukup efisien untuk mengurutkan sebuah list yang hampir terurut. Cara kerja algoritma ini adalah dengan mengambil elemen list.

satu-per-satu dan memasukkannya di posisi yang benar seperti namanya. Pada array, list yang baru dan elemen sisanya dapat berbagi tempat di array, meskipun cukup rumit. Untuk menghemat memori, implementasinya menggunakan pengurutan di tempat yang membandingkan elemen saat itu dengan elemen sebelumnya yang sudah diurut, lalu menukarnya terus sampai posisinya tepat. Hal ini terus dilakukan sampai tidak ada elemen tersisa di input. Salah satu implementasinya pada kehidupan sehari-hari adalah saat kita mengurutkan kartu remi. Kita ambil kartu satuper-satu lalu membandingkan dengan kartu sebelumnya untuk mencari posisi yang tepat.


public class ClassInsertion {
    public static void main(String[] args) {
         Scanner scan = new Scanner (System.in);
         System.out.print("Masukan angka yang akan di masukan : ");
         int jmlAngka = scan.nextInt();
         System.out.println("");

         int bil[] = new int [jmlAngka];
         for (int i=0;i<jmlAngka;i++){
         System.out.print("Silakan masukan angka "+(i+1)+ "    : ");
         bil[i] = scan.nextInt();}

        InsertionAsc(bil,bil.length);
        System.out.println("\n--------------------------------");
        System.out.print("Hasil pengurutan Ascending        : ");
        for(int i = 0; i < bil.length; i++){
           System.out.print(bil[i] + " ");
        }
        InsertionDesc(bil,bil.length);
        System.out.println("\n--------------------------------");
        System.out.print("Hasil pengurutan Descending       : ");
        for(int i = 0; i < bil.length; i++){
           System.out.print(bil[i] + " ");
        }
        System.out.println("\n--------------------------------");
    }

    static int [] InsertionAsc(int bilangan[], int n)
    {
        for (int i = 1; i < n; i++){
            int j = i;
            int B = bilangan[i];
            while ((j > 0) && (bilangan[j-1] > B)){
            bilangan[j] = bilangan[j-1];
            j--;
            }
          bilangan[j] = B;
        }
        return bilangan;
    }

     static int [] InsertionDesc(int bilangan[], int n)
    {
       for (int i = 1; i < n; i++){
            int j = i;
            int B = bilangan[i];
            while ((j > 0) && (bilangan[j-1] < B)){
            bilangan[j] = bilangan[j-1];
            j--;
            }
           bilangan[j] = B;
        }
        return bilangan;
    }
}


ini dia hasil  nya




Sekarang kita bahas

Selection Sort

algoritma nya yaitu melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik), elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.


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

         Scanner scan = new Scanner (System.in);
         System.out.print("Masukan angka yang akan di masukan : ");
         int jmlAngka = scan.nextInt();
         System.out.println("");

         int bil[] = new int [jmlAngka];
         for (int i=0;i<jmlAngka;i++){
         System.out.print("Silakan masukan angka "+(i+1)+ "    : ");
         bil[i] = scan.nextInt();}

        SelectionASC(bil);
        System.out.println("\n--------------------------------");
        System.out.print("Hasil pengurutan Ascending        : ");
        for(int i = 0; i < bil.length; i++){
           System.out.print(bil[i] + " ");
        }
        SelectionDesc(bil);
        System.out.println("\n--------------------------------");
        System.out.print("Hasil pengurutan Descending       : ");
        for(int i = 0; i < bil.length; i++){
           System.out.print(bil[i] + " ");
        }
        System.out.println("\n--------------------------------");
    }

    static int [] SelectionASC (int[] bil) {
        for(int i=0; i<bil.length; i++){
            for(int j=i+1; j<bil.length; j++){
                if(bil[i] > bil[j]){
                    int temp = bil[j];
                    bil[j] = bil[i];
                    bil[i] = temp;
                }
            }
        }
        return bil;
    }

    static int [] SelectionDesc (int[] bil) {
        for(int i=0; i<bil.length; i++){
            for(int j=i+1; j<bil.length; j++){
                if(bil[i] < bil[j]){
                    int temp = bil[j];
                    bil[j] = bil[i];
                    bil[i] = temp;
                }
            }
        }
        return bil;
    }
}

ini di hasilnya 

di lihat dari hasilnya , sebenarnya sama saja , tapi di sini yang membedakan bagai mana memproses data nya , coba lihat lagi algortima programnya yang di atas , kemudian untuk penggunaan nya tergantung kepada programernya masing masing , mana yang lebih efektif untuk di pakai .

jangan lupa untuk pelajari lagi script nya ok ! , kali ini saya tidak mencantumkan dulu komentar dalam script seperti biasanya , nanti kalau ada waktu saya pasti isi dengan komentar script nya , heheh :D

Semoga Bermanfaat  
Hatur Nuhun ,









Senin, 10 September 2012

Program Menentukan Pesanan Dalam Java

Sampurasun . . .

          kali ini saya akan mempostingkan kembali mengenai pembuatan program , kali ini programnya berjudul "Menentukan Sebuah pesanan " .

langsung aja gan pada programnya langsung ,eheh
Disini saya hanya buat 1 Class saja yang di berinama Class "Pesanan".

------------------------------------------------------------------------------------------------------------


package ProgPesanan;
// Menandakan Penamaan package yaitu ProgPesanan

import java.util.Scanner;
// import library java.util.scanner yang berguna memberi input dari keyboard

/**
 *
 * @author agi
 */

public class Pesan {
    /*
    menandakan nama Class yaitu "Pesan"
    class menggunakan access specifier public, yang mengindikasikan bahwa class
    kita mempunyai akses bebas ke class yang lain dari package yang lain pula
    */
    
    public static void main(String[] args)
    //mengindikasikan nama suatu method dalam class "Pesan" yang bertindak sebagai method utama.
    {
        String menu[]={"Batagor","Bandrek","Bajigur"};
        //Inisialisasi variable array "menu" dengan tipe data String
        //disini di gunakan sebuah array agar mempersingkat kode program dan lebih tertata
        int harga[]={5000,2500,2000},
        //Inisialisasi variable array "harga" dengan tipe data Integer
        //disini di gunakan sebuah array agar mempersingkat kode program dan lebih tertata
            total = 0;
        //Inisialisasi variable "total" dengan tipe data Integer
        //yang nantinya berguna untuk mengumpulkan semua hasil jumlah semua harga

        Scanner scan = new Scanner (System.in);
         //Instansisi sebuah Class Lib untuk mendapatkan Input dari Keyboard

        //Tampilan Menu
        System.out.println("*************************");
       //menampilkan teks yang di apit tanda("") pada layar
        System.out.println("*  Daftar Menu Makanan  *");
        System.out.println("*************************");
        System.out.println("1. "+menu[0]+" || Harga :"+harga[0]);
        System.out.println("2. "+menu[1]+" || Harga :"+harga[1]);
        System.out.println("3. "+menu[2]+" || Harga :"+harga[2]);
        System.out.println("*************************\n");
        // penggunaan "\n" adalah sebagai enter otomatis
        
        
        for (String ulang = "Y"; ulang.equalsIgnoreCase("Y");)
        //Sebuah pengulangan
        /*
         dengan menggunakan fungsi "equalsIgnoreCase", maka objek string yang bersangkutan akan
         dibandingkan dengan objek string "Y" pada parameter fungsi. penggunaan fungsi ini tidak melihat
         perbedaan antara huruf besar dan huruf kecil.
        */
         {
        System.out.print("Pilih (1 s/d 3) : ");
        int pil = scan.nextInt();
        /*
          Deklarasikan variabel String "pil"  untuk mendapatkan input,
          dan di gunakan fungsi nextInt() untuk mendapatkan input dari keyboard berupa Integer
         */

        switch (pil)
        /*
         penggunaan struktur kontrol pemilihan menggunakan switch yang di gunakan untuk menyeleksi
         sebuah pilihan yang tadi di inputkan oleh user dan nantinya di seleksi.
         */ 
          {
       case 1:System.out.println("Anda Memilih "+menu[pil-1]+" Dengan Harga Rp."+harga[pil-1]+"\n");
       total = total +harga[0];
       break;
       case 2:System.out.println("Anda Memilih "+menu[pil-1]+" Dengan Harga Rp."+harga[pil-1]+"\n");
       total = total +harga[1];;
       break;
       case 3:System.out.println("Anda Memilih "+menu[pil-1]+" Dengan Harga Rp."+harga[pil-1]+"\n");
       total = total +harga[2];;
       break;
            /*
              Ketika sebuah case pada pernyataan switch menemui kecocokan,maka semua pernyataan
              pada "case" tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain
              yang berada pada case yang sesuai juga akan dieksekusi.
              Dan untuk menghindari program mengeksekusi pernyataan pada case berikutnya,
              kita menggunakan pernyataan "break" sebagai pernyataan akhir pada setiap blok case.
             */
       default:System.out.println("Anda Aalah Memasukan Angka ");
            /*penggunaan "default" di sini adalah ketika semua pernyatan tidak menemui kecocokan,
             maka semua pernyatan pada "default" akan di eksekusi*/
        
        }
            System.out.println("*************************************");
            System.out.print("Apakah Anda Akan Memesan Lagi (Y/N) : ");
            ulang = scan.next();
            System.out.println("*************************************\n");
       /*sebuah input yang nantinya di gunakan untuk menyeleksi apakah akan di ulang atau tidak
       ketika user memasukan "Y" atau "y" maka akan masuk ke metode pengulangan "for" yang di atas
       dan kemudian kode blok program yang ada di dalam for akan di ulang lagi , begitu seterusnya.
       dan jika user memasukan "N" atau "n" maka akan masuk ke bagian kode blok program yang ada di
       bawah ini , dan tidak akan kembali kebagian for.
        */

            if(ulang.equalsIgnoreCase("N"))
             //ketikan user memasukan "N" atau "n" maka akan menampilkan tampilan sebagai berikut
            
            {
            System.out.println("----------------------------------------");
            System.out.println("Total Yang Harus Anda Bayar : Rp."+total);
            System.out.println("----------------------------------------");
            }

        }
    }
}
------------------------------------------------------------------------------------------------------------
Ini untuk hasilnya jika sudah di compile
ada dua versi nih , ada yang lewat NetBeans IDE 6.9 dan lewat Command Promt sama aja sih ,bebas mau milih yang mana juga

tapi disini kalau lewat Command Promt langsung di run dari .jar nya ,heheh
langsung aja ini dia hasilnya hasilnya :





Dan untuk penjelasan script nya, saya sudah kasih di komentar di bagian scriptnya dan semoga bisa di mengerti. Jika ada kesalahan silahkan untuk di koreksi , malum saya masih belajar , heheh :D
Jangan Lupa untuk di pelajari

Semoga Bermanfaat  
Hatur Nuhun ,


Ini dia jika anda ingin men Download file nya (.class .jar ) , hhehe :

Kamis, 30 Agustus 2012

Program Menentukan Jumlah Bilangan Bulat dan Pecahan


Sampurasun . . .

       Kali Ini saya akan mempostingkan mengenai pembuatan program "Menentukan Jumlah bilangan Bulat dan Pecahan" . Dikarnakan ada tugas Tugas Hari Raya dari sekolah dan harus dipostingkan di blog. heheh

          Disini saya buat 2 class untuk tugas ini. Yang pertama adalah class "ClassUtama dimana merupakan class utama nya, dan class yang kedua yaitu class "ClassProses".
         
          Untuk Class yang pertama "ClassUtama" ini dia scriptnya :

------------------------------------------------------------------------------------------------------------
package Seleksi_BulatPecahan;
    // Menandakan Penamaan package yaitu Seleksi_BulatPecahan


import java.io.BufferedReader;
import java.io.InputStreamReader;
      /*
      Perintah tersebut berarti mengimport semua kelas dalam paket "java.io."
      tertutam yang di utamakan ialah "BufferedReader" dan "InputStreamReader"
      yang berguana untuk memberi inputan dari keyboard
      */

/**
 *
 * @author agi
 */

public class ClassUtama
    /*
    menandakan nama Class yaitu "ClassUtama"
    class menggunakan access specifier public, yang mengindikasikan bahwa class
    kita mempunyai akses bebas ke class yang lain dari package yang lain pula
    */
    {

    public static void main(String[] args) throws Exception {
        /*mengindikasikan nama suatu method dalam class "ClassUtama" yang bertindak
         sebagai method utama.*/
        /*penggunaan "throws Exception" di sini di tujukan untuk mempersingkat
         penggunaan kode program dalam penggunaan BufferedReader yang bisanya
         menggunakan "try dan Catch" , dan disini di coba untuk di hilangkan */

        int HBilBul = 0, //Inisialisasi variable "HBilbul" dengan tipe data Integer
                HBilPec = 0 ;//Inisialisasi variable "HBilPec" dengan tipe data Integer
        /* variable "HBilBul" untuk Bulat, variable "HBilPec" untuk Pecahan,
        variabel diatas digunakan untuk menyimpan jumlah banyaknya bilangan bulat
        ,bilangan pecahan*/

         BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in) );
             //Instansisi sebuah Class Lib untuk mendapatkan Input dari Keyboard

         System.out.print("Masukan Jumlah Bilangan Yang Akan Dimasukan :");
            //menampilkan teks yang di apit tanda("") pada layar

         String nilai = dataIn.readLine();
            /*Deklarasikan variabel String "nilai"  untuk mendapatkan input,
            dan di gunakan fungsi readLine() untuk mendapatkan input dari keyboard*/

         int JmlAngka = Integer.parseInt(nilai);
            /*Code di atas untuk  konversi dari variable "nilai" dengan tipe data 
             String ke variable "JmlAngka" dengan tipe data Integer, karna hasil
             inputan dengan variable "nilai" akan dilakukan perhitungan/penggunaan
             tipe data Integer, sehingga perlu di konversikan terlebih dahulu.*/

         forint i = 1; i < = JmlAngka ; i ++){
                //proses pengulangan untuk memasukan jumlah bilangan dari user

             System.out.print("Bilangan Ke "+i+":");
             String bil = dataIn.readLine(); // untuk mendapatkan Input dari keyboard

             double angka = Double.parseDouble(bil);
                /*Code di atas untuk konversi dari variable "bil" dengan
                 tipe data String ke variable "angka" dengan tipe data double, 
                 karna hasil inputan dengan variable "bil" akan dilakukan perhitungan,
                 sehingga perlu di konversikan terlebih dahulu.*/

             ClassProses pilih = new ClassProses();
                //Sebuah instansiasi class "ClassProses"

             HBilBul = pilih.Bulat(angka,HBilBul);  //memanggil fungsi "Bulat"
             HBilPec = pilih.Pecahan(angka,HBilPec);//memanggil fungsi "Pecahan"

         }

         System.out.println("Jumlah Bilanga Bulat       :"+HBilBul);
         System.out.println("Jumlah Bilangan Pecahan    :"+HBilPec);
         //Menampilkan output berupa jumlah bilangan bulat dan bilangan pecahan
    }

}
------------------------------------------------------------------------------------------------------------

Dan yang Ini untuk Script class yang kedua yaitu class "ClassProses"

------------------------------------------------------------------------------------------------------------

package Seleksi_BulatPecahan;
// Menandakan Penamaan package yaitu Seleksi_BulatPecahan

/**
 *
 * @author agi
 */

public class ClassProses
//menandakan nama Class yaitu "ClassProses"
    {
  public int Bulat(double angka, int HBilBul)
          //fungsi penyeleksi untuk bilangan bulat
          //serta pendeklarasian Variable 
    {
        if (angka % 1==0)
            // proses Penyeleksian Bilangan Bulat menggunakan Operator Modulus

            HBilBul = HBilBul + 1;
             /*
             jika kondisi variable "angka" di MOD kan dengan 1 dan hasilnya 0 ,
             maka akan masuk ke "HBilBul" dan setiap bilangan bulat yang muncul,
             isi variabel "HBilBul" akan bertambah 1
             */

        return HBilBul;
        //mengembalikkan nilai variabel "HBilBul" ke pemanggil fungsi

    }
  public int Pecahan(double angka, int HBilPec)
          //fungsi penyeleksi untuk bilangan pecahan
    {
        if (angka % 1 != 0)
            // proses Penyeleksian Bilangan Bulat menggunakan Operator Modulus

            HBilPec = HBilPec + 1;
            /*
             jika kondisi variable "angka" di MOD kan dengan 1 dan hasilnya
             tidak sama dengan 0 ,maka akan masuk ke "HBilPec" dan setiap bilangan
             pecahant yang muncul,isi variabel "HBilPec" akan bertambah 1
             */
        return HBilPec;
         //mengembalikkan nilai variabel "HBilPec" ke pemanggil fungsi
    }

}


------------------------------------------------------------------------------------------------------------

Ini untuk hasilnya jika sudah di compile
ada dua versi nih , ada yang lewat NetBeans IDE 6.9 dan lewat Command Promt sama aja sih ,bebas mau milih yang mana juga

tapi disini kalau lewat Command Promt langsung di run dari .jar nya ,heheh
langsung aja ini dia hasilnya hasilnya :





Dan untuk penjelasan script nya, saya sudah kasih di komentar di bagian scriptnya dan semoga bisa di mengerti. Jika ada kesalahan silahkan untuk di koreksi , malum saya masih belajar , heheh :D

Semoga Bermanfaat  
Hatur Nuhun , 



Ini dia jika anda ingin men Download Script nya 
disana langgung satu paket (.class .jar .java) , hhehe :



Keunggulan / Kelebihan Java


Kali ini saya kan mempostingkan tentang apa sih itu kelebihan java , dan mengapa kita harus mempelajari java , ini dia alasannya , heheh :D

Menurut white paper resmi dari SUN, Java memiliki karakteristik berikut :

·          Sederhana

Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.

·          Berorientasi objek (Object Oriented)

Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objek-objek tersebut.

·          Dapat didistribusi dengan mudah

Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya libraries networking yang terintegrasi pada Java.

·          Interpreter

Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java bytecodes dapat dijalankan pada platform yang berbeda-beda.

·          Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai runtime-Exception handling untuk membantu mengatasi error pada pemrograman.

·          Aman

Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.

·          Architecture Neutral

Program Java merupakan platform independent. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java Virtual Machine.

·          Portabel
Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang.

·          Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time Compilers (JIT).

·          Multithreaded

Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan.

·          Dinamis

Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.

Rabu, 29 Agustus 2012

Java ?


       Kali ini saya akan mem postingkan tentang apa sih java itu dan bagaimana sih java itu , Bagi kalian yang belum tau ,Nih saya akan saya kasih tahu apa sih itu java , hehe :D

Langsung aja gan . . .

 ü  Java Merupakan Sebuah Bahasa Pemrograman

Sebagai sebuah bahasa pemrograman, Java dapat membuat seluruh bentuk aplikasi,desktop, web dan lainnya, sebagaimana dibuat dengan menggunakan bahasa pemrograman konvensional yang lain.
     
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai system operasi dan bersifat open source.


 ü  Java Merupakan Sebuah Development Environment

Sebagai sebuah peralatan pembangun, teknologi Java menyediakan banyak tools : compiler, interpreter, penyusun dokumentasi, paket kelas dan sebagainya.


 ü  Java Merupakan Sebuah Aplikasi

Aplikasi dengan teknologi Java secara umum adalah aplikasi serba guna yang dapat dijalankan pada seluruh mesin yang memiliki Java Runtime Environment (JRE).


ü  Java Merupakan Sebuah Deployment Environment

Terdapat dua komponen utama dari Deployment Environment. Yang pertama adalah JRE, yang terdapat pada paket J2SDK, mengandung kelas–kelas untuk semua paket teknologi Java yang meliputi kelas dasar dari Java, komponen GUI dan sebagainya. Komponen yang lain terdapat pada Web Browser. Hampir seluruh Web Browser komersial menyediakan interpreter dan runtime environment dari teknologi Java.

Senin, 27 Agustus 2012

Sejarah Bahasa Pemrograman 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 manufaktur manufaktur berbeda memilih processor yang berbeda pula, maka bahasa harus bebas dari manufaktur manapun. Proyek ini 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 konsumer 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, sertakemampuan 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