Jumat, 30 Oktober 2009

SEJARAH PERKEMBANGAN WML dan JAVA

J2ME (JAVA 2 MOBILE EDITION)
Pada tahun 1991, sekelompok insinyur SUN yang dipimpin Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat consumer seperti cable Tv box. Karena perangkat itu tidak mempunyai banyak memori, bahasa harus berukuran kecil dan menghasilkan kode yang liat, maka bahasa harus bebas dari arsitektur manapun. Proyek ini diberi nama kode Green.
Kebutuhan kecil, liat dan kode netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portable yang menghasilkan kode antara untuk mesin hipotesis.
Karena orang-orang di proyek Green berbasis C++ bukan pascal maka kebanyakan sintaks di ambil dari C++, serta mengadopsi orientasi objek bukan procedural. Produk pertama proyek Green adalah ?*7?, sebuah kendali jauh yang sangat cerdas.
Pada tahun 1995, Netscape memutuskan membuat browser yang dilengkapi dengan Java. Setelah itu diikuti IBM, Symantec, Inspire, bahkan Microsoft. Bahasa Java merupakan karya Sun Microsystem Inc. Rilis resmi dilakukan pada Nopember 1995. Maskot Java adalah Duke. Dua bulan berikutnya Netscape menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun.
Pada tahun 1996, Sun mengeluarkan JSDK (Java Software Development Kit), kemudian secara berturut-turut:

• Versi 1.02
• Versi 1.1
• Versi 1.2
• Versi 1.3
• Versi 1.4
Java telah berkembang dari semula ditujukan untuk pemrograman applet yang berjalan di web browser menjadi bahasa pemrograman kelas dunia untuk pengembangan aneka ragam aplikasi komputer yang berjalan di bermacam-macam perangkat mulai dari handheld devices seperti, handphone, PDA (Personal Digital Assistant) sampai aplikasi tersebar skala enterprise di beragam komputer server. Java adalah bahasa berorientasi objek yang dapat digunakan untuk pengembangan aplikasi mandiri, aplikasi berbasis internet maupun intranet, serta aplikasi untuk perangkatperangkat cerdas yang dapat berkomunikasi lewat internet atau jaringan komunikasi.
Pengenalan Java
Dalam Java ada 2 jenis program berbeda, yaitu aplikasi dan applet. Keduanya merupakan bagian dari execute, dimana execute merupakan salah satu fase kelima dalam siklus program Java. Aplikasi adalah program yang biasanya disimpan dan di eksekusi dari komputer lokal. Applet adalah program yang biasanya disimpan pada komputer yang jauh,yang dikoneksikan pemakai lewat web browser. Komputer jauh menjalakan web server yang memberi layanan terhadap permintaan web browser.
Kebanyakan bahasa pemrograman modern berdiri di atas pustaka-pustaka kelas yang telah ada untuk mendukung fungsionalitas bahasanya. Pada bahasa Java, kelompok-kelompok kelas yang berkaitan erat dimasukkan dalam satu paket, bervariasi sesuai edisi Java.
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkungan: Internet, intranets, consumer electronic products, dan computer applications. Untuk beragam aplikasi yang dibuat dengan bahasa Java, Java dipaketkan dalam edisi-edisi berikut:
•Java 2 Standar Edition (J2SE), J2SE menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman, dan cross-platform. Edisi ini mendukung konektivitas basis data, rancangan user interface, masukkan/ keluaran (input/ output), dan pemrograman jaringan (network programming), dan termasuk sebagai paket-paket dasar bahasa Java.
•Java 2 Enterpise Edition (J2EE), J2EE menyediakan tempat untuk membangun dan menjalankan multitier enterprise editions. J2EE berisi paket-paket di J2SE ditambah paket-paket untuk mendukung pengembangan Enterprise JavaBeans, Java Servlets, JavaServer Pages, XML, dan kendali transaksi yang fleksibel.
•Java 2 Micro Edition (J2ME), J2ME selain menyedikan bahasa Java yang sama, unggul dalam portabilitas (kemampuan dapat dijalankan dimanapun), safe network delivery, seperti J2SE dan J2EE. Aplikasi-aplikasi dapat diskalakan (dimampukan) agar dapat bekerja dengan J2SE dan J2EE. J2ME adalah untuk beragam consumer electronic product, seperti pager, smart card, cell phone, handheld PDA, dan set-top box.
Ada 3 kombinasi kunci yang membuat Java menjadi teknologi yang secara fundamental berbeda dari yang lain, yang ada saat ini. Pertama, semua orang dapat menggunakan applet yang kecil, aman, dinamik, lintas-platform, aktif, dan siap dijalankan di jaringan sejak awal. Kedua, Java adalah bahasa pemrograman yang ampuh, memiliki kekuatan desain berorientasi objek dengan sintaks yang sederhana dan mudah dikenal. Ketiga, Java adalah kumpulan class object yang ampuh, yang melayani programmer dengan uraian yang jelas untuk banyak fungsi sistem umum, seperti pembuatan window, penggunaan jaringan, dan input/ output.
Beberapa Fitur Penting Dalam Bahasa Java
• Bahasa Sederhana
Java dirancang untuk mudah dipelajari dan digunakan dengan secara efektif. Java tidak mendukung fitur-fitur rumit seperti:

o Explicit pointer manipulation
o Implicit type casting

o Structures atau union
o Operator overloading
o Templates
o Header files
o Multiple inheritance
Rancangan bahasa Java telah berdasar teknologi yang telah terbukti dan dikembangkan di bahasa-bahasa pemrograman lainnya.
• Bahasa berororientasi objek
Java bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali tidak kompatibel dengan semuanya. Model objek Java adalah sederhana dan mudah dikembangkan, namun sejalan dengan itu, nilangan dan tipe data sederhana lain dianggap sebagai non-objek berkinerja tinggi.
OOP (object oriented programming) adalah cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program komputer sebagai sekelompok objek yang saling berinteraksi. Objek-objek ini ada secara secara independent yang mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerinthakan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu.
• Bahasa statically typed
Semua objek dideklarasikan terlebih dahulu sebelum digunakan. Melalui fitur ini kode program lebih dapat dioptmasi untuk menghasilkan program berkinerja tinggi.
• Bahasa dikompilasi
Sebelum menjalankan program di bahasa Java, program dikompilasi menggunakan Java Compiler. Kompilais akan menghasilkan file “bytecode” yang serupa fungsinya dengan file kode mesin. Program “bytecode” yang dihasilkan dapat di eksekusi di sembarang Java Interpreter. Java Interpreter membaca file “bytecode” dan menterjemahkan perintah “bytecode” menjadi perintah-perintah bahasa mesin yang dapat di eksekusi mesin.
• Bahasa yang aman
Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari Untrusted Java Code.
o Bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java
o Class loader menangani pemuatan kelas Java ke runtime interpreter.
o Manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing.
Selain itu Java menyediakan beragam teknik pengaman, yaitu:
o Bahasa dirancang untuk mempersulit eksekusi kode perusak
o Program Java dikompilasi menajdi serangkaian bytecode.
o Java mempunyai pengamanan terhadap applet.
. Bahasa indpenden terhadap platform
Platform independence merupakan kemampuan program bekerja di sistem operasi atau sistem komputer berbeda. Bahasa Java adalah bahasa yang secara sempurna tidak bergantung platform.
. Bahasa multithreading
Thread adalah menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kakas untuk menulis program multithread, program mempunyai lebih dari 1 thread eksekusi pada saat yang sama sehingga memungkinkan program menagani beberapa tugas secara konkuren.
0. Bahasa yang didukung garbage collector
Artinya, program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkanalokasi dinamis.
0. Bahasa yang tegar
Java interpreter memeriksa semua akses sistem yang dilakukan. Program java tidak dapat menyebabkan crash terhadap sistem. Java mempunyai mekanisme exception handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar

WML (WIRELESS MARKUP LEGUAGE)
Seperti yang sudah kita ketahui WML suatu markup language yang merupakan pengganti dari HTML untuk media wireless. WML didasari dari XML (eXtensible Markup Language).
WML memiliki empat fungsi utama yaitu :
$ Presentasi teks dan layout, mencakup teks dan gambar
$ Metafora organisasi Deck/Card (seluruh informasi dalam WML di atur kedalam sekumpulan card dan deck)
$ Navigasi dan hubungan antar Card
$ Parameterisasi String dan manajemen status, seluruh deck WML bisa di parameter
WML dibutuhkan untuk menggantikan HTML pada media wireless adalah masalah kecilnya bandwidth pada jaringan wireless yang akan menyebabkan bottleneck yang hebat apabila tetap digunakan HTML untuk media wireless.
XML adalah suatu cara yang fleksibel untuk menciptakan suatu format informasi yang umum dan membagikan format dan data pada internet, intranet, dan sebagainya. Seperti layaknya HTML, XML juga merupakan markup language yang menggunakan simbol untuk menyatakan isi dari suatu halaman atau file. Tetapi HTML hanyalah menunjukkan bagaimana isi suatu Web Page (teks dan grafik) ditampilkan dan berinteraksi dengannya, sebagai contoh

pada HTML hanyalah menunjukkan bahwa mulainya suatu paragraf baru. Sedangakan WML menunjukkan isi dari suatu kalimat/data yang nantinya akan berguna untuk diolah atau ditampilkan, dan sebagai contohnya menunjukkan bahwa data berikut adalah suatu nomor telepon yang nantinya akan diolah oleh suatu program ataupun ditampilkan.
XML bersifat extensible (dapat diperluas), karena tidak seperti HTML, symbol markup dari XML dapat dibuat sendiri dan tidak terbatas. Sebab XML sebenarnya adalah penyederhanaan dari SGML (Standard Generalized Markup Language) yaitu suatu standar bagaimana untuk menciptakan dokumen terstruktur.

WML Browser
Seperti yang sudah kita ketahui pada setiap handphone terdapat WML browser mini,lalu bagaimana seseorang dapat megembangkan aplikasi WML apabila tidak memiliki handphone yang mendukup WAP atau memang sengaja menghindari masih mahalnya biaya penggunaan fasilitas WAP pada handphone apabila dibandingkan dengan internet biasa. Para developer WAP menggunakan program WML browser yang diinstall pada komputer, program ini akan mensimulasikan bagaimana suatu handphone WAP berinteraksi dengan WML file, bahkan kita bisa melakukannya secara offline.

SEJARAH DELPHI

