Senin, 20 Juli 2009

Berikut ini adalah contoh program kalkulator.
Semoga bisa dibuat pedoman bagi para pembaca.

Sebelumnya Anda di anjurkan mengetik main berikut ini.

public class Main(
public static void main(String[] args)(
interfaceCalc objCalc = new interfaceCalc();
objCalc.pack();
objCalc.show();
}
}


Setelah itu baru mengetik interface berikut ini:


import java.awt.*;
import java.awt.event.*;
import javax.swinng.*;
import java.math.*;

class interfaceCalc extends JFrame implements ActionListener{
/*--atribut menu--*/
private JMenuBar menuUtama;
private JMenu menuEdit;
private JMenu menuHelp;
private JMenuItem itemECopy;
private JMenuItem itemEPaste;
private JMenuItem itemHTopic;
private JMenuItem itemHAbout;
/*--atribut tombol--*/
private JButton jBtn0;
private JButton jBtn1;
private JButton jBtn2;
private JButton jBtn3;
private JButton jBtn4;
private JButton jBtn5;
private JButton jBtn6;
private JButton jBtn7;
private JButton jBtn8;
private JButton jBtn9;

private JButton jBtn1perX;
private JButton jBtnBagi;
private JButton jBtnHasil;
private JButton jBtnKali;
private JButton jBtnKoma;
private JButton jBtnKurang;
private JButton jBtnMinus;
private JButton jBtnMod;
private JButton jBtnSqrt;
private JButton jBtnTambah;

private JButton jBtnC;
private JButton jBtnCE;
private JButton jBtnBack;

private JButton jBtnMC;
private JButton jBtnMPlus;
private JButton jBtnMR;
private JButton jBtnMS;
/*--atribut panel--*/
private JPanelText;
private JPanel1;
private JPanel2;
private JPanel3;
private JPanel4;
/*--atribut text--*/
private JTextField jTextCalc;
private JTextField jTextApa;
/*--atribut text--*/
private double temp=0;
private double temp1=0;
private double hasil=0;
private double count=0;
private double countkoma=0;
private double jumlahkoma=0;
private String text;
/*--atribut tanda--*/
private int klik;
private char tanda;
private int koma;
private boolean tandaklik=0;
private int jumlahklik=0;
private int ceksamadengan;
private double memory=0;
private double tandaMPlus;

public interfaceCalc() {
super("Program Kalkulator");
setSize(250,160);
setResizable(false);
super.setDefaulCloseOperation(EXIT_ON_CLOSE);
initMenu();
initPanelText();
initPanel1();
initPanel2();
initPanel3();
initPanel4();
initialize();
initActionPerformed();
}

public void initMenu() {
menuUtama = new JMenuBar();
setJMenuBar(menuUtama);
menuEdit = new JMenu("Edit");
menuHelp = new JMenu("Help");
menuUtama.add(menuEdit);
menuUtama.add(menuHelp);

itemECopy = new JMenuItem("Copy \t Ctrl+c");
itemEPaste = new JMenuItem("Paste \t Ctrl+v");
itemHTopic = new JMenuItem("Help Topic");
itemHAbout = new JMenuItem("About");

menuEdit.add(itemECopy);
menuEdit.add(itemEPaste);
menuHelp.add(itemHTopic);
menuHelp.add(itemHAbout);
}

public void initPanelText(){
/* Membuat Panel Text */
jPanelText = new JPanel();
jTextCalc = new JTextField("0",30);
jTextCalc.setEditable(false);
jTextCalc.setHorizontalAlignment(jTextField.RIGHT);
jPanelText.add(jTextCalc);
}

public void initPanel1() {
/* Membuat Panel */
jPanel1 = new JPanel1();
jPanel.setLayout(new GridLayout(1,3,1,2));
jBtnC = new JButton("C");
jBtnCE = new JButton("CE");
jBtnBack = new JButton("Backspace");
jPanel1.add(jBtnBack);
jPanel1.add(jBtnCE);
jPanel1.add(jBtnC);
}

public void initPanel2() {
jPanel2 = new JPanel();
jPanel2.setLayout(new GridLayout(4,6,1,2));
jBtn0 = new JButton("0");
jBtn0 = new JButton("1");
jBtn0 = new JButton("2");
jBtn0 = new JButton("3");
jBtn0 = new JButton("4");
jBtn0 = new JButton("5");
jBtn0 = new JButton("6");
jBtn0 = new JButton("7");
jBtn0 = new JButton("8");
jBtn0 = new JButton("9");
jBtnMinus = new JButton("+/-");
jBtnKoma = new JButton(".");
jBtnBagi = new JButton("/");
jBtnKali = new JButton("*");
jBtnKurang = new JButton("-");
jBtnTambah = new JButton("+");
jBtnSqrt = new JButton("sqrt");
jBtnMod = new JButton("%");
jBtn1perX = new JButton("1/x");
jBtnasil = new JButton("=");
jPanel2.add(jBtn7);
jPanel2.add(jBtn8);
jPanel2.add(jBtn9);
jPanel2.add(jBtnBagi);
jPanel2.add(jBtnSqrt);
jPanel2.add(jBtn4);
jPanel2.add(jBtn5);
jPanel2.add(jBtn6);
jPanel2.add(jBtnKali);
jPanel2.add(jBtnMod);
jPanel2.add(jBtn1);
jPanel2.add(jBtn2);
jPanel2.add(jBtn3);
jPanel2.add(jBtnKurang);
jPanel2.add(jBtn1perX);
jPanel2.add(jBtn0);
jPanel2.add(jBtnMinus);
jPanel2.add(jBtnKoma);
jPanel2.add(jBtnTambah);
jPanel2.add(jBtnHasil);
}

public void initPanel3() {
/* Membuat Panel 3 */
jPanel3 = new JPanel();
jPanel3.setLayout(new GridLayout(4,1,1,2));
jPanelMC = new JButton("MC");
jPanelMR = new JButton("MR");
jPanelMS = new JButton("MS");
jPanelMPlus = new JButton("M+");
jPanel3.add(jBtnMC);
jPanel3.add(jBtnMR);
jPanel3.add(jBtnMS);
jPanel3.add(jBtnMPlus);
}

public void initPanel4() {
/* Membuat Panel 4 */
jPanel4 = new JPanel();
jTextApa = new JTextField("",3);
jTextApa.setEditable(false);
jPanel4.add(jTextApa);

}

public void initialize() {
GridBagLayout gB;
GridBagConstraints gBc;

gB = new GridBagLayout();
gBc= new GridBagContraints();
getContentPane().setLayout(gB);
gBc.fill = GridBagConstraints.NONE;
gBc.weightx = 1.0;
gBc.gridwidth = 6;
gBc.gridx = 0;
gBc.gridy = 0;
gB.setConstraints(jPanelText,gBc);
getContentPane().add(jPanelText);

gBc.weightx = 1.0;
gBc.gridwidth = 1;
gBc.gridx = 0;
gBc.gridy = 1;
gB.setConstraints(jPanel4,gBc);
getContentPane().add(jPanel4);

gBc.weightx = 1.0;
gBc.gridwidth = 5;
gBc.gridx = 1;
gBc.gridy = 1;
gB.setConstraints(jPanel1,gBc);
getContentPane().add(jPanel1);

gBc.weightx = 1.0;
gBc.gridwidth = 1;
gBc.gridheight = 4;
gBc.gridx = 0;
gBc.gridy = 2;
gB.setConstraints(jPanel3,gBc);
getContentPane().add(jPanel3);

gBc.weightx = 1.0;
gBc.gridwidth = 5;
gBc.gridheight = 4;
gBc.gridx = 1;
gBc.gridy = 2;
gB.setConstraints(jPanel2,gBc);
getContentPane().add(jPanel2);
}

public void actionPerformed(ActionEvent e){
double tempkoma=1;
if ((e.getSource()==jBtn0)||(e.getSource()==jBtn1)||(e.getSource()==jBtn2)||(e.getSource()==jBtn3)||(e.getSource()==jBtn4)||(e.getSource()==jBtn5)||(e.getSource()==jBtn6)||(e.getSource()==jBtn7)||(e.getSource()==jBtn8)||(e.getSource()==jBtn9)||(e.getSource()==jBtnKoma)||(e.getSource()==jBtnMinus));
jumlahklik=0;
ceksamadengan=0;
if (e.getSource()==jBtn0){
if (koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=0/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+0;
}
}
else if ((e.getSource()==jBtn1){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=1/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+1;
}
}
else if ((e.getSource()==jBtn2){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=2/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+2;
}
}
else if ((e.getSource()==jBtn3){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=3/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+3;
}
}
else if ((e.getSource()==jBtn4){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=4/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+4;
}
}
else if ((e.getSource()==jBtn5){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=5/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+5;
}
}
else if ((e.getSource()==jBtn6){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=6/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+6;
}
}
else if ((e.getSource()==jBtn7){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=7/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+7;
}
}
else if ((e.getSource()==jBtn8){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=8/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+8;
}
}
else if ((e.getSource()==jBtn9){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=9/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+9;
}
}
else if ((e.getSource()==jBtn4){
if(koma!=0){
jumlahkoma++;
for (int i=1;i<=jumlahkoma ;i++ ){
tempkoma=tempkoma*10;
}
countkoma=4/tempkoma;
temp=temp+coutkoma;
}
else {
temp=count+4;
}
}

Jumat, 03 Juli 2009

Program Penjualan Baju Sederhana

Program Penjualan Baju Sederhana, program ini merupakan program khusus yang dibuat untuk mempelajari bahasa pemograman java

import javax.swing.JOptionPane;
class pnjualanbaju
{
public static void main(String[] args) throws Exception
{
int jml;
String kdbaju,mrkbaju,a,b,c;
double hrg,dskon,totdiskon,totbeli,bayar;
//show box
kdbaju=JOptionPane.showInputDialog("Masukkan Kode Baju :");
mrkbaju=JOptionPane.showInputDialog("Masukkan Merek Baju :");
a=JOptionPane.showInputDialog("Masukkan Harga Baju :");
hrg=Double.parseDouble (a);
b=JOptionPane.showInputDialog("Masukkan Jumlah Baju :");
jml=Integer.parseInt (b);
c=JOptionPane.showInputDialog("Masukkan Diskon :");
dskon=Double.parseDouble (c);
//proses/rumus
totbeli=hrg*jml;
totdiskon=(dskon/100)*totbeli;
bayar=totbeli-totdiskon;
//out message
JOptionPane.showMessageDialog(null,"============================================="+
"\nPT. PUSING TUJUH KELILING "+
"\n==============================================="+
"\nKode Baju :"+kdbaju+
"\nMerek Baju :"+mrkbaju+
"\nHarga Baju :"+hrg+
"\nJumlah Baju :"+jml+
"\nDiskon :"+dskon+
"\n==============================================="+
"\nTotal Pembelian :"+totbeli+
"\nTotal Diskon:"+totdiskon+
"\nTotal Pembayaran :"+bayar);
System.exit(0);
}
}

Kamis, 02 Juli 2009

Sejarah Java

Buat pembaca yang ingin tau sejarah perkembangan Java bisa baca di blog yang milik saya ini


SEJARAH PERKEMBANGAN JAVA

Bahasa Pemrograman Java pertama lahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.

Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai “*7″ (Star Seven).

Setelah era Star Seven selesai, sebuah anak perusahaan TV kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto.

Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.

Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.

Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemeritaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.

Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.

Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja “bapak java”, James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi “Java”. Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.

Sumber : wikipedia
Berikut adalah salah satu contoh program java yang ditujukan untuk perpustakan. Mungkin dengan adanya program sederhana ini dapat mempermudah pegawai perpustakan dalam menginput data data peminjam secara otomatis.


Program Perpustakaan Sederhana

import java.io.*;
import javax.swing.JOptionPane;

class perpustakaan
{
public static void main(String[] args) throws Exception
{
System.out.println("!=================================!");
System.out.println("!>>>>>>>>PERPUSTAKAAN UMUM<<<<<<< System.out.println("!Nama : Karina Setyowati !");
System.out.println("!NIM : 080020003 !");
System.out.println("!Jurusan: Teknik Informatika !");
System.out.println("!Alamat : Jl. Kertapura 24 !");
System.out.println("!Telp : 081236236499 !");
System.out.println("!=================================!");
System.out.println("!>>>>>>>>>>Kategori Buku<<<<<<<<< System.out.println("! Horor,Komedi,Pengetahuan Umum !");
System.out.println("!Id : 101 s/d 110 !");
System.out.println("!=================================!");


int jml,x,t;
String id,nama,alamat,kdbuku,jdulbuku,kategori,pinjam,kembali,a,b;
double denda,totdenda;

System.out.println(" ");
System.out.println(" ");
DataInputStream dis = new DataInputStream (System.in);
System.out.println("Masukkan ID Anggota Perpustakaan :");
id=dis.readLine();
x=Integer.parseInt(id);
System.out.println(" ");

if (x==101)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 101 !");
System.out.println("! Nama : Andi Ahmadi !");
System.out.println("! Tempat,Tgl Lahir : Singaraja, 24 Maret 1987 !");
System.out.println("! Alamat : Jl. Kertapura No. 41 Br. Pekandelan !");
System.out.println("! Kecamatan : Denpasar Barat !");
System.out.println("! Kabupaten : Denpasar !");
System.out.println("! Provinsi : Bali !");
System.out.println("!=============================================================================!");
}
else if (x==102)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 102 !");
System.out.println("! Nama : Maulana !");
System.out.println("! Tempat,Tgl Lahir : Kangean, 18 Februari 1989 !");
System.out.println("! Alamat : Jl. Imam Bonjol No. 77 !");
System.out.println("! Kecamatan : Denpasar Barat !");
System.out.println("! Kabupaten : Denpasar !");
System.out.println("! Provinsi : Bali !");
System.out.println("!=============================================================================!");
}
else if (x==103)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 103 !");
System.out.println("! Nama : Stephanus !");
System.out.println("! Tempat,Tgl Lahir : Flores, 01 Januari 1985 !");
System.out.println("! Alamat : Jl. Teuku Umar Barat No. 45 !");
System.out.println("! Kecamatan : Denpasar Barat !");
System.out.println("! Kabupaten : Denpasar !");
System.out.println("! Provinsi : Bali !");
System.out.println("!=============================================================================!");
}
else if (x==104)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 104 !");
System.out.println("! Nama : Prasetyo Danuar !");
System.out.println("! Tempat,Tgl Lahir : Bogor, 18 Februari 1989 !");
System.out.println("! Alamat : Jl. Gunung Argopuro No. 17 !");
System.out.println("! Kecamatan : Panji !");
System.out.println("! Kabupaten : Situbondo !");
System.out.println("! Provinsi : Jawa Timur !");
System.out.println("!=============================================================================!");
}
else if (x==105)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 105 !");
System.out.println("! Nama : Pasek !");
System.out.println("! Tempat,Tgl Lahir : Gianyar, 18 Oktober 1989 !");
System.out.println("! Alamat : Jl. Kemuning No. 77 !");
System.out.println("! Kecamatan : Sukawati !");
System.out.println("! Kabupaten : Gianyar !");
System.out.println("! Provinsi : Bali !");
System.out.println("!=============================================================================!");
}
else if (x==106)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 106 !");
System.out.println("! Nama : Sherina !");
System.out.println("! Tempat,Tgl Lahir : Jakarta, 01 Januari 1985 !");
System.out.println("! Alamat : Jl. Diponegoro No. 45 !");
System.out.println("! Kecamatan : Sragen !");
System.out.println("! Kabupaten : Jakarta Selatan !");
System.out.println("! Provinsi : DKI Jakarta !");
System.out.println("!=============================================================================!");
}
else if (x==107)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 107 !");
System.out.println("! Nama : Joko Susanto !");
System.out.println("! Tempat,Tgl Lahir : Bogor, 18 Februari 1989 !");
System.out.println("! Alamat : Jl. Gunung Argopuro No. 10 !");
System.out.println("! Kecamatan : Plausan !");
System.out.println("! Kabupaten : Banyumas !");
System.out.println("! Provinsi : Jawa Tengah !");
System.out.println("!=============================================================================!");
}
else if (x==108)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 108 !");
System.out.println("! Nama : Maryama !");
System.out.println("! Tempat,Tgl Lahir : Kangean, 18 Februari 1989 !");
System.out.println("! Alamat : Jl. Imam Bonjol No. 77 !");
System.out.println("! Kecamatan : Denpasar Barat !");
System.out.println("! Kabupaten : Tangerang Timur !");
System.out.println("! Provinsi : Tangerang !");
System.out.println("!=============================================================================!");
}
else if (x==109)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 109 !");
System.out.println("! Nama : Yohanes !");
System.out.println("! Tempat,Tgl Lahir : Flores, 01 Januari 1991 !");
System.out.println("! Alamat : Jl. Teuku Umar Barat No. 11 !");
System.out.println("! Kecamatan : Denpasar Barat !");
System.out.println("! Kabupaten : Denpasar !");
System.out.println("! Provinsi : Bali !");
System.out.println("!=============================================================================!");
}
else if (x==110)
{
System.out.println("!=============================================================================!");
System.out.println("! Nomer ID Anda : 110 !");
System.out.println("! Nama : Danang Arjuna !");
System.out.println("! Tempat,Tgl Lahir : Depok, 18 Februari 1990 !");
System.out.println("! Alamat : Jl. Gunung Rinjani No. 67 !");
System.out.println("! Kecamatan : Depok Barat !");
System.out.println("! Kabupaten : Depok !");
System.out.println("! Provinsi : Jawa Barat !");
System.out.println("!=============================================================================!");
}


