Selasa, 14 Mei 2013

Listing Program Perhitungan Statistika dengan Java


import java.util.Scanner;

class statistika{
// Scanner Program
Scanner input = new Scanner(System.in);

// Variabel untuk probabilitas
public int j, k;

// Variabel untuk regresi
double[] x,y,x2,y2,xy;
int n;
double a1,a0,b1,b0;

// Variabel untuk median & mean
int banyak;
int data[];
int temp;

statistika(){menu();}


public void menu(){
System.out.println("==========================");
System.out.println("|   PROGRAM STATISTIKA |");
System.out.println("==========================");
System.out.println("| 1. Probabilitas        |");
System.out.println("| 2. Regresi             |");
System.out.println("| 3. Mean & Median       |");
System.out.println("| 4. Exit                |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil){
case 1: clean(); prob(); break;
case 2: clean(); reg(); break;
case 3: clean(); medimean(); break;
case 4: System.exit(0);
default: clean(); menu();
}
}

// UNTUK JARAK MENU SATU DENGAN MENU LAINNYA
public void clean(){
for (int i=0;i<=0.5;i++){
System.out.println("\n");}}

// MENU PROBABILITAS
public void prob(){
System.out.println("==========================");
System.out.println("|   Menu Probabilitas |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai         |");
System.out.println("| 2. Permutasi           |");
System.out.println("| 3. Kombinasi           |");
System.out.println("| 4. Menu Utama          |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil){
case 1: clean(); inputData(); clean(); prob();
case 2: clean(); per(); clean(); prob();
case 3: clean(); kom(); clean(); prob();
case 4: clean(); menu();
default: clean(); prob();
}
}

// MENU REGRESI
public void reg() {
System.out.println("==========================");
System.out.println("|      Menu Regresi      |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai         |");
System.out.println("| 2. Regresi Y kepada X  |");
System.out.println("| 3. Regresi X kepada Y  |");
System.out.println("| 4. Menu Utama          |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
switch(pil) {
case 1: clean();
try{ input(); }
catch(IndexOutOfBoundsException ex){ System.out.println("Ada Kesalahan pada proses IO"); }
clean(); reg();    
case 2: clean(); regresiYX(); clean(); reg();      
case 3: clean(); regresiXY(); clean(); reg();
case 4: clean(); menu();              
default: clean(); reg(); } }

// MENU MEDIAN & MEAN
public void medimean() {
System.out.println("==========================");
System.out.println("|   Menu Median & Mean   |");
System.out.println("==========================");
System.out.println("| 1. Input Nilai         |");
System.out.println("| 2. Median              |");
System.out.println("| 3. Mean                |");
System.out.println("| 4. Menu Utama          |");
System.out.println("==========================");
System.out.print(" Masukan pilhan Anda : ");
int pil = input.nextInt();
    switch(pil){
    case 1: clean();
    try{ prosesinput();}
catch(IndexOutOfBoundsException ex){ System.out.println("Ada Kesalahan pada proses IO!!!"); }
clean(); medimean();
    case 2: clean(); median(); clean(); medimean();
    case 3: clean(); mean(); clean(); medimean();
    case 4: clean(); menu();
default : clean(); medimean(); } }


// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU PROBABILITAS
public void inputData(){
System.out.print("Masukan Nilai n : ");
j = input.nextInt();
System.out.print("Masukan Nilai k : ");
k = input.nextInt();
prob();
}

public int fak(int j){
int jumlah = 1;
for(int i=1;i<=j;i++){
jumlah = jumlah * i;
}
return jumlah;
}

public void per(){
if(j<k){System.out.println("\nMATH ERROR - n<k");}
else{
System.out.println("\nP("+j+","+k+")"+"= "+(fak(j)/fak(j-k)));
}
prob();
}

public void kom(){
if(j<k){System.out.println("\nMATH ERROR - n<k");}
else{
System.out.println("\nC("+j+","+k+")"+"= "+(fak(j)/(fak(j-k)*fak(k))));
}
prob();
}


// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU REGRESI
public void input() {
System.out.print("masukan jumlah data :");
n = input.nextInt();
x= new double[n];
y= new double[n];
x2 = new double[n];
y2=new double[n];
xy=new double[n];
System.out.print("\nmasukkan data x :\n");
for(int i=0;i<n;i++) {
System.out.print("data ke-"+(i+1)+":");
x[i]= input.nextInt(); }
System.out.println("\nmasukkan data y :");
for(int i=0;i<n;i++) {
System.out.print("data ke-"+(i+1)+":");
y[i]= input.nextInt(); }
 
for(int i=0 ; i<n;i++)   {
  x2[i]=Math.pow(x[i],2);
  y2[i]=Math.pow(y[i],2);
  xy[i]= x[i] * y[i] ;   } }

public double sigma(double k[]) {
double data = 0;
for(int i=0; i<n;i++)    {
data = data + k[i];    }
return(data);    }
 
public void regresiYX()    {
a1 = ((n*sigma(xy)) - (sigma(x) * sigma(y))) /
((n*sigma(x2))-Math.pow(sigma(x),2));
a0 = ((sigma(y) * sigma(x2)) - (sigma(x) * sigma(xy))) /
((n*sigma(x2))-Math.pow(sigma(x),2));
System.out.println("Persamaan Regrsi Y terhadap X");
if (a1> 0)
System.out.println("Y = "+a0+" + "+a1+"x");
else
System.out.println("Y = "+a0+a1+ "x");    }
   
public void regresiXY()    {
b1 = ((n*sigma(xy)) - (sigma(y) * sigma(x))) /
((n*sigma(y2))-Math.pow(sigma(y),2));
b0 = ((sigma(x) * sigma(y2)) - sigma(y) * sigma(xy)) /
(n* sigma(y2)-Math.pow(sigma(y),2));
System.out.println("Persamaan Regresi X terhadap Y");    
if (b1>0)
System.out.println("X = "+b0+" + "+b1+"y");
else
System.out.println("X = "+b0+b1+"y");    }


// INI ADALAH KUMPULAN METHOD YANG DIGUNAKAN MENU MEDIAN & MEAN


   
public void prosesinput(){
    System.out.print("Banyaknya Data : ");
    banyak = input.nextInt();
    data = new int[banyak];
    for(int i=0;i<=banyak-1;i++){
    System.out.print("Data ke-"+(i+1)+" : ");
    data[i]= input.nextInt();
    }
    }
   
    public void urut(){
    for(int i=0;i<=banyak-1;i++){
    for(int j=i+1;j<=banyak-1;j++){
    if(data[i] > data[j]){
    temp = data[i];
    data[i] = data[j];
    data[j] = temp;
    }
    }
    }
    System.out.print("Data yang sudah diurut : ");
    for(int i=0;i<=banyak-1;i++){
    System.out.print(data[i]+" ");
    }
    }


    public void mean(){
    int jumlah = 0;
    System.out.print("Data sudah diurut : ");
    for(int i=0; i<=banyak-1; i++){
    System.out.print(data[i]+" ");
    jumlah = jumlah + data[i];
    }
    System.out.println("\nMean = "+(jumlah/banyak));
    }
   
    public void median(){
    urut();
    int bil = banyak % 2;
    if(bil==0){
    int posisi = banyak / 2;
    System.out.println("\nDatanya Genap");
    double median = ((data[posisi-1] + data[posisi+1]) / 2);
    System.out.printf("mediannya = %.2f",median);
    }
    else{
    int posisi = (banyak + 1) / 2;
    System.out.println("Datanya Ganjil");
    double median = data[posisi-1];
    System.out.printf("\nMediannya = %.2f",median);
    }
    }



public static void main(String[] args){
new statistika();
}

}


Created by : Randi Mubarok, Muhammad Syahrul & Heriyanto (Kelas 2IA21)
dan terima kasih kami ucapkan kepada dosen PBO kami : Ibu Suryaningrum

Selasa, 30 April 2013

Cara Membuat Aplikasi Stopwatch berbasis GUI di Java


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Stopwatch extends JFrame implements ActionListener {
private int jam = 0;
private int menit = 0;
private int detik = 0;
private int delay = 1000;
private Timer timer = null;
private Label label = new Label ("00:00:00");
private Button btnStart = new Button ("Start");
private Button btnPause = new Button ("Pause");
private Panel panel = new Panel();

public Stopwatch(){
super("Stopwatch created by Randi Heri & Syahrul");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(100,100);
setSize(500,300);
btnStart.addActionListener(this);
btnPause.addActionListener(this);
panel.setLayout(new GridLayout(1,2));
panel.add(btnStart);
panel.add(btnPause);
label.setFont(new Font("arial",Font.BOLD,25));
label.setAlignment(Label.CENTER);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(label,BorderLayout.CENTER);
getContentPane().add(panel,BorderLayout.SOUTH);
setVisible(true);
timer = new Timer(delay, display);}

public void actionPerformed(ActionEvent ae){
if (ae.getSource() == btnStart)
{
if(!timer.isRunning())
timer.start();
}
else
{
if (timer.isRunning())
timer.stop();
}
}

private ActionListener display = new ActionListener() {
public void actionPerformed(ActionEvent e){
String str1 = Integer.toString(jam);
String str2 = Integer.toString(menit);
String str3 = Integer.toString(detik);

if (jam < 10) str1 = "0" + str1;
if (menit < 10) str2 = "0" + str2;
if (detik < 10) str3 = "0" + str3;

label.setText(str1 + ":" + str2 + ":" + str3);
detik++;
if(detik == 60) {
detik = 0;
menit++;
if (menit == 60) {
menit = 0;
jam++;
if (jam == 24)
jam = 0;
}
}
}
};
public static void main (String[]args) {
new Stopwatch();
}
}

Selasa, 02 April 2013

Cara Kerja Flashdisk

Apa si Flashdisk itu???

Flash Memory adalah media penyimpanan yang berjenis “non-volatile” yang berarti tidak memerlukan power untuk menjaga keberadaan data. Flash Memori hampir sama dengan EEPROMC (Electrically Erasable Programmable ROM) Kapasitas memorinya pun beragam, mempunyai kemampuan transfer data untuk penulisan mencapai 88 Mbps sedangkan untuk pembacaan mencapai 5 Mbps. Para ilmuan membuatnya menjadi sistem penyimpan data portabel, mirip disket, maka sering disebut Flash Disk. Tipe lain dari Flash Memory biasanya digunakan dalam perangkat portable yang dikendalikan oleh baterai (MP3 Player, Phone Cellular, Kamera digital dll.).
Flash Disk adalah media penyimpan dari floppy driveB jenis lain yang umumnya mempunyai kapasitas memori 128 MB s/d 64 GB, dengan menggunakan interface jenis USBC (Universal Serial Bus), sangat praktis dan ringan dengan ukuran berkisar 96 x 32 mm dan pada bagian belakang bentuknya agak menjurus keluar, digunakan untuk tempat penyimpanan baterai jenis AAA dan LCD (Untuk Fitur MP3, Voice Recording dan FM Tuner) dan terdapat port USB yang disediakan penutupnya yang berbentuk sama dengan body utamanya. Flash disk termasuk alat pemyimpanan data memory flash tipe NAND (Umumnya digunakan pada Kamera Digital), ada juga yang dikemas dalam ukuran kecil menjadi Compact Flash, SD-Card, MMC dan sejenisnya.

Bagian - Bagian Flashdisk sesuai gambar di atas :
    1 Konektor USB
    2 Perangkat Pengontrol Penyimpanan
    3 Poin Tes (Titik-titik Percobaan)
    4 Chip Flash Memory
    5 Oscillator Kristal
    6 Lampu Indikator
    7 Write-Protect Switch
    8 Ruang untuk Flash memor ke 2

Cara Kerja Flashdisk :
  • Input yaitu peralatan yang menggunakan USB (Flashdisk, camera, joystick,dll)
  • Interface yaitu Port antarmuka yang menghubungkan USB
  • Chipset southbridge adalah I/O pengendali yang mengatur kecepatan transfer interface USB,Firewire,dll.
  • Output berupa keluaran dari hasil pemprosesan(monitor,printer,dll

Tipe Flashdisk biasanya menggunakan struktur NAND Flash Memory Chip memori flash NAND mempunyai dua tingkat struktur hirarkis. Pada tingkat terendah, bit disusun ke dalam halaman, biasanya masing-masing 2 KB. Pages/halaman adalah unit dari read and write dalamNAND flash. Dalam rangka untuk memulai sebuah operasi I/O, sebuah perintah menetapkan pages ID dikirim ke memori flash controller, yang menetapkan waktu setup tetap terlepas dari jumlah bit harus dibaca atau ditulis. Dengan demikian, bit berikutnya dalam halaman yang dipilih saat ini dapat dibaca atau ditulis jauh lebih efisien daripada bit dari halaman yang berbeda.
Tidak seperti seperti dalam sebuah disk, kesalahan untuk memulai sebuah operasi I/O pada halaman adalah konstan, bukan fungsi dari operasi I/O sebelumnya (tidak ada keuntungan untuk halaman membaca secara berurutan). Pages dikelompokkan ke dalam struktur tingkat yang lebih tinggi yang disebut menghapus blok, yang terdiri dari masing-masing ~64 halaman. Sementara halaman adalah unit read dan write, erase block adalah unit penghapusan (erasure). Seperti dijelaskan di atas, menulis ke halaman hanya dapat menghapus bit (membuat mereka nol), tidak mengesetnya. Akhirnya, jumlah siklus menghapus per erase block terbatas, dan biasanya berkisar dari 10.000 hingga 1.000.000. Setelah batas siklus telah terlampaui, maka blok hilang, dan itu mustahil untuk melakukan menulis lebih jauh ke halaman di dalamnya.

Sumber :

Rabu, 12 Oktober 2011

Contoh Java

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

    String text = "kyle boon";

    byte[] codedtext = new TripleDESTest().encrypt(text);
    String decodedtext  = new TripleDESTest().decrypt(codedtext);

    System.out.println(codedtext);
    System.out.println(decodedtext);
}
public byte[] encrypt(String message)
{
    try
        {
                final MessageDigest md = MessageDigest.getInstance("md5");
        final byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8"));
        final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
        for (int j = 0,  k = 16; j < 8;)
        {
            keyBytes[k++] = keyBytes[j++];
        }

        final SecretKey key = new SecretKeySpec(keyBytes, "DESede");
        final IvParameterSpec iv = new IvParameterSpec(new byte[8]);
        final Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, key, iv);

        final byte[] plainTextBytes = message.getBytes("utf-8");
        final byte[] cipherText = cipher.doFinal(plainTextBytes);
        final String encodedCipherText = new sun.misc.BASE64Encoder().encode(cipherText);

        return cipherText;    
    }
    catch (java.security.InvalidAlgorithmParameterException e) { System.out.println("Invalid Algorithm"); }
    catch (javax.crypto.NoSuchPaddingException e) { System.out.println("No Such Padding"); }
    catch (java.security.NoSuchAlgorithmException e) { System.out.println("No Such Algorithm"); }
    catch (java.security.InvalidKeyException e) { System.out.println("Invalid Key"); }
    catch (BadPaddingException e) { System.out.println("Invalid Key");}
    catch (IllegalBlockSizeException e) { System.out.println("Invalid Key");}
    catch (UnsupportedEncodingException e) { System.out.println("Invalid Key");}

