MySQL Workbench, Visual Database Design

Nih ada mainan baru (baru tau maksudnya) dari MySQL yaitu MySQL Workbench. Yang pada malas buat table dengan relasinya di consolenya mysql pakai ini saja. Pertama lihat aku kira MySQL Workbench ini bayar eh ternyata ada versi yang OpenSource, silahkan ke TKP kalau mau coba.

Fitur yang sangat top menurutku adalah visual database designernya. Jadi kita udah gak perlu create table manual pakai konsole, ya memang kita bisa pakai PHPMyAdmin atau MySQL Query browser untuk buat table, tapi apabila table-table kita tersebut terelasi alias relasional ? ya sedikti banyak pasti agak repot. MySQL Workbench ini juga menyediakan fitur Forward enginer sehingga kita dapat mendesain table menggunakan visual desainer kemudian kita deploy di database sebenarnya atau bisa pakai fitur Reserve enginer yang berarti table-tabel yang sudah data di database dapat kita lihat strukturnya pada visual desainer.
MySQL Workbench ini tersedia untuk windows,linux dan mac os. Untuk windows dibutuhkan .n(y)et framework versi 2.0 yang kalau gak salah sudah bundle dengan windows vista dan apabila menggunakan linux tersedia beberapa paket instalasi antara lain .deb dan .rpm.
Aku yakin tool ini bisa sangat membantu untuk mendesain erd (entity relational diagram) yang biasanya di permasalahkan di laporan skripsi anak jurusan komputer.

Nah silahkan download dan coba, saya sendiri belum banyak explorasi mengenai tool ini, makanya mari download, explore dan share!!!

Hello Qt

Ini contoh aplikasi super sederhana menggunakan Qt GUI framework. Contoh ini aku ambil dari buku “C++ GUI Designer with Qt 4, Second Edition”, buku ini bisa di beli dari amazon atau silahkan cek di salah satu link bagian “Tutorial” di blog ini.

Untuk memulai membuat aplikasi Qt terlebih dahulu kita harus menyiapkan Qt SDK sesuai dengan versi Sistem Operasi yang kita gunakan, lihat posting sebelumnya agar lebih jelas. Selain itu kita juga perlu menginstall IDE yang sesuai, kali ini dan seterusnya saya akan gunakan NetBeans IDE C++ dan kebetulan NetBeans versi 6.7 sudah support C++ Project untuk Qt.
Seperti biasa sebelum memulai mengetik program kita harus membuat project terlebih dahulu, File->New Project kemudian pilih C++ -> C++ Qt Application, isikan nama project dan lokasinya apabila sudah klik finish. NetBeans akan membuatkan beberapa file termasuk file *.pro yang menjadi standar project untuk aplikasi Qt.
Secara default sebuah file *.cpp akan tersedia dengan nama main.cpp apabila belum berubah maka isinya akan seperti ini

#include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

return app.exec();
}

Kode diatas merupakan program paling sederhana dari aplikasi Qt dan tidak menampilkan apa-apa. Ada sedikit perbedaan dibagian #include apabila kita bandingkan dengan source yang ada pada buku “C++ GUI Designer” tetapi hal itu tidak menjadi masalah asalkan kita tahu konfigurasi folder-folder yang diikutkan sebagai include pada kompiler C++.
Rubah source code diatas menjadi

#include
#include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

QLabel *label = new QLabel(“Hello Qt!”);
label->show();

return app.exec();
}

Apabila terjadi error (tanda garis merah dibawah beberapa kode) kemungkinan besar adalah NetBeans belum mengenali beberapa Kelas terutama kelas QLabel. Apabila hal itu terjadi maka sedikit konfigurasi dibutuhkan untuk menangani error tersebut.Agar NetBeans mengenali folder yang berisi file-file header C++ milik Qt. Caranya pilih Tool -> Option, pilih icon C/C++ pada bagian atas kemudian pilih Tab “Code Assistance” dan tambahkan alamat direktori tempat file-file header milik Qt berada. Direktori tersebut berada pada [qtsdk_instalation]/include.

Sebenarnya NetBeans telah secara otomatis mencari direktori tempat instalasi Qt SDK berada, jadi pada umumnya konfigurasi diatas tidak diperlukan. Setelah tidak ada error yang muncul kita bisa langsung menjalankannya. Tekan F6 untuk menjalankan program.

