Danny Kurniawan wrote:

Qt itu merupakan Toolkit, dan bukan seperti Java yang sudah berupa framework...

Saya akan mulai penjelasan saya dari latar belakang Qt dan apa itu Toolkit...

Qt dibuat oleh sebuah perusahaan yang berada di Swedia bernama Trolltech, pertama kali Qt dibuat karena para pendiri Qt, yang waktu itu sekelompok programmer muda ingin membuat sistem informasi rumah sakit yang mendukung banyak platform, yang waktu itu platform yang ada di rumah sakit tersebut menggunakan UNIX dan Macintosh... nah mereka mencoba untuk mencari toolkit yang multiplatform dan mudah untuk digunakan... tetapi karena tidak adanya toolkit yang mereka inginkan, yang ada hanyalah beberapa toolkit di UNIX system yang tidak terlalu bagus dan komersial, serta harganya tidak murah... sedangkan untuk versi Macintosh, terpaksa beberapa bagian harus di-coding ulang untuk menyesuaikan dengan platform Macintosh... nah dari situlah mereka akhirnya memutuskan untuk membuat toolkit yang multiplatform...

Toolkit... istilah ini tentunya sangat asing bagi yang sudah terbiasa di lingkungan PC apalagi di platform Windows... untuk menjelaskan arti toolkit, saya akan memulainya dari konsep dasar GUI di UNIX system dan Windows...
Sebagai gambaran perbedaan GUI di UNIX dan Windows:

 +-----------------+        +-----------------+
 | GUI Application |        | GUI Application |
 +-----------------+        +-----------------+
 |     Toolkit     |        |     WinAPI      |
 +-----------------+        |       &         |
 | X Window System |        |   GUI System    |
 +-----------------+        +-----------------|
 |   OS Kernel     |        |    OS Kernel    |
 +-----------------+        +-----------------+
     UNIX System               Windows System

Nah... kalo di Windows, sebuah aplikasi GUI cukup berhubungan dengan WinAPI baik mulai berkomunikasi dengan kernel sampai dengan membuat control seperti Button, Window, Dialog, dsb. Sedangkan untuk UNIX, untuk bisa membuat control (UNIX menggunakan istilah Widget untuk Control seperti Button, ComboBox, dll.) maka ada 2 cara: 1. Membuat sendiri Button, ComboBox, dll. yaitu dengan menggambar sendiri melalui API ke X-Window System, karena pada dasarnya X-Window System adalah sistem yang menyediakan akses ke Graphic Card dan hanya menyediakan API untuk penggambaran ke layar saja. 2. Menggunakan library untuk menggambar Button, ComboBox, dll. daripada menggambar sendiri... nah library untuk menggambar User Interface seperti Button, ComboBox, dll. inilah yang disebut dengan istilah Toolkit...

Ada banyak Toolkit yang tersedia, kalo zaman dahulu, toolkit-toolkit yang populer seperti TWM, Tcl-Tk, dsb....

Nah kalo zaman sekarang sudah ada yang jauh lebih modern dan populer seperti GTK dan Qt...

GTK awalnya dibuat hanya sebagai library penunjang GIMP, sebuah program manipulasi gambar... namun kemudian banyak dipakai termasuk digunakan dalam Desktop Environment GNOME...
Sedangkan Qt kemudian digunakan dalam Desktop Environment KDE...

Nah... saya akan sedikit menjelaskan Desktop dalam UNIX System... Sebenarnya berbeda dengan Windows yang memiliki Desktop yang terintegrasi dengan OS, UNIX tidak memiliki Desktop sama sekali... dan sebenarnya Desktop seperti GNOME dan KDE adalah sebuah aplikasi biasa yang dapat dijalankan dan di-kill seperti layaknya aplikasi lainnya, sebenarnya lebih cocok disebut sebagai kumpulan aplikasi - karena untuk dapat mewujudkan fungsinya sebagai Desktop, GNOME & KDE terdiri atas banyak aplikasi/program, seperti "gnome-desktop" dan "gnome-panel" di GNOME atau "kdesktop", "kicker", dan "kwin" pada KDE....

Sekarang saya akan mencoba membandingkannya dengan Java...

Berbeda dengan konsep Java, Toolkit scopenya lebih kecil dibandingkan Java, berikut saya gambarkan model Java:

 +-------------------------------+
 |       Java Application        |
 +-------------------------------+
 | Java Framework:               |
 |-------+------+--------+-------|
 | Swing | JDBC | Applet | dst.. |
 +-------------------------------+
 |      Java Virtual Machine     |
 +------------+----------+       |
 | Windows:   | UNIX:    |       |
| WinAPI | | | | & | X-Window | |
 | GUI System |          |       |
 +------------+----------+-------+
 |           OS Kernel           |
 +-------------------------------+

Jadi sebenarnya Java lebih kompleks, dan banyak sekali yang sudah tersedia dalam Java yang memungkinkan Java merupakan sebuah platform dimana aplikasi hanya perlu berdiri di atas Java Virtual Machine, dan tidak code langsung ke OS ataupun ke WinAPI/X-Window system... karena itulah Java bisa disebut juga Platform...

Sedangkan kelengkapan Java, dari mulai GUI (Swing), Database (JDBC), dsb... membuat Java disebut sebagai Framework... karena anda dituntut mengembangkan aplikasi dalam lingkungan Java secara keseluruhan...

Nah dari sini saya harap cukup menjelaskan perbedaan Java dan Qt...

Sehingga mengenai Servlet, EJB, dsb... tentu saja hal tersebut tidak tersedia di Qt, karena Qt benar2 Native Programming Language dengan C++ sebagai bahasanya... mungkin saudara Afiandi bisa mencari library dalam C++ yang berkaitan dengan Enterprise Development Tool apabila mengharapkan konsep seperti Servlet, EJB, dsb...

Lalu mengapa Qt dan bukan Java??? nah, seperti yang saya gambarkan diatas, Java merupakan Platform yang berdiri diatas Platform lain (maksudnya OS)... sehingga dari segi speed performance sangat jauh perbedaan antara aplikasi Java dan Qt... (saya kira kurang pantas menggunakan Qt, sebab Qt hanyalah sebuah toolkit, sehingga seharusnya antara aplikasi Java dan C++)

Namun boleh saya bilang Qt cukup berkembang, dan sepertinya (saya tidak dapat memprediksi) Qt mulai perlahan-lahan bisa disebut Framework... karena cukup lengkap fasilitas yang disediakan Qt untuk ukuran sebuah Toolkit... sebab Qt juga memiliki class2 yang berkaitan dengan level OS seperti Thread, Mutex, Semaphore, sampai dengan class2 utility seperti Map, String, dsb... sehingga cukup bagi seorang developer untuk tidak menggantungkan diri pada class2 seperti STL... selain itu Qt juga telah memiliki Database access, yang memungkinkan developer untuk membuat aplikasi Database dengan Qt....

Semoga berguna...



Assalamualaikum wa rahmatullahi wa barakatuh,
Makasih atas penjelasannya mas Danny yang cukup komplit dan sangat berguna bagi saya, dan penjelasan teman-teman lainnya.Saya akan mulai aja download Qt-nya.

Best regards,

suwanto



--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke