Tuesday, November 29, 2011

Install MinGW di Windows 7

Dalam pemrograman kita biasa menggunakan banyak compiler, dan compiler-nya pun bermacam-macam jadi kita bebas memilih untuk menggunakan compiler yang mana aja. nah sekarang saya ingin memberikan sebuah compiler yang sebenarnya sudah ada didalam komputer kamu dan kamu hanya perlu menginstall beberapa package untuk mendukungnya. Tau kah apa yang saya maksud?, yang saya maksud adalah CMD (Command Prompt), apa bisa?, saya juga dulu bertanya2 apakah memang bener cmd bisa menjadi compiler sebuah pemrograman. Nah jawabanya adalah benar jadi cmd bisa menjadi compiler sebuah pemrograman caranya kita menggunkan software yang namanya adalah MInGW dan MinGW ini digunakan untuk mendukung cmd menjadi compiler bahasa C dan C++. Nah untuk cara install MinGW di komputer kamu saya punya tutorialnya jadi gak usah takut, tutornya bisa kamu baca yang dibawah ini :

1. Pertama kamu harus download MinGW, kamu bisa download disini

2. Setelah di download, kamu klik dua kali ikon MInGW yang sudah kamu download, sampai keluar gambar seperti dibawah ini lalu kamu klik next.















3. Setelah kamu next kan, akan muncul gambar seperti gambar dibawah ini, pilih yang use pre-package repository catalogues lalu klik next lagi.















4. Setelah itu akan muncul box seperti dibawah ini dan pilih I accept dan klik next.















5. Untuk folder destination kamu bisa pilih sendiri dan klik next.















6. Untuk tahap ini kamu tinggal klik next aja.















7. Pada tahap ini kamu bisa pilih semua pilihan, lalu klik next.















8. Setelah tahap 7, akan muncul seperti gambar dibawah dan klik Install tunggu hingga selesai dan Finish.

















Setelah kamu selesai install MinGW ternyata masih ada pekerjaan kamu, yaitu membuat path dari program kamu, caranya yaitu sebagai berikut :

1. Kamu buka My Computer lalu klik kanan dan pilih Properties, lihat gambar berikut :















2. Setelah itu kamu pilih advance System Setting kalo bingung ikuti caranya seperti gambar berikut :









3. Setelah itu kamu pilih Environment Variabel seperti gambar berikut :



















4. Kalo udah muncul seperti gambar berikut kamu pilih yang new.



















5. Oke ini tahap terakhir, kamu isikan Variabel name = PATH dan Variabel value kamu isikan folder dimana kamu install, lihat gambar sebagai contoh.










6. Setelah kamu selesai membuat PATH sekarang kamu coba buka CMD lalu ketikkan gcc, jika muncul seperti gambar maka telah berhasil menginstall MinGW di komputer kamu.



Ok sekian tutor dari saya, semoga bermanfaat, terima kasih

Monday, November 28, 2011

Pemangkatan Bilangan di Pemrograman Java

Dalam Pemrograman Java kadang kita sering mengalami kebuntuan dalam menyelesaikan program yang kita inginkan, mungkin itu disebabkan pada pemrograman java terdapat banyak package yang mesti kita gunakan untuk menjalankan sebuah perogram. dan package yang terdapat dalam pemrograman java udah ditetapkan atau di defaulthkan oleh si pembuat bahasa pemrograman ini. nah kali ini saya ingin memberikan sebuah studi kasus tentang pemangkatan dalam pemrograman java, dimana pada studi kasus ini kita harus menggunakan sebuah package yang disisipkan pada program kita.

nah dari tadi kita ngomongin package, package dan package, sekarang apa itu package?, Package adalah sebuah sarana untuk mengelompokkan atau mengorganisasikan sebuah interface atau kelas yang sama menjadi satu unit tuggal dalam sebuah library. Nah itu lah yang dimaksud dengan package. udah ngertikan?, kalo untuk contoh dari package bisa kita lihat sebagai berikut :

1. import java.text.DecimalFormat

2. import javaxc.swing.*;