    return null;
}
public String decrypt(byte[] message)
{
    try
        {
                final MessageDigest md = MessageDigest.getInstance("md5");
        final byte[] digestOfPassword = md.digest("HG58YZ3CR9".getBytes("utf-8"));
        final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
        for (int j = 0,  k = 16; j < 8;)
        {
            keyBytes[k++] = keyBytes[j++];
        }

        final SecretKey key = new SecretKeySpec(keyBytes, "DESede");
        final IvParameterSpec iv = new IvParameterSpec(new byte[8]);
        final Cipher decipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
        decipher.init(Cipher.DECRYPT_MODE, key, iv);

        //final byte[] encData = new sun.misc.BASE64Decoder().decodeBuffer(message);
        final byte[] plainText = decipher.doFinal(message);

        return plainText.toString();            
    }
    catch (java.security.InvalidAlgorithmParameterException e) { System.out.println("Invalid Algorithm"); }
    catch (javax.crypto.NoSuchPaddingException e) { System.out.println("No Such Padding"); }
    catch (java.security.NoSuchAlgorithmException e) { System.out.println("No Such Algorithm"); }
    catch (java.security.InvalidKeyException e) { System.out.println("Invalid Key"); }
    catch (BadPaddingException e) { System.out.println("Invalid Key");}
    catch (IllegalBlockSizeException e) { System.out.println("Invalid Key");}
    catch (UnsupportedEncodingException e) { System.out.println("Invalid Key");} catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }

    return null;
}

