MADRASAH IBN RUSYD

MADRASAH MEMBACA, MENGAMALKAN, DAN MENULIS

Archive for December, 2006


JAVA BASIC : Dasar-dasar Java

Pada bagian ini akan dijelaskan tentang dasar-dasar pemrogramman java yang meliputi variabel, tipe data, operator, pengkondisian (if-else condition dan switch-case condition),  dan looping (apa ya bahasa Indonesianya — pengulangankah?)

Variabel

Variabel adalah suatu nama yang digunakan untuk menyimpan suatu nilai dari tipe data tertentu. Nilai dari suatu variabel disebut literal. Sebelum digunakan variabel harus dideklarasikan. Deklarasi disesuaikan dengan tipe data yang ingin direpresentasikan.

Deklarasi variabel mengikut aturan sebagai berikut : tipeData namaVariabel.
Contoh berikut adalah deklarasi variabel dengan menggunakan tipe data int :

int bilangan1;
int bilangan2;

Kata int adalah tipe data, sedangkan bilangan1 dan bilangan2 adalah nama variabel. Dua deklarasi variabel di atas bisa diringkas menjadai : int bilangan1, bilangan2;


Tipe data dari suatu variabel bisa berupa tipe data primitif (seperti : int, byte, char, short, boolean dll) atau tipe data berupa class (misalnya Integer, Byte, Short, Boolean dll - bisa kelas yang anda buat).

Variabel bisa diinisialisasi (diberi nilai awal). Misalnya pada contoh di atas kita melakukan inisialisasi sebagai berikut :

int bilangan1 = 0;
int bilangan2 = 5;

Tanda ; (titik koma) menyatakan satu statemen yang utuh (Dalam bahasa manusia ’satu kalimat yang lengkap - berakhir dengan tanda titik’).