Program diatas menampilkan sebuah label yang berisi text “Hello Qt”. Perhatikan kode diatas, cukup mudah bukan ? walaupun memang bahasa C++ lebih rumit dari pada Java tetapi konsep yang digunakan pada Qt Framework sudah Full OOP yang hampir sama dengan Java walaupun kita juga harus benar-benar paham konsep yang digunakan pada bahasa C++.
Dokumentasi kelas-kelas pada Qt Framework bisa kita lihat dengan menjalankan program Qt Assistance. File executable untuk Qt Assistance berada di folder bin tepatnya [qtsdk_instalation]/bin/assistant.

Bersih-bersih file dengan fungsi find di linux

Ketika menggunakan Subversion saya pernah mengalami kesulitan membersihkan kode program. Kode program hasil checkout dari Subversion akan memiliki direktori khusus yaitu direktori .svn untuk identifikasi dan informasi tentang perubahan yang terjadi pada kode program yang nantinya akan dilaporkan ke server Subversion ketika Commit. Direktori tersebut ada pada setiap folder yang kita gunakan nah kalau dalam program kita terdiri dari beberapa puluh paket yang berarti beberapa puluh folder maka membersihkan direktori .svn ya jadi agak mumet.
Kalau di windows vista agak sedikit mudah dibagian kanan atas sudah tersedia search, tinggal kita tulis .svn maka seluruh file dan  direktori yang mempunyai nama .svn yang ada di current folder dan sub foldernya akan muncul. Kalau sudah begitu ya tinggal di delete beres. Nah kalau di linux gimana ?? Di linux lebih mudah dan lebih akurat (menurut saya lho) soalnya sudah support regular expression.
Salah satu fungsi yang mantab di linux untuk search adalah fungsi find (trik ini saya dapatkan dari mas ifnu). Ini contoh sederhananya :

jasoet@jasoet-pc ~ $ find -type d -name “.svn” -print

Fungsi find diatas akan mencari data berupa direktori yang mempunyai nama .svn serta akan menampilkannya di layar. Lho kok tau ?? option –type itu berarti tipe yang akan kita cari yaitu d yang berarti direktori kemudian option -name berarti  nama direktori yang akan kita cari adalah .svn. Sedangkan -print itu berarti kita bertujuan untuk melihat daftar file yang ditemukan.
Selain d tipe data yang bisa kita cari bisa bermacam-macam untuk lebih jelas lihat potongan manual dari find dibawah ini.
-type c
              File is of type c:
              b      block (buffered) special
              c      character (unbuffered) special
              d      directory
              p      named pipe (FIFO)
              f      regular file
              l      link
              s      socket

Sedangkan untuk nama kita bisa menggunakan string biasa atau regular expression alias regex. Untuk lebih tau regex, klik disini.
Setelah kita mendapatkan daftar file-file incaran maka waktunya menghapus file-file tersebut. Caranya dengan menambahkan | xargs rm -rvf. Contohnya

jasoet@jasoet-pc ~$ find -type f -name “*~” -print | xargs rm -rvf

Nah untuk lebih jelas tentang fungsi find di linux, silahkan baca manualnya

jasoet@jasoet-pc ~$ man find

Pidgin tidak konek ke Yahoo

Nah ini masalah yang beberapa hari lalu aku hadapi. Berhubung sekarang sudah berpindah dari windows ke Linux Mint maka sebagai pengganti Yahoo Messenger aku gunakan Pidgin. Pada awalnya Pidgin dapat berjalan mulus untuk konek ke Yahoo Messenger tapi tiba-tiba pidgin benar-benar tidak bisa konek ke YM padahal untuk konek ke gtalk dan protokol messenger lain bisa. Sempet kerepotan juga karena harus menggunakan meebo untuk chatting.

Akhirnya ketika sedang chating pakai meebo muncullah seorang teman saya yaitu echo sunedi. Ternyata Yahoo mengganti alamat servernya entah karena maintenance atau memang ganti seterusnya (penjelasan echo susah dimengerti soalnya, maklum lah…) sehingga harus ada konfigurasi khusus di pidgin agar tetap bisa konek.