// Input Box
{
kdbuku=JOptionPane.showInputDialog("Masukkan Kode Buku :");
jdulbuku=JOptionPane.showInputDialog("Masukkan Judul Buku :");
kategori=JOptionPane.showInputDialog("Masukkan Kategori Buku :");
pinjam=JOptionPane.showInputDialog("Masukkan Tanggal Pinjam :");
kembali=JOptionPane.showInputDialog("Masukkan Tanggal Kembali :");
a=JOptionPane.showInputDialog("Terlambat Mengembalikan Buku :");
t=Integer.parseInt (a);
b=JOptionPane.showInputDialog("Denda/Hari :");
denda=Double.parseDouble (b);

totdenda=denda*t;

//output

System.out.println(" ");
System.out.println(" ");
System.out.println("###################################");
System.out.println("#========PERPUSTAKAAN UMUM========#");
System.out.println("###################################");
System.out.println("# ");
System.out.println("# Kode Buku :"+kdbuku);
System.out.println("# Judul Buku :"+jdulbuku);
System.out.println("# Kategori :"+kategori);
System.out.println("# Tanggal Pinjam :"+pinjam);
System.out.println("# Tanggal Kembali :"+kembali);
System.out.println("# Terlambat :"+t);
System.out.println("# Denda/Hari :"+denda);
System.out.println("#__________________________________");
System.out.println("# Total Denda :"+totdenda);
System.out.println("###################################");
System.exit(0);
}
}
}

