Cari Blog Ini


Selasa, 06 April 2010

Pengenalan Servlet 1


haiii...haiii....
dah lama neeeh aku gag up date blog lagiii...

nahhh,,,
the new blog ku adalah tentang servlet,,,
kenapa servlet???karena saya lagi belajar tentang servlet,,,
biar gag lupa gituuu,,,

Ok dehh,,,
langsung azza iaa...

Pengenalan Servlet Java


Servlet adalah java program yang dieksekusi disisi server, untuk menciptakan web dinamis dan berinteraksi dengan client menggunakan paradigma request-response.

Keunggulan Servlet :
• menggunakan multi-threads
• Tidak menciptkan proses baru pada setiap request yang diterima
• Diinisialisasi sekali dan persists di memory server untuk melayani banyak request

Kenapa Harus Servlet?
• Mudah dibuat, menggunakan API sederhana untuk input, cookies, session, etc
• Ditulis dengan Java
• Dapat digabungkan dengan teknologi java lainnya: JDBC, EJB, JMS, JavaMail, RMI, etc…

Apa yang di kerjakan servlet?
• Menerima request dari client (paling umum adalah HTTP request)
• Mengambil informasi-informasi dari request tsb.
• Menciptakan konten untuk dikirimkan ke client atau melakukan bisnis logic seperti mengakses database atau memanggil EJB’s
• Menciptakan dan mengirimkan response ke client atau meng-forward request yang diterimanya ke servlet lainnya atau ke halaman JSP

Request & Response???
• What is Request?
o Informasi yang dikirimkan dari client (browser) ke server
• What is Response?
o Informasi yang dikirimkan ke client dari server:
- Text (html, plain) atau gambar
- Http header, cookies, session, et




Langsung aza kita praktekkan pake program netbeans.

1. pilih file – new project – pilih category Web – Project Web Application – next
2. isi project name dengan nama “CobaProgram” , server nya “Bundled Tomcat” , “ilangin centang yang ada di set as main project” – next
3. setelah di next ada pilihan JavaServer Faces dan Struts , nah karena disini kita mo belajar nya servlet acuhkan saja kedua pilihan trsbt (ga usah ada yg dicentang) langsung klik Finish.
4. Sekarang pilih folder “Web pages” di dlm project kalian , disitu ada yang namanya index.jsp , nah isikan code berikut :


Servlet Pertamaku




5. sekarang pilih folder “Source Package” – klik kanan pilih “new” – “Servlet” , package isi dengan nama “servlet” , class name isi dengan nama “LihatNama” lalu di Next
6. Ganti Url Pattern menjadi “ /lihatNama “
7. Finish.
8. Sekarang kita udah punya file servlet dengan nama LihatNama , sekarang isi kan code berikut :

String nama = request.getParameter(“nama”);

out.println(“”);
out.println(“”);
out.println(“Servlet LihatNama”);
out.println(“”);
out.println(“”);
out.println(“

Coba Servlet

”);
out.println(“hai ” + nama);
out.println(“”);
out.println(“”);

out.close();

ngisinya harus dibawah “PrintWriter out = response.getWriter(); ”
kemudian kode yg tadinya ada di bawah “PrintWriter out = response.getWriter(); ”
dihapus aja..

Ni dya yg perlu di hapus :

/* TODO output your page here
out.println(“”);
out.println(“”);
out.println(“Servlet LihatNama”);
out.println(“”);
out.println(“”);
out.println(“

Servlet LihatNama at ” + request.getContextPath () + “

”);
out.println(“”);
out.println(“”);
*/
out.close();


9. Untuk menjalankan program diatas Klik kanan project kta td yg bernama “CobaProgram” – klik build project dl – baru di run project.

Jumat, 08 Januari 2010

Perulangan For

Kali ini kita akan membahas tentang bentuk perulangan, yaitu perulangan for. Setiap bentuk perulangan for dapat diubah menjadi bentuk perulangan while dengan fungsi yang sama tanpa mengubah alur program. 

Misalnya, kita akan menghitung 1+2+3+4+5+...+100. Kita bisa ekspresikan program tersebut dalam bentuk
i = 1;
jumlah = 0;
while (i <= 100) {
    jumlah += i;
    i++;
}
 