Kita udah lihat kan contoh package. sekarang ayo kita mulai bahas studi kasus untuk program pemangkatan bilangan dalam pemrograman java, untuk kasus ini kita biasa menggunakan header untuk matematika dan perintah pow dalam bahasa C untuk menyelesaikannya, kalau didalam pemrograman java kita juga menggunakan dua perintah tersebut namun syntaxnya berbeda, sekarang kita lihat perbedaannya

Pemrograman C = #include (math.h) dan pow(x,y)

Pemrograman Java = import java.math.*; dan Math.pow(x,y)



nah udah terlihat jelaskan perbedaanya, sekarang ayo kita lihat pemrograman java untuk pemangkatan :



import java.math.*;

public class andy {

public static void main(String[] args){

int angka=3;

int pangkat = 4;

System.out.println(Math.pow(angka,pangkat));

} }



jadi ini lah program pemangkatan dalam Pemrograman Java untuk sistem kerja pow, itu sama saja dengan sistem kerja pow di bahasa C dan yang kita sebut package adalah yang "import java.math.*;" . jadi seperti ini lah program untuk pemangkatan, jika anda sedang dalam membuat program dengan java dan mengalami error anda mungkin saja kurang dalam penggunaan package, so kalo udah gitu search dech di om google package apa yang kamu cari pasti dapat packagenya. ok dech sekian informasi dari saya, semoga bermanfaat dan saya ucapkan terima kasih.

Sunday, November 27, 2011

Setting Modem AHA mytv di Ubuntu 11.10

kali ini saya mencoba untuk membuat sebuah informasi yang sebelumnya sangat sulit mendapatkan pencerahan dari beberapa hasil informasi yang saya dapatkan. tetapi karena usaha yang keras dan gigih pada akhirnya saya mendapatkan pencerahan yang diberikan oleh teman saya pada waktu bereksperimen di lab yang penuh inspirasi, eh eh kok jadi lari dari pembicaraan hehe. oke dech langsung ke topik kita aja yaitu setting modem Aha mytv di Ubuntu 11.10, saya harap tutor saya ini dapat di mengerti dan bermanfaat bagi para pembaca yang budiman :).

Setting Modem AHA MyTv 140c di Ubuntu 11.10 mungkin hampir sama dengan setting modem lainnya di OS yang super Open source ini. untuk setting Modem di Ubuntu tidak sama dengan setting modem di Windows, kalau di windows tinggal colokkan modemnya tunggu beberapa menit nanti langsung keluar installannya, kalau di Ubuntu kita colokkan modem eh malah dibaca sebagai CD ROM. nah disinilah kerja kita sebenarnya, kita harus mengubah modem yang sebelumnya di baca sebagai CD ROM menjadi USB. tapi jangan khawatir saya punya langkah2 untuk setting modem aha di ubuntu. langkah - langkahnya adalah sebagai berikut :

1. Pertama kita harus colokkan modem AHA kamu di Komputer setelah itu download dan install wvdial di Ubuntu. saya sarankan jika anda tidak dapat terhubung keinternet pada saat kamu menggunakan ubuntu kamu bisa download wvdial di windows lalu setelah itu masuk lagi ke ubuntu, untuk download nya bisa disni. setelah kamu download kamu ekstrack file nya lalu kamu instal satu persatu dengan cara buka terminal lalu ketikkan "sudo dpkg -i lalu kamu drop n drag file yang kamu ekstrak ke terminal dan tekan enter tapi installnya harus satu per satu

2. setelah download dan install wvdial, kamu buka terminal lalu ketikkan "sudo gedit /etc/wvdial.conf" lalu tekan enter kemudian akan muncul di gedit wvdial.conf kalau sudah muncul, kamu ganti dengan yang dibawah ini :

[Dialer AHA]

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

Stupid Mode = 1

Modem = /dev/ttyUSB0

Phone = #777

Idle Seconds = 300

Password = aha

Modem Type = USB Modem

Compuserve = 0

Baud = 921600

Auto DNS = 1

Dial Command = ATDT