Kamis, 18 Juni 2009

Pemrograman dengan Java

Pemrograman dengan Java


Java sebagai salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi programer junior maupun senior. Tutorial ini akan membawa Anda mengenal lebih jauh bahasa ini melalui pembahasan konsep model perancangan dan petunjuk sederhana penggunaannya.

Apakah Java itu?

Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun 1991. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++ dan Smalltalk, namun dirancang agar lebih mudah dipakai dan ­platform independent, yaitu dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer­­. Bahasa ini juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.


Platform Independent

Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.

JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.

Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.


Library

Selain kompiler dan interpreter, bahasa Java sendiri memiliki library yang cukup besar yang dapat mempermudah Anda dalam membuat sebuah aplikasi dengan cepat. Library ini sudah mencakup untuk grafik, desain user interface, kriptografi, jaringan, suara, database, dan lain-lain.

OO

Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.

Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-library tersebut.

Memulai Pemrograman Java

Untuk membuat program Java, seperti telah disebutkan sebelumnya, Anda membutuhkan JDK. Proses instalasi JDK tersebut sangat mudah dan tidak membutuhkan pengetahuan tertentu. Namun untuk menggunakannya Anda perlu melakukan beberapa penyesuaian dengan sistem operasi Anda. Umumnya yang perlu Anda lakukan adalah memasukkan path ke direktori JDK Anda ke setting path pada sistem operasi Anda. Misalkan direktori JDK Anda adalah C:\jdk1.4 maka pada Windows 98 Anda cukup menambahkan baris perintah SET PATH=C:\jdk1.4\bin pada file autoexec.bat Anda. Untuk Windows NT/2000/XP Anda cukup menambahkan direktori C:\jdk1.4\bin pada variabel path di System Environment. Caranya: klik kanan ikon My Computer, pilih Properties. Kemudian pilih tab Advanced. Lalu klik tombol Environment Variables, cari variabel path, kemudian tambahkan path direktori JDK Anda ke dalam variabel tersebut. Untuk Linux, tambahkan baris perintah SET CLASSPATH=(direktori jdk Anda) ke file profile Anda. Untuk mencoba JDK, ketikkan perintah java dan javac pada shell prompt (atau DOS Command Prompt). Jika perintah tersebut sudah dikenali maka program java atau javac akan menampilkan sintaks penggunaan. Untuk kemudahan dan berbagai fasilitas tambahan Anda dapat menggunakan Integrated Development Environment (IDE) untuk bahasa Java seperti Visual Café dari Symantec atau JBuilder dari Borland.

