UTAMA

Pengembangan Aplikasi di Linux

Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial

Noprianto

Linux adalah surga bagi para programmer. Tersedia banyak bahasa pemrograman, pustaka dan tool-tool berkualitas yang siap digunakan.

alam penggunaan komputer, sistem operasi saja tidak cukup untuk membantu memenuhi kebutuhan kita. Berbagai aplikasi umum diperlukan. Sebagai contoh, kita membutuhkan paket office untuk membantu pekerjaan kantoran seperti mengetik, membuat laporan, mengisi data, membuat presentasi dan lain sebagainya. Kita membutuhkan web browser agar kita dapat berselancar di internet. Berbagai paket manajemen email juga dibutuhkan agar kita bisa mengirim dan menerima email. Aplikasi multimedia dibutuhkan agar kita bisa menikmati multimedia dengan bantuan komputer. Banyak sekali aplikasi yang tersedia dan dapat digunakan. Beberapa diantaranya benar-benar gratis, beberapa diantaranya membuat kita harus merogoh kocek. Terkadang, aplikasi-aplikasi umum belumlah cukup. Sebuah pabrik misalnya. Pabrik tersebut tidak hanya membutuhkan aplikasi office atau web browser semata. Mereka membutuhkan aplikasi khusus yang mengerti kebutuhan mereka dan dapat membantu mereka agar dapat lebih produktif. Kita mengenal ERP yang membantu perusahaan dari ujung sampai ujung lainnya. Dengan menggunakan ERP

D

tersebut, sebuah pabrik dapat bekerja lebih efektif dan efisien. Walaupun, terkadang harga sebuah ERP bisa membuat kita pusing. Terdapat banyak aplikasi umum di Linux. Namun, software-software dengan kualitas lebih baik selalu dibutuhkan. Oleh karena itu, mungkin sekali terdapat puluhan software untuk fungsi yang sama. Sementara, aplikasi khusus tidak pernah menjadi terlalu banyak. Banyak perusahaan yang menginginkan solusi teknologi informasi yang lebih personal dan tidak hanya mengandalkan software-software umum. Umumnya, hal ini disebabkan karena kebutuhan. Apabila Anda tertarik untuk mengembangkan aplikasi di Linux, baik aplikasi umum ataupun aplikasi khusus, berbagai hal perlu dipertimbangkan agar dapat mengembangkan aplikasi secara lebih cepat, lebih baik, dan pada akhirnya, dapat membantu memenuhi kebutuhan. Ulasan utama kali ini mencoba untuk mengangkat hal-hal seputar pembuatan aplikasi di Linux. Pembahasan difokuskan pada beberapa hal penting yang menjadi kunci pembuatan aplikasi. Pertama-tama, kita akan melihat soal pemilihan bahasa

pemrograman. Di dunia free software, tersedia begitu banyak bahasa pemrograman. Setelah itu, kita juga membahas detil tentang pembangunan user interface. Pembahasan meliputi CLI, TUI, GUI dan aplikasi web. Pembahasan mengenai database juga tidak terlupakan. Berbagai database termasuk RDBMS dan OODB juga dibahas. Tak lupa, database embedded dimasukkan sebagai salah satu topik spesial dalam penggunaan database. Hal-hal seperti lisensi juga merupakan masalah penting. Sama seperti halnya bagaimana membuat aplikasi yang dapat memiliki pasar yang luas. Penggunaan teknologi standar, i18n, dan kemungkinan cross-platform adalah hal-hal yang penting agar aplikasi kita dapat digunakan oleh berbagai pihak. Untuk pembangunan aplikasi yang lebih cepat, ada baiknya kita menggunakan berbagai tool yang memang telah tersedia. Sebagai contoh, debugger, document generator, IDE, diagram modeller dan version control. Pada akhirnya, tak lupa isu distribusi juga akan kita bahas. Bagaimana cara kita men-deliver aplikasi kita adalah hal yang tak kalah penting. Selamat membaca!

34

INFOLINUX APRIL 2004

www.infolinux.web.id