Asal Muasal Nama Platform Java

Penciptaan platform dan bahasa pemograman ini bukan berasal dari jawa ataupun bermarkas di pulau jawa. Akhir tahun 1990, java tadinya merupakan proyek internal di Sun Microsystem Inc, Santa Clara, California, America. Proyek cetusan Patrik Naughton itu diberi nama Stealth Project dan setelah James Gosling dan Mike Sheridan, bergabung nama itu berganti menjadi Green Project dengan dibantu oleh beberapa ahli. Proyek dimulai dari sebuah kantor kecil di Stand Hill Road, Metro Park, California. Mereka berupaya menciptakan sebuah tekhnologi baru, dengan menganadalakan bahasa pemograman C++. Tetapi salah seorang tim menemukan berbagai kelemahan dari bahasa pemograman tersebut. Ia pun mengusulkan untuk membuat bahasa baru, dengan mengusulkan bahasa baru, dengan menggabungkan bahasa MESA dan C.
Setelah mencari nama yang cocok, munculah bahasa baru yaitu Oak. Nama Oak muncul ketika salah seorang dari mereka melihat sebuah pohon oak yang tumbuh disana. Baru pada tahun 1992 tim berhasil mendemokan flatform baru yang terdiri dari system operasi Green, bahasa Oak, Libraries dan sebuah perangkat keras.
Percobaan pertama mereka menciptakan perangkat semacam PDA yang menampilkan gambar grafik, kemudian disebut Star7. Alat itu berhasil diujicoba pada September 1992. 2 bulan kemudian, Green Project sepenuhnya dimiliki First Person Inc, sebuah perusahaan dibawah subsidi Sun Microsystem.
Pertengahan 1994 tim ditantang untuk merambah dunia internet. Pada saat itu muncul browser web baru yang bernama Mosaic. Patrik Naughton menciptakan Pototipe browser kecil yang dinamai WebRunner. Ditahun yang sama, mereka bermaksud mematenkan nama Oak, tetapi nama itu sudah dipakai oleh bahasa pemograman lain. Mau tidak mau mereka harus mengganti namanya.
Akhirnya ide cemerlang itu dating juga, suatu hari beberapa orang dari tim melakukan perjalanan keluar kota dan mampir dikedai kopi. Saat menikmati kopi hangat, tiba-tiba terbesit kata “java” untuk mengganti kata Oak. Orang-orang Amerika serig menyebut kopi dengan istilah java.
Gosling dan kawan-kawan pun menyepakati nama java dengan secangkir kopi hangat sebagai simbolnya. Dan browser WebRunner pun berubah nama menjadi HotJava.
Walaupun idenya sudah jelas, ada juga yang menghubungkan nama java sebagai singkatan dan inisial nama beberapa anggota yaitu James gosling, Athur Van holf dan Andy bechtolsheim.

