Pages

Selasa, 18 Januari 2011

Ibnu Batutah, Perjalanan Haji Terpanjang yang Menakjubkan

BATTUTA_15.47307Selama ini tercatat dalam sejarah bahwa Columbus (1451-1506M) telah menjelajahi dunia. Dikatakan dialah penemu Dunia Baru atau Benua Amerika. Tidak banyak yang tahu jauh sebelum Columbus, orang-orang Arab sudah menjelajahi dunia.
Salah seorang dari mereka ialah Ibnu Batutah atau nama lengkapnya Abu Abdullah Muhammad bin Abdullah Al-Lawati Al-Tanji. Beliau dilahirkan di Tangiers, Morocco, Afrika Utara pada 24 Februari 1304M. Besar dalam keluarga yang taat memelihara tradisi Islam, Ibnu Batutah giat mempelajari fiqh dari para ahli yang sebagian besarnya menduduki jabatan kadhi (hakim). Beliau juga mempelajari sastra dan syair Arab.
Kejayaan beliau dinikmati ketika zaman kekuasaan Bani Marrin di Morocco. Penguasaannya tentang dunia pelayaran didapat ketika bersama-sama pasukan kerajaan memerangi pasukan perang Perancis. Morroco dan Perancis hanya terpisah oleh lautan sehingga pertempuran laut sering terjadi antara keduanya. Pada akhirnya, Morroco pernah menjadi salah satu negara jajahan Perancis.
Menurut sejarahwan Barat, George Sarton, yang mengutip catatan Sir Henry Yules, Ibnu Batutah telah mengembara sejauh 75,000 batu melalui daratan dan lautan. Jarak ini jauh lebih panjang dari yang dilakukan Marco Polo dan penjelajah mana pun sebelum datangnya zaman mesin uap. Ketika Marco Polo meninggal dunia, Ibnu Batutah baru berusia 20 thn. Ahli sejarah seperti Brockellman mensejajarkan namanya dengan Marco Polo, Hsien Teng, Drake dan Magellan.
Ibnu Batutah (wikipedia)
Ibnu Batutah (wikipedia)Kisah seluruh perjalanan Ibnu Batutah ditulis oleh Ibnu Jauzi, juru tulis Sultan Morroco, Abu Enan. Karya itu diberi judul Tuhfah Al-Nuzzar fi Ghara’ib Al Amsar wa Ajaib Al-Asfar (Persembahan Seorang Pengamat tentang Kota-kota Asing dan Perjalanan yang Mengagumkan). Karya ini telah menjadi perhatian berbagai kalangan di Eropa sejak diterjemahkan ke berbagai bahasa seperti Perancis, Inggris dan Jerman.
Kepergian pertama Ibnu Batutah ketika beliau menunaikan ibadah haji pada usia kurang dari 21 thn. Menurut catatan sejarah, kepergian itu tepat pada 14 Jun 1325M. Beliau menyeberangi Tunisia dan hampir seluruh perjalanannya ditempuh dengan berjalan kaki. Beliau tiba di Alexandria pada 15 April 1326 dan mendapat bantuan dari sultan Mesir berupa uang dan hadiah untuk bekal menuju Tanah Suci.
Satu kesan menarik ketika beliau tiba di pantai Mesir bagian utara. Menurutnya, Alexandria adalah sebuah pelabuhan yang berkembang dan merupakan pusat perdagangan serta pusat angkatan laut di daerah Laut Tengah (Mediterranean) bagian timur. Di Negeri Seribu Menara ini, beliau menerima hadiah dan uang dari sultan Mesir. Perjalanan ke Makkah dilanjutkan melalui Kairo dan Aidhab, pelabuhan penting di Laut Merah dekat Aden.
Beliau kemudian kembali ke Kairo dan melanjutkan perjalanan ke Makkah melalui Gaza, Jerusalem, Hamamah, Aleppo dan Damaskus di Syria. Beliau tiba di Makkah pada Oktober 1926. Selama di Makkah, Ibnu Batutah bertemu dengan jamaah dari berbagai negeri. Pertemuan inilah yang mendorong semangat beliau mengenal langsung negeri-negeri asal jamaah haji. Lalu beliau membatalkan kepulangannya dan memulai pengembaraan menjelajahi dunia.
Mulai dengan menyeberangi gurun pasir Arabia menuju Iraq dan Iran, beliau kemudian kembali ke Damaskus dan melanjutkannya ke Mosul, India. Setelah itu beliau menunaikan ibadah haji untuk kedua kalinya ke Makkah dan menetap di Kota Suci itu selama tiga tahun (1328-1330M). Puas menetap di Makkah, beliau terus melanjutkan pengembaraan ke Aden dan belayar ke Somalia, pantai Afrika Timur, termasuk Ziela dan Mambasa. Kembali ke Aden, lalu ke Oman, Hormuz di Teluk Persia dan Pulau Dahrain. Beliau sempat mampir sebentar di Makkah pada 1332, lalu menyeberangi Laut Merah, menyusuri Nubia, Nil Hulu, Kairo, Syria dan tiba di Lhadhiqiya. Beliau kemudian menggunakan sebuah kapal Genoa, belayar ke Alaya di pantai selatan Asia Kecil.
Setelah melakukan perjalanan laut, pada 1333 Ibnu Batutah melanjutkan pengembaraan lewat darat. Dilaluinya Rusia Selatan hingga sampai ke istana Sultan Muhammad Uzbeg Khan yang ada di tepi Sungai Wolga. Kemudian diteruskan penjelajahan hingga ke Siberia. Awalnya beliau berniat menuju Kutub Utara, namun dibatalkan kerana dinginnya cuaca daerah “Tanah Gelap”, sebutan wilayah yang tak pernah ada sinar matahari.
Ibnu Batutah mengunjungi Kaisar Byzantium, Audronicas II dan mendapat perlakuan baik dari Kaisar. Dihadiahkan kuda, pelana dan payung.
BATTUTA_6.47307Perjalanan darat dilanjutkan menuju Persia Utara hingga Afghanistan dan beristirahat di Kabul. Pengembaraan berhenti sementara ketika Ibnu Batutah sampai di India dan bertemu dengan Sultan Delhi, Muhammad bin Tuqluq. Di kesultanan ini, Ibnu Batutah diangkat menjadi hakim oleh sultan dan tinggal di negeri ini selama delapan tahun.
Ketika menuju kawasan Cambay di India, beliau telah diserang sekelompok penyamun dekat Aligarh dan ditawan. Berkat permohonan seseorang, beliau selamat dari hukuman mati dan dilepaskan. Sebelum melanjutkan perjalanan, beliau diminta Sultan Delhi untuk menghadap. Sultan akhirnya memutuskan Ibnu Batutah menjadi duta besar kepada maharaja Cina.
Dalam kunjungannya ke Cina, tercatat kekaguman Ibnu Batutah terhadap kekuatan armada besar yang dibangun mereka. Beliau beruntung mendapat kesempatan menikmati perahu pesiar milik maharaja menuju Peking. Kembali dari Cina, Ibnu Batutah mengunjungi India, Oman, Persia, Iraq dan Damaskus. Kemudian beliau kembali ke Makkah menunaikan ibadah haji untuk kali keempat pada 1348M. Sekembalinya dari haji, beliau menyusuri Jerusalem, Gaza, Kairo dan Tunis. Dengan menumpang perahu dari Tunis, beliau menuju Morroco lewat Dardinia dan tiba di Fez, ibu kota Morroco pada 8 November 1349M. Sejak itu beliau menetap hinga akhir hayat pada 1377M. Seluruh pengembaraan beliau ke negara Islam dan non-Islam berlangsung selama 24 tahun.
Satu catatan Ibnu Batutah, dalam perjalanan laut menuju Cina, beliau pernah mampir di wilayah Samudera Pasai (kini Aceh) yang menurut penilaian beliau “negeri nan hijau dan subur”, “rakyat dan alamnya indah dan menawan”, “negeri yang menghijau dan kota pelabuhannya besar dan indah”. Dalam versi lainnya, beliau menulis pulau Sumatra sebagai “Pulau Jawa yang menghijau”.
Kedatangan Ibnu Batutah disambut Amir (panglima) Daulasah, Qadi Syarif Amir Sayyir Al-Syirazi, Tajuddin Al-Asbahani dan beberapa ahli fiqh atas perintah Sultan Mahmud Malik Zahir (1326-1345). Pada pandangan Ibnu Batutah, Sultan Mahmud merupakan penganut mazhab Syafi’i yang giat menyelenggarakan pengajian, perbahasan dan muzakarah tentang Islam. Kata beliau “Sultan sangat rendah hati dan berangkat ke masjid untuk sholat Jum’at dengan berjalan kaki. Selesai sholat, Sultan dan rombongan biasa berkeliling kota melihat keadaan rakyatnya”.
Beliau juga melihat Samudera Pasai saat itu merupakan pusat studi Islam. Penilaiannya itu wajar karena sejarah berdirinya kerajaan Samudera Pasai juga merupakan kerajaan Islam pertama di Nusantara. Kerajaan Samudera Pasai telah didirikan oleh Sultan Malikus Shaleh (W 1297), yang sekaligus sebagai sultan (pemimpin) pertama negeri itu.
Beliau berada di Samudera Pasai selama 15 hari. Sempat mengunjungi pedalaman Sumatra yang masih dihuni masyarakat non-Muslim. Di situ juga beliau menyaksikan beberapa perilaku masyarakat yang mengerikan, bunuh diri massal yang dilakukan hamba ketika pemimpinnya mati.
Subhanallah.
sumber: Encyclopedia Tokoh Islam