Dengan kata lain. Cukup gunakan saja header-header yang diperlukan untuk mencapai hasil yang diinginkan. Beberapa contoh bahasa pemrograman yang populer diantaranya C/C++. tipe data yang kaya. termasuk untuk membangun aplikasi berbasis GUI. Pengguna Java atau Python misalnya. Java adalah teknologi yang maju dan matang. Java adalah bahasa yang sangat bagus.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Pemilihan Bahasa Pemrograman U ntuk melakukan pemrograman. Perl juga sama. pustaka QT juga bisa diakses oleh Python misalnya. Sementara. di PHP. kita mendengar seteru antara pemakaian Delphi atau Visual Basic. Begitu juga dengan penggunaan visual Basic. relatif mudah digunakan serta dapat melakukan suatu tugas dengan berbagai cara. dan pilih satu. Anda tidak perlu berpusing-pusing untuk memikirkan dukungan pustaka tertentu. bisa-bisa pemrogaman tidak pernah dilakukan karena pencarian tersebut seperti pencarian yang tak kunjung selesai. Namun. Dan umumnya. Python menggunakan pustaka Tk. pustaka tersebut dapat digunakan oleh Python misalnya. Memilih sesuai kebutuhan Pemilihan bahasa pemrogaman di Linux lebih disesuaikan kepada kebutuhan. Java apalagi. Asalkan benar-benar didalami. Bacabaca referensi. dynamic loading pustaka sistem didukung oleh berbagai bahasa pemrogaman. Pascal. jika fleksibilitas. umumnya. yakinkan mana yang paling cocok dengan gaya Anda. C++ yang diimplementasikan oleh QT adalah sebuah pustaka sekaligus bahasa lengkap. apabila hanya masalah GUI. kedekatan dengan sistem dan rela untuk sedikit bersusah payah. Hanya. maka C/ C++ adalah pilihan yang baik. Perl juga identik dengan administrator sistem. walaupun diasosiasikan dengan TCL. Selain itu. PHP mungkin boleh dikatakan sebagai bahasa pemrograman web paling populer (di dunia free software). Semuanya bagus. Python dapat Anda pilih karena ketersediaan banyak pustaka dan binding. sebaiknya Anda memiliki konsep Object Oriented Programming yang kuat. www. PHP. Namun.infolinux. Dengan demikian. Alasan lain seperti ketersediaan pustaka yang banyak juga bukan alasan yang terlalu penting. Berbagai pustaka sistem dapat Anda gunakan. Tak jarang. Perl. kita akan memiliki bahasa pemrograman terlebih dahulu. Lihatlah area kebutuhan Anda. TCL dan Pascal terkenal karena mudahnya. Untuk mencari yang paling baik. Agak sedikit berbeda di Linux dan free software. karena komponen pembangun GUI merupakan bagian integral dari bahasa tersebut. Perl mungkin juga agak susah untuk melakukan hal yang sama. Sediakan waktu lebih untuk belajar. kita bisa mendapatkannya dari pihak ketiga. mungkin akan kebingungan apabila tidak terdapatnya binding untuk suatu pustaka tertentu. kita masih bisa melakukan dynamic loading suatu pustaka sistem untuk mendapatkan suatu fungsi. Kalaupun datang dengan GUI toolkit sendiri. Java. juga cocok digunakan untuk aplikasi skala besar ataupun kecil. sampaisampai tidak ada pustaka dari pihak ketiga pun. Oleh karena itu. Tidak ada bahasa yang paling baik diantara semua bahasa pemrogaman. Keunggulan memilih bahasa ini sangatlah banyak. kemudahan serta tersedia banyak cara untuk melakukan sesuatu. Apabila memang ingin membangun aplikasi berbasis GUI. Apabila Anda membutuhkan kecepatan tinggi. Bagi Anda. terdapat banyak sekali bahasa pemrogaman. hal tersebut bukanlah masalah. untuk pemrogaman berbasis GUI. Anda bisa memilih yang paling sesuai dengan kebutuhan. Pelajari dan selesaikan kebutuhan Anda. yang satu lebih bagus di satu sisi. Di dunia free software. namun bukan dikembangkan secara khusus untuk Python. Tapi. dan umumnya. Kita melihat bahwa implementasi C/ C++ oleh GCC sama sekali tidak datang bersama pustaka untuk membangun GUI. di dunia Windows. Python. mudah dipelajari dan kode program yang bersih. Python juga cocok untuk digunakan pada aplikasi skala besar. Memilih Delphi berarti akan menggunakan gaya dan segala hal yang berhubungan dengan Delphi. pemilihan bahasa pemrogaman menjadi masalah yang cukup besar. Hampir setiap database besar dan terkenal didukung oleh PHP. banyak pustaka yang didedikasikan khusus untuk itu. Sebagai contoh. Sementara. Sebagai contoh. Python mungkin agak susah untuk melakukan hal yang sama. Dalam kasus yang parah. pemilihan bahasa pemrogaman adalah hal yang penting. binding untuk berbagai bahasa juga telah tersedia. Contoh lain adalah Tk. mudah sekali untuk melakukan konektifitas database. PHP juga sama. Sehingga. sementara yang lain lebih bagus di sisi lain. toolkit tersebut juga bisa diakses oleh bahasa pemrogaman lain. Pengguna Python mungkin akan cukup cocok dengan TCL. Anda bisa menggunakan Perl. Terutama di pemrogaman berbasis GUI. Atau sebaliknya. Perl sangatlah fleksibel. Pustaka-pustaka lain yang tidak datang bersama suatu bahasa pemrogaman umumnya diimplementasikan oleh pihak ketiga dan dapat digunakan secara bebas. TCL. Bukan masalah besar Di dunia Windows. dan lain sebagainya. Pengguna Delphi akan cocok dengan Pascal. banyak implementasi dari pihak lain yang mengembangkannya untuk banyak bahasa pemrogaman.web. walaupun dalam distribusi resminya Python tidak menyertakan dukungan untuk suatu database misalnya. Jarang sekali terdapat implementasi suatu bahasa pemrogaman yang datang satu paket dengan GUI toolkit sendiri. Sangat susah untuk menggunakan komponen native Visual Basic di Delphi. pemilihan bahasa pemrogaman bukanlah masalah penting.id INFOLINUX APRIL 2004 35 . Pascal yang diimplementasikan oleh Free Pascal juga sama.