Karakteristik Bahasa Pemrograman Java

JAVA IS SIMPLE : Sebenarnya tidak ada satu bahasa pemrograman pun yang dapat dikatakan sederhana (simple). Akan tetapi bila dibandingkan dengan pendahulunya seperti bahasa C++ yang merupakan bahasa pemrograman yang mendominasi duni pemrograman Java memang lebih sederhanan. Biarpun Java sebagian besar dibuat menggunakan bahasa C++, tetapi dibuat lebih sederhana dan lebih ditingkatkan lagi kemampuannya. Contohnya, pada java tidak ada lagi pointer dan multiple inheritance yang kadang membuat pemrograman jadi lebih rumit. Multiple inheritance pada C++ digantikan oleh interface pada pointer dihilangkan. Java menggunakan alokasi memori otomatis dan memiliki garbage collection

Java tidak mendukung fitur-fitur rumit berikut ini :
• Explicit pointer manipulation
• Implicit type casting
• Strutures atau unions
• Operator overloading
• Templates
• Header files
• Multiple inheritance

Beberapa fasilitas rumit C++ ditiadakan seperti pointer dan manajemen memori yang dapat didefinisikan pemrogram. Elemen – elemen ini sungguh rumit untuk pemrogram mahir sekalipun. Pencarian kesalahan karena penggunaan pointer merupakan masalah sulit Java dimaksud sebagai bahasa yang mudah dipelajari dan digunakan, perancangnya memutuskan meniadakan manipulasi pointer. Karena itulah Java disebut C++-, C++ dikurangi fasilitas-fasilitas rumit.
Rancangan bahasa Java telah berdasar teknologi yang telah terbukti. Fitur-fitur yang tidak perlu ditinggalkan, serta bila dimungkinkan pekerjaan yang menjengkelkan dan menjemukan dilakukan sistem bukan oleh pemrogram seperti garbage collection untuk pengelolaan memori sehingga pemrogram dibebaskan dari tugas pemgelolaan memori