Secara default server yahoo messenger di pidgin adalah scs.msg.yahoo.com diganti dengan cn.scs.msg.yahoo.com. Kita dapat mengganti alamat servernya lewat form modify account pada saat membuat/mengedit account yahoo messenger di pidgin. Hanya nama servernya saja yang perlu diganti sedangkan konfigurasi yang lain dibiarkan apa adanya. Oh iya terima kasih buat mas echo sunedi atas infromasinya.

Welcome NetBeans 6.7

NetBeans versi terbaru sudah rilis yaitu versi 6.7. Rilis NetBeans ini tepat pada tanggal yang telah di rencanakan yaitu tanggal 29 Juni 2009. NetBeans versi ini lebih stabil dibanding rilis awal dari NetBeans 6.5 dan pada versi ini NetBeans 6.7 dirasa relatif lebih ringan dibanding versi 6.5. Pada versi ini ada fitur yang dapat mengaktifkan/menonaktifkan modul secara mudah sehingga kita bisa mengatur NetBeans sesuai dengan kebutuhan kita saat ini.

Selain fitur diatas ada beberapa fitur lain termasuk satu fitur yang cukup digembar-gemborkan yaitu integrasi dengan project Kenai. Nah apa project Kenai ini ? Menurut sumber yang terpercaya 🙂 yaitu situsnya Sun, NetBeans.org dan tentu saja kenai.com. Project kenai ini bisa dibilang sebagai sourceforge++ atau googlecode++ karena didalamnya tidak hanya tersedia server Subversion tapi juga bug tracking,forum, download, milis, wiki dan bahkan ada chat room. Beberapa sumber malah mengatakan bahwa project kenai dapat jadi sosial networking untuk para developer Java. Untuk lebih jelas bisa lihat di project kenai overview.
NetBeans 6.7 ini juga sudah support framework Qt untuk C++ seperti pada postingan sebelumnya. Selain itu Maven support yang pada versi 6.5 harus download lewat plugin manager untuk versi 6.7 sudah bundle. Jadi sekarang kita bisa memilih untuk tetap pakai Ant untuk build sistemnya atau ganti ke Maven yang sedikit lebih canggih dan lebih membantu (tapi butuh koneksi internet yang lumayan 🙂 ). Kapan-kapan kita akan bahas tentang maven, tunggu saja.

Bersamaan dengan rilisnya versi 6.7 ini ditambahkan juga beberapa tutorial tentang penggunaan fitur-fitur baru pada NetBeans 6.7 silahkan cek sendiri di netbeans.org.
Oke tunggu apa lagi segera download NetBeans 6.7 dan gunakan !!!!!!

Mengenal Qt

Qt yang di baca “cute” adalah UI framework dan platform yang ditulis dengan bahasa C++, ada yang inget dengan KDE salah satu desktopnya linux selain Gnome, kalau di Ubuntu pakenya Gnome kalau Kubuntu pakenya KDE. Nah Qt ini yang dipakai untuk membuat KDE beserta applikasi-applikasi yang berada didalamnya.
Qt sebelumnya dimiliki oleh perusahaan yang bernama Trolltech dan sekarang perusahaan tersebut telah dibeli oleh Nokia. Qt framework tersedia secara gratis dan multiplatform (ada versi untuk linux, windows dan Mac).

Kita bisa menggunakan Qt dengan 2 bahasa yaitu C++ sebagai bahasa utama dan Python dengan menggunakan PyQt. Sekarang saya menggunakan C++ pada Qt. Ya tujuan utamanya adalah belajar C++ juga :).
Nah Qt ini menyediakan Qt GUI Designer untuk mempermudah desain User Interface selain itu juga ada Qt Assistance yang berisi dokumentasi kelas-kelas pada Qt beserta beberapa tutorial serta ada Qt Linguist yang berguna ketika kita ingin membuat aplikasi Qt yang multilanguage. Ketika Tool tersebut sekarang telah dikumpulkan jadi satu pada tool bernama Qt Creator.