Delphi
Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh Borland (sebelumnya dikenal sebagai Inprise). Bahasa Delphi, yang sebelumnya dikenal sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE.
Lingkungan pengembangan Delphi
Umumnya delphi lebih banyak digunakan untuk pengembangan aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan yang bersifat general-purpose ia juga mampu dan digunakan dalam berbagai jenis proyek pengembangan software. Ia juga yang dikenal sebagai salah satu yang membawa istilah RAD tool, kepanjangan dari Rapid Application Development, saat dirilis tahun 1995 untuk windows 16-bit. Delphi 2, dirilis setahun kemudian, mendukung lingkungan windows 32-bit, dan versi c++, C++Builder, dirilis beberapa tahun kemudian. Pada tahun 2001 sebuah versi linux yang dikenal sebagai Kylix tersedia. Dengan satu rilis baru setiap tahunnya, pada tahun 2002 dukungan untuk Linux (melalui Kylix dan CLX component library) ditambahkan dan tahun 2003 .NET mulai didukung dengan munculnya Delphi.Net (Delphi 8). Kini sudah keluar juga untuk versi .NET terbaru yaitu RAD Studio 2007 dan Turbo Delphi .NET dengan versi desktopnya yaitu Delphi 2007 for win 32 dan Turbo Delphi.
Chief Architect yang membidani Delphi, dan pendahulunya Turbo Pascal, adalah Anders Hejlsberg sampai kemudian ia pindah ke Microsoft tahun 1996 di mana ia sebagai chief designer C# dan termasuk orang kunci dalam perancangan Microsoft .Net Framework. Dukungan penuh untuk .Net ditambahkan pada Delphi 8 (dirilis pada bulan Desember 2003) dengan penampilan user interface (look and feel) mirip dengan Microsoft Visual Studio .NET.
Delphi 2005 (nama lain dari Delphi 9) mendukung code generation baik untuk win32 maupun .NET, dan seperti yang telah dikenal, fitur-fitur manipulasi data secara live dari database secara design-time. Ia juga membawa banyak pembaruan pada IDE secara signifikan.
Para penganjur delphi mengklaim dengan bahasa pemrograman Delphi, IDE dan component library (VCL/CLX) yang disediakan oleh vendor tunggal memungkinkan satu paket yang lebih konsisten dan mudah dikenali.
Produk delphi ini didistribusikan dalam beberapa rancangan: Personal, Professional, Enterprise (sebelumnya Client/Server) dan Architect.
Hal umum yang terkait dengan Delphi
Perbedaan fitur yang utama antara Delphi, Kylix dengan IDE-IDE yang lain adalah keberadaan bahasanya (Bahasa pemrograman delphi), VCL/CLX (Visual Component Library), Penekanan konektifitas database yang sangat baik, dan banyaknya komponen-komponen pihak ketiga yang mendukungnya.
Aspek penting yang perlu dicatat tentang Bahasa pemrograman Delphi termasuk:
  • Penanganan object sebagai reference/pointer secara transparan
  • Properti sebagai bagian dari bahasa tersebut; benar, sebagai getter dan setter (atau accessor and mutator), yang secara transparan mengenkapsulasi akses pada field-field anggota dalam kelas tersebut.
  • Property index dan Default yang menyediakan akses pada data kolektif
  • Pendelegasian (type safe method pointer) yang digunakan untuk memproses event yang dipicu oleh component
  • Pendelegasian implementasi interface pada Field ataupun property dari class.
  • Implementasi penanganan windows message dengan cara membuat method dalam class dengan nomer/nama dari windows message yang akan dihandle.
  • COM bersifat sebagai interface yang independen dengan implementasi class sebagai reference counted
  • Kompilasi yang dapat menghasilkan kode yang berjalan secara native x86 ataupun managed code pada arsitektur framework .NET
Meskipun tidak bersifat subsitutif penuh terhadap keseluruhan paket delphi, ada beberapa usaha yang dilakukan untuk membuat kompatibilitas bahasa ini menjadi lebih baik atu bahkan lebih buruk dengan membuat kode delphi yang tidak bisa dicapai oleh delphi ataupun kylix sendiri.
Produk-produk berikut bisa membuat kode delphi berjalan dalam alur yang tidak mungkin dilakukan oleh Delphi (seperti dukungan terhadap sistem operasi yang berbeda, distribusi yang gratis dan penggunaan untuk kebutuhan pendidikan, dan penyertaan kode dari kompilernya sendiri) yang menjadikan vendor bisa menjadi lebih independen. Produk-produk berikut ini umumnya digunakan untuk kebutuhan edukasi dan mengusahakan agar sisi aplikasi delphi yang berjalan pada server bisa berjalan pada sistem operasi alternatif selain dari yang didukung oleh delphi/kylix, umumnya produk tersebut sudah mensupport linux sebelum kylix muncul.
  • Bloodshed Dev-Pascal Salah satu IDE Win32 yang mensupport GNU Pascal maupun Free Pascal
  • Free Pascal Kompiler berbasis commandline dengan dialek yang sangat dekat dengan Turbo Pascal dan Delphi. Fitur yang terdapat pada Delphi versi 4 ke atas hanya diimplementasikan pada seri versi 1.9.x (akan menjadi seri 2.0.x). Versi beta ini sudah bisa digunakan secara baik. Beroperasi umumnya pada sistem operasi berbasis x86. Mendukung Linux, Mac OS dan Mac OS X (termasuk implementasi Xcode) pada keluarga PowerPC, dan Linux berbasis AMD64. SPARC and arsitektur Mesin RISC Acorn (ARM) masih sedang dikerjakan dan belum siap dideploy.
  • GNU Pascal secara terpisah didistribusikan sebagai bagian dari GNU Compiler Collection dan tidak mendukung dialek pascal yang diimplementasikan borland
  • InnerFuse merupakan interpreter bahasa Delphi yang dapat diintegrasikan dengan aplikasi Delphi
  • Lazarus merupakan satu upaya untuk membangun sebuah RAD berbasis Free Pascal.