Minggu, 28 November 2010

Konsep Dasar Pemrogaman Java/Basic Concept of the Java programming

Pemrograman dengan Java

Apakah Java?

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

Platform Independent

Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Source code program Java sendiri tidak perlu dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class. Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter. Proses pengeksekusian program Java dapat dilukiskan seperti di Gambar 1. Dengan cara ini, sebuah program Java yang telah dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.
Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK) yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah memiliki JVM sendiri.

Library

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

OO

Java adalah bahasa pemrograman berorientasi objek. Pemrograman berorientasi objek secara gamblang adalah teknik untuk mengorganisir program dan dapat dilakukan dengan hampir semua bahasa pemrograman. Namun Java sendiri telah mengimplementasikan berbagai fasilitas agar seorang programer dapat mengoptimalkan teknik pemrograman berorientasi objek.
Sedikit perbandingan tambahan dengan bahasa C dan C++, Java banyak mewarisi konsep orientasi objek dari C++ namun dengan menghilangkan aspek-aspek kerumitan dalam bahasa C++ tanpa mengurangi kekuatannya. Hal ini mempermudah programer pemula untuk mempelajari Java namun mengurangi keleluasaan programer berpengalaman dalam mengutak-atik sebuah program. Di balik kemudahan yang ditawarkan Java, luasnya fasilitas library Java sendiri membuat seorang programer membutuhkan waktu yang tidak singkat untuk dapat menguasai penggunaan library-library tersebut.