Ask Password = 0

ISDN = 0

Username = aha@aha.co.id

kemudian kamu save dan exit.

3. kemudian kamu ketikkan lagi di terminal "lsusb" dan enter nanti akan muncul seperti ini Bus 005 Device 003: ID 12d1:140c Huawei Technologies Co., Ltd..

4. Setelah itu kamu ketikkan lagi di terminal seperti ini "sudo modprobe usbserial vendor=0x12d1 product=0x140c" maka akan muncul seperti ini :

andy@andy-aspire-4741:~$ sudo wvdial AHA --> WvDial: Internet dialer version 1.60

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: ATZ

ATZ

OK

--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

OK

--> Modem initialized.

--> Idle Seconds = 300, disabling automatic reconnect.

--> Sending: ATDT#777

--> Waiting for carrier.

ATDT#777

CONNECT

--> Carrier detected. Starting PPP immediately.

--> Starting pppd at Wed Oct 20 17:44:28 2010

--> Pid of pppd: 1866

--> Using interface ppp0

--> pppd: &# 65533;o

--> pppd: &# 65533;o

--> pppd: &# 65533;o

--> pppd: &# 65533;o

--> pppd: &# 65533;o

--> local IP address xx.xx.xx

--> pppd: &# 65533;o

--> remote IP address xx.xx.xx

--> pppd: &# 65533;o

--> primary DNS address xx.xx.xx.xx

--> pppd: &# 65533;o

--> secondary DNS address xx.xx.xx.xx

--> pppd: &# 65533;o



kalau sudah sperti ini maka kamu sudah bisa berinternet dengan secangkir kopi ditemani roti dan tentunya dengan Operating System yang super Open source.

tapi masih ada kekurangan dari system ini, kalau kita sudah eject modem kita dari komputer kamu, maka kamu harus setting ulang agar bisa berinternet lagi tapi tenang aja saya akan bagikan lagi tutornya ke kamu. caranya yaitu kamu buat file yang berekstensi sh, oke dech kalau masih bingung caranya ini langkah2 untuk membuat file .sh :

1.kamu buka gedit lalu kamu ketikkan program seperti berikut :

#!/bin/bash

sudo eject /dev/sr1

sleep 2

sudo modprobe usbserial vendor=0x12d1 product=0x140c

sleep 2

sudo wvdial AHA

sudo chmod +x AHA.sh



lalu kamu save di desktop dengan nama file AHA.sh, jadi file .sh ini sangat membantu kita supaya tidak setting ulang modem kita. untuk menjalankannya lihat langkah ke 2.

2. kita eject dulu modem kita dengan cara eject /dev/sr1 lalu kamu cabut modem kamu tapi setelah itu colokkan kembali

3. kemudian kamu buka terminal lagi lalu ketikkan "cd Desktop" lalu enter

4. kemudian kamu ketikkan lagi di terminal "sudo chmod 755 AHA.sh kalau terminal membutuhkan password maka masukkan password ubuntu kamu,

5. kamu ketikkan lagi di terminal ./AHA.sh lalu enter maka muncul seperti pada saat kamu berhasil koneksi ke internet atau muncul seperti pada lankah no 4. kalau sudah seperti ini kamu tinggal gampang aja koneksi ke internet dengan modem kamu.

ok sekian pencerahan dari saya untuk setting Modem AHA MyTv 140c di Ubuntu 11.10, semoga bermanfaat.

Saturday, November 26, 2011

Input Bilangan Di Pemrograman Java

Pemrograman java, banyak yang bilang java itu sulit, tapi pada kenyataanya emang sulit hehe, sebenarnya pemrograman java tidak sesulit yang dibayangkan banyak orang. asalkan kita tekun mau mengulang membuat program dengan java dan mau mengupgrade ilmu insyaallah dilain waktu dia tidak akan menyebutkan java itu sulit melainkan java itu mudah. ok deh dari pada berlama-lama dengan intermezo mending kita langsung ke topik. topik kita adalah bagaimana membuat system input bilangan yang bisa di input oleh user melalui keyboard di pemrograman java.