JAVA IS OBJECT ORIENTED : Java memang sudah sejak awal dirancang untuk memenuhi kemampuan pemrograman berorientasi objek. Tidak seperti bahasa pemrograman lainnya yang mulanya hanya diperuntukkan bagi pemrograman procedural. Pemrograman berorientasi objek adalah pendekatan atau metodologi perancangan program berdasarkan objek. Metode ini menggantikan metode procedural yang telah lama digunakan. Dalam pemrograman berorientasi objek semua hal dapat dianggap objek. Contohnya adalah manusia, bunga, tanaman, computer, bahkan database dapat dianggap sebuah objek. Selain itu, pemrograman berorientasi objek memiliki kelebihan-kelebihan, seperti sangat fleksibel, modular, penggunaan kembali kode program melalui enkapsulasi data, inheritance, dan polymorphism
Pada orientasi objek, program sebagai sekelompok objek yang saling berinteraksi. Objek-objek ini ada secara independen, mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerintahkan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu
Kelas bertindak sebagai modul sekaligus tipe. Sebagai tipe maka pada saat jalan, objek-objek merupakan instan-instan kelas. Kelas dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak namun menyelesaikan kebutuhan pewarisan jamak dengan fasilitas interface yang lebih elegan

JAVA IS DISTRIBUTED : Distributed computing adalah metode komputerisasi dengan menggunakan computer yang dihubungkan dengan jaringan untuk mengelola tugas-tugas tertentu. Java telah memiliki kemampuan networking yang bagus, yang menjadikan menulis program networking seperti mengirim dan menerima data dari sebuah file.

