Kamis, 27 Oktober 2011

Masjid Agung Djenna Masjid Unik Yang Terbuat Dari Lumpur


Djenne_Mosque_Dubois

Masjid Agung di Djenna, mali tidak hanya bangunan yang terbuat dari Bata dengan bahan dasar lumpur terbesar di dunia, tetapi juga sebuah model arsitektur ecofriendly dan berkelanjutan, menurut Infomrasi bahwa bangunan ini dibangun pada tahun 1200 hingga 1300, dan mengalami kerusakan parah. kemudian masjid ini dibangun lagi oleh pemerintah kolonial Prancis pada tahun 1906, gaya bangunan tersebut masih mengadopsi gaya Afrika di wilayah tersebut. Bahkan, masjid dianggap oleh banyak orang sebagai salah satu contoh terbaik dari gaya arsitektur, contoh lain termasuk Agadez Masjid Agung di Nigeria dan Masjid Larabanga di Ghana.

Masjid Agung di Djenna, Mali Yang Rusak
Apa itu sebenarnya batu Bata dari lumpur? yang juga disebut adobe (tidak ada hubungannya perusahaan Adobe), merupakan bahan bangunan benar-benar alami. dimana bahan bangunannya terbuat dari pasir, tanah liat, air dan bahan perekat organik seperti jerami, tongkat atau bahkan pupuk kandang, struktur yang dihasilkan dikenal sangat tahan lama dan kokoh.Dinding Masjid Agung terbuat dari bata lumpur yang dijemur di sinar matahari (disebut ferey)
Lumpur yang dilapisi dengan plester lumpur yang halus rapih. Dinding bangunan yang dihiasi dengan bundel kelapa sawit (Borassus aethiopum) atau di sebut Toron dengan ukuran sekitar 60 cm (2 kaki) dari permukaan, toron ini juga berfungsi sebagai “ready made” untuk perbaikan tahunan.

Keramik dipasang untuk menjaga agar air hujan dapat melewati bangunan dan langsing keluar, dimana keramik ini di pasang di atas bangunan. Masjid ini dibangun diatas fondasi berukuran sekitar 75 m x 75 m dan berada pada ketinggian 3 meter di atas permukaan tanah terdapat 6 set tangga, masing-masing dihiasi di puncaknya. Masjid Agung di Djenna, Mali Tahun 2010 (Umurnya sudah kira-kira 700- 800 Tahun, Jadi Sudah Sangat terbukti Mengatasi Gangguan Seperti Hujan dan Air)
Setiap tahun, masjid Djenna mendapat perawatan atau perbaikan dalam rangka menyambut berbagai perayaan festival rakyat sebagai hiburan yang luarbiasa, serta menyenangkan bagi masyarakat Djenna. Masjid Agung Djenna adalah salah satu “Situs Warisan Dunia” yang ditetapkan oleh UNESCO pada tahun 1988″, yang dapat dikunjungi setiap saat, tetapi tidak dibolehkan memasuki bangunan, kecuali anda Muslim. Masjid Agung ini telah ditutup untuk non-Muslim pada tahun 1996, akibat dari kerusuhan dan penembakkan salah seorang official fotografi majalah Vogue Prancis di dalam masjid.

ibu

Aku memang bukan manusia sempurna yang layak kau kagumi
Bukan juga malaikat yang kan selalu ada disisi mu
Bukan juga bidadari tercantik yang dapat kau banggakan
Tapi aku...
Aku hanyalah setitik debu dari tanah jalanan
Yang lemah dan mungkin tak pernah berarti
Namun..
Aku ingin selalu membuatmu tersenyum
Aku mohon padamu..
Sebelum aku pergi
Berikan aku senyum terindah yang kau miliki
Karena ku berjanji..
kan ku berikan seribu tawa bahagia
Karena aku tak mau melihatmu menangis
Air matamu adalah luka hatiku
Demi kau ibu..
Aku tak akan menyerah
Tak mau aku kalah
Karena kaulah yang terindah
Dem senyum yang ada dihatimu
Izinkan aku tuk memelukmu
Mencium keningmu
Dan berlutut dikakimu
karena engkaulah surgaku..

sahabat

Aku kamu kita dulu setiap detik menyulam benang dalam satu ikatan Aku kamu kita dulu melipat lembaran kertas dalam kebersamaan Aku kamu kita dulu membuat dunia kecil penuh dengan kesederhanaan Dan aku kamu kita dulu selalu berselimutkan dengan keceriaan.. Jangan pernah kau padam kan api yang menyala itu Karna itu akan menerangi langkah kita Akan menemanimu saat kau sendiri Dan akan menjagamu saat kau terlelap jangan pernah kau hapus kenangan indah itu karena kenangan itu adalah sayap kita biarkan ia tumbuh dan merasuk dalam sucinya jiwa agar mampu kita terbang memecahkan gelapnya malam Aku rela menjadi lilin malam mu.. Walau aku terbakar dan hancur tapi aku bahagia.. karena cahaya kecilku akan selalu menerangimu biarkan aku berada disini untuk mu.. karena dirimu begitu berarti untuk ku.. Saat ku terjaga hingga ku terlelap nanti Selama itu aku akan selalu mengingatmu.. Sahabatku..

Jumat, 30 September 2011

Dermawan Misterius Tinggalkan Duit Rp 1 Miliar di Toilet



TOKYO
- Seorang dermawan yang tidak ingin diketahui identitasnya meninggalkan uang sebesar 10 juta yen atau sekitar Rp 1,17 miliar di sebuah toilet umum, untuk penyandang cacat di pusat perbelanjaan Sakado, Jepang.

Uang sebesar itu dibungkus dalam tas plastik dan ditemukan pada 22 September. Tumpukan uang ini disertai tulisan pesan yang berbunyi, "Saya sebatang kara. Saya tidak mempunyai masa depan jadi biarkan warga Tohuku menggunakan uang ini."

Tohuku adalah wilayah Jepang bagian utara yang diguncang gempa bumi dan tsunami Maret lalu. Para pejabat Sakado mengatakan gerak-gerik dermawan tidak terdeteksi.

"Tidak ada saksi mata dalam peristiwa ini dan kita tidak bisa mereka-reka orang seperti apa yang melakukan ini," jelas juru bicara pemerintah daerah Sakado, Masumi Sekiguchi.

Dia menambahkan, pihak berwenang betul-betul terkejut dan berterima kasih atas kebaikan hati dermawan misterius tersebut. Mereka berencana menyerahkan uang tersebut kepada Palang Merah Jepang bila tidak ada yang mengaku dalam waktu tiga bulan.

