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

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

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

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

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

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

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

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

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

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