Memulai Pemrograman Java

Untuk membuat program Java, seperti telah disebutkan sebelumnya, Anda membutuhkan JDK. Proses instalasi JDK tersebut sangat mudah dan tidak membutuhkan pengetahuan tertentu. Namun untuk menggunakannya Anda perlu melakukan beberapa penyesuaian dengan sistem operasi Anda. Umumnya yang perlu Anda lakukan adalah memasukkan path ke direktori JDK Anda ke setting path pada sistem operasi Anda. Misalkan direktori JDK Anda adalah C:\jdk1.4 maka pada Windows 98 Anda cukup menambahkan baris perintah SET PATH=C:\jdk1.4\bin pada file autoexec.bat Anda. Untuk Windows NT/2000/XP Anda cukup menambahkan direktori C:\jdk1.4\bin pada variabel path di System Environment. Caranya: klik kanan ikon My Computer, pilih Properties. Kemudian pilih tab Advanced. Lalu klik tombol Environment Variables, cari variabel path, kemudian tambahkan path direktori JDK Anda ke dalam variabel tersebut. Untuk Linux, tambahkan baris perintah SET CLASSPATH=(direktori jdk Anda) ke file profile Anda. Untuk mencoba JDK, ketikkan perintah java dan javac pada shell prompt (atau DOS Command Prompt). Jika perintah tersebut sudah dikenali maka program java atau javac akan menampilkan sintaks penggunaan. Untuk kemudahan dan berbagai fasilitas tambahan Anda dapat menggunakan Integrated Development Environment (IDE) untuk bahasa Java seperti Visual Café dari Symantec atau JBuilder dari Borland.
Urutan langkah-langkah yang harus Anda lakukan untuk membuat sebuah program Java sederhana adalah:
  1. Membuat source code program dengan editor teks apapun. Ingat, file tersebut harus berekstensi .java dan case sensitive.
  2. Mengkompile source code dengan perintah javac. Misalnya: javac HelloWorld.java. Jika berhasil, hasilnya adalah file bytecode berakhiran .class.
  3. Mengeksekusi bytecode dengan perintah java. Parameter dari perintah ini adalah nama file hasil kompilasi tanpa ekstensi .class. Contoh: java HelloWorld.