Bencana alam dasyat di Jepang baru-baru ini telah menunjukkan kemurahan hati dan kejujuran rakyat negara itu, lapor wartawan BBC di Tokyo, Roland Buerk.

Sebelumnya uang tunai setara Rp450 juta juga ditemukan di kawasan bencana. Uang tersebut kemudian diserahkan kepada polisi. Beberapa waktu kemudian juga ditemukan brangkas uang berisi puluhan juta dolar di tengah reruntuhan.

pengalaman dalam membuat sistem informasi

Semester 4 kemarin, saya sempat mendapat tugas membuat salah satu contoh aplikasi. Jadi, ini merupakan pengalaman pertama saya dalam membuat system informasi yang cukup sederhana. Aplikasi yang saya buat yaitu aplikasi perhotelan.Waktu itu saya dan teman-teman saya menggunakan bahasa pemograman java. proses pembuatannya memang tidak terlalu rumit hanya saja yang membuat rumit adalah kalau ada bagian programnya yang tiba-tiba tidak bisa dijalankan atau di running. Aplikasi yang saya dan temen-temen saya buat itu bisa dipakai secara nyata, penggunanya saya sebagai resepsionis, jadi saya hanya tinggal menginput data tamu dalam memilih tipe kamar dan berapa lama menginap di hotel kami. Selain itu, dibuat juga form untuk fasilitas tambahan seperti makan dan laundry.penggunaan aplikasi yang saya buat termasuk aplikasi sederhana dan mudah digunakan.


nama : nur halimah
kelas : 3IA07
npm : 51409082

Kamis, 14 April 2011

Facebook Gandeng Admax Jadi Rekanan Iklan

Facebook dan Admax Network,online ad network terkemuka, mengumumkan bahwa Admax telah ditunjuk sebagai rekanan penjualan iklan resmi Facebook di Indonesia, Filipina, dan Thailand. Admax akan fokus dalam menyediakan dukungan penjualan dan kampanye untuk solusi iklan premium Facebook, mulai melakukan penawaran sejak 1 April. Demikian rilis yang diterima Liputan6.com, Rabu (13/4).

"Admax sangat memahami pasar Asia Tenggara, dan kehadirannya yang akan memberikan sebuah merek dengan dukungan lokal yang kuat untuk secara sukses mengimplementasikan kampanye marketing mereka," ungkap Stephen Dolan, Direktur Komersial Facebook.

"Kami bersemangat dengan kerja sama ini dan berharap berkerja sama dengan mereka untuk membantu merek berhubungan dengan konsumen dalam Facebook di berbagai wilayah. Facebook memberikan pengiklan platform yang menarik untuk bermacam objektif pemasaran, dan menggabungkan hal ini dengan kekuatan dari kehadiran ad network kami memberikan solusi menyeluruh bagi pengiklan dalam pasar ini," ungkap Mathew Ward, pucuk eksekutif (CEO) Admax Network.

Admax Network yang diluncurkan pada 2006 adalah online advertising network terbesar di Asia Tenggara dengan kantor di Indonesia, Malaysia, Filipina, Singapura, Thailand dan Vietnam. Admax Network fokus pada memudahkan koneksi merek premium dengan lebih dari 76,1 juta orang dan membantu publisher untuk memaksimalkan penghasilan mereka.

Dengan lebih dari 3.200 website berkualitas tinggi dan aman-konten, Admax memiliki banyak rangkaian dari solusi iklan yang disesuaikan. Termasuk, Her Network dan Boost yang menjangkau audiens yang tepat.

Lapisan Ozon Terus Berkurang Tiap Tahun

Lapisan ozon pelindung di Kutub Utara terus menipis akibat radiasi sinar ultraviolet dari matahari. Japantoday mewartakan, Rabu (6/4), Badan Cuaca PBB menyatakan penipisan sebesar 40 persen lapisan ozon terjadi pada musim dingin ini.

Situasi lapisan ozon di Artik karena penyebab serupa, ozon "mengunyah" senyawa dalam polusi udara kimia yang dipicu oleh kombinasi suhu yang sangat dingin dan sinar matahari. Kombinasi dari suhu yang sangat dingin di stratosfer, lapisan utama kedua dari atmosfir bumi, terjadi tepat di atas troposfer, sehingga lapisan ozon rapuh di atmosfer Artik. Selain itu, penipisan ozon juga terjadi akibat CFC dari semprotan aerosol dan pendingin ruangan.

Ozon menipis berarti lebih banyak radiasi pada permukaan bumi. Sementara itu, tingkat ozon di Kutub Utara tetap lebih tinggi dibandingkan dengan daerah lain seperti di daerah khatulistiwa.

"Ini sangat tiba-tiba dan tidak biasa," kata Bryan Johnson, seorang ahli kimia atmosfer yang bekerja di Laboratorium Sistem Kebumian dan Kelautan Atmosfer Amerika Serikat di Kolorado. Ia mengatakan fokus pemanasan global terjadi di Artik, wilayah efek pemasan global pertama kali dirasakan.

"Stratosfer Kutub Utara terus menjadi rentan terhadap kerusakan ozon yang disebabkan oleh zat pemakan ozone yang terkait dengan aktivitas manusia," kata Sekjen PBB Badan Cuaca Michel Jarraud.

Sebelumnya, PBB mengumumkan penipisan ozon bergeser dari khatulistiwa dan meliputi Greenland dan Skandinavia pada Maret silam. Ada kekhawatiran yang muncul jika fenomena ini terjadi setiap tahun. Meskipun ozon secara alami beregenerasi sendiri, tapi kemungkinan besar lapisan ozon akan habis sehingga tidak ada lagi lapisan pelindung atmosfer. 

Jasad Janda Tua Ditemukan Membusuk

Seorang janda di Purworejo, Jawa Tengah, ditemukan tewas mengenaskan, Kamis (14/4). Jasad Pungut Suratman, berusia 86 tahun membusuk dekat kamar mandi. Diduga warga Dusun Demangan, Kabupaten Purworejo menjadi korban penganiayaan.
 
Suminah, anggota keluarga korban mengatakan semasa hidup Pungut tinggal sendirian. Kematian korban pertama kali diketahui Rohmat (53), anak Pungut yang tinggal di lain desa.