Selain Qt Creator tersedia juga plugin untuk eclipse dan visual studio. Pada eclipse maupun visual studio tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist telah terintegrasi didalam IDE tersebut. Sedangkan untuk NetBeans versi 6.7 juga telah tersedia plugin Qt yang telah digabung dengan NetBeans CDT (Netbeans untuk C++) walaupun tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist masih menggunaakan tool external walaupun dapat langsung diakses dari dalam NetBeans. Plugin untuk eclipse dan Visual Studio dapat di download secara gratis di situs resmi Qt sedangkan untuk NetBeans plugin Qt sudah di bundle pada NetBeans versi 6.7.
Untuk memulai Qt terlebih dahulu kita harus mendownload Qt Framework. Qt Framework dapat di download secara terpisah atau bundle dengan Qt Creator. Untuk yang versi linux Qt Framework berbentuk tar.gz sehingga untuk instalasi kita cukup meng-extrack file tersebut ke tempat yang diinginkan contoh /opt. Setelah itu kita harus menambahkan direktori /bin kedalam system path pada environtment variable. Kebetulan saya menggunakan linux mint (ubuntu) maka environtment berada pada file /etc/environtment. Qt juga membutuhkan compiler C++, pada linux kita cukup menginstall gcc/g++ standar untuk dapat menggunakan Qt Framework. Sedangkan untuk windows kita dapat menggunakan MinGW.
Saya baru mencoba Qt untuk linux sedangkan untuk windows dan mac saya belum pernah coba sehingga tidak banyak tahu konfigurasi  qt untuk kedua sistem operasi tersebut.
Saya sendiri menggunakan Netbeans versi 6.7 untuk mendevelop Qt, ini dikarenakan saya sudah sangat terbiasa dengan editor yang ada pada NetBeans selain itu code completion di NetBeans masih lebih bagus dibanding Qt Creator maupun Eclipse (versi saya lho :)). Untuk konfigurasi Qt pada NetBeans tidak banyak yang harus dilakukan asalkan Qt telah di set pada environtment variable dan kita dapat mengakses command “qmake” pada console maka Netbeans dapat digunakan dengan baik.

Back to Blogging

Akhirnya saya kembali menulis lagi di blog setelah sekian lama absen. Moga-moga saya lebih bisa mengatur waktu agak bisa berbagi dengan teman-teman lagi.
Cerita sedikit tentang keseharianku untuk saat ini. Sekarang aku sedang menemput Pra-S2 (Kuliah sebelum s2) di ilmu komputer UGM. Ya berarti saya sudah lulus s1 donk :D. Alhamdulilah awal tahun ini saya lulus s1 dengan beberapa memar karena babak belur menyusun laporan skripsi.
Di Pra-S2 ini saya kembali bertemu dengan bangku kuliah yang telah lama saya tinggalkan, Soalnya sejak semester 6 selama kuliah s1 saya jarang berangkat gara-gara lebih mementingkan belajar Java dari pada kuliah 😛 (Enggak juga sih lebih karena males aja :D). Kok disebut Pra-S2 ya ? Sebenarnya saya belum sepenuhnya jadi mahasiswa S2, karena pada masa Pra-S2 ini (yang bisa juga disebut semester sebelum kuliah s2) akan ada ujian seperti halnya kuliah biasa dan baru dapat lulus apabila IPK > 2.75 dan nilai tidak ada yang dibawah C.
Lebih dari 1/2 tahun tidak ngeblog banyak hal yang telah saya pelajari terutama dalam bidang Java, Spring, Hibernate dan banyak yang lain beberapa waktu ini saya obok-obok cukup dalam.
Setelah di fikir-fikir kadang sayang juga apabila hal-hal yang telah saya pelajari tidak saya tuliskan. Iya kalau inget terus, kalau lupa kan mubadjir !! nah makanya sekarang saya akan belajar rutin untuk men-share ilmu yang saya dapat disini. Masih pakai tool untuk blogging yang dulu yaitu scribefire. Plugin firefox yang menurut saya sangat berguna.

Oke sekarang mari belajar bersama !!!!!!!!!!!!!!!!!

Oh iya hampir lupa, setelah bertahun-tahun (mulai semester 3 – sekarang sudah lulus)  belajar Java. Sekarang aku mulai tertarik dengan bahasa pemrograman yang lain 😀 (tenang enggak pindah kok, cuma selingkuh aja :D) diantaranya Bahasa D (Bahasa apaan hayoo), Python, Ruby, Pascal (Tuntutan Kuliah) dan Back to C++ (Qt). Nah dengan begitu kita bisa diskusi lebih banyak di blog ini.

TETAP SEMANGAT dan LANJUTKAN !!!!!!!!!!!!!!!!!