Perulangan ini dapat ditulis juga dengan

jumlah = 0;
for (i = 1; i <= 100; i++)
    jumlah += i
 
Apa point-point penting yang kita lihat dari perubahan ini? 
Pertama mari kita lihat bentuk penggunaan while yang umum dilakukan
 
inisialisasi variabel
while (suatu_kondisi_variabel) {
    perintah
    update_variabel
}
 
Di sini perulangan while memiliki 3 komponen penting, yaitu inisialisasi, yaitu memberikan nilai awal suatu variabel, suatu_kondisi_variabel, yaitu pengujian bahwa perulangan akan terus dilakukan selama kondisi ini bernilai true, dan terakhir update_variabel, yaitu instruksi mengubah nilai kondisi variabel untuk membatasi perulangan sehingga akan selesai suatu saat, tidak berulang terus menerus.

Pada perulangan for, ketiga komponen ini dirangkai menjadi satu dalam bentuk
for (inisialisasi_variabel; kondisi_variabel; update_variabel)
   perintah
atau jika perintah merupakan blok yang terdiri dari banyak perintah, dapat dituliskan juga dalam bentuk
for (inisialisasi_variabel; kondisi_variabel; update_variabel) {
   banyak_perintah
}

Di sini inisialisasi variabel bisa berupa apa saja yang berbentuk perintah, misalnya memberikan variabel dengan nilai awal tertentu, dalam bentuk variabel = nilai_awal.
kondisi_variabel harus berbentuk pernyataan boolean seperti suatu_kondisi pada pernyataan while. Sedangkan update_variabel juga berbentuk perintah.
inisialisasi_variabel, kondisi_variabel, atau update_variabel dapat dikosongkan dan tidak harus selalu diisi. Bagian yang tidak diisi yang selalu digantikan dengan true, yang artinya perulangan akan terus dieksekusi tanpa henti. Untuk menghentikannya, perintah break harus diberikan ditengah-tengah badan perulangan.

Bentuk paling umum dari perulangan for adalah menghitung. Biasanya perulangan ini memiliki bentuk seperti
for (variabel = nilai_minimum; variabel <= nilai_maksimum; variabel++) {
    perintah
}

Perhatikan bagian terakhir adalah menaikkan nilai variabel dengan 1, yang artinya perulangan akan dimulai dengan nilai_minimum, diakhiri dengan nilai_maksimum dengan jeda 1.
Contoh, jika kita ingin berhitung 2,5,8,11,14,17, atau dengan kata lain, mulai dari 2 hingga 17 dengan jeda 3, kita bisa mengekspresikan for dengan
 
for (i = 2; i <= 17; i += 3) {
    System.out.println(i);
}

Untuk menghitung mundur, kita bisa menggunakan perintah seperti
for (i = 20; i >= 0; i--) {
    System.out.println(i);
}

Atau jika kita ingin menghitung maju dan mundur pada saat yang bersamaan, misalnya i dari 1 hingga 10 dan j dari 10 hingga 1, kita bisa ekspresikan dengan
 
for (i = 1, j = 10; i <= 10; i++, j--) {
    System.out.println(i + " " + j);
}

Object Oriented Programming

Pemahaman tentang OOP

OOP adalah teknik untuk membuat program objek, yaitu program yang tersusun dari kelas dan objek yang saling berhubungan.OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. 


Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,dan polymorphism atau kebanyakrupaan. 

Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.

Hubungan antar kelas/objek ini dapat dilihat baik saat program ditulis maupun saat program dieksekusi.
Karena OOP merupakan teknik pembuatan program, maka ada pendekatan yang digunakan. Ada aturan yang harus diikuti saat menyusun programnya, dan ada tools yang digunakan untuk menuliskan programnya.

Belajar OOP
 