Saat itu Rohmat hendak menengok ibunya. Tapi didapati pintu rumah terkunci. Karena curiga, ia lalu mengetuk pintu rumah berkali-kali, tapi tak ada jawaban. Rohmat dan Jumingan, tetangga Pungut lalu mendobrak pintu rumah. Setelah pintu terbuka, terciumlah bau busuk dari dalam. 
 
Kepala Kepolisian Sektor Banyuurip Ajun Komisaris Polisi Suryanto mengatakan, dari hasil pemeriksaan tim medis menemukan bekas luka cukup parah di pelipis korban. Diduga Pungut meninggal sejak dua hari silam. Kasus ini masih diselidiki.(

Arti Kata Sayang


Sayang

Langit hitam tanpa bintang

Entah kemana bulan menghilang

Mendung hitam mengelayut di hati nuran

Hanya desir angin berhembus dingin

Membuai diri dalam lamunan panjang

Sayang

Hayalku terbang entah kemana

Gundah hati kian membungkam bibir kelu

Tatkala luka itu kembali tergores

Luka yang nyaris mengering

Kini terkoyak dan semakin dalam

menyisakan perih di hati

Sayang

Engkau hanyalah makhluk kecil tanpa nyawa

Ketika perih itu menyayat dada

Rasa sayang itu mampu menutup mata hati

Dari perlakuan kejam tak berhati

Sayang

Beribu ampun telah terpatri

Beribu ampun telah di beri

Mungkinkah rasa sayang mampu hentikan amarah

Hentikan dendam di hati

Ketika dusta merajalela

Mampukah rasa sayang kalahkan emosi diri

Tatkala kejujuran diragukan

Andai saja benar.. sungguh luar biasa

Sayang tetaplah sayang

Bukan emosi sesaat yang sirna oleh waktu

Yang lapuk oleh amarah

Sayang tetaplah sayang

Bukan sebuah cinta buta yang menyesatkan

Tapi sayang adalah kasih terbesar

Yang tak terkalahkan oleh apapun

PUISI UNTUK IBU

Informasi > Puisi > Puisi Untukmu IBU

Puisi Untukmu IBU

SEBENING TITIK EMBUN PAGI, SEBENING HATIMU IBU
SECERAH MENTARI PAGI, SEHANGAT KASIH SAYANGMU IBU
SEMILIR ANGIN SENDU, SELEMBUT UCAPAN IBU
TERAWANG INGATAN MASA KECIL
EPISODE PERJALANAN JADI RINDU PADAMU

ENGKAU PANUTAN KAMI
JIWAMU BAGAI AMAL SEDEKAH
RAGA BAGAI PENGORBANAN HARTA
TAK SEKEJAP KAU PALING KASIHMU
TAK BERGEMING BUAT SAYANG UNTUK KAMI

RINDU BELAIMU DI PEMBARINGAN
KU TUNGGU DO’A SEIRING LANGKAH
SEKEJAP TAK HILANG, SEUCAP KATA DALAM BUAIAN

BILAKAH IBU BERKENAN
KU MUNAJAT PADA TUHAN
SMOGA KAU SEHAT SEPANJANG BADAN

MENGENAL JAVA

Bagian awal ini akan mengajak Anda untuk mengenal lebih dekat
bahasa pemrograman Java. Lebih khusus lagi, kita akan mengeksplorasi
komponen-komponen fundamental yang perlu sekali
diketahui dan dipahami dengan baik. Selain itu, bagian ini juga akan
mengulas secara garis besar tentang fitur-fitur baru Java versi 5.0
dan 6. Diharapkan uraian ini nantinya dapat membantu memudahkan
Anda ketika ingin mengungkap rahasia-rahasia Java selanjutnya.


1 Sekilas Java

Tentunya Anda tidak asing lagi dengan nama Java, sebuah bahasa
pemrograman berorientasi objek yang dikembangkan oleh Sun
Microsystems. Di bagian awal ini, kita akan mengulas tentang sekilas
Java yang ditinjau dari aspek lingkungan pengembangan dan
produk. Diharapkan ulasan ini nantinya dapat memperjelas terminologi
ataupun pernyataan-pernyataan yang kerap kali membingungkan,
terutama bagi yang baru mengenal Java.

1



Lingkungan Pengembangan
Dalam mendiskusikan Java, kiranya penting sekali untuk membedakan
antara bahasa pemrograman Java, Java Virtual Machine,
dan platform Java. Bahasa pemrograman Java adalah bahasa yang
digunakan untuk menghasilkan aplikasi-aplikasi Java. Pada umumnya,
bahasa pemrograman hanya mendefinisikan sintaks dan perilaku
bahasa.

Pada saat program Java dikompilasi, ia akan dikonversi ke bentuk
bytecode, yang merupakan bahasa mesin yang portable. Selanjutnya,
bytecode tersebut dijalankan di Java Virtual Machine (atau
disebut Java VM atau JVM). Meskipun JVM dapat diimplementasikan
langsung di perangkat keras, namun biasanya diimplementasikan
dalam bentuk program perangkat lunak yang mengemulasi mesin
(komputer) dan digunakan untuk menginterpretasi bytecode.

Platform dapat didefinisikan sebagai perangkat lunak pendukung
untuk aktivitas-aktivitas tertentu. Platform Java sendiri pada prinsipnya
berbeda dengan bahasa Java atau JVM. Platform Java adalah
himpunan kelas-kelas Java yang sudah didefinisikan sebelumnya
dan eksis sejak instalasi Java. Platform Java juga mengacu pada
lingkungan runtime atau API (Application Programming Interface)
Java.


Edisi Java
Guna mencakup lingkungan-lingkungan aplikasi yang berbeda, Sun
mendefinisikan 3 (tiga) edisi Java.


J2ME (Java 2 Micro Edition)
Edisi ini ditujukan bagi lingkungan dengan sumber daya terbatas,
seperti smartcard, ponsel, dan PDA.


J2SE (Java 2 Standard Edition)
Edisi ini ditujukan bagi lingkungan workstation, seperti pembuatan
aplikasi-aplikasi dekstop.


J2EE (Java 2 Enterprise Edition)
Edisi ini ditujukan bagi lingkungan Internet atau aplikasi terdistribusi
dalam skala besar.


Perbedaan setiap edisi meliputi fitur-fitur bahasa yang didukung dan
API yang tersedia. Berdasarkan tingkatannya, edisi yang lebih tinggi
mampu mengemulasikan edisi yang lebih rendah. Adapun urutan
edisi dari yang tertinggi ke rendah adalah J2EE, J2SE, dan J2ME.


Versi Java
Ada hal yang menarik dan perlu kita cermati mengenai versi-versi
Java yang telah dirilis. Sun menggunakan dua jenis versi untuk
mengidentifikasikan rilis Java, yaitu versi produk dan versi developer.
Seperti kita ketahui, versi terbaru saat ini adalah versi 6 (versi
produk) atau versi 1.6.0 (versi developer), dengan nama kode Mustang.


Sejak tahun 2006, Sun juga menyederhanakan penamaan platform
dengan tujuan untuk mencerminkan tingkat kematangan, stabilitas,
skalabilitas, dan sekuriti yang lebih baik. Jika penamaan versi sebelumnya
adalah Java 2 Platform, Standard Edition 5.0 (J2SE 5.0),
maka sekarang disederhanakan menjadi Java Platform, Standard
Edition 6 (Java SE 6, atau lebih sering disebut Java 6).

2 Kompilasi dan Interpretasi

Seperti diketahui, Java adalah bahasa pemrograman yang kode
programnya dikompilasi dan diinterpretasi. Meskipun pembuatan
aplikasi Java dapat dilakukan melalui IDE (Integrated Development
Environment), namun di sini kita memfokuskan pada tool commandline
untuk kompilasi dan interpretasi.


Kompilasi
Kompilasi kode program Java dilakukan menggunakan tool
command-line yang bernama javac, atau biasa disebut kompiler
Java. Tahap kompilasi ini bertujuan untuk mengonversi kode sumber
ke program biner yang berisi bytecode, yaitu instruksi-instruksi
mesin. Contoh berikut memperlihatkan cara melakukan kompilasi
pada file program Coba.java (asumsi sudah berada di command-line
atau shell).

javac Coba.java

3


Saat mengompilasi kode program, kita juga diperkenankan untuk
menspesifikasikan versi rilis tertentu. Aturan dasar dalam spesifikasi
versi ini cukup sederhana, di mana versi terbaru dapat mengenali
versi-versi di bawahnya, namun tidak demikian sebaliknya. Sebagai
contoh, untuk mengetahui apakah kode program dapat berjalan di
versi 1.4 ataukah tidak, tambahkan opsi –source 1.4.

javac –source 1.4 Coba.java

Jika –source digunakan untuk menspesifikasikan rilis asal, opsi
–target berfungsi untuk menetapkan versi tujuan. Opsi-opsi lain yang
sering digunakan diperlihatkan sebagai berikut:

// Menetapkan lokasi file-file kelas (classpath)
javac -cp D:\java Coba.javajavac -classpath D:\java Coba.java
// Menetapkan lokasi file .class yang akan dihasilkan
javac -d D:\java Coba.java// Hasil: file Coba.class diletakkan di D:\java
// Mendapatkan informasi mengenai apa yang dilakukan kompiler
javac -verbose Coba.java
// Mendapatkan informasi versi (developer)
javac -version

Sekadar catatan, untuk memudahkan pemanggilan kompiler, tambahkan
path yang berisi file-file executable (di direktori bin) ke
variabel sistem Path. Untuk lebih praktisnya, Anda bisa menggunakan
kotak dialog Environment Variables (melalui System
Properties).

Apabila Anda bekerja di lingkungan Unix/Linux, modifikasilah file
/etc/profile dengan menambahkan baris berikut:

PATH=/lokasi_instalasi/bin:$PATHexport PATH


Interpretasi
Sebagaimana disinggung, kode program Java tidak dieksekusi di
komputer secara langsung, tetapi berjalan di atas komputer hipotesis
yang distandardisasikan, yang disebut Java Virtual Machine. Untuk
menginterpretasi bytecode, kita menggunakan tool bernama java,
atau biasa disebut interpreter Java. Pada saat menginterpretasi, Anda


tidak perlu menyertakan ekstensi file (.java atau .class), cukup nama
file saja.

java Coba

Untuk kasus program-program berbasis teks, hasil keluaran akan
langsung ditampilkan di command-line. Terkait hal ini, tool java
memungkinkan Anda untuk meng-capture hasil keluaran dan menyimpannya
di sebuah file.

Contoh perintah berikut akan menangkap hasil keluaran program
Coba dan menyimpannya di file coba.txt.

java Coba > coba.txt

Apabila Anda menggunakan perintah di atas pada aplikasi GUI,
maka file keluaran akan tetap diciptakan, namun tidak ada isinya
(dengan asumsi bahwa program tidak mencetak teks keluaran).

3 Elemen Bahasa

Secara garis besar, elemen-elemen di setiap bahasa pemrograman
sebenarnya hampir sama. Meskipun demikian, ada elemen-elemen
khusus yang membedakan dan sekaligus mencerminkan identitas
suatu bahasa. Adapun mengingat di sini kita bekerja dengan bahasa
pemrograman Java, tentunya kita juga perlu memahami elemenelemen
dasar bahasa ini.


Tipe Data
Tipe data di Java dikelompokkan menjadi dua jenis, yaitu tipe
primitif dan reference (kelas). Tipe primitif/dasar adalah tipe-tipe
bawaan, meliputi boolean, char, byte, short, int, long, float,
dan double. Sementara itu, tipe reference memiliki semantik seperti
pointer. Jenis tipe reference meliputi kelas, interface, dan array.

Apabila Anda ingin memperlakukan nilai primitif sebagai suatu
objek, Anda bisa memanfaatkan kelas-kelas pembungkus (wrapper).
Kelas-kelas tersebut meliputi Boolean, Character, Byte, Short,
Integer, Long, Float, dan Double. Perhatikan sintaksnya (penulisan
huruf kecil dan besar), agar tidak keliru dengan tipe-tipe
primitif.

5



Deklarasi dan Inisialisasi Variabel
Sebelum digunakan, setiap variabel harus dideklarasikan terlebih
dahulu. Langkah ini dilakukan dengan menetapkan tipe data dan
nama variabel. Pernyataan deklarasi variabel tunggal juga dapat
digunakan untuk mendeklarasikan lebih dari satu variabel, tetapi
semuanya harus bertipe sama.

int i;
int j;
// ekuivalen dengan kedua pernyataan di atas
int i, j;
Deklarasi juga dapat sekaligus melakukan inisialisasi terhadap suatu
variabel.

int i = 2;
int j = 3;
int i = 2, j = 3;

Initial Value
Saat mendeklarasikan variabel kelas, kita tidak harus melakukan
inisialisasi karena kompiler akan meng-assign initial value (nilai awal
atau default). Nilai default untuk semua tipe reference adalah null.
Nilai default tipe primitif boolean adalah false, char adalah
\u0000, integer (byte, short, int, long) adalah 0, dan floating
point (float, double) adalah 0.0.


Ruang Lingkup Variabel
Java mendefinisikan empat jenis variabel, meliputi variabel instance
(field non-statis), variabel kelas (field statis), variabel lokal, dan
parameter. Istilah field mengacu pada variabel instance dan variabel
kelas (terkadang disebut member variable). Sementara itu, istilah
variabel mengacu pada semua jenis variabel.

Lokasi di mana suatu variabel dideklarasikan secara eksplisit juga
menetapkan ruang lingkupnya. Ruang lingkup variabel adalah wilayah
di mana suatu variabel dapat diacu melalui namanya. Ruang
lingkup juga menyatakan kapan variabel akan diciptakan dan dihapus
dari memori.



Blok
Blok adalah kelompok pernyataan (nol atau lebih) di dalam tanda
kurung kurawal. Penggunaan blok dengan pernyataan alir kontrol
sangat direkomendasikan, meskipun hanya melibatkan sebuah pernyataan.


if (kondisi)
{ // awal blok
// pernyataan
} // akhir blok

Komentar
Penulisan komentar dapat mengadopsi blok komentar gaya C
ataupun C++. Komentar gaya bahasa C lazimnya digunakan untuk
komentar yang terdiri atas beberapa baris. Sementara itu, komentar
gaya C++, yang dinyatakan melalui karakter //, umumnya digunakan
untuk komentar satu baris.

Untuk komentar-komentar yang akan dimasukkan ke dokumentasi
dan dihasilkan melalui tool javadoc, disarankan menggunakan /**
dan diakhiri dengan karakter */.

4 Aturan Penamaan

Di dalam pemrograman, suatu nama digunakan untuk mengacu ke
entitas yang dideklarasikan. Terkait hal ini, ada beberapa aturan
dasar penamaan yang perlu sekali diperhatikan dalam upaya menghasilkan
kode program yang readable.


Penamaan Paket
Nama awal paket sebaiknya terdiri atas dua atau tiga huruf kecil, dan
biasanya menggunakan nama domain Internet, seperti com, org, net,
dan edu. Selain itu, Anda juga diperkenankan memberi nama paket
dengan kode-kode negara, seperti id, uk, atau au. Penggunaan nama
domain ini bertujuan untuk mencegah terjadinya konflik paket,
dengan asumsi bahwa Anda tidak menggunakan nama domain
orang lain. Sebagai contoh, nama paket berbasis domain
http://didik.indodesain.com adalah com.indodesain.didik.

7



Penamaan Kelas dan Interface
Nama kelas dan interface sebaiknya berupa kata benda atau ungkapan
kata benda yang deskriptif dan tidak terlalu panjang. Penulisan
nama mengacu pada sintaks Pascal, di mana huruf pertama untuk
setiap kata adalah huruf besar dan tidak ada spasi, misalnya Bangun,
SegiTiga, atau KoneksiData.


Penamaan Method
Nama method seharusnya berupa kata kerja atau ungkapan kata
kerja. Penulisan method mengacu pada sintaks Camel, di mana huruf
pertama untuk setiap kata pertama adalah huruf kecil dan huruf
pertama kata selanjutnya adalah huruf besar. Nama method umumnya
juga mencerminkan operasi yang dilakukannya, contohnya
seperti setData, getData, isValidData, atau toString.


Penamaan Variabel
Penamaan variabel-variabel kelas (fields) mirip dengan penamaan
method. Untuk penamaan variabel lokal dan parameter, seringkali
menggunakan suatu akronim, singkatan, atau istilah-istilah yang
mudah diingat, contohnya seperti sr (StreamReader), buf (buffer), d
(double), dan s (String).


Penamaan Konstanta
Seperti umumnya bahasa pemrograman, nama konstanta di Java
harus berupa huruf besar semua. Apabila nama konstanta terdiri atas
beberapa kata, sebaiknya pisahkan dengan tanda garis bawah “_”.
Contoh penamaan konstanta misalnya MAX, MAX_DATA, atau
MAX_LEN_DATA.

5 Paket dan Namespace

Paket bertujuan mengorganisir keterhubungan kelas dan mendefinisikan
namespace untuk kelas-kelas yang berada di dalamnya. Dalam
upaya memudahkan penggunaan, menghindari konflik nama, dan
mengontrol akses kelas-kelas maupun interface-interface, kita bisa
mengelompokkannya ke dalam suatu paket.

8



Deklarasi Paket
Paket dideklarasikan menggunakan pernyataan package yang diikuti
dengan nama paket dan subpaket (jika ada). Deklarasi paket
sebaiknya dilakukan di bagian paling awal kode program. Contoh
deklarasi paket diperlihatkan seperti berikut:

package com.indodesain.didik;

Dalam implementasinya, nama paket dan subpaket sebenarnya
mencerminkan struktur direktori dengan susunan sesuai penamaan.
Apabila kita tidak menggunakan paket, maka kelas terkait merupakan
bagian dari paket default (tanpa nama).


Mengakses Member Paket
Kelas-kelas dan interface-interface di dalam paket, atau disebut
member paket, hanya dapat diakses dari luar paket apabila ia didefinisikan
sebagai public. Ada dua pendekatan yang bisa kita
gunakan untuk mengakses member paket, yaitu dengan mengacu
nama lengkap dan mengimpor member.

Misalkan di subpaket didik terdapat kelas Test, maka cara mengacunya
adalah seperti berikut:

com.indodesain.didik.Test t = new com.indodesain.didik.Test();

Untuk pendekatan kedua, kita terlebih dahulu menuliskan keyword
import yang diikuti nama paket.

import com.indodesain.didik.Test;
...
// Instantiasi di body kelas
Test t = new Test();
Pada pendekatan kedua, Anda juga diperkenankan mengimpor seluruh
member yang dinyatakan dengan karakter asterik (*).

import com.indodesain.didik.*;

Walaupun pendekatan acuan dengan nama lengkap terkesan kurang
efektif, namun dalam situasi-situasi tertentu sangat diperlukan. Sebagai
contoh, pendekatan ini lazim digunakan untuk menghindari konflik
ketika mengakses member di beberapa paket dengan nama
sama.



Impor Otomatis
Secara otomatis JRE akan mengimpor member yang ada di paket
java.lang, paket default, dan current paket. Oleh karena itu, pada
saat menggunakan member di paket-paket tersebut, kita tidak perlu
melakukan impor secara eksplisit. Sebagai contoh, kita bisa langsung
menggunakan kelas String tanpa terlebih dahulu mengimpor
java.lang.String ataupun mengacu nama lengkapnya.

Di Java 5.0, ada fitur baru yang memungkinkan kita untuk mengimpor
dengan tambahan pernyataan static. Penjelasan mengenai
fitur ini akan kita bahas lebih lanjut setelah mengulas pernyataan
static.


Strategi Impor Paket
Seringkali kita melihat program-program Java yang mendeklarasikan
pernyataan import untuk mengakses member paket secara
lengkap. Contohnya seperti berikut:

import java.io.File;
import java.io.FileReader;
import java.net.URL;

Tak jarang pula, kita melihat deklarasi yang menggunakan karakter
asterik. Contohnya seperti berikut:

import java.io.*;
import java.net.*;
import java.util.*;

Sebenarnya, apa kelebihan dan kekurangan masing-masing pendekatan
di atas? Apakah pengaksesan member paket dengan nama
lengkap lebih cepat dieksekusi dibanding penggunaan karakter
asterik?

Pada prinsipnya, deklarasi lengkap memang lebih cepat dikompilasi
dibanding pendekatan asterik. Meski demikian, deklarasi lengkap
tidak menawarkan kelebihan ketika program dieksekusi (diinterpretasi).
Dalam segi efisiensi penulisan, pendekatan asterik tentu
menawarkan kelebihan bagi kita. Selain itu, ketika kita ingin
mengganti penggunaan kelas (misal dalam satu paket), kita tidak
perlu menghapus deklarasi sebelumnya dan mengganti dengan
deklarasi baru.


Meskipun pengaksesan dengan karakter asterik tidak berpengaruh
terhadap eksekusi program, namun bukan berarti pendekatan ini
paling efisien. Setidaknya, kita bisa menggunakan strategi berdasarkan
kasus yang kita hadapi. Sebagai contoh, jika kita hanya memerlukan
satu atau dua kelas/interface di satu paket, akan lebih
efisien jika kita mendeklarasikan nama member paket secara lengkap.
Sebaliknya, jika jumlah kelas atau interface yang kita perlukan
cukup banyak, tentu akan praktis jika kita menggunakan karakter
asterik.

6 Kelas

Kelas merupakan salah satu konsep fundamental pemrograman berorientasi
objek. Kelas dapat diilustrasikan sebagai suatu cetak biru
(blueprint) atau prototipe yang digunakan untuk menciptakan objek.
Terkait dengan konsep penting ini, ada beberapa subbahasan yang
akan kita ulas di sini.


Definisi Kelas
Definisi kelas terdiri atas dua komponen, yaitu deklarasi kelas dan
body kelas. Deklarasi kelas adalah baris pertama di suatu kelas, dan
minimal mendeklarasikan nama kelas. Sementara itu, body dideklarasikan
setelah nama kelas dan berada di antara kurung kurawal.

// deklarasi kelas
public class ContohKelas {
// body kelas
}
Di Java, nama kelas sekaligus merepresentasikan nama file kode
program, dan sifatnya adalah case-sensitive.


Konstruktor
Kegunaan utama konstruktor adalah untuk menetapkan status awal
manakala objek diciptakan. Ada beberapa catatan penting yang
harus kita perhatikan dalam pendeklarasian konstruktor. Pertama,
nama konstruktor harus sama dengan nama kelas. Kedua, konstruktor
boleh memiliki argumen lebih dari satu atau tidak sama sekali.
Ketiga, konstruktor tidak boleh mengembalikan suatu nilai.

11


public class ContohKelas {
// Konstruktor
public ContohKelas() {
}
public class ContohKelas {
// Konstruktor
public ContohKelas() {
}
}

Konstruktor yang tidak memiliki argumen dinamakan sebagai
konstruktor default. Apabila suatu kelas dideklarasikan tanpa adanya
sebuah konstruktor, maka secara implisit Java akan menambahkan
konstruktor default.


Access Modifier
Kelas dan interface memiliki batasan akses (access modifier) yang
menyatakan level aksesnya. Apabila kelas dideklarasikan sebagai
public, maka ia dapat diakses dari mana saja. Jika batasan akses
tidak diberikan, kelas tersebut dinamakan default accessibility, dan
hanya dapat diakses dari dalam paket terkait (tidak termasuk subpaket).


Batasan akses lainnya untuk kelas level atas adalah abstract (tidak
dapat diinstantiasi) dan final (tidak dapat diperluas). Anda tidak
diperkenankan mendeklarasikan kelas level atas sebagai private
ataupun protected.


Kelas Bersarang
Suatu kelas boleh mendeklarasikan kelas baru di dalamnya, atau
biasa disebut inner class, atau kelas bersarang. Apabila diperlukan,
inner class juga dapat memiliki kelas lagi di dalamnya.

public class ContohKelas {
public class KelasBersarang {
// body kelas KelasBersarang
}
}

Inner class juga dapat dideklarasikan secara lokal, yaitu di dalam
body method. Kelas seperti ini dinamakan local inner class atau local
nested class.

public void test() {

class KelasDiMethod {


// body kelas KelasDiMethod
}
}
// body kelas KelasDiMethod
}
}