Source Code

Berikut kode untuk HelloWorld.java:
public class HelloWorld
{
    public static void main(String[] args) 
    {
        System.out.println("Apa Kabar Dunia?");
    }
}
Dan ini sebuah contoh lain, yaitu applet sederhana untuk menampilkan teks di applet. Sebutlah file ini bernama HelloWorldApplet.java:
import java.awt.Graphics;

public class HelloWorldApplet extends java.applet.Applet
{
    public void paint(Graphics g) 
    {
        g.drawString("Apa Kabar Dunia?", 5, 25);
    }
}
Secara gamblang dapat diperhatikan bahwa struktur kedua program sangat mirip, dan hanya berbeda dalam konteks eksekusi. Kedua program ini akan dibahas lebih lanjut setelah kita membahas cara mengkompile dan mengeksekusi program tersebut.
Perlu diingat bahwa bahasa Java bersifat case sensitive, sehingga Anda harus memperhatikan penggunaan huruf besar dan kecil. Selain itu penulisan source code program tidak harus memperhatikan bentuk tertentu, sehingga Anda bisa saja menuliskan semua baris source code tersebut dalam satu baris asal Anda tidak lupa membubuhkan tanda titik koma (;), atau menuliskan tiap kata dalam satu baris tersendiri. Namun dianjurkan Anda mengikuti layout seperti pada contoh agar program Anda mudah dibaca dan dimengerti.

Kompilasi

Setelah kedua file disave dengan nama HelloWorld.java dan HelloWorldApplet.java, kita akan mengkompile kedua program tersebut dengan perintah:
prompt> javac HelloWorld.java
prompt> javac HelloWorldApplet.java
Perlu diperhatikan bahwa direktori aktif Anda saat ini adalah direktori tempat Anda meletakkan file-file program tersebut. Anda tetap dapat mengkompile program Anda dari direktori berbeda dengan perintah:
prompt> javac (direktori program)/namafile.java
Setelah perintah ini selesai, Anda akan melihat bahwa telah tercipta dua buah file .class, yaitu bytecode hasil kompilasi source code kita.

Sintaks Program