contoh terbaik adalah KDE dan aplikasi-aplikasinya. Tentunya. apa yang ditampilkan adalah interface yang cukup menarik. Di dunia DOS atau Windows. Sebut saja ncurses dan newt. paling tidak. pertimbangkan juga untuk menggunakan berbagai tool-tool untuk mendesain user interface sehingga Anda tidak perlu membuat semuanya sendiri. satu program memiliki lebih dari satu opsi dan dijalankan dengan cara seperti ini: ls -al ls —all ls –help Apabila aplikasi yang Anda bangun memang tidak membutuhkan kemudahan pemakaian atau keindahan. Web application Untuk membuat aplikasi web. Binding untuk pustaka getopt tersedia untuk hampir semua bahasa pemrograman di dunia free software. Untuk user interface. terdapat berbagai ekstensi Tk yang menambah kelengkapan widgetnya. user interface yang masuk akal perlu kita kembangkan agar program kita dapat digunakan oleh berbagai pihak. QT sendiri juga datang dengan versi enterprise yang mampu melakukan apa yang dilakukan oleh Delphi atau Visual Basic. cukup bagus dan kalau mau.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Pembangunan user interface P rogram yang dihasilkan tentu tidak hanya selalu digunakan oleh pembuatnya. dengan Delphi atau Visual Basic misalnya. Ringan. Kondisi ini sedikit berbeda di dunia free software. Aplikasi yang dibangun dengan Tk juga cukup banyak. kita mengenal beberapa kategori. Yang menggunakan umumnya adalah pihak lain. Di dunia Linux. WxWindows sendiri adalah pustaka populer untuk aplikasi GUI cross platform yang menawarkan tampilan native. Contoh lain barangkali Boa constructor untuk Python. Implementasi untuk berbagai bahasa pemrograman juga tersedia. Berbagai utilitas sistem boleh dikatakan datang dengan interface ini. Namun. untuk kalangan tertentu. Contoh yang paling baik adalah Midnight Commander. command line interface dikembangkan dengan pustaka getopt. pembuatan GUI benar-benar bukan masalah. Untuk QT. Keduanya akan membantu Anda untuk membangun TUI dengan mudah. kita mengenal berbagai ungkapan bahwa pembuatan aplikasi dengan text user interface sudah tidak zaman lagi karena semuanya akan berbasiskan GUI. Graphical User Interface Ini adalah permasahan yang cukup sering ditemui di dalam dunia Linux. implementasinya cenderung lengkap dan memiliki GUI toolkit sendiri. TK juga terkenal sebagai toolkit yang lengkap dan mudah digunakan. Anda masih bisa menikmati fasilitas ini. Untuk itu. QT. wxWindows (yang akan berubah namanya menjadi wxWidgets). menggunakan toolkit wxWindows. Semua itu artinya. Hal ini disebabkan karena terdapat program getopt dan getopts yang berguna untuk melakukan parsing argumen dan opsi program. Terkadang. banyak sekali bahasa pemrograman yang mendukung toolkit-toolkit tersebut. Dengan menggunakan pustaka tersebut. Dan.id . hal ini lebih disebabkan separasi antara bahasa pemrograman dan GUI toolkit. Text User Interface Berbeda dengan command line interface yang membiarkan penggunanya menggunakan opsi-opsi program untuk melakukan tugas tertentu. Sebagai seorang programmer. Jadi. Tidak semuanya harus GUI. Umumnya. tentunya.web. Pemeriksaan dan parsing akan dilakukan sendiri. Di dunia Windows. TUI lebih disukai. Berbagai GUI toolkit populer yang pantas dipertimbangkan adalah GTK+. Tidak perlu membaca parameter yang dimasukkan kemudian melakukan pemisahan dan pemeriksaan secara manual. Contoh penggunaan GTK+ yang baik adalah desktop dan aplikasi-aplikasi GNOME. Dengan adanya separasi ini. Selain itu. dapat membaca fasilitas help program. Atau. Tk. apa yang mampu dilakukan oleh Delphi atau Visual Basic jelas masih jauh untuk dicapai. bahkan terkadang tidak perlu coding sama sekali.infolinux. Namun. mulai dari command line interface sampai Graphical user interface. Umumnya. kita dapat mengetikkan kode HTML sendiri. Jangan pernah membuat program berbasis command line namun tidak menyertakan help ataupun manual.org. Bagi Anda yang melakukan pemrograman dengan shell script sekalipun. bukan masalah sama sekali. kita tetap perlu memperhatikan pengguna program kita. Pendekatan RAD seperti Delphi dan Visual Basic yang paling bagus barangkali adalah QT Designer. maka command line interface adalah pilihan yang paling cocok. tersedia banyak pustaka untuk membangun TUI ini. Anda hanya mengisikan fungsi yang diperlukan saja. Desain user interface 36 INFOLINUX APRIL 2004 www. aplikasi dengan text user interface juga memiliki fasilitas untuk pemberian opsi. Anda hanya perlu mendefinisikan berbagai opsi yang valid dan aksi yang berhubungan dengannya. Khusus untuk Java. Anda perlu menyediakan manual atau paling tidak fasilitas help yang cukup memadai. Namun. secara default. mouse bisa digunakan. Anda tidak melakukan parsing command line secara manual. Berbagai aplikasi yang dapat merancang user interface dengan cukup bagus adalah Mozilla Composer dan OpenOffice. Umumnya. Target pengguna program Anda adalah pengguna yang bisa membaca manual program. pengguna berbagai bahasa pemrograman dapat membangun GUI dengan berbagai GUI toolkit. Commad Line Interface Banyak sekali program di dunia free software yang dibangun dengan commad line interface. maka text user interface akan menampilkan berbagai window dan menu menarik (dalam modus text) untuk penggunanya. walaupun membuat aplikasi berbasis command line.