Keyword this dan super
Keyword this dapat digunakan untuk merepresentasikan suatu
current objek dan mengakses variabel-variabel kelas serta method.

public class KelasInduk {
int j;
public void setNilai(int i) {
// this ini mengacu pada objek KelasInduk
this.j = i;
}
}

Keyword super digunakan untuk mengakses member kelas yang
diturunkan (kelas induk).

}

// KelasAnak memperluas/mewarisi KelasInduk
class KelasAnak extends KelasInduk {
public KelasAnak() {
// Mengakses method di kelas induk
super.setNilai(3);
}

7 Method

Seperti halnya kelas, ada dua bagian utama dalam definisi method,
yaitu deklarasi dan body method. Deklarasi method mendefinisikan
semua atribut method, seperti level akses, tipe kembalian (jika ada),
dan argumen-argumen (jika ada).


Method main
Method main merupakan method khusus yang berperan sebagai
entry point pada aplikasi. Setiap kelas di suatu aplikasi boleh memiliki
method main, namun hanya satu yang ditetapkan untuk dieksekusi
saat aplikasi dijalankan.

public static void main(String[] args) {

// isi method main

}

13


Method main harus didefinisikan sebagai public, static, tidak
mengembalikan suatu nilai (void), dan memiliki argumen berupa
array string. Apabila interpreter tidak menemukan method main di
suatu aplikasi, akan muncul pesan kesalahan yang diakibatkan tidak
adanya entry point.

Sebenarnya, Anda juga bisa mendefinisikan method utama dengan
keyword static saja. Pendefinisian seperti ini terlihat tidak mencerminkan
struktur method seperti pada umumnya.

public class ContohKelas {
static {
System.out.println("Halo Indonesia");
System.exit(0);
}
}

Meskipun kode program di atas dapat berjalan seperti yang diharapkan,
namun pendekatan tersebut tidak lazim digunakan.


Modifier Method
Modifier dari sebuah method dapat terdiri atas nol atau lebih keyword
modifier, seperti public, protected, atau private. Keberadaan
modifier ini membantu kelas untuk mendefinisikan suatu kontrak,
sehingga client dapat mengetahui layanan-layanan yang ditawarkan
oleh kelas.

Selain beberapa keyword modifier di atas, yang umumnya sudah kita
pahami kegunaannya, ada beberapa modifier lain yang bisa kita
spesifikasikan. Salah satu keyword modifier yang sering digunakan
adalah static. Modifier ini mengizinkan kita untuk mengakses
method tanpa perlu menginstantiasi kelas yang mendefinisikannya.
Sebagai gantinya, sebelum memanggil method, kita terlebih dahulu
menuliskan nama kelas terkait.

class Test {
public static void sayHello() {
System.out.println("hello");
}
public void sayNo() {
System.out.println("no");
}
}

public class AksesStatis {
public static void main(String[] args) {
// Akses method statis
Test.sayHello();
// Error, akses method non-statis
// Test.sayNo();
// Harus begini
Test t = new Test();
t.sayNo();
}
}
public class AksesStatis {
public static void main(String[] args) {
// Akses method statis
Test.sayHello();
// Error, akses method non-statis
// Test.sayNo();
// Harus begini
Test t = new Test();
t.sayNo();
}
}

Variabel Lokal
Sebelum variabel lokal dapat digunakan, ia harus diinisialisasi terlebih
dahulu. Kondisi ini berbeda dengan variabel kelas, di mana
secara otomatis akan diinisialisasi. Penggunaan variabel lokal yang
tanpa diinisialisasi akan mengakibatkan kesalahan pada saat kompilasi.



Overloading Method
Overloading method adalah kemampuan untuk mendefinisikan beberapa
method di sebuah kelas dengan nama sama. Aturan dasar
overloading adalah jumlah atau tipe argumen harus berbeda. Apabila
jumlah dan tipe argumen sama, maka urutannya harus berbeda.

}