Sekarang kita akan mencoba membahas elemen-elemen dalam kedua source code tersebut.
Pada awal Listing 2 kita menemukan perintah import. Pada tahap awal ini Anda perlu mengetahui bahwa pernyataan tersebut hanya berfungsi mempermudah penulisan metode atau dalam bahasa pemrograman lain disebut prosedur atau fungsi. Jadi Anda hanya perlu menulis Graphics sebagai pengganti java.awt.Graphics, karena kita telah mengimpor java.awt.Graphics.
Kemudian di masing-masing listing terdapat pernyataan public class. Pernyataan ini adalah pernyataan pembuka sebuah kelas. Kelas sendiri digunakan untuk menciptakan objek. Ingat bahwa Java berorientasi objek. Kata public di depannya berfungsi agar kelas tersebut dapat diakses oleh semua program lain. Untuk saat ini anggaplah objek sebagai suatu item yang dapat dimanipulasi oleh sebuah program. Dalam Listing 2 terdapat tambahan kata extends. Hal ini berarti kelas yang kita buat akan mewarisi sifat-sifat dari kelas yang kita extends. Dengan kata lain kita menjadikan kelas yang kita extends sebagai himpunan bagian dari kelas kita buat.
Kemudian kita menemukan baris pernyataan public static void main(String[] args) dan public void paint(Graphics g). Keduanya adalah pernyataan pembuka sebuah metode. Metode sendiri adalah kumpulan pernyataan untuk melakukan suatu tugas tertentu dalam kelas. Keduanya sebenarnya mempunyai fungsi yang sama namun dalam konteks yang berbeda. Dalam setiap aplikasi harus ada sebuah metode yang bernama main yang akan dieksekusi pertama kali saat program tersebut dieksekusi. Sementara dalam applet, metode yang pertama kali akan dieksekusi ketika applet diload adalah paint. Kata public di depannya mempunyai fungsi yang sama dengan kata public yang ada di depan baris permulaan kelas. Namun nantinya Anda akan menemukan juga bentuk lain seperti private dan protect yang akan kita bahas nanti.
Pada Listing 1 terdapat kata static pada pernyataan pembuka metode main. Hal ini berarti metode main tidak mengubah atau menggunakan objek yang diciptakan oleh kelas tersebut, sehingga dapat dikatakan berdiri sendiri dan tidak terikat dengan objek. Dalam metode main dalam aplikasi, parameternya adalah selalu String[] args, di mana args hanyalah sebuah nama dari objek array dari String. Array ini nantinya akan berisi parameter-parameter yang diberikan user sebagai argumen command line. Sementara Anda tidak perlu mengerti mengenai parameter tersebut, cukup diingat bahwa bentuk metode main harus selalu demikian.
Kemudian di dalam kedua metode pada kedua listing tersebut, kita menemukan sebuah pernyataan. Anda tentu dapat saja meletakkan lebih dari satu pernyataan dalam sebuah metode. Setiap pernyataan dalam sebuah metode dipisahkan oleh titik koma dan akan dieksekusi satu persatu. Kedua pernyataan pada listing ternyata memanggil sebuah metode lain yaitu metode println dan paint. Tentunya dapat Anda perhatikan bahwa untuk memanggil sebuah metode diperlukan tiga komponen yaitu:
  1. Objek yang ingin kita pakai. Dalam hal ini objek System.out dan Graphics g.
  2. Nama metode yang ingin kita pakai. Dalam hal ini println dan paint.
  3. Sepasang tanda kurung yang berisi informasi tambahan yang diperlukan oleh metode yang dipanggil, yaitu parameter.
Dalam Listing 1, pernyataan System.out.println("Apa Kabar Dunia?"); berarti carilah objek out dalam kelas System kemudian panggil metode println dari objek out dengan parameter berupa string "Apa Kabar Dunia?". Sedang dalam Listing 2, pernyataan g.drawString("Apa Kabar Dunia?", 5, 25); berarti carilah objek g kemudian panggil metode drawString pada objek g dengan parameter "Apa Kabar Dunia?”, 5, 25);.

Eksekusi

Setelah selesai membahas sintaks dasar Java dalam kedua listing, selanjutnya kita akan mencoba mengeksekusi kedua program ini. Untuk program pertama yang berupa aplikasi biasa, kita tinggal mengetikkan perintah java HelloWorld pada prompt dan pesan Apa Kabar Dunia? akan tampil di layar (atau mungkin di tempat lain, bergantung sistem operasi Anda). Sedangkan untuk applet kita mesti membuat sebuah file HTML sebagai pembungkus—atau pemanggilnya. Berikut diberikan contoh file HTML untuk membungkus applet yang kita buat.
<HTML>
  <HEAD>
    <TITLE>Coba Applet</TITLE>
  </HEAD>
  <BODY>
    <APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>
    </APPLET>
  </BODY>
</HTML>
Beri nama helloword.html dan simpanlah di direktori yang sama dengan lokasi file-file .java dan .class sebelumnya. Untuk mengeksekusi applet kita cukup membuka file HTML tersebut di browser yang Java-enabled atau mengetikkan perintah appletviewer namafile.html di prompt.

Penutup

Untuk saat ini Anda telah mempunyai gambaran tentang bagaimana proses pembuatan program Java secara sederhana dalam bentuk aplikasi biasa atau applet. Anda juga dapat mencoba mengembangkan program sederhana tersebut sesuai dengan keinginan Anda berdasarkan hal-hal yang sudah Anda ketahui. Konsep dasar yang sudah Anda dapatkan akan dikembangkan lebih lanjut dalam topik-topik tutorial selanjutnya. Selamat mencoba!