Urutan langkah-langkah yang harus Anda lakukan untuk membuat sebuah program Java sederhana adalah:

  1. Membuat source code program dengan editor teks apapun. Ingat, file tersebut harus berekstensi .java dan case sensitive.
  2. Mengkompile source code dengan perintah javac. Misalnya: javac HelloWorld.java. Jika berhasil, hasilnya adalah file bytecode berakhiran .class.
  3. Mengeksekusi bytecode dengan perintah java. Parameter dari perintah ini adalah nama file hasil kompilasi tanpa ekstensi .class. Contoh: java HelloWorld.

Source Code

Berikut kode untuk HelloWorld.java:

public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Apa Kabar Dunia?");
}
}

Dan ini sebuah contoh lain, yaitu applet sederhana untuk menampilkan teks di applet. Sebutlah file ini bernama HelloWorldApplet.java:

import java.awt.Graphics;

public class HelloWorldApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
g.drawString("Apa Kabar Dunia?", 5, 25);
}
}

Secara gamblang dapat diperhatikan bahwa struktur kedua program sangat mirip, dan hanya berbeda dalam konteks eksekusi. Kedua program ini akan dibahas lebih lanjut setelah kita membahas cara mengkompile dan mengeksekusi program tersebut.

Perlu diingat bahwa bahasa Java bersifat case sensitive, sehingga Anda harus memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan source code program tidak harus memperhatikan bentuk tertentu, sehingga Anda bisa saja menuliskan semua baris source code tersebut dalam satu baris asal Anda tidak lupa membubuhkan tanda titik koma (;), atau menuliskan tiap kata dalam satu baris tersendiri. Namun dianjurkan Anda mengikuti layout seperti pada contoh agar program Anda mudah dibaca dan dimengerti.