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