sebenarnya ada beberapa cara untuk membuat sistem input. tapi karena masih ada keterbatasan pada diri saya maka saya akan memberikan satu car saja hehe. oh ya untuk vendor compiler java mungkin diantara kita berbeda-beda, ada yang menggunakan Netbeans ada java creator dan mungkin ada pula yang menggunakan CMD atau command promt. tapi itu tidak bermasalah yang peting intinya sama, sama-sama bisa mengcompile program kita nantinya. ok sekarang kita masuki langkah-langkah untuk membuat program java dengan system input :

1. Buka Program Netbeans atau java creator, atau dll

2. buka new file untuk java

3. untuk langkah ini coba kamu tuliskan program berikut di vendor java kamu

















4. setelah selesai kamu ketikkan program diatas jangan lupa di save.

5. setelah itu coba kamu compile program tersebut.

6. Maka hasilnya akan seperti dibawah ini :

Sebelum angka diinput dari user :







Setelah angka diinput dari user :






OK sekian sedikit ilmu dari saya, semoga bermanfaat. Terima Kasih.

Friday, November 25, 2011

Array Multi Dimensi di Pemrograman Java

Kita ketahui hampir disetiap pemrogrman memiliki struktur array, mulai dari yang array 1 dimensi hingga array multi dimensi namun tidak sedikit dari kita akan merasa bingung untuk menggunakan struktur program ini, termasuk saya dulunya. namun jika kita mau untuk berusaha pasti kita dapat memahaminya. ok langsung aja y ketopik pembicaraan dari pada kebanyaan ngomong, hehehe. Dalam struktur array tipe apapun bisa digunakan sebagai tipe dasar suatu array. Kita bisa membuat array int, array String, array Object dan seterusnya. Terutama, karena array adalah tipe Java kelas satu, kita bisa membuat array yang bertipe array.



Misalnya suatu array bertipe int[], juga otomatis memiliki array bertipe int[][], yaitu "array bertipe array int". Array tersebut disebut array 2 dimensi. Tentunya, dengan tipe int[][], kita juag bisa membuat arraynya dengan tipe int[][][], yang merupakan array 3 dimensi, dan seterusnya. Tidak ada batasan berapa dimensi array yang kita buat, akan tetapi bukan sesuatu yang biasa dilakukan untuk membuat array lebih dari 3 dimensi. Pembahasan kita akan lebih dikhususkan pada array 2 dimensi. Tipe TipeDasar[][] biasanya dibaca "array 2 dimensi bertipe TipeDasar" atau "array dari array TipeDasar".



Deklarasi pernyataan "int[][] A;" adalah membuat variabel bernama A dengan tipe int[][]. Variabel ini berisi objek yang bertipe int[][]. Pernyataan pemberian nilai "A = new int[3][4];" akan membuat objek array 2 dimensi dan mengisi A ke objek yang baru dibuat tersebut.



Seperti biasa, deklarasi dan pemberian nilai bisa digabung menjadi satu pernyataan, seperti "int[][] A = new int[3][4];". Objek yang baru dibuat adalah objek yang merupakan array dari array int. Bagian int[3][4] menyatakan bahwa ada 3 array int di dalam array A, dan di setiap array int tersebut terdapat 4 int. Cara seperti itu mungkin sedikit membingungkan, akan tetapi akan lebih mudah apabila kita bayangkan array tersebut seperti matriks. Istilah "int[3][4]" bisa disebut sebagai matriks dengan 3 baris dan 4 kolom, seperti pada ilustrasi berikut ini :







Untuk banyak hal, kita bisa mengabaikan kenyataan di atas, dan membayangkan bentuk matriks seperti di atas. Kadang-kadang kita juga harus ingat bahwa setiap baris sebenarnya juga merupakan suatu array. Array-array ini bisa dirujuk dengan A[0], A[1], dan A[2]. Setiap baris bertipe int[].



Pernyataan A[1] merujuk pada salah satu baris pada array A. Karena A[1] itu sendiri sebenarnya adalah array int, kita bisa menambah indeks lain untuk merujuk pada posisi pada baris tersebut. Misalnya A[1][3] adalah elemen nomor 3 pada baris 1. Seperti biasa, ingat bahwa posisi baris dan kolom dimulai dari 0. Jadi pada contoh di atas, A[1][3] bernilai 5. Lebih umum lagi, A[i][j] adalah posisi pada baris i dan kolom j. Seluruh elemen pada A bisa dinamakan seperti berikut :



A[0][0] A[0][1] A[0][2] A[0][3] A[1][0] A[1][1] A[1][2] A[1][3] A[2][0] A[2][1] A[2][2] A[2][3]



A[i][j] adalah variabel bertipe int. Kita bisa mengisi nilainya atau menggunakannya seperti variabel bertipe int biasa.



Perlu juga diketahui bahwa A.length akan memberikan jumlah baris pada A. Untuk mendapatkan jumlah kolom pada A, kita harus mencari jumlah int dalam setiap baris, yaitu yang disimpan pada A[0]. Jumlah kolom ini bisa didapatkan dengan menggunakan A[0].length, atau A[1].length atau A[2].length. (Tidak ada aturan baku yang menyatakan bahwa pada setiap baris suatu array harus memiliki panjang yang sama, dan sebenarnya pada beberapa aplikasi, juga digunakan array dengan panjang yang berbeda-beda pada setiap barisnya. Akan tetapi apabila kita membuat array dengan perintah seperti di atas, maka kita akan selalu mendapatkan array dengan panjang array yang sama.)



Array 3 dimensi juga dibuat dan diolah dengan cara yang sama. Misalnya, array 3 dimensi bertipe int bisa dibuat dengan pernyataan "int[][][] B = new int [7][5][11];". Kita juga bisa mengilustrasikannya sebagai kubus 3-dimensi. Masing-masing bloknya bertipe int yang bisa dipanggil dalam bentuk B[i][j][k]. Array dimensi lain yang lebih tinggi juga mengikuti pola yang sama, akan tetapi akan sangat sulit untuk membuat visualisasi struktur arraynya.



Kita bisa mengisi array multi dimensi sekaligus pada saat dideklarasikan. Ingat sebelumnya bagaimana array 1 dimensi biasa dideklarasikan, dan bagaimana isinya diinisialisasikan, yaitu seperti daftar nilai-nilainya yang dipisahkan dengan koma, dan diletakkan di dalam tanda kurung kurawal { dan }.



Inisialisasi array bisa juga digunakan untuk array multi dimensi, yang terdiri dari beberapa inisialisasi array 1 dimensi, masing-masing untuk setiap barisnya. Misalnya, array A pada gambar di atas dapat dibuat dengan perintah :



int[][] A = { { 1, 0, 12, -1 }, { 7, -3, 2, 5 }, { -5, -2, 2, 9 } };



Jika tidak ada inisialisasi yang diberikan untuk suatu array, maka nilainya akan diisi dengan nilai awal tergantung pada tipenya : nol untuk bilangan, false untuk boolean dan null untuk objek. Seperti halnya array 1 dimensi, array 2 dimensi juga sering diolah dengan menggunakan perulangan for. UNtuk mengolah semua elemen pada array 2 dimensi, kita bisa menggunakan pernyataan for bertingkat. Jika array A dideklarasikan seperti

int[][] A = new int[3][4];



maka kita bisa mengisi 0 untuk semua elemen pada A dengan menggunakan



for (int baris = 0; baris < 3; baris++) { for (int kolom = 0; kolom < 4; kolom++) { A[baris][kolom] = 0; } }



Pertama kali perulangan for bagian luar akan memproses dengan baris = 0. Bagian dalamnya akan mengisi keempat kolom pada baris pertama, yaitu A[0][0] = 0, A[0][1] = 0, A[0][2] = 0, dan A[0][3] = 0. Kemudian perulangan for bagian luar akan mengisi baris kedua, dan seterusnya.



Dan juga, kita bisa menjumlah semua elemen pada A dengan



int jml = 0; for (int i = 0; i < 3; i++) for (int j = 0; j < 4; i++) jml = jml + A[i][j];



Untuk mengolah array 3 dimensi, tentunya kita harus menggunakan perulangan for bertingkat 3.



Suatu array 2 dimensi bisa digunakan untuk menyimpan data yang secara alami memang tersusun sebagai baris dan kolom. Misalnya papan catur terdiri dari 8 baris dan 8 kolom. Jika suatu kelas dinamakan PapanCatur untuk merepresentasikan papan catur, maka kita bisa deklarasikan dengan perintah



PapanCatur[][] papan = new PapanCatur[8][8];



Kadang-kadang array 2 dimensi juga digunakan untuk masalah yang tidak terlalu jelas matriksnya. Misalnya perusahaan yang memiliki 25 toko. Anggap masing-masing toko memiliki keuntungan yang didapat pada masing-masing toko tersebut setiap bulan pada tahun 2009. Jika toko-toko tersebut memiliki nomor 0 hingga 24, dan 12 bulan dari Januari 09 hingga Desember 09 dinomori 0 hingga 11, maka data keuntungan dapat disimpan dalam array untung yang dideklarasikan seperti :



double[][] untung = new double[25][12];



untung[3][2] adalah keuntungan yang dibuat oleh toko nomor 3 di bulan Maret. Atau secara umum, untung[noToko][noBulan] adalah keuntungan toko noToko pada bulan noBulan. Dalam contoh ini array 1 dimensi untung[noToko] memiliki arti : Data keuntungan satu toko selama satu tahun.



Anggap array untung telah diisi dengan data. Data ini bisa diolah lebih lanjut. Misalnya, total keuntungan seluruh perusahaan -- sepanjang tahun dari seluruh toko -- dapat dihitung dengan menjumlahkan semua elemen pada array :



double totalUntung; // Total keuntungan perusahaan tahun 2009



totalUntung = 0; for (int toko = 0; toko < 25; toko++) { for (int bulan = 0; bulan < 12; bulan++) totalUntung += untung[toko][bulan]; }



Kadang-kadang kita juga perlu menghitung hanya satu baris atau satu kolom saja, bukan keseluruhan array. Misalnya, kita ingin menghitung keuntungan total perusahaan pada bulan Desember, yaitu bulan nomor 11, maka kita bisa gunakan perulangan :



double untungDesember = 0.0; for (noToko = 0; noToko < 25; noToko++) untungDesember += untung[noToko][11];



Sekarang mari kita buat array 1 dimensi yang berisi total keuntungan seluruh toko setiap bulan :



double[] untungBulanan; // Keuntungan setiap bulan untungBulanan = new double[12];