Belajar OOP adalah belajar pemrograman, oleh karena itu ruang lingkup pembahasannya mencakup:
  1. Belajar ide atau pendekatan yang menjadi konsep dasar OOP.
  2. Belajar bagaimana menerapkan konsep dasar itu menjadi berbagai bentuk OOP.
  3. Belajar bahasa pemrograman yang akan digunakan untuk membuat berbagai bentuk OOP, seperti struktur program, sintaks penulisan, atau mekanisme eksekusi program.
  4. Belajar menggunakan tools bahasa pemrograman untuk menulis program, kompilasi, dan eksekusi.
  5. Belajar menemukan dan mengartikan kesalahan program, dan memperbaikinya.
  6. Belajar bagaimana mengimplementasi 1 s.d. 5 untuk membuat sebuah aplikasi yang utuh.
Tiga Pilar OOP 
  • Inheritance   Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable.
    Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik. 

    Ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP, diantaranya:
    - Single Inheritance

    - Multiple Inheritance


    dalam penggunaan inheritance class Induk akan mewariskan semua atribut yang ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan class induk, bahkan dapat memilki kebabasan untuk memilki atribut berbeda dengan class induknya berikut ilustrasi dalam php. 

    Pada OOP, sebuah objek dapat diwariskan atau diturunkan atribut/variable dan methodnya ke objek anak, dengan key extends. Pada bagian inheritance ini kita kenal beberapa istilah superclass dan subclass. Superclass adalah objek induk dan subclass adalah objek turunan dari superclass. Sebagai contoh objek kucing kita sebut superclass dan objek turunan dari kucing misal kucing anggora, kucing hutan, kucing arab dan kucing-kucing lainnya kita sebut sebagai subclass.

    Perhatikan contoh berikut
    File Binatang.java(sebagai blueprint)
    public class Binatang {
          String nama;
          int kaki;
          int km;
          int kekuatanDengar;
          String telinga;
          String mata;

          //konstruktor
          public Binatang(){
                nama = "";
                kaki = 0;
                kekuatanDengar = 0;
                km = 0;
                telinga = "";
                mata = "";
          }

          //mendefinisikan method
          public void pendengaranTelinga(int desible){
                kekuatanDengar = kekuatanDengar + desible;
                System.out.println("Kekuatan pendengar : "+ kekuatanDengar);
          }

          //method untuk konstruktor dengan satu parameter
          public void jarakPandang(int jarak){
                km = jarak;
                System.out.println("Jarak pandang : "+ km);
          }
    }


    File kucing.java(method turunan dari induk/Binatang)
    public class kucing extends Binatang{
          //method dari kucing hutan
          public void warnaMata(String color){
                System.out.println("Warna Mata Kucing Hutan "+ color);
          }

          public void panjangKuku(int cm){
                System.out.println("Panjang Kuku Kucing Hutan "+ cm);
          }
          }


    Penciptaan object dari kucing
    File kucingHutan.java
    public class kucingHutan {
           public static void main(String[] args){
                 //create object
                 kucing kucingRumah = new kucing();

                 //panggil method objek kucing
                 kucingRumah.warnaMata("merah");
                 kucingRumah.panjangKuku(10);

                 //method dasar kemampuan kucing
                 kucingRumah.pendengaranTelinga(100);
                 kucingRumah.jarakPandang(500);
           }
    }


    Hasil compile dan run
    run:
    Warna Mata Kucing Hutan merah
    Panjang Kuku Kucing Hutan 10
    Kekuatan pendengar : 100
    Jarak pandang : 500
    BUILD SUCCESSFUL (total time: 0 seconds)




  • Encapsulation Sebuah class yang baik tidak akan menyatakan/memperlihatkan semua informasi mengenai dirinya kepada pihak luar. Class yang baik akan memilah setiap informasi di dalam dirinya. Mana informasi yang tidak boleh diketahui pihak luar, mana informasi yang boleh diketahui pihak luar, mana data yang boleh diubah dari luar, mana data yang tidak boleh diubah, dan sebagainya.Untuk pemahaman lebih lanjut perhatikan contoh listing program berikut:
    Pada contoh diatas untuk file Binatang.java tidak ada perubahan.
    Listing file methodBinatang.java
    public class methodBinatang{
          public static void main(String[] args){
                //create object
                Binatang kucing = new Binatang();
                Binatang katak = new Binatang();

                //init objek kucing
                kucing.nama = "Kucing";
                kucing.kaki = 4;
                kucing.telinga = "Panjang";
                kucing.mata = "coklat";

                //pencetakan dengan memanggil method objek kucing.
                kucing.printDataBinatang();

                katak.nama = "Katak";
                katak.mata = "bulat";
                katak.kaki = 4;
                katak.telinga = "kecil";

                //pemanggilan method objek katak
                katak.printDataBinatang();
          }
    }

    Hasil compile
    run:
    Nama Binatang : Kucing
    Jumlah kaki : 4
    Bentuk telinga : Panjang
    Warna mata : coklat
    Nama Binatang : Katak
    Jumlah kaki : 4
    Bentuk telinga : kecil
    Warna mata : bulat
    BUILD SUCCESSFUL (total time: 0 seconds)



    Ada 2 langkah yang diperlukan untuk melakukan enkapsulasi:
    1. Hak akses dari setiap field di dalam class tersebut diubah menjadi private.
    2. Buatlah getter dan setter method sesuai dengan kebutuhan. Hak akses dari getter/setter method ini harus public agar dapat dipanggil dari luar class.


  • Polymorphis   Polymorphism apabila diartikan menurut katanya berarti “banyak bentuk”. Ketika sebuah object menerima pesan, object tersebut pastilah mempunyai method untuk menanggapi pesan yang datang tersebut. Apabila suatu object tersebut merupakan turunan dari object laen maka object tersebut pasti akan menuruni semua sifat dari induknya, termasuk juga method-method yang ada. Dalam hubungan induk dan anak ada sebutan superclass dan subclass, superclass sebagai class induk dan subclass sebagai class anak. Walaupun pesan datang dan ditanggapi oleh method yang sama dengan superclass namun behavior atau perilaku yang akan dilakukan subclass belum tentu sama dengan superclass nya. Subclass dapat mendefinisikan sendiri sebuah perilaku yang akan dilakukannya, ini yang dimaksud dengan “banyak bentuk” atau polymorphism.  Suatu objek yang sama dapat memiliki lebih dari satu bentuk atau perilaku. Sebagai contoh seekor kucing dalam menerima respon akan menggerakkan kaki depannya dan berlari. Pada objek lain misal seekor katak dalam menerima respon akan melompat, hal ini terjadi pada objek yang sama tetapi dalam proses menerima respon memiliki tindakan yang berbeda.