JAVA IS INTERPRETED : Karekteristik yang satu ini penting untuk dimengerti oleh pengguna Java yang baru pertama kalinya mengenal Java. Java adalah bahasa yang menggunakan interpreter atau “penerjemah” supaya dapat menjalankan program. Jika anda ingat pada sebuah bahasa yang popular bersamaan dengan sistem operasi DOS, yaitu bahasa BASICA yang masih primitive, bahasa tersebut juga menggunakan interpreter untuk menjalankan program-programnya. Jadi, supaya program dapat dijalankan, maka pada computer tujuan harus ada interpreternya. Hal tersebut dikarenakan interpreter Java menerjemahkan kode bytecode kedalam bahasa mesin dari computer yang bersangkutan.

JAVA IS ROBUST : Robust dapat diartikan dapat diandalkan. Sebenarnya tidak ada satu bahasa pemrograman pun yang dapat diandalkan. Akan tetapi bahasa pemrograman Java memang dapat diandalkan untuk segala macam keperluan karena Java telah melewati berbagai macam proses dalam perkembangannya. Java telah menghilangkan dan mengantisipasi berbagai macam gangguan (bug) dan kesalahan-kesalahan yang umum terjadi dalam pemrograman yang sering ditemukan pada bahasa pemrograman lainnya. Contohnya dengan menghilangkan pointer, maka menghilangkan juga kemungkinan adanya ketidaksengajaan melakukan overwriting memori dan menghasilkan data yang tidak utuh. Java memaksa para programmernya untuk menuliskan kode program menggunakan exception (penanganan kesalahan sehingga program tidak hang sewaktu ada kesalahan)

