On Thursday 27 October 2005 03:24 pm, Suwanto Afiadi wrote:
> Assalamulaikum wa rahmatullahi wa barakatuh,
>         Dear teman-temanku,setelah mempelajari C/C++ yang ternyata
> sangat flexible terutama untuk C++ terhadap mungkin  untuk berbagai
> domain problem yang ada (tergantung kita bagaimana membuat
> algoritmanya), saya jadi ingin untuk menerapkan ke suatu aplikasi,
> dimilis ini gencar sekali dibahas tentang Qt.jujur  saja saya belum
> mencari informasi sebuahpun tentang Qt di Internet.Pertanyaan saya
> adalah apakah Qt itu bisa disamakan dengan J2SE ???, bagaimana dengan
> konsep EJB, dan servlet di C++ ??? adakah frameworknya untuk C++ ???
> Apakah Qt itu hanya sekedar GUI -nya C++ like Swing in Java ???.Terus
> terang saya berpendapat 2 platform inilah yang paling mungkin saya
> dalami saat ini mengingat kemampuannya yang multiplatform,OO dan tentu
> saja free (dalam hal ini saya tidak mengesampingkan sama sekali C#).
>
>
> atas waktu dan jawabannya saya ucapkan terima kasih.
> Best regards,
>
> suwanto

Saya akan coba jelaskan sebisa saya...

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...


-- 
Danny Kurniawan
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM/E/IT d+() s+:+ a- C++>+++$ UL+++(++)>++++ P!(+++) L+++>++++>$ E-- W++>$
N o-- K- w--(+++) O++@ M@ V? PS PE-@ Y+ PGP@ t++ 5+@ X+++(++) R tv+ b
+++(++) DI? D++@ G+>++ e++ h- r++ y z- 
------END GEEK CODE BLOCK------

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

Kirim email ke