int Test() {
return 1;
}
int Test(int a) {
return a;
}
int Test(double a, int b) {
return b;
}
int Test(int i, double j) {
return i;
}
// Ini akan error, sudah didefinisikan di method sebelumnya
void Test(int x, double y) {

8 Objek

Di pemrograman berorientasi objek, objek adalah entitas dasar saat
runtime. Pada saat kode program dieksekusi, objek berinteraksi satu
sama lain tanpa harus mengetahui detil data atau kodenya. Interaksi
antara objek ini dilakukan menggunakan suatu message. Objek memiliki
suatu siklus hidup, yaitu diciptakan, dimanipulasi, dan dihancurkan.



Menciptakan Objek
Objek diciptakan menggunakan operator new. Dari sisi kelas, langkah
ini merupakan instantiasi kelas. Selanjutnya objek yang berhasil
diciptakan tersebut akan diletakkan di memori heap.

ContohKelas ck = new ContohKelas();

Dalam kasus-kasus tertentu, terkadang kita juga dapat menciptakan
objek tanpa harus meng-assign ke variabel. Langkah ini umumnya
dilakukan apabila kita tidak memerlukan referensi ke objek tersebut.
Sebagai contoh, jika kita memiliki method yang menerima argumen
berupa objek ContohKelas, maka dapat kita tuliskan seperti berikut:

getData(new ContohKelas());


Memeriksa Tipe Objek
Anda bisa memanfaatkan fungsionalitas operator instanceof untuk
mengetahui tipe suatu objek pada saat runtime. Operator ini akan
mengembalikan nilai true apabila tipe objek sesuai, sebaliknya
mengembalikan nilai false.

ContohKelas ck = new ContohKelas();
System.out.println(ck instanceof ContohKelas);

// Output: true

Perlu diperhatikan, instanceof akan selalu mengembalikan nilai
false jika variabel objek diinisialisasi dengan nilai null. Ini karena
nilai null tidak mencerminkan objek apa pun.

ContohKelas ck2 = null;
System.out.println(ck2 instanceof ContohKelas);


// Output: false

16


Operator instanceof hanya dapat digunakan pada tipe reference
dan objek. Penggunaan operator ini pada tipe primitif akan mengakibatkan
kesalahan saat kompilasi.


Menghapus Objek
Java menggunakan teknik yang dikenal sebagai garbage collection
untuk menghapus objek-objek yang sudah tidak diperlukan. Dengan
demikian, kita tidak perlu khawatir akan terjadinya kebocoran memori.
Dalam praktiknya, garbage collector mampu mengidentifikasi
kapan suatu objek dialokasikan dan kapan ia tidak digunakan lagi.

Garbage collector melakukan tugasnya secara tak sinkron berdasarkan
ketersediaan sumber daya. Normalnya, jika suatu objek
sudah tidak diacu (di-refer), maka ia akan segera dibersihkan. Terlepas
dari mekanisme normal ini, kita juga dapat memanggil garbage
collector secara eksplisit menggunakan method statis gc.

System.gc();


Perlu sekali diperhatikan, tidak semua jenis objek akan ditangani oleh
garbage collector. Untuk objek-objek eksternal, seperti file dan database,
sebaiknya kita tangani secara eksplisit.

9 Exception Handling

Eksepsi (exception) adalah suatu even, yang terjadi selama eksekusi
program, yang mengacaukan alir normal instruksi program. Pada
prinsipnya, eksepsi adalah suatu objek, yang diturunkan dari kelas
java.lang.Throwable. Dalam menangani suatu eksepsi, Java
menggunakan mekanisme penanganan eksepsi terstruktur.


Menangkap Eksepsi
Ada dua jenis blok kode yang dapat kita gunakan untuk menangani
eksepsi, yaitu try dan catch. Blok try berisi kode yang berpotensi
membangkitkan eksepsi, sedangkan blok cath merupakan exception
handler-nya.

int i = 10;
int j = 0;
try {
17


// Baris berikut akan membangkitkan eksepsi, karena
// pembagian dengan nol, sehingga perlu ditangkap
int n = i / j;
// Baris berikut tidak akan dieksekusi
System.out.println(n);
} catch (Exception ex) {
// Baris berikut akan membangkitkan eksepsi, karena
// pembagian dengan nol, sehingga perlu ditangkap
int n = i / j;
// Baris berikut tidak akan dieksekusi
System.out.println(n);
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap\n" + ex.getMessage());

}

Apabila penanganan eksepsi terdiri atas beberapa blok catch, sebaiknya
letakkan objek yang paling relevan di blok terdekat.
Langkah ini bertujuan agar eksepsi yang terjadi dapat ditangkap oleh
blok yang sesuai, dan menjadikan kode program mengalir secara
natural.

try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ae) {
System.out.println("ArithmeticException");
} catch (Exception e) {
System.out.println("Eksepsi ditangkap");

}