for (int bulan = 0; bulan < 12; bulan++) { // hitung total keuntungan semua toko bulan ini untungBulanan[bulan] = 0.0; for (int toko = 0; toko < 25; toko++) { untungBulanan[bulan] += profit[toko][bulan]; } }



Sebagai contoh terakhir untuk mengolah array keuntungan, misalnya kita ingin tahu toko mana yang menghasilkan keuntungan terbesar sepanjang tahun. Untuk menghitungnya, kita harus menjumlahkan keuntungan setiap toko sepanjang tahun. Dalam istilah array, ini berarti kita ingin mengetahui jumlah setiap baris pada array. Kita perlu mencatat hasil perhitungannya untuk mencari mana toko dengan keuntungan terbesar.



double untungMaks; // Keuntungan terbesar suatu toko int tokoTerbaik; // Nomor toko yang memiliki keuntungan terbesar



double total = 0.0; // Total keuntungan suatu toko



// Pertama-tama hitung keuntungan dari toko nomo 0



for (int bulan = 0; bulan < 12; bulan++) total += untung[0][bulan];



tokoTerbaik = 0; // Mulai dengan anggapan toko nomor 0 untungMaks = total; // adalah toko paling menguntungkan // Sekarang kita lihat seluruh toko, dan setiap kali // kita melihat toko dengan keuntungan lebih besar dari // untungMaks, kita ganti untungMaks dan tokoTerbaik // dengan toko tersebut for (toko = 1; toko < 25; toko++) { // Hitung keuntungan toko tersebut sepanjang tahun total = 0.0; for (bulan = 0; bulan < 12; bulan++) total += untung[toko][bulan]; // Bandingkan keuntungan toko ini dengan untungMaks if (total > untungMaks) { untungMaks = total; // keuntungan terbesar saat ini tokoTerbaik = toko; // datang dari toko ini } } // akhir for // Di sini, untungMaks adalah keuntungan terbesar dari 25 toko // dan tokoTerbaik adalah toko dengan keuntung tersebut // (Mungkin juga ada toko yang menghasilkan keuntungan // yang persis sama.) Ok tadi adalah sedikit ilmu tentang struktur array di java programming.



source : http://java.lyracc.com/belajar/java-untuk-pemula/array-multi-dimensi

Thursday, November 24, 2011

Sejarah Java Programming

Kelahiran bahasa Java dimulai tahun 1991. Bahasa Java merupakan proyek penelitian Sun Microsystems yang diberi nama kode Green. Proyek ini bertujuan membangun sebuah sistem yang memungkinkan komputer berperan dalam peralatan rumah tangga. Fokus pertama proyek adalah pada TV kabel yang disebut set-top box. Idenya adalah agar para pengguna televisi dapat memesan film, membeli barang dan sebagainya melalui televisi.



Untuk menjalankan proyek tersebut Sun merencanakan untuk membangun sebuah sistem operasi yang dibangun dengan bahasa C++. Akan tetapi James Gosling (salah seorang anggota tim proyek) merasa tidak puas dengan bahasa C++. Akhirnya Ia membuat sendiri bahasa pemrograman baru yang diberi nama Oak. Nama tersebut diambil dari nama pohon yang terlihat dari jendela kantornya. Oak dibuat berdasarkan pada syntax bahasa C++. Namun Oak lebih sederhana dari C++, lebih stabil dan lebih mendukung network-programming. Selain itu Oak dibuat murni object-oriented. Bahasa Oak dibuat sebagai bahasa yang tidak terikat pada satu platform (cross-platform atau multi-platform). Tahun 1994, proyek Green diperbesar oleh Sun menjadi proyek FirstPerson. Tapi proyek tersebut gagal akibat penolakan pasar terhadap ide TV interaktif.



Pada saat itu Internet memulai sejarah baru dengan WWW (World Wide Web). Browser GUI pertama adalah Mosaic. Sun melihat celah lain dalam dunia Web. Sun merasa bahasa Oak yang multi-platform serta ditujukan untuk pemrograman interaktif dan distributed sangat cocok untuk dunia Web.



Tahun 1995, nama Oak diganti dengan nama Java karena ada produk lain yang telah mematenkan nama tersebut. Pemilihan nama ini (yang dikenal oleh para pekerja Sun sebagai nama jenis kopi) sama sekali tidak didasarkan atas kedekatan mereka dengan Indonesia atau pulau (atau orang) Jawa. Nama Java dipilih mengalahkan nama-nama lainnya, sekedar karena mereka merasa bahwa nama ini sangat bagus (“cool” menurut bahasa anak muda sekarang). Bersamaan dengan lahirnya nama Java ini, Sun juga mengganti nama web-browser mereka menjadi HotJava (semula bernama WebRunner). Sun kemudian mengumumkan bahasa Java sebagai bahasa yang mampu menjalankan Web secara interaktif dan aman.



Pada pertengahan tahun 1995, Netscape mengumumkan akan mengadopsi Java di dalam browser mereka. Kemudian, Java (pada tahun-tahun itu) secara de-facto menjadi bahasa standar di dunia maya Internet. Perkembangan Java dipermudah lagi dengan tersedianya JDK (Java Development Kit) di situs milik Sun yang dapat di-download gratis. Akhir tahun 1995, IBM dan Microsoft memutuskan untuk membeli lisensi Java untuk dipakai dalam teknologi mereka.

 
- ,