Java memiliki aturan-aturan dalam penamaan suatu variabel. Aturan-aturan itu adalah sebagai berikut :

  • Penamaan variabel tidak boleh menggunakan kata-kata kunci dalam bahasa pemrogramman java. Kata-kata kunci tersebut adalah sebagai berikut (berdasarkan urutan abjad) : abstract, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, extends, final, finally, float, for, goto, if, implements, import,instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile dan while.
  • Harus dimulai dengan huruf atau garis bawah ( _ ) atau tanda dollar ($), tidak boleh angka. Huruf kedua dan seterusnya bebas (bisa angka) tapi tidak boleh menggunakan operator yang digunakan java (semisal +, ++, * , -, — dll)
  • Panjang nama variabel terserah (dalam artian tidak dibatasi) tapi kata-katanya tidak boleh terpisah.
  • Nama Variabel dalam java adalah case sensitif (membedakan huruf kecil dan huruf besar. Nama variabel bilangan1 dan Bilangan1 dianggap sebagai dua variabel yang berbeda.
  • Penamaan variabel sebaiknya interpretatif, menggambarkan raealita yang diwakilinya. Penamaan variabel String namaMahasiswa adalah lebih interpretatif dibandingkan dengan variabel String x.

Sudah menjadi konvensi (kesepakatan) para programmer java juga, jika penamaan variabel dimulai dengan huruf, maka hurufnya harus huruf kecil.

Berikut contoh penamaan variabel yang valid dan tidak valid :

int bilangan1 –> valid
int bilangan 1 –> tidak valid
int 1bilangan –> tidak valid
int _bilangan1 –> valid
int $bilangan1 –> valid
int b1langan –> valid
int bi-langan –> tidak valid
int bi+langan –> tidak valid

Konstanta

Pada prinsipnya konstanta hampir mirip dengan variabel. Dua-duanya
digunakan untuk menyimpan suatu nilai dari tipe data tertentu. Bedanya
variabel menyimpan suatu nilai yang bisa berubah-ubah (dinamis)
sedangkan konstanta sekali dideklarasikan nilainya tidak akan pernah
berubah. Variabel bisa tidak diinisialisasi, sedangkan konstanta selalu
diinisialisasi dan nilai inisialisasi tersebut tidak akan pernah
berubah.

Deklarasi konstanta mirip dengan deklarasi variabel. Tetapi memiliki kata kunci final  sebelum
tipe datanya. Dan seperti variabel, konstanta juga memiliki aturan
dalam penamaannya. Nama konstanta hanya boleh terdiri dari huruf besar
dan garis bawah (undescore). Berikut contoh penamaan konstanta yang
valid :

final double PI = 3.14;

Tipe Data

Sebagaimana telah dijelaskan sebelumnya, deklarasi variabel dan konstanta membutuhkan tipe data tertentu. Java memiliki delapan tipe data primitif, sedangkan untuk tipe data kelas jumlahnya tak terhingga (karena bisa kita definisikan sendiri). Delapan tipe data primitif ini sangat fundamental karena ia sebagai dasar untuk membangun tipe data kelas.

Kedelapan tipe data primitif tersebut bisa digolongkan kedalam tipe data numerik (untuk mengolah nilai-nilai yang berupa angka), tipe data boolean (berisi nilai benar dan salah - 0 dan 1), dan tipe data karakter huruf.

 

Tipe data numerik dibagi menjadi dua, yakni tipe data untuk menyimpan bilangan bulat dan tipe data untuk menyimpan bilangan pecahan.

Berikut tipe data primitif (dasar) dalam java :

Numerik Bilangan Bulat :

  • byte (panjangnya 1 byte = 8 bit), menampung nilai dari -128 sd 127. Memiliki nilai default 0 –> artinya jika tidak diinisialisasi (diberi nilai awal) variabel yang menggunakan tipe data ini bernilai 0.
  • short (panjangnya 2 byte = 16 bit), menampung nilai dari -32,768 sd 32,767. Nilai default juga 0.
  • int (panjangnya 4 byte = 32 bit), menampung nilai dari -2,147,483,648 sd 2,147,483,647. Nilai default 0.
  • long (panjangnya 8 byte = 64 bit), menampung nilai dari -9,223,372,036,854,775,808 sd 9,223,372,036,854,775,807. Nilai default 0.

Numerik Bilangan pecahan :

  • float (panjangnya 4 byte), menampung nilai dari -3.4E38 (-3.4 * 10 pangkat 38) sd +3.4E38. Memiliki presisi angka sampai 7 digit (0.xxxxxxx)
  • double (panjangnya 8 byte), menampung nilai dari -1.7E308 (-1.7 * 10 pangkat 308) sd +1.7E308. Memiliki presisi angka sampai 17 digit (0.xxxxxxxxxxxxxxxxx)

Deklarasi untuk tipe data numerik bilangan pecahan secara default menggunakan tipe data double. Jadi  0.24, 1.78, 2000.5034 dll dibaca sebagai double. Dengan eclipse deklarasi variabel float testFloat = 0.24; akan bertanda merah (berarti eclipse mendeteksi kesalahan). Deklarasi pecahan yang bertipe float harus diakhiri dengan huruf f. Deklarasi float yang salah di atas bisa diperbaiki menjadi sebagai berikut float testFloat = 0.24f.

Sudah 6 tipe data primitif yang kita bahas. Dua tipe data primitif yang lain adalah char dan booleanchar adalah  tipe data untuk menampung nilai dari satu karakter (bisa berupa huruf atau angka). Sedangkan boolean adalah tipe data untuk menampung nilai benar (true) atau salah (false). Berikut contoh deklarasi variabel menggunakan tipe data primitif char dan boolean yg sudah dinisialisasi:

char nilaiKuliah = ‘A’;
boolean lulus =  true;

Default tipe data char adalah karakter kosong, sedangkan default tipe data boolean adalah bernilai ‘false’.

Untuk setiap tipe data primitif yang telah dijelaskan, java memiliki tipe data kelas yang bersesuaian, yaitu Byte untuk tipe data primitif byte, Short untuk tipe data primitif short, Integer untuk tipe data primitif int, Long untuk tipe data primitif long, Float untuk tipe data primitif float, Double untuk tipe data primitif double, Boolean untuk tipe data primitif boolean dan Character untuk tipe data primitif char.

Array

Array adalah suatu variabel yang menyimpan kumpulan literal dari suatu tipe data yang sama. Misalnya kita seorang pedagang toko, ingin menyimpan pendapatan tiap bulan kita dalam suatu variabel yang bertipe double. Maka ada dua belas variabel dengan tipe data double yang kita butuhkan. Misalnya deklarasi variabel tersebut adalah sebagai berikut :
    double pendapatanBulan1;
    double pendapatanBulan2;
    double pendapatanBulan3;
                  .
                  .
                  .
   double pendapatanBulan12;

Tentu sangat repot mendeklarasikan variabel sebanyak itu. Bisa-bisa program yang kita buat hanya berisi kumpulan deklarasi variabel.

Array membantu kita mengelompokkan variabel-variabel yang sejenis ke dalam satu variabel array. Dengan array deklarasi variabel yang cukup banyak di atas, bisa diringkas sebagai berikut :

    double[] pendapatanBulanan = new double[12];
atau double pendapatanBulanan[] = new double[12];

Dua contoh deklarasi variabel array di atas sama benarnya (di sini hanya ditunjukkan perbedaan cara deklarasi saja). Angka 12 menyatakan panjang array tersebut.

 

Seperti variabel, array juga bisa diinisialiasi (diberi nilai awal). Berikut contoh deklarasi array yang sudah diinisialisasi :
    double pendapatanBulanan[] = new double{10000, 20000, 30000, 40000,
                                                          50000, 60000, 70000,80000, 90000,
                                                        100000, 110000,120000}

Untuk memanipulasi (mengolah) nilai dari suatu array kita harus mengakses indeks elemen array tersebut. Indeks element array selalu dimulai dari indeks 0, sehingga indeks terakhir suatu array adalah selalau panjang array dikurangi satu. Contoh berikut akan memanipulasi nilai indeks pertama menjadi 15000, dan indeks ke enam menjadi 75000 :

    pendapatanBulanan[0] = 15000;
    pendapatanBulanan[6] = 75000;

Konsep array bukan hanya berlaku pada tipe data primitif saja, ia juga berlaku pada tipe data kelas.

String

Mengolah "kata atau kalimat" di dalam programming java bisa dilakukan dengan menggunakan tipe data primitif char[] (array dari karakter). Contoh jika kita ingin menyimpan kata "hello" bisa dilakukan dengan ekspresi berikut :

    char[] charHello = new char{’h',’e',’l',’l',’o'};

Tapi semakin panjang kata atau kalimat yang kita olah, ekspresi seperti di atas sangat tidak efektif. Karena kekurangan fleksibilitas char[] ini java menyediakan suatu kelas khusus yang bernama String untuk membuat dan memanipulasi kata atau kalimat. Dengan menggunakan kelas String, ekspresi di atas bisa diganti dengan ekspresi berikut :

    String strHello = "hello";

Literal dari suatu objek String selalu diapit oleh tanda kutip ("");

Kelebihan kelas String dibandingkan dengan char[] adalah kelas String lebih dinamis. Kalau kita menggunakan char[], sekali deklarasi pangjang char[] tidak pernah berubah. Sedangkan String bisa kita manipuasi sesuka kita (bisa kita kurangi atau kita tambahkan). Pada variabel charHello, panjang kata yang bisa dimanipulasi selalu 5. Manipulasi pada variabel charHello hanya terbatas pada penggantian literalnya saja (sedangkan panjangnya selalu tetep). Sedangkan variabel strHello selain kita bisa mengganti literalnya, panjangnya juga secara bersamaan berubah sesuai dengan kata atau kalimat yang akan kita manipulasi. Misalnya kita ingin mengganti literal variabel strHello menjadi "halo, Apa Kabar?", kita cukup membuat ekspresi berikut :

    strHello = "halo, Apa Kabar?";

String juga bisa kita tambahkan. Misalnya kita ingin menambahkan "halo, Apa Kabar?" dengan kalimat "Apakah baik-baik saja ", maka kita bisa melakukan operasi penambahan pada strHello sebagai berikut :

    strHello = strHello + " Apkah baik-baik saja?";

Lebih fleksibel bukan?

Dengan eclipse anda bisa mengetahui prilaku (method) apa saja yang dimiliki oleh objek String (dengan menambahkan titik pada akhir objek string nya).

Operator

Operator berfungsi untuk mengoperasikan (memanipulasi, mengolah) satu atau lebih variabel. Variabel yang dioperasikan disebut operand.

Secara garis besar operator dalam java bisa dikelompokkan menjadi operator assignment, operator aritmatika, operator unary, operator equality, operator kondisional, operator komparasi, dan operator bitwise (paling jarang dipakai, di skip - tidak dijelaskan)

Operator assigment adalah tanda = (sama dengan), berguna untuk memberi literal pada suatu variabel tertentu. Berikut contoh operator assigment :

    int testInt = 0;

Operator aritmatika adalah operator yang digunakan untuk melakukan operasi aritmatika (perhitungan). Operator ini ada lima macam yaitu operator penambahan (+), operator penguranan (-), operator perkalian (*), operator pembagian (/) dan operator sisa - mod (%).

Berikut contoh penggunaan operator arimatika :

    int hasil = 1 + 2;    // hasil = 3
    hasil = hasil - 1;    // hasil = 2
    hasil = hasil * 2;    // hasil = 4
    hasil = hasil / 2;   //hasil = 2
    hasil = hasil + 8;   // hasil = 10
    hasil = hasil % 7;   //hasil = 3

Operator penjumlahan (+) bisa juga diterapkan pada objek string (seperti pada contoh penjelasan kelas String).

Operator unary meliputi operator unary positif (+) untuk menandakan suatu bilangan positif (setiap bilangan tanpa tanda negatif, berarti termasuk bilangan positif). Operator unary negatif (-) untuk menandakan suatu bilangan negatif. Operator unary increment (++), berguna menambah menambah literal bilangan dengan literal bilangan satu. Operator unary decrement (–), berguna mengurangi literal bilangan dengan bilangan satu. Dan operator unary komplemen logika (!), berguna untuk mengkomplemenkan suatu logika yang bernilai true atau false.

Berikut contoh penggunaan operator unary :

        int hasil = +1; // hasil = 1
        hasil–;  // hasil = 0
        hasil++; // hasil = 1
        hasil = -hasil; // hasil = -1
        boolean success = false; //success = false;
        success = !success;  //success =true;

Operator equality digunakan untuk membandingkan dua variabel, apakah nilainya sama, lebih besar, lebih kecil, lebih besar atau sama dengan, lebih kecil atau sama dengan dan tidak sama dengan. Operator-operator tersebut adalah sebagai berikut :

    ==     sama dengan
    >        lebih besar
    <        lebih kecil
    >=      lebih besar atau sama dengan
    <=      lebih kecil atau sama dengan
    !=      tidak sama dengan

Berikut contoh pemakaian operator equality (contohnya dapat ngambil dari situs java.sun.com)

 

class ComparisonDemo {

     public static void main(String[] args){          int value1 = 1;          int value2 = 2;          if(value1 == value2) System.out.println("value1 == value2");          if(value1 != value2) System.out.println("value1 != value2");          if(value1 > value2) System.out.println("value1 > value2");          if(value1 < value2) System.out.println("value1 < value2");          if(value1 <= value2) System.out.println("value1 <= value2");     }}

Outpun program tersebut sbb:

	value1 != value2      value1 < value2      value1 <= value2

 

Operator kondisional digunakan pada dua atau lebih ekspresi boolean. Operator ini  terdiri dari operator kondisional AND (&&) dan operator kondisional OR (||). Berikut contoh penggunaan operator ini (contohnya ngambil dari situ sun juga) :

 

class ConditionalDemo {

     public static void main(String[] args){          int value1 = 1;          int value2 = 2;          if((value1 == 1) && (value2 == 2)) System.out.println("value1 is 1 AND value2 is 2");          if((value1 == 1) || (value2 == 1)) System.out.println("value1 is 1 OR value2 is 1");

     }}

 

outpun program di atas adalah :

value1 is 1 AND value2 is 2value1 is 1 OR value2 is 1

Operator komparasi digunakan untuk mengecek apakah suatu objek merupakan instrance dari suatu kelas tertentu. Operator komparasi adalah operator instranceof.  Jika suatu objek yang kita tes merupakan instance dari suatu kelas yang kita tentukan, ekspresi ini bernilai true, false jika sebaliknya. Berikut contoh sederhana pemakaian operator komparasi.

    KelasA a = new KelasA();
    KelasB b = new KelasB();

    if(a instanceof KelasA)
       Sytem.out.println("objek adalah instance dari KelasA);


Karena a merupakan instance dari KelasA maka statement System.out.println("objek adalah instance dari KelasA") dieksekusi.

The Muslim Mary

Jennifer Green, The Ottawa Citizen

If you are looking for the religious text with the most references to Mary,
the mother of Jesus, look no further than the Koran, Jennifer Green writes.

Published: Thursday, December 21, 2006

Islam and Christianity revere Mary above all other women, a human divinely
appointed to bear Jesus in a virgin birth. But the Koran mentions Mary 34
times, and names an entire chapter after her — more than she gets in the
Bible, according to Cruden’s Complete Concordance. She is the only woman
mentioned by name in the Koran, and some scholars say Muslims actually
revere her more than Christians do.

"Without a doubt, she is the most spectacular female figure that appears in
the whole of the Koran," says Bruce Lawrence, Islamic scholar and author of
The Qur’an: A Biography. "That’s quite something extra for Christians to
have to deal with."

Robert Moynihan, editor of Inside the Vatican magazine, agrees. In one
sense, "I would say Muslims have more veneration of Mary — those who are <!–
D(["mb","
\nbelieving Muslims -- than most Christians today. That's because of the
\ndecline of Marion veneration in Christianity."
\n
\nPockets of worshippers around the world still pray extensively to Mary,
\nespecially among Catholics, but her influence has waned in the last
\ngeneration. As women struggled to be heard, in church hierarchies and
\nsociety at large, exhortations to follow Mary's example of chastity and
\nacceptance of God's will started sounding like clerical spin designed to
\nkeep the ladies in line.
\n
\n"She is not out of the picture, but she is not woven into the warp and woof
\nof the faith," Mr. Moynihan said from his office in Rome. "That shattered
\nwith the confrontation with the modern world."
\n
\nMuslim women are not as likely to have submitted Mary to this political
\nlitmus test, so they are still comfortable turning to her, he says.
\n
\nAynur Gunenc is a 37-year-old Ottawa native who commutes to Montreal every
\nweek to complete her master's degree in bioresource engineering at McGill
\nUniversity. She is also a practising Muslim and the mother of two sons.
\n
\nLike many Muslim women, she looked to Mary while she was pregnant and when
\nwent into labour, reading Surah 19, the chapter in the Koran named for the
\nvirgin. She also ate dates as Mary did while giving birth to Jesus.
\n
\n"It is supposed to help for an easy delivery." Did it work? "Yes."
\n
\n"For us, Mary is a symbol of purity and patience, honesty and believing 100
\nper cent in God, even when things are difficult. I am full of respect and
\nlove for her. I cannot imagine, myself, keeping your faith when you have
\nhad a baby without a husband, close to people who disapprove. It would not
\nbe bearable.
\n
\n"If there had been a woman prophet, it would have been Mary. She knew this
\nlife is temporary."
\n
\nChristianity and Islam differ on the fundamental nature of Jesus. For ",1]
);

//–>
believing Muslims — than most Christians today. That’s because of the
decline of Marion veneration in Christianity."

Pockets of worshippers around the world still pray extensively to Mary,
especially among Catholics, but her influence has waned in the last
generation. As women struggled to be heard, in church hierarchies and
society at large, exhortations to follow Mary’s example of chastity and
acceptance of God’s will started sounding like clerical spin designed to
keep the ladies in line.

"She is not out of the picture, but she is not woven into the warp and woof
of the faith," Mr. Moynihan said from his office in Rome. "That shattered
with the confrontation with the modern world."

Muslim women are not as likely to have submitted Mary to this political
litmus test, so they are still comfortable turning to her, he says.

Aynur Gunenc is a 37-year-old Ottawa native who commutes to Montreal every
week to complete her master’s degree in bioresource engineering at McGill
University. She is also a practising Muslim and the mother of two sons.

Like many Muslim women, she looked to Mary while she was pregnant and when
went into labour, reading Surah 19, the chapter in the Koran named for the
virgin. She also ate dates as Mary did while giving birth to Jesus.

"It is supposed to help for an easy delivery." Did it work? "Yes."

"For us, Mary is a symbol of purity and patience, honesty and believing 100
per cent in God, even when things are difficult. I am full of respect and
love for her. I cannot imagine, myself, keeping your faith when you have
had a baby without a husband, close to people who disapprove. It would not
be bearable.

"If there had been a woman prophet, it would have been Mary. She knew this
life is temporary."

Christianity and Islam differ on the fundamental nature of Jesus. For <!–
D(["mb","
\nChristians, he is God the Son; for Muslims, he is a prophet who was fully
\nhuman.
\n
\nBut their accounts around his birth are startlingly similar. Both tell of
\nan elderly couple beseeching God for a child.
\n
\nIn the Bible, Elizabeth and her husband, the temple priest Zachary, become
\nparents to John the Baptist.
\n
\nIn the Koran, the elderly Zakariya pleads to God for a son, and his prayer
\nis answered with the birth of "Yahya" -- John.
\n
\nMary's mother, Anna, offers her child-to-be to God, but she is surprised
\nand dismayed to see that she has given birth to a girl, whom she names
\nMary, or Maryam. She offers the child to God anyway and brings her to the
\ntemple, where she comes under the protection of Zakariya.
\n
\nEvery day she has holy visions, and when Zakariya comes with food, he finds
\nangels have already provided for the young girl -- details remarkably
\nsimilar to the Proto Gospel of James, scripture that is not included in the
\nBible, but is considered credible by Roman and Eastern Orthodox Catholics.
\n
\nIn the Koran, the angel Gabriel comes to tell Mary she will bear a child,
\nto which she says: "How shall I have a son, seeing that no man has touched
\nme, and I am not unchaste?"
\n
\nHe said: "So (it will be): Thy Lord saith, 'that is easy for Me: and (We
\nwish) to appoint him as a Sign unto men and a Mercy from Us': It is a
\nmatter (so) decreed.
\n
\n"So she conceived him, and she retired with him to a remote place."
\n
\nIn the Koran, there is no Joseph to protect her reputation. Instead, Mary
\ngoes off to an unspecified location to bear the child. Once there, she
\ncries out in pain and says she wishes she had died before this.
\n
\nIn response, God provides a stream for water, and dates from a tree above.
\n
\nWhen she returns home with the babe in arms, the villagers are horrified.
\nHow could she have a child without a husband? Jesus himself speaks to them ",1]
);

//–>
Christians, he is God the Son; for Muslims, he is a prophet who was fully
human.

But their accounts around his birth are startlingly similar. Both tell of
an elderly couple beseeching God for a child.

In the Bible, Elizabeth and her husband, the temple priest Zachary, become
parents to John the Baptist.

In the Koran, the elderly Zakariya pleads to God for a son, and his prayer
is answered with the birth of "Yahya" — John.

Mary’s mother, Anna, offers her child-to-be to God, but she is surprised
and dismayed to see that she has given birth to a girl, whom she names
Mary, or Maryam. She offers the child to God anyway and brings her to the
temple, where she comes under the protection of Zakariya.

Every day she has holy visions, and when Zakariya comes with food, he finds
angels have already provided for the young girl — details remarkably
similar to the Proto Gospel of James, scripture that is not included in the
Bible, but is considered credible by Roman and Eastern Orthodox Catholics.

In the Koran, the angel Gabriel comes to tell Mary she will bear a child,
to which she says: "How shall I have a son, seeing that no man has touched
me, and I am not unchaste?"

He said: "So (it will be): Thy Lord saith, ‘that is easy for Me: and (We
wish) to appoint him as a Sign unto men and a Mercy from Us’: It is a
matter (so) decreed.

"So she conceived him, and she retired with him to a remote place."

In the Koran, there is no Joseph to protect her reputation. Instead, Mary
goes off to an unspecified location to bear the child. Once there, she
cries out in pain and says she wishes she had died before this.

In response, God provides a stream for water, and dates from a tree above.

When she returns home with the babe in arms, the villagers are horrified.
How could she have a child without a husband? Jesus himself speaks to them <!–
D(["mb","
\nfrom her arms, even though he is only a few days old.
\n
\nMary is also a bridge between Islam and Christianity, something Pope
\nBenedict XVI touched on in his recent trip to Turkey, where he celebrated
\nMass at Ephesus, the western town in which Mary is said to have lived her
\nlast days.
\n
\nThe Pope pointed to her as an explicit link between Islam and Christianity,
\nstressing that a common devotion to Mary can help bind the two faiths.
\n
\nVatican expert and author John Allen also commented on the link: "It is
\ntrue that Mary is actually referred to more often in the Koran than she is
\nin the New Testament," he told reporters during the pope's visit.
\n
\n"She has always been a figure of strong popular devotion for Muslims as
\nwell as Christians. And it would not at all be surprising if Benedict XVI
\nwere to want to build on that in some fashion."
\n
\nsource:
\nhttp://www.canada.com/ottawacitizen/news/story.html?id\u003da3146ea8-5c72-4be2-b9ce-f688c0cf6b49
\n
\n\u003d\u003d\u003d
\n
\n-muslim voice-
\n______________________________________
\nBECAUSE YOU HAVE THE RIGHT TO KNOW
\n
\n[Non-text portions of this message have been removed]
\n
\n[Non-text portions of this message have been removed]
\n
\n

\n

\n\n \n __._,_.___\n \n

\n \n \n Messages in this topic (1)\n \n “,1]
);

//–>
from her arms, even though he is only a few days old.

Mary is also a bridge between Islam and Christianity, something Pope
Benedict XVI touched on in his recent trip to Turkey, where he celebrated
Mass at Ephesus, the western town in which Mary is said to have lived her
last days.

The Pope pointed to her as an explicit link between Islam and Christianity,
stressing that a common devotion to Mary can help bind the two faiths.

Vatican expert and author John Allen also commented on the link: "It is
true that Mary is actually referred to more often in the Koran than she is
in the New Testament," he told reporters during the pope’s visit.

"She has always been a figure of strong popular devotion for Muslims as
well as Christians. And it would not at all be surprising if Benedict XVI
were to want to build on that in some fashion."


source

 

Gerakan Syahwat Merdeka Mengepung Indonesia

Seorang
bule bertubuh tinggi besar bergegas ke luar ruangan Teater Kecil Taman
Ismail Marzuki (TIM), Cikini Raya, Jakarta Pusat. Langkahnya acuh saja.
Sembari berjalan lurus, dia kemudian mendekati penyair Taufiq Ismail
yang tengah dirubung banyak orang. Setelah sampai di dekat Taufiq, ia
menyalaminya.

 

”Selamat
ya. Pidato kebudayaan Anda bagus sekali. Tapi ingat, media massa
Indonesia juga banyak sampahnya. Lihat siaran televisi Anda. Bayangkan
kalau di Amerika tayangan itu diputar pada pukul 03.00 pagi, di sini
malah diputar pada prime time,” kata si bule sembari memegang
tangan Taufiq. Yang disalaminya pun membalas dengan senyum simpul.
”Terima kasih Tuchrello. Memang demikian adanya. Maaf, kalau banyak
mengambil contoh negara Anda,” jawab Taufiq.

 

Sesaat
dia lantas menerangkan sahabatnya itu adalah Will Tuchrello, direktur
Perpustakaan Kongres AS Perwakilan Indonesia. ”Bayangkan, mereka saja
resah atas menggejalanya budaya bebas tanpa batas itu. Tapi, kok kita tidak ya?” ujar penulis lirik lagu-lagu hits Bimbo ini.

 

Taufiq,
Rabu (20/12) malam, melalui pidato kebudayaannya di depan kalangan
Akademi Jakarta mengguncangkan kesadaran publik untuk kembali menengok
nurani pada hilangnya rasa malu orang Indonesia. Bahkan, Taufiq lugas
menyebutkan hilangnya rasa malu itu telah mulai meruntuhkan bangunan
bangsa.<!–
D(["mb","

\n \n

Tagihan\nrekening reformasi, menurut Taufiq, ternyata mahal sekali. Indonesia\ndikepung gerakan 'Syahwat Merdeka'! ''Gerakan syahwat merdeka ini tak\nbersosok organisasi resmi, dan jelas tidak berdiri sendiri. Tapi,\nbekerja sama bahu-membahu melalui jaringan mendunia, dengan kapital\nraksasa mendanainya. Ideologi gabungan yang melandasinya, dan banyak\nmedia massa cetak dan eletronik menjadi pengeras suaranya,'' kata\nTaufiq dalam pidatonya.

\n \n

Ketika\nmendengar 'kesaksian' Taufiq, sesaat ruangan Teater Kecil yang penuh\ndipadati puluhan pengunjung mendadak berubah. Ketua Umum PP\nMuhammadiyah, Din Syamsuddin, misalnya, segera membuka buku kecil yang\nmemuat pidato Taufiq Ismail.

\n \n

Dari\narah bangku belakang, kemudian terdengar lenguhan panjang. Seorang ibu\nberguman. Penulis skenario film senior, Misbach Yusa Biran,\nmenggeleng-gelangkan kepala. Pemusik kontemporer Slamet Abdul Syukur\ntepekur di kursinya.

\n \n

Ruangan\nteater pun terus senyap. Suhu udara berpendingin kini mulai terasa\nmerambahi kulit. Taufiq kemudian meneruskan pidatonya dengan\nmenjelaskan mengenai siapa saja yang menjadi komponen 'syahwat merdeka'\nitu.

\n \n

Paling\ntidak ada 13 pihak yang menjadi pendukung fanatik gerakan ini. Pertama\nadalah praktisi sehari-hari kehidupan pribadi dan kelompok seks bebas\nhetero dan homo, terang-terangan dan sembunyi-sembunyi. Kedua, para\npenerbit majalah dan tabloid mesum yang telah menikmati tiada perlunya\nSIUPP. Ketiga, produser, penulis skrip, dan pengiklan televisi.

\n \n

''Semua\norang tahu betapa ekstentifnya pengaruh layar kaca. Setiap tayangan\ntelevisi rata-rata 170 juta pemirsa. Untuk situs porno kini tersedia\n4,2 juta di dunia dan 100 ribu di internet Indonesia. Untuk\nmengaksesnya malah tanpa biaya, sama mudahnya dilakukan baik dari San\nFransisco, maupun Klaten,'' tegasnya.",1]
);

//–>

 

Tagihan
rekening reformasi, menurut Taufiq, ternyata mahal sekali. Indonesia
dikepung gerakan ‘Syahwat Merdeka’! ”Gerakan syahwat merdeka ini tak
bersosok organisasi resmi, dan jelas tidak berdiri sendiri. Tapi,
bekerja sama bahu-membahu melalui jaringan mendunia, dengan kapital
raksasa mendanainya. Ideologi gabungan yang melandasinya, dan banyak
media massa cetak dan eletronik menjadi pengeras suaranya,” kata
Taufiq dalam pidatonya.

 

Ketika
mendengar ‘kesaksian’ Taufiq, sesaat ruangan Teater Kecil yang penuh
dipadati puluhan pengunjung mendadak berubah. Ketua Umum PP
Muhammadiyah, Din Syamsuddin, misalnya, segera membuka buku kecil yang
memuat pidato Taufiq Ismail.

 

Dari
arah bangku belakang, kemudian terdengar lenguhan panjang. Seorang ibu
berguman. Penulis skenario film senior, Misbach Yusa Biran,
menggeleng-gelangkan kepala. Pemusik kontemporer Slamet Abdul Syukur
tepekur di kursinya.

 

Ruangan
teater pun terus senyap. Suhu udara berpendingin kini mulai terasa
merambahi kulit. Taufiq kemudian meneruskan pidatonya dengan
menjelaskan mengenai siapa saja yang menjadi komponen ’syahwat merdeka’
itu.

 

Paling
tidak ada 13 pihak yang menjadi pendukung fanatik gerakan ini. Pertama
adalah praktisi sehari-hari kehidupan pribadi dan kelompok seks bebas
hetero dan homo, terang-terangan dan sembunyi-sembunyi. Kedua, para
penerbit majalah dan tabloid mesum yang telah menikmati tiada perlunya
SIUPP. Ketiga, produser, penulis skrip, dan pengiklan televisi.

 

”Semua
orang tahu betapa ekstentifnya pengaruh layar kaca. Setiap tayangan
televisi rata-rata 170 juta pemirsa. Untuk situs porno kini tersedia
4,2 juta di dunia dan 100 ribu di internet Indonesia. Untuk
mengaksesnya malah tanpa biaya, sama mudahnya dilakukan baik dari San
Fransisco, maupun Klaten,” tegasnya.<!–
D(["mb","

\n \n

Pendukung\nkeempat adalah penulis, penerbit, dan propagandanis buku-buku sastra\ndan bukan sastra. Di Malaysia, penulis yang mencabul-cabulkan karyanya\nadalah penulis pria. Di Indonesia sebaliknya. Penulis yang asyik\nmenulis wilayah 'selangkangan dan sekitarnya' mayoritas perempuan.\n''Dalam hal ini ada kritikus Malaysia berkata, 'Wah Pak Taufiq,\npengarang Indonesia berani-berani. Kok mereka tidak malu?'' ungkap Taufiq Ismail.

\n \n

Kelima,\npenerbit dan pengedar komik cabul. Keenam, produsen VCD/DVD porno.\nKetujuh, pabrikan alkohol. Kedelapan, produsen, pengedar, dan pengguna\nnarkoba. Kesembilan, pabrikan, pengiklan, dan pengisap rokok. Hal ini\ndilatarbelakangi kenyataan dalam masyarakat permisif, interaksi antara\nseks, narkoba, dan nikotin akrab sekali. Sukar dipisahkan.

\n \n

Selanjutnya,\nkomponen ke-10 adalah para pengiklan perempuan dan laki-laki panggilan.\nKe-11, germo dan pelanggan prostitusi. Ke-12 adalah dukun dan dokter\npraktisi aborsi.

\n \n

''Bayangkan\ndata menunjukan angka aborsi di Indonesia mencapai 2,2 juta setahun.\nMaknanya, setiap 15 detik seorang calon bayi di suatu tempat di negeri\nkita meninggal di suatu tempat akibat dari salah satu atau gabungan\nfaktor-faktor di atas,'' tandas Taufiq Ismail.

\n \n

Menurut\nTaufiq, kehancuran hilangnya rasa malu itu kemudian tecermin dalam\ngemuruh gelombang penolakan RUU Pronografi dan Pornoaksi. Ini adalah\npihak ke-13. Pada satu sisi memang ada kekurangan. Dan salah satu\nkekurangan RUU ini, yang perlu ditambah dan disempurnakan adalah\nperlindungan terhadap anak-anak yang jumlahnya 60 juta.

\n \n

Perbandingannya,\nkalau di Indonesia masih nihil perundangan perlindungan anak, di AS\nanak-anak di sana paling tidak kini dilindungi enam undang-undang.

\n \n

Sastra ganjil
\nMengomentari keresahan Taufiq, pengarang perempuan NH Dini menyatakan,\nsaat ini memang ada yang ganjil dalam dunia sastra. Entah mengapa\ntiba-tiba ada sekelompok penulis perempuan yang giat menulis cerita\nbergaya pornografi. Mereka memang tidak merasa risi atau malu. Entah\nsengaja atau tidak, mereka sudah menyalahartikan erotisme menjadi sama\nsaja dengan pronografi.",1]
);

//–>

 

Pendukung
keempat adalah penulis, penerbit, dan propagandanis buku-buku sastra
dan bukan sastra. Di Malaysia, penulis yang mencabul-cabulkan karyanya
adalah penulis pria. Di Indonesia sebaliknya. Penulis yang asyik
menulis wilayah ’selangkangan dan sekitarnya’ mayoritas perempuan.
”Dalam hal ini ada kritikus Malaysia berkata, ‘Wah Pak Taufiq,
pengarang Indonesia berani-berani. Kok mereka tidak malu?” ungkap Taufiq Ismail.

 

Kelima,
penerbit dan pengedar komik cabul. Keenam, produsen VCD/DVD porno.
Ketujuh, pabrikan alkohol. Kedelapan, produsen, pengedar, dan pengguna
narkoba. Kesembilan, pabrikan, pengiklan, dan pengisap rokok. Hal ini
dilatarbelakangi kenyataan dalam masyarakat permisif, interaksi antara
seks, narkoba, dan nikotin akrab sekali. Sukar dipisahkan.

 

Selanjutnya,
komponen ke-10 adalah para pengiklan perempuan dan laki-laki panggilan.
Ke-11, germo dan pelanggan prostitusi. Ke-12 adalah dukun dan dokter
praktisi aborsi.

 

”Bayangkan
data menunjukan angka aborsi di Indonesia mencapai 2,2 juta setahun.
Maknanya, setiap 15 detik seorang calon bayi di suatu tempat di negeri
kita meninggal di suatu tempat akibat dari salah satu atau gabungan
faktor-faktor di atas,” tandas Taufiq Ismail.

 

Menurut
Taufiq, kehancuran hilangnya rasa malu itu kemudian tecermin dalam
gemuruh gelombang penolakan RUU Pronografi dan Pornoaksi. Ini adalah
pihak ke-13. Pada satu sisi memang ada kekurangan. Dan salah satu
kekurangan RUU ini, yang perlu ditambah dan disempurnakan adalah
perlindungan terhadap anak-anak yang jumlahnya 60 juta.

 

Perbandingannya,
kalau di Indonesia masih nihil perundangan perlindungan anak, di AS
anak-anak di sana paling tidak kini dilindungi enam undang-undang.

 

Sastra ganjil
Mengomentari keresahan Taufiq, pengarang perempuan NH Dini menyatakan,
saat ini memang ada yang ganjil dalam dunia sastra. Entah mengapa
tiba-tiba ada sekelompok penulis perempuan yang giat menulis cerita
bergaya pornografi. Mereka memang tidak merasa risi atau malu. Entah
sengaja atau tidak, mereka sudah menyalahartikan erotisme menjadi sama
saja dengan pronografi.<!–
D(["mb","

\n \n

''Beberapa\nwaktu lalu, ketika tinggal di Prancis, saya dikirimi mendiang Ramadhan\nKH sebuah novel Indonesia yang mendapat penghargaan karya sastra.\nRamadhan, karena tidak 'kuat' membaca, meminta saya membaca novel\ntersebut. Dan benar, saya hanya kuat baca beberapa lembar saja.''\n''Saya kemudian berpikir, apa bagusnya novel ini, kok sampai\nmendapat penghargaan? Malah lebih terkejut lagi, ketika bertemu dengan\nseorang rohaniwan, dia malah memuji novel itu. Akhirnya, saya semakin\ntidak mengerti,'' tutur NH Dini.

\n \n

Budayawan\nRiau, Al Azhar, menyatakan, apa yang dikatakan Taufiq itu memang\nkenyataan yang kini terjadi. Beberapa penulis memang menghasilkan karya\nyang 'tidak masuk akal' karena hanya membahas soal selangkangan.\nDominasi ide hanya memaparkan idealisme hedonis. Realitas kehidupan\nrakyat yang berbudi diabaikan.

\n \n

''Entah\napa yang dipikirkan generasi hedonis itu. Mutunya sangat jauh bila\ndibanding karya Pramudya Ananta Toer atau Ahmad Tohari. Terjadi\npenurunan mutu karya yang serius. Generasi syahwat merdeka memang kini\nmengepung kita,'' tandas Al Azhar.

\n\n\t\t\t\t\t ( muhammad subarkah )\t\t\n\t\t\t\t\t \n\n\t\t\t\t \n\t\t\t\n\t\t\n\t\t\n

--
jadilah bermanfaat !\n

\n

\n\n \n __._,_.___\n \n

\n \n \n Messages in this topic (1)\n \n ",1]
);

//–>

 

”Beberapa
waktu lalu, ketika tinggal di Prancis, saya dikirimi mendiang Ramadhan
KH sebuah novel Indonesia yang mendapat penghargaan karya sastra.
Ramadhan, karena tidak ‘kuat’ membaca, meminta saya membaca novel
tersebut. Dan benar, saya hanya kuat baca beberapa lembar saja.”
”Saya kemudian berpikir, apa bagusnya novel ini, kok sampai
mendapat penghargaan? Malah lebih terkejut lagi, ketika bertemu dengan
seorang rohaniwan, dia malah memuji novel itu. Akhirnya, saya semakin
tidak mengerti,” tutur NH Dini.

 

Budayawan
Riau, Al Azhar, menyatakan, apa yang dikatakan Taufiq itu memang
kenyataan yang kini terjadi. Beberapa penulis memang menghasilkan karya
yang ‘tidak masuk akal’ karena hanya membahas soal selangkangan.
Dominasi ide hanya memaparkan idealisme hedonis. Realitas kehidupan
rakyat yang berbudi diabaikan.

 

”Entah
apa yang dipikirkan generasi hedonis itu. Mutunya sangat jauh bila
dibanding karya Pramudya Ananta Toer atau Ahmad Tohari. Terjadi
penurunan mutu karya yang serius. Generasi syahwat merdeka memang kini
mengepung kita,” tandas Al Azhar.

  ( muhammad subarkah )

– sumber dari milis –

sesek banget

Sesek banget gw pas baca berita ini , pendidikan tidak terurusi malah uang sebegitu banyak di buang ke luar negeri. NEGARA INI MEMANG SANGAT KAYA…..! Singapura, Korea Selatan dan Cina yang sudah maju saja kayaknya akan mikir berulangkali!

Hmm…

JAVA BASIC : Konsep-konsep Dasar Object Oreinted Programming

Pemrogramman berorientasi objek berbeda dengan pemrogramman prosedural. Bila pada pemrogramman prosedural urutan fungsi (prosedur) berperan sebagai kunci utama, pada pemrogramman berorientasi objek ia hanya sebagai fungsi pelengkap (apa seh maksudnya…:P). Pemrogramman prosedural menekankan pada step-step untuk menyelesaikan suatu masalah (menitik beratkan pada proses) sedangkan pemrogramman berorientasi objek menekankan pada ‘apa/siapa MEMILIKI APA dan BISA APA’ (menitikberatkan pada pelaku dan perubahan-perubahan yang terjadi pada pelaku tersebut).

Object Oriented Programming (selanjutnya disebut OOP) memilik konsep-konsep sebagai berikut : objek, kelas, enkapsulasi, pewarisan, polimorfisme, interface dan abstrak. Dari ketujuh konsep tersebut, objek dan kelas merupakan konsep utama/sentral sedangkan konsep yang lainnya adalah penjelasan kedua konsep ini.


Objek

Objek adalah representasi nyata dari segala sesuatu di sekitar kita. Sesuatu yang selalu digolongkan sebagai ‘benda’. Benda terbagi menjadi dua, pertama adalah benda yang merujuk pada benda-benda konkret semisal rumah, tanah, pohon, kendaraan dan lain-lain (dapat diraba dan disentuh….hihi kayak apa aja :p) dan benda-benda yang merujuk pada sesuatu yang abstrak (misalnya lamunan, pikiran, ide dll juga dikategorikan sebagai ‘benda’).

‘Apa/siapa MEMILIKI APA dan BISA APA’ adalah gambaran utuh dari suatu objek. Dari kalimat tersebut kita bisa mendefinisikan bahwa objek yang utuh harus memiliki sekumpulan atribut dan perilaku yang melekat kepadanya. Objek ayam misalnya memiliki atribut-atribut  bulu, jenis kelamin, umur, berat badan, dan nama ayam (sebenarnya masih bisa lebih banyak lagi tergantung cara kita memandang ayam). Sedangkan perilaku objek ayam misalnya makan, berkokok, berhubungan seks, bertelur, bertarung  dll.

Dalam dunia programming atribut-atribut suatu objek disebut variabel sedangkan prilaku dari suatu objek disebut method. Atribut-atribut (atau variabel-variabel) dari suatu objek digambarkan dengan kata benda, kata sifat atau keterangan. Sedangkan perilaku (method) objek digambarkan dengan kata kerja.

Perilaku ayam sangat berpengaruh pada atribut-atribut yang dimiliki oleh ayam. Perilaku makan ayam misalnya sangat berpengaruh pada berat badannya. Perilaku ayam bertarung misalnya sangat berpengaruh pada keadaan dan jumlah bulu ayam (saat bertarung banyak bulu yg lepas, dan bulu-bulunya mengembang).

Keadaan atribut-artribut objek pada kondisi/perilaku tertentu dalam konsep object oriented programming disebut sebagai State objek. Selain memiliki state, objek juga bisa berkomunikasi dan berinteraksi dengan sesamanya atau dengan objek-objek yang berbeda. Perilaku ayam bertarung dan berhubungan seks membutuhkan interaksi dengan sesama objek ayam, sedangkan perilaku makan bisa saja berinteraksi dengan objek manusia. Interaksi-interaksi antara objek-objek ini harus melalui mekanisme pengiriman pesan yang disepakati (dimengerti) oleh object-object yang berinteraksi.

Object mahasiswa misalnya dipandang dari sudut akademis memiliki atribut-atribut nama, nomor pokok mahasiswa, status pembayaran semester dan alamat. Sedangkan perilaku yang melekat pada mahasiswa adalah mengikuti perkuliahan dan mengikuti ujian. Ketika sedang belajar (mengikuti perkuliahan) mahasiswa selain berinteraksi dengan sesamanya juga bisa berinteraksi dengan objek dosen. Interaksi objek mahasiswa dengan objek dosen bisa terjadi bila kedua belah pihak menyepakati pesan jadwal mata kuliah (nama mata kuliah, waktu perkuliahan dan tempat perkuliahan).

Kelas

Kelas merupakan blue print dari kumpulan objek-objek yang sejenis. Kelas mendefinisikan semua atribut dan perilaku-perilaku dari objek tersebut.

Perbedaan antara objek dan kelas adalah objek itu nyata (telah menjadi real) sedangkan kelas hanya model saja. Ketika kita berbicara tentang sepeda gunung misalnya, ia masih menjadi sebuah model (konsep) yang masih abstrak. Tetapi ketika Sepeda gunung bermerek FEDERAL ada di depan kita (bisa kita sentuh dan  bahkan bisa kita pakai) itulah yang disebut objek dari sepeda gunung.

Mahasiswa yang bernama Andi, mahasiswa yang bernama Budi, mahasiswa yang bernama Tati adalah objek-objek dari suatu komunitas mahasiswa. Di pandang sebagai mahasiswa mereka memiliki atribut-atribut yang sama (nama, npm, alamat, tingkat, status pembayaran dll) dan juga memiliki perilaku yang sama yaitu mengikut perkuliahan, mengerjakan tugas-tugas, mengikuti ujian, daftar ulang dls. Untuk objek mahasiswa yang banyak itu kita hanya membutuhkan satu kelas Mahasiswa yang mendefinisikan semua karakteristik (atritbut-atribut) dan perilaku-perilaku dari seorang mahasiswa.

Mahasiswa yang bernama Andi disebut instance dari kelas Mahasiswa, mahasiswa yang bernama Budi juga disebut instance dari kelas Mahasiswa, begitupun mahasiswa yang bernama Tati disebut instance dari kelas Mahasiswa, dan bukan mereka saja tetapi setiap objek mahasiswa adalah instance dari kelas Mahasiswa. Proses pembentukan objek dari sebuah kelas menjadi objek disebut instantiasi.

Karena kelas hanya merupakan sebuah model, tidak ada ruang memori yang digunakan untuk menyimpan data-data yang ada yang ada pada sebuah kelas. Memori hanya akan dipakai ketika kita melakukan instantiasi (membuat objek) dari sebuah kelas.

Enkapsulasi

Enkapsulasi berkaitan dengan mekanisme komunikasi (interaksi) antara objek-objek. Objek A ketika akan berinteraksi dengan objek B hanya perlu tahu objek B bisa apa dan apa aja yang diperlukan untuk melakukakannya tanpa perlu mengetahui detil bagaimana si B melakukannya. Sebagai contoh objek orang  berinteraksi dengan objek motor, si objek orang tau bahwa motor bisa dinyalakan dan yang diperlukan untuk menyalakannya adalah memutor kunci ke "ON" dan menekan tombol "Starter" dan motorpun menyala. Sebenarnya dalam menghidupkan motor tersebut terdapat serangkaian proses yang terjadi di dalam objek motor (yang cukup kompleks). Enkapsulasi membungkus detil implementasi (start pada objek motor) ini sehingga menjadi sangat sederhana di mata objek orang (hanya perlu memutar kunci motor ke posisi "ON" dan menekan tombol start).

Enkapsulasi juga berkaitan dengan pembatasan hak akses. Pada kenyataannya ada suatu atribut-atribut dan perilaku-perilaku tertentu dari suatu objek yang hanya bisa diakses oleh sesama objek (yang sejenis) atau bahkan hanya dirinya sendiri. Atribut-atribut dan perilaku-perilaku objek ini tidak bisa dilihat oleh objek lain. Misalkan pada contoh di atas, ketika objek orang menyalakan objek sepeda motor, sebenarnya ada perilaku internal objek motor (katakanlah putar turbin mesin - di sini ada atribut ‘turbin’ dan perilaku ‘putar’) yang tidak bisa dilihat oleh objek orang. Jadi suatu objek memiliki bagian internal yang hanya bisa diakses oleh dirinya sendiri dan bagian eksternal yang digunakan untuk berkomunikasi dengan objek lain. Penyembuyian atribut dan perilaku internal ini sering juga disebut penyembunyian informasi (information hiding).

Berdasarkan penjelasan di atas, tujuan enkapsulasi sebenarnya adalah untuk dua hal berikut :

  • Penyembuyian atribut dan perilaku internal (information hiding).
  • Menyembuyikan detil implementasi suatu perilaku yang digunakan untuk berkomunikasi dengan objek lain (berkaitan dengan modularitas suatu objek).

Modularitas menyatakan kemandirian suatu objek. Perubahan pada atribut dan perilaku internal suatu objek tidak akan menjadikan problem pada objek-objek lain yang menggunakannya (berinteraksi dengannya).

Pewarisan

Ketika kita akan membuat suatu kelas dari objek-objek kita secara langsung atau tidak langsung membuat pengamatan dan pengelompokan. Pengamatan digunakan untuk mengetahui atribut-atribut dan perilaku suatu objek. Kelas didefinisikan sebagai pengelompokan dari objek-objek yang memiliki atribut dan perilaku yang secara umum sama. Dalam membuat pengelompokan ini sebenarnya ada hirarki. Hirarki paling atas adalah hirarki yang paling umum. Sedangkan hirarki yang paling bawah adalah hirarki yang paling khusus.

Sebagai contoh, ketika kita mengamati sekumpulan objek orang. Kita bisa membuat suatu kelas yang bernama ‘orang’ dengan atribut-atribut yang dimilik adalah nama, tanggal lahir, dan jenis kelamin dengan perilaku-perilaku makan, minum dan mencari teman. Maka semua objek orang bisa termasuk dalam kelas ‘orang’. Dari semua objek orang ini ternyata ada pada orang-orang tertentu yang memiliki atribut-atribut dan perilaku-perilaku yang tidak didefinisikan pada kelas orang. Misalnya ada orang yang hampir setiap hari pergi ke universitas untuk belajar. Selain memiliki semua atribut objek orang, objek orang yang ini juga memiliki atribut nomor pokok  dan perilaku pergi ke universtias (untuk belajar dan mengikuti ujian). Akhirnya kita membuat spesialisasi dari objek orang untuk semua orang yang memiliki karakteristik seperti ini (memiliki nomor pokok dan perilaku pergi ke universitas untuk belajar dan mengikuti ujian). Spesialisasi ini menghasilkan kelas baru yang bernama ‘mahasiswa’ yang MEWARISI seluruh atribut-atribut dan perilaku-perilaku kelas ‘orang’ dan ia juga memiliki atribut-atribut dan perilaku-perilaku yang tidak terdapat pada kelas ‘orang’ (dalam hal ini npm, dan mengikuti kegiatan perkuliahan). Konsep kelas ‘mahasiswa’ yang mewarisi seluruh atribut dan perilaku kelas orang inilah yang disebut dengan konsep PEWARISAN (inheritance).

Dari kelas ‘orang’ menuju kelas ‘mahasiswa’ disebut spesialisasi, sedangkan dari kelas ‘mahasiswa’ menuju kelas ‘orang’ disebut generalisasi.

Polimorfisme

Polimorfisme secara leksikal bahasa berarti ‘banyak bentuk’. Dalam konsep OOP, polimorfisme adalah pendefinisian suatu perilaku-perilaku objek yang memiliki nama yang sama tetapi mengolah masukan yang berbeda. Masukan yang berbeda menyebabkan detil implementasi perilakunya juga berbeda.

Sebagai contoh, objek orang memiliki perilaku ‘makan’. Masukan atau input perilaku ‘makan’ untuk setiap orang berbeda-beda tergantung kebiasaan (dan tentunya juga wilayah). Orang indonesia biasa makan nasi, sedangkan orang eropa biasa makan roti. Polimorfisme mengijinkan pendefinisian perilaku ‘makan’ ini secara berulang (dengan nama yang sama) asalkan input yang diberikan tipenya berbeda-beda.

Interface

Interface dalam bahasa Indonesia diterjemahkan sebagai antarmuka. Interface hanya mendefinisikan method suatu kelas - perilaku suatu objek (tanpa detil implemntasinya). Jika kelas merupkan blue-print dari sebuah objek, interface adalah blue-print dari sebuah kelas.

Karena hanya mendefiniskan perilaku tanpa detil implementasi, implementasi dari suatu perilaku objek yang satu dengan objek yang lain bisa berbeda-beda (ini juga bisa dikaitan dengan polimorfisme).

Objek sepeda motor misalnya memiliki perilaku ‘oper/tambah gigi’. Implementasi tambah gigi antara motor bebek dan motor laki-laki (contoh Scorpionya Yamaha) berbeda. Kalau motor bebek selalu ke depan, sementara motor laki-laki ada yang ke belakang. Berbeda lagi dengan Yamaha Mio, ia malah otomatis implementasi tambah giginya. Walaupun implementasi dari oper gigi berbeda-beda tetapi tetep perilakunya sama (yaitu oper/pindah gigi) - ini yang di definisikan dalam interface.

Kita tidak bisa langsung membuat objek dari sebuah interface. Agar kita bisa membuat sebuah objek dari interface kita harus memanggil kelas yang mengimplentasikannya.

Abstrak Kelas

Waduh untuk kasus yang ini agak bingung juga menjelaskannya. Ok deh, sebenarnya fungsi abstrak kelas ini agak-agak mirip dengan interface. Ia digunakan untuk merancang sebuah kelas (menggambarkan isi kelas secara keseluruhan - tahukan ‘abstrak sebuak buku’?). Kita juga tidak bisa membuat objek secara langsung baik dari interface maupun dari abstrak kelas.

Bedanya kalau interface hanya berisi definisi method-method (tanpa implementasinya) sedangkan pada abstrak kelas method-method tersebut bisa saja sudah ada yang diimplementasikan, atai bisa juga hampir semua semua method itu sudah diimplementasikan. Syarat abstrak kelas dalam OOP adalah kelas tersebut minimal mempunyai satu method yang bertipe abstrak (belum diimplementasikan).

Kalau pada interface kita hanya mendefiniskan method-method, pada abstrak kelas  selain method kita juga bisa mendefinisikan semua atribut-atribut dari kelas tersebut.

Kita bisa membuat objek dari sebuah interface dengan cara memanggil kelas yang mengimplementasikannya, Sedangkan objek dari sebuah abstrak kelas bisa kita buat dengan cara memanggil kelas yang mewarisinya.

Interface berkaitan dengan polimorfisme sedangkan abstrak kelas berkaitan dengan inheritance (pewarisan).

– Alhamdulillah bagian ini akhirnya selesai juga –

JAVA BASIC : Eclipse IDE

Setelah sukses memasang java dalam komputer Anda, dengan editor yang sangat sederhana semacam notepad, Anda sebenarnya sudah dapat melakukan programming java. Selain notepad, tersedia juga teks editor-editor lain baik yang free (dalam artian gratis) maupun yang komersil (Anda harus membeli lisensinya). Teks editor  yang pernah penulis pakai diantaranya adalah notepad, edit plus, ultra edit, vi, crimson dan Gel. Notepad sudah tersertakan dalam sistem operasi keluarga windows (semua versi). Edit Plus dan Ultra Edit tidak gratis tapi anda bisa menggunakan versi trialnya. Kelebihan Edit Plus dan Ultra Edit dibandingkan dengan notepad adalah pewarnaan sintak java. Dengan sedikit konfigurasi di Edit Plus anda bisa menjalankan seluruh perintah di dalam folder bin instalasi java Anda (javac, java, appletviewer dll). vi dan crimson juga sangat baik dalam teknik pewarnaan sintak java. Gel walaupun berbasiskan teks memiliki kelebihan dibandingkan dengan teks editor lainnya. Gel memiliki mekanisme auto complete untuk setiap kata yang kita ketikan. Tapi kurangnya GEL lebih berat jika dibandingkan dengan teks editor lainnya. Jika anda ingin mencoba-coba teks-teks editor yang penulis sebutkan, Anda tinggal meminta bantuan dokter google untuk melakukannya. Masukanlah kata kunci nama teks editor yang Anda inginkan ditambah kata download, misalnya "crimson download", "Gel download" dan lain-lain.

Sebagai perkenalan dengan program java, cobalah buat program berikut dengan menggunakan notepad :

/**
* Test.java
* @author Arif
*
*/

public class Test {
   
    public static void main(String[] args){
       
        System.out.println("INI PROGRAM JAVA
PERTAMA SAYA");
       
    }
   
}

Simpanlah kode tersebut dengan nama Test.java (nama file harus sama dengan nama kelas) di direktori kerja Anda. Kemudian dari direktori kerja Anda, dengan menggunakan command promp (perintah berbasiskan teks atau konsole) cobalah eksekusi perintah berikut : javac Test.java. Perintah tersebut akan meng-compile kode java tersebut menjadi bytecode java. Hasil dari kompilasi tersebut adalah file Test.class. Untuk menjalankan program tersebut, ketikkanlah perintah java Test,  hasilnya adalah  teks "INI PROGRAM JAVA PERTAMA SAYA" muncul di command promp Anda.

Skala programming java sangat luas, mulai dari embeded system, mobile device, desktop applicaton, web application hingga skala  enterprise.  Melakukan programming java hanya dengan menggunakan teks editor tidak banyak membantu. Untuk mengerjakan project nyata diperlukan lingkungan pengembangan java yang terintegrasi (biasanya dikenal dengan Java Integrated Development Environment). Ada banyak sekali Java IDE,  yang penulis  ketahuinya  misalnya  NetBeans  IDE,  JDeveloper (J-Dev) , IntelJ IDE, JBuilder IDE, dan Eclipse IDE. Penulis pertama kali berkenalan dengan NetBeans IDE, tapi sekarang aktif menggunakan Eclipse IDE.

Dari semua IDE tersebut manakah yang paling baik? Dari artikel yang pernah penulis baca, masing-masing IDE memiliki kelebihan dan kekurangan. Tidak ada klaim yang objektif bahwa IDE yang satu lebih unggul dari IDE yang lain. Yang ada hanyalah klaim subjektif berdasarkan pengalaman masing-masing. Biasanya kesan yang dalam di dapat dari pengalaman penggunaan IDE yang pertama, ya..seperti cinta pertamalah :P

Dari pengalaman penulis sendiri dan interaksi penulis dengan temen-teman pengembang, menurut penulis Eclipse IDE adalah yang terbaik (sekali lagi ini klaim subjektif lho). Dibandingkan dengan NetBeans IDE, IntelJ IDE, dan JBuilder IDE, Eclipse IDE lebih ringan. Pada komputer penulis di rumah yang sudah dibilang tua (prosesor hanya 733 MH dan memori hanya 128 M) Eclipse IDE masih bisa berjalan dengan normal. Sementara ketika menggunakan NetBeans IDE,  fasilitas-fasiltas NetBeans yang hebat itu banyak yang tidak berfungsi (karena hang). Sedangkan IntelJ IDE, JBuilder IDE dan J-Dev IDE lebih berat lagi (penulis tidak pernah mencoba karena komputer tidak kuat).

Kelebihan Eclipse juga terletak pada dukungan komunitasnya. Tersedia lebih dari 2000 plugin (baik yang free maupun yang komersil) yang bisa kita peroleh sesuai kebutuhan. Hampir semua teknologi yang menggunakan java sebagai platformnya menyediakan plugin untuk eclipse.

Dan yang tidak kalah pentingnya, Eclipse IDE bisa diperoleh dengan free alias gratis sementara untuk IDE yang lain (selain NetBeans) Anda harus membeli lisensinya.


INSTALASI ECLIPSE IDE

Memasang Eclipse dikomputer Anda sangat mudah. Anda hanya perlu mendownload program eclipse dari situs utama eclipse. Ketika akan mendownload Anda diminta memilih mirror tempat download program. Di Indonesia mirror Eclipse adalah Universitas Indonesia (penulis menganjurkan untuk menggunakan mirror ini — hasilnya lebih cepat, karena lokal :P). Hasil download adalah file yang sudah dikompresi (biasanya dalam format .zip untuk windows dan tar.gz untuk linux). Ekstraklah file tersebut dengan program kompresi yang Anda miliki (Winzip, Winrar atau 7-zip dll). Hasilnya adalah satu folder dengan nama eclipse. Program eclipse sudah terinstall di komputer Anda. Untuk menjalankan program, Anda bisa menjalankan langsung dengan membuka folder eclipse tersebut dan mengeksekusi file elipse.exe dengan mengklik file tersebut dua kali. Anda juga bisa membuat shorcut yang mengarah eclipse.exe biar tidak cape-cape harus masuk direktori eclipse.

Eclipse ketika pertama kali dijalankan akan mencari Java Runtime Environment (JRE) yang terpasang (terinstall) di komputer Anda. Jika eclipse tidak menemukan JRE, eclipse tidak bisa dijalankan dan ada pesan bahwa di komputer Anda belum terpasang JRE. Jika Anda sudah menginstall JDK seperti pada tulisan ini otomatis JRE sudah terinstall di komputer Anda.

Sedikit Tutorial Eclipse

Setiap kali kita menjalankan Eclipse IDE (Selanjutnya di sebut Eclipse), kita diminta  menentukan lokasi workspace (tempat semua file yang akan kita buat dan gunakan) seperti gambar berikut :

Start

          

Pilihlah lokasi workspace yang kita inginkan. Misalkan pada gambar di atas kita ingin mengganti lokasi workspace menjadi D:\belajar, kemudian kita tekan tombol OK, jika folder belajar ada pada drive D eclipse langsung membuat konfigurasi pada folder tersebut. Jika folder belajar belum ada, eclipse secara otomatis membuat folder tersebut dan semua konfigurasi untuk kerja kita langsung diletakan di dalamnya. Berikut tampilan pertama kali eclipse

Eclipse

   

Ikon paling atas (gambar globe) adalah overview (sekilas pandang) fasilitas-fasiltas dan fitur-fitur yang dimiliki eclipse. Ikon bintang segi empat adalah penjelasan fitur-fitur baru yang tidak terdapat pada fitur sebelumnya (eclipse yang versinya lebih rendah). Ikon kubus-piramid-bola adalah contoh-contoh. Ikon pena dan tulisan adalah sumber-sumber tutorial eclipse yang bisa kita gunakan. Yang terakhir ikon paling kanan adalah shortcut untuk menuju workspace kita. Klik ikon shortcut untuk menuju workspace. Hasilnya adalah gambar berikut :

Workspace

   

Package Explorer masih kosong, artinya pada workspace kita belum ada satu projectpun yang kita buat.

Untuk memulai bekerja dengan eclipse, buatlah suatu project dengan cara klik menu File - New - Project, kemudian akan muncul project wizard seperti gambar berikut :

Project
Pilihlah Java Project kemudian tekan tombol Next. Anda diminta untuk memberi nama project yang akan dibuat. Isilah nama project sesuai yang diinginkan dan menggambarkan realitas nyata kita. Misalnya untuk tutorial ini kita berinama project dengan tutorialJava. Pada option Prject Layout pilihlah yang bagian bawah — Create Separate source and output folders (biar lebih bersih :P) kemudian tekan tombol Next. Pada tahap akhir kita diminta menentukan letak output (hasil kompilasi) project. Ada dua opsi untuk menentukan output ini, pertama biarkan eclipse secara otomatis meletakan hasil kompilasi (secara default eclipse akan membuat folder classes di dalam direktori bin), atau kita tentukan sendiri dengan menekan tombol Browse…kemudian kita buat folder output sendiri (misalnya folder hasilKompilasi). Penulis memilih yang default eclipse dengan mencentang pilihan Allow output folders for source folders, kemudian klik tombol Finish. Mari kita mulai ngoding :)

Untuk pertama kita akan membuat program contoh di atas (Test.java).  Klik kanan src pada package Explorer Eclipse. Pilih New - Class. Kita diminta untuk memberi nama Package (utk sementara biarkan default dengan tidak mengisi option ini), isilah Name dengan Test, kemudian tekan tombol Finish. Hasilnya adalah gambar berikut :

Workeditor

    

Untuk memperbesar editor (biar bisa satu layar penuh), Tekan dua kali  file Test.java (pada  editor bukan pada  Package  Explorer). Begitu juga untuk kembali ke ukuran asal kita juga melakukan hal yang sama (menekan dua kali file Test.java pada editor).

Berikutnya saya akan memberikan tiga jurus jitu eclipse. Pertama adalah autocomplete editor, kedua koreksi sintak, dan yang ketiga adalah pendefinisian untuk sintak-sintak yang sering digunakan dengan keyword yang lebih pendek. Dua hal yang pertama paling sering digunakan, sementara yang terakhir jarang digunakan — karena mekanisme autocomplete grammer eclipse sangat cepat.

Ok, untuk jurus pertama, di dalam body class ketiklah : main kemudian tekanlah Ctrl+Space autocomplete eclipse akan memberikan semua kemungkinan keyword sintak yang bisa kita pilih. Pilih option main method, maka kerangka method main dilengkapi oleh eclipse. Begitu juga ketika kita bekerja dengan ribuan kelas java kita hanya perlu mengetikkan kata depannya ditambah menekan Ctrl+Space, dan setelah kita pilih apa yang kita inginkan, eclipse akan melengkapi secara otomatis (melakukan import dan lain sebagainya). Ctrl+Space digunakan untuk mengakses semua properti dari suatu kelas atau objek (static variabel, instance variabel, static method, instance method — istilah ini akan dijelaskan kemudian). Anda telah mendapatkan jurus pertama.

Jurus kedua, autocorrect grammer. Tambahkan kata impl kemudian gunakan jurus pertama setelah deklarasi class (setelah kata "Test") kemudian tambahkan kata ActionL setelah kata implements, gunakan jurus pertama lagi. Hasilnya kata "Test" berwarna merah dan eclipse mengindikasikan ada error yang terjadi (ini saatnya menggunakan jurus kedua). Arahkan kursor pada kata yang bergaris merah kemudian tekanlah Ctrl+1(satu), eclipse akan memberikan pilihan-pilihan untuk membenarkan kode tersebut. Pilihlah selalu pilihan paling atas yang ditawarkan oleh eclipse. Kode errorpun akan hilang. Setiap kali ada indikasi error gunakanlah jurus kedua (Ctrl+1) untuk memperbaikinya. Memperbaiki error juga bisa dilakukan dengan menekan tanda error (tanda merah x), eclipse akan memberikan pilihan-pilihan utk memperbaikinya.

Masuk pada jurus ketiga mengakses sintak yang sering digunakan dengan membuat keyword baru yang lebih pendek. Pilih menu Window - Preferences - Java - Editor - Templetes. Misalnya kita akan menggantikan System.out.println() dengan sop, cari sysout pada Name kemudian klik Edit, gantilah sysout menjadi sop, kemudian tekan tombol OK, akan muncul dialog konfirmasi, Tekan tombol Yes. Kemudian tekan OK. Keyword baru sudah siap digunakan. Untuk mengetesnya kembali ke file Test.java, pada body method main (diapit oleh tanda { }) ketikkanlah sop kemudian gunakan jurus pertama. Sim salabim…keren bukan? Masukanlah kata seperti pada contoh program yang ditulis dengan notepad. Kemudian tekan Ctrl+s untuk menyimpan file tersebut. Di sini kelebihan eclipse juga bekerja. Ketika kita menyimpan file java file tersebut otomatis sudah dikompilasi. Dengan eclipse kita tidak perlu lagi melakukan kompilasi file-file java yang kita buat. Hanya cukup dengan menyimpannya. Dan prosesnya seperti menyimpan file biasa (sangat cepat).

Ok, selanjutnya kita menjalankan program java yang kita buat. Karena program yang kita buat berbasiskan teks (console), munculkan console eclipse dengan memilih menu Window - Show View - Console. Dari Package Explore, klik kanan file Test.java pilih Run As - Java Application. Kita akan melihat teks yang bertulisakan "INI PROGRAM JAVA PERTAMA SAYA" di console eclipse kita. Sebenarnya ada tiga cara mengeksekusi kode kita, yang pertama seperti telah saya sebutkan, yang kedua adalah dengan menglik kanan kode yang sedang aktif kemudian memilih yang sama spt pada pilihan pertama (Run As - Java Application), sedangkan yang ketiga menekan tombol hijau disamping ikon bugs (kutu).

Alhamdulillah bagian ini akhirnya selesai juga :) - semoga bermanfaat -

untuk kekasih

jalan-jalan yang kulalui kemarin
telah lenyap dalam kabut hitam
tanpa dirimu
segala tawa adalah kehampaan

di depan cermin
kulihat rupa di depanku
senyum itu aneh
begitupun tawa itu 

kata-kata yg sering kau ulang
yang berdaya magis itupun telah hilang
kekosongan dan kebingungan saja
yang masih tersisa
ditambah sedikit tanya retorika

maka kekasih
sungguh aku tak sanggup berpisah
aku sungguh butuh dekat denganmu
butuh berbincang denganmu
maafkan segala lancangku
maafkan segala angkuhku
dan dalam hening yang tercipta
ku ingin kau kembali membelaiku
dalam lautan cinta yang penuh rahasia

kekasih
sekali lagi
maafkan aku…
maafkan segala dustaku
dusta dalam pengakuan lidah
atas nama cinta…

JAVA BASIC : INSTALASI

Sebelum membahas konsep-konsep dasar java, berikut ini langkah-langkah instalasi java dan Eclipse Integrated Development Environment (Eclipse IDE).

Untuk melakukan instalasi java Anda perlu mendownload software java dari Sun Microsystem, perusahaan yang melahirkan dan mengembangkan java dan komunitasnya. Untuk melihat detil produk-produk java dari Sun bisa klik link ini.  Ada beberapa versi java , versi standar ( Java 2 Standard Edition - J2SE) dan versi enterprise (J2EE). Versi enterprise tidak bisa berjalan tanpa adanya versi standar. Untuk tutorial ini kita hanya membutuhkan versi standar. Downloadnya j2se sesuai dengan sistem operasi Anda. Versi j2se sendiri sangat bervariasi, setahu penulis versi terakhir yang sudah dimunculkan oleh sun adalah j2se versi 6. Dari versi-versi tersebut ada sedikit revolusi syntak pemrogramman dimulai versi 5. Jadi secara  sederhana dapat penulis katakan j2se versi 1.0 sampai versi 1.4.2 memiliki syntak yang sama. Perkembangan versi 1.0 sampai versi 1.4.2 hanyalah pada tambahan kelas-kelas yang disertakan di dalam paket java oleh sun yang sangat membantu programmer, tidak ada perubahan syntak sama sekali. Sedangkan pada versi 5 , selain tambahan kelas-kelas juga mengalami sedikit revolusi pada syntak-syntaknya. Salah satu tambahan itu adalah annotation (akan dibahas lebih lanjut).

Untuk Sistem operasi Microsoft Windows (2000, XP, 2003 dan Vista) dianjurkan untuk mendownload file binari (.exe) agar memudahkan proses intalasi. Setelah melakukan download, Anda bisa melakukan proses pemasangan (instalasi) java di komputer Anda hanya dengan mengeksekusi file .exe yang Anda download. Anda akan dituntun untuk melakukan proses intalasi sampai selesai.

Setelah selesai melakukan instalasi, ada sedikit konfigurasi yang diperlukan agar program java masuk ke dalam sistem (bisa dieksekusi dari manapun). Berikut konfigurasi java di komputer berbasiskan windows sebagai sistem opearasinya. Klik kanan icon my computer Anda, kemudian pilihlah menu Properties. Pilih tab menu Advanced, klik tombol Environment variables…, kemudian pada System Variables (ada pada bagian sebeleh bawah) klik tombol New, akan muncul isian variabel yang akan diisikan. isilah Variable Name dengan JAVA_HOME, sedangkan Variable Value adalah letak instalasi program java Anda. Berikut ini gambar settingan dikomputer penulis.                                           
Home2Setelah Anda mengisi Variable Value sesuai letak instalasi java dalam komputer Anda. Klik tombol OK. Kemudian langkah berikutnya adalah memasukan path java ke dalam path system. untuk melakukan ini editlah Path pada System Variables dengan mengklik Path kemudian tekan tombol Edit. Kemudian masukanlah baris ;%JAVA_HOME%\bin; pada variable value dari Path sistem Anda. Instalasi selesai. Untuk mengetesnya cobalah Anda masuk command prompt (mengeksekusi perintah berdasarkan console - text base) dan ketikkan perintah : Javac ,Jika muncul sederetan teks petunjuk untuk melengkapi perintah tersebut, konfigurasi java anda di system operasi windows Anda sukses.

Berhubung keterbatasan waktu, pada tulisan berikutnya akan dijelaskan cara instalasi program eclipse IDE dan mengapa memilih eclipse IDE bukan IDE yang lain…