JAVA IS SECURE : Sebagai bahasa pemrograman internet Java digunakan pada lingkungan networking dan terdistribusi. Jika anda mendownload Java Applet dan menjalankannya pada computer Anda, Maka anda tidak perlu khawatir tentang kerusakan yang mungkin akan ditimbulkan olehnya. Hal ini karena Java tidak menyediakan kases secara bebas ke sistem anda secara langsung.

JAVA IS ARCHITECTURE-NEUTRAL : Maksudnya adalah program yang dihasilkan oleh Java tidak tergantung pada arsitektur computer tertentu. Karena program Java berjalan dalam lingkungan JVM (Java Virtual Machine), program Java dapat dijalankan pada arsitektur computer yang berbeda-beda. Anda dapat memindahkan program Java anda dari computer yang memiliki sistem operasi Linux, atau Windows, atau Mac OS. Dari computer IBM, PC biasa atau PC Mac. Anda hanya perlu menginstal JVM yang tepat untuk masing-masing platform yang dituju.

JAVA IS PORTABLE : Karena Java Netral terhadap arsitektur computer dan sistem operaso, dengan sendirinya program Java dapat dibawa kemana-mana dan dijalankan dimana-mana. Anda dapat mengompilasi program Java anda dan dapat menjalankannya pada mesin lainnya tanpa melakukan kompilasi ulang

JAVA PERFORMANCE : Kinerja atau performa dari bahasa pemrograman Java ini sering mendapatkan kritikan atau dianggap lambat oleh beberapa developer. Hal ini disebabkan oleh dijalankannya program melalui JVM. Akan tetapi dari tahun ke tahun kecepatan program Java terus ditingkatkan. Dengan adanya penemuan-penemuan teknologi prosesor yang memiliki kecepatan proses tinggi, kelemahan ini menjadi tidak berasa

JAVA IS MULTITHREATED : Seperti halnya bahasa C, C++, dan bahasa pemrograman lainnya yang mengenal pemrosesan beberapa tugas secara bersamaan (multi-threading) Java juga dibekali kemampuan tersebut.

JAVA IS DYNAMIC : Java sudah didesain sedemikian rupa untuk dapat beradaptasi pada lingkungan yang selalu berubah-ubah. Misalnya anda dapat me-load sebuah class secara langsung tanpa melakukan rekompilasi ulang. Dengan begini para pengembang aplikasi tidak perlu membuat dan bagi user menginstal software versi baru, bila ada penambahan fitur maka dapat ditambahkan langsung.

Beberapa Istilah yang terdapat di dalam JAVA

  • J2EE = Java 2 Enterprise Edition, buat server programming
  • J2SE = Java 2 Standard Edition, buat keperluan programming umum
  • J2ME = Java 2 Mobile Edition, buat mobile device kaya HP atau PDA
  • SDK = Software Development Kit
  • JDK = Java Development Kit (penting buat develop aplikasi Java)
  • JRE = Java Runtime Environment (cuma buat jalanin aplikasi Java)
  • NetBeans = IDE buat Java
  • Eclipse = IDE juga
  • IDE = Integrated Development Environment (editor + compiler + debugger + built automation tool + versioning system + dst dst, pokoknya tool all in one buat bikin aplikasi)
  • Swing = library GUI punya Java
  • Struts = framework buat java web application
  • Catalina = servlet container basic-nya Tomcat
  • Servlet = interface yang digunakan java server buat berkomunikasi dengan aplikasi via protokol web
  • Servlet Container = semacem server buat naro servlet, gampangnya sih kalo analoginya itu servlet container itu apache, trus servlet itu file php yang dirender
  • Java Application Server = lebih dari sekedar servlet container, berupa sebuah server buat naro berbagai aplikasi berbasis server, service dan lain sebagainya
  • JBOSS = salah satu brand buat java based application server
  • Tomcat = salah satu brand buat java application server juga
  • hibernate
  • iBATIS
  • API = Application Programming Interface
  • Deprecated
  • JDBC :Java Database Connectivity --> untuk akses ke database dg XAMPP APACHE.