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