Penanganan eksepsi juga dapat melibatkan blok finally, yaitu blok
yang akan selalu dieksekusi. Blok ini umumnya sering dimanfaatkan
untuk tahap pembersihan sumber daya karena sifatnya yang selalu
dijalankan.

try {
int n = i / j;
System.out.println(n);
} catch (ArithmeticException ex) {
System.out.println("ArithmeticException");
} catch (Exception ex) {
System.out.println("Eksepsi ditangkap");
} finally {
System.out.println("Ini akan selalu dieksekusi");
}

Melempar Eksepsi
Untuk menspesifikasikan eksepsi yang akan diperiksa, kita dapat
memanfaatkan klausa throws.

public static int pembagian(int i, int j)
throws ArithmeticException {
return i/j;
}

Klausa throws di atas menyatakan bahwa pemanggilan method
pembagian harus dilakukan menggunakan blok try dan catch.

try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
ex.printStackTrace();
}
Kita juga dapat menangkap eksepsi secara eksplisit menggunakan
pernyataan throw(perhatikan, jangan keliru dengan throws).

public static int pembagian(int i, int j)
throws ArithmeticException {
if (j == 0) {
throw new ArithmeticException("Pembagian dengan 0");
}
return i/j;

}


Informasi Eksepsi
Kelas Throwable mendefinisikan sejumlah method yang dapat
membantu kita untuk mendapatkan informasi-informasi terkait
dengan eksepsi, di antaranya adalah method getMessage dan
printStackTrace.