walaupun kecil. Apabila Anda menggunakan PHP. OODB Yang satu ini baru-baru terkenal. Anda bisa membuat aplikasi dengan database serupa konsep foxpro. maka MySQL dan PostgreSQL bukanlah masalah. Cukup aplikasi itu sendiri saja yang diinstall. dan jalankan tanpa masalah dimesin lain. sebuah application server berbasiskan Python. Perl. PostgreSQL dan Oracle adalah contoh terbaik. Anda juga ingin agar aplikasi dapat dipindahkan ke mesin lain dengan mudah. namun proses deployment tetap saja lebih rumit. Bayangkan dengan MySQL dan PostgreSQL. Tidak perlu melakukan koneksi pada server database. relational database management system. Zope Object Database. Pembuatan memang terasa mudah. RDBMS Jenis yang satu ini. OODB bukan dibuat untuk menggantikan RDBMS. yang digunakan oleh Zope. walaupun cukup banyak fungsi yang tidak didukung seperti referential integrity. Bahkan.infolinux. standalone. SQLite. jelas tidak dianjurkan sama sekali. C/C++. Contoh OODB yang bagus adalah ZODB. Tentunya. Untuk bahasa yang tidak mendukung secara langsung. perlu dilakukan. penggunaan embedded database sangat dianjurkan. Penggunaan oleh bahasabahasa lain seharusnya juga bisa dilakukan dengan tidak rumit. Dengan demikian. Bukannya ingin mengatakan bahwa MySQL dan PostgreSQL tidak seru untuk digunakan. Filenya pun hanya satu file untuk satu database. Kita tidak dapat begitu saja mengopikan file-file database kita ke mesin lain begitu saja. MySQL. Ketiganya cocok untuk digunakan dan mampu melayani data jumlah besar. Java. Hampir semua bahasa mampu berbicara dengan database ini. TCL mampu melakukannya. Bagaimana jika apa yang Anda butuhkan hanyalah buku alamat atau organizer sederhana? Jelas kemampuan MySQL dan PostgreSQL belum diperlukan. Namun. Ya. Contoh database embedded yang sangat terkenal adalah SQLite dan BSDDB. adalah database yang cukup umum dan tergolong cukup senior. Untuk kasus tersebut. Sejak awal-awal PHP mulai berkibar. Kecepatannya sekitar 2 kali lebih cepat dari MySQL dan PostgreSQL untuk berbagai operasi. walaupun implementasinya telah dilakukan beberapa waktu yang lalu. Beberapa diantara mereka memang memiliki tool backup sendiri. PHP sempat identik dengan MySQL. karena kebanyakan bahasa pemrograman tahu cara untuk berkomunikasi. Tapi deployment dan backup akan terasa cukup susah. selama suatu bahasa dapat melakukan dynamic loading. Python. Mereka sangat seru untuk digunakan. www. atau repot lebih tepatnya. Jadi. object oriented database saat ini semakin populer.id INFOLINUX APRIL 2004 37 . clipper dan lain sebagainya. Untuk mengakses file tersebut. Perintah SQL pun didukung. maka copy saja semua file termasuk databasenya.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Penggunaan Database D atabase selalu diperlukan apabila Anda membangun aplikasi bisnis atau aplikasi yang melibatkan penggunaan dan pengolahan data. Special: Embedded database engine Masih ingatkah Anda akan Foxpro. pengguna Python dapat dengan mudah menggunakan database yang satu ini. Tinggal pilih yang mana. bahasa pemrograman telah mendukungnya sehingga tidak diperlukan layer tambahan. clipper dan bahasa sejenis yang menawarkan kemudahan dan kesederhanaan? Satu aplikasi bisa memiliki beberapa tabel dimana setiap tabel disimpan di dalam setiap file. Untuk menggunakan text file. Coba saja membuat aplikasi dengan kedua database server tersebut. Dan yang penting. SQLite misalnya. Berbagai database siap pakai tersedia di dunia free software. dukungan untuk kedua database canggih ini telah kita dapatkan. Apabila aplikasi ingin dipindahkan. jika aplikasi Anda benar-benar membutuhkan kemampuan database server tersebut.web. harusnya tidak akan ada masalah. Proses dumping ke file text misalnya. MaxDB. tetapi mampu bekerja dengan database seukuran 2 TB. Banyak sekali kelebihan RDBMS yang tidak dimiliki atau susah diimplementasikan di OODB. MySQL menyediakan sebuah pustaka client yang dapat digunakan untuk berbicara dengan MySQL Server. Implementasinya banyak.