Variabel dan Tipe Data

Ini ada sedikit pengetahuan tentang Variabel dan tipe data.


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

Hal lain yang penting adalah compound names atau nama campuran, yaitu yang merupakan nama biasa yang dihubungkan dengan titik, misalnya System.out.println. Idenya adalah "sesuatu" pada Java dapat terdiri dari "sesuatu" yang lain. 

Nama System.out.println artinya System menampung out dan out menampung println.  Kita sebut "sesuatu" sebagai identifier (pengenal) tidak peduli apakah ia berupa nama tunggal atau campuran. Tugas komputer adalah untuk melacak di mana data tersebut di simpan, sedangkan programmer menggunakan nama untuk memerintahkan komputer mengambil data tersebut dari memori. Nama yang digunakan seperti ini disebut variable.

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

Dalam bahasa Java, satu-satunya cara untuk memasukkan data ke dalam variabel adalah dengan menggunakan assignment statement, atau pernyataan pemberian nilai. Pernyataan ini berbentuk:
variable = ekspresi;
di mana ekspresi menyatakan apapun yang berhubungan dengan nilai suatu data. Ketika komputer menjalankan instruksi ini, komputer akan menghitung dan menyimpan hasilnya ke dalam variabel. Contoh:
kecepatan = 40;

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

Sekarang misalnya kita ingin melakukan perhitungan yang lebih kompleks:
jarak = kecepatan * waktu

Di sini, * merupakan operasi perkalian. Komputer mengambil data yang disimpan dalam variabel kecepatan dan waktu, melakukan perkalian, dan menyimpan hasilnya dalam jarak.
Variabel dalam bahasa Java didesign untuk menyimpan hanya 1 jenis tipe data. Kompiler akan menampilkan kesalahan sintax apabila variabel ini dicoba untuk diberi tipe data jenis lain. Oleh karena itu Java disebut bahasa pemrograman bertipe kuat atau strongly typed language.

