Minggu, 30 Januari 2011

Membuat Aplikasi di Linux dengan GTK+ dan Pascal

Beberapa waktu yang lalu, kami STEI 2010 mendapatkan tugas. Ya, sebuah project yang akan mengakhiri malam-malam Lailatul Qoding selama ini. Tugas ini disebut Tugas Besar PTI A, membuat suatu project yang merepresentasikan apa yang telah kami pelajari selama kuliah.
Untuk Tugas Besar ini kami dibentuk dalam beberapa kelompok dengan masing-masing kelompok beranggotakan 3 orang. Saya pun membentu sebuah kelompok bernama Starlight.
Project yang diberikan adalah sebuah aplikasi mini dengan master desain ditentukan oleh pihak dosen. Saya pun memunyai sebuah inisiatif, bagaimana jika program yang kami, tim Starlight, buat berbentuk window. Tentu saja ini adalah hal yang luar biasa, terutama platform yang kami garap nggak main-main, linux. Ya, kami memang gila dengan membuat aplikasi untuk linux dan saat saya berkata demikian, saya belum tahu apa-apa tentang bagaimana cara membuat aplikasi GUI di linux, bahkan saya nggak tahu linux itu kayak gimana modelnya *nah lho*. Ini emang beneran, tapi saya nggak main-main dengan niat saya tersebut (cieee....)
Akhirnya saya melakukan sebuah riset sederhana dan mencari segala data yang diperlukan. Riset dibatasi 2 hari karena hari-hari selanjutnya digunakan untuk pengerjaan program.
Kok malah jadi curhat ya? Ok, langsung aja saya berbagi tutorial bagaimana cara bikin aplikasi GUI di linux dengan GTK+ dan Pascal (actually I didn't really like Pascal @@~) 

#------------------------------------------------------------------------ CHAPTER 1 - Set up the Compiler

Yang saya pakai adalah compiler FreePascal. Dan untungnya FPC telah menyediakan wrapper untuk gtk, horee...!! Dalam pengerjaan aplikasi ini, saya menggunakan Ubuntu Linux 10.10 Maverick Meerkat (thanks buat Inov yang udah meminjamkan CD Ubuntu buat saya :D).
Jangan lupa untuk menginstall library untuk development GTK.. lakukan perintah berikut
sudo apt-get install libgtk2.0-dev

OK, jika sudah maka teman-teman sudah bisa membuat aplikasi sederhana dengan GTK

#------------------------------------------------------------------------ CHAPTER 2 - Simple Form

Apa itu GTK+? GTK adalah toolkit yang digunakan untuk pengembangan aplikasi GUI di linux berbasis GNOME. Dalam membuat aplikasi GTK sebenarnya kita seperti bermain lego. Kita meletakkan potongan-potongan bangunan untuk membentuk sebuah bangunan utuh. Potongan-potongan yang dimaksud di sini adalah komponen visual seperti button, menu, dkk. Komponen itu disebut sebagai widget. Nah kita menyusun potongan-potongan tersebut di atas sebuah form / window.
Hal pertama yang dilakukan untuk membuat aplikasi adalah membuat sebuah window terlebih dahulu. Coba teman-teman simak source code sederhana ini yang akan membuat sebuah form sederhana.
program sederhana;

uses gtk2, gdk2, glib2;
{ Library yang kita gunakan untuk membuat GUI }

var window : pGtkWidget;
{ Membuat sebuah variabel bertipe pGtkWidget untuk menampung widget / komponen }

begin
{ Sebelum kita memulai, kita harus beritahu bahwa kita akan menggunakan gtk. Maka kita harus inisialisasi gtk terlebih dahulu }
gtk_init(@argc, @argv);

{ Membuat window }
gtk_window_new(GTK_WINDOW_TOPLEVEL);
{ Membuat window yang top level atau window yang dikelola langsung oleh komputer (Window Manager) }

{ Sedikit pengaturan untuk window kita }
gtk_window_set_default_size(GTK_WINDOW(window), 800,600);
gtk_window_set_title(GTK_WINDOW(window), 'Satria Ady Pradana');
{ Dari nama udah kelihatan kan? }

{ Mengatur signal. Signal adalah semacam message atau pesan yang diberikan ketika sesuatu hal terjadi pada aplikasi, seperti saat sebuah button ditekan dkk. GTK adalah sebuah library yang event-driving. Jadi kita akan memprogram berdasarkan event-event }
gtk_signal_connect(GTK_OBJECT(window), 'destroy,' GTK_SIGNAL_FUNC(@gtk_main_quit), nil);
{
Penjelasan:
Parameter pertama adalah widget / komponen yang ingin dikelola
Parameter kedua adalah jenis event yang terjadi. Disini kita pakai 'destroy' artinya saat window di-destroy atau ditutup maka program akan mengeksekusi program berikut.
Parameter ketiga adalah fungsi yang dipanggil ketika event terjadi. Untuk sementara kita pakai fungsi ini dulu, gtk_main_quit() yang akan membersihkan dan mengakhiri proses program.
Parameter keempat adalah data yang diberikan jika fungsi dipanggil. kita isi nil dulu karena kita nggak perlu ngasih apa-apa ke sana.
}

{ Secara default, komponen yang baru terbentuk belum tertampil ke layar. Untuk menampilkannya kita harus "menampilkannya" }
gtk_widget_show(window);

{Memulai program utama gtk, di sini pekerjaan kita selesai}
gtk_main();

end.

Simple kan? Ya emang.... Untuk membuat aplikasi sederhana tidak terlalu susah :D
Lalu bagaimana kalau kita ingin bikin tombol dkk?
Tunggu postingan selanjutnya :D


Cross Compiling - Membuat Program Windows di Linux

Setelah pada artikel sebelumnya kita membahas tentang pengenalan cross compiling, sekarang kita akan mencoba melakukan pengaturan untuk bisa melakukan pengembangan aplikasi secara cross-compiling. Platform yang menjadi tujuan kita adalah OS Windows, sedangkan kita akan membuat program tersebut di linux. Jika teman-teman belum tau apa itu cross-compiling, silahkan merujuk ke artikel ini.


Kita akan melakukannya dalam beberapa tahap. Untuk mempersempit topik, tutorial ini dilakukan pada OS Linux tepatnya GNU/Linux Ubuntu 10.10 Maverick Meerkat. Dan juga kita ambil langkah paling sederhana saja, saya tau temen-temen juga nyari cara gampang sama kayak saya :p


 


1. Siapkan Compiler


Lho, bukannya di linux udah disediain compiler ya? Memang di linux sudah disediakan compiler bawaan yaitu gcc, tapi compiler ini digunakan buat compil program ke platform linux saja. Kita butuh compiler untuk tujuan cross compiling. Kita bisa dapatkan compiler tersebut dengan memberikan perintah berikut ke command line (terminal) :




sudo apt-get install mingw32



MinGW32 adalah package compiler yang kita butuhkan untuk melakukan cross compiling ke platform windows.


Jika sudah selesai teman-teman dapat melakukan kompilasi dengan cara mengetikkan perintah berikut (jangan lupa tekan enter juga ya)




i586-mingw32msvc-gcc file.c -o file.exe



Perhatikan bahwa kita menggunakan kompiler bernama i586-mingw32msvc-gcc untuk mengompil program. Pada contoh di atas kita mengompil file.c dan hasilnya menjadi file.exe. Teman-teman juga bisa mengompil dengan menambahkan beberapa pengaturan tambahan, sintaksnya sama seperti ketika teman-teman menggunakan gcc sebagai compiler.


Terlalu panjang ngetiknya? Tenang! kita bisa persingkat nama filenya dengan cara membuat link (semacam shortcut gitu). Caranya pergi ke /usr/bin. Pada path tersebutlah mingw32 terinstall secara default.




cd /usr/bin



Kemudian ketikkan perintah berikut untuk membuat link:




ln -s i586-mingw32msvc-gcc gcc32



Dengan begitu maka ketika anda mengetikkan gcc32 maka otomatis anda sebenarnya memanggil program i586-mingw32msvc-gcc.


i586-mingw32msvc-gcc adalah perintah untuk mengompil program dalam bahasa C, sedangkan untuk mengompil program bahasa C++ teman-teman bisa menggunakan i586-mingw32msvc-g++


 


2. Siapkan emulator (Wine)


Sebenarnya jika teman-teman sukses melakukan seperti apa yang ada di step 1, teman-teman sudah bisa melakukan pengompilan program untuk windows di OS Linux. Tapi, nggak enak kan kalo cuman compile doang. Gimana ktia tau kalo programnya jalan nggak. Nah karena itu kita pasang sebuah emulator untuk bisa menjalankan program windows. Yang dimaksud tidak lain dan tidak bukan adalah Wine (yang ini gak bikin mabuk :D). Kita akan install melalui mode command line / terminal. Caranya ketik perintah berikut:




sudo apt-get install wine



Jika proses sudah selesai maka teman-teman sudah bisa menjalankan program windows di linux. Caranya:




wine [nama program]



 


Selamat!! teman-teman sudah bisa melakukan cross compiling di linux :D


Nantikan juga tutorial lainnya :D

Perulangan For Positif dan Negatif pada pascal dan C++

Disarankan untuk melihat juga materi Seri Belajar Pemrograman #5.


 


Tak bisa dipungkiri, perulangan atau yang kerap disebut loop adalah salah satu aspek programming penting dalam pemprograman. Kehadirannya sering ditemui dalam suatu aplikasi. Secara umum terdapat 3 macam jenis perulangan bila mengacu pada artikel saya sebelumya yaitu Seri Belajar Pemrograman #5. Salah satunya adalah perulangan dengan kata kunci for (untuk notasi algoritmik, Pascal dan C\C++)


 


Seperti yang sudah dijelaskan pada artikel Seri Belajar Pemrograman #5, statement For (lihat keyword "untuk" pada artikel tersebut, keyword tersebut berkorespondensi dengan keyword for pada pascal dan C++) digunakan untuk mengulang statement atau suatu blok statement dengan jumlah perulangan yang ditentukan sebelumnya. Sama seperti kita mengatakan ingin menonton film A sebanyak 4 kali maka yang kita lakukan adalah melakukan kegiatan dalam hal ini menonton film sebanyak 4 kali secara berturut-turut.