Dan semuanya selesai. Apabila software yang ditulis dapat digunakan oleh berbagai kalangan. semua sah-sah saja.infolinux. tentunya harus juga untuk diperhatikan. seseorang sebaiknya mengerti benar masalah hak kekayaan intelektual. Yang pertama adalah membuat lisensi sendiri (hal ini bukan langkah trivial. semuanya harus bebas. Bagus untuk promosi dan dominasi produk memang. maka umumnya. Sebagai contoh. atau membuat lisensi sendiri. Di Windows dan program-program proprietary yang berjalan di atasnya. Untuk membuat lisensi. dan Artistic. Sebagai contoh. Cukup lisensikan saja di bawah lisensi GPL versi 2. Bahwa pengguna software Anda tersebut menjualnya atau hanya mengopikannya kepada rekannya yang lain. seharusnya lisensi Anda tidak akan terlalu rumit. maka pastikanlah agar lisensi tersebut tidak menjadi senjata makan tuan.id. Pelajari lisensi program lain. Dan pengguna yang bersangkutan dapat melakukan instalasi pada beberapa mesin. Namun. dipelajari oleh siapa saja. segala source code dikontrol oleh Anda. Anda bisa mempelajari lisensinya. Ada lisensi yang benar-benar mengharuskan nilai per mesin. hal tersebut jelas tidak memenuhi kebutuhan Anda. Anda perlu mengerti hal di luar pemrograman. Hal ini sangat berguna terutama ketika Anda membuat pustaka program. Anda tidak perlu terikat erat seperti halnya GPL. dapat dibaca secara online di http://www. dan menyebarkan program yang Anda tulis. Apabila Anda membuat software proprietary. beberapa proyeksi ke depan juga diperlukan agar lisensinya cukup luwes. jangan sampai Anda pusing-pusing membayar suatu pihak untuk mengurus masalah lisensi super ketat sementara software Anda tersebar di mana-mana. Beberapa solusi dapat diterapkan. Bagi Anda yang ingin membuat program-program yang benar-benar mengharuskan pengguna untuk membayar.org/licenses/ gpl. Beberapa pustaka yang dikembangkan lebih lanjut. Anda ingin agar aplikasi boleh disebarluaskan beserta source codenya. Mulai dari lisensi proprietary sampai lisensi free software.id . Karena masalah lisensi selalu berhubungan dengan hukum. bagaimana kalau Anda adalah seorang programmer yang bekerja pada suatu proyek yang Anda kerjakan sendiri dan ingin melepas proyek tersebut sebagai software yang source codenya tertutup namun binarynya dapat digunakan secara meluas? Dalam kasus ini. Dengan BSD. translasi ke Bahasa Indonesia dapat Anda baca di http://vlsm. Pokoknya. Anda bisa mempercayakan saja kepada lisensi GPL. atau lebih baik menggunakan jasa pihak lain yang khusus di bidang ini). Arti kebebasan itu sendiri memiliki arti yang luas. Dengan demikian. Memilih lisensi Kita mengenal bermacam-macam lisensi. namun. Masalah muncul ketika Anda membuat software proprietary. Berbagai lisensi di kenal. Dengan penggunaan lisensi GPL. Cara kedua lebih sederhana. Anda dapat menyesuaikan dengan berbagai lisensi yang tersedia. pembuat software harus cerdik. Jangan lupa untuk mengatur masalah redistribusi di mana seorang penerima software mendistribusikan kembali software Anda. dan turunkanlah sesuai dengan keadaan Anda. L berikut ini dianggap sebagai lisensi free software: GPL. mengembangkan.web.html. memberikan lisensi yang lebih longgar akan berakibat lebih baik.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Lisensi isensi tentu bukan permasalahan yang penting apabila Anda ingin membuat free software dan tidak ingin repot-repot soal legal. maka lisensi dibuat lebih luas dan mengikat setiap kalangan penggunanya. dan program Anda dapat didistribusikan oleh berbagai pihak . GPL mengharuskan sebuah software dapat digunakan oleh siapa saja. Lisensi tersebut bisa Anda kembangkan sesuai kebutuhan. memperbaiki dan mendistribusikan program yang Anda buat. Seseorang bisa menggunakan. Memilih lisensi GPL jelas tidak mungkin. atau software dimana penggunaan dan pendistribusian memiliki aturan tertentu. LGPL. Apabila hanya dapat digunakan saja. kita dapat menemukan berbagai end user license agreement.html. hanya modifikasi dan pendistribusian hasil modifikasi tidak diijinkan. Tentunya. source code diberikan hanya untuk dipelajari. beberapa model dapat Anda contek. Ada pula yang menitikberatkan pada nilai per pengguna. Translasi ke beberapa bahasa bahkan telah tersedia. Beberapa lisensi Membuat software proprietary Umumnya. Sekarang.org/etc/gplunofficial.fsf. pembuat software proprietary memiliki aturan sendiri dalam penggunaan dan pendistribusian. Terkadang. Selain itu. Lisensi yang terkenal sangat mengikat dalam free software adalah GPL. Yang penting adalah terjaminnya semua pihak untuk dapat menggunakan. untuk berbagai alasan misalnya. perlu tidak dilisensikan di bawah GPL. LGPL lebih sedikit longgar. Bermacam-macam lisensi proprietary diterapkan. mempelajari. 38 INFOLINUX APRIL 2004 www. bisa dimodifikasi oleh siapa saja sesuai keperluan. Pada contoh di sini. BSD juga cukup ramah seperti halnya LGPL. Lisensi GPL misalnya. Bagi programmer free software yang tidak mementingkan lisensi. Atau. Lisensi tidak harus panjang dan rumit serta penuh dengan istilah hukum. BSD. pembuat software menerapkan semacam end user license agreement. Membuat free software Free software memfokuskan kata free pada kebebasan. bukan pada harga nol. Pastikan saja bahwa segala usaha dekompilasi adalah ilegal. beberapa program yang berjalan di Linux juga merupakan software proprietary. lisensi Anda menjadi kurang penting. Sementara. Perhatikan juga lisensi dengan target pasarnya. Pemilihan lisensi menjadi penting apabila Anda ingin mengatur atau membatasi beberapa hal seperti penggunaan dan pendistribusian.

A berguna untuk mengkonfigurasi source code dan menggenerasi Makefile. mendebugnya dengan GDB. Malloc debugger untuk program C Anda. hebatnya. Anda dapat meminta komputer lain untuk membantu Anda. Sangat matang dan dekat dengan gdb. Dapat Anda gunakan untuk memeriksa memory leak. Colorgcc.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Tools pendukung pabila Anda adalah seorang programmer. C++. memeriksa variabel dan menjalankan bagian kode-kode Anda.in bergaya GNU. ddd. GNU Make. Insight. menggenerasi dokumen dengan document generator lain. malloc. Bahkan. Menyediakan user interface intuitif untuk pengaturan breakpoint. Sebuah komputer tentunya tidak cukup. distcc. gunakan berbagai tool yang tersedia luas untuk mendukung program kita.id INFOLINUX APRIL 2004 39 . Program dapat didebug dalam C. dan menggunakan CVS sebagai version control. new. Berikut ini. namun dibantu oleh beberapa komputer di jaringan. Icmake. bisa saja menjadi harian untuk proyek yang sangat besar. www. Bahkan. Tapi. Dengan berbagai tool berikut. dan delete. tentu saja Anda bisa membuat sendiri debugger. free. kompilasi tidak lagi dilakukan oleh komputer Anda sendiri. implementasi bahasa pemrograman hanya akan memfokuskan dirinya pada bahasa pemrogaman dan berbagai fitur kompiler pada umumnya. sebuah produk studio pemrograman umumnya datang dengan segala tool yang dibutuhkan untuk mempermudah pembuatan program. apabila Anda adalah programmer tunggal yang harus mengurus logika program. Pascal. Sebagai contoh adalah Python dan Boa-constructor. dokumentasi dan lainnya. Sebagai contoh read. akan lebih baik memfokuskan diri kepada fungsi utama program. editor. ElectricFence. dan mendesain graphical user interface dengan program lain. banyak user yang menggunakan suatu bahasa pemrogaman. Dengan demikian. Dengan demikian. Valgrind dapat memeriksa semua operasi memori. Di dunia pemrograman Windows. Valgrind. selain datang dengan implementasi bahasa pemrogaman. GUI untuk gdb. document generator. Error dan warning akan diwarnai dengan warna khusus. datang pula debugger. Make.infolinux. Ada dan assembly. Umumnya. masing-masing Anjuta. Di Linux berbeda cukup jauh. Versi lain Make dengan gaya C. Debugger GNU. output dari proses kompilasi akan lebih mudah terbaca. write.web. Apabila terhubung ke jaringan dengan beberapa komputer. Debugger Proses debugging adalah proses yang terkadang menyebalkan. Tool-tool standar yang diperlukan. Memprof. Sementara. Kelengkapan produk akan menentukan seberapa banyak yang akan membeli produk tersebut. Proses kompilasi bisa berlangsung selama berjam-jam. Program ini berguna untuk mewarnai ouput dari gcc. Gdb. Data display debugger. GUI untuk gdb. GUI untuk gdb dan dbx. Tool standar yang perlu Anda miliki untuk bekerja dengan Makefile. IDE. Memory profiler dengan interface GNOME. Terutama. Valgrind dapat menemukan penggunaan memori tak Building Berbagai tools untuk pembangunan executable dapat Anda gunakan untuk memudahkan proses ini. Fortran. proses debugging akan terasa lebih mudah dan seru. Selebihnya. version control dan lain sebagainya. kita akan membahas beberapa tool yang bisa Anda gunakan untuk mempercepat pembuatan dan meningkatkan kualitas program yang Anda buat. diagram modeller dan lain sebagainya. Tool standar yang harus Anda miliki untuk debugging. Struktur data bisa direpresentasikan dalam grafik dan ditampilkan secara interaktif. autoconf dan automake. Modula-2. pengguna mengetikkan kode programnya dengan editor lain. Tool pemeriksa memory yang telah sangat terkenal. Sebagai contoh. membuat diagram dengan umbrello. Kdbg. Memory management debugger. Tool distcc dapat Anda gunakan untuk itu.

infolinux. Program ini dapat menggenerasi dokumentasi online (HTML) dan offline (LaTex) dari header C++. Anjuta juga termasuk IDE yang sangat configurable.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Help2man. jika aplikasi yang Anda tulis ternyata mengekspor API. Vim. sebaliknya. Java dan IDL. Editor yang jelek akan mempersulit pembuatan program. Beberapa fitur yang sangat berguna adalah code folding dan auto complete. dalam penulisan program. Apalagi jika Anda menggunakan bahasa C. Eclipse. 40 INFOLINUX APRIL 2004 www. IDE yang dimotori oleh programmer India ini memang luar biasa. Apalagi. Bahasa lain yang didukung juga cukup banyak. Doxygen dapat menggenerasi class browser online (HTML) dan offline (LaTex) dari source yang lengkap dengan dokumentasi. Namun. C++ atau GTK+/GNOME. Berikut ini adalah contohcontohnya: doxygen. kekhususannya untuk programmer Python menjadikan editor ini dapat mengerti kebutuhan dan gaya pemrograman python. Bisa Anda bayangkan IDE/Editor Editor adalah tool yang selalu dibutuhkan Valgrind. Vim mungkin hanyalah editor. Dokumentasi menjadi hal yang wajib di sini. berbagai tool bisa kita gunakan. fleksibilitas Vim tak tergantikan. editor yang lengkap dan khusus digunakan sebagai alat bantu pemrograman akan membuat proses penulisan source code menjadi lebih menyenangkan. yang ditulis dengan bantuan pustaka pyQT. akan lebih baik apabila tersedia pula IDE. dokumentasi tetaplah hal penting.Sebagai IDE untuk Python. Eclipse adalah IDE yang dapat dikembangkan dengan bantuan plugin. Untuk membuat dokumentasi. Dokumentasi akan diekstrak langsung dari source code. operasi stack ilegal. Eric adalah IDE untuk bahasa Python. Kdoc. Datang juga dengan cachegrind. Programmer Java sangat cocok bekerja dengan IDE ini. akses ke memori yang telah dibebaskan. memory leak. Anjuta sangat memperhatikan preferensi programmer. C++. Eric. banyak diantara mereka yang mengerjakan aplikasi web kompleks dengan Vim. Selain editor. sebagai editor. Tak tanggungtanggung. terpakai. Walaupun program yang ditulis tidak terlalu besar. Banyak programmer yang mengandalkan Vim untuk menulis source code mereka. Eric sebenarnya tidak terlalu menyenangkan. Document generator Dokumentasi adalah komponen penting dalam pemaketan suatu program. Help2man. Program ini dapat mengubah isi dari opsi –help menjadi manual. profiler yang dibangun di atas engine valgrind. IDE. apalagi yang dibuat khusus untuk bahasa yang Anda gunakan benar-benar akan membuat proses penulisan source code menjadi lebih cepat. overflow. Namun. Berikut ini adalah beberapa contoh editor/IDE: Anjuta. Doxygen adalah sistem dokumentasi untuk C. Hampir semua hal dapat diatur sesuai keinginan.id . dan berbagai new/ malloc/free/delete ilegal.web.

Saat ini dia dapat digunakan untuk menggambar berbagai Boa-constructor. dan paper. maka revisid an versioning adalah hal yang wajib.id INFOLINUX APRIL 2004 41 . diagram modeller belum secanggih aplikasi Visio ataupun aplikasi-aplikasi dari Rational Software. pengubahan sesuatu bukan menjadi masalah yang sederhana. Kdevelop. www. tidak semua proyek dapat dikerjakan sendiri. Namun. QT dan KDE. syntax highlighting dan lain-lain. Fasilitas yang datang bersamanya termasuk documentation browser. Subversion. Diagram dapat dieskpor ke berbagai format grafik. Umbrello termasuk salah satu aplikasi UML terbaik untuk Linux. Yang satu ini merupakan tool standar dan termasuk di dalam distribusi-distribusi Linux. sudah bukan zamannya lagi untuk menggunakan kertas.infolinux. Sebagai contoh. Terutama untuk menangani program. Apa yang akan terjadi kalau file yang dibuat oleh A dapat dimodifikasi oleh B tanpa menyisakan aslinya? Untuk mencegah berbagai hal yang tak diinginkan dan menjadikan kerja tim lebih baik. maka program ini pantas Anda coba. dan sirkuit sederhana. UML.web. Setiap perubahan juga dikerjakan oleh sang programmer tersebut. Diagram modeller Seorang system analyst akan membutuhkan diagram modeller untuk mempermudah pemodelan sistem. Version control Seorang programmer yang bekerja sendirian mungkin tidak terlalu menganggap perlu version control. Mungkin user interfacenya konvensional. Butuh kerja tim untuk mengerjakan proyek tersebut. Hasil dari analyst tersebut dapat digunakan sebagai panduan oleh programmer. tipe diagram. Namun. SADT. Di era yang canggih ini. Umbrello UML Modeller adalah alat bantu penggambaran UML untuk KDE. kita memiliki beberapa diagram modeller yang cukup layak untuk diandalkan: dia. berbagai diagram modeller canggih kita kenal. Di Linux. Subversion melakukan apa yang dilakukan oleh CVS. Memprof. Semuanya dikerjakan oleh programmer tersebut. hanya subversion datang dengan berbagai kelebihan. flowchart. Emacs ataupun Xemacs adalah editor komplit yang luar biasa. emacs sejak dahulu telah dikenal sebagai editor untuk developer dan administrator sistem. network diagram. dokumentasi sampai pernak-pernik lainnya. Di Windows. grafik. Berikut ini adalah contohnya: CVS.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux betapa banyaknya hal yang harus dilakukan. Mulai dari program utama. Bagi Anda yang sering bekerja dengan UML. entity relationship. Dia sebenarnya dirancang untuk secanggih Visio. Kdevelop adalah IDE untuk Anda yang bekerja dengan lingkungan pemrograman X11. Saat ini. dokumentasi. Umbrello. Dan ketika bekerja dalam tim. modul. dan dapat dicetak. Namun. Bentuk baru dapat dikembangkan dengan bantuan XML dan subset SVG untuk menggambar. Emacs.

selama apa yang tersedia tersebut masih memenuhi kebutuhan kita.infolinux. Developer Perl juga bertindak serupa. XML-RPC juga sangat bagus untuk digunakan. Apabila Anda bekerja secara distributed.UTAMA Pengembangan Aplikasi di Linux Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial Use the Battery! B oleh dikatakan. tenaga dan sebagainya. Kembangkan sendiri. Atau.web. Untuk mengerti format OGG yang terbuka saja butuh waktu yang sangat lama. Module-module python. PHP berusaha untuk memenuhi kebutuhan penggunanya. Hal ini tentunya tidak berlaku umum untuk semua developer. Anda dapat memfokuskan diri untuk menghasilkan program dengan tingkat usability tinggi. Perl datang berbagai pustaka siap pakai yang siap memanjakan penggunanya. Sebagai contoh. belum tentu apa yang kita buat sendiri bisa lebih baik daripada yang telah tersedia. Tinggal comot. Baterai dan bahasa pemrograman Python. Sementara. Himpunan perintah yang valid mungkin hanya 5 atau 10. modifikasi kalau perlu. Developer di Windows umumnya perlu sedikit bekerja keras. Java datang dengan berbagai pustaka dan GUI toolkit sendiri. Linux dan free software adalah surga bagi devel oper. Anda bahkan bisa menggunakan protokol HTTP atau FTP apabila kebutuhan Anda bisa dipenuhi dengan menggunakan protokol-protokol tersebut. Tidak perlu membuang waktu untuk mendapatkan bahasa terbaik dari sisi kelengkapan pustaka. sebenarnya. Menghemat cost. sangat disarankan agar Anda menggunakan yang telah tersedia tersebut daripada membuatnya sendiri. Membuat suatu pustaka atau fungsi bukanlah perkara mudah. Banyak sekali pustaka yang disertakan bersamanya. apabila client mengirim ‘xxx’. maka kita membalasnya dengan mengirimkan ‘yyy’. Waktu. atau beli.id . hal ini boleh-boleh saja. maka pertimbangkan untuk menggunakan Corba. Java. kita bisa saja membuka soket dan melakukan semuanya sendiri. Menghemat cost! Kenapa disarankan demikian? Jawabannya singkat. 42 INFOLINUX APRIL 2004 www. Pustaka yang umum digunakan atau yang datang bersama bahasa pemrogaman mungkin telah dikembangkan oleh berbagai pihak secara hati-hati. Sebagai contoh. Anda ingin mengembangkan aplikasi MP3/OGG player. Namun. Hampir semua bahasa mencoba untuk datang selengkap mungkin. Dengan demikian. Namun. uang. beberapa bahasa pemrograman bahkan datang dengan banyak pustaka atau modul. Kalau begitu. Atau. cari bajakannya. Mengulangi apa yang telah dikerjakan tersebut bukanlah hal yang bijak. Tentunya. Apabila Anda ingin membuat semuanya sendiri dari nol. akan lebih bijak apabila kita mempergunakan protokol atau teknologi jaringan yang sudah matang daripada mengembangkan aturan sendiri. Dalam konteks bahasa pemrogaman. developer bahasa pemrograman tentu akan selalu memikirkan pustaka yang lebih baik lagi. Module-module perl. tidak ada satu pun bahasa yang datang dengan semua pustaka penting. PHP dan Perl adalah contoh bahasa-bahasa pemrograman yang menawarkan berbagai pustaka siap pakai. maka waktu yang diperlukan sangatlah banyak. Istilah use the battery sangat umum ditemukan di dunia Python. Bagaimana tidak? Pustaka dan contoh tersebar di mana-mana. Lihat saja modul-modul yang datang bersama Python. Berbagai pihak ketiga bahkan menawarkan tambahan modul untuk Python. Berlaku juga untuk protokol Ketika membuat aplikasi client server. dan kembangkan aplikasi dengan bantuan pustaka tersebut. Berbagai fungsi telah disediakan. Lebih bijak jika Anda mengembangkan player tersebut menggunakan pustaka yang telah disediakan. Dalam skala kecil. Dan. Secara kasar dapat diartikan agar kita menggunakan apa yang telah tersedia daripada membuatnya sendiri. Developer sistem yang bergerak di level bawah mungkin akan peduli untuk mengembangkan pustakapustaka baru. Beda jauh dengan di Windows.

Mereka membuat aplikasi bisnis tanpa berpikir panjang. Anda dapat memaketkannya dalam format paket-paket distribusi Linux seperti RPM. Hal ini barangkali tidak dimengerti oleh beberapa programmer Visual Basic yang mengganggap sistem operasi hanya ada satu di dunia ini. walaupun proyek yang dikembangkan tidaklah berskala besar. Tentunya. Perusahaan menjadi serba salah ketika ingin berpindah ke Linux. Apabila aplikasi yang Anda buat hanya datang dengan dukungan bahasa Inggris. Namun. Anda dengan mudah dapat meminta dukungan kepada pihak lain. sang developer. jangan pernah memulai ketergantungan akan suatu teknologi. Anda membuat pula format filenya sendiri. sebagai pengguna. Emulasi juga bukan solusi. Karena IT hanyalah sistem pendukung. seberapa yakin Anda akan perusahaan pembuat aplikasi office tersebut? Bagaimana kalau format filenya berubah terus (Anda harus membayar terus) atau perusahaannya bangkrut. Dukungan i18n dan l10n adalah hal yang penting. Tentunya. seberapa yakin Anda dapat menjamin untuk tetap berjalan pada usaha yang sama? Sebagai konsumen. Bagi developer. gunakanlah teknologi standar.org. Suatu hari. Mintalah produk dengan teknologi standar agar ketika perusahaannya tidak lagi mendukung. Anda merasa bahwa format file yang Anda gunakan rupanya memiliki kekurangan. Selamat berkreasi dan sukses! Multi platform Linux adalah sistem operasi yang sudah tidak diragukan lagi kemampuannya. OpenOffice. Yang mengerti hanyalah Anda. Bagi software developer. terutama utility atau tools. gunakanlah bahasa yang www. Porting jelas tidak mungkin. file pun tidak dapat dikopikan begitu saja.org dan Koffice menggunakan XML untuk format filenya. bicara hal yang lebih ringan. Pasar akan lebih besar.Ulasan CD | Klinik | Ulasan | Linux Ready | Utama | Bisnis | Feature | Tutorial UTAMA Pengembangan Aplikasi di Linux Pasar yang lebih besar S iapa target pengguna aplikasi Anda? Apabila Anda membuat program. jangan batasi pengguna Anda. buatlah agar berjalan di platform lain. Hal ini memang sepertinya tidak masuk akal. Apabila target pengguna adalah perusahaan dan harga produk telah termasuk support. Bagi perusahaan atau konsumen.web. Berbagai aplikasi office populer seperti StarOffice. client Anda kian bertambah. apabila Anda adalah seorang software developer untuk aplikasi bisnis. dan mintalah bantuan komunitas untuk membantu. Dalam membuat aplikasi office tersebut. Mengambil contoh StarOffice atau OpenOffice. hal-hal yang bisa diotomatisasi jangan sampai dikerjakan secara manual. Perusahaan yang menggunakan software yang mereka buat harus menggunakan Windows. Aplikasi office Anda pun diupgrade. Andaikata Microsoft mengubah orientasi bisnisnya. Dan terkadang. tulisan ini tidak mungkin mencakup semua bahasa atau tool. maka membuat aplikasi yang hanya berjalan di Linux adalah tindakan konyol luar biasa. gunakan teknologi standar dan perlengkap dokumentasi! mendukung multi platform. Distribusi aplikasi Distribusi adalah hal yang penting dan jangan dilupakan oleh software developer. tapi ada aplikasi sejenis yang tidak berjalan di Linux. Anda telah menyimpan data selama tahunan dengan salah satu versi Officenya. Internationalization dan localization Pembuatan program yang mendukung berbagai bahasa bukanlah pekerjaan yang harus dilakukan secara manual. Banyak konsumen menyukai dokumentasi yang lengkap. atau pengguna yang mau berusaha untuk mengerti bahasa Inggris. Sebagai software developer. Tapi. DEB dan lain sebagainya. Anda tidak perlu melakukannya sendiri. Sediakan saja frameworknya. Perbanyak bahasa yang didukung. Tidak ada maksud untuk mengunggulkan pihak tertentu atau menjatuhkan pihak lainnya. Kian hari. yang jelas. Sementara. Terakhir. jangan pernah memiliki produk dari perusahaan yang hanya menawarkan dukungan untuk satu platform tertentu. Anda adalah perusahaan pembuat aplikasi office. Memang makin banyak perusahaan yang menggunakan Linux. maka kemudahan instalasi tidak terlalu penting. Anda juga bisa mengembangkan sistem installer sendiri. XML kini digunakan diantaranya sebagai standar format file. Apabila target pengguna Anda adalah pengguna rumah atau pengguna mandiri. atau suatu hari Microsoft Office sudah tidak dikembangkan dan didukung lagi. pengguna sistem operasi lain seperti Windows masih dominan. Aplikasi skala besar tentu tidak hanya terdiri dari satu atau dua file.id INFOLINUX APRIL 2004 43 . maka pasar Anda batasi untuk pengguna yang mengerti bahasa Inggris.infolinux. waktu yang dibutuhkan untuk pengembangan akan lebih banyak. seberapa mampu Anda menjamin kelangsungan format file atau perusahaan Anda? Atau. Percayalah. Demikianlah pembahasan mengenai pengembangan aplikasi di Linux. tapi tetap saja mungkin. Bicara worst case. Ingin pindah. Masalah seperti ini perlu senantiasa dicermati baik-baik. Siapa yang akan menjamin datadata Anda? Format file adalah salah satu contoh penggunaan teknologi standar. tanyakan seberapa standar teknologi yang digunakan oleh suatu produk sebelum membeli. maka pastikan produk Anda dapat diinstall dengan mudah. Client-client Anda harus melakukan upgrade untuk dapat membaca format file baru tersebut. Namun. efeknya akan terasa sangat besar. dan kemudian menutup format file tersebut. Bagi perusahaan atau konsumen. Penggunaan teknologi standar Sebagai contoh. pertimbangkan selalu untuk datang dengan dokumentasi yang baik.

Sign up to vote on this title
UsefulNot useful