Apabila Anda ingin mendapatkan informasi mengenai method atau
nama kelas terkait, gunakan method getStackTrace dan objek
StackTraceElement.

}

try {
int l = pembagian(2,0);
System.out.println(l);
} catch (ArithmeticException ex) {
System.out.println("Nama File: " +
ex.getStackTrace()[0].getFileName());
System.out.println("Nama Kelas: " +
ex.getStackTrace()[0].getClassName());
System.out.println("Nama Method: " +
ex.getStackTrace()[0].getMethodName());
System.out.println("Baris ke-" +

10 Fitur Baru Java 5.0

Meskipun Sun Microsystems sudah merilis Java versi 6, namun
rasanya belum terlambat jika kita membicarakan fitur-fitur baru Java

5.0. Secara garis besar, ada tujuh fitur utama yang diperkenalkan
oleh versi dengan nama kode Tiger ini.

Tipe Generic
Intuisi dari fitur ini adalah menghasilkan kode yang mudah dideteksi
kesalahannya saat kompilasi. Sebagai contoh, di versi sebelumnya,
ketika kita hanya ingin menampung string di suatu objek, kompiler
tidak akan memprotes meski yang dimasukkan bukanlah string. Kini,
Anda dapat menspesialisasi tipe yang awalnya bersifat general.

// Mendefinisikan list untuk string
List list = new ArrayList();
// Ini dilaksanakan
list.add("string");
// Ini akan diprotes kompiler (error)

list.add(123);


Tipe Enumerasi
Fitur ini mengizinkan Anda untuk mendeklarasikan tipe enum (enumerasi)
dengan mudah. Tak hanya itu, fitur ini juga menyediakan
semua keuntungan dari pola Typesafe Enum secara praktis. Dalam
implementasinya, deklarasi dilakukan menggunakan keyword enum.

private static enum NamaHari {

Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu};


Autoboxing/Unboxing
Fitur ini mampu menghilangkan kejenuhan Anda ketika melakukan
konversi antara tipe primitif dan pembungkusnya. Seperti diketahui,
di versi sebelum Java 5.0, kita harus memperlakukan tipe primitif ke
tipe reference (disebut boxing) ketika ingin mengonversi tipe primitif
ke pembungkusnya. Sebaliknya, kita melakukan unboxing ketika
ingin mengonversi tipe reference ke tipe primitif.

// Sebelum Java 5.0
// Konversi primitif ke wrapper (pembungkus)
int i = 3;
Integer box = new Integer(i);

// Konversi wrapper ke primitif
Integer j = new Integer(200);
int unbox = j.intValue();
// Konversi wrapper ke primitif
Integer j = new Integer(200);
int unbox = j.intValue();
Sejak Java 5.0, secara otomatis kompiler akan menambahkan kode
yang diperlukan untuk melakukan konversi tipe.

// Autoboxing/unboxing
// Integer auto di-unbox ke int (tipe primitif),
// kemudian hasil penjumlahan di-boxing ke objek Integer
Integer auto = 3 + 2;

Anotasi
Fitur ini menyediakan suatu cara untuk menghubungkan metadata
dengan elemen-elemen program. Java 5.0 mendefinisikan tiga jenis
anotasi standard di dalam paket java.lang, meliputi Override,
Deprecated, dan SupressWarnings. Contoh penggunaan anotasi
diperlihatkan seperti berikut:

@Override public String toString() {
return "[" + super.toString() + "]";
}
@Deprecated public static void test() {
System.out.println("deprecated");
}
// Mengabaikan warning unchecked
@SuppressWarnings(value={"unchecked"})
public static void testSupress() {
// Kode yang berpotensi mendapat respon
// warning unchecked di sini
}

Argumen Variabel
Kini Java mendukung argumen array (bukan tipe reference array)
melalui fitur varargs. Untuk menggunakan fitur ini, deklarasi tipe
pada variabel harus diikuti dengan tanda titik sebanyak tiga kali.

public static void TestVarArgs(String s, int... args) {
System.out.println("argumen 1= " + s);
int len = args.length;
// Ekstraksi argumen
for (int j=0; j