Ada 8 tipe data primitif dalam bahasa Java.
Jenis Data Deskripsi Ukuran Minimum Maksimum
boolean Hanya bisa berisi benar atau salah 1-bit    
char Karakter Unicode 16-bit    
byte Bilangan bulat
8-bit -127 128
short Bilangan bulat
16-bit -32768 32767
int Bilangan bulat 32-bit -2147483648 2147483647
long Bilangan bulat
64-bit -9223372036854775808 9223372036854775807
float Bilangan riil 32-bit 1.40129846432481707e-45 3.40282346638528860e+38
double Bilangan riil 64-bit 4.94065645841246544e-324 1.79769313486231570e+308

Suatu variabel baru dapat digunakan apabila telah dideklarasikan. Deklarasi variable berbentuk seperti :
nama_tipe nama_variabel;
 
nama_variabel dapat berupa sebuah nama variabel atau beberapa nama sekaligus yang dipisah dengan koma. Gaya pemrograman yang baik yaitu dengan mendeklarasikan satu variabel dalam satu pernyataan, kecuali variabel tersebut berhubungan erat satu sama lain. Misalnya:
float num;
String nama;
String nama;
boolean bol;
int x,y;
 
Atau pendeklarasian variabel bisa juga dilakukan sekaligus dengan pemberian nilainya, seperti pada contoh berikut:
int num = 1000;
char ch = 'e';
float angka = -1.504;
boolean bol = true;
 
Jenis-jenis Variabel
Java memiliki beberapa jenis variabel yang dapat dikelompokkan sebagai berikut :
  • Instance Variables (tidak statis). Dalam bahasa pemrograman berorientasi objek, objek menyimpan variabel yang tidak dideklarasikan dengan kata kunci static dalam kategori non-statis, atau dapat berubah-ubah. Suatu kelas dapat dijelmakan ke dalam beberapa objek. Nilai yang terkandung dalam variabel tak-statis ini berbeda untuk setiap objeknya.
  • Class Variables (statis). Variabel ini merupakan bagian integral dari suatu kelas, dan tidak ada satu objek pun yang dapat menyatakan kepemilikan atas variabel ini. Variabel yang dideklarasikan sebagai statis digunakan bersama oleh semua objek. Variabel ini lebih bersifat global yang nilainya sama untuk setiap objek pada kelas yang bersangkutan.
  • Local Variables. Variabel ini didefinisikan di dalam suatu metoda (method) atau dalam suatu prosedur. Variabel ini bersifat lokal karena hanya dapat diakses oleh metoda atau prosedur tersebut.
  • Parameter. Paramater atau argumen adalah variabel yang digunakan pada saat suatu metoda atau prosedur dipanggil. Parameter berguna untuk memberikan nilai awal untuk diteruskan (pass) ke dalam suatu prosedur atau metoda.
Aturan membuat nama variable:
  • Dimulai dengan huruf, kemudian diikuti dengan huruf atau angka dan underscore. nama juga dapat dimulai dengan tanda_ atau $ tapi tidak direkomendasikan.
  • Panjang variabel tidak dibatasi,secara umum dan praktis tidak melebihi 20 karakter.

    Literal
    Pada bagian ini akan ada sedikit penjelasan tentang literal, yaitu rangkaian kata atau huruf yang menyatakan suatu nilai. Misalnya:

    int angka = 10;

    Pada pernyataan di atas, yang dinamakan literal adalah 10, karena 10 berarti bilangan bulat atau integer. Pada bahasa pemrograman java, terdapat beberapa jenis literal yang melambangkan bilangan bulat, riil, kalimat, atau boolean.

    Literal Bilangan Bulat
    Bilangan bulat dapat dilambangkan dalam beberapa bentuk. Bilangan bulat biasa dilambangkan dengan deretan angka yang dimulai dengan angka yang bukan nol.
     
    int angka = -10;


    Bilangan oktal adalah bilangan bulat berbasis 8, yang berarti hanya dapat terdiri dari angka-angka 0 hingga 7. Bilangan oktal ditulis seperti bilangan bulat biasa dimulai dengan 0.
     
    // 22 basis delapan atau 18 dalam desimal
    int angka = 022;

    Bilangan heksadesimal adalah bilangan berbasis 16. Bilangan heksadesimal dilambangkan dengan 0 hingga 9 dan a hingga f dan dimulai dengan 0x.
     
    // 2a heksadesimal atau 42 dalam desimal
    int angka = 0x2a;

    Long integer. Seperti dijelaskan pada bab terdahulu long integer membutuhkan memori sebesar 64bit, yang artinya kita dapat menyimpan bilangan bulat hingga 2 ^ 64. Untuk merepresentasikan long integer, tambahkan huruf L pada akhir bilangan.
     
    int angka = 22L;

    Literal Karakter
    Kita dapat melambangkan suatu karakter dengan tanda petik tunggal misalnya ‘a’ atau ‘3′ atau ‘=’. Suatu karakter dapat juga dilambangkan dengan kode ASCII nya. Caranya dengan memulainya dengan \u00 (garis miring terbalik) kemudian diikuti dengan kode ASCII nya dalam bentuk heksadesimal.
     
    // huruf 'A' dalam ASCII
    char huruf = '\u0041';

    Literal Boolean
    Nilai true dan false pada java merupakan literal boolean. Suatu variabel bertipe boolean hanya dapat memiliki nilai true atau false.

    boolean ok = true;
     
    Ingat bahwa boolean true atau false TIDAK menggunakan tanda petik tunggal seperti ekspresi pada karakter.

    Literal Bilangan Riil
    Bilangan riil, misalnya -0.00127 atau 415.842, pada java dapat disimpan baik sebagai float atau double. Bilangan real dapat direpresentasikan dalam bentuk desimal biasa, pecahan, atau eksponen (dilambangkan dengan e atau E).

    TipeUkuranRentangPresisi (jumlah digit)
    bytesbit
    float432+/- 3.4 x 10386-7
    double864+/- 1.8 x 1030815
    Imbuhan akhir d atau D dan f atau F dapat pula ditambahkan untuk menentukan tipenya secara eksplisit. Berikut beberapa contohnya.
    double d = 3.27E+32;
    float f = 4f;
    float pi = 3.14159;
    Literal String
    String merupakan untaian huruf dan angka yang tersusun menjadi satu kalimat. Dalam bahasa java, string bukan merupakan tipe primitif, tetapi merupakan kelas. String pada java tidak disimpan dalam bentuk array seperti pada C. Java menyediakan beberapa metoda untuk melakukan penggabungan, modifikasi, atau perbandingan. String ditulis di antara dua tanda petik ganda seperti contoh berikut.
    String salam = "Selamat Datang";
    String juga dapat mengandung karakter spesial seperti dibahas pada literal karakter. Misalnya
    String hallo = "Selamat Datang \"Bapak Presiden\"";
    System.out.println("Hallo Bambang\nSelamat pagi,\nSemoga hari anda cerah\n";
    Berikut ini adalah beberapa contoh lainnya.
    // Contoh string kosong
    String teks = "";
     
    // Contoh string berisi "
    teks = "\"";
     
    // String dapat juga dipisah menjadi beberapa baris
    teks = "ini baris pertama " +
    "dan ini lanjutannya."
    Literal Null
    Literal terakhir pada bahasa java adalah literal null. Null merupakan kondisi di mana suatu objek tidak diberi alokasi memori. Pada saat suatu objek dideklarasikan, komputer akan mengalokasikan memori untuk objek tersebut. Apabila objek tersebut telah selesai dipergunakan, kita dapat melepas lokasi memori yang digunakan oleh objek tersebut sehingga memori itu dapat digunakan oleh objek lain. Berikut ini adalah contohnya

    obj = null;

    Literal null berfungsi memberi tahu garbage collector (pemulung memori) bahwa objek tersebut tidak lagi terpakai. Kemudian memori akan dilepaskan agar dapat digunakan oleh objek lain.

Kamis, 07 Januari 2010

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 pemberitaan 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.

 

Kelebihan

  • Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.
  • OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) yang artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa pemrograman berbasis objek secara murni. Semua tipe data diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer sekalipun.
  • Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
  • Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
  • Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

Kekurangan

  • Tulis sekali, perbaiki di